:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-retract:cubic-bezier(.36, 0, .66, -.56);--ease-layout:cubic-bezier(.65, 0, .35, 1);--ease-open:cubic-bezier(.16, 1, .3, 1);--ease-close:cubic-bezier(.7, 0, .84, 0);--ease-reveal:cubic-bezier(.22, 1, .36, 1);--bg:#f4f4f1;--ink:#090909;--ink-soft:#0909099e;--ink-faint:#0909092e;--panel:#ffffffad;--body-glow:#00000008;--body-start:#fafaf8;--body-end:#efefeb;--landscape-body-glow:#0000000a;--landscape-body-start:#fcfcfa;--landscape-body-end:#e6e6df;--thread-soft:#0003;--thread-mid:#00000061;--thread-strong:#000000b8;--thread-main:#050505;--connector:#00000052;--frame:#000000b8;--card-surface-rgb:255, 255, 255;--tag-border:#0000003d;--control-surface:#ffffffd1;--media-controls-surface:#fff;--media-controls-ink:#090909;--media-controls-track:#09090966;--media-viewport-surface:#fff;--title-unfilled-fill:#fff;--dev-hud:#00000061;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-right:env(safe-area-inset-right,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111310;--ink:#f2f0e8;--ink-soft:#f2f0e8ad;--ink-faint:#f2f0e833;--panel:#161915b8;--body-glow:#efecd80e;--body-start:#171a16;--body-end:#0b0d0b;--landscape-body-glow:#efecd816;--landscape-body-start:#252c22;--landscape-body-end:#060805;--thread-soft:#f2f0e838;--thread-mid:#f2f0e86b;--thread-strong:#f2f0e8b8;--thread-main:#f5f3ea;--connector:#f2f0e861;--frame:#f2f0e8c7;--card-surface-rgb:23, 26, 22;--tag-border:#f2f0e84d;--control-surface:#171a16e6;--media-controls-surface:rgb(var(--card-surface-rgb));--media-controls-ink:#fff;--media-controls-track:#ffffff61;--media-viewport-surface:#000;--title-unfilled-fill:#000;--dev-hud:#f2f0e894}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{overscroll-behavior:none}body{overscroll-behavior-x:none;overscroll-behavior-y:none;background:radial-gradient(circle at top left, var(--body-glow), transparent 30%), linear-gradient(180deg, var(--body-start) 0%, var(--body-end) 100%);color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;overflow-x:hidden}button,input,textarea,select{font:inherit}.thread-root{overscroll-behavior:none;min-height:100vh}.thread-root--landscape .story-track{background:radial-gradient(circle at top left, var(--landscape-body-glow), transparent 34%), linear-gradient(90deg, var(--landscape-body-start) 0%, var(--landscape-body-end) 100%)}.thread-root--landscape{height:var(--timeline-viewport-height,100dvh);min-height:var(--timeline-viewport-height,100dvh);overflow:hidden}.story-shell{z-index:2;position:relative}.story-scene{overscroll-behavior:contain;height:100%;position:relative;overflow:auto hidden}.thread-root--landscape .story-scene{touch-action:pan-x}.story-track{transform-origin:50%;height:100%;position:relative}.timeline-title-svg{z-index:4;pointer-events:none;position:fixed;overflow:visible}.timeline-curves-svg{z-index:1;pointer-events:none;position:absolute;overflow:hidden}.timeline-curve{fill:none;stroke-linecap:round;stroke-linejoin:round}.timeline-curve--strong{stroke:var(--thread-main);stroke-width:2.1px}.timeline-curve--mid{stroke:var(--thread-mid);stroke-width:1.35px}.timeline-curve--soft{stroke:var(--thread-soft);stroke-width:1.2px}.timeline-curve__arrow{fill:none;stroke:var(--thread-main);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.timeline-scroll-hint-svg{z-index:3;pointer-events:none;position:fixed;inset:0}.timeline-scroll-hint__label,.timeline-scroll-hint__arrow{fill:none;stroke:var(--thread-main);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;animation:1.45s ease-in-out infinite timeline-scroll-hint-pulse;animation-delay:var(--scroll-hint-delay)}.timeline-scroll-hint__label{fill:var(--thread-main);stroke:none;letter-spacing:.22em;font-size:9px;font-weight:600;animation:none}.timeline-curve-point{fill:var(--thread-main);transform-box:fill-box;transform-origin:50%;animation:timeline-point-pop .78s var(--ease-spring) both}.timeline-connector-svg{fill:none;stroke:var(--connector);stroke-width:1.15px;stroke-linecap:round;stroke-linejoin:round}.timeline-section-svg__separator{stroke:var(--thread-soft);stroke-width:1px;opacity:.46;transform-box:fill-box}.timeline-section-svg__separator--leading{transform-origin:bottom;animation:timeline-section-separator-leading-reveal .52s var(--ease-reveal) both}.timeline-section-svg__separator--trailing{transform-origin:top;animation:timeline-section-separator-trailing-reveal .52s var(--ease-reveal) both}.timeline-section-svg__marker{stroke:var(--thread-soft);stroke-width:1px;opacity:.56}.timeline-section-svg__tick{transform-box:fill-box;transform-origin:50%;animation:timeline-section-tick-reveal .36s var(--ease-reveal) .18s both}.timeline-section-svg__marker-dash{stroke-dasharray:2 4;transform-box:fill-box;transform-origin:50%;animation:timeline-section-marker-dash-reveal .44s var(--ease-reveal) .12s both}.timeline-section-cartouches{z-index:5;pointer-events:none;position:absolute;inset:0}.timeline-section-cartouche{width:max-content;color:var(--thread-main);transform:translate(var(--cartouche-align), var(--cartouche-vertical-align,0%));animation:timeline-section-cartouche-reveal .62s var(--ease-spring) both;position:absolute}.timeline-section-cartouche>span,.timeline-section-cartouche>strong{white-space:nowrap;text-transform:uppercase;display:block}.timeline-section-cartouche>span{color:var(--thread-soft);letter-spacing:.18em;margin-bottom:5px;font-size:.56rem;font-weight:600}.timeline-section-cartouche>strong{letter-spacing:.14em;font-size:clamp(.75rem,1.1vw,1rem);font-weight:500}.timeline-section-cartouche__letter{opacity:0;transform-origin:50%;animation:timeline-section-letter-reveal .36s var(--ease-reveal) var(--letter-delay) both;display:inline-block;transform:translateY(.55em)scale(3)}@keyframes timeline-point-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes timeline-scroll-hint-pulse{0%,24%{opacity:.16}44%,70%{opacity:1}to{opacity:.16}}@keyframes timeline-section-separator-leading-reveal{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes timeline-section-separator-trailing-reveal{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes timeline-section-tick-reveal{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes timeline-section-marker-dash-reveal{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes timeline-section-letter-reveal{0%{opacity:0;transform:translateY(.55em)scale(3)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes timeline-section-cartouche-reveal{0%{opacity:0;transform:translate(var(--cartouche-align), var(--cartouche-vertical-align,0%)) scale(.94)}to{opacity:1;transform:translate(var(--cartouche-align), var(--cartouche-vertical-align,0%)) scale(1)}}.thread-root--portrait .timeline-section-svg__separator--leading,.thread-root--portrait .timeline-section-svg__separator--trailing,.thread-root--portrait .timeline-section-svg__marker-dash{transform:scaleX(0)}.thread-root--portrait .timeline-section-svg__separator--leading{transform-origin:100%;animation-name:timeline-section-portrait-separator-leading-reveal}.thread-root--portrait .timeline-section-svg__separator--trailing{transform-origin:0;animation-name:timeline-section-portrait-separator-trailing-reveal}.thread-root--portrait .timeline-section-svg__tick{animation-name:timeline-section-portrait-tick-reveal}.thread-root--portrait .timeline-section-svg__marker-dash{animation-name:timeline-section-portrait-marker-dash-reveal}@keyframes timeline-section-portrait-separator-leading-reveal{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes timeline-section-portrait-separator-trailing-reveal{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes timeline-section-portrait-tick-reveal{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes timeline-section-portrait-marker-dash-reveal{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.thread-root *,.thread-root :before,.thread-root :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.timeline-scroll-hint__arrow{animation:none}.timeline-section-cartouche__letter,.timeline-scroll-hint__arrow{opacity:1;transform:none}}.hero-block{z-index:2;pointer-events:none;width:min(46vw,760px);position:absolute;top:48px;left:56px}.hero-block--fixed{z-index:0;position:fixed}.stroke-title__trace{pointer-events:none;width:auto;max-width:100%;height:auto;margin-bottom:24px;display:block;overflow:visible}.stroke-title__canvas{pointer-events:none;width:auto;max-width:100%;height:auto;margin-bottom:24px;display:block}.stroke-title__trace-group{opacity:var(--trace-opacity,1)}.stroke-title__trace-letter,.stroke-title__svg-outline,.stroke-title__svg-fill{fill:none;letter-spacing:-.05em;dominant-baseline:alphabetic;white-space:pre;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:800}.stroke-title__trace-letter{fill:none;stroke:var(--ink);stroke-width:var(--title-stroke-width,1.65);stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--trace-progress,0));stroke-linecap:round;stroke-linejoin:round;paint-order:stroke}.stroke-title__svg-outline{fill:var(--title-unfilled-fill);stroke:var(--ink);stroke-width:var(--title-stroke-width,1.65);stroke-linejoin:round}.stroke-title__fill-group{opacity:var(--title-fill-opacity,0)}.stroke-title__svg-fill{fill:var(--ink);stroke:none}.hero-copy{right:calc(22px + var(--safe-area-right));bottom:calc(56px + var(--safe-area-bottom));z-index:8;pointer-events:auto;-webkit-user-select:text;user-select:text;width:min(52ch,42vw);position:fixed}.hero-copy p{text-align:right;justify-items:end;gap:8px;width:100%;margin:0 0 0 auto;font-size:clamp(1rem,1.8vw,1.4rem);line-height:1.35;display:grid}.hero-copy p span{clip-path:inset(0 calc((1 - var(--line-draw,0)) * 100%) 0 0);opacity:calc(.18 + var(--line-draw,0) * .82);transform:translate3d(0, calc((1 - var(--line-draw,0)) * 14px), 0);display:block}.hero-copy p>span{text-align:right;white-space:nowrap;justify-self:end}.hero-copy p span:first-child{--line-draw:var(--subtitle-draw-a,0)}.hero-copy p span:last-child{--line-draw:var(--subtitle-draw-b,0)}.section-nav{display:none}.lab-launcher{bottom:calc(20px + var(--safe-area-bottom));left:calc(20px + var(--safe-area-left));z-index:45;justify-items:start;gap:8px;display:grid;position:fixed}.lab-launcher__controls{align-items:center;gap:10px;display:flex}.lab-launcher__button{box-sizing:border-box;border:1px solid var(--ink);background:var(--control-surface);min-height:32px;color:var(--ink);cursor:pointer;letter-spacing:.14em;text-transform:uppercase;transition:background-color .18s ease, color .18s ease, transform .26s var(--ease-spring);align-items:center;gap:8px;padding:8px 10px;font-size:.62rem;font-weight:600;display:inline-flex}.lab-launcher__button:hover,.lab-launcher__button:focus-visible,.lab-launcher.is-open .lab-launcher__button{background:var(--ink);color:rgb(var(--card-surface-rgb));outline:none;transform:translateY(-3px)}.lab-launcher__button:active{transform:translateY(0)}.lab-launcher__button span{transition:transform .24s var(--ease-spring);font-size:1rem;font-weight:300;line-height:.7}.lab-launcher.is-open .lab-launcher__button span{transform:rotate(45deg)}.social-links{bottom:calc(20px + var(--safe-area-bottom));z-index:45;gap:8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.social-links a{border:1px solid var(--ink);background:var(--control-surface);width:32px;height:32px;color:var(--ink);transition:background-color .18s ease, color .18s ease, transform .26s var(--ease-spring);place-items:center;display:grid}.social-links a:hover,.social-links a:focus-visible{background:var(--ink);color:rgb(var(--card-surface-rgb));outline:none;transform:translateY(-3px)}.social-links svg{fill:currentColor;width:17px;height:17px}.contact-launcher{right:calc(20px + var(--safe-area-right));bottom:calc(20px + var(--safe-area-bottom));z-index:45;justify-items:end;gap:10px;display:grid;position:fixed}.thread-root .hero-copy{bottom:calc(68px + var(--safe-area-bottom))}.contact-launcher__button,.contact-form button{box-sizing:border-box;border:1px solid var(--ink);background:var(--control-surface);min-height:32px;color:var(--ink);cursor:pointer;letter-spacing:.14em;text-transform:uppercase;transition:background-color .18s ease, color .18s ease, transform .26s var(--ease-spring);justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-size:.62rem;font-weight:600;display:inline-flex}.contact-launcher__button span{transition:transform .24s var(--ease-spring);font-size:1rem;font-weight:300;line-height:.7}.contact-launcher.is-open .contact-launcher__button span{transform:rotate(45deg)}.contact-launcher__button:hover,.contact-launcher__button:focus-visible,.contact-launcher.is-open .contact-launcher__button,.contact-form button:hover,.contact-form button:focus-visible{background:var(--ink);color:rgb(var(--card-surface-rgb));outline:none;transform:translateY(-3px)}.contact-launcher__panel{width:min(390px, calc(100vw - 40px - var(--safe-area-left) - var(--safe-area-right)));max-height:calc(100dvh - 88px - var(--safe-area-top) - var(--safe-area-bottom));overscroll-behavior:contain;border:1px solid var(--ink);background:rgb(var(--card-surface-rgb));animation:contact-panel-enter .36s var(--ease-spring) both;padding:18px;overflow-y:auto}.contact-launcher__panel.is-closing{pointer-events:none;animation:contact-panel-exit .36s var(--ease-spring) forwards}.contact-launcher__heading{border-bottom:1px solid var(--ink-faint);padding-bottom:17px}.contact-launcher__heading>span,.contact-form label>span,.contact-launcher__alternative{color:var(--ink-soft);letter-spacing:.15em;text-transform:uppercase;font-size:.54rem;font-weight:600}.contact-launcher__heading h2{letter-spacing:-.045em;margin:9px 0 8px;font-size:clamp(1.3rem,2.3vw,1.75rem);font-weight:500;line-height:.94}.contact-launcher__heading p{max-width:31ch;color:var(--ink-soft);margin:0;font-size:.75rem;line-height:1.35}.contact-form{gap:13px;margin-top:16px;display:grid}.contact-form label{gap:5px;display:grid}.contact-form input,.contact-form textarea{border:0;border-bottom:1px solid var(--ink-faint);width:100%;color:var(--ink);font:inherit;resize:vertical;background:0 0;border-radius:0;outline:none;padding:7px 0;font-size:.86rem;line-height:1.35}.contact-form input:focus,.contact-form textarea:focus{border-bottom-color:var(--ink)}@media (hover:none) and (pointer:coarse){.contact-form input,.contact-form textarea{font-size:16px}}.contact-form button{justify-self:start;margin-top:2px}.contact-form button:disabled{cursor:wait;opacity:.66;transform:none}.contact-form__honeypot{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.contact-form__turnstile{width:100%;min-height:65px}.contact-form__status{margin:0;font-size:.68rem;line-height:1.4}.contact-form__status.is-success{color:var(--ink)}.contact-form__status.is-error{color:#a52216}.contact-launcher__alternative{border-top:1px solid var(--ink-faint);margin:17px 0 0;padding-top:12px;font-size:.49rem;line-height:1.55}.contact-launcher__alternative a{color:var(--ink);-webkit-text-decoration-color:var(--ink-faint);text-decoration-color:var(--ink-faint);text-underline-offset:3px;text-transform:none}.lab-launcher__panel{width:min(300px, calc(100vw - 40px - var(--safe-area-left) - var(--safe-area-right)));max-height:calc(100dvh - 76px - var(--safe-area-top) - var(--safe-area-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--ink);background:rgb(var(--card-surface-rgb));animation:lab-panel-enter .36s var(--ease-spring) both;gap:5px;padding:10px 12px;display:grid;overflow-y:auto}.lab-launcher__panel.is-closing{pointer-events:none;animation:lab-panel-exit .36s var(--ease-spring) forwards}.lab-launcher__panel span{color:var(--ink-soft);letter-spacing:.16em;text-transform:uppercase;font-size:.54rem;font-weight:600}.lab-launcher__panel strong{letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;font-weight:500}.lab-launcher__modules{gap:7px;display:grid}.lab-launcher__modules a{--lab-module-preview-width:36px;padding:9px calc(var(--lab-module-preview-width) + 9px) 8px 9px;border:1px solid var(--ink-faint);color:var(--ink);transition:background-color .18s ease, color .18s ease, transform .26s var(--ease-spring);gap:4px;text-decoration:none;display:grid;position:relative}.lab-launcher__modules a:hover,.lab-launcher__modules a:focus-visible{background:var(--ink);color:rgb(var(--card-surface-rgb));outline:none;transform:translate(4px)}.lab-launcher__module-preview{width:var(--lab-module-preview-width);object-fit:cover;background:rgb(var(--card-surface-rgb));height:100%;position:absolute;top:0;bottom:0;right:0}.lab-launcher__module-index,.lab-launcher__modules small{color:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;font-size:.5rem;font-weight:600}.lab-launcher__modules strong{letter-spacing:.1em;font-size:.68rem}.lab-launcher__modules p{margin:0;font-size:.64rem;line-height:1.3}.lab-launcher__modules a:hover small,.lab-launcher__modules a:focus-visible small,.lab-launcher__modules a:hover .lab-launcher__module-index,.lab-launcher__modules a:focus-visible .lab-launcher__module-index{color:currentColor}.lab-viewer{z-index:100;background:#000;position:fixed;inset:0}.lab-viewer__close{z-index:1;color:#f4efe6;opacity:.76;background:0 0;border:0;padding:0;font-size:1.8rem;font-weight:300;line-height:1;position:absolute;top:12px;right:16px}.lab-viewer__close:hover,.lab-viewer__close:focus-visible{opacity:1;outline:none}.lab-viewer iframe{background:#000;border:0;width:100%;height:100%;display:block}@keyframes lab-panel-enter{0%{opacity:0;transform:translateY(calc(100% + 48px))}to{opacity:1;transform:translate(0,0)}}@keyframes contact-panel-enter{0%{opacity:0;transform:translateY(calc(100% + 48px))}to{opacity:1;transform:translate(0,0)}}@keyframes lab-panel-exit{to{opacity:0;transform:translateY(calc(100% + 48px))}}@keyframes contact-panel-exit{to{opacity:0;transform:translateY(calc(100% + 48px))}}@media (orientation:landscape){.section-nav{z-index:14;grid-template-columns:repeat(var(--section-count), minmax(0, 1fr));width:min(54vw,680px);display:grid;position:fixed;top:20px;left:50%;transform:translate(-50%)}.section-nav__item{min-width:0;color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:auto 1fr;align-items:baseline;gap:7px;padding:0 10px 12px;display:grid;position:relative}.section-nav__item:after{background:var(--ink);content:"";opacity:0;height:2px;transform:scaleX(var(--section-progress));transform-origin:0;position:absolute;bottom:-1px;left:9px;right:0}.section-nav__chapter{letter-spacing:.1em;grid-template-columns:5px auto;align-items:center;gap:5px;font-size:.52rem;font-weight:600;display:inline-grid}.section-nav__chapter:before{content:"";width:5px;height:5px;transition:background-color .18s ease, transform .24s var(--ease-spring);border:1px solid}.section-nav__label{letter-spacing:.11em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:clamp(.58rem,.72vw,.72rem);font-weight:500;overflow:hidden}.section-nav__item.is-active{color:var(--ink)}.section-nav__item.is-active:after{opacity:1}.section-nav__item.is-active .section-nav__chapter:before{background:currentColor;transform:scale(1.35)}.section-nav__item:hover,.section-nav__item:focus-visible{color:var(--ink);outline:none}}@media (orientation:portrait){.section-nav{z-index:14;overscroll-behavior-x:contain;scrollbar-width:none;gap:2px;display:flex;position:fixed;top:12px;left:12px;right:12px;overflow-x:auto}.section-nav::-webkit-scrollbar{display:none}.section-nav__item{color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:0;flex:none;grid-template-columns:auto 1fr;align-items:baseline;gap:5px;padding:0 7px 9px;display:grid;position:relative}.section-nav__item:after{background:var(--ink);content:"";opacity:0;height:2px;transform:scaleX(var(--section-progress));transform-origin:0;position:absolute;bottom:0;left:7px;right:7px}.section-nav__chapter{letter-spacing:.08em;grid-template-columns:5px auto;align-items:center;gap:4px;font-size:.5rem;font-weight:600;display:inline-grid}.section-nav__chapter:before{content:"";border:1px solid;width:5px;height:5px}.section-nav__label{letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;font-size:clamp(.58rem,.72vw,.72rem);font-weight:500}.section-nav__item.is-active{color:var(--ink)}.section-nav__item.is-active:after{opacity:1}.section-nav__item.is-active .section-nav__chapter:before{background:currentColor;transform:scale(1.3)}}@media (width<=1024px) and (orientation:portrait){.lab-launcher{bottom:calc(10px + var(--safe-area-bottom));left:calc(10px + var(--safe-area-left))}.lab-launcher__controls{gap:6px}.lab-launcher__button{gap:6px;min-height:28px;padding:6px 8px;font-size:.56rem}.lab-launcher__button span{font-size:.88rem}.social-links{bottom:calc(10px + var(--safe-area-bottom));gap:6px}.social-links a{width:28px;height:28px}.social-links svg{width:15px;height:15px}.contact-launcher{right:calc(10px + var(--safe-area-right));bottom:calc(10px + var(--safe-area-bottom))}.contact-launcher__button,.contact-form button{gap:6px;min-height:28px;padding:6px 8px;font-size:.56rem}.contact-launcher__button span{font-size:.88rem}}@media (width<=767px) and (orientation:portrait){.lab-launcher__button{gap:5px;min-height:25px;padding:5px 7px;font-size:.5rem}.lab-launcher__button span{font-size:.78rem}.social-links{gap:5px}.social-links a{width:25px;height:25px}.social-links svg{width:13px;height:13px}.contact-launcher__button,.contact-form button{gap:5px;min-height:25px;padding:5px 7px;font-size:.5rem}.contact-launcher__button span{font-size:.78rem}.contact-launcher__panel{padding:15px}.theme-toggle{display:none}.section-nav__chapter{grid-template-columns:5px;font-size:0}.section-nav{justify-content:flex-end;width:fit-content;max-width:calc(100vw - 12px);left:auto}.section-nav__item{padding-bottom:3px}}@media (width>=721px) and (width<=1024px) and (orientation:portrait){.theme-toggle{display:none}.section-nav{grid-template-columns:repeat(var(--section-count), minmax(0, 1fr));background:0 0;width:min(90vw,680px);padding-top:8px;display:grid;top:0;left:50%;right:auto;overflow:visible;transform:translate(-50%)}.section-nav__item{background:0 0;gap:7px;min-width:0;padding:0 0 6px}.section-nav__item:after{bottom:-1px;left:0;right:0}.section-nav__chapter{letter-spacing:.1em;gap:5px;font-size:.52rem}.section-nav__label{letter-spacing:.11em;text-overflow:ellipsis;font-size:clamp(.58rem,.72vw,.72rem);overflow:hidden}.section-nav__chapter:before{transition:background-color .18s ease, transform .24s var(--ease-spring)}}@media (width>=721px) and (width<=900px) and (orientation:portrait){.section-nav__chapter{grid-template-columns:5px;font-size:0}}@media (width>=1025px){.hero-copy{bottom:24px}}.timeline-layer{z-index:9;position:absolute;inset:0}.timeline-card{z-index:9;--card-gutter:18px;--card-gutter-double:36px;--card-three-gutters:54px;--card-four-gutters:72px;--card-panel-bottom:16px;--card-control-height:25px;--timeline-card-base-width:clamp(220px, 24vw, 360px);--timeline-card-closed-width:var(--card-width,var(--timeline-card-base-width));--timeline-card-content-width:calc(var(--timeline-card-closed-width) - var(--card-gutter-double) - 2px);width:var(--card-width,var(--timeline-card-base-width));padding:var(--card-gutter) var(--card-gutter) var(--card-panel-bottom);background:rgba(var(--card-surface-rgb), var(--card-fill,0));transform:translate(-50%, -50%) translate3d(0, calc(var(--card-reveal-y,0px) + var(--card-anchor-y,0px)), 0);translate:var(--card-parallax-x,0px) var(--card-parallax-y,0px);opacity:1;border:1px solid #0000;position:absolute}.timeline-card--presentation{padding:clamp(24px,2.4vw,38px)}.timeline-card--presentation .timeline-card__title{letter-spacing:-.055em;font-size:clamp(1.65rem,2.5vw,2.7rem)}.timeline-card--presentation .timeline-card__description{max-width:31ch;margin-top:18px;font-size:clamp(1rem,1.25vw,1.28rem);line-height:1.42}.timeline-card--presentation .timeline-card__tags{margin-top:18px}.thread-root--portrait .timeline-card--presentation{padding:26px 24px}.timeline-card.is-expanded{z-index:20}.timeline-card.is-active{z-index:21}.timeline-card__content{min-width:0;position:relative}.timeline-card__text-panel{display:contents}.timeline-card__frame{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.timeline-card__frame path{fill:none;stroke:var(--frame);stroke-width:1px}.timeline-card__project-preview{z-index:0;border:1px solid var(--frame);width:100%;height:50px;opacity:var(--card-fill,0);pointer-events:none;background:#000;margin:0;transition:opacity .18s;position:absolute;left:0;overflow:hidden}.timeline-card__project-preview.is-above{bottom:100%}.timeline-card__project-preview.is-below{top:100%}.timeline-card__project-preview img{object-fit:cover;filter:grayscale()contrast(1.14);width:100%;height:100%;animation:timeline-project-preview-ken-burns 3s var(--ease-reveal) both;transition:filter .28s;display:block}.timeline-card:hover .timeline-card__project-preview img,.timeline-card:focus-within .timeline-card__project-preview img{filter:grayscale(0)contrast()}@keyframes timeline-project-preview-ken-burns{0%{transform:scale(1.02)translate(-1.2%,.8%)}to{transform:scale(1.13)translate(1.2%,-.8%)}}.timeline-card.is-expanded .timeline-card__project-preview{opacity:0}.timeline-card__year,.timeline-card h2,.timeline-card p,.timeline-card ul,.timeline-card__summary{z-index:1;position:relative}.timeline-card__direct-links:not(.is-visible),.timeline-card__more:not(.is-visible){pointer-events:none}.timeline-card__year-mask{z-index:1;width:calc(100% + var(--card-gutter-double));margin-bottom:10px;margin-left:calc(-1 * var(--card-gutter));padding-left:var(--card-gutter);padding-right:var(--card-gutter);position:relative;overflow:hidden}.timeline-card__year-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.timeline-card__title-mask,.timeline-card__description-mask,.timeline-card__tags-mask{z-index:1;width:calc(100% + var(--card-gutter-double));margin-left:calc(-1 * var(--card-gutter));padding-left:var(--card-gutter);padding-right:var(--card-gutter);position:relative;overflow:hidden}.timeline-card__dot{z-index:2;background:var(--ink);width:9px;height:9px;opacity:var(--connector-dot-visible,0);transform:scale(calc(.5 + .5 * var(--connector-dot-visible,0)));transition:opacity .18s ease-out, transform .42s var(--ease-spring);border-radius:50%;display:block;position:absolute;top:-4.5px;right:-4.5px}.timeline-card--down .timeline-card__dot{top:auto;bottom:-4.5px}.thread-root--portrait .timeline-card--connector-right .timeline-card__dot,.thread-root--portrait .timeline-card--connector-left .timeline-card__dot{transform:translateY(-50%) scale(calc(.5 + .5 * var(--connector-dot-visible,0)));top:50%;bottom:auto}.thread-root--portrait .timeline-card--connector-right .timeline-card__dot{left:auto;right:-4.5px}.thread-root--portrait .timeline-card--connector-left .timeline-card__dot{left:-4.5px;right:auto}.timeline-card__year{opacity:0;text-transform:uppercase;color:var(--ink-soft);align-items:baseline;gap:.28em;font-size:.78rem;transition:opacity .18s ease-in;display:inline-flex}.timeline-card__year.is-visible{opacity:1;transition:opacity .18s ease-out 80ms}.timeline-card__year-wheel{vertical-align:-.08em;width:1ch;height:1em;line-height:1;display:inline-block;overflow:hidden}.timeline-card__year-wheel-track{flex-direction:column;line-height:1;display:flex;transform:translateY(0)}.timeline-card__year-wheel-track>span{height:1em;display:block}.timeline-card__year-wheel--down .timeline-card__year-wheel-track{transform:translateY(-2em)}.timeline-card__year.is-visible .timeline-card__year-wheel--down .timeline-card__year-wheel-track{animation:timeline-year-wheel-down .52s var(--ease-spring) var(--year-wheel-delay) both}.timeline-card__year.is-visible .timeline-card__year-wheel--up .timeline-card__year-wheel-track{animation:timeline-year-wheel-up .52s var(--ease-spring) var(--year-wheel-delay) both}.timeline-card__year-space{width:.5ch}@keyframes timeline-year-wheel-down{0%{transform:translateY(-2em)}to{transform:translateY(-1em)}}@keyframes timeline-year-wheel-up{0%{transform:translateY(0)}to{transform:translateY(-1em)}}.timeline-card__title{opacity:0;transition:opacity .24s ease-in, transform .64s var(--ease-retract);transform:translate(140%)}.timeline-card__title.is-visible{opacity:1;transition:opacity .24s ease-out .1s, transform .64s var(--ease-spring) .1s;transform:translate(0,0)}.timeline-card__title-row{align-items:flex-start;gap:10px;display:flex}.timeline-card__title-row .timeline-card__title{flex:1;min-width:0}.timeline-card__direct-links{opacity:0;transition:opacity .18s ease-in, transform .42s var(--ease-retract);flex:none;gap:6px;margin-top:1px;display:flex;transform:translate(12px)}.timeline-card__year-row .timeline-card__direct-links{margin-top:0}.timeline-card__direct-links.is-visible{opacity:1;transition:opacity .18s ease-out .18s, transform .48s var(--ease-spring) .18s;transform:translate(0,0)}.timeline-card__direct-link{border:1px solid var(--ink-faint);width:25px;height:25px;color:var(--ink);place-items:center;transition:background-color .16s,color .16s;display:grid}.timeline-card__direct-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:14px;height:14px}.timeline-card__direct-link:hover,.timeline-card__direct-link:focus-visible{background:var(--ink);color:rgb(var(--card-surface-rgb));outline:none}.timeline-card__description{opacity:0;transition:opacity .24s ease-in .1s, transform .64s var(--ease-retract) .1s;transform:translate(-140%)}.timeline-card__description.is-visible{opacity:1;transition:opacity .24s ease-out, transform .64s var(--ease-spring);transform:translate(0,0)}.timeline-card h2{margin:0 0 10px;font-size:clamp(1.2rem,1.8vw,2rem);line-height:1}.timeline-card p{margin:0;font-size:.94rem;line-height:1.45}.timeline-card ul{flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.timeline-card li{border:1px solid var(--tag-border);text-transform:uppercase;letter-spacing:.16em;padding:6px 9px;font-size:.72rem}.timeline-card__tag{opacity:0;transform:translate3d(var(--card-width), 0, 0);transition:opacity .18s ease-in, transform .4s var(--ease-retract)}.timeline-card__tag.is-visible{opacity:1;transition:opacity .18s ease-out var(--pill-delay), transform .4s var(--ease-spring) var(--pill-delay);transform:translate(0,0)}.timeline-card__details{transition:grid-template-rows .4s var(--ease-layout);grid-template-rows:0fr;display:grid}.timeline-card__details-inner{opacity:0;min-height:0;transition:opacity .18s ease-in, transform .42s var(--ease-retract);overflow:hidden;transform:translateY(-12px)}.thread-root--landscape .timeline-card{transition:width .4s var(--ease-layout), margin-left .4s var(--ease-layout), transform .4s var(--ease-layout);margin-left:0}.thread-root--landscape .timeline-card.is-expanded{--timeline-card-expanded-width:min(clamp(500px, 48vw, 720px), calc(100vw - 32px));width:var(--timeline-card-expanded-width);margin-left:calc((var(--timeline-card-expanded-width) - var(--timeline-card-base-width)) / 2);transition:width .4s var(--ease-layout), margin-left .4s var(--ease-layout), transform .4s var(--ease-layout)}.thread-root--landscape .timeline-card--has-media.is-expanded{--timeline-card-expanded-width:min(clamp(760px, 68vw, 1100px), calc(100vw - 32px))}.thread-root--landscape .timeline-card--media-only.is-expanded{--timeline-card-expanded-width:min(clamp(500px, 48vw, 720px), calc(100vw - 32px))}.thread-root--landscape .timeline-card.is-expanded .timeline-card__summary{width:calc(var(--timeline-card-base-width) - var(--card-gutter-double))}.thread-root--landscape .timeline-card__details{top:var(--card-gutter);right:var(--card-gutter);bottom:var(--card-panel-bottom);width:0;min-width:0;transition:width .4s var(--ease-layout);display:block;position:absolute;overflow:hidden}.thread-root--landscape .timeline-card.is-expanded .timeline-card__details{width:calc(100% - var(--timeline-card-base-width) - var(--card-three-gutters));border-left:1px solid var(--ink-faint)}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__details{right:calc(clamp(220px, 20vw, 340px) + var(--card-gutter));width:calc(100% - var(--timeline-card-base-width) - clamp(220px, 20vw, 340px) - var(--card-four-gutters))}.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__details{display:none}.thread-root--landscape .timeline-card__details-inner{width:100%;min-width:0;height:100%;padding-left:var(--card-gutter);scrollbar-width:thin;padding-right:0;overflow:hidden auto;transform:translate(-16px)}.thread-root--landscape .timeline-card.is-expanded .timeline-card__details-inner{transform:translate(0,0)}.thread-root--landscape .timeline-card .timeline-card__details-text{overflow-wrap:anywhere;border-top:0;margin-top:0;padding-top:0}.thread-root--landscape .timeline-card__details-inner>*{margin-right:var(--card-gutter)}.timeline-card__media-panel{display:none}.thread-root--landscape .timeline-card__media-panel{z-index:2;top:var(--card-gutter);right:var(--card-gutter);bottom:var(--card-panel-bottom);opacity:0;width:0;min-width:0;transition:width .4s var(--ease-layout), opacity .18s ease-in, transform .42s var(--ease-retract);display:block;position:absolute;overflow:hidden;transform:translate(16px)}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel{width:clamp(220px,20vw,340px);padding-left:var(--card-gutter);border-left:1px solid var(--ink-faint);opacity:1;transition:width .4s var(--ease-layout), opacity .24s ease-out .13s, transform .58s var(--ease-spring) 90ms;transform:translate(0,0)}.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-panel{width:calc(100% - var(--timeline-card-base-width) - var(--card-three-gutters));padding-left:var(--card-gutter);border-left:1px solid var(--ink-faint)}.thread-root--landscape .timeline-card__media-panel .timeline-card__details-media{height:100%;margin-top:0}@media (width>=1025px) and (orientation:landscape){.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-carousel.has-controls{grid-template-rows:minmax(0, 1fr) var(--card-control-height);gap:6px;height:100%;display:grid}.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-viewport,.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-viewport figure{height:100%;min-height:0}.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-viewport .timeline-card__soundcloud,.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-viewport .timeline-card__embed,.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-viewport .timeline-card__youtube{height:100%}.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-controls{background:var(--media-controls-surface);margin-top:0}.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-progress button:after{background:var(--media-controls-track)}.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-progress button.is-active:after,.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-progress button:hover:after,.thread-root--landscape .timeline-card--media-only.is-expanded .timeline-card__media-progress button:focus-visible:after{background:var(--media-controls-ink)}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only){--timeline-card-nav-clearance:64px;--timeline-card-footer-clearance:68px;--timeline-card-open-height:calc(100dvh - var(--timeline-card-nav-clearance) - var(--timeline-card-footer-clearance) - 32px);--timeline-card-expanded-width:min(clamp(620px, 54vw, 980px), var(--timeline-card-open-height), calc(100vw - 32px));--details-panel-width:calc(var(--timeline-card-expanded-width) - var(--timeline-card-closed-width) - var(--card-gutter));height:auto;margin-left:calc((var(--timeline-card-expanded-width) - var(--timeline-card-closed-width)) / 2)}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__content{grid-template-columns:var(--timeline-card-content-width) var(--details-panel-width);column-gap:var(--card-gutter);row-gap:var(--card-gutter);transition:grid-template-columns .2s var(--ease-open), column-gap .2s var(--ease-open), row-gap .2s var(--ease-open);grid-template-rows:auto auto;align-items:stretch;display:grid;overflow:clip}.thread-root--landscape .timeline-card--has-media:not(.timeline-card--media-only){height:var(--card-closed-height);transform:translate(-50%, calc(0px - var(--card-closed-half-height))) translate3d(0, var(--card-reveal-y,0px), 0);transition:width .2s var(--ease-open), margin-left .2s var(--ease-open), height .2s var(--ease-open)}.thread-root--landscape .timeline-card--has-media.is-expanded.is-media-panel-visible:not(.timeline-card--media-only),.thread-root--landscape .timeline-card--has-media.is-expanded.is-media-closing:not(.timeline-card--media-only){transform:translate(-50%, -50%) translate3d(0, calc(var(--card-reveal-y,0px) + var(--card-anchor-y,0px)), 0);transition:width .4s var(--ease-layout), margin-left .4s var(--ease-layout), height .4s var(--ease-layout), transform .4s var(--ease-layout)}.thread-root--landscape .timeline-card--has-media.is-expanded.is-details-closing:not(.timeline-card--media-only){width:var(--timeline-card-closed-width);height:var(--card-closed-height);transition:width .2s var(--ease-close), margin-left .2s var(--ease-close), height .2s var(--ease-close), transform .4s var(--ease-layout);margin-left:0}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__summary{grid-area:1/1;width:auto}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__details{width:auto;height:var(--card-closed-height);border-left:0;grid-area:1/2;min-height:0;display:block;position:relative;top:auto;bottom:auto;right:auto;overflow:clip}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__details-inner{opacity:1;height:100%;width:var(--details-panel-width);clip-path:inset(0);scrollbar-gutter:stable;scrollbar-width:thin;transition:clip-path .48s var(--ease-layout);position:relative;overflow:hidden auto;transform:none}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__details-inner:before{background:var(--ink-faint);content:"";transform-origin:top;width:1px;animation:timeline-details-separator-reveal .2s var(--ease-open) both;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.thread-root--landscape .timeline-card--has-media.is-expanded.is-details-closing:not(.timeline-card--media-only) .timeline-card__details-inner:before{animation:timeline-details-separator-conceal .2s var(--ease-close) both}.thread-root--landscape .timeline-card--has-media.is-expanded.is-details-closing:not(.timeline-card--media-only) .timeline-card__content{grid-template-columns:var(--timeline-card-content-width) 0px;transition:grid-template-columns .2s var(--ease-close), column-gap .2s var(--ease-close), row-gap .2s var(--ease-close);column-gap:0}.thread-root--landscape .timeline-card--has-media:not(.is-expanded):not(.timeline-card--media-only) .timeline-card__details{display:none}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel{background:var(--media-viewport-surface);--timeline-media-max-height:min(54dvh, calc(var(--timeline-card-open-height) - var(--card-closed-height) - 18px));border-left:0;grid-area:2/1/auto/-1;width:auto;min-height:0;max-height:0;padding-left:0;position:relative;top:auto;bottom:auto;right:auto}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel .timeline-card__details-media{height:var(--timeline-media-max-height);position:relative}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel figure{background:var(--media-viewport-surface);height:100%;min-height:0}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel .timeline-card__media-carousel.has-controls .timeline-card__media-viewport{inset:0 0 var(--card-control-height);background:var(--media-viewport-surface);min-height:0;position:absolute}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel .timeline-card__media-carousel.has-controls .timeline-card__media-controls{height:var(--card-control-height);background:var(--media-controls-surface);margin-top:0;position:absolute;bottom:0;left:0;right:0}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel .timeline-card__media-progress button:after{background:var(--media-controls-track)}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel .timeline-card__media-progress button.is-active:after,.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel .timeline-card__media-progress button:hover:after,.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel .timeline-card__media-progress button:focus-visible:after{background:var(--media-controls-ink)}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel .timeline-card__media-progress button:focus-visible{outline-color:var(--media-controls-ink)}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel img,.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel video,.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel .timeline-card__youtube{aspect-ratio:auto;object-fit:contain;height:100%}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel.is-revealing{animation:timeline-media-panel-reveal .4s var(--ease-layout) both}.thread-root--landscape .timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel.is-closing{animation:timeline-media-panel-conceal .4s var(--ease-layout) both}.thread-root--landscape .timeline-card--has-media.is-expanded.is-media-closing:not(.timeline-card--media-only) .timeline-card__content,.thread-root--landscape .timeline-card--up.timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__content{row-gap:0}.thread-root--landscape .timeline-card--up.timeline-card--has-media.is-expanded.is-media-panel-visible:not(.timeline-card--media-only) .timeline-card__content{row-gap:18px}.thread-root--landscape .timeline-card--up.timeline-card--has-media.is-expanded.is-media-closing:not(.timeline-card--media-only) .timeline-card__content{row-gap:0}.thread-root--landscape .timeline-card--up.timeline-card--has-media.is-expanded.is-media-panel-visible:not(.timeline-card--media-only) .timeline-card__summary,.thread-root--landscape .timeline-card--up.timeline-card--has-media.is-expanded.is-media-panel-visible:not(.timeline-card--media-only) .timeline-card__details{grid-row:2}.thread-root--landscape .timeline-card--up.timeline-card--has-media.is-expanded:not(.timeline-card--media-only) .timeline-card__media-panel{grid-row:1}}@keyframes timeline-media-panel-reveal{0%{opacity:0;max-height:0;transform:translateY(-12px)}to{max-height:var(--timeline-media-max-height,900px);opacity:1;transform:translate(0,0)}}@keyframes timeline-details-separator-reveal{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes timeline-details-separator-conceal{0%{transform:scaleY(1)}to{transform:scaleY(0)}}@keyframes timeline-media-panel-conceal{0%{max-height:var(--timeline-media-max-height,900px);opacity:1;transform:translate(0,0)}to{opacity:0;max-height:0;transform:translateY(-12px)}}.timeline-card.is-expanded .timeline-card__details{grid-template-rows:1fr}.timeline-card.is-expanded .timeline-card__details-inner{opacity:1;transition:opacity .24s ease-out .13s, transform .58s var(--ease-spring) 90ms;transform:translate(0,0)}.timeline-card .timeline-card__details-text{border-top:1px solid var(--ink-faint);margin:18px 0 0;padding-top:14px;font-size:.82rem;line-height:1.42}.timeline-card .timeline-card__details-tags{flex-wrap:wrap;gap:5px;margin:12px 0 0;padding:0;list-style:none;display:flex}.timeline-card .timeline-card__details-tags li{border:1px solid var(--ink-faint);letter-spacing:.12em;text-transform:uppercase;padding:4px 6px;font-size:.58rem}.timeline-card__details-links{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.timeline-card__details-links a{border:1px solid var(--ink);min-height:26px;color:var(--ink);letter-spacing:.1em;text-transform:uppercase;transition:background-color .18s ease, color .18s ease, transform .26s var(--ease-spring);align-items:center;gap:8px;padding:5px 7px;font-size:.58rem;font-weight:600;text-decoration:none;display:inline-flex}.timeline-card__details-links a:hover,.timeline-card__details-links a:focus-visible{background:var(--ink);color:rgb(var(--card-surface-rgb));outline:none;transform:translate(3px,-3px)}.timeline-card__details-media{background:var(--media-viewport-surface);margin-top:14px}.timeline-card__media-carousel{background:var(--media-viewport-surface);border:0;padding:0}.timeline-card__media-viewport{background:var(--media-viewport-surface);overscroll-behavior-x:contain;scrollbar-width:none;scroll-behavior:smooth;scroll-snap-type:x mandatory;touch-action:pan-x;overflow:auto hidden}.timeline-card__media-viewport::-webkit-scrollbar{display:none}.timeline-card__media-track{align-items:center;width:100%;min-width:100%;height:100%;min-height:100%;display:flex}.timeline-card__details-media figure{background:var(--media-viewport-surface);opacity:0;transition:opacity .22s ease-in, transform .44s var(--ease-retract);flex:0 0 100%;margin:0;overflow:hidden;transform:translate(16px)}.timeline-card.is-expanded .timeline-card__details-media figure{opacity:1;transition:opacity .22s ease-out .22s, transform .52s var(--ease-spring) .18s;transform:translate(0,0)}.timeline-card__media-track figure{box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always;place-items:center;width:100%;min-width:100%;display:grid;position:relative}.timeline-card__media-track figure.is-active{z-index:1;overflow:visible}.timeline-card__media-track figure.is-active>*{width:calc(100% + 2px);max-width:none;margin-inline:-1px}.timeline-card__media-carousel.is-settled .timeline-card__media-track figure:not(.is-active){visibility:hidden}.timeline-card__details-media img{aspect-ratio:4/3;object-position:center;object-fit:cover;width:100%;display:block}.timeline-card__details-video{width:100%}.timeline-card__details-media video{aspect-ratio:16/9;background:var(--media-viewport-surface);object-position:center;width:100%;display:block}.timeline-card__soundcloud{background:var(--media-viewport-surface);border:0;width:100%;height:166px;display:block}.timeline-card__embed{background:var(--media-viewport-surface);border:0;width:100%;display:block}.timeline-card__youtube{aspect-ratio:16/9;background:var(--media-viewport-surface);border:0;width:100%;display:block}.timeline-card__media-controls{background:var(--media-controls-surface);grid-template-columns:minmax(0,1fr);align-items:center;gap:6px;margin-top:6px;display:grid}.timeline-card__media-progress{grid-auto-columns:minmax(4px,1fr);grid-auto-flow:column;align-items:center;gap:3px;height:21px;display:grid}.timeline-card__media-progress button{cursor:pointer;background:0 0;border:0;width:100%;height:100%;padding:0;display:block}.timeline-card__media-progress button:after{background:var(--media-controls-track);content:"";width:100%;height:3px;transition:background-color .22s ease, transform .26s var(--ease-spring);display:block}.timeline-card__media-progress button.is-active:after{background:var(--media-controls-ink);transform:scaleY(1.75)}.timeline-card__media-progress button:hover:after,.timeline-card__media-progress button:focus-visible:after{background:var(--media-controls-ink)}.timeline-card__media-progress button:focus-visible{outline:1px solid var(--media-controls-ink);outline-offset:-2px}.thread-root--portrait .timeline-card__details-media--portrait .timeline-card__media-controls{z-index:2;background:rgb(var(--card-surface-rgb));min-height:33px;margin-top:0;padding:6px 0;position:relative}.timeline-card__more{z-index:2;border:1px solid var(--ink);background:rgb(var(--card-surface-rgb));width:26px;height:26px;color:var(--ink);opacity:0;cursor:pointer;transition:background-color .16s ease, color .16s ease, opacity .18s ease, transform .32s var(--ease-spring);border-radius:50%;place-items:center;padding:0 0 2px;font-size:1.2rem;font-weight:300;line-height:1;display:grid;position:absolute;bottom:-13px;right:-13px;transform:scale(.5)}.timeline-card__more.is-visible{opacity:1;transform:scale(1)}.timeline-card--expandable.is-interactive,.timeline-card--expandable a,.timeline-card--expandable button{cursor:pointer}.timeline-card.is-expanded .timeline-card__more{transform:rotate(45deg)scale(1)}.lab-viewer__close.timeline-card__more{top:calc(12px + var(--safe-area-top));right:calc(16px + var(--safe-area-right));z-index:2;background:var(--control-surface);padding-bottom:2px;bottom:auto;transform:rotate(45deg)scale(1)}.lab-viewer__close.timeline-card__more:hover,.lab-viewer__close.timeline-card__more:focus-visible{background:var(--ink);color:rgb(var(--card-surface-rgb))}.timeline-card--connector-top-right .timeline-card__more{top:-13px;bottom:auto}.timeline-card--connector-right .timeline-card__more{top:50%;bottom:auto;transform:translateY(-50%)scale(.5)}.timeline-card--connector-right .timeline-card__more.is-visible{transform:translateY(-50%)scale(1)}.timeline-card--connector-right.is-expanded .timeline-card__more{transform:translateY(-50%)rotate(45deg)scale(1)}.timeline-card--connector-left .timeline-card__more{inset:50% auto auto -13px;transform:translateY(-50%)scale(.5)}.timeline-card--connector-left .timeline-card__more.is-visible{transform:translateY(-50%)scale(1)}.timeline-card--connector-left.is-expanded .timeline-card__more{transform:translateY(-50%)rotate(45deg)scale(1)}.timeline-card--expandable.is-interactive:hover .timeline-card__more,.timeline-card__more:hover{background:var(--ink);color:rgb(var(--card-surface-rgb))}.timeline-card__more:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@media (width<=1439px){.timeline-card ul{gap:6px;margin-top:12px}.timeline-card li{letter-spacing:.14em;padding:5px 7px;font-size:.64rem}}@media (width>=1025px) and (width<=1439px){.hero-copy p{font-size:clamp(1rem,1.3vw,1.15rem)}}.site-preferences{top:calc(20px + var(--safe-area-top));right:calc(22px + var(--safe-area-right));z-index:50;align-items:center;gap:5px;display:flex;position:fixed}.theme-toggle,.locale-toggle{box-sizing:border-box;border:1px solid var(--ink);background:rgb(var(--card-surface-rgb));min-height:32px;color:var(--ink);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background-color .18s ease, color .18s ease, transform .26s var(--ease-spring);align-items:center;padding:8px 10px;font-size:.62rem;font-weight:600;line-height:1;display:inline-flex}.theme-toggle:hover,.theme-toggle:focus-visible,.locale-toggle:hover,.locale-toggle:focus-visible{background:var(--ink);color:rgb(var(--card-surface-rgb));outline:none;transform:translateY(-3px)}.theme-toggle:active,.locale-toggle:active{transform:translateY(0)}.thread-root--portrait .timeline-card{-webkit-backdrop-filter:none;backdrop-filter:none;width:clamp(250px,76vw,380px);transition:width .4s var(--ease-layout), left .4s var(--ease-layout), transform .4s var(--ease-layout)}.thread-root--portrait .timeline-card.is-expanded{width:calc(100vw - 30px);left:50%!important}.thread-root--portrait .story-scene{height:auto;position:relative;overflow:visible}.thread-root--portrait .hero-block{isolation:isolate;width:min(44vw,240px);position:fixed;top:16px;left:16px}.thread-root--portrait .hero-block:before{z-index:0;content:"";background:rgba(var(--card-surface-rgb), .3);pointer-events:none;-webkit-backdrop-filter:blur(10px);position:absolute;inset:-28px;-webkit-mask-image:radial-gradient(78% 72% at 34% 30%,#000 0%,#0000 100%);mask-image:radial-gradient(78% 72% at 34% 30%,#000 0%,#0000 100%)}.thread-root--portrait .hero-block>*{z-index:1;position:relative}.thread-root--portrait .hero-copy{right:calc(12px + var(--safe-area-right));bottom:calc(16px + var(--safe-area-bottom));width:max-content;max-width:calc(100vw - 32px);position:fixed}.thread-root--portrait .hero-copy p{gap:4px;font-size:clamp(.62rem,2.4vw,.84rem);line-height:1.2}.thread-root--portrait .hero-copy p span:last-child{white-space:nowrap}.hero-copy p .hero-copy__role-separator{clip-path:none;opacity:1;display:inline;transform:none}.hero-copy__mobile-break{display:none}@media (width<=720px) and (orientation:portrait){.hero-copy p .hero-copy__role-separator{display:none}.hero-copy__mobile-break{display:block}}.thread-root--portrait .theme-toggle,.thread-root--portrait .locale-toggle{letter-spacing:.1em;min-height:28px;padding:6px 8px;font-size:.52rem}.thread-root--portrait .site-preferences{top:calc(12px + var(--safe-area-top));right:calc(12px + var(--safe-area-right))}@media (width<=1024px){.thread-root{--bottom-control-height:28px}.thread-root .hero-block{width:min(44vw,240px);top:16px;left:16px}.thread-root .hero-copy{right:calc(12px + var(--safe-area-right));bottom:calc(20px + var(--bottom-control-height) + var(--safe-area-bottom));width:max-content;max-width:calc(100vw - 32px)}.thread-root .hero-copy p{gap:4px;font-size:clamp(.62rem,2.4vw,.84rem);line-height:1.2}.thread-root .hero-copy p span:last-child{white-space:nowrap}.thread-root .theme-toggle,.thread-root .locale-toggle{letter-spacing:.1em;min-height:28px;padding:6px 8px;font-size:.52rem}.thread-root .site-preferences{top:calc(12px + var(--safe-area-top));right:calc(12px + var(--safe-area-right))}}@media (width<=767px) and (orientation:portrait){.thread-root .theme-toggle,.thread-root .locale-toggle{min-height:25px;padding:5px 7px;font-size:.5rem}}@media (width<=1024px) and (orientation:landscape){.thread-root{--bottom-control-height:32px}.timeline-card{padding:15px 16px 14px}.timeline-card h2{margin-bottom:8px;font-size:clamp(1rem,1.45vw,1.2rem)}.timeline-card p{font-size:.84rem;line-height:1.36}.timeline-card ul{gap:6px;margin-top:12px}.timeline-card li{padding:5px 7px;font-size:.64rem}}.dev-hud{z-index:110;letter-spacing:.06em;color:var(--dev-hud);pointer-events:none;-webkit-user-select:none;user-select:none;gap:10px;font-size:11px;display:flex;position:fixed;bottom:68px;left:14px}@media (width<=1024px) and (orientation:landscape){.thread-root--landscape .timeline-card{--timeline-card-content-width:calc(var(--timeline-card-closed-width) - 34px)}.section-nav{width:max-content;max-width:calc(100vw - 20px - var(--safe-area-left) - var(--safe-area-right));align-items:baseline;gap:clamp(8px,1.8vw,16px);display:flex;top:10px}.section-nav__item{flex:none;padding:0 2px 9px}.section-nav__item:after{left:1px}.lab-launcher{bottom:calc(10px + var(--safe-area-bottom));left:calc(10px + var(--safe-area-left))}.lab-launcher .dev-hud{z-index:auto;white-space:nowrap;gap:6px;font-size:9px;position:static}.social-links{bottom:calc(10px + var(--safe-area-bottom))}.contact-launcher{bottom:calc(10px + var(--safe-area-bottom));right:calc(10px + var(--safe-area-right))}.thread-root .hero-copy{right:calc(12px + var(--safe-area-right));bottom:calc(20px + var(--bottom-control-height) + var(--safe-area-bottom))}.thread-root .hero-copy p{gap:3px;font-size:clamp(.56rem,2vw,.72rem);line-height:1.15}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__content{grid-template-columns:var(--timeline-card-content-width) minmax(0, 1fr);grid-template-rows:minmax(0,1fr);align-content:stretch;column-gap:6px;height:100%;min-height:0;display:grid;overflow:hidden}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__text-panel{scrollbar-gutter:stable;scrollbar-width:thin;grid-area:1/1;min-height:0;display:block;overflow:hidden auto}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__summary{width:auto}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__details{clip-path:inset(0);width:auto;min-width:0;transition:clip-path .2s var(--ease-open);border:0;position:relative;top:auto;bottom:auto;right:auto;overflow:visible}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__details-inner{height:auto;padding:18px 0 0;overflow:visible}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__details-inner>*{margin-right:0}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel{border-left:1px solid var(--ink-faint);grid-area:1/2;align-self:stretch;width:auto;height:auto;min-height:0;padding-left:18px;position:relative;top:auto;bottom:auto;right:auto}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel .timeline-card__details-media{height:100%;margin:0}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel .timeline-card__media-carousel.has-controls{grid-template-rows:minmax(0, 1fr) var(--card-control-height);gap:6px;height:100%;display:grid}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel .timeline-card__media-viewport,.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel figure{background:#000;height:100%;min-height:0}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel img,.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel video,.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel .timeline-card__youtube,.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel .timeline-card__soundcloud,.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel .timeline-card__embed{aspect-ratio:auto;object-fit:contain;height:100%}.thread-root--landscape .timeline-card--has-media.is-expanded .timeline-card__media-panel .timeline-card__media-controls{height:var(--card-control-height);margin:0}.thread-root--landscape .timeline-card.is-expanded{--timeline-card-compact-open-height:min(76dvh, calc(100dvh - 112px - var(--safe-area-top) - var(--safe-area-bottom)));height:max(var(--card-closed-height), var(--timeline-card-compact-open-height))}.thread-root--landscape .timeline-card--has-media.is-expanded.is-details-closing{width:var(--timeline-card-closed-width);height:var(--card-closed-height);transition:width .2s var(--ease-close), margin-left .2s var(--ease-close), height .2s var(--ease-close), transform .4s var(--ease-layout);margin-left:0}.thread-root--landscape .timeline-card--has-media.is-expanded.is-details-closing .timeline-card__content{grid-template-columns:var(--timeline-card-content-width) 0px;transition:grid-template-columns .2s var(--ease-close), column-gap .2s var(--ease-close);column-gap:0}.thread-root--landscape .timeline-card--has-media.is-expanded.is-details-closing .timeline-card__details{clip-path:inset(0 0 100%);transition:clip-path .2s var(--ease-close);overflow:hidden}.thread-root--landscape .timeline-card--has-media.is-expanded.is-details-closing .timeline-card__details-inner{opacity:0;transition:opacity .16s ease-in, transform .2s var(--ease-close);transform:translateY(-12px)}.thread-root--landscape .timeline-card--has-media:not(.is-expanded) .timeline-card__details{display:none}}@media (width<=900px){.hero-block{width:min(90vw,720px)}.hero-copy{right:calc(12px + var(--safe-area-right));bottom:calc(20px + var(--safe-area-bottom));width:min(90vw,38ch)}.timeline-card{--timeline-card-base-width:250px;width:var(--timeline-card-base-width)}}@media (width<=720px){.thread-root{--bottom-control-height:25px}.hero-block{width:min(88vw,560px);top:96px}.hero-copy{width:min(88vw,34ch)}}@media (width<=767px) and (orientation:portrait){.thread-root{--bottom-control-height:25px}}.thread-root--compact .hero-copy,.thread-root--compact.thread-root--mobile .hero-copy{bottom:calc(20px + var(--bottom-control-height) + var(--safe-area-bottom))}@media (orientation:portrait){.section-nav{top:auto;bottom:calc(62px + var(--safe-area-bottom))}}@media (width<=1024px) and (orientation:portrait){.thread-root .site-preferences{top:calc(10px + var(--safe-area-top));right:calc(10px + var(--safe-area-right))}.section-nav{left:50%;right:auto;bottom:calc(20px + var(--bottom-control-height) + var(--safe-area-bottom));width:max-content;max-width:calc(100vw - 20px - var(--safe-area-left) - var(--safe-area-right));align-items:baseline;gap:clamp(8px,1.8vw,16px);padding-top:0;display:flex;overflow:auto hidden;transform:translate(-50%)}.section-nav__item{flex:none;padding:0 2px 4px}.section-nav__item:after{left:0;right:0}.thread-root--portrait .hero-copy{bottom:auto;right:auto;left:calc(10px + var(--safe-area-left))}.thread-root--portrait .hero-copy p,.thread-root--portrait .hero-copy p>span{text-align:left;justify-self:start;justify-items:start}}@media (orientation:portrait){.theme-toggle{display:block}}@media (width<=480px) and (orientation:portrait){.section-nav__item{grid-template-columns:1fr;gap:0}.section-nav__chapter{display:none}}@media (width<=720px) and (orientation:portrait){.lab-launcher__panel,.contact-launcher__panel{right:calc(10px + var(--safe-area-right));bottom:calc(45px + var(--safe-area-bottom));left:calc(10px + var(--safe-area-left));box-sizing:border-box;width:auto;max-width:none;height:min(500px, calc(100dvh - 55px - var(--safe-area-top) - var(--safe-area-bottom)));position:fixed}}
