:root {
	--cc-crimson: #8f0d21;
	--cc-gold: #c6a66a;
	--cc-ink: #090708;
	--cc-paper: #efe6d7;
	--cc-muted: #b6aa9b;
	--cc-line: rgba(198, 166, 106, 0.32);
	--cc-serif: "Cormorant Garamond", Georgia, serif;
	--cc-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--cc-ink);
	color: var(--cc-paper);
	font-family: var(--cc-sans);
	font-size: 17px;
	line-height: 1.7;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--cc-gold); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: #ead29f; }
button, input, textarea, select { font: inherit; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
	clip: auto !important; width: auto; height: auto; margin: 0; padding: 0.75rem 1rem;
	background: #fff; color: #000; z-index: 99999; top: 0.5rem; left: 0.5rem;
}
.cc-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }

/* Coming soon landing page */
.cc-landing-active { overflow-x: hidden; }
.cc-landing {
	position: relative;
	isolation: isolate;
	min-height: 100svh;
	display: grid;
	place-items: center;
	overflow: hidden;
	background:
		linear-gradient(90deg, rgba(5, 3, 4, 0.96) 0%, rgba(5, 3, 4, 0.78) 34%, rgba(5, 3, 4, 0.20) 64%, rgba(5, 3, 4, 0.44) 100%),
		var(--cc-hero-image) center 30% / cover no-repeat;
}
.cc-landing::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(circle at 20% 50%, rgba(143, 13, 33, 0.18), transparent 34%),
		linear-gradient(180deg, rgba(0,0,0,0.2), rgba(0,0,0,0.1) 55%, rgba(0,0,0,0.7));
}
.cc-landing__veil {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: linear-gradient(rgba(255,255,255,0.018) 1px, transparent 1px);
	background-size: 100% 4px;
	mix-blend-mode: soft-light;
	opacity: 0.5;
}
.cc-landing__frame {
	position: absolute;
	inset: 22px;
	border: 1px solid rgba(198, 166, 106, 0.46);
	box-shadow: inset 0 0 0 6px rgba(6, 4, 5, 0.35);
	pointer-events: none;
}
.cc-landing__frame::before,
.cc-landing__frame::after {
	content: "";
	position: absolute;
	width: 96px;
	height: 96px;
	border-color: var(--cc-crimson);
	opacity: 0.85;
}
.cc-landing__frame::before { top: -1px; left: -1px; border-top: 2px solid; border-left: 2px solid; }
.cc-landing__frame::after { right: -1px; bottom: -1px; border-right: 2px solid; border-bottom: 2px solid; }
.cc-landing__content {
	width: min(650px, calc(100% - 72px));
	margin-right: min(42vw, 540px);
	padding: 80px 0 90px;
	text-align: center;
	text-shadow: 0 2px 20px rgba(0,0,0,0.9);
}
.cc-sigil {
	width: 76px;
	height: 76px;
	margin: 0 auto 22px;
	border: 1px solid var(--cc-gold);
	border-radius: 50%;
	display: grid;
	place-items: center;
	position: relative;
	color: var(--cc-gold);
	font-family: var(--cc-serif);
	font-size: 2.8rem;
	line-height: 1;
}
.cc-sigil::before,
.cc-sigil::after {
	content: "";
	position: absolute;
	inset: 8px;
	border: 1px solid rgba(198,166,106,0.35);
	transform: rotate(45deg);
}
.cc-sigil::after { inset: 16px; border-color: rgba(143,13,33,0.72); }
.cc-eyebrow,
.entry-meta,
.post-card__meta {
	margin: 0 0 12px;
	color: var(--cc-gold);
	font-size: 0.73rem;
	font-weight: 600;
	letter-spacing: 0.28em;
	text-transform: uppercase;
}
.cc-landing h1 {
	margin: 0;
	font-family: var(--cc-serif);
	font-size: clamp(3.4rem, 7vw, 6.8rem);
	font-weight: 600;
	line-height: 0.82;
	letter-spacing: -0.045em;
	color: #fff8ed;
}
.cc-tagline {
	margin: 22px 0 0;
	font-family: var(--cc-serif);
	font-size: clamp(1.25rem, 2.1vw, 1.8rem);
	font-style: italic;
	color: #dfd0bc;
}
.cc-rule { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 25px auto; }
.cc-rule::before,
.cc-rule::after { content: ""; width: 90px; height: 1px; background: linear-gradient(90deg, transparent, var(--cc-gold)); }
.cc-rule::after { transform: scaleX(-1); }
.cc-rule span { width: 8px; height: 8px; border: 1px solid var(--cc-crimson); transform: rotate(45deg); }
.cc-description {
	max-width: 580px;
	margin: 0 auto;
	color: #d5cabe;
	font-family: var(--cc-serif);
	font-size: clamp(1.08rem, 1.6vw, 1.3rem);
	line-height: 1.55;
}
.cc-details {
	margin: 25px 0 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 16px;
	color: #f1e7d8;
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.17em;
	text-transform: uppercase;
}
.cc-details__diamond { color: var(--cc-crimson); font-size: 0.65em; align-self: center; }
.cc-countdown {
	margin: 28px auto 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(66px, 1fr));
	max-width: 430px;
	border-block: 1px solid var(--cc-line);
}
.cc-countdown > div { padding: 15px 10px 13px; position: relative; }
.cc-countdown > div + div::before { content: ""; position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px; background: var(--cc-line); }
.cc-countdown strong { display: block; font-family: var(--cc-serif); font-size: 1.8rem; font-weight: 500; line-height: 1; }
.cc-countdown span { display: block; margin-top: 5px; color: var(--cc-muted); font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase; }
.cc-countdown__arrived { grid-column: 1 / -1; margin: 0; padding: 12px; font-family: var(--cc-serif); font-style: italic; }
.cc-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 230px;
	margin-top: 30px;
	padding: 14px 28px;
	border: 1px solid var(--cc-gold);
	background: linear-gradient(180deg, rgba(143,13,33,0.92), rgba(93,5,20,0.96));
	box-shadow: 0 12px 30px rgba(0,0,0,0.32), inset 0 0 0 3px rgba(8,5,6,0.35);
	color: #fff7eb;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.19em;
	text-decoration: none;
	text-transform: uppercase;
	transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.cc-button:hover {
	color: #fff;
	transform: translateY(-2px);
	background: linear-gradient(180deg, #a51029, #6b071b);
	box-shadow: 0 16px 38px rgba(0,0,0,0.5), 0 0 28px rgba(143,13,33,0.24), inset 0 0 0 3px rgba(8,5,6,0.35);
}
.cc-private-note { margin: 15px 0 0; color: #a99c8e; font-size: 0.76rem; font-style: italic; }
.cc-landing__bottom {
	position: absolute;
	left: 52px;
	right: 52px;
	bottom: 35px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: rgba(232,216,193,0.58);
	font-size: 0.61rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

/* Full site header and content */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid var(--cc-line);
	background: rgba(9,7,8,0.94);
	backdrop-filter: blur(16px);
}
.site-header__inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-title { display: flex; align-items: center; gap: 12px; color: #fff5e8; font-family: var(--cc-serif); font-size: 1.45rem; font-weight: 600; text-decoration: none; }
.site-title__mark { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--cc-gold); border-radius: 50%; color: var(--cc-gold); }
.custom-logo { max-height: 62px; width: auto; }
.primary-navigation ul, .site-footer ul { display: flex; gap: 28px; list-style: none; padding: 0; margin: 0; }
.primary-navigation a, .site-footer a { color: #d9cec0; font-size: 0.71rem; font-weight: 600; letter-spacing: 0.13em; text-decoration: none; text-transform: uppercase; }
.primary-navigation a:hover, .site-footer a:hover { color: var(--cc-gold); }
.menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--cc-line); background: transparent; padding: 10px; }
.menu-toggle span:not(.screen-reader-text) { display: block; height: 1px; background: var(--cc-gold); margin: 5px 0; }
.content-shell { padding-block: clamp(70px, 9vw, 130px); }
.archive-header, .entry-header { max-width: 820px; margin-bottom: 45px; }
.archive-header h1, .entry-title, .error-404 h1, .no-results h1 {
	margin: 0;
	font-family: var(--cc-serif);
	font-size: clamp(2.8rem, 6vw, 5.6rem);
	line-height: 0.95;
	font-weight: 600;
	letter-spacing: -0.035em;
}
.archive-description, .archive-header > p { color: var(--cc-muted); font-family: var(--cc-serif); font-size: 1.25rem; }
.post-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 34px; }
.post-card { border: 1px solid var(--cc-line); background: #100d0e; overflow: hidden; }
.post-card__image { display: block; aspect-ratio: 16/9; overflow: hidden; }
.post-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms ease; }
.post-card:hover .post-card__image img { transform: scale(1.025); }
.post-card__content { padding: 28px; }
.post-card__title { margin: 0; font-family: var(--cc-serif); font-size: 2rem; line-height: 1.05; }
.post-card__title a { color: #fff6e9; text-decoration: none; }
.post-card__excerpt { color: var(--cc-muted); }
.text-link { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; }
.entry { max-width: 940px; margin-inline: auto; }
.entry-featured { margin: 0 0 45px; border: 1px solid var(--cc-line); }
.entry-content { max-width: 760px; font-family: var(--cc-serif); font-size: 1.24rem; }
.entry-content h2, .entry-content h3 { margin-top: 1.7em; color: #fff5e9; font-family: var(--cc-serif); line-height: 1.1; }
.entry-content h2 { font-size: 2.3rem; }
.entry-content blockquote { margin: 2em 0; padding: 0.4em 0 0.4em 1.4em; border-left: 2px solid var(--cc-crimson); color: #e0d3c2; font-size: 1.35em; font-style: italic; }
.entry-content .alignwide { width: min(1100px, 100vw - 40px); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry-content .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.comments-area { max-width: 760px; margin: 60px auto 0; padding-top: 35px; border-top: 1px solid var(--cc-line); }
.comment-list { padding-left: 1.5rem; }
input, textarea, select { width: 100%; border: 1px solid var(--cc-line); background: #110d0f; color: #fff; padding: 12px; }
input[type="submit"], button[type="submit"] { width: auto; cursor: pointer; border-color: var(--cc-gold); background: var(--cc-crimson); color: #fff; }
.site-footer { border-top: 1px solid var(--cc-line); background: #060506; color: #8f8579; }
.site-footer__inner { min-height: 120px; display: flex; align-items: center; justify-content: space-between; gap: 30px; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; }
.error-404, .no-results { min-height: 60vh; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }

@media (max-width: 1050px) {
	.cc-landing { background-position: 61% center; }
	.cc-landing__content { margin-right: 36vw; }
}
@media (max-width: 820px) {
	.cc-landing {
		align-items: end;
		background:
			linear-gradient(180deg, rgba(5,3,4,0.08) 0%, rgba(5,3,4,0.20) 30%, rgba(5,3,4,0.93) 63%, rgba(5,3,4,0.99) 100%),
			var(--cc-hero-image) 63% top / auto 68% no-repeat,
			#070506;
	}
	.cc-landing__content { width: min(680px, calc(100% - 56px)); margin: 0; padding: 54vh 0 92px; }
	.cc-landing h1 { font-size: clamp(3rem, 13vw, 5.2rem); }
	.cc-landing__frame { inset: 14px; }
	.cc-landing__bottom { left: 34px; right: 34px; bottom: 27px; }
	.menu-toggle { display: block; }
	.primary-navigation { display: none; position: absolute; top: 82px; left: 0; right: 0; padding: 20px; background: #090708; border-bottom: 1px solid var(--cc-line); }
	.primary-navigation.is-open { display: block; }
	.primary-navigation ul { flex-direction: column; gap: 14px; }
	.post-grid { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
	.cc-landing { background-size: auto 55%; background-position: 61% top; }
	.cc-landing__content { width: calc(100% - 46px); padding-top: 44vh; }
	.cc-sigil { width: 62px; height: 62px; font-size: 2.25rem; }
	.cc-description { font-size: 1.03rem; }
	.cc-details { flex-direction: column; gap: 5px; }
	.cc-details__diamond { display: none; }
	.cc-countdown { grid-template-columns: repeat(2, 1fr); }
	.cc-countdown > div:nth-child(3)::before { display: none; }
	.cc-landing__bottom { display: none; }
	.site-footer__inner { padding-block: 35px; flex-direction: column; align-items: flex-start; }
	.site-footer ul { flex-direction: column; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
