.project-story{position:relative}
.project-intro{margin-top:-22svh}
.story-panel{position:relative;padding:clamp(40px,6svh,72px) max(6vw,24px) max(90px,var(--fact-scroll-tail,0px))}
.story-content{width:100%;max-width:1320px;margin:0 auto}
.story-title{margin:0;font-size:clamp(40px,6.55vw,96px);font-weight:500;line-height:1.07;letter-spacing:-.065em;max-width:1200px}
.story-line{display:block}
.spray-word{display:inline-block;position:relative;white-space:nowrap}
.spray-word>span{position:relative;z-index:1}
spray-underline{position:absolute;left:-20%;top:calc(100% - .36em);width:140%;aspect-ratio:2.5;pointer-events:none;z-index:0}
.facts-grid{display:grid;gap:clamp(36px,4.8vw,68px);margin-top:clamp(110px,11vw,160px)}
.facts-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,5vw,80px);align-items:start}
.story-fact{min-width:0;text-align:center;scroll-margin-top:24svh}
cad-number{display:block;width:100%;aspect-ratio:var(--cad-aspect,5.117900099)}
.fact-caption{max-width:36ch;margin:1px auto 0;padding:0 10px;font-size:clamp(14px,1.08vw,16px);line-height:1.55;letter-spacing:-.015em;color:var(--muted-ink,currentColor);text-align:center;text-wrap:pretty}
.story-outro{margin-top:clamp(82px,10svh,128px);text-align:center}
.story-context{max-width:560px;margin:0 auto 30px;font-size:clamp(14px,1.15vw,17px);line-height:1.6;letter-spacing:-.015em;color:var(--muted-ink,currentColor);text-wrap:pretty}
.story-closing{margin:0;font-size:clamp(30px,3.65vw,52px);font-weight:500;line-height:1.15;letter-spacing:-.055em}
.mobile-break{display:none}
@media(max-width:700px){.project-intro{margin-top:-30svh}.story-panel{padding:48px 24px max(64px,var(--fact-scroll-tail,0px))}.story-title{font-size:clamp(38px,7.2vw,52px);line-height:1.12;letter-spacing:-.055em}.facts-grid{margin-top:100px;gap:38px}.facts-row{grid-template-columns:1fr;gap:38px}.fact-caption{max-width:36ch;padding:0 7px;font-size:14px}.story-outro{margin-top:76px}.story-context{max-width:340px;margin-bottom:24px;font-size:14px}.story-closing{font-size:clamp(30px,6.2vw,40px)}.mobile-break{display:block}}
@media(max-height:620px) and (min-width:701px){.project-intro{margin-top:-10svh}.story-panel{padding:40px 6vw max(40px,var(--fact-scroll-tail,0px))}.story-title{font-size:clamp(38px,5.7vw,72px)}.facts-grid{margin-top:100px}.story-outro{margin-top:70px}}

.nowrap{white-space:nowrap}

.spray-word spray-underline:not([data-progress]):not([data-state="fallback"]),.spray-word spray-underline[data-progress="0.0000"]{visibility:hidden}

.story-kicker{margin:0 0 clamp(24px,4vh,46px);font:11px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:var(--muted-ink,currentColor)}
.story-copy{max-width:570px;margin:clamp(88px,13vh,150px) 0 0 auto;font-size:clamp(17px,1.45vw,21px);line-height:1.6;letter-spacing:-.018em}
.story-copy p{margin:0}
.story-copy p+p{margin-top:18px;color:var(--muted-ink,currentColor)}
.story-signature{display:flex;gap:16px;align-items:center;margin-top:32px;font-size:11px;line-height:1.5;letter-spacing:.035em;color:var(--muted-ink,currentColor)}
.story-signature::before{content:'';display:block;width:28px;height:1px;background:currentColor}
@media(max-width:700px){.story-copy{margin-top:86px;font-size:16px;max-width:480px}.story-kicker{font-size:10px;margin-bottom:26px}.story-signature{margin-top:25px;font-size:10px}}
@media(max-height:620px) and (min-width:701px){.story-kicker{margin-bottom:20px}.story-copy{margin-top:65px;font-size:15px;max-width:500px}.story-copy p+p{margin-top:10px}.story-signature{margin-top:18px}}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.story-outro{padding-bottom:clamp(28px,4vw,56px)}
.circle-word{display:inline-block;position:relative;white-space:nowrap;margin-left:.55em}
.circle-label{position:relative;z-index:1}
spray-circle{position:absolute;left:-70%;top:50%;width:240%;aspect-ratio:14/11;transform:translateY(-50%);pointer-events:none;z-index:0}
spray-circle[data-progress="0.0000"]{visibility:hidden}
.closing-enhanced .typing-letter{visibility:hidden}
.closing-enhanced .typing-letter.is-visible{visibility:visible}
.typing-letter.is-caret{position:relative}
.typing-letter.is-caret::after{content:'';position:absolute;left:100%;top:.12em;width:1px;height:.85em;background:currentColor;animation:typing-caret .65s step-end infinite}
@keyframes typing-caret{0%,100%{opacity:1}50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.typing-letter.is-caret::after{animation:none}}
@media(max-width:700px){.story-closing{line-height:1.75}}
