@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/instrument-sans-latin-ext-400-normal.3q8pug6-wto40.woff2)format("woff2"),url(../media/instrument-sans-latin-ext-400-normal.2zbm4kyn5pwgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(../media/instrument-sans-latin-400-normal.3xgfxban9f743.woff2)format("woff2"),url(../media/instrument-sans-latin-400-normal.1hjbn09c7gmn3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/instrument-sans-latin-ext-600-normal.0vm4co01-fmw6.woff2)format("woff2"),url(../media/instrument-sans-latin-ext-600-normal.1jzotrrwg-zxc.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(../media/instrument-sans-latin-600-normal.3fqsgcs0cl_0g.woff2)format("woff2"),url(../media/instrument-sans-latin-600-normal.2jey8h63iho71.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:700;src:url(../media/instrument-sans-latin-ext-700-normal.3f0xo3tecqq_u.woff2)format("woff2"),url(../media/instrument-sans-latin-ext-700-normal.0dhe4l604eecb.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:700;src:url(../media/instrument-sans-latin-700-normal.1u3zznnpe1kz_.woff2)format("woff2"),url(../media/instrument-sans-latin-700-normal.1oy6q39wj26t8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#020202;--bg-panel:#09090914;--font-display:"Instrument Sans";--font-body:"Instrument Sans";--font-mono:"Instrument Sans";--fg:#f5f7fb;--fg-muted:#f5f7fbb8;--fg-soft:#f5f7fb7a;--line:#ffffff12;--line-strong:#ffffff24;--body-background:radial-gradient(circle at top, #ffffff1a, transparent 34%), radial-gradient(circle at 80% 20%, #ffffff14, transparent 28%), linear-gradient(180deg, #040404 0%, #020202 32%, #010101 100%);--grid-line:#ffffff13;--atmosphere-background:linear-gradient(180deg, #00000005 0%, #ffffff0b 50%, #00000005 100%);--atmosphere-blend-mode:screen;--skip-link-bg:#0a0a0a;--intro-backdrop-bg:#000;--scene-placeholder-strong:#ffffff1f;--scene-placeholder-soft:#ffffff0f;--scene-filter:none;--link-strong:#f5f7fbf0;--link-decoration:#f5f7fb4d;--link-hover:#fff;--link-decoration-hover:#ffffffb8;--meter-track:#ffffff14;--meter-start:#ffffff1a;--meter-end:#fffffff0;--intro-note:#f5f7fbeb;--outro-label:#f5f7fbeb;--outro-label-hover:#ecf4ff;--tap-highlight:#ffffff14;--project-media-background:#050505;--project-media-border:#ffffff0b;--project-summary:#f5f7fbe0;--panel-background:linear-gradient(180deg, #ffffff01, transparent 26%), linear-gradient(160deg, #ffffff01, #fff0), var(--bg-panel);--project-panel-background:linear-gradient(180deg, #ffffff01, transparent 22%), linear-gradient(155deg, #0001, #00000004), #02020202;--project-panel-shadow:0 24px 72px #0000004d;--project-panel-sheen:linear-gradient(120deg, transparent 0%, #ffffff01 30%, #ffffff07 48%, #ffffff02 66%, transparent 100%);--panel-sheen:linear-gradient(120deg, transparent 0%, #ffffff08 48%, transparent 100%);--proof-label:#f5f7fb80;--proof-body:#f5f7fbd1;--proof-divider:#f5f7fb4d;--focus-ring:#ffffffb8;--project-card-border-rgb:255, 255, 255;--project-card-shadow-rgb:0, 0, 0;--project-card-glow-rgb:255, 255, 255;--frame-padding:clamp(1rem, 2vw, 1.8rem);--project-frame-gap:clamp(.8rem, 1.5vw, 1.25rem);--project-meter-clearance:2.75rem;--content-width:min(1120px, calc(100vw - (var(--frame-padding) * 2)));--panel-width:min(44rem, calc(100vw - (var(--frame-padding) * 2)));--section-top:clamp(4.5rem, 12vh, 8rem);--radius-lg:1.75rem;--shadow-panel:0 24px 72px #0000005c;--ease-standard:cubic-bezier(.22, 1, .36, 1)}[data-theme=light]{--bg:#f2f2ef;--bg-panel:#ffffff1f;--fg:#111318;--fg-muted:#111318b3;--fg-soft:#1113187a;--line:#11131816;--line-strong:#11131829;--body-background:radial-gradient(circle at top, #ffffffe6, transparent 38%), radial-gradient(circle at 80% 20%, #b2b5bb33, transparent 30%), linear-gradient(180deg, #fafaf8 0%, #f2f2ef 38%, #eaeae6 100%);--grid-line:#11131816;--atmosphere-background:linear-gradient(180deg, #11131806 0%, #ffffff47 50%, #11131806 100%);--atmosphere-blend-mode:multiply;--skip-link-bg:#f8f8f5;--intro-backdrop-bg:#f4f4f1;--scene-placeholder-strong:#1113181c;--scene-placeholder-soft:#1113180e;--scene-filter:invert(1);--link-strong:#111318f0;--link-decoration:#11131852;--link-hover:#000;--link-decoration-hover:#000000b3;--meter-track:#1113181a;--meter-start:#1113181f;--meter-end:#111318e0;--intro-note:#111318e6;--outro-label:#111318e6;--outro-label-hover:#000;--tap-highlight:#11131814;--project-media-background:#fff;--project-media-border:#1113180e;--project-summary:#111318d6;--panel-background:linear-gradient(180deg, #ffffff29, transparent 26%), linear-gradient(160deg, #ffffff1c, #ffffff06), var(--bg-panel);--project-panel-background:linear-gradient(180deg, #ffffff2e, transparent 22%), linear-gradient(155deg, #ffffff1a, #11131805), #ffffff09;--project-panel-shadow:0 24px 72px #191c2224;--project-panel-sheen:linear-gradient(120deg, transparent 0%, #ffffff0a 30%, #ffffff30 48%, #ffffff0b 66%, transparent 100%);--panel-sheen:linear-gradient(120deg, transparent 0%, #ffffff47 48%, transparent 100%);--proof-label:#1113188a;--proof-body:#111318c7;--proof-divider:#1113184d;--focus-ring:#1113189e;--project-card-border-rgb:17, 19, 24;--project-card-shadow-rgb:35, 38, 44;--project-card-glow-rgb:255, 255, 255;--shadow-panel:0 24px 72px #191c2221}*{box-sizing:border-box}html{background:var(--bg);color:var(--fg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth;scroll-snap-type:y proximity;scroll-padding-block-start:0;position:relative}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}::view-transition-image-pair(root){isolation:auto}::view-transition-old(root){mix-blend-mode:normal;animation:none;display:block}::view-transition-new(root){mix-blend-mode:normal;animation:none;display:block}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:9999}body{background:var(--body-background);min-height:100vh;color:var(--fg);font-family:var(--font-body), sans-serif;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;position:relative;overflow-x:hidden}body:before,body:after{content:"";pointer-events:none;z-index:1;position:fixed;inset:0}body:before{background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);opacity:.22;background-size:7.5rem 7.5rem;-webkit-mask-image:radial-gradient(circle,#000 42%,#0000 90%);mask-image:radial-gradient(circle,#000 42%,#0000 90%)}body:after{background:var(--atmosphere-background);opacity:.14;mix-blend-mode:var(--atmosphere-blend-mode)}a{color:inherit;text-decoration:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:20;border:1px solid var(--line-strong);background:var(--skip-link-bg);color:var(--fg);transition:transform .18s var(--ease-standard);border-radius:999px;padding:.7rem 1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.theme-toggle{right:max(var(--frame-padding), env(safe-area-inset-right));bottom:calc(var(--frame-padding) + 1.35rem + env(safe-area-inset-bottom));z-index:12;width:2.75rem;height:2.75rem;color:var(--fg);cursor:pointer;opacity:.62;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:color .22s var(--ease-standard), opacity .22s var(--ease-standard), transform .22s var(--ease-standard);background:0 0;border:0;border-radius:999px;place-items:center;margin:0;padding:0;display:grid;position:fixed}.theme-toggle:hover{opacity:1;transform:translateY(-1px)}.theme-toggle:focus-visible{opacity:1;outline:2px solid var(--focus-ring);outline-offset:2px}.theme-toggle__icon{width:1.08rem;height:1.08rem;transition:opacity .28s var(--ease-standard), transform .38s var(--ease-standard);position:absolute}.theme-toggle__icon--sun{opacity:1;transform:rotate(0)scale(1)}.theme-toggle__icon--moon{opacity:0;transform:rotate(-18deg)scale(.72)}[data-theme=light] .theme-toggle__icon--sun{opacity:0;transform:rotate(24deg)scale(.72)}[data-theme=light] .theme-toggle__icon--moon{opacity:1;transform:rotate(0)scale(1)}button,input,textarea,select{font:inherit}.portfolio-shell{isolation:isolate;position:relative}.intro-backdrop{z-index:2;pointer-events:none;background:var(--intro-backdrop-bg);position:fixed;inset:0}.scene-frame,.scene-placeholder{z-index:3;pointer-events:none;position:fixed;inset:0}.scene-frame canvas{filter:var(--scene-filter)}.scene-placeholder{background:radial-gradient(circle at 50% 32%, var(--scene-placeholder-strong), transparent 25%), radial-gradient(circle at 50% 48%, var(--scene-placeholder-soft), transparent 30%)}
.page-stage{z-index:4;position:relative}.content-stage-overlay{z-index:4;pointer-events:none;position:fixed;inset:0}.content-stage-overlay__shell{width:min(100%,46rem);margin:0 auto;padding-top:clamp(13.15rem,35vh,23.25rem)}.content-stage-overlay__copy{pointer-events:none;gap:clamp(2rem,4vh,3rem);width:min(100%,40rem);margin:0 auto;display:grid}.content-stage-overlay__copy p{color:var(--fg-muted);margin:0;font-size:clamp(1.08rem,1.85vw,1.28rem);line-height:1.65}.content-stage-overlay__link{color:var(--link-strong);text-decoration-line:underline;-webkit-text-decoration-color:var(--link-decoration);text-decoration-color:var(--link-decoration);text-underline-offset:.12em;transition:color .22s var(--ease-standard), text-decoration-color .22s var(--ease-standard);text-decoration-thickness:.08em}.content-stage-overlay__link:hover,.content-stage-overlay__link:focus-visible{color:var(--link-hover);-webkit-text-decoration-color:var(--link-decoration-hover);text-decoration-color:var(--link-decoration-hover)}.content-stage-overlay--top-overlay .content-stage-overlay__shell{width:min(100%,46rem);padding-top:clamp(13.15rem,35vh,23.25rem)}.content-stage-overlay--top-overlay .content-stage-overlay__copy{width:min(100%,40rem)}.site-chrome{inset:var(--frame-padding) var(--frame-padding) auto;z-index:5;pointer-events:none;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:fixed}.scroll-meter-shell{left:var(--frame-padding);right:var(--frame-padding);bottom:var(--frame-padding);background:var(--meter-track);pointer-events:none;border-radius:999px;height:.2rem;position:fixed;overflow:hidden}.scroll-meter{transform-origin:0;background:linear-gradient(90deg, var(--meter-start), var(--meter-end));width:100%;height:100%;display:block}.scroll-section{min-height:150svh;position:relative}.scroll-section--intro{min-height:168svh}.scroll-section--transform{min-height:200svh}.scroll-section--content{min-height:148svh}.scroll-section--project{min-height:100svh}.section-snap-anchor{pointer-events:none;scroll-snap-align:start;scroll-snap-stop:normal;width:1px;height:1px;display:block;position:absolute;left:0}.scroll-section--outro{min-height:190svh}.scroll-section--skills{min-height:var(--skills-scroll-height,380svh);overflow:clip}.skills-technology-layer{z-index:2;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.skills-technology-track{width:100%;height:100svh;position:sticky;top:0;overflow:hidden}.skills-technology-track__svg{width:100%;height:100%;display:block;position:absolute;inset:0}.skills-technology-track__label{fill:var(--fg);font-family:var(--font-display), sans-serif;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap;font-size:clamp(.88rem,1.65vw,1.45rem);font-weight:700;line-height:1}.skills-stage{z-index:1;grid-template-columns:clamp(3.5rem,8vw,7rem) minmax(0,1fr);align-items:stretch;column-gap:clamp(.5rem,2vw,2rem);width:min(80%,76rem);height:100svh;margin:0 auto;padding:0 20px;display:grid;position:sticky;top:0}.skills-stage__title{width:max-content;height:max-content;color:var(--fg);font-family:var(--font-display), sans-serif;text-align:start;text-transform:uppercase;writing-mode:vertical-rl;justify-self:center;margin:0;padding:0;font-size:clamp(2.25rem,5.625vw,4.5rem);font-weight:700;line-height:1;position:relative;top:calc(25svh - clamp(.7rem,2.745vw,2.7rem));transform:rotate(180deg)}.skills-stage__rail{min-width:0;height:100svh;position:relative;-webkit-mask-image:linear-gradient(#0000 0 2.75rem,#000 7.5rem 100%);mask-image:linear-gradient(#0000 0 2.75rem,#000 7.5rem 100%);-webkit-mask-size:100vw 100%;mask-size:100vw 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-clip:no-clip;mask-clip:no-clip}.skills-stage__list{will-change:transform;flex-direction:column;gap:clamp(.9rem,2.4svh,1.6rem);width:100%;margin:0;padding:0;list-style:none;display:flex;position:absolute;top:0;left:0;container-type:inline-size}.skills-stage__item{color:var(--fg);font-family:var(--font-display), sans-serif;text-transform:uppercase;white-space:nowrap;will-change:opacity;margin:0;padding:0;font-size:clamp(2rem,6.1vw,6rem);font-weight:700;line-height:.9}@media (max-width:1100px){.skills-stage__item{font-size:clamp(1.75rem,min(6.1vw,8.1cqw),4rem)}}@media (max-width:768px){.skills-technology-track__label{font-size:clamp(.76rem,2.8vw,1.05rem)}.skills-stage{grid-template-columns:clamp(2.8rem,10vw,4.5rem) minmax(0,1fr);column-gap:clamp(.2rem,1.5vw,.75rem);width:calc(100% - clamp(1.5rem,6vw,3rem));padding-inline:0}.skills-stage__title{font-size:clamp(2.025rem,7.2vw,3rem)}}@media (max-width:480px){.skills-technology-track__label{letter-spacing:.025em;font-size:clamp(.67rem,3.25vw,.84rem)}.skills-stage{grid-template-columns:clamp(2.6rem,13vw,3.5rem) minmax(0,1fr);width:calc(100% - 1rem)}.skills-stage__title{font-size:clamp(1.8rem,9vw,2.25rem)}.skills-stage__item{font-size:clamp(1.35rem,6.2vw,1.75rem)}}@media (max-width:360px){.skills-stage{width:calc(100% - .75rem)}.skills-stage__item{font-size:clamp(1.22rem,6.1vw,1.55rem)}}
.section-sticky{top:var(--section-top);width:var(--content-width);min-height:calc(100svh - (var(--section-top) * .9));justify-content:flex-start;align-items:center;margin:0 auto;padding:clamp(1rem,2vw,1.8rem) 0;display:flex;position:sticky}.section-sticky--center{justify-content:center}.section-sticky--content{width:calc(100vw - (var(--frame-padding) * 2));justify-content:center;align-items:flex-start;max-width:none;min-height:100svh;padding:clamp(1rem,2.2vh,1.4rem) 0 clamp(1.5rem,4vh,2.8rem);top:0}.section-sticky--project{justify-content:center;align-items:center;width:100vw;max-width:none;min-height:100svh;padding:0;top:0;overflow:hidden}.section-sticky--intro{width:calc(100vw - (var(--frame-padding) * 2));max-width:none}.intro-stage{width:100%;min-height:calc(100svh - (var(--section-top) * .75));justify-content:flex-start;align-items:center;display:flex;position:relative}.intro-copy-shell--measure{visibility:hidden;pointer-events:none}.intro-copy{text-align:left;gap:1rem;width:min(40rem,36vw);margin-left:0;padding-left:clamp(.15rem,1vw,.75rem);display:grid;transform:translate(clamp(1.8rem,3vw,2.8rem),clamp(-8.6rem,-13vh,-5rem))}.intro-copy-block{justify-self:start;width:fit-content;max-width:100%}.intro-copy-token{display:inline-block}.intro-title,.intro-subtitle{margin:0}.intro-title{font-family:var(--font-display), sans-serif;letter-spacing:-.05em;justify-items:start;gap:.15em;font-size:clamp(4.4rem,9vw,8.6rem);font-weight:700;line-height:.82;display:grid}.intro-subtitle{max-width:16ch;color:var(--fg-muted);font-family:var(--font-display), sans-serif;letter-spacing:-.05em;font-size:clamp(1.8rem,3vw,3rem);font-weight:600;line-height:.95}.intro-note{pointer-events:none;width:fit-content;transition:opacity .26s var(--ease-standard);margin-top:clamp(.2rem,.8vw,.5rem)}.intro-note__text{color:var(--intro-note);font-family:var(--font-body), sans-serif;letter-spacing:-.02em;white-space:normal;margin:0;font-size:clamp(.92rem,1.2vw,1.08rem);font-weight:600;line-height:1.25}.transform-stage{width:100%;min-height:calc(100svh - (var(--section-top) * .7))}.transform-stage--outro{position:relative;overflow:hidden}.outro-contact-overlay-shell{pointer-events:none;align-content:end;justify-items:center;padding-bottom:clamp(5.5rem,12vh,8.5rem);display:grid;position:absolute;inset:0;overflow:hidden}.outro-contact-overlay{pointer-events:none;justify-content:center;align-items:center;gap:clamp(1.4rem,3.4vw,4.25rem);width:fit-content;max-width:100%;padding-inline:clamp(1rem,2vw,2rem);display:flex}.outro-contact-overlay__item{pointer-events:auto;will-change:transform;justify-content:center;align-items:center;width:auto;min-width:0;animation:1.55s ease-in-out infinite alternate outro-label-hover;display:flex}.outro-contact-label{max-width:100%;color:var(--outro-label);font-family:var(--font-display), sans-serif;letter-spacing:-.05em;white-space:nowrap;text-align:center;transition:transform .28s var(--ease-standard), color .22s var(--ease-standard);will-change:transform, color;margin:0;font-size:clamp(1.72rem,2.3vw,2.65rem);font-weight:600;line-height:.95}.outro-contact-overlay__item--interactive,.outro-contact-label--link{cursor:pointer}.outro-contact-overlay__item--interactive{touch-action:manipulation}.outro-contact-label--link{z-index:1;pointer-events:auto;-webkit-tap-highlight-color:var(--tap-highlight);justify-content:center;align-items:center;width:100%;min-height:2.75rem;padding-inline:.18em;display:inline-flex;position:relative}@media (hover:hover) and (pointer:fine){.outro-contact-overlay__item--interactive:hover .outro-contact-label,.outro-contact-overlay__item--interactive:focus-within .outro-contact-label{color:var(--outro-label-hover);transform:scale(1.08)}}.outro-contact-overlay__item:nth-child(2){animation-delay:.22s}.outro-contact-overlay__item:nth-child(3){animation-delay:.44s}.outro-contact-overlay__item:nth-child(4){animation-delay:.66s}@keyframes outro-label-hover{0%{transform:translateY(.08rem)}to{transform:translateY(-.34rem)}}
.project-float-stage{width:100vw;height:100svh;position:relative;overflow:hidden}.project-float-arena{inset:clamp(.55rem, 1.2vw, 1rem) clamp(.55rem, 1.2vw, 1rem) calc(var(--project-meter-clearance) + clamp(.5rem, 1vw, .85rem));min-width:0;min-height:0;position:absolute}.panel{width:min(100%, var(--panel-width));border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-background);box-shadow:var(--shadow-panel);contain:paint;padding:clamp(1.2rem,2vw,1.75rem);position:relative;overflow:hidden}.panel:before{content:"";background:var(--panel-sheen);pointer-events:none;position:absolute;inset:0}.panel h2{max-width:12ch;font-family:var(--font-display), sans-serif;letter-spacing:-.04em;margin:0;font-size:clamp(2.35rem,5vw,4.6rem);font-weight:600;line-height:.92}.panel p{max-width:36rem;color:var(--fg-muted);margin:0;font-size:clamp(1rem,1.7vw,1.18rem);line-height:1.6}.panel p+p{margin-top:1rem}.panel.project-float-card{width:var(--project-float-card-width,fit-content);border-radius:var(--radius-lg);background:var(--project-panel-background);max-width:calc(100vw - clamp(1.1rem,2.4vw,2rem));height:fit-content;box-shadow:var(--project-panel-shadow);cursor:grab;touch-action:pan-y;transform-origin:50%;-webkit-user-select:text;user-select:text;margin:0;position:absolute;inset:0 auto auto 0}.project-float-arena[data-active=true] .panel.project-float-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);will-change:transform}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.project-float-arena[data-active=true] .panel.project-float-card{-webkit-backdrop-filter:blur(14px)}}.panel.project-float-card:before{background:var(--project-panel-sheen)}.panel.project-float-card[data-dragging=true]{cursor:grabbing;-webkit-user-select:none;user-select:none}.project-float-card--media{padding:clamp(.45rem,.8vw,.7rem)}.project-float-card--copy{--project-float-card-width:clamp(28rem, 30vw, 31rem);padding:clamp(1.15rem,1.5vw,1.45rem)}.project-float-card--actions{padding:clamp(.55rem,.8vw,.72rem)}.project-float-card__handle{z-index:4;width:1.9rem;height:1.55rem;color:var(--fg);cursor:grab;opacity:.54;touch-action:none;transition:opacity .18s var(--ease-standard), background-color .18s var(--ease-standard);background:#0808085c;border:0;border-radius:999px;place-items:center;margin:0;padding:0;display:grid;position:absolute;top:.56rem;right:.62rem}.project-float-card__handle span{opacity:.74;background-image:radial-gradient(circle,currentColor 0 1px,#0000 1.3px);background-position:0 0;background-size:.28rem .24rem;width:.82rem;height:.48rem}.project-float-card__handle:hover,.project-float-card__handle:focus-visible,.project-float-card[data-dragging=true] .project-float-card__handle{opacity:.95;background:#0808089e}.project-float-card__handle:active,.project-float-card[data-dragging=true] .project-float-card__handle{cursor:grabbing}.project-float-card__handle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}[data-theme=light] .project-float-card__handle{background:#ffffffa8}[data-theme=light] .project-float-card__handle:hover,[data-theme=light] .project-float-card__handle:focus-visible,[data-theme=light] .project-float-card[data-dragging=true] .project-float-card__handle{background:#ffffffeb}.project-card__media{--project-image-width:var(--project-image-width-wide);z-index:1;isolation:isolate;width:var(--project-image-width);border:1px solid var(--project-media-border);border-radius:calc(var(--radius-lg) - .35rem);background:var(--project-media-background);justify-content:center;align-items:center;max-width:none;min-height:0;display:flex;position:relative;overflow:hidden}.project-card__media-inner{justify-content:center;align-items:center;width:100%;max-width:none;display:flex;position:relative}.project-card__image{width:100%;max-width:none;height:auto;max-height:none;aspect-ratio:var(--project-image-aspect-ratio);object-fit:contain;object-position:center;opacity:1;filter:none;mix-blend-mode:normal;display:block}.project-card__video{background:var(--project-media-background);cursor:auto}.project-card__scroll{align-content:center;justify-items:stretch;gap:clamp(.72rem,1.3vh,1rem);min-width:0;min-height:0;display:grid}.panel.project-float-card h2{text-align:left;justify-self:start;max-width:100%;font-size:clamp(1.78rem,2.65vw,2.9rem);line-height:.96}.project-headline{text-align:left;gap:.7rem;width:100%;min-width:0;padding-right:2.1rem;display:grid}.project-card__summary{max-width:27.5rem;color:var(--project-summary);text-align:left;font-size:clamp(.94rem,1.15vw,1.08rem);line-height:1.4}.project-proofs,.project-technologies{margin:0;padding:0;list-style:none}.project-proofs{border-top:1px solid var(--line);width:100%;min-width:0;display:grid}.project-proof{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr);align-items:start;gap:.24rem;padding:clamp(.58rem,1vh,.78rem) 0;display:grid}.project-proof dt{color:var(--proof-label);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.61rem;font-weight:650;line-height:1.28}.project-proof dd{color:var(--proof-body);margin:0;font-size:clamp(.8rem,.88vw,.92rem);line-height:1.4}.project-technologies{width:100%;color:var(--fg-soft);font-family:var(--font-mono), monospace;letter-spacing:.07em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:.28rem .5rem;font-size:.61rem;line-height:1.45;display:flex}.project-technologies li{align-items:center;gap:.5rem;display:inline-flex}.project-technologies li:not(:last-child):after{content:"·";color:var(--proof-divider)}.project-card__actions{flex-wrap:nowrap;flex:none;justify-content:center;gap:clamp(.36rem,.63vw,.495rem);width:100%;display:flex}.project-card__actions .project-action{cursor:pointer;letter-spacing:normal;text-transform:none;white-space:nowrap;width:auto;min-width:0;max-width:9.9rem;height:3.05rem;min-height:3.05rem;transition:background-color .2s var(--ease-standard), box-shadow .2s var(--ease-standard);border:0;border-radius:999px;flex:1 1 0;justify-content:flex-start;align-items:center;gap:.53rem;margin:0;padding:0 1.41rem 0 .4rem;font-family:inherit;font-size:.7875rem;font-weight:600;line-height:1.06rem;text-decoration:none;display:inline-flex;transform:none}.project-action--primary{--project-action-label:#111318;--project-action-highlight:#000;color:var(--project-action-label);background:#fff;box-shadow:0 1px 2px #00000014,0 0 0 1px #ffffff3d}.project-action--secondary{--project-action-label:#f7f8fb;--project-action-highlight:#fff;color:var(--project-action-label);background:#08090b;box-shadow:inset 0 0 0 1px #ffffff1c,inset 0 0 36px #ffffff05}.project-action__orb{--project-action-orb-size:2.6325rem;width:var(--project-action-orb-size);height:var(--project-action-orb-size);opacity:1;pointer-events:none;flex:none}.project-action--primary .project-action__orb{filter:brightness(.58)contrast(1.12)}.project-action--secondary .project-action__orb{filter:brightness(1.45)contrast(1.06)}.project-action__label{color:var(--project-action-label);display:inline-block;position:relative}.project-action__label:before{content:attr(data-text);color:#0000;pointer-events:none;background-image:linear-gradient(90deg, transparent 0%, transparent 40%, var(--project-action-highlight) 50%, transparent 60%, transparent 100%);-webkit-text-fill-color:transparent;background-position:100% 0;background-repeat:no-repeat;background-size:400% 100%;-webkit-background-clip:text;background-clip:text;animation:none;position:absolute;inset:0}.project-float-arena[data-active=true] .project-action__label:before{animation:2s linear infinite project-action-shimmer}.project-card__actions .project-action:hover{transform:none}.project-card__actions .project-action:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;transform:none}.project-action--primary:hover,.project-action--primary:focus-visible{color:var(--project-action-label);background:#fff}.project-action--secondary:hover,.project-action--secondary:focus-visible{color:var(--project-action-label);background:#111318}@media (max-width:1400px){.project-card__media{--project-image-width:var(--project-image-width-desktop)}.project-float-card--copy{--project-float-card-width:clamp(26rem, 32vw, 28rem)}.project-card__scroll{gap:.72rem}.project-card__summary{font-size:clamp(.9rem,1.02vw,.98rem);line-height:1.36}.project-proof dd{font-size:.86rem;line-height:1.36}}@media (max-width:1024px){.project-float-card--copy{--project-float-card-width:min(88vw, 28rem);padding:1rem 1.1rem}.project-card__media{--project-image-width:var(--project-image-width-tablet)}.project-float-card__handle{top:.48rem;right:.52rem}.panel.project-float-card h2{font-size:clamp(1.7rem,4vw,2.3rem)}}@media (max-width:700px){.project-float-arena{inset:.5rem .5rem calc(var(--project-meter-clearance) + .4rem)}.project-float-card--copy{--project-float-card-width:min(84vw, 22rem);padding:.8rem .85rem}.project-float-card--media{padding:.38rem}.project-float-card--actions{max-width:calc(100vw - 1.5rem);padding:.45rem}.project-card__media{--project-image-width:var(--project-image-width-mobile)}.project-card__scroll{gap:.48rem}.project-headline{gap:.42rem;padding-right:1.9rem}.panel.project-float-card h2{font-size:clamp(1.48rem,7vw,1.9rem)}.project-card__summary{font-size:clamp(.76rem,3.2vw,.9rem);line-height:1.3}.project-proof{gap:.16rem;padding-block:clamp(.3rem,.85vh,.44rem)}.project-proof dt,.project-technologies{font-size:clamp(.47rem,1.9vw,.56rem)}.project-proof dd{font-size:clamp(.68rem,2.65vw,.79rem);line-height:1.28}.project-technologies{gap:.15rem .36rem}.project-technologies li{gap:.36rem}.project-card__actions{gap:.32rem}.project-card__actions .project-action{gap:.4rem;height:2.62rem;min-height:2.62rem;padding:0 1.05rem 0 .34rem;font-size:.69rem}.project-action__orb{--project-action-orb-size:2.12rem}.project-float-card__handle{width:1.72rem;height:1.42rem}}@media (max-width:380px){.project-float-card--copy{--project-float-card-width:min(82vw, 21rem);padding:.7rem .72rem}.project-card__media{--project-image-width:var(--project-image-width-compact)}.project-card__scroll{gap:.38rem}.panel.project-float-card h2{font-size:1.42rem}.project-card__summary{font-size:.72rem}.project-proof dd{font-size:.65rem}.project-card__actions .project-action{height:2.45rem;min-height:2.45rem;padding-right:.84rem;font-size:.64rem}.project-action__orb{--project-action-orb-size:1.98rem}}@media (prefers-reduced-motion:reduce){.panel.project-float-card{cursor:default}.project-action__label:before{animation:none}}@keyframes project-action-shimmer{0%{background-position:100% 0}to{background-position:0 0}}
:root{--media-shelf-surface-top-back:#181916;--media-shelf-surface-top-front:#292a26;--media-shelf-surface-front-top:#232420;--media-shelf-surface-front-middle:#181916;--media-shelf-surface-front-bottom:#0d0e0c;--media-shelf-edge:#ffffff29;--media-shelf-edge-width:1px;--media-shelf-shadow:#00000094}[data-theme=light]{--media-shelf-surface-top-back:#e8e8e5;--media-shelf-surface-top-front:#f7f7f3;--media-shelf-surface-front-top:#fafaf7;--media-shelf-surface-front-middle:#f0f0ec;--media-shelf-surface-front-bottom:#dedfdb;--media-shelf-edge:#1113181f;--media-shelf-shadow:#23262c33}.scroll-section.scroll-section--media-shelves{box-sizing:border-box;align-items:center;min-height:100svh;padding-block:clamp(.6rem,1.25svh,1rem);display:flex;overflow:clip}.media-shelves-stage{gap:clamp(.45rem,.9svh,.75rem);width:100%;display:grid}.media-shelf{--media-cover-height:min(16.55cqi, 21.2svh);--media-shelf-surface-depth:min(2.1cqi, 2.7svh);--media-shelf-front-height:min(2.25cqi, 2.9svh);--media-shelf-back-inset:min(3.35cqi, 4.3svh);--media-shelf-reflection-inset:min(2.5125cqi, 3.225svh);--media-shelf-cover-lift:min(.525cqi, .675svh);--media-shelf-side-space:min(8.45cqi, 10.8svh);--media-shelf-item-gap:min(3.45cqi, 4.4svh);--media-shelf-shadow-space:min(.7cqi, .9svh);--media-shelf-bleed:clamp(4.5rem, 7vw, 8.5rem);width:min(calc(100% - (var(--frame-padding) * 2)), 150svh, 108rem);min-width:0;margin-inline:auto;position:relative;container-type:inline-size}.media-shelf__header{margin:0 0 clamp(.3rem,.72cqi,.7rem)}.media-shelf__title{color:var(--fg);font-family:var(--font-display), sans-serif;letter-spacing:-.045em;margin:0;font-size:clamp(1.2rem,2.35cqi,2.15rem);font-weight:500;line-height:.96}.media-shelf__display{isolation:isolate;width:100%;height:calc(var(--media-cover-height) + var(--media-shelf-surface-depth) + var(--media-shelf-front-height) + var(--media-shelf-shadow-space) - var(--media-shelf-cover-lift));position:relative}.media-shelf__viewport{z-index:4;width:calc(100% + var(--media-shelf-bleed) + var(--media-shelf-bleed));height:100%;margin-inline:calc(0px - var(--media-shelf-bleed));cursor:grab;touch-action:pan-y pinch-zoom;-webkit-tap-highlight-color:transparent;-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--media-shelf-bleed), #000 calc(100% - var(--media-shelf-bleed)), transparent 100%);mask-image:linear-gradient(to right, transparent 0, #000 var(--media-shelf-bleed), #000 calc(100% - var(--media-shelf-bleed)), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--media-shelf-bleed), #000 calc(100% - var(--media-shelf-bleed)), transparent 100%);position:relative;overflow:hidden}.media-shelf__viewport[data-dragging=true],.media-shelf__viewport.is-wheel-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.media-shelf__viewport:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-4px}.media-shelf__track,.media-shelf__reflection-track{will-change:transform;align-items:flex-start;height:100%;margin:0;padding:0;list-style:none;display:flex}.media-shelf__track{width:100%;min-width:100%}.media-shelf__item,.media-shelf__reflection-item{padding:0 0 0 var(--media-shelf-item-gap);flex:none;margin:0}.media-shelf__artwork{width:max-content;margin:0;padding:0;position:relative}.media-shelf__cover,.media-shelf__reflection-image{width:auto;height:var(--media-cover-height);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:none;display:block}.media-shelf__cover{object-fit:contain;border:1px solid #7f7f7f33;border-radius:clamp(.18rem,.3cqi,.38rem);box-shadow:0 .25rem .5rem #00000017,0 .8rem 1.4rem #0000001f}.media-shelf--tv-shows .media-shelf__cover,.media-shelf--tv-shows .media-shelf__reflection-image{width:calc(var(--media-cover-height) * 2 / 3);object-fit:cover}.media-shelf__reflection-plane{z-index:3;top:var(--media-cover-height);height:calc(var(--media-shelf-surface-depth) - var(--media-shelf-cover-lift));clip-path:polygon(var(--media-shelf-reflection-inset) 0, calc(100% - var(--media-shelf-reflection-inset)) 0, 100% 100%, 0 100%);pointer-events:none;position:absolute;left:0;right:0;overflow:hidden}.media-shelf__reflection-track{left:calc(0px - var(--media-shelf-bleed));width:calc(100% + var(--media-shelf-bleed) + var(--media-shelf-bleed));position:relative}.media-shelf__reflection-item{opacity:.14;filter:blur(.45px)saturate(.74);height:100%;overflow:hidden;-webkit-mask-image:linear-gradient(#000 0%,#0000 88%);mask-image:linear-gradient(#000 0%,#0000 88%)}.media-shelf__reflection-image{border:1px solid #0000;transform:scaleY(-1)}.media-shelf__slab{z-index:1;top:calc(var(--media-cover-height) - var(--media-shelf-cover-lift));height:calc(var(--media-shelf-surface-depth) + var(--media-shelf-front-height));pointer-events:none;position:absolute;left:0;right:0}.media-shelf__surface,.media-shelf__front{display:block;position:absolute;left:0;right:0}.media-shelf__surface{height:var(--media-shelf-surface-depth);background:linear-gradient(to bottom, var(--media-shelf-surface-top-back), var(--media-shelf-surface-top-front));clip-path:polygon(var(--media-shelf-back-inset) 0, calc(100% - var(--media-shelf-back-inset)) 0, 100% 100%, 0 100%);filter:drop-shadow(0 0 .55px var(--media-shelf-edge));border:0;top:0}.media-shelf__front{top:calc(var(--media-shelf-surface-depth) - 1px);height:var(--media-shelf-front-height);background:linear-gradient(to right, #00000006, transparent 8%, transparent 92%, #00000006), linear-gradient(to bottom, var(--media-shelf-surface-front-top) 0%, var(--media-shelf-surface-front-middle) 38%, var(--media-shelf-surface-front-bottom) 100%);box-shadow:inset 0 var(--media-shelf-edge-width) 0 var(--media-shelf-edge), inset var(--media-shelf-edge-width) 0 0 var(--media-shelf-edge), inset calc(0px - var(--media-shelf-edge-width)) 0 0 var(--media-shelf-edge), inset 0 calc(0px - var(--media-shelf-edge-width)) 0 var(--media-shelf-edge), 0 .5cqi .72cqi -.42cqi var(--media-shelf-shadow), 0 1.35cqi 1.8cqi -.65cqi var(--media-shelf-shadow);border:0;border-radius:0 0 clamp(.16rem,.22cqi,.28rem) clamp(.16rem,.22cqi,.28rem)}.media-shelf__hover-title{z-index:6;opacity:0;max-width:min(34cqi,22rem);color:var(--fg);font-family:var(--font-body), sans-serif;letter-spacing:-.02em;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;transition:opacity .14s ease, transform .18s var(--ease-standard);font-size:clamp(.7rem,.95cqi,.9rem);font-weight:600;line-height:1;display:none;position:absolute;top:0;left:50%;overflow:hidden;transform:translate(-50%,calc(.12rem - 100%))}.media-shelf__hover-title[data-visible=true]{opacity:1;transform:translate(-50%,calc(-100% - .28rem))}@media (max-width:900px){.scroll-section.scroll-section--media-shelves{padding-block:.75rem}.media-shelves-stage{gap:clamp(.7rem,1.3svh,1rem)}.media-shelf{--media-cover-height:22.8svh;--media-shelf-surface-depth:2.7svh;--media-shelf-front-height:min(2.25cqi, 2.9svh);--media-shelf-back-inset:3.5cqi;--media-shelf-reflection-inset:2.625cqi;--media-shelf-cover-lift:.675svh;--media-shelf-side-space:8.5cqi;--media-shelf-item-gap:4.4cqi;--media-shelf-bleed:clamp(3rem, 7.5vw, 4.5rem)}.media-shelf__title{font-size:clamp(1.15rem,3cqi,1.65rem)}}@media (max-width:640px){.media-shelves-stage{gap:clamp(.8rem,1.7svh,1.15rem)}.media-shelf{--media-shelf-back-inset:5.2cqi;--media-shelf-reflection-inset:3.9cqi;--media-shelf-side-space:10cqi;--media-shelf-item-gap:7.5cqi;--media-shelf-bleed:3rem}.media-shelf__header{margin-bottom:.3rem}.media-shelf__title{font-size:clamp(1.05rem,5.6cqi,1.35rem)}}@media (max-height:620px){.scroll-section.scroll-section--media-shelves{padding-block:.35rem}.media-shelves-stage{gap:.3rem}.media-shelf{--media-cover-height:15cqi;--media-shelf-surface-depth:1.9cqi;--media-shelf-front-height:2cqi;--media-shelf-cover-lift:.475cqi;width:min(calc(100% - (var(--frame-padding) * 2)), 110svh, 76rem)}.media-shelf__header{margin-bottom:.2rem}.media-shelf__title{font-size:clamp(.9rem,2.2cqi,1.2rem)}}@media (hover:hover) and (pointer:fine){.media-shelf__hover-title{display:block}}@media (prefers-reduced-motion:reduce){.media-shelf__hover-title{transition:none}}
@media (max-width:900px){.site-chrome{inset-inline-start:var(--frame-padding);inset-inline-end:var(--frame-padding)}.outro-contact-overlay{width:min(calc(100vw - (var(--frame-padding) * 2)), 48rem);gap:clamp(.65rem,2.2vw,1.4rem);padding-inline:clamp(.75rem,2vw,1.5rem);display:flex}.outro-contact-overlay-shell{padding-bottom:clamp(9rem,9rem + 45px - 5vw,20rem)}.outro-contact-overlay__item{width:auto}.outro-contact-label{white-space:nowrap;max-width:100%;font-size:clamp(1.15rem,2.6vw,1.5rem);line-height:1}.content-stage-overlay--top-overlay .content-stage-overlay__shell{width:min(100%,34rem)}.content-stage-overlay--top-overlay .content-stage-overlay__copy{width:min(100%,32rem)}.scroll-section,.scroll-section--intro,.scroll-section--transform,.scroll-section--content,.scroll-section--project{min-height:126svh}.scroll-section--transform{min-height:200svh}.scroll-section--content{min-height:136svh}.scroll-section--project{min-height:100svh}.scroll-section--skills{min-height:var(--skills-scroll-height,380svh)}.scroll-section--outro{min-height:180svh}.section-sticky{align-items:flex-end;min-height:calc(100svh - 4.5rem);top:clamp(4.2rem,10vh,5.8rem)}.section-sticky--intro{align-items:center}.section-sticky--content{padding-top:clamp(.85rem,2vh,1.2rem);padding-bottom:clamp(1.35rem,3vh,2rem)}.section-sticky--project{align-items:center;min-height:100svh;top:0}.panel{width:100%}.intro-stage{align-items:flex-end;padding-bottom:clamp(5.5rem,16vh,8rem)}.intro-copy{width:min(100%,24rem);max-width:calc(100% - 44vw);padding-left:0;transform:translate(clamp(.8rem,1.6vw,1.25rem),clamp(-5.2rem,-10vh,-3rem))}.intro-title{font-size:clamp(3.5rem,11vw,5.6rem)}.intro-subtitle{max-width:15ch;font-size:clamp(1.35rem,5vw,2rem)}.panel h2{font-size:clamp(2.1rem,10vw,3.3rem)}.panel p{font-size:1rem}}@media (max-width:900px) and (min-width:641px){.intro-stage{align-items:center;padding-bottom:0}}@media (max-width:640px){:root{--frame-padding:.9rem;--radius-lg:1.35rem}.scroll-meter-shell{bottom:.8rem}.scroll-section--project{min-height:100svh}.scroll-section--content{min-height:126svh}.section-sticky--content{padding-top:.8rem;padding-bottom:1.2rem}.content-stage-overlay--top-overlay .content-stage-overlay__shell,.content-stage-overlay--top-overlay .content-stage-overlay__copy{width:min(100%,22rem)}.outro-contact-overlay{width:min(calc(100vw - (var(--frame-padding) * 2)), 22rem);grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.1rem,3vh,1.8rem) clamp(.8rem,4vw,1.25rem);padding-inline:clamp(.4rem,1.6vw,.9rem);display:grid}.outro-contact-overlay-shell{padding-bottom:calc(clamp(9rem,9rem + 45px - 5vw,20rem) + clamp(4rem,8svh,4.75rem))}.outro-contact-overlay__item{width:100%}.outro-contact-label{white-space:normal;max-width:100%;font-size:clamp(1.344rem,4.92vw,1.608rem);line-height:1.02}.panel{padding:1.15rem}.intro-stage{justify-content:center;align-items:flex-start;padding-top:clamp(.1rem,.8vh,.35rem);padding-bottom:clamp(10rem,26vh,13.5rem)}.intro-copy{text-align:center;width:min(100%,21.5rem);max-width:min(100%,21.5rem);padding-left:0;transform:translateY(clamp(3.5rem,6.8svh,4rem))scale(1.2)}.intro-copy-block{justify-self:center}.intro-title,.intro-subtitle{text-align:center}.intro-title{justify-items:center}.intro-note{margin-inline:auto}.intro-note__text{font-size:.78rem;line-height:1.15}.intro-title{font-size:clamp(2.8rem,12vw,4.2rem)}.intro-subtitle{font-size:clamp(1.1rem,5vw,1.45rem)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;scroll-snap-type:none}.content-stage-overlay__link,.skip-link,.outro-contact-label{transition:none}.project-action__label:before{animation:none}.scene-frame,.site-chrome,.intro-copy-shell{opacity:1!important}.intro-copy-shell,.intro-copy-shell *{transform:none!important}.content-stage-overlay__copy p,.outro-contact-overlay{filter:none!important;transform:none!important}.outro-contact-overlay__item{animation:none}}

