/* AFTER/DARK — the descent. Home page before the drop. */

.ad-night { --n-ink:#050506; --n-paper:#f2f2ef; --n-dim:rgba(242,242,239,.42); --n-faint:rgba(242,242,239,.16); --n-accent:var(--ad1-accent,#e8a53c);
	--n-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace; --n-ease: cubic-bezier(.16,1,.3,1);
	background: var(--n-ink); }
.ad-night main { background: transparent; }
.ad-night .ad1-header { position: fixed; inset: var(--adn-bar, 0px) 0 auto; z-index: 40; background: linear-gradient(180deg, rgba(5,5,6,.75), rgba(5,5,6,0)); border: 0; }
.ad-night .ad1-bar { position: fixed; top: 0; left: 0; right: 0; z-index: 41; }
.ad-night.adn-loading { overflow: hidden; }
.ad-night .ad-footer, .ad-night footer { position: relative; z-index: 2; background: var(--n-ink); }

.adn { position: relative; color: var(--n-paper); font-family: var(--ad-font, Inter, system-ui, sans-serif); }
.adn-gl { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 0; pointer-events: none; display: block; }
.adn-grain { position: fixed; inset: 0; z-index: 1; pointer-events: none; opacity: .045;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 160px 160px; animation: adn-grain 1.2s steps(6) infinite; }
@keyframes adn-grain { 0%{background-position:0 0} 20%{background-position:-37px 21px} 40%{background-position:29px -45px} 60%{background-position:-18px -11px} 80%{background-position:43px 33px} 100%{background-position:0 0} }

/* ---- loader ----------------------------------------------------------- */
.adn-load { position: fixed; inset: 0; z-index: 100; background: var(--n-ink); place-items: center; transition: opacity .9s var(--n-ease), visibility .9s; }
.adn-load.is-done { opacity: 0; visibility: hidden; }
.adn-load__word { font-size: clamp(3rem, 9vw, 7.5rem); font-weight: 700; letter-spacing: -.03em; line-height: 1; min-height: 1.2em; }
.adn-load__bar { position: absolute; left: 50%; bottom: 7vh; width: min(190px, 40vw); height: 1px; background: var(--n-faint); transform: translateX(-60%); }
.adn-load__bar span { display: block; height: 100%; width: 0; background: var(--n-paper); }
.adn-load__n { position: absolute; bottom: calc(7vh - .45em); left: calc(50% + min(190px,40vw)*.4 + 14px); font: 500 .72rem/1 var(--n-mono); letter-spacing: .14em; color: var(--n-dim); }
.adn-load { display: none; }
.adn-js .adn-load { display: grid; }
.adn-js.adn-reduced .adn-load { display: none; }

/* ---- instrument ------------------------------------------------------- */
.adn-hud, .adn-progress { transition: opacity .5s var(--n-ease); }
.adn-hud-off .adn-hud, .adn-hud-off .adn-progress { opacity: 0; pointer-events: none; }
.ad-night .ad1-footer__mark { display: none; }
.adn-hud { position: fixed; right: clamp(1rem,3vw,2.5rem); bottom: clamp(1rem,4vh,2.5rem); z-index: 30; display: flex; align-items: flex-end; gap: 1.1rem; pointer-events: none; }
.adn-hud__read { text-align: right; }
.adn-hud__time { font: 500 1.5rem/1 var(--n-mono); letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.adn-hud__time span { opacity: .45; animation: adn-blink 2s steps(1) infinite; }
@keyframes adn-blink { 50% { opacity: .1; } }
.adn-hud__zone { margin-top: .55rem; font: 500 .62rem/1 var(--n-mono); letter-spacing: .24em; text-transform: uppercase; color: var(--n-dim); min-height: 1em; }
.adn-hud__rule { position: relative; display: flex; flex-direction: column; gap: 5px; align-items: flex-end; }
.adn-hud__rule i { display: block; width: 6px; height: 1px; background: var(--n-faint); }
.adn-hud__rule i.is-h { width: 12px; background: var(--n-dim); }
.adn-hud__rule b { position: absolute; right: 0; top: 0; width: 22px; height: 1px; background: var(--n-accent); box-shadow: 0 0 10px var(--n-accent); }
.adn-hud__rule b::before { content: ""; position: absolute; left: -4px; top: -2px; width: 5px; height: 5px; border-radius: 50%; background: var(--n-accent); }
.adn-hud--left { left: clamp(1rem,3vw,2.5rem); right: auto; flex-direction: column; align-items: flex-start; gap: .7rem; pointer-events: auto; }
.adn-hud__geo { font: 500 .6rem/1 var(--n-mono); letter-spacing: .2em; color: var(--n-dim); }
.adn-progress { position: fixed; left: 0; top: 0; bottom: 0; width: 2px; z-index: 30; background: transparent; pointer-events: none; }
.adn-progress span { display: block; width: 100%; height: 0; background: linear-gradient(var(--n-paper), var(--n-accent)); opacity: .55; }

/* ---- chapters --------------------------------------------------------- */
.adn-ch { position: relative; z-index: 2; min-height: 100vh; padding: 18vh clamp(1.25rem,6vw,6rem); display: flex; flex-direction: column; justify-content: center; }
.adn-tag { margin: 0 0 2.2rem; font: 500 .66rem/1 var(--n-mono); letter-spacing: .26em; text-transform: uppercase; color: var(--n-accent); }
.adn-eyebrow, .adn-meta { margin: 0; font: 500 .7rem/1.4 var(--n-mono); letter-spacing: .26em; text-transform: uppercase; color: var(--n-dim); }
.adn-eyebrow { color: var(--n-accent); }

.adn-hero { min-height: 100vh; align-items: center; text-align: center; padding-top: 0; padding-bottom: 0; }
.adn-hero__body { position: absolute; left: 0; right: 0; bottom: 15vh; display: grid; gap: 1.4rem; justify-items: center; padding: 0 1.25rem; }
.adn-display { margin: 0; font-size: clamp(2.6rem, 7.4vw, 7.2rem); font-weight: 800; line-height: .92; letter-spacing: -.045em; text-transform: none; }
.adn-line { display: block; overflow: hidden; padding-bottom: .06em; }
.adn-line > span { display: inline-block; }
.adn-js .adn-line > span { transform: translateY(110%); transition: transform 1.3s var(--n-ease); }
.adn-js .adn-line:nth-child(2) > span { transition-delay: .12s; }
.adn-js .is-in .adn-line > span, .adn-js.adn-reduced .adn-line > span { transform: none; }
.adn-cue { position: absolute; left: 50%; bottom: 4vh; transform: translateX(-50%); display: grid; justify-items: center; gap: .8rem; color: var(--n-dim); text-decoration: none; font: 500 .6rem/1 var(--n-mono); letter-spacing: .26em; text-transform: uppercase; }
.adn-cue i { position: relative; display: block; width: 1px; height: 42px; overflow: hidden; background: var(--n-faint); }
.adn-cue i::after { content: ""; position: absolute; left: 0; top: -100%; width: 100%; height: 100%; background: var(--n-paper); animation: adn-cue 2.2s var(--n-ease) infinite; }
@keyframes adn-cue { to { top: 100%; } }

.adn-say { min-height: 160vh; }
.adn-big { margin: 0; max-width: 21ch; font-size: clamp(2rem, 5.2vw, 5rem); font-weight: 700; line-height: 1.04; letter-spacing: -.035em; }
.adn-js .adn-big .w { color: var(--n-paper); opacity: .14; transition: opacity .25s linear; }
.adn-js .adn-big .w.on, .adn-js.adn-reduced .adn-big .w { opacity: 1; }

.adn-terms__grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border-top: 1px solid var(--n-faint); }
.adn-terms__grid div { padding: 2.2rem 1.4rem 0 0; border-right: 1px solid var(--n-faint); margin-right: 1.4rem; }
.adn-terms__grid div:last-child { border-right: 0; }
.adn-terms__grid strong { display: block; font-size: clamp(3.4rem, 9vw, 9rem); font-weight: 800; line-height: .85; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.adn-terms__grid span { display: block; margin-top: 1rem; font: 500 .64rem/1 var(--n-mono); letter-spacing: .24em; text-transform: uppercase; color: var(--n-dim); }

/* pieces: pinned, sideways */
.adn-pieces { padding: 0; min-height: auto; display: block; }
.adn-pieces__pin { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; gap: 3.5vh; overflow: hidden; padding: calc(var(--adn-bar, 0px) + 96px) 0 9vh; }
.adn-pieces__head { padding: 0 clamp(1.25rem,6vw,6rem); display: flex; align-items: baseline; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.adn-pieces__head .adn-tag { margin: 0; }
.adn-h2 { margin: 0; font-size: clamp(1.8rem, 3.6vw, 3.4rem); font-weight: 800; letter-spacing: -.035em; line-height: 1; }
.adn-track { overflow-x: auto; list-style: none; margin: 0; padding: 0 clamp(1.25rem,6vw,6rem); display: flex; gap: clamp(1rem, 2vw, 2rem); will-change: transform; }
.adn-card { flex: 0 0 min(clamp(240px, 26vw, 400px), calc((100vh - var(--adn-bar, 0px) - 330px) * .8)); }
.adn-card a { display: block; color: inherit; text-decoration: none; }
.adn-card__media { position: relative; aspect-ratio: 4/5; overflow: hidden; background: #0d0d10; }
.adn-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .7s var(--n-ease), transform 1.4s var(--n-ease); }
.adn-card__flat { opacity: 0; object-fit: contain !important; background: radial-gradient(#1b1b1f, #0c0c0e); }
.adn-card a:hover .adn-card__worn, .adn-card a:focus-visible .adn-card__worn { transform: scale(1.05); }
.adn-card a:hover .adn-card__flat, .adn-card a:focus-visible .adn-card__flat { opacity: 1; }
.adn-card__n { position: absolute; left: .9rem; top: .9rem; font: 500 .62rem/1 var(--n-mono); letter-spacing: .2em; color: var(--n-dim); z-index: 2; }
.adn-card__meta { display: grid; grid-template-columns: auto 1fr auto; gap: .2rem 1rem; align-items: baseline; padding-top: 1rem; border-top: 1px solid var(--n-faint); margin-top: 1rem; }
.adn-card__sku { font: 500 .62rem/1 var(--n-mono); letter-spacing: .18em; color: var(--n-accent); }
.adn-card__name { font-size: .92rem; font-weight: 600; letter-spacing: -.01em; }
.adn-card__price { font: 500 .78rem/1 var(--n-mono); color: var(--n-dim); }

.adn-how { min-height: 120vh; }
.adn-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 2rem; }
.adn-steps li { border-top: 1px solid var(--n-faint); padding-top: 1.4rem; }
.adn-steps span { font: 500 .64rem/1 var(--n-mono); letter-spacing: .2em; color: var(--n-accent); }
.adn-steps h3 { margin: 1.4rem 0 .7rem; font-size: 1.25rem; font-weight: 700; letter-spacing: -.02em; }
.adn-steps p { margin: 0; color: var(--n-dim); font-size: .92rem; line-height: 1.55; }
.adn-js [data-adn-rise] { opacity: 0; transform: translateY(40px); transition: opacity 1s var(--n-ease), transform 1.2s var(--n-ease); }
.adn-js [data-adn-rise].is-in, .adn-js.adn-reduced [data-adn-rise] { opacity: 1; transform: none; }
[data-adn-rise]:nth-child(2) { transition-delay: .1s; } [data-adn-rise]:nth-child(3) { transition-delay: .2s; } [data-adn-rise]:nth-child(4) { transition-delay: .3s; }

.adn-join { align-items: flex-start; }
.adn-count { display: flex; gap: clamp(1rem, 4vw, 3.5rem); margin-bottom: 3rem; }
.adn-count b { display: block; font: 500 clamp(3rem, 9vw, 8.5rem)/.9 var(--n-mono); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.adn-count span { display: block; margin-top: .8rem; font: 500 .62rem/1 var(--n-mono); letter-spacing: .24em; text-transform: uppercase; color: var(--n-dim); }
.adn-form { width: min(640px, 100%); }
.adn-form__row { display: flex; border-bottom: 1px solid var(--n-dim); transition: border-color .3s; }
.adn-form__row:focus-within { border-color: var(--n-paper); }
.adn-form input[type=email] { flex: 1; min-width: 0; padding: 1.1rem 0; border: 0; background: transparent; color: var(--n-paper); font: 500 1.1rem/1 var(--ad-font, inherit); outline: 0; }
.adn-form input::placeholder { color: var(--n-dim); }
.adn-form button { padding: 0 0 0 1.2rem; border: 0; background: none; color: var(--n-paper); font: 600 .68rem/1 var(--n-mono); letter-spacing: .24em; text-transform: uppercase; cursor: pointer; white-space: nowrap; }
.adn-form button:hover { color: var(--n-accent); }
.adn-fine { margin: 1rem 0 0; font-size: .82rem; line-height: 1.55; color: var(--n-dim); }
.adn-form .ad1-done { font-size: 1.1rem; color: var(--n-paper); }

.adn-dawn { min-height: 130vh; justify-content: flex-end; text-align: center; padding-bottom: 20vh; }
.adn-dawn__body { display: grid; justify-items: center; gap: 1rem; }
.adn-dawn__line { margin: 0; font: 500 .72rem/1.9 var(--n-mono); letter-spacing: .3em; text-transform: uppercase; color: var(--n-dim); }

/* ---- small screens ---------------------------------------------------- */
@media (max-width: 760px) {
	.adn-hud { gap: .7rem; }
	.adn-hud__time { font-size: 1.1rem; }
	.adn-hud__rule { display: none; }
	.adn-hud__geo { display: none; }
	.adn-terms__grid { grid-template-columns: repeat(2, minmax(0,1fr)); row-gap: 2.4rem; }
	.adn-terms__grid div:nth-child(2) { border-right: 0; }
	.adn-steps { grid-template-columns: 1fr; gap: 1.6rem; }
	.adn-say { min-height: 130vh; }
	.adn-card { flex-basis: 72vw; }
	.adn-count b { font-size: 2.7rem; }
	.adn-dawn { padding-bottom: 26vh; }
	.adn-hero__body { bottom: 17vh; }
}

/* ---- motion off ------------------------------------------------------- */
.adn-reduced .adn-grain, .adn-reduced .adn-cue i::after { animation: none; }
.adn-js:not(.adn-reduced) .adn-pieces__pin { height: 100vh; }
.adn-js:not(.adn-reduced) .adn-track { overflow: visible; }

/* Lenis */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

/* if the script never arrives, show everything */
.adn-fail .adn-load { display: none !important; }

/* ---- torchlight (hero) ------------------------------------------------ */
.ad-night { background: var(--adn-sky, #050506); }
.adn-torch { position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: var(--adn-torch-o, 1); }
.adn-torch__img { position: absolute; inset: 0; background: center / cover no-repeat; opacity: 0; transition: opacity 1.8s var(--n-ease);
	filter: saturate(.8) contrast(1.06) brightness(1.05);
	-webkit-mask-image: radial-gradient(circle var(--tr, 240px) at var(--tx, 50%) var(--ty, 60%), #000 0%, rgba(0,0,0,.85) 28%, rgba(0,0,0,.3) 60%, transparent 100%);
	mask-image: radial-gradient(circle var(--tr, 240px) at var(--tx, 50%) var(--ty, 60%), #000 0%, rgba(0,0,0,.85) 28%, rgba(0,0,0,.3) 60%, transparent 100%); }
.adn-torch__img.is-on { opacity: 1; }

/* ---- the numbers, drawn in light ---------------------------------------- */
.adn-terms__pin { width: 100%; }
.adn-js.adn-webgl .adn-terms { display: block; height: 420vh; padding: 0; }
.adn-webgl .adn-terms__pin { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; justify-content: flex-end; padding: 0 clamp(1.25rem,6vw,6rem) 11vh; box-sizing: border-box; }
.adn-webgl .adn-terms .adn-tag { margin-bottom: 1.4rem; }
.adn-webgl .adn-terms__grid strong { font-size: clamp(1.3rem, 2.2vw, 1.9rem); color: var(--n-dim); transition: color .4s; }
.adn-webgl .adn-terms__grid span { transition: color .4s; }
.adn-webgl .adn-terms__grid div.is-on strong { color: var(--n-accent); }
.adn-webgl .adn-terms__grid div.is-on span { color: var(--n-paper); }

/* ---- the countdown, drawn in light -------------------------------------- */
.adn-clock { display: none; }
.adn-join__pin { width: 100%; }
.adn-js.adn-webgl .adn-join { display: block; height: 200vh; padding: 0; }
.adn-webgl .adn-join__pin { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; padding: 0 clamp(1.25rem,6vw,6rem) 9vh; box-sizing: border-box; }
.adn-webgl .adn-join .adn-tag { position: absolute; top: calc(var(--adn-bar, 0px) + 104px); left: 50%; transform: translateX(-50%); white-space: nowrap; }
.adn-webgl .adn-count { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
.adn-webgl .adn-clock { display: flex; justify-content: space-around; position: absolute; left: 50%; top: var(--adn-cy, 56vh); width: var(--adn-cw, 60vw); transform: translateX(-50%);
	font: 500 .62rem/1 var(--n-mono); letter-spacing: .24em; text-transform: uppercase; color: var(--n-dim); }
@media (max-width: 760px) {
	.adn-js.adn-webgl .adn-terms { height: 360vh; }
	.adn-webgl .adn-terms__grid strong { font-size: 1.2rem; }
}
/* signed-in admins: sit the fixed bar and header under the WordPress toolbar */
.admin-bar.ad-night .ad1-bar { top: var(--wp-admin--admin-bar--height, 32px); }
.admin-bar.ad-night .ad1-header { top: calc(var(--adn-bar, 0px) + var(--wp-admin--admin-bar--height, 32px)); }

/* ---- shop states: early, live, sold out ----------------------------------- */
.adn-cta { position: relative; z-index: 3; display: inline-flex; align-items: center; gap: .9rem; margin-top: .4rem; padding: 1rem 1.6rem; border: 1px solid var(--n-accent); background: rgba(216,30,44,.12); color: var(--n-paper); text-decoration: none; font: 600 .7rem/1 var(--n-mono); letter-spacing: .24em; text-transform: uppercase; transition: background .3s var(--n-ease); }
.adn-cta:hover, .adn-cta:focus-visible { background: var(--n-accent); }
.adn-cta i { font-style: normal; transition: transform .3s var(--n-ease); }
.adn-cta:hover i { transform: translateX(4px); }
.adn-card__left { position: absolute; right: .9rem; top: .9rem; z-index: 2; padding: .4rem .55rem; background: rgba(5,5,6,.65); font: 500 .62rem/1 var(--n-mono); letter-spacing: .18em; text-transform: uppercase; color: var(--n-paper); }
.adn-card.is-out .adn-card__left { color: var(--n-accent); }
.adn-card.is-out img { filter: grayscale(1) brightness(.5); }
.adn-steps--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.adn-last { display: grid; justify-items: center; gap: 1.2rem; text-align: center; }
.adn-last__line { margin: 0; font-size: clamp(1.6rem, 3.2vw, 2.8rem); font-weight: 800; letter-spacing: -.03em; }
.adn-form__head { margin: 0 0 1.6rem; }
.adn-dawn .adn-cta { margin-top: 1.4rem; }
.adn-js.adn-webgl .adn-join--plain { height: auto; min-height: 100vh; display: flex; padding: 18vh clamp(1.25rem,6vw,6rem); }
.adn-webgl .adn-join--plain .adn-join__pin { position: static; height: auto; justify-content: center; padding: 0; }
.adn-webgl .adn-join--plain .adn-tag { position: static; transform: none; }
.adn-join--plain .adn-join__pin { display: flex; flex-direction: column; align-items: center; }
@media (max-width: 760px) { .adn-steps--3 { grid-template-columns: 1fr; } }