html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
@font-face{font-family:Astra KingHwa;src:url(/fonts/astra-kinghwa.f9496a6bd8c5.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Astra Zhuque;src:url(/fonts/astra-zhuque.9c44de348884.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Astra Cinzel;src:url(/fonts/astra-cinzel.6d29830a126c.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Astra Cormorant;src:url(/fonts/astra-cormorant.9b3a19c612f2.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}
:root{--font-heading:"Astra Cinzel", "Astra KingHwa", "Songti SC", "SimSun", serif;--font-body:"Astra Cormorant", "Astra Zhuque", "FangSong", serif}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-body);font-synthesis:none;--axis-font-size:16px;--axis-bar-height:41px;--scroll-font-size:18px;--text-on-dark:#fff;--text-on-dark-secondary:#f2f4f6}*{box-sizing:border-box}html,body{width:100%;margin:0}html{scrollbar-width:none}body{background:#0f0f0f}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:400}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline-offset:-5px;outline:1px solid}.journey{height:calc(100svh + var(--opening-scroll-unit) * var(--opening-duration));position:relative}.astra{--opening-scroll-unit:550svh;isolation:isolate;position:relative}.experience{isolation:isolate;background:#0f0f0f;height:100svh;position:sticky;top:0;overflow:hidden}.scene{touch-action:pan-y;width:100%;height:100%;display:block;position:absolute;inset:0}.page-scrollbar{z-index:4;color:#fff;mix-blend-mode:difference;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;width:16px;position:fixed;top:14px;bottom:14px;right:2px}.scrollbar-thumb{background:currentColor;border-radius:999px;width:4px;height:64px;position:absolute;top:0;left:6px}.page-scrollbar[data-dragging]{cursor:grabbing}.page-scrollbar:focus-visible{outline:none}.page-scrollbar:focus-visible .scrollbar-thumb{outline-offset:3px;outline:1px solid}.chapter-axis{--chapter-progress:0;z-index:2;mix-blend-mode:difference;pointer-events:none;opacity:0;position:fixed;inset:0}.is-ready .chapter-axis{opacity:1}.axis-bar{width:100%;height:var(--axis-bar-height);color:var(--text-on-dark);pointer-events:auto;border-bottom:1px solid;display:flex;position:absolute}.axis-title{min-width:0;font-size:var(--axis-font-size);text-transform:uppercase;white-space:nowrap;flex:2;align-items:center;padding:0 16px;font-weight:400;line-height:1;display:flex}.axis-items{height:calc(var(--axis-bar-height) - 1px);border-left:1px solid;justify-content:center;margin:0;padding:0;list-style:none;display:flex}.axis-item{border-right:1px solid}.axis-link,.axis-fill{height:100%;font-size:var(--axis-font-size);text-transform:uppercase;grid-template-columns:22px auto;align-items:center;gap:.5em;padding:0 16px;font-weight:400;line-height:1;display:grid}.axis-link{--axis-open:0;--axis-collapsed-size:55px;--axis-expanded-size:160px;width:var(--axis-expanded-size);max-width:calc(var(--axis-collapsed-size) + (var(--axis-expanded-size) - var(--axis-collapsed-size)) * var(--axis-open));background:0 0;border:0;transition:background-color .2s ease-out;position:relative;overflow:hidden}.axis-link:hover{background:#eeeeee21}.axis-number,.axis-label{white-space:nowrap}.axis-label{width:max-content;opacity:var(--axis-open)}.axis-text{gap:.2em;display:inline-flex}.axis-glyph{text-align:center;width:1em;height:1em;display:inline-block}.axis-fill{color:#171717;background:var(--text-on-dark);width:100%;opacity:var(--axis-open);pointer-events:none;-webkit-mask-image:linear-gradient(270deg,#000,#000 50%,#0000 0,#0000);mask-image:linear-gradient(270deg,#000,#000 50%,#0000 0,#0000);-webkit-mask-position:calc(-100% * var(--chapter-progress));mask-position:calc(-100% * var(--chapter-progress));position:absolute;inset:0;-webkit-mask-size:200%;mask-size:200%}.scroll-indicator{z-index:1;width:18px;height:134px;color:var(--text-on-dark);mix-blend-mode:difference;pointer-events:none;opacity:0;position:absolute;bottom:0;left:calc(50% - 9px)}.is-ready .scroll-indicator{opacity:var(--scroll-hint-opacity,1)}.scroll-indicator:before{content:"";background:currentColor;width:1px;height:58px;position:absolute;bottom:0;left:calc(50% - .5px)}.scroll-copy-window{white-space:nowrap;transform-origin:0;width:max-content;height:18px;position:absolute;top:0;left:50%;overflow:hidden;transform:translateY(-100%)rotate(90deg)}.scroll-copy{width:max-content;height:100%;font-family:var(--font-body);font-size:var(--scroll-font-size);text-transform:uppercase;white-space:nowrap;justify-content:center;align-items:center;padding:0 4px;font-weight:400;line-height:1;animation:2s ease-in-out infinite scroll-copy-loop;display:inline-flex;position:relative}.scroll-copy:after{box-sizing:border-box;width:100%;height:100%;padding:inherit;content:"Scroll";text-align:center;place-items:center;display:grid;position:absolute;top:0;left:100%}@keyframes scroll-copy-loop{to{transform:translate(-100%)}}@media (min-width:800px){.axis-bar{transform-origin:0 0;border-top:1px solid;border-bottom:0;width:100svh;transform:rotate(90deg)translateY(-100%)}.axis-title{padding:0 10px 0 16px}.axis-glyph{transform:rotate(-90deg)}}@media (max-width:799px){.page-scrollbar{top:53px}.axis-link{--axis-collapsed-size:48px}.axis-link,.axis-fill{padding:0 12px}.axis-title{display:none}}@media (max-width:699px){.astra{--opening-scroll-unit:460svh}}.reduced-journey{height:100svh}.reduced-journey .scroll-indicator{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
.line-button{--button-ink:#171717;--button-paper:#fff;border:1px solid var(--button-ink);background:var(--button-surface,transparent);width:fit-content;min-height:44px;color:var(--button-ink);font:15px/1.5 var(--font-body);cursor:pointer;border-radius:0;justify-content:center;align-items:center;gap:18px;padding:10px 18px;text-decoration:none;transition:background-color .18s,color .18s;display:inline-flex}.line-button--dark{--button-ink:#fff;--button-paper:#080808}.line-button--solid{--button-surface:var(--button-paper)}.line-button--icon{flex:0 0 44px;width:44px;height:44px;padding:0}.line-button__icon{flex:0 0 18px;width:18px;height:18px;transition:transform .18s;display:block}.action-arrow{transition:transform .18s;display:inline-block}.action-arrow--back{--arrow-x:-3px;--arrow-y:0px}.action-arrow--forward{--arrow-x:3px;--arrow-y:0px}.line-button:disabled{cursor:default;opacity:.45}.line-button:focus-visible{outline-offset:4px;outline:1px solid}@media (hover:hover){.line-button:not(:disabled):hover{background:color-mix(in srgb, var(--button-ink) 9%, var(--button-paper))}.line-button:not(:disabled):hover [data-icon=back]{transform:translate(-3px)}.line-button:not(:disabled):hover [data-icon=plus]{transform:rotate(90deg)}:is(a,button):not(:disabled):hover .action-arrow{transform:translate(var(--arrow-x,3px), var(--arrow-y,-3px))}}:is(a,button):focus-visible .action-arrow{transform:translate(var(--arrow-x,3px), var(--arrow-y,-3px))}.line-button:focus-visible [data-icon=back],.line-button:not(:disabled):active [data-icon=back]{transform:translate(-3px)}.line-button:not(:disabled):active{background:color-mix(in srgb, var(--button-ink) 16%, var(--button-paper))}.line-button--clear,.line-button--clear:not(:disabled):is(:hover,:active){background:0 0}@media (prefers-reduced-motion:reduce){.line-button,.line-button__icon,.action-arrow{transition:none}.line-button .line-button__icon,.action-arrow{transform:none!important}}
.mouse-dot{color:#fff;z-index:9999;mix-blend-mode:difference;pointer-events:none;opacity:0;will-change:transform;background:0 0;border:0;width:0;height:0;margin:0;padding:0;position:fixed;inset:0 auto auto 0;overflow:visible}html[data-context-cursor=true],html[data-context-cursor=true] *{cursor:none!important}.cursor-core,.cursor-ring,.cursor-arrows,.cursor-play{transition:transform .18s,opacity .14s;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.cursor-core{background:currentColor;border-radius:50%;width:12px;height:12px}.cursor-ring{opacity:0;border:1px solid;border-radius:50%;width:38px;height:38px;transform:translate(-50%,-50%)scale(.32)}.cursor-arrows,.cursor-play{opacity:0}.cursor-label{white-space:nowrap;font:14px/1.5 var(--font-body);letter-spacing:.08em;position:absolute;top:0;left:29px;transform:translateY(-50%)}.mouse-dot[data-side=left] .cursor-label{left:auto;right:29px}.mouse-dot[data-mode=action] .cursor-core{transform:translate(-50%,-50%)scale(.5)}.mouse-dot[data-mode=action] .cursor-ring{opacity:.75;transform:translate(-50%,-50%)scale(.53)}.mouse-dot:is([data-mode=view],[data-mode=play],[data-mode=drag],[data-mode=dragging]) .cursor-core{opacity:0;transform:translate(-50%,-50%)scale(.3)}.mouse-dot:is([data-mode=view],[data-mode=play]) .cursor-ring{opacity:1;transform:translate(-50%,-50%)scale(1)}.mouse-dot[data-mode=play] .cursor-play,.mouse-dot:is([data-mode=drag],[data-mode=dragging]) .cursor-arrows{opacity:1}.mouse-dot[data-mode=dragging] .cursor-arrows{transform:translate(-50%,-50%)scale(.8)}.mouse-dot[data-pressed=true] .cursor-ring{transform:translate(-50%,-50%)scale(.45)}.mouse-dot[data-pressed=true] .cursor-core{transform:translate(-50%,-50%)scale(.35)}.gallery-touch-hint{display:none}@media (hover:none),(pointer:coarse){.gallery-touch-hint{z-index:2;text-align:center;pointer-events:none;color:#fff;mix-blend-mode:difference;font:12px/1.6 var(--font-body);margin:0;display:block;position:absolute;inset:auto 64px 24px}[data-interacted=true]>.gallery-touch-hint{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor-core,.cursor-ring,.cursor-arrows,.cursor-play{transition:none}}
.opening-titles{z-index:1;color:#fff;mix-blend-mode:difference;pointer-events:none;opacity:0;position:absolute;inset:0}.experience.is-ready .opening-titles{opacity:1}.opening-beat{--opening-center-offset:20px;--opening-size:clamp(32px, 4.2vw, 64px);--opening-line-em:28;top:46%;left:calc(50% + var(--opening-center-offset));text-align:center;width:min(1360px,100% - 144px);position:absolute;translate:-50% -50%;container-type:inline-size}.opening-beat-copy{visibility:hidden;opacity:0;position:relative}.opening-beat:first-child .opening-beat-copy{visibility:visible;opacity:1}.opening-chinese{font-family:var(--font-heading);letter-spacing:.035em;margin:0}.opening-translation{font-family:var(--font-body);letter-spacing:0;margin:20px 0 0}.opening-chinese,.opening-translation{font-size:calc(min(var(--opening-size), calc(100cqw * var(--opening-line-width,1) / var(--opening-line-em))) * var(--opening-scale,1));white-space:nowrap;font-weight:400;line-height:1.35}.opening-beat[data-world=crystal]{--opening-scale:.8;--opening-size:clamp(72px, 9.8vw, 160px);--opening-line-width:calc(11 / 12);width:min(1960px,100% - 96px);top:50%}.opening-beat[data-world=crystal] .opening-beat-copy{grid-template-columns:repeat(12,minmax(0,1fr));row-gap:8px;display:grid}.opening-beat[data-world=crystal] .opening-chinese{line-height:1.12;display:contents}.opening-fragment{display:block}.opening-fragment:first-child{text-align:left;grid-column:1/12}.opening-fragment:last-child{text-align:right;grid-column:2/-1}.opening-chinese>.opening-fragment:first-child{grid-row:1}.opening-chinese>.opening-fragment:last-child{grid-row:2}@media (max-width:799px){.opening-beat{--opening-center-offset:0px;--opening-size:clamp(30px, 6.5vw, 48px);width:calc(100% - 48px);top:46%;left:50%}.opening-translation{margin-top:16px}.opening-beat[data-world=crystal]{--opening-size:clamp(36px, 9.8vw, 80px);width:calc(100% - 32px);top:50%;left:50%}.experience .scroll-indicator{height:80px}.experience .scroll-indicator:before{height:24px}}@media (max-height:600px) and (prefers-reduced-motion:no-preference){.opening-beat{--opening-size:clamp(28px, 7vh, 42px)}.opening-beat[data-world=crystal]{--opening-size:clamp(32px, 10vh, 60px)}.opening-translation{margin-top:14px}.experience .scroll-indicator{height:64px}.experience .scroll-indicator:before{height:20px}}@media (prefers-reduced-motion:reduce){.reduced-journey{height:auto}.reduced-journey .experience{height:auto;min-height:100svh;position:relative;overflow:visible}.reduced-journey .scene{height:100svh;margin-bottom:-100svh;position:sticky;top:0}.opening-titles{mix-blend-mode:normal;background:#0f0f0feb;gap:100px;padding:140px 0 100px;display:grid;position:relative;inset:auto}.opening-beat,.opening-beat[data-world=crystal]{text-align:center;width:min(1360px,100% - 48px);margin-inline:auto;position:static;translate:none}.opening-beat-copy{visibility:visible!important;opacity:1!important;filter:none!important;transform:none!important}}
html:has(.astra[data-loading=true]){overflow:hidden}.astra[data-loading=true]>.journey{z-index:20}.astra[data-loading=true] .experience{z-index:20;background:#000;width:100%;position:fixed;inset:0}.astra[data-loading=true]>.chapter-axis,.astra[data-loading=true]>.page-scrollbar{visibility:hidden}.loading-prelude{z-index:30;touch-action:none;overscroll-behavior:none;background:0 0;position:fixed;inset:0}.prelude-copy{bottom:max(22px, env(safe-area-inset-bottom));left:max(28px, env(safe-area-inset-left));color:#fff;width:max-content;opacity:var(--loading-copy-opacity,1);pointer-events:none;position:absolute}.prelude-counter{font:400 144px/1 var(--font-heading);letter-spacing:-.04em;font-variant-numeric:lining-nums tabular-nums;display:flex}.prelude-digit{text-align:center;width:.62em;height:1em;display:block;overflow:hidden}.prelude-digit-strip{will-change:transform;display:block}.prelude-digit-strip>span{height:1em;display:block}.prelude-error{color:#252523;text-align:center;font:17px/1.8 var(--font-body);background:#f8f8f7;place-content:center;justify-items:center;gap:18px;padding:30px;display:grid;position:absolute;inset:0}.loading-prelude[data-failed=true] .prelude-copy{visibility:hidden}.experience.is-ready .opening-titles{animation:1s ease-out both opening-after-loading}@keyframes opening-after-loading{0%{opacity:0}to{opacity:1}}@media (max-width:799px){.prelude-copy{bottom:max(18px, env(safe-area-inset-bottom));left:max(16px, env(safe-area-inset-left))}.prelude-counter{font-size:88px}}
:root{--card-paper:#faf9f6;--card-fill:#eeeee7;--card-ink:#292d29;--card-muted:#62695f;--card-radius:32px;--card-inner-radius:20px;--card-shadow:0 18px 64px #16201816}.detail-dialog{border-radius:var(--card-radius);background:var(--card-paper);width:min(1080px,100vw - 48px);max-width:none;max-height:calc(100svh - 48px);color:var(--card-ink);box-shadow:var(--card-shadow);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#abb0a2 transparent;border:0;padding:0;overflow:auto}.detail-dialog::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#171d2161;animation:.44s both detail-backdrop-in}.detail-dialog[data-closing]::backdrop{animation:.26s both detail-backdrop-out}@keyframes detail-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes detail-backdrop-out{0%{opacity:1}to{opacity:0}}.detail-shell{isolation:isolate;padding:18px;position:relative}.detail-shell:before{content:"";border-radius:inherit;pointer-events:none;animation:.65s ease-out both detail-facet-arrive;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #a7b5a650,inset 0 0 24px #fff9}.detail-shell:after{content:"";z-index:1;pointer-events:none;background:#fff;width:8px;height:8px;animation:2.2s ease-in-out infinite detail-facet-blink;position:absolute;top:12px;left:13%;transform:rotate(45deg);box-shadow:0 0 9px 3px #d7e4d7}.detail-dialog[data-closing] .detail-shell:before{animation:.26s ease-in both detail-facet-leave}@keyframes detail-facet-arrive{0%{opacity:0;box-shadow:inset 0 0 0 3px #fff,inset 0 0 45px #fff}to{opacity:1}}@keyframes detail-facet-leave{to{opacity:0}}@keyframes detail-facet-blink{0%,to{opacity:.15}48%{opacity:.8}60%{opacity:.3}}.detail-header{justify-content:space-between;align-items:center;gap:20px;padding:0 6px 16px 14px;display:flex}.card-eyebrow{font:12px/1.6 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--card-muted);margin:0}.card-tags{flex-wrap:wrap;gap:8px;margin:22px 0;padding:0;list-style:none;display:flex}.card-tags li{color:#465843;font:13px/1.5 var(--font-body);background:#e9ede4;border-radius:999px;padding:7px 13px;display:inline-block}.detail-dialog :is(a,button,summary):focus-visible{outline-offset:4px;outline:1px solid}@media (max-width:799px){.detail-dialog{border-radius:26px;width:calc(100vw - 24px);max-height:calc(100svh - 24px)}.detail-shell{padding:12px}.detail-header{padding:0 0 12px 8px}}@media (prefers-reduced-motion:reduce){.detail-dialog::backdrop,.detail-shell:before,.detail-shell:after{animation:none}}
.resume-timeline{--career-gutter:72px;--career-stage-width:1000px;--career-copy-width:760px;--career-sticky-top:clamp(24px, 3.5svh, 36px);--career-header-height:84px;--career-headline-rest-y:0px;--career-compact-title:25px;--career-ink:#111;--career-muted:#424242;--career-paper:#fff;--timeline-reveal:0;isolation:isolate;z-index:1;margin-top:calc(-100svh - var(--opening-scroll-unit) * var(--career-entry-overlap));background:var(--career-paper);color:var(--career-ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;opacity:var(--timeline-reveal);position:relative}.astra:not(.is-ready) .resume-timeline{visibility:hidden}.career-stage{pointer-events:none;background:var(--career-paper);height:100svh;margin-bottom:-100svh;position:sticky;top:0;overflow:clip}.career-particles{pointer-events:none;width:100%;height:100%;display:block}.career-ruler{z-index:3;pointer-events:none;height:100svh;margin-bottom:-100svh;position:sticky;top:0}.career-periods{z-index:2;padding-top:clamp(96px,14svh,144px);position:relative}.career-period{scroll-margin-top:var(--career-sticky-top);position:relative}.career-layout{width:min(var(--career-stage-width), calc(100% - var(--career-gutter) * 2));margin-inline:auto;padding-bottom:26svh;position:relative}.career-period:last-child .career-layout{padding-bottom:48svh}.career-intro{top:var(--career-sticky-top);height:var(--career-header-height);z-index:2;position:sticky}.career-intro:before{content:"";inset:calc(-1 * var(--career-sticky-top)) -24px 0;background:var(--career-paper);z-index:-1;position:absolute}.career-entry-date{color:var(--career-ink);font:16px/22px var(--font-body);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.career-intro .career-headline{width:max-content;max-width:100%;color:var(--career-ink);font:400 clamp(54px, 5.5vw, 82px)/1.18 var(--font-heading);letter-spacing:-.025em;transform-origin:0 0;margin:0;position:absolute;top:8px;left:0;transform:translateY(72px)}.career-headline span{display:block}.career-identity{text-align:right;opacity:0;max-width:64%;font-family:var(--font-body);position:absolute;bottom:9px;right:0}.career-affiliation{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:4px 10px;margin:6px 0 0;display:flex}.career-company{font:400 clamp(16px, 1.55vw, 18px)/1.5 var(--font-heading)}.career-role{color:var(--career-muted);font-size:clamp(13px,1.3vw,15px);line-height:1.5}.career-rule{background:var(--career-ink);transform-origin:0;height:1px;position:absolute;inset:auto 0 0;transform:translateY(220px)scaleX(.08)}.career-opening{height:clamp(320px,58svh,560px)}.career-copy{width:min(100%, var(--career-copy-width));margin-inline:auto;position:relative}.career-description{font:400 22px/1.85 var(--font-body);text-wrap:pretty;margin:0 0 56px}.career-copy-section+.career-copy-section{margin-top:56px}.career-copy-section h3{font:400 20px/1.7 var(--font-heading);text-wrap:pretty;margin:0 0 24px}.career-copy-section .career-project-heading{flex-wrap:wrap;align-items:baseline;gap:10px 28px;font-size:clamp(26px,2.4vw,32px);line-height:1.45;display:flex}.career-copy-section+.career-project-section{border-top:1px solid var(--career-ink);padding-top:36px}.career-project-heading .career-project{white-space:nowrap;flex:none}.career-paragraph{color:#202020;font:400 17px/1.95 var(--font-body);text-align:left;overflow-wrap:anywhere;margin:0}.career-paragraph+.career-paragraph{margin-top:24px}.career-paragraph--numbered{text-indent:-1.45em;padding-left:1.45em}.career-project{color:var(--career-ink);font:14px/1.8 var(--font-body);text-underline-offset:7px}.career-project:hover{text-decoration-thickness:2px}.career-project:focus-visible{outline-offset:6px;outline:1px solid}.career-layout.chapter-held:before{content:"";height:var(--career-header-height);display:block}.career-layout.chapter-held .career-intro{inset-inline:0;top:var(--career-held-header-top);position:absolute}@media (max-width:799px){.resume-timeline{--career-gutter:max(24px, env(safe-area-inset-left), env(safe-area-inset-right));--career-sticky-top:calc(var(--axis-bar-height) + 16px);--career-header-height:152px;--career-compact-title:19px}.career-ruler:before{content:"";height:var(--axis-bar-height);background:var(--career-paper);position:absolute;inset:0 0 auto}.career-periods{padding-top:calc(var(--axis-bar-height) + 64px)}.career-layout{padding-bottom:20svh}.career-entry-date{font-size:14px}.career-intro .career-headline{font-size:clamp(30px,8.2vw,54px);top:8px}.career-identity{text-align:left;max-width:100%;left:0}.career-affiliation{justify-content:flex-start;gap:4px 8px}.career-company{font-size:14px}.career-role{font-size:13px}.career-opening{height:clamp(270px,48svh,440px)}.career-description{margin-bottom:40px;font-size:18px}.career-copy-section+.career-copy-section{margin-top:40px}.career-copy-section h3{margin-bottom:20px;font-size:18px}.career-copy-section .career-project-heading{font-size:23px}.career-copy-section+.career-project-section{padding-top:28px}.career-paragraph{font-size:16px;line-height:1.9}}@media (prefers-reduced-motion:reduce){.resume-timeline{opacity:1;margin-top:0}.career-intro .career-headline{font-size:var(--career-compact-title);transform:translateY(var(--career-headline-rest-y))}.career-identity{opacity:1}.career-rule{transform:none}.career-opening{height:56px}}
.portfolio{color:#232321;height:100%;font-family:var(--font-body);background:#fff;position:absolute;inset:0}.work-stage{height:100%;position:absolute;inset:0;overflow:hidden}.work-canvas{touch-action:none;cursor:auto;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.portfolio[data-interactive=true] .work-canvas{cursor:grab}.work-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.work-status{text-align:center;font:13px/1.8 var(--font-body);position:absolute;top:45%;left:20%;right:20%}
.work-dialog--portrait{width:min(880px,100vw - 48px)}.work-hero{gap:26px;display:grid}.work-hero[data-portrait=true]{grid-template-columns:min(44%, calc(64svh * var(--media-aspect))) minmax(0, 1fr);align-items:center}.work-gallery{min-width:0}.work-detail-media{width:min(100%, calc(62svh * var(--media-aspect)));aspect-ratio:var(--media-aspect);border-radius:var(--card-inner-radius);background:var(--card-fill);margin:auto;position:relative;overflow:hidden}.work-detail-media img{width:100%;height:auto;display:block}.work-image-button{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.work-hero[data-zoomed=true]{display:block}.work-hero[data-zoomed=true] .work-detail-media{width:100%}.work-hero[data-zoomed=true] .work-image-button{cursor:zoom-out}.work-gallery-controls{font:13px var(--font-body);flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;padding-top:16px;display:flex}.work-gallery-caption{color:var(--card-muted);text-align:center;font:12px/1.7 var(--font-body);margin:12px 8px 0}.work-detail-copy{grid-template-columns:1fr 1fr;align-items:start;gap:32px;min-width:0;padding:4px 18px 20px;display:grid}.work-detail-copy[hidden]{display:none!important}.work-hero[data-portrait=true] .work-detail-copy{flex-direction:column;gap:18px;padding:12px 16px 12px 0;display:flex}.work-detail-copy h3{font:400 clamp(28px, 3vw, 38px)/1.4 var(--font-heading);letter-spacing:-.6px;overflow-wrap:anywhere;margin:18px 0}.work-detail-copy .card-tags{margin-bottom:0}.work-detail-description{min-width:0;padding-top:4px}.work-detail-description p{font:17px/1.9 var(--font-body);color:var(--card-muted);overflow-wrap:anywhere;margin:0}.work-actions{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.work-actions:empty{display:none}.work-case-study{margin:16px 18px 18px}.work-case-role{font:14px/1.8 var(--font-body);color:var(--card-muted);margin:0 0 22px}.work-case-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;display:grid}.work-case-metrics>div{border-radius:var(--card-inner-radius);background:var(--card-fill);padding:22px}.work-case-metrics dt{color:var(--card-muted);font:13px/1.6 var(--font-body)}.work-case-metrics dd{font:32px/1.25 var(--font-heading);overflow-wrap:anywhere;margin:12px 0 0}.work-case-note{font:13px/1.8 var(--font-body);color:var(--card-muted);margin:18px 0 26px}.work-case-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.work-case-sections>section{background:var(--card-fill);border-radius:24px;padding:24px}.work-case-sections h4{font:400 22px/1.5 var(--font-heading);margin:0 0 14px}.work-case-sections p{font:16px/1.9 var(--font-body);color:var(--card-muted);text-wrap:pretty;margin:0}.game-player{background:var(--card-paper);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--card-ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;overscroll-behavior:none;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.game-player::backdrop{background:var(--card-paper)}.game-player iframe{border:0;width:100%;height:100%;display:block}.game-return{z-index:2;top:max(16px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));position:absolute}.game-player[data-locked=true] .game-return{visibility:hidden}.game-loading{background:var(--card-paper);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:32px;display:flex;position:absolute;inset:0}.game-loading p{font:28px/1.5 var(--font-heading);margin:0}@media (max-width:799px){.work-hero,.work-hero[data-portrait=true]{grid-template-columns:minmax(0,1fr);gap:20px}.work-detail-media{width:min(100%, calc(56svh * var(--media-aspect)))}.work-detail-copy,.work-hero[data-portrait=true] .work-detail-copy{grid-template-columns:minmax(0,1fr);gap:18px;padding:4px 10px 14px;display:grid}.work-detail-copy h3{font-size:29px}.work-case-study{margin:12px 8px}.work-case-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.work-case-metrics>div{padding:18px}.work-case-metrics dd{font-size:26px}.work-case-sections{grid-template-columns:minmax(0,1fr)}}
.media-viewer{color:#fff;overscroll-behavior:contain;cursor:zoom-out;background:0 0;border:0;outline:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:64px 24px 24px;position:fixed;inset:0;overflow:hidden}.media-viewer[open]{place-items:center;display:grid}.media-viewer::backdrop{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#070909c9;animation:.42s both media-backdrop-in}.media-viewer[data-closing]::backdrop{animation:.24s both media-backdrop-out}@keyframes media-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes media-backdrop-out{0%{opacity:1}to{opacity:0}}.media-viewer-close{top:max(14px, env(safe-area-inset-top));right:max(18px, env(safe-area-inset-right));position:absolute}.media-viewer-content{cursor:zoom-out;max-width:100%}.media-viewer-image{cursor:zoom-out;background:0 0;border:0;padding:0;display:block}.media-viewer-image img,.media-viewer-video video{object-fit:contain;border-radius:4px;width:auto;max-width:calc(100vw - 48px);height:auto;max-height:calc(100dvh - 88px);display:block}.media-progressive{--image-gutter:48px;width:min(calc(100vw - var(--image-gutter)), calc((100dvh - 88px) * var(--image-aspect)));aspect-ratio:var(--image-aspect);border-radius:4px;display:block;position:relative;overflow:hidden}.media-progressive img{width:100%;height:100%;position:absolute;inset:0}.media-progressive-full{opacity:0;filter:blur(6px);transition:opacity .7s,filter .7s}.media-progressive[data-ready=true] .media-progressive-full{opacity:1;filter:blur()}.media-progressive[data-ready=true] .media-progressive-preview{visibility:hidden;transition:visibility 0s .7s}.media-viewer-video{position:relative}.media-viewer-video video{background:#000}.media-viewer-video-dismiss{cursor:zoom-out;background:0 0;border:0;padding:0;position:absolute;inset:0 0 64px}.media-viewer-content[data-kind=audio]{width:min(680px,100%)}.work-audio{justify-items:center;gap:24px;width:100%;display:grid}.work-audio-wave{cursor:zoom-out;background:0 0;border:0;width:100%;padding:0}.work-audio-wave canvas{width:100%;height:clamp(100px,24svh,220px);display:block}.work-audio audio{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;width:min(560px,100%);height:44px;display:block}.media-viewer button:focus-visible{outline-offset:4px;outline:1px solid #ffffffb3}@media (max-width:799px){.media-progressive{--image-gutter:24px}.media-viewer{padding:64px 12px 24px}.media-viewer-image img,.media-viewer-video video{max-width:calc(100vw - 24px)}}@media (prefers-reduced-motion:reduce){.media-progressive-full{filter:none;transition:none}.media-progressive[data-ready=true] .media-progressive-preview{transition:none}.media-viewer::backdrop,.media-viewer[data-closing]::backdrop{animation:none}}
.skills{--skill-ink:#f5f5f5;--skill-muted:#ffffffc2;--skill-rule:#ffffff40;height:100%;color:var(--skill-ink);font-family:var(--font-body);position:absolute;inset:0}.skills-backdrop{pointer-events:none;position:absolute;inset:0}.skills--reading .skills-backdrop{position:fixed}.skills-stage{touch-action:none;position:absolute;inset:0;overflow:hidden}.skills-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.skills-stage[data-cursor]{cursor:grab}.skills-stage[data-dragging=true]{cursor:grabbing;-webkit-user-select:none;user-select:none}.skills-stage:focus-visible{outline-offset:-12px;outline:1px solid #777}.skills-loading{text-align:center;color:#555;font:13px/1.6 var(--font-body);position:absolute;inset:auto 20px 18px}.skills-index{opacity:var(--skills-copy-opacity,0);z-index:2;overscroll-behavior-x:contain;scrollbar-width:none;text-shadow:0 1px 2px #000c;position:absolute;top:26px;left:clamp(210px,18vw,288px);right:clamp(34px,4vw,80px);overflow-x:auto}.skills-index::-webkit-scrollbar{display:none}.text-navigation{align-items:center;gap:clamp(24px,2.5vw,48px);width:max-content;padding-bottom:8px;display:flex;position:relative}.skills-index .text-navigation{margin-inline:auto}.text-navigation-indicator{width:1px;height:1px;opacity:var(--nav-opacity,0);transform:translateX(var(--nav-x,0px)) scaleX(var(--nav-width,0));transform-origin:0;pointer-events:none;background:currentColor;transition:transform .3s cubic-bezier(.22,1,.36,1);position:absolute;bottom:4px;left:0}.skills-index button{min-height:44px;color:var(--skill-muted);font:400 17px/1.5 var(--font-heading);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:none;padding:8px 0;transition:color .2s}.skills-index button:hover,.skills-index button[aria-current=true]{color:var(--skill-ink)}.skills-index button:focus-visible{outline-offset:-1px;outline:1px solid}.skills--reading,.skills-reader{scrollbar-width:none}.skills--reading::-webkit-scrollbar{display:none}.skills-reader::-webkit-scrollbar{display:none}.skills--reading .skills-stage{width:46%;inset:100px auto 60px 4%}.skills-reader{opacity:var(--skills-copy-opacity,0);overscroll-behavior:contain;overflow-anchor:none;text-shadow:0 1px 2px #0008;width:44%;padding:0 18px 0 0;position:absolute;top:100px;bottom:32px;right:clamp(34px,4vw,80px);overflow-y:auto}.skills-reader>div{animation:.3s both skills-read-in}.skills-reader:focus-visible{outline-offset:5px;outline:1px solid #777}.skills-reader-loading{font:16px/1.8 var(--font-body)}.skill-heading{font:400 clamp(32px, 3.1vw, 52px)/1.25 var(--font-heading);letter-spacing:-.025em;margin:0}.media-dossier{padding:0}.skills-still{place-items:center;display:grid;position:absolute;inset:0}.skills-still img{object-fit:contain;width:78%;max-height:90%}.skills--static{background:#122238}.skills--static .skills-canvas{display:none}@keyframes skills-read-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width:900px){.skills--reading{overflow-anchor:none;overscroll-behavior:contain;padding:96px 24px 36px;overflow-y:auto}.skills--reading .skills-index{touch-action:pan-x;position:relative;top:auto;left:auto;right:auto}.skills-index .text-navigation{gap:26px;margin-inline:0}.skills-index button{font-size:16px}.skills--reading .skills-stage{touch-action:pan-y;width:100%;height:min(34svh,300px);margin:16px 0 20px;position:relative;top:auto;bottom:auto;left:auto}.skills--reading .skills-canvas{touch-action:pan-y}.skills-reader{width:100%;padding:0;position:relative;top:auto;bottom:auto;right:auto;overflow:visible}.skill-heading{font-size:34px}}@media (prefers-reduced-motion:reduce){.skills-reader>div{animation:none}}.media-intro{color:var(--skill-muted);font:16px/1.9 var(--font-body);margin:24px 0}.media-panel{padding:0 0 32px}.media-panel p{font:16px/1.85 var(--font-body);margin:0}.media-reference{color:inherit;overflow-wrap:anywhere;text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.media-reference span{transition:transform .2s;display:inline-block}.media-reference:hover span{transform:translate(2px,-2px)}.media-scenarios{border-top:1px solid var(--skill-ink)}.media-scenarios details{border-bottom:1px solid var(--skill-rule)}.media-scenarios summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;list-style:none;display:flex}.media-scenarios summary::-webkit-details-marker{display:none}.media-scenarios summary strong{font:400 21px/1.5 var(--font-heading);display:block}.media-disclosure{font:22px/1 var(--font-body);flex-shrink:0;transition:transform .2s}.media-scenarios summary[aria-expanded=true] .media-disclosure{transform:rotate(45deg)}.media-disclosure-content{overflow:hidden}.media-scenario-body{font:16px/1.9 var(--font-body);margin:0;padding-bottom:24px}.media-scenario-body>div{grid-template-columns:48px minmax(0,1fr);gap:16px;margin-top:14px;display:grid}.media-scenario-body>div:first-child{margin-top:0}.media-scenario-body dt{color:var(--skill-muted);padding-top:2px;font-size:13px}.media-scenario-body dd{min-width:0;margin:0}.media-inline-resources{flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin:0;padding:0;font-size:14px;line-height:1.8;list-style:none;display:flex}.media-inline-resources li{min-width:0;max-width:100%}@media (max-width:799px){.media-dossier{padding:0}.media-intro{margin:20px 0;font-size:15px}.media-panel p,.media-scenario-body{font-size:15px}.media-scenarios summary strong{font-size:20px}.media-scenario-body>div{grid-template-columns:38px minmax(0,1fr);gap:12px}}@media (prefers-reduced-motion:reduce){.text-navigation-indicator,.skills-index button,.media-reference span,.media-disclosure{transition:none}}
.explore-hub{z-index:1;background:#fff;height:250svh;position:relative}.hub-stage{--hub-frame-x:clamp(28px, 4vw, 72px);--hub-frame-y:clamp(32px, 6svh, 64px);--hub-frame-left:calc(var(--axis-bar-height) + var(--hub-frame-x));--hub-frame-top:var(--hub-frame-y);--hub-frame-bottom:var(--hub-frame-y);--hub-frame-label-gap:clamp(40px, 5vw, 88px);isolation:isolate;background:#fff;height:100svh;position:sticky;top:0;overflow:hidden}.hub-stage.is-open{z-index:10;height:100dvh;position:fixed;inset:0}.hub-pane{pointer-events:none;position:absolute;inset:0;overflow:hidden}.hub-pane--work{z-index:1;background:#eeeee9}.hub-pane--skills{z-index:2;background:0 0}.hub-stage[data-opened=work] .hub-pane--work,.hub-stage[data-opened=skills] .hub-pane--skills{pointer-events:auto}.hub-stage[data-fullscreen=work] .hub-pane--skills,.hub-stage[data-fullscreen=skills] .hub-pane--work,.hub-stage[data-opened=work] .skills-index{visibility:hidden}.hub-frame-guide{inset:var(--hub-frame-top) var(--hub-frame-x) var(--hub-frame-bottom) var(--hub-frame-left);visibility:hidden;pointer-events:none;position:absolute}.hub-boundary-canvas{z-index:3;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hub-choices{--hub-rule-extension:24px;z-index:4;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.hub-lens-overlay{z-index:4;clip-path:inset(var(--hub-frame-top) var(--hub-frame-x) var(--hub-frame-bottom) var(--hub-frame-left));mix-blend-mode:difference;pointer-events:none;position:absolute;inset:0}.hub-color-lens{opacity:0;will-change:transform, opacity;border:1px solid #fff;border-radius:50%;position:absolute;top:0;left:0}.hub-stage.is-open .hub-lens-overlay{visibility:hidden}.hub-stage[data-lens-active=true] .hub-choice{cursor:none}body:has(.hub-stage[data-lens-active=true])>.mouse-dot{visibility:hidden}.hub-choices--work{mix-blend-mode:difference}.hub-choice{text-align:left;-webkit-user-select:none;user-select:none;pointer-events:auto;background:0 0;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.hub-label{color:#fff;flex-direction:column;gap:11px;width:clamp(230px,19vw,292px);display:flex;position:absolute}.hub-choice--work .hub-label{left:calc(var(--hub-frame-left) + var(--hub-frame-label-gap));top:calc(var(--hub-frame-top) + var(--hub-frame-label-gap))}.hub-choice--skills .hub-label{right:calc(var(--hub-frame-x) + var(--hub-frame-label-gap));bottom:calc(var(--hub-frame-bottom) + var(--hub-frame-label-gap))}.hub-label-title{padding-right:var(--hub-rule-extension);font:400 clamp(64px, 4.7vw, 84px)/1 var(--font-heading);letter-spacing:.06em;justify-content:space-between;align-items:center;display:flex}.hub-label i{font:normal clamp(28px, 2.1vw, 36px)/1 var(--font-body);vertical-align:middle;display:inline-block}.hub-label-rule{width:calc(100% - var(--hub-rule-extension));background:currentColor;height:1px;transition:width .65s cubic-bezier(.22,1,.36,1);display:block}@media (hover:hover) and (pointer:fine){.hub-choice:hover .hub-label-rule{width:100%}}.hub-choice:focus-visible .hub-label-rule{width:100%}.hub-choice:focus-visible{outline:0}.hub-choice:focus-visible .hub-label{outline-offset:12px;outline:1px solid}.hub-label i{transition:transform .18s}@media (hover:hover){.hub-choice:hover .hub-label i{transform:translate(3px,-3px)}}.hub-back{pointer-events:auto;z-index:5;visibility:hidden;opacity:0;mix-blend-mode:difference;position:absolute;top:24px;left:34px}.hub-stage.is-open .hub-choices{opacity:0;visibility:hidden;pointer-events:none}.hub-stage:not(.is-open) .skills-index,.astra[data-exploring=true]>.chapter-axis,.astra[data-exploring=true]>.page-scrollbar{visibility:hidden}@media (max-width:799px){.explore-hub{height:220svh}.hub-stage{--hub-frame-x:16px;--hub-frame-left:16px;--hub-frame-top:calc(var(--axis-bar-height) + 20px);--hub-frame-bottom:24px;--hub-frame-label-gap:clamp(28px, 7vw, 44px)}.hub-choices{--hub-rule-extension:20px}.hub-label{gap:10px;width:clamp(188px,48vw,220px)}.hub-label-title{font-size:clamp(48px,12.5vw,58px)}.hub-label i{font-size:26px}.hub-back{top:48px;left:16px}}@media (prefers-reduced-motion:reduce){.explore-hub{height:100svh}.hub-label-rule,.hub-label i,.hub-back,.hub-choices{transition:none}.hub-choice .hub-label i{transform:none}}
.journey[data-crystal-exit]{z-index:2;pointer-events:none}.journey[data-crystal-exit] .experience{background:0 0}.career-arriving .career-stage,.career-arriving .career-period:first-child .career-layout,.career-arriving .career-ruler{transform:translate3d(0, var(--arrival-y,0px), 0);will-change:transform}.chapter-gap{background:#eeeee9;height:0}.chapter-gap--entry{background:var(--chapter-entry-background,#fff);height:15svh}.chapter-gap--exit{height:65svh}.astra[data-chapter-transition]:after{content:"";z-index:0;pointer-events:none;background:#eeeee9;position:fixed;inset:0}.astra[data-chapter-transition=entry]:after{background:var(--chapter-entry-background,#fff)}.astra[data-chapter-transition=exit]:after{background:#e4e3d7}.explore-hub:has(.chapter-held){z-index:2;background:0 0}.hub-stage.chapter-held:not(.is-open){pointer-events:none}.explore-hub:has(.chapter-held){pointer-events:none}.contact:has(.contact-stage.chapter-held){pointer-events:none}.contact-stage.chapter-held{pointer-events:auto}.chapter-masks{pointer-events:none;width:0;height:0;position:absolute}.chapter-edge-sparkle{z-index:3;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.chapter-held:not(.is-open){transform:translate3d(0, var(--chapter-y,0px), 0);transform-origin:50%;will-change:transform}.career-stage.chapter-held{background:var(--career-paper,#fff)}.career-stage.chapter-held,.career-ruler.chapter-held{width:100%;margin:0;position:fixed;inset:0;transform:none}.hub-stage[data-portal-reveal]{will-change:transform, clip-path}@media (prefers-reduced-motion:reduce){.chapter-gap{display:none}}
.contact{height:240svh;min-height:100svh;color:var(--text-on-dark);background:#060709;padding:0;display:block;position:relative}.contact:has(.chapter-held){z-index:2;background:0 0}.contact-stage{isolation:isolate;background:#060709;height:100svh;min-height:480px;position:sticky;top:0;overflow:hidden}.signal-fallback,.signal-art,.signal-shade{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.signal-fallback{background:#060709;overflow:hidden}.signal-rock{aspect-ratio:16/9;background:50%/contain no-repeat;width:max(110%,195.56vh);position:absolute;bottom:-4%}.signal-rock--left{background-image:url(/contact-signal/lunar-left.webp);bottom:-7%;left:-4.5%}.signal-rock--right{background-image:url(/contact-signal/lunar-right.webp);bottom:-14%;right:-5%}.signal-lens{aspect-ratio:1;background:radial-gradient(#020304 48%,#e2ddd3 49%,#393735 50%,#141516 56%,#f5f1e8 58%,#c9beb0 61%,#51494288 67%,#0000 74%);border-radius:50%;width:min(45vh,31vw);position:absolute;top:37%;left:76%;transform:translate(-50%,-50%)rotate(-23deg)}.signal-lens:after{content:"";background:radial-gradient(#fffcf3,#dbd4c7 28%,#7c756c66 52%,#0000 71%);width:230%;height:8%;position:absolute;top:47%;left:-65%}.signal-art{opacity:0;z-index:1}[data-art=ready] .signal-art{opacity:1}[data-art=ready] .signal-fallback{visibility:hidden}.contact-stage[data-collage-reveal]{-webkit-mask-image:url(#contact-collage-mask);mask-image:url(#contact-collage-mask)}.signal-shade{background:linear-gradient(90deg,#06070918,#0000 45%)}.signal-copy{z-index:4;width:43%;max-width:740px;position:absolute;top:23%;left:max(80px,9.6%)}.contact .signal-copy h2{font:400 clamp(40px, 5vw, 86px)/1.32 var(--font-heading);letter-spacing:-.025em;margin:0 0 28px}.signal-copy h2 span{white-space:nowrap;display:block}.signal-description{font:clamp(14px, 1.45vw, 24px)/1.8 var(--font-body);color:var(--text-on-dark);text-wrap:balance;margin:0}.signal-actions{margin-top:clamp(22px,2.8vh,30px);display:flex}.signal-actions .line-button{justify-content:space-between;gap:32px;min-height:48px;padding:11px 22px;font-size:clamp(15px,1.15vw,19px)}.contact :is(button,a):focus-visible{outline-offset:4px;outline:1px solid}.signal-dialog{width:min(390px,100vw - 48px);color:var(--text-on-dark);text-align:center;background:#101010;border:1px solid #ffffff80;margin:auto;padding:72px 30px 30px;position:fixed;inset:0;box-shadow:0 20px 100px #0008}.signal-dialog::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0b0b0bcc}.signal-dialog-close{position:absolute;top:12px;right:12px}.signal-dialog h3{font:28px/1.4 var(--font-heading);margin:0 0 24px}.signal-dialog img{object-fit:contain;width:240px;max-width:100%;height:240px;margin:auto;display:block}.signal-dialog>p,.signal-dialog a{font:12px/1.8 var(--font-body);color:var(--text-on-dark-secondary)}@media (max-width:799px),(max-aspect-ratio:1){.contact{height:210svh}.contact-stage{min-height:520px}.signal-copy{width:86%;max-width:500px;top:11%;left:7%}.contact .signal-copy h2{margin-bottom:20px;font-size:clamp(32px,7.7vw,52px)}.signal-description{font-size:13px;line-height:1.8}.signal-actions{margin-top:22px}.signal-actions .line-button{gap:28px;padding:9px 18px;font-size:15px}.signal-shade{background:0 0}.signal-lens{width:min(60vw,31vh);top:63%;left:57%}.signal-rock--left{width:146%;bottom:-4%}.signal-rock--right{width:138%;bottom:-4%}}@media (min-width:800px) and (max-height:620px){.signal-copy{top:22%}.contact .signal-copy h2{margin-bottom:24px;font-size:clamp(36px,7.5vh,52px)}.signal-description{font-size:15px}.signal-actions{margin-top:24px}}.signal-content{z-index:2;position:absolute;inset:0}.contact-stage[data-collage-reveal][data-art=ready]{pointer-events:none;background:0 0;-webkit-mask-image:none;mask-image:none}.contact-stage[data-collage-reveal][data-art=ready] .signal-content{pointer-events:auto;-webkit-mask-image:url(#contact-collage-mask);mask-image:url(#contact-collage-mask)}@media (prefers-reduced-motion:reduce){.contact{height:100svh}}
.sound-toggle{width:44px;height:40px;color:inherit;background:0 0;border:0;flex:0 0 44px;place-items:center;padding:0;display:grid}.sound-bars{align-items:center;gap:3px;height:22px;display:flex}.sound-bars i{background:currentColor;width:1px;height:4px;display:block}[data-playing=true] .sound-bars i{animation:1.7s ease-in-out infinite sound-breathe;animation-delay:calc(var(--bar) * -.23s)}@keyframes sound-breathe{0%,to{transform:scaleY(1)}45%{transform:scaleY(3.5)}65%{transform:scaleY(2)}}.sound-toggle--floating{z-index:5;mix-blend-mode:difference;position:absolute;bottom:24px;left:24px}.hub-stage:not(.is-open) .sound-toggle--floating{display:none}.sound-prompt{z-index:30;color:#242421;width:260px;max-width:calc(100vw - 24px);font:13px/1.6 var(--font-body);background:#fff;border:1px solid #171717;padding:20px;animation:.4s ease-out both sound-prompt-in;position:fixed;box-shadow:0 8px 32px #0002}.sound-prompt p{margin:0 0 14px}.sound-prompt .sound-prompt-title{font:20px/1.4 var(--font-heading);margin-bottom:6px}.sound-prompt-actions{gap:8px;display:flex}.sound-prompt-actions .line-button{flex:1;padding:9px 8px;font-size:13px}.sound-credit{opacity:.7;margin-top:12px;font-size:10px;display:block}.sound-credit a{color:inherit;text-underline-offset:3px}@keyframes sound-prompt-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (min-width:800px){.axis-bar .sound-bars{transform:rotate(-90deg)}}@media (max-width:799px){.axis-bar .sound-toggle{order:1;margin-left:auto}:is(.axis-bar:has(.sound-toggle) .axis-link,.axis-bar:has(.sound-toggle) .axis-fill){padding:0 9px}.axis-bar:has(.sound-toggle) .axis-link{--axis-collapsed-size:40px}.sound-toggle--floating{bottom:18px;left:12px}}
