/* A photographic essay, directed by the reader's scroll. All effects are local. */
@font-face{font-family:STHeroInter;src:url('/assets/runtime/dd8a4575be9806105ac3decd02805cd2782fe7c05abb02c582316bc436ce03ae/font.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--paper:#fff;--ink:#0a0d12;--focus:#155eef;--type:clamp(30px,3.15vw,48px);--gutter:clamp(28px,7vw,120px);--nav-offset:104px}
*{box-sizing:border-box}html{scroll-padding-top:var(--nav-offset)}body{margin:0;background:var(--paper);color:var(--ink);font-family:STHeroInter,Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,p{margin:0}h1,h2{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:6px}.skip-link{position:fixed;z-index:200;top:12px;left:12px;padding:12px 20px;background:var(--paper);transform:translateY(-160%)}.skip-link:focus{transform:none}
.preview-nav .st_nav_guest_burger img{width:20px;height:20px;object-fit:contain}
/* Navigation stays reachable, and steps out of the reading area on downward scroll. */
.preview-nav{transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .35s ease}.nav-resting .preview-nav{transform:translateY(-110%);opacity:0;pointer-events:none}.nav-resting .preview-nav:focus-within{transform:none;opacity:1;pointer-events:auto}
.scene{scroll-margin-top:calc(-1 * var(--nav-offset));position:relative;color:var(--paper);background:var(--ink)}
.scene__stage{position:relative;isolation:isolate;min-height:100svh;display:grid;align-items:center;padding:150px var(--gutter) 100px}
.scene__image{position:absolute;z-index:-2;inset:0;overflow:hidden;background:var(--ink)}
.scene__image img{width:100%;height:100%;object-fit:cover;object-position:var(--crop,50% 50%);filter:brightness(var(--exposure,.96));transform:scale(calc(var(--photo-scale,1) * var(--detail-scale,1)));transform-origin:var(--crop,50% 50%)}
.scene__stage:after{content:'';position:absolute;z-index:-1;inset:0;pointer-events:none;background:var(--scrim)}
.scene__captions{width:100%;max-width:880px;font-size:var(--type);font-weight:450;line-height:1.22;letter-spacing:-.042em;text-wrap:balance}
.beat+.beat{margin-top:2em}.beat p+p,.beat h2+p{margin-top:.72em}.beat em{font-style:normal}.beat h1{font-size:inherit}
.scene--memory{--tail-beats:.75;--crop:57% 100%;--scrim:linear-gradient(90deg,rgba(13,27,22,.44),rgba(13,27,22,.12) 55%,transparent 80%)}
.scene--memory .scene__stage{align-items:center}.scene--memory .scene__captions{max-width:880px}
/* The opening's left-aligned, vertically centered type is the common frame.
   Only focal crops vary; new photographs share one exposure and grain treatment. */
.scene:not(.scene--memory){--exposure:.90;--scrim:linear-gradient(90deg,rgba(13,27,22,.44) 65%,rgba(13,27,22,.35) 80%,transparent)}
.scene:not(.scene--memory) .scene__stage:before{content:'';position:absolute;z-index:-1;inset:0;pointer-events:none;background:url('/assets/runtime/693469252f13506f04b7073d375412bf9ec2819fc8f45b362baca0594bdc8ed8/grain.svg') repeat;opacity:.18;mix-blend-mode:soft-light}
.scene--imagination{--crop:58% 50%}
.scene--heart{--crop:55% 50%}
.scene--reading{--crop:65% 32%}
.scene--held{--crop:53% 38%}
.scene--drawing{--crop:58% 50%}
.scene--joy{--crop:58% 50%}
.beat strong{font-weight:600}
.keep-phrase{display:inline-block;max-width:100%;white-space:normal}
.scene--flow .keep-phrase{display:inline;white-space:normal}
.sentence-period{opacity:var(--period-opacity,1)}
.period-traveller{position:fixed;z-index:5;top:0;left:0;pointer-events:none;color:var(--paper);font:inherit;opacity:0;will-change:transform,filter}
.read-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);width:44px;height:44px;display:grid;place-items:center;color:var(--paper)}.read-cue svg{width:16px;height:28px;fill:none;stroke:currentColor;stroke-width:1.4}
.reading-anchor{position:absolute;top:80svh;width:1px;height:1px;pointer-events:none}
/* The static document is the fallback. JS enables a measured, short scene hold;
   oversized text and reduced motion use ordinary reading flow. */
.is-directed .scene:not(.scene--flow){height:calc(100svh + (var(--beats) - 1 + var(--tail-beats,0)) * 88svh)}
.is-directed .scene:not(.scene--flow) .scene__stage{position:sticky;top:0;height:100svh;min-height:0}
.is-directed .scene:not(.scene--flow) .scene__captions{display:grid;align-items:end}
.is-directed .scene:not(.scene--flow) .beat{grid-area:1/1;margin:0;opacity:var(--beat-opacity,0);pointer-events:none}
.word{display:inline-block;white-space:pre}
.scene--flow .word{display:inline;white-space:normal;overflow-wrap:anywhere}
.founders{max-width:720px;margin:48px auto 0;text-align:center;font-size:17px;line-height:1.65;letter-spacing:-.015em;color:#414651}.founders-logo{width:190px;height:auto;display:block;margin:0 auto 24px;filter:brightness(0)}.founders a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.founders a:hover{color:var(--ink)}
@media(min-width:1101px){.scene.scene--joy{--scrim:linear-gradient(90deg,rgba(13,27,22,.48) 65%,rgba(13,27,22,.35) 80%,transparent)}}
/* Smaller viewports keep the desktop composition: center-left photo copy.
   Use one placement rule across tablet and phone, rather than a bottom caption band. */
@media(max-width:1100px){
 :root{--type:36px;--gutter:6vw}
 .scene:not(.scene--closing){--scrim:linear-gradient(180deg,rgba(17,28,23,.08),rgba(17,28,23,.38) 32%,rgba(17,28,23,.38) 68%,rgba(17,28,23,.08))}
 .scene:not(.scene--closing) .scene__stage{align-items:center;padding:104px var(--gutter)}
 .scene:not(.scene--closing) .scene__captions{max-width:900px;text-align:left}
 .is-directed .scene:not(.scene--flow):not(.scene--closing) .scene__captions{align-items:center}
 .scene--memory{--crop:57% 50%}.scene--memory .scene__captions{max-width:600px}
 .scene--heart .scene__image img{--detail-scale:1.22;transform-origin:56% 0%}
}
@media(max-width:767px){
 :root{--type:28px;--gutter:26px}.scene__captions{line-height:1.23;letter-spacing:-.04em}
 .is-directed .scene:not(.scene--flow){height:calc(100svh + (var(--beats) - 1 + var(--tail-beats,0)) * 105svh)}
 .scene--memory{--crop:58% 50%}
 .scene:not(.scene--closing) .scene__captions{max-width:380px}
 .scene--heart .scene__image img{--detail-scale:1.32;transform-origin:56% 0%}
 .scene--imagination{--crop:57% 50%}.scene--heart{--crop:56% 50%}.scene--reading{--crop:65% 32%}.scene--held{--crop:57% 40%}.scene--drawing{--crop:59% 50%}.scene--joy{--crop:59% 50%}
 .founders{font-size:16px}.founders-logo{width:180px}
}
@media(max-width:360px){:root{--type:25px;--gutter:22px}}
@media(prefers-reduced-motion:reduce){.preview-nav{transition:none}.nav-resting .preview-nav{transform:none;opacity:1;pointer-events:auto}.word{filter:none!important;transform:none!important;opacity:1!important}.period-traveller{display:none}.sentence-period{opacity:1}}

/* The white coda uses the same entrance as the photographs, with one last hold. */
.scene.scene--closing{background:var(--paper);color:var(--ink)}
.scene.scene--closing .scene__stage{align-items:center;justify-items:center;padding:120px 28px 72px}
.scene.scene--closing .scene__stage:before,.scene.scene--closing .scene__stage:after{display:none}
.closing-content{width:100%;max-width:960px;text-align:center}
.founders p{text-wrap:balance}
.scene--closing .scene__captions{max-width:none;text-align:center}
.scene--closing .fuel{font-size:clamp(48px,5vw,76px);line-height:1.08;letter-spacing:-.045em;white-space:nowrap}
.scene--closing .fuel strong{font-weight:700}
.is-directed .scene--closing:not(.scene--flow) .scene__captions{align-items:center}
.is-directed .scene--closing:not(.scene--flow) .founders{opacity:0;pointer-events:none}
.is-directed .scene--closing.has-founders:not(.scene--flow) .founders{opacity:1;pointer-events:auto}
.scene--closing.scene--flow .fuel{white-space:normal}
/* The established prompt appears only in the pre-footer, after the manifesto. */
.about-page .adventure-ending__composer-slot{height:auto;position:relative;z-index:3}
.about-composer{--composer-input-width:100%;position:relative;font-family:STHeroInter,Inter,Arial,sans-serif;letter-spacing:normal}
.about-composer .sth-prompt{max-width:none}
.about-composer .sth-feedback{font-size:14px;line-height:1.5;margin:12px 10px 0}
.about-composer .sth-feedback:empty{display:none}
.about-composer .sth-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:767px){.scene.scene--closing .scene__stage{padding:112px 26px 64px}.scene--closing .fuel{font-size:48px}.founders{margin-top:40px}}

/* The founders receive the manifesto's scale and focus, with equal billing.
   Caption visibility, not image arrival, starts the name reveal. */
.team-portrait{position:relative;isolation:isolate;margin:0;width:100%;height:min(100svh,75vw);overflow:hidden;color:var(--paper);background:var(--ink);scroll-margin-top:calc(-1 * var(--nav-offset))}
.team-portrait__image{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.team-portrait:after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,transparent 54%,rgba(10,13,18,.16) 68%,rgba(10,13,18,.72))}
.team-portrait__names{position:absolute;left:12%;right:16%;bottom:7%;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:4vw;align-items:start}
.team-portrait__person{text-align:center}
.team-portrait__name{font-size:clamp(44px,4.4vw,80px);font-weight:600;line-height:1;letter-spacing:-.055em;white-space:nowrap}
.team-portrait__name-word{display:inline-block}
.team-portrait__role{margin-top:16px;font-size:18px;font-weight:400;line-height:1.45;letter-spacing:-.015em;text-wrap:balance}
.team-portrait__role-title{display:inline-block;white-space:nowrap}
.team-portrait__mobile-break{display:none}
.team-portrait.is-enhanced .team-portrait__image{transform:scale(1.035);transition:transform 2400ms cubic-bezier(.2,.65,.2,1)}
.team-portrait.is-enhanced .team-portrait__name-word{opacity:0;filter:blur(6px);transform:translateY(16px);transition:opacity 850ms ease,filter 1000ms ease,transform 1100ms cubic-bezier(.16,1,.3,1);transition-delay:calc(120ms + var(--name-order,0) * 140ms)}
.team-portrait.is-enhanced .team-portrait__role{opacity:0;transform:translateY(8px);transition:opacity 750ms ease 720ms,transform 950ms cubic-bezier(.16,1,.3,1) 720ms}
.team-portrait.is-photo-visible .team-portrait__image{transform:scale(1)}
.team-portrait.is-names-visible .team-portrait__name-word{opacity:1;filter:blur(0);transform:none}
.team-portrait.is-names-visible .team-portrait__role{opacity:1;transform:none}
@media(max-width:1100px){.team-portrait__names{left:4%;right:12%}.team-portrait__role{font-size:16px}}
@media(max-width:767px){
 .team-portrait{height:auto;aspect-ratio:4/5}
 .team-portrait__image{position:absolute;inset:0;object-position:47% 50%}
 .team-portrait:after{background:linear-gradient(180deg,transparent 48%,rgba(10,13,18,.24) 66%,rgba(10,13,18,.8))}
 .team-portrait__names{left:5%;right:5%;bottom:7%;column-gap:6vw}
 .team-portrait__name{font-size:clamp(30px,8.5vw,48px);line-height:.98;white-space:normal}
 .team-portrait__name-word{display:block}
 .team-portrait__role{margin-top:12px;font-size:15px;line-height:1.4}
 .team-portrait__mobile-break{display:block}
}
@media(prefers-reduced-motion:reduce){.team-portrait.is-enhanced .team-portrait__image,.team-portrait.is-enhanced .team-portrait__name-word,.team-portrait.is-enhanced .team-portrait__role{transition:none;transform:none;filter:none;opacity:1}}

/* Founder profiles: equal touch targets beneath the existing roles. */
.team-portrait__person{display:grid;grid-template-rows:auto 1fr auto;align-self:stretch}
.team-portrait__socials{display:flex;justify-content:center;gap:1.6px;margin-top:12px}
.team-portrait__socials a{display:grid;place-items:center;width:44px;height:44px;color:inherit;text-decoration:none;transition:opacity 180ms ease}
.team-portrait__socials a:hover{opacity:.65}
.team-portrait__socials a:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:8px}
.team-portrait__socials svg{display:block;width:23.1px;height:23.1px}
@media(prefers-reduced-motion:reduce){.team-portrait__socials a{transition:none}}

.team-portrait.is-enhanced .team-portrait__socials{opacity:0;transform:translateY(8px);transition:opacity 750ms ease 720ms,transform 950ms cubic-bezier(.16,1,.3,1) 720ms}
.team-portrait.is-names-visible .team-portrait__socials{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.team-portrait.is-enhanced .team-portrait__socials{opacity:1;transform:none;transition:none}}
