@font-face{font-family:Geist;src:url('/assets/geist.ttf') format('truetype');font-style:normal;font-weight:400 500;font-display:swap}
@font-face{font-family:'Crimson Pro';src:url('/assets/crimson-pro.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
:root{--page-width:1128px;--reading-width:648px;--page-gutter:24px;--ink:#171717;--body-ink:#404040;--muted-ink:#737373;--heading-font:'Crimson Pro',Georgia,serif;--heading-size:2.5rem;--heading-line:1.1;--heading-tracking:-.03em;font-family:Geist,Arial,sans-serif;color:var(--body-ink);background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
body{margin:0;text-transform:lowercase}
input,textarea,[contenteditable=true]{text-transform:none}
main{max-width:var(--page-width);padding:0 var(--page-gutter);margin:0 auto}
.introduction{padding:64px 0 80px}
.scene-layout{width:100%;overflow-x:clip;overflow-clip-margin:var(--page-gutter)}
.scene-frame{position:relative;width:100%;aspect-ratio:16/9}
button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.scene-surface{border:0;padding:0;margin:0;background:none;display:block;position:absolute;inset:0;text-align:left;touch-action:pan-y}
canvas{position:absolute;inset:-24px;display:block;width:calc(100% + 48px);height:calc(100% + 48px);pointer-events:none}
.intro-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin:28px 0 20px}.intro-heading h1{margin:0;min-width:0}.scene-controls{position:relative;z-index:2;display:flex;gap:16px;flex-shrink:0;padding-top:4px;background:#fff}
.control{display:flex;align-items:center;gap:8px;background:none;border:0;padding:8px 4px;font-size:1rem;line-height:1}
.next-arrow{transition:transform .2s}
.control:hover .next-arrow{transform:translateX(3px)}
h1{font-family:var(--heading-font);font-weight:420;font-size:var(--heading-size);line-height:var(--heading-line);letter-spacing:var(--heading-tracking);color:var(--ink);margin:28px 0 20px;text-wrap:balance}
.intro-copy{max-width:648px;font-size:1rem;line-height:1.5}
.intro-copy p+p,.project-description p+p{margin-top:16px}
.gate-note{font-size:1rem;line-height:1.5;max-width:var(--reading-width);margin-top:16px}
p{margin:0}
.intro-copy a{color:inherit;text-decoration-color:#b6b6b6;text-underline-offset:3px;transition:text-decoration-color .2s}
.intro-copy a:hover{text-decoration-color:#404040}
.intro-copy a svg{margin-left:2px;vertical-align:baseline}
.name{position:relative;white-space:nowrap}
.name-dots{position:absolute;bottom:-3px;left:0;right:0;height:4px;display:flex;justify-content:space-between;pointer-events:none}
.name-dots i{display:block;width:3px;height:3px;border-radius:50%;background:#aaa;transition:background .45s}
button:focus-visible,a:focus-visible{outline:2px solid #386961;outline-offset:5px;border-radius:2px}
.scene-surface:focus-visible{outline-offset:10px}
.scene-error{position:absolute;inset:45% 10% auto;text-align:center;background:#fff;padding:12px;font-size:.875rem;pointer-events:none}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.noscript{max-width:800px;margin:0 auto 30px;padding:0 24px}
@media(max-width:767px){.intro-heading{flex-direction:column;gap:16px}.scene-controls{padding:0;gap:20px}.control{padding:6px 0}}
@media(max-width:639px){:root{--page-gutter:16px}main{padding:0 var(--page-gutter)}.introduction{padding-top:20px;padding-bottom:48px}.intro-heading{margin:20px 0 20px}.control{font-size:.875rem}h1{font-size:1.625rem;letter-spacing:-.03em;line-height:2rem;margin:20px 0 16px}.intro-copy{max-width:100%;font-size:1rem;line-height:1.5}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.home-page .introduction{padding:0;width:100%}
.home-page .scene-layout{position:relative;width:100%;margin-inline:auto;overflow:visible}
