/* ASF AV Author — The Fracture Line book page (dark, cinematic; ends in the painted garden). Loaded on that page only. */
body.asf-av-dark {
	--bg: var(--asf-av-night); --bg-2: var(--asf-av-night-2); --card: #17232A;
	--fg: #F2EDE4; --fg-soft: #C2CCCE; --gold: #D4A453; --gold-ink: #DDB46A; --line: rgba(242, 237, 228, .16);
	--btn-bg: #F2EDE4; --btn-fg: var(--asf-av-night);
	--asf-av-display: "Cormorant Garamond", Georgia, serif;
	color-scheme: dark;
}
.asf-av-dark .asf-av-h1, .asf-av-dark .asf-av-h2, .asf-av-dark .asf-av-h3 { font-weight: 500; letter-spacing: -.015em; font-variation-settings: normal; }
.asf-av-dark .asf-av-h3 { font-weight: 600; }
.asf-av-dark .asf-av-header.is-scrolled { background: rgba(15, 22, 24, .88); box-shadow: 0 1px 0 rgba(242, 237, 228, .1); }
.asf-av-dark .asf-av-burger { background: rgba(15, 22, 24, .5); color: #F2EDE4; }
.asf-av-dark .asf-av-header .asf-av-btn--solid { background: #F2EDE4; color: var(--asf-av-night); }
.asf-av-dark .asf-av-eyebrow::before { background: var(--gold); }
.asf-av-hero__tagdot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px rgba(212, 164, 83, .25); }
.asf-av-dark .asf-av-join__row { background: rgba(255, 255, 255, .06); border-color: rgba(242, 237, 228, .2); }
.asf-av-dark .asf-av-join__row .asf-av-input { color: #F2EDE4; }
.asf-av-dark .asf-av-join__status.is-ok { color: #9FD3AE; }
.asf-av-dark .asf-av-join__status.is-err { color: #F2A196; }

/* =====================================================================
   Book page: The Fracture Line (dark, cinematic; ends in daylight)
   ===================================================================== */
.asf-av-dark .asf-av-header:not(.is-scrolled) { color: #F2EDE4; }

/* Opening: the fractured surface parts on scroll (JS sets --open 0..1). */
.asf-av-open { position: relative; height: 185svh; --open: 0; }
.asf-av-open__stage { position: sticky; top: 0; height: 100svh; min-height: 560px; overflow: hidden; isolation: isolate; background: var(--asf-av-night); }
.asf-av-open__under {
	position: absolute; inset: 0; z-index: -3;
	background: radial-gradient(40% 70% at 50% 50%, rgba(212, 164, 83, calc(.12 + var(--open) * .22)), transparent 70%), var(--asf-av-night);
}
.asf-av-open__seam { left: 50%; top: 0; height: 100%; width: 120px; transform: translateX(-50%); opacity: calc(.3 + var(--open) * .7); }
.asf-av-open__seam .asf-av-seam__glow { stroke-width: 18; opacity: .22; }
.asf-av-stone { position: absolute; inset: -2px; z-index: -1; background-size: cover; background-position: 50% 50%; will-change: transform; }
.asf-av-stone::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 22, 24, .38), rgba(15, 22, 24, .2) 40%, rgba(15, 22, 24, .7)); }
.asf-av-stone--l { clip-path: polygon(0 0, 55% 0, 51% 13%, 56% 27%, 47% 40%, 52% 54%, 44% 69%, 49% 83%, 43% 100%, 0 100%); transform: translateX(calc(var(--open) * -64%)) rotate(calc(var(--open) * -4deg)); }
.asf-av-stone--r { clip-path: polygon(55% 0, 100% 0, 100% 100%, 43% 100%, 49% 83%, 44% 69%, 52% 54%, 47% 40%, 56% 27%, 51% 13%); transform: translateX(calc(var(--open) * 64%)) rotate(calc(var(--open) * 4deg)); }
.asf-av-open__title {
	position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
	padding: calc(var(--asf-av-header) + 20px) var(--asf-av-gutter) 90px; color: #F4EFE6;
	opacity: calc(1 - var(--open) * 2.6); transform: translateY(calc(var(--open) * -90px)) scale(calc(1 - var(--open) * .06));
}
.asf-av-open__kicker { font: 600 13px/1 var(--asf-av-sans); letter-spacing: .34em; text-transform: uppercase; margin-bottom: 22px !important; }
.asf-av-open__h1 { display: flex; flex-direction: column; align-items: center; font-family: var(--asf-av-serif); line-height: .9; margin: 0; }
.asf-av-open__the { font-style: italic; font-weight: 400; font-size: clamp(28px, 3vw, 44px); margin-bottom: 4px; }
.asf-av-open__fr { font-weight: 500; font-size: clamp(76px, 12vw, 176px); letter-spacing: -.045em; }
.asf-av-open__ln { font-style: italic; font-weight: 400; font-size: clamp(78px, 11.4vw, 166px); letter-spacing: -.02em; color: #E7BE73; }
.asf-av-open__sub { font: italic 500 clamp(22px, 2.2vw, 30px)/1.2 var(--asf-av-serif); margin: 22px 0 34px !important; }
.asf-av-open__quote {
	position: absolute; left: 50%; top: 50%; width: min(760px, 86vw); transform: translate(-50%, calc(-50% + (1 - var(--q, 0)) * 40px)); text-align: center; color: #F4EFE6;
	opacity: var(--q, 0); pointer-events: none;
}
.asf-av-open__q { font: 500 clamp(40px, 5.4vw, 78px)/1.08 var(--asf-av-serif); letter-spacing: -.02em; margin-bottom: 24px !important; }
.asf-av-open__l { font: italic 400 clamp(22px, 2.2vw, 30px)/1.5 var(--asf-av-serif); color: #E7BE73; margin: 0 !important; }
.asf-av-open__hint { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: rgba(244, 239, 230, .75); opacity: calc(1 - var(--open) * 4); margin: 0 !important; }
.asf-av-open__hint span { width: 1px; height: 42px; background: linear-gradient(transparent, #E7BE73); animation: asf-av-hint 2.4s var(--asf-av-ease) infinite; transform-origin: top; }
@keyframes asf-av-hint { 0% { transform: scaleY(0); } 60% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }

/* About + buy */
.asf-av-buy { background: var(--asf-av-night); }
.asf-av-buy__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 7vw, 110px); align-items: start; }
.asf-av-buy__cover { position: sticky; top: calc(var(--asf-av-header) + 40px); display: flex; flex-direction: column; align-items: center; gap: 40px; padding-top: 20px; }
.asf-av-buy__status { display: inline-flex; align-items: center; gap: 10px; font: 600 13px/1 var(--asf-av-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gold-ink); }
.asf-av-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 36px 0; border-block: 1px solid var(--line); }
.asf-av-facts > div { padding: 18px 18px 18px 0; }
.asf-av-facts > div + div { padding-left: 18px; border-left: 1px solid var(--line); }
.asf-av-facts dt { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-soft); margin-bottom: 6px; }
.asf-av-facts dd { margin: 0; font: 500 21px/1.25 var(--asf-av-serif); }
.asf-av-retail__title { font: 600 13px/1 var(--asf-av-sans) !important; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-ink); margin-bottom: 16px !important; }
.asf-av-retail__list { list-style: none; margin: 0 0 32px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.asf-av-retail__btn { display: inline-flex; align-items: center; gap: 10px; min-height: 50px; padding: 0 22px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; font-weight: 500; }
.asf-av-retail__btn small { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-soft); }
.asf-av-retail__btn.is-live { border-color: var(--gold); }
.asf-av-retail__btn.is-live:hover { background: var(--gold); color: #1B1408; }
.asf-av-retail__notify { font: italic 500 22px/1.3 var(--asf-av-serif); margin-bottom: 14px !important; }
.asf-av-retail .asf-av-join { margin: 0; }
@media (max-width: 900px) {
	.asf-av-buy__grid { grid-template-columns: 1fr; }
	.asf-av-buy__cover { position: static; }
}
@media (max-width: 560px) {
	.asf-av-facts { grid-template-columns: 1fr; }
	.asf-av-facts > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
}

/* The gap */
.asf-av-gap { background: var(--asf-av-night); min-height: 92svh; display: flex; align-items: center; overflow: hidden; }
.asf-av-gap__copy { position: relative; z-index: 2; max-width: 820px; text-align: center; }
.asf-av-gap__copy .asf-av-head { margin: 0 auto 26px; }
.asf-av-gap__copy .asf-av-lede { margin: 0 auto; }
.asf-av-gap__img { position: absolute; z-index: 1; opacity: .5; }
.asf-av-gap__img img { width: 100%; height: 100%; object-fit: cover; }
.asf-av-gap__img--a { right: 0; top: 4%; width: 32vw; height: 76%; -webkit-mask-image: radial-gradient(75% 60% at 72% 50%, #000 35%, transparent 100%); mask-image: radial-gradient(75% 60% at 72% 50%, #000 35%, transparent 100%); }
.asf-av-gap__img--b { left: 0; bottom: 2%; width: 28vw; height: 62%; -webkit-mask-image: radial-gradient(75% 60% at 28% 50%, #000 35%, transparent 100%); mask-image: radial-gradient(75% 60% at 28% 50%, #000 35%, transparent 100%); }
@media (max-width: 860px) {
	.asf-av-gap { flex-direction: column; padding-bottom: 0; }
	.asf-av-gap__img { position: relative; width: 100% !important; height: 300px !important; top: auto !important; bottom: auto !important; opacity: .55; }
	.asf-av-gap__img--a { order: 3; -webkit-mask-image: linear-gradient(180deg, transparent, #000 40%, #000 60%, transparent); mask-image: linear-gradient(180deg, transparent, #000 40%, #000 60%, transparent); }
	.asf-av-gap__img--b { display: none; }
	.asf-av-gap__copy { order: 2; }
}

/* Who it's for */
.asf-av-for { overflow: hidden; isolation: isolate; }
.asf-av-for__bg { position: absolute; inset: 0; z-index: -1; }
.asf-av-for__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; opacity: .26; filter: saturate(.4); }
.asf-av-for__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--asf-av-night) 0%, rgba(15, 22, 24, .72) 30%, rgba(15, 22, 24, .78) 70%, var(--asf-av-night) 100%); }
.asf-av-for__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.asf-av-for__item { background: rgba(23, 35, 42, .82); border: 1px solid var(--line); border-radius: 6px; padding: 30px; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.asf-av-for__n { display: block; font: italic 500 22px/1 var(--asf-av-serif); color: var(--gold-ink); margin-bottom: 24px; }
.asf-av-for__item p { color: var(--fg-soft); margin: 0; }
@media (max-width: 860px) { .asf-av-for__list { grid-template-columns: 1fr; } }

/* Parts (tabs with crossfading scenes) */
.asf-av-parts { min-height: 100svh; display: flex; align-items: center; overflow: hidden; isolation: isolate; }
.asf-av-parts__bgs { position: absolute; inset: 0; z-index: -1; }
.asf-av-parts__bg { position: absolute; inset: 0; opacity: 0; transform: scale(1.06); transition: opacity 1s var(--asf-av-ease), transform 2.2s var(--asf-av-ease); }
.asf-av-parts__bg.is-active { opacity: 1; transform: none; }
.asf-av-parts__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 65% 35%; }
.asf-av-parts__bgs::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15, 22, 24, .96) 0%, rgba(15, 22, 24, .86) 42%, rgba(15, 22, 24, .45) 75%, rgba(15, 22, 24, .3)), linear-gradient(0deg, var(--asf-av-night), transparent 30%), linear-gradient(180deg, var(--asf-av-night), transparent 22%); }
.asf-av-parts__wrap { position: relative; }
.asf-av-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; max-width: 900px; margin-bottom: 44px; }
.asf-av-tab { text-align: left; background: none; border: 0; color: rgba(242, 237, 228, .62); cursor: pointer; padding: 10px 0; font: inherit; transition: color .25s; }
.asf-av-tab[aria-selected="true"], .asf-av-tab:hover { color: #F2EDE4; }
.asf-av-tab__label { display: block; font: 600 12px/1 var(--asf-av-sans); letter-spacing: .18em; text-transform: uppercase; margin-bottom: 10px; }
.asf-av-tab__title { display: block; font: 500 clamp(22px, 2.3vw, 30px)/1.1 var(--asf-av-serif); }
.asf-av-tab__bar { display: block; height: 2px; margin-top: 16px; background: rgba(242, 237, 228, .2); position: relative; overflow: hidden; }
.asf-av-tab__bar::after { content: ""; position: absolute; inset: 0; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--asf-av-ease); }
.asf-av-tab[aria-selected="true"] .asf-av-tab__bar::after { transform: scaleX(1); }
.asf-av-panel { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 80px); max-width: 980px; animation: asf-av-fade .7s var(--asf-av-ease) both; }
.asf-av-panel[hidden] { display: none; }
.asf-av-panel__title { font: 500 clamp(56px, 7.4vw, 104px)/.95 var(--asf-av-serif); letter-spacing: -.035em; }
.asf-av-panel__line { font: italic 400 clamp(24px, 2.4vw, 32px)/1.3 var(--asf-av-serif); color: var(--gold-ink); margin: 18px 0 30px !important; }
.asf-av-panel__epi { margin: 0; padding-left: 22px; border-left: 1px solid var(--gold); color: var(--fg-soft); }
.asf-av-panel__epi p { font: italic 400 21px/1.45 var(--asf-av-serif); margin-bottom: 8px !important; }
.asf-av-panel__epi footer { font-size: 14px; letter-spacing: .14em; text-transform: uppercase; }
.asf-av-panel__side { align-self: end; }
.asf-av-panel__within { font: 600 12px/1 var(--asf-av-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--fg-soft); margin-bottom: 14px !important; }
.asf-av-panel__chapters { margin: 0; padding: 0; list-style: none; counter-reset: c; border-top: 1px solid var(--line); }
.asf-av-panel__chapters li { counter-increment: c; display: flex; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--line); font: 500 20px/1.3 var(--asf-av-serif); }
.asf-av-panel__chapters li::before { content: counter(c, decimal-leading-zero); font: 500 13px/2 var(--asf-av-sans); color: var(--gold-ink); }
@keyframes asf-av-fade { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (max-width: 860px) {
	.asf-av-panel { grid-template-columns: 1fr; }
	.asf-av-tabs { gap: 14px; }
	.asf-av-parts__bgs::after { background: linear-gradient(0deg, rgba(15, 22, 24, .97) 0%, rgba(15, 22, 24, .86) 55%, rgba(15, 22, 24, .55)), linear-gradient(180deg, var(--asf-av-night), transparent 22%); }
}
@media (max-width: 520px) {
	.asf-av-tab__title { font-size: 19px; }
	.asf-av-tab__label { font-size: 11px; letter-spacing: .1em; }
}

/* Excerpt teaser */
.asf-av-excerpt__card { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 90px); align-items: center; }
.asf-av-excerpt__page {
	background: #EDE7DC; color: #2A3236; padding: 48px 44px 64px; border-radius: 3px; position: relative; transform: rotate(-2deg);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .8), 10px 10px 0 -2px #D9D1C2;
	font: 400 20px/1.6 var(--asf-av-serif); max-width: 460px; aspect-ratio: 5 / 6; overflow: hidden;
	-webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 70%, transparent 100%);
}
.asf-av-excerpt__page .asf-av-excerpt__head { font: 600 11px/1 var(--asf-av-sans); letter-spacing: .2em; text-transform: uppercase; color: #6C7478; text-align: center; margin-bottom: 26px !important; }
.asf-av-excerpt__page p + p { margin-top: .7em !important; }
.asf-av-excerpt__page p { margin: 0 !important; }
.asf-av-excerpt__copy .asf-av-lede { margin: 16px 0 28px !important; }
@media (max-width: 860px) { .asf-av-excerpt__card { grid-template-columns: 1fr; } .asf-av-excerpt__page { max-width: 460px; } }

/* Reader dialog */
.asf-av-reader { width: min(780px, calc(100% - 24px)); max-height: 90svh; padding: 0; border: 0; border-radius: 6px; background: #EFEAE1; color: #263136; box-shadow: 0 40px 120px rgba(0, 0, 0, .6); overscroll-behavior: contain; }
.asf-av-reader::backdrop { background: rgba(7, 12, 13, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.asf-av-reader[open] { animation: asf-av-fade .45s var(--asf-av-ease); }
.asf-av-reader__sheet { padding: clamp(48px, 7vw, 80px) clamp(24px, 7vw, 84px) clamp(36px, 5vw, 60px); --gold-ink: #7D5A1D; --fg: #263136; --bg: #EFEAE1; --btn-bg: #263136; --btn-fg: #EFEAE1; --gold: #B5873A; }
.asf-av-reader__close { position: absolute; right: 14px; top: 14px; width: 48px; height: 48px; border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 34px; line-height: 1; cursor: pointer; }
.asf-av-reader__close:hover { background: rgba(0, 0, 0, .06); }
.asf-av-reader__title { font: 500 clamp(40px, 5vw, 58px)/1 var(--asf-av-serif); margin-bottom: 30px !important; }
.asf-av-reader__text p { font: 400 clamp(21px, 2vw, 24px)/1.7 var(--asf-av-serif); margin-bottom: .9em !important; }
.asf-av-reader__end { font-size: 15px; color: #55636A; margin: 34px 0 22px !important; }

/* Pendulum */
.asf-av-pend { background: linear-gradient(180deg, var(--asf-av-night), var(--asf-av-night-2)); }
.asf-av-pend__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 90px); align-items: center; }
.asf-av-pend__box { --angle: 0deg; background: rgba(242, 237, 228, .04); border: 1px solid var(--line); border-radius: 8px; padding: 34px clamp(20px, 4vw, 40px) 30px; text-align: center; }
.asf-av-pend__stage { position: relative; height: 240px; }
.asf-av-pend__arc { position: absolute; left: 12%; right: 12%; top: -50%; bottom: 8px; border: 1px dashed rgba(212, 164, 83, .35); border-radius: 50%; clip-path: inset(62% 0 0); }
.asf-av-pend__pivot { position: absolute; left: calc(50% - 5px); top: 6px; width: 10px; height: 10px; border-radius: 50%; background: var(--gold); }
.asf-av-pend__arm { position: absolute; left: calc(50% - 1px); top: 11px; width: 2px; height: 170px; background: linear-gradient(rgba(242, 237, 228, .5), #F2EDE4); transform-origin: top center; transform: rotate(var(--angle)); transition: transform .6s cubic-bezier(.2, .9, .25, 1.2); }
.asf-av-pend__bob { position: absolute; left: -24px; bottom: -46px; width: 50px; height: 50px; border-radius: 50%; background: radial-gradient(circle at 32% 28%, #FBE9C4, #D4A453 38%, #7D5A1D 80%); box-shadow: 0 16px 30px -10px rgba(0, 0, 0, .7); }
.asf-av-pend__control { display: block; margin-top: 20px; }
.asf-av-pend__ends { display: flex; justify-content: space-between; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-soft); margin-bottom: 8px; }
.asf-av-pend__range { width: 100%; accent-color: var(--gold); height: 32px; cursor: ew-resize; background: transparent; }
.asf-av-pend__caption { min-height: 150px; margin-top: 18px; }
.asf-av-pend__caption .asf-av-h3 { animation: asf-av-fade .45s var(--asf-av-ease); }
.asf-av-pend__caption p { color: var(--fg-soft); max-width: 30em; margin: 0 auto; }
@media (max-width: 860px) { .asf-av-pend__grid { grid-template-columns: 1fr; } }

/* Foundation quote */
.asf-av-found { text-align: center; overflow: hidden; background: var(--asf-av-night-2); }
.asf-av-found__wrap { position: relative; max-width: 1080px; padding-top: 110px; }
.asf-av-found__seam { left: 50%; top: 0; height: 90px; width: 40px; transform: translateX(-50%); }
.asf-av-found__quote { margin: 0; }
.asf-av-found__lead { font: italic 400 clamp(22px, 2.4vw, 32px)/1.3 var(--asf-av-serif); color: var(--fg-soft); }
.asf-av-found__main { font: 500 clamp(40px, 6vw, 86px)/1.06 var(--asf-av-serif); letter-spacing: -.02em; margin: 0 !important; }
.asf-av-found__quote footer { margin-top: 30px; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-soft); }

/* Content note */
.asf-av-note { background: var(--asf-av-night-2); padding-top: 0; }
.asf-av-note__card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(28px, 5vw, 70px); border: 1px solid var(--line); border-radius: 8px; padding: clamp(28px, 4vw, 48px); max-width: 1100px; }
.asf-av-note__title { font: 500 30px/1.15 var(--asf-av-serif); margin-bottom: 14px !important; }
.asf-av-note__card p { color: var(--fg-soft); font-size: 17px; }
.asf-av-note__lines { list-style: none; margin: 0; padding: 0; align-self: center; }
.asf-av-note__lines li { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 17px; }
.asf-av-note__lines a, .asf-av-note__lines strong { font-weight: 600; color: var(--gold-ink); text-decoration: none; white-space: nowrap; }
.asf-av-note__lines a:hover { text-decoration: underline; }
@media (max-width: 760px) { .asf-av-note__card { grid-template-columns: 1fr; } }

/* Under the crack: the car park at dawn (pencil) */
.asf-av-open__underimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: calc(.15 + var(--open) * .45); filter: brightness(.6); transform: scale(calc(1.12 - var(--open) * .1)); }

/* 2:47 → 9:00 (JS sets --t 0..1 and the clock digits) */
.asf-av-clock { position: relative; height: 300svh; --t: 0; background: var(--asf-av-night); }
.asf-av-clock__stage { position: sticky; top: 0; height: 100svh; min-height: 560px; overflow: hidden; isolation: isolate; display: flex; align-items: center; }
.asf-av-clock__scene { position: absolute; inset: 0; z-index: -2; }
.asf-av-clock__scene img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; }
.asf-av-clock__scene--a { transform: scale(calc(1.02 + var(--t) * .06)); }
.asf-av-clock__scene--b { opacity: clamp(0, calc((var(--t) - .45) * 5), 1); }
.asf-av-clock__stage::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10, 14, 16, .9) 0%, rgba(10, 14, 16, .6) 40%, rgba(10, 14, 16, .1) 75%); }
.asf-av-clock__wrap { position: relative; }
.asf-av-clock__time { font: 300 clamp(96px, 15vw, 220px)/.9 var(--asf-av-sans); letter-spacing: -.05em; font-variant-numeric: tabular-nums; color: #F2EDE4; margin: 0 0 24px !important; display: flex; align-items: baseline; gap: 14px; }
.asf-av-clock__time small { font-size: .2em; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); }
.asf-av-clock__lines { position: relative; min-height: 200px; max-width: 640px; }
.asf-av-clock__line { position: absolute; inset: 0 auto auto 0; }
.asf-av-clock__line--a { opacity: clamp(0, calc((.42 - var(--t)) * 6), 1); transform: translateY(calc(var(--t) * -40px)); }
.asf-av-clock__line--b { opacity: clamp(0, calc((var(--t) - .55) * 6), 1); transform: translateY(calc((1 - var(--t)) * 40px)); }
.asf-av-clock__big { font: 500 clamp(32px, 3.6vw, 52px)/1.12 "Cormorant Garamond", Georgia, serif; color: #F2EDE4; margin-bottom: 14px !important; }
.asf-av-clock__sub { font-size: 19px; color: #C2CCCE; }
.asf-av-clock__end { font: italic 500 clamp(26px, 2.6vw, 36px)/1.2 "Cormorant Garamond", Georgia, serif; color: var(--gold-ink); margin: 26px 0 0 !important; opacity: clamp(0, calc((var(--t) - .82) * 7), 1); }
.asf-av-clock__bar { position: absolute; left: var(--asf-av-gutter); right: var(--asf-av-gutter); bottom: 34px; height: 2px; background: rgba(242, 237, 228, .15); }
.asf-av-clock__bar span { display: block; height: 100%; background: var(--gold); transform-origin: left; transform: scaleX(var(--t)); }
@media (max-width: 760px) {
	.asf-av-clock__stage { align-items: flex-end; padding-bottom: 80px; }
	.asf-av-clock__stage::after { background: linear-gradient(0deg, rgba(10, 14, 16, .95) 0%, rgba(10, 14, 16, .7) 55%, rgba(10, 14, 16, .2)); }
	.asf-av-clock__lines { min-height: 230px; }
	.asf-av-clock__scene img { object-position: 75% 50%; }
}

/* Becoming: the pencil world turns into the painted garden */
.asf-av-end { position: relative; overflow: hidden; isolation: isolate; text-align: center; min-height: 112svh; display: flex; align-items: flex-start; padding-top: clamp(140px, 22vh, 240px);
	--fg: var(--asf-av-ink); --fg-soft: var(--asf-av-ink-soft); --gold: #B5873A; --gold-ink: #8A5A1E; --btn-bg: var(--asf-av-forest); --btn-fg: var(--asf-av-cream); --c: 0; color: var(--fg); background: var(--asf-av-night-2); }
.asf-av-end__art { position: absolute; inset: 0; z-index: -2; }
.asf-av-end__art img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 70%; filter: grayscale(calc(1 - var(--c))) brightness(calc(.35 + var(--c) * .65)); }
.asf-av-end::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--asf-av-night-2) 0%, rgba(22, 33, 37, calc(.6 - var(--c) * .6)) 18%, rgba(251, 245, 236, calc(var(--c) * .35)) 45%, transparent 70%); }
.asf-av-end__wrap { max-width: 900px; }
.asf-av-end__lead { font: italic 400 clamp(26px, 2.6vw, 34px)/1.2 "Cormorant Garamond", Georgia, serif; margin: 0 !important; color: color-mix(in srgb, #F2EDE4 calc((1 - var(--c)) * 100%), var(--asf-av-ink)); }
.asf-av-end__title { font: italic 400 clamp(84px, 13vw, 190px)/1.02 "Cormorant Garamond", Georgia, serif; letter-spacing: -.05em; color: color-mix(in srgb, #F2EDE4 calc((1 - var(--c)) * 100%), var(--asf-av-ink)); }
.asf-av-end .asf-av-lede { margin: 10px auto 34px; color: color-mix(in srgb, #F2EDE4 calc((1 - var(--c)) * 100%), var(--asf-av-ink)); font-weight: 500; }
.asf-av-end .asf-av-btn--glass { color: var(--asf-av-ink); border-color: rgba(31, 42, 38, .2); background: rgba(255, 251, 244, .8); }

/* Reduced motion: no scroll-linked travel; finished states visible. */
@media (prefers-reduced-motion: reduce) {
	.asf-av-open { height: auto; }
	.asf-av-open__stage { position: relative; height: 100svh; }
	.asf-av-stone { transform: none !important; }
	.asf-av-open__title { opacity: 1 !important; transform: none !important; }
	.asf-av-open__quote, .asf-av-open__hint { display: none; }
	.asf-av-clock { height: auto; --t: 1; }
	.asf-av-clock__stage { position: relative; }
	.asf-av-clock__line--a { display: none; }
	.asf-av-clock__line--b { position: relative; }
	.asf-av-end { --c: 1; }
}
.asf-av-found__seam { display: none; }
.asf-av-found__wrap::before { content: ""; position: absolute; left: 50%; top: 0; width: 2px; height: 80px; margin-left: -1px; background: linear-gradient(transparent, var(--gold)); }
