@font-face{font-family:Inter;src:url('/fonts/inter-roman.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:block}@font-face{font-family:Inter;src:url('/fonts/inter-italic.woff2') format('woff2');font-style:italic;font-weight:100 900;font-display:block}
:root{--bg:#09090b;--surface:#181522;--text:#f5f3fa;--muted:#c8c3d8;--accent:#8b80ff;--line:#ffffff24;--gutter:clamp(24px,5vw,80px);--max:1440px;color-scheme:dark;font-family:Inter,Arial,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scrollbar-color:#8b80ff80 #09090b;scrollbar-width:thin;scroll-behavior:smooth;scroll-padding-top:24px}body{background:var(--bg);color:var(--text);margin:0;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:7px}button{cursor:pointer}img,svg{max-width:100%}svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.4;flex-shrink:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:300;line-height:1.08;letter-spacing:-.04em}h1 span,h2 span{color:var(--accent)}p{color:var(--muted)}.section{max-width:var(--max);margin:auto;padding-left:var(--gutter);padding-right:var(--gutter)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:16px;top:-100px;background:var(--text);color:var(--bg);padding:12px;z-index:20}.skip:focus{top:12px}.button{min-height:50px;padding:13px 24px;display:inline-flex;align-items:center;justify-content:center;gap:24px;border:1px solid var(--line);font-size:12px;transition:background .2s,color .2s}.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.primary:hover{background:var(--accent);border-color:var(--accent)}.text-link{display:inline-flex;gap:16px;align-items:center;font-size:12px}.text-link svg{width:17px;height:17px}.text-link:hover{color:var(--accent)}.map-note{position:absolute;top:15px;right:0;font-size:10px;color:var(--muted)}.status{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:10px}.status:before{content:'';width:4px;height:4px;background:var(--accent);border-radius:50%}.tags{list-style:none;display:flex;gap:8px 18px;flex-wrap:wrap;padding:0;margin:0;color:var(--muted);font-size:10px}.tags li{white-space:nowrap}.selected{padding-top:0;padding-bottom:120px}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:48px}.section-heading h2,.about h2{font-size:clamp(38px,4.5vw,64px)}.filters{display:flex;gap:18px;flex-wrap:wrap}.filters button{color:var(--text);border:1px solid #8b80ff66;background:var(--surface);padding:10px 20px;font-size:14px;min-height:44px;border-radius:var(--control-radius)}.filters button[aria-pressed=true]{color:#09090b;background:#8b80ff;border-color:#8b80ff}.filters button:hover{border-color:#7effde}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px 40px}.project{min-width:0}.project[hidden]{display:none}.project-media{height:310px;background:var(--surface);display:flex;align-items:center;justify-content:center;overflow:hidden}.project-media>img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .6s}.project-media:hover>img{transform:scale(1.025)}.project-title{display:flex;justify-content:space-between;gap:20px;align-items:start;margin:24px 0 12px}.project-title h3{font-size:27px;line-height:1.2}.project-arrow{padding:4px}.project p{font-size:16px;max-width:490px;margin-top:16px}.project .tags{margin-top:22px}.compact{border-top:1px solid var(--line);padding-top:6px}.compact .project-media{display:none}.project-type{font-size:40px;text-align:center;letter-spacing:-.03em}.project-type span{display:block;font-size:12px;color:var(--muted);letter-spacing:0;margin-top:16px}.pipeline{padding:36px;display:flex;align-items:center;justify-content:center;gap:0;position:relative;width:100%;min-height:260px;flex-wrap:wrap}.pipeline>div{border:1px solid #8f849f;padding:20px 12px;min-width:95px;background:#1c1625;flex:1;text-align:center}.pipeline span{font-size:13px;display:block}.pipeline small{display:block;font-size:8px;color:var(--muted);margin-top:7px}.pipeline>i{height:1px;background:#8f849f;width:20px}.pipeline>p{width:100%;font-size:9px;text-align:center;position:absolute;bottom:44px;left:0}.about{padding-top:96px;padding-bottom:120px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:80px}.about .text-link{margin-top:32px}.about-copy>p:first-child{font-size:21px;line-height:1.6;color:var(--text)}.about-copy>p+p{font-size:15px;margin-top:24px}.learning{border-top:1px solid var(--line);padding-top:28px;margin-top:36px}.learning h3{font-size:16px;letter-spacing:-.01em;margin-bottom:12px}.learning p{font-size:13px}.education{font-size:10px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);margin-top:32px}.case-header{padding-top:48px;padding-bottom:40px}.back-link{font-size:11px;display:flex;align-items:center;gap:12px;color:var(--muted)}.back-link svg{transform:rotate(90deg);width:16px;height:16px}.case-title{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:end;margin-top:80px}.case-title h1{font-size:clamp(50px,7vw,96px);overflow-wrap:anywhere}.case-summary p{margin-top:20px;font-size:18px;line-height:1.6}.case-meta{margin-top:48px;border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:24px}.case-meta>div{display:flex;gap:24px}.case-media{padding-bottom:48px}.case-media>img{display:block;width:100%;height:580px;object-fit:cover;object-position:center 42%;background:var(--surface)}.media-caption{font-size:10px;margin-top:12px}.case-media>.pipeline{background:var(--surface);min-height:350px}.case-media>.project-type{padding:100px 24px;background:var(--surface)}.case-layout{display:grid;grid-template-columns:1fr 2fr;gap:100px;padding-top:48px;padding-bottom:80px}.case-toc{display:flex;flex-direction:column;gap:20px;align-self:start;position:sticky;top:40px;max-width:240px}.case-toc>span{font-size:12px;color:var(--text);margin-bottom:12px}.case-toc a{font-size:11px;color:var(--muted)}.case-toc a:hover{color:var(--text)}.case-body section{margin-bottom:64px;scroll-margin-top:32px}.case-body h2{font-size:36px;margin-bottom:24px}.case-body p{font-size:16px;line-height:1.9}.case-body p+p{margin-top:20px}.journey,.system-flow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:32px;padding:24px 0;border-block:1px solid var(--line);font-size:12px}.journey b,.system-flow b{font-weight:400;color:var(--muted)}.next-project{display:flex;align-items:center;gap:32px;padding-top:40px;padding-bottom:48px;border-top:1px solid var(--line)}.next-project>span{font-size:11px;color:var(--muted)}.next-project strong{font-size:32px;font-weight:400;letter-spacing:-.03em;margin-left:auto}.next-project svg{width:36px;height:36px}.resume{padding-top:80px;padding-bottom:100px;max-width:1100px}.resume h1,.not-found h1{font-size:clamp(44px,5vw,70px);margin-bottom:28px}.resume-header{display:flex;justify-content:space-between;align-items:start;gap:24px}.resume-lead{font-size:20px;margin-bottom:32px}.resume p{max-width:750px;margin:16px 0}.resume h2{font-size:30px;margin:48px 0 24px}.resume h3{font-size:20px}.resume-row{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.resume a:not(.button){text-decoration:underline;text-underline-offset:5px}.not-found{padding-top:120px;padding-bottom:120px}.not-found p{margin-bottom:32px}#empty-filter{padding:40px 0;font-size:14px}[hidden]{display:none!important}
@media(max-width:1000px){.section-heading{align-items:start;flex-direction:column}.project-media{height:260px}.pipeline{padding:20px}.pipeline>div{min-width:65px;padding:16px 6px}.pipeline span{font-size:11px}.pipeline small{font-size:7px}.about{gap:40px}.case-title{gap:32px}.case-layout{gap:40px}.case-media>img{height:450px}}
@media(max-width:700px){.map-note{top:20px;left:0;right:auto;font-size:9px}.section-heading h2,.about h2{font-size:42px}.section-heading{gap:24px;margin-bottom:32px}.filters{gap:20px}.project-grid{grid-template-columns:1fr;gap:42px}.project-media{height:280px}.project-title h3{font-size:26px}.selected{padding-bottom:72px}.about{grid-template-columns:1fr;gap:40px;padding-top:64px;padding-bottom:72px}.about-copy>p:first-child{font-size:18px}.education{flex-direction:column;gap:6px}.case-header{padding-top:32px}.case-title{grid-template-columns:1fr;gap:28px;margin-top:48px}.case-title h1{font-size:54px;overflow-wrap:normal;word-break:normal;hyphens:auto}.case-summary p{font-size:17px}.case-meta{align-items:start;flex-direction:column;gap:24px;margin-top:32px}.case-media>img{height:340px}.case-layout{grid-template-columns:1fr;padding-top:16px;padding-bottom:32px;gap:40px}.case-toc{position:static;max-width:none;gap:12px;border-block:1px solid var(--line);padding-block:20px}.case-toc>span{margin-bottom:4px}.case-body h2{font-size:31px}.case-body p{font-size:16px}.case-body section{margin-bottom:48px}.next-project{gap:20px;flex-wrap:wrap}.next-project strong{font-size:26px;margin-left:0;flex:1}.next-project>span{width:100%}.resume{padding-top:48px}.resume-header{flex-direction:column}.resume-header h1{font-size:44px}.resume-lead{font-size:17px}.pipeline{padding:30px 20px;min-height:260px}.pipeline>div{padding:18px 6px}.pipeline>i{width:14px}.pipeline>p{font-size:8px;bottom:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{body{background:white;color:black;font-size:11pt}.site-header,.poster-banner,.contact,.skip,.resume-actions{display:none}.resume{padding:0;max-width:none}.resume h1{font-size:30pt}.resume h2{font-size:18pt;margin-top:24px}.resume p,.resume-lead{color:#333}a{color:black}.resume-row{break-inside:avoid}.resume-header{display:block}@page{margin:18mm}}
@media(max-width:700px){.next-project strong{overflow-wrap:anywhere}}



::selection{background:#7effde;color:#09090b}body{background:#09090b}.empty-work{padding-top:80px;padding-bottom:80px}

@media(max-width:900px){}
@media(max-width:700px){.case-title h1{font-size:48px}}




.motion-home{--bg:#09090b;--text:#f5f3fa;--accent:#8b80ff;background:var(--bg)}
.art-experience{position:relative;isolation:isolate;--journey:0;--accent:#8b80ff;--ice:#7effde;--indigo:#8b80ff}
.art-stage{position:sticky;top:0;height:100svh;margin-bottom:-100svh;z-index:-1;overflow:hidden;background:#09090b}


#art-canvas{width:100%;height:100%;display:block;opacity:0}





.art-intro-bottom>p{font-size:13px;line-height:1.7;color:#d3ccdf}
.art-link{display:inline-flex;align-items:center;gap:36px;font-size:15px;border-bottom:1px solid #c5cec580;padding:14px 0;color:#f5f3fa}
.art-link svg{width:24px;height:24px;transition:transform 250ms ease-out}.art-link:hover svg{transform:translate(4px,-4px)}
.art-scroll{padding:12px;border:1px solid #ffffff38;border-radius:50%}.art-scroll svg{display:block}
.art-chapter{min-height:90svh;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding:100px 8%;gap:32px}
.art-chapter h2{font-size:clamp(48px,6vw,88px);line-height:1.02;color:#f5f3fa;letter-spacing:-.04em;transform:translateX(calc((1 - var(--journey))*4vw))}
.art-chapter-copy{max-width:390px}.art-chapter-copy p{color:#c8c3d8;font-size:19px;line-height:1.7;margin-bottom:20px}
.art-about{min-height:100svh;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;column-gap:10%;row-gap:32px;padding:120px 8%;background:linear-gradient(to bottom,transparent calc(100% - clamp(160px,30svh,360px)),var(--bg));}
.art-about h2{font-size:clamp(48px,6vw,88px);line-height:1.02;color:#8b80ff;letter-spacing:-.04em}
.about-visual{grid-column:1;grid-row:2;width:100%;height:clamp(280px,32vw,420px)}.about-copy{grid-column:2;grid-row:1 / span 2;max-width:420px;display:grid;gap:24px}.art-about p{font-size:18px;color:#f5f3fa}
.motion-toggle{min-height:44px;position:fixed;right:24px;bottom:20px;padding:10px 16px;border:1px solid #ffffff40;border-radius:var(--control-radius);background:#09090bdf;color:#d3ccdf;font-size:11px;z-index:15}
.motion-toggle[hidden]{display:none}
.work-intro{padding-top:100px;padding-bottom:80px}.work-intro h1{font-size:clamp(64px,9vw,128px);letter-spacing:-.04em}.work-intro p{padding-top:32px;font-size:18px}
.work-index .selected{padding-bottom:100px}.work-index .project-media{height:380px}.work-index .section-heading h2{font-size:28px}.work-index .project-grid{row-gap:72px}
@media(max-width:700px){
 .art-intro-bottom p{flex-basis:100%}.art-intro-bottom .art-link{font-size:14px}.art-scroll{margin-left:auto}
 .art-chapter{min-height:90svh;padding:100px 7%;align-items:start;}.art-chapter h2{font-size:clamp(56px,14vw,86px)}.art-chapter-copy p{font-size:17px}
 .art-about{display:flex;flex-direction:column;align-items:start;justify-content:center;padding:100px 7%;gap:44px;min-height:100svh}.art-about h2{font-size:64px}.about-visual{height:300px;max-width:480px;align-self:center}.art-about p{font-size:16px}
 .motion-toggle{right:16px;bottom:14px}.work-intro{padding-top:64px;padding-bottom:56px}.work-index .project-media{height:260px}
}
@media(prefers-reduced-motion:reduce){.art-chapter h2{transform:none}.art-link svg{transition:none}}








.motion-ribbon{overflow:hidden;padding:28px 0;background:#8b80ff;color:#09090b;transform:rotate(-3deg) scale(1.03);position:relative;z-index:2}
.motion-ribbon>div{display:flex;width:max-content;animation:ribbon-travel 18s linear infinite}
.motion-ribbon span{font-family:Inter,sans-serif;font-size:clamp(18px,2.5vw,32px);line-height:1.3;white-space:nowrap;padding-right:.5em}
@keyframes ribbon-travel{to{transform:translateX(-50%)}}
.art-play{min-height:110svh;position:relative;display:flex;align-items:center;padding:120px 8%;overflow:hidden}
.play-heading{position:relative;z-index:2}.play-heading h2{font-size:clamp(48px,6vw,88px);line-height:1.02;letter-spacing:-.04em;color:#f5f3fa}.play-heading>p{font-size:16px;line-height:1.7;color:#c8c3d8;margin-top:36px}
.material-controls{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}.material-controls button{padding:13px 22px;background:#09090bb3;color:#ece8f4;border:1px solid #c8bedb66;transition:background 250ms,color 250ms,transform 250ms}.material-controls button[aria-pressed=true]{background:#8b80ff;color:#181522;border-color:#8b80ff}.material-controls button:hover{border-color:#7effde}
.orbit-mark{position:absolute;right:-10%;top:18%;width:65vw;aspect-ratio:1;perspective:900px;pointer-events:none;opacity:.45;transform:rotate(calc(var(--journey)*150deg))}
.orbit-mark>span{position:absolute;inset:10%;border:1px solid #8b80ff88;border-radius:50%;animation:orbit-one 16s linear infinite;transform-style:preserve-3d}
.orbit-mark>span:nth-child(2){inset:20%;animation-duration:12s;animation-direction:reverse}.orbit-mark>span:nth-child(3){inset:30%;animation-duration:20s}
.orbit-mark i{position:absolute;inset:44%;font-family:Inter,sans-serif;color:#8b80ff;font-size:22px;font-style:normal}
@keyframes orbit-one{from{transform:rotateX(65deg) rotateY(0) rotateZ(0)}to{transform:rotateX(65deg) rotateY(360deg) rotateZ(180deg)}}
.art-link{transform:translate(var(--magnet-x,0px),var(--magnet-y,0px));transition:transform 250ms cubic-bezier(.16,1,.3,1),color 200ms}.art-link:hover{color:#8b80ff}
.art-scroll svg{animation:scroll-nudge 2.4s ease-in-out infinite}@keyframes scroll-nudge{0%,100%{transform:translateY(-3px)}50%{transform:translateY(4px)}}
.art-experience:not([data-motion-ready]) .motion-ribbon>div,.art-experience:not([data-motion-ready]) .orbit-mark>span,.art-experience:not([data-motion-ready]) .art-scroll svg{animation:none}
.art-experience[data-paused] *{animation-play-state:paused!important}.art-experience[data-paused] .art-link{transform:none}
[data-material=ember] .orbit-mark{filter:hue-rotate(290deg)}[data-material=violet] .orbit-mark{filter:hue-rotate(140deg)}
@media(max-width:700px){.art-play{min-height:100svh;padding:100px 7%;}.play-heading h2{font-size:clamp(56px,14vw,80px)}.orbit-mark{width:105vw;right:-40%;top:30%;opacity:.3}.material-controls button{padding:12px 18px;font-size:13px}.motion-ribbon{padding:20px 0}}
@media(prefers-reduced-motion:reduce){.motion-ribbon>div,.orbit-mark>span,.orbit-mark{transform:rotate(20deg)}.art-link,.material-controls button{transition:none;transform:none!important}}
.material-controls[hidden]{display:none}
.art-experience:not([data-motion-visible]) .motion-ribbon>div,.art-experience:not([data-motion-visible]) .orbit-mark>span,.art-experience:not([data-motion-visible]) .art-scroll svg{animation-play-state:paused}
.art-experience{overflow-x:clip}

.screen-studies{min-height:110svh;padding:120px 7%;display:grid;grid-template-columns:.85fr 1.3fr;align-items:center;gap:6%;perspective:1500px;position:relative}
.screen-copy h2{font-size:clamp(56px,6.4vw,96px);line-height:1;letter-spacing:-.04em;color:#f5f3fa}.screen-copy>p{font-size:16px;line-height:1.8;margin-top:28px;color:#c8c3d8}.study-note{font-size:14px;color:#a9a1b6}
.screen-choices{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.screen-choices button{padding:12px 16px;border:1px solid #c8bedb66;color:#f5f3fa;background:#09090b}.screen-choices button[aria-pressed=true]{background:#8b80ff;color:#181522;border-color:#8b80ff}
.screen-theatre{position:relative;perspective:1200px}.screen-anchor{position:relative;min-height:420px;transform:none}
.screen-plane{display:grid;opacity:var(--screen-coverage,1);position:relative;background:#f5f3fa;border-radius:12px;overflow:hidden;box-shadow:-24px 38px 80px #09090b99;transform:none;touch-action:auto;cursor:default;transition:box-shadow 300ms;min-height:420px}
.screen-chrome{height:44px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;background:#100d15;color:#c4bbd3;font-size:10px;letter-spacing:.08em}
.study-panel{grid-area:2/1;background:#181522;height:380px;position:relative;padding:28px;overflow:hidden}
.mock-nav{display:flex;gap:24px;align-items:center;font-size:10px;color:#c8c3d8}.mock-nav b{font-size:22px;margin-right:auto;font-weight:400;color:#f5f3fa}.mock-content{position:relative;margin-top:44px}.mock-content h3{font-size:clamp(32px,3vw,48px);line-height:1.1;max-width:9ch;color:#f5f3fa;position:relative;z-index:2}
.liquid-orb{position:absolute;width:220px;height:220px;right:-25px;top:-22px;background:radial-gradient(ellipse at 28% 20%,#eee8ff,#8b80ff 24%,#514691 55%,#141119 78%);border-radius:42% 58% 67% 33%/44% 31% 69% 56%;animation:liquid-life 4s ease-in-out infinite alternate;box-shadow:0 24px 45px #09090b66}
.mock-strips{position:absolute;bottom:28px;left:28px;right:28px;display:flex;gap:12px}.mock-strips span{height:36px;flex:1;border-top:1px solid #283e5c55;background:linear-gradient(90deg,#8b80ff66,#51469166);transform-origin:left;animation:strip-breathe 6s ease-in-out infinite}.mock-strips span:nth-child(2){animation-delay:.12s}.mock-strips span:nth-child(3){animation-delay:.24s}
.study-panel[data-screen-panel=data]{background:#181320}.study-panel[data-screen-panel=systems]{background:#100d15}
.data-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.data-heading h3,.study-panel[data-screen-panel=systems]>h3{font-size:36px;line-height:1.1;color:#ded5ec}.data-heading>span{font-size:10px;color:#b7afc6}
.signal-bars{position:absolute;bottom:60px;left:28px;right:28px;height:160px;display:flex;gap:5px;align-items:end}.signal-bars i{flex:1;background:linear-gradient(#8b80ff,#514691);height:var(--bar);transform-origin:bottom;animation:signal-life 4.8s ease-in-out infinite;animation-delay:calc(var(--i)*.025s)}
.signal-wave{position:absolute;bottom:0;left:0;width:100%;height:100px;stroke:#f5f3fa;stroke-width:1.5;stroke-dasharray:700 700;animation:signal-flow 4.8s linear infinite}
.system-map{display:block;width:100%;height:calc(100% - 80px);max-width:none;stroke-width:1.2}.system-routes{stroke:#f5f3fa45}.system-packet{stroke:#8b80ff;stroke-width:3;stroke-linecap:round;stroke-dasharray:.08 .92;animation:system-signal 4s cubic-bezier(.22,.61,.36,1) infinite;animation-delay:calc(var(--i)*.45s)}.system-port{fill:#181320;stroke:#f5f3fa66}.system-hub{fill:#8b80ff;stroke:none}.system-labels{fill:#ded5ec;stroke:none;text-anchor:middle;font-size:14px}.system-labels text:nth-child(2){fill:#16111d;font-size:20px}.system-caption{fill:#b1a7c3;stroke:none;text-anchor:middle;font-size:12px}@keyframes system-signal{0%{stroke-dashoffset:1;opacity:0}12%,75%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}

.screen-underlay{position:absolute;inset:30px -14px -24px 20px;border:1px solid #a2b5a44d;transform:none;border-radius:12px;z-index:-1}

@keyframes liquid-life{to{border-radius:66% 34% 37% 63%/36% 62% 38% 64%;transform:rotate(35deg) scale(.9)}}
@keyframes strip-breathe{0%,100%{transform:scaleX(.05);opacity:.15}20%,80%{transform:scaleX(1);opacity:1}}@keyframes signal-life{0%,100%{transform:scaleY(.05);opacity:.15}22%,65%{transform:scaleY(1);opacity:1}}@keyframes signal-flow{to{stroke-dashoffset:-1400}}

.screen-studies:not([data-screen-ready]) *,.screen-studies[data-screen-paused] .screen-theatre,.screen-studies[data-screen-paused] .screen-plane *{animation-play-state:paused!important}
@media(max-width:850px){.screen-studies{grid-template-columns:1fr;padding:100px 7%;gap:64px}.screen-copy h2{font-size:64px}.screen-plane{min-height:380px}.study-panel{height:340px;padding:22px}.liquid-orb{width:180px;height:180px;right:-40px}.mock-content h3{font-size:36px}.screen-theatre{max-width:620px;width:100%;margin:auto}}
@media(prefers-reduced-motion:reduce){.screen-theatre,.study-panel,.study-panel *{animation:none!important}.screen-plane{transform:none}.screen-underlay{display:none}}

.connected-journey{position:relative;--connection:0;--energy:.6}
.journey-thread{position:absolute;inset:0;width:100%;height:100%;stroke-width:1;pointer-events:none;opacity:.5;max-width:none}
.journey-thread path{fill:none;stroke:#b8cba733}.journey-thread .thread-lit{stroke:#8b80ff;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--connection))}
.journey-block{position:relative;min-height:95svh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6%;padding:110px 8%;overflow:hidden;--local:.5}
.journey-copy{position:relative;z-index:3;max-width:580px}.journey-copy h2{font-size:clamp(48px,6vw,88px);line-height:1;letter-spacing:-.04em;color:#f5f3fa;transform:translateY(calc((.5 - var(--local))*80px))}.journey-copy p{font-size:17px;line-height:1.8;color:#c8c3d8;margin:32px 0 22px}

.spark-field{position:relative;width:100%;aspect-ratio:1;perspective:700px;transform:rotate(calc(var(--local)*80deg)) scale(calc(.6 + var(--local)*.8))}
.spark-field i{position:absolute;left:50%;top:50%;width:var(--size);height:var(--size);border-radius:50%;background:#8b80ff;transform:rotate(var(--a)) translateX(calc(var(--n)*4px + 20px));animation:spark-drift 6s ease-in-out infinite alternate;animation-delay:calc(var(--n)*-.17s)}
.spark-seed{position:absolute;inset:36%;border:1px solid #8b80ff;border-radius:50%;box-shadow:0 14px 45px #09090b88;background:radial-gradient(circle at 25% 20%,#ddcaff,#8b80ff 44%,#21172e);animation:seed-breathe 5s ease-in-out infinite}
.assembly-space{perspective:900px;min-height:450px;display:flex;align-items:center;justify-content:center}
.assembly{width:280px;height:280px;position:relative;transform-style:preserve-3d;transform:rotateX(calc(55deg - var(--local)*30deg)) rotateZ(calc(-35deg + var(--local)*70deg));animation:assembly-hover 8s ease-in-out infinite}
.assembly span{position:absolute;left:100px;top:100px;width:80px;height:80px;border:1px solid #ede9f5;background:linear-gradient(135deg,#8b80ffcc,#ab6841cc);transform:translate3d(calc(var(--x)*(95px + (1 - var(--local))*110px)),calc(var(--y)*(95px + (1 - var(--local))*110px)),calc(var(--n)*8px));box-shadow:-6px 12px 20px #09090b55;transition:background .5s}
.assembly span:nth-child(2n){background:linear-gradient(135deg,#8699a8cc,#26333fcc)}
.flow-tunnel{height:520px;position:relative;perspective:600px;transform:rotateZ(calc(var(--local)*25deg))}
.flow-tunnel span{position:absolute;inset:10%;border:1px solid #f5f3fa;border-radius:38%;transform:translateZ(calc(var(--n)*-65px));animation:tunnel-flow 8s linear infinite;animation-delay:calc(var(--n)*-.66s);opacity:0}
.energy-label{display:flex;gap:40px;font-size:12px;color:#d1c8df;margin:32px 0 12px}.energy-label output{color:#8b80ff}#motion-energy{width:min(100%,300px);display:block;accent-color:#8b80ff;cursor:pointer;margin-bottom:24px;min-height:32px}
@keyframes spark-drift{to{transform:rotate(calc(var(--a) + 45deg)) translateX(calc(var(--n)*6px + 35px));opacity:.2}}
@keyframes seed-breathe{50%{transform:scale(1.15);border-radius:40% 60% 55% 45%}}
@keyframes assembly-hover{50%{translate:0 -22px}}
@keyframes tunnel-flow{0%{transform:translateZ(-600px) rotateZ(-30deg);opacity:0}20%{opacity:.7}80%{opacity:.5}100%{transform:translateZ(160px) rotateZ(40deg);opacity:0}}
.art-experience:not([data-motion-ready]) .journey-block *,.art-experience:not([data-motion-visible]) .journey-block *,.art-experience[data-document-hidden] *{animation-play-state:paused!important}
@media(max-width:799px){.journey-block{grid-template-columns:1fr;padding:96px 7%;gap:64px;min-height:110svh}.journey-copy h2{font-size:clamp(58px,14vw,90px)}.journey-copy p{font-size:16px}.spark-field{max-width:400px;margin:auto;min-height:300px}.assembly-space{order:2;min-height:350px}.assembly{scale:.8}.flow-tunnel{height:350px;width:100%;max-width:420px;margin:auto}.journey-thread{opacity:.25}}
@media(prefers-reduced-motion:reduce){.journey-block *{animation:none!important}.journey-copy h2,.spark-field,.assembly,.flow-tunnel{transform:none}.flow-tunnel span{opacity:.3;transform:scale(calc(1 - var(--n)*.06))}.journey-thread .thread-lit{stroke-dashoffset:0}}

#motion-energy:disabled{opacity:.4;cursor:default}
.response-controls[hidden]{display:none}.response-controls>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.response-controls button{padding:11px 16px;background:#09090b;color:#f5f3fa;border:1px solid #c8bedb66;font-size:12px}.response-controls button[aria-pressed=true]{background:#8b80ff;border-color:#8b80ff;color:#181522}
#motion-depth{display:block;width:min(100%,300px);accent-color:#8b80ff;min-height:32px;cursor:pointer;margin-bottom:20px}.art-experience{--scene-depth:.5}
.screen-theatre{perspective:calc(1600px - var(--scene-depth)*900px)}
[data-response=rigid] .screen-plane{border-radius:3px}[data-response=soft] .screen-plane{border-radius:20px}
[data-response=rigid] .liquid-orb{animation-duration:14s}[data-response=soft] .liquid-orb{animation-duration:6s}
@media(max-width:700px){.response-controls button{padding:11px 14px}.flow-block{min-height:120svh}}

.art-experience{--opening:1;--camera-phase:0;--assembly-phase:0;--screen-phase:0}

[data-art-ready] #art-canvas{opacity:var(--sculpture-opacity,1)}

.screen-actions{display:flex;gap:12px;position:relative;margin-top:36px}.screen-actions button,.screen-dialog>button{background:#181522;color:#f5f3fa;border:1px solid #c8bedb66;padding:12px 18px;font-size:12px;min-height:44px}
.screen-hint{font-size:14px;color:#b7afc6;margin-top:14px}.screen-dialog{width:min(1100px,94vw);max-height:94svh;padding:24px;background:#09090b;border:1px solid #62586f;color:#f5f3fa;overflow:auto}.screen-dialog::backdrop{background:#030607ed}.screen-dialog>button{grid-area:1/2;margin:0;align-self:start}.screen-dialog .screen-plane{width:100%;min-height:0;transform:none;cursor:default;touch-action:auto}.screen-dialog .study-panel{height:clamp(220px,calc(80dvh - 240px),480px)}.screen-dialog .liquid-orb{width:320px;height:320px}.screen-dialog .mock-content h3{font-size:64px}.screen-dialog .signal-bars{height:240px}

@media(max-width:700px){.screen-actions{flex-wrap:wrap}.screen-dialog{padding:16px}.screen-dialog .mock-content h3{font-size:36px}.screen-dialog .liquid-orb{width:180px;height:180px}.screen-dialog .signal-bars{height:160px}.screen-hint{max-width:32ch}}
@media(prefers-reduced-motion:reduce){.screen-plane{transform:none!important}.screen-theatre{animation:none}.screen-dialog .screen-plane{transform:none}}

.assembly{scale:calc(.85 + var(--assembly-phase)*.15)}

@media(prefers-reduced-motion:reduce){.screen-studies .screen-theatre{translate:none}.assembly{scale:1}}
.screen-actions[hidden],.screen-hint[hidden]{display:none}.dialog-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;grid-area:1/1;min-width:0}.dialog-tools .screen-choices{margin:0}.dialog-tools>button{padding:12px 16px;background:#181522;color:#f5f3fa;border:1px solid #c8bedb66;font-size:12px;min-height:44px}
.screen-dialog>button{position:sticky;top:0;z-index:4;background:#181522}


[data-motion-block]:not([data-block-visible]):not(.screen-studies) *{animation-play-state:paused!important}
.art-experience[data-modal-open] .motion-ribbon *, .art-experience[data-modal-open] .orbit-mark *, .art-experience[data-modal-open] .journey-block *, .art-experience[data-modal-open] .art-scroll *{animation-play-state:paused!important}
.art-experience:not([data-motion-ready]) .type-line{animation:none}
#art-canvas{position:relative;z-index:2}

.screen-choices button:disabled{opacity:.5;cursor:default}
.screen-plane:focus-visible,input:focus-visible{outline:2px solid #7effde;outline-offset:6px}
.dialog-tools>button:disabled{opacity:1;color:#c8c3d8;cursor:default;background:transparent}
.screen-dialog .screen-hint{grid-area:4/1/5/3;margin:0}.screen-dialog .study-note{grid-area:2/1/3/3;max-width:none;margin:0}.expanded-screen-slot{grid-area:3/1/4/3;min-width:0;padding:12px 24px}.screen-dialog .screen-plane{box-shadow:none}
.screen-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;animation:theatre-arrival 350ms cubic-bezier(.16,1,.3,1)}
@keyframes theatre-arrival{from{opacity:.6;translate:0 16px}to{opacity:1;translate:0 0}}
.motion-home .study-note{max-width:38ch;line-height:1.7}
.motion-home .art-intro-bottom>p{font-size:16px}.motion-home .art-scroll{min-width:44px;min-height:44px}
@media(max-width:700px){.motion-home .screen-plane{--scene-depth:.2}.screen-copy h2{font-size:clamp(48px,13vw,64px)}.screen-dialog{max-height:94svh;max-height:94dvh}.screen-dialog .screen-plane{min-width:0}.screen-dialog .study-panel{padding:20px}.screen-dialog .mock-nav{gap:12px}.screen-choices button,.response-controls button{min-height:44px}.energy-label{font-size:14px;gap:24px}#motion-energy,#motion-depth{min-height:44px}.motion-toggle{font-size:12px}}
@media(prefers-reduced-motion:reduce){.screen-plane{cursor:default}.screen-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;animation:none}}


.project-visual{width:100%;height:100%;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface)}
.project-visual>img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 600ms cubic-bezier(.16,1,.3,1)}
.project-media:hover .project-visual>img{transform:scale(1.025)}
.project-visual>.project-type{width:100%}
.case-media .project-visual{height:580px}
.case-media .project-visual>img{object-position:center 42%}
.case-media .project-visual:not([data-has-image]){height:auto;min-height:350px;padding-block:48px}
@media(max-width:1000px){.case-media .project-visual{height:450px}}
@media(max-width:700px){.case-media .project-visual{height:340px}}
@view-transition{navigation:auto}
::view-transition-group(*){animation-duration:520ms;animation-timing-function:cubic-bezier(.16,1,.3,1)}
::view-transition-group(root){animation-duration:380ms}
::view-transition-old(root){animation:page-depart 380ms ease-in-out both}
::view-transition-new(root){animation:page-arrive 380ms ease-in-out both}
@keyframes page-depart{to{opacity:0}}
@keyframes page-arrive{from{opacity:0}}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
 .project-media:hover .project-visual>img{transform:none}
}


.art-play{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px}
.sculpture-turntable{position:relative;min-height:520px;width:100%;z-index:3;cursor:grab;touch-action:pan-y;align-self:center}
.sculpture-turntable.is-dragging{cursor:grabbing}
.sculpture-turntable:focus-visible{outline:1px solid #8b80ff;outline-offset:16px}
.turntable-tools{position:absolute;bottom:0;left:0;right:0;display:grid;gap:16px;justify-items:start}
.turntable-tools p{font-size:16px;line-height:1.6;color:#d3ccdf}
.turntable-tools button{min-height:44px;padding:12px 16px;border:1px solid #c8bedb66;background:#09090bcc;color:#f5f3fa;font-size:14px;cursor:pointer}
.turntable-tools button:disabled{opacity:.5;cursor:default}
.art-experience[data-art-ready] .spark-field,.art-experience[data-art-ready] .assembly-space,.art-experience[data-art-ready] .flow-tunnel,.art-experience[data-art-ready] .orbit-mark{visibility:hidden}
.art-experience[data-art-ready] .spark-field *,.art-experience[data-art-ready] .assembly-space *,.art-experience[data-art-ready] .flow-tunnel *,.art-experience[data-art-ready] .orbit-mark *{animation:none!important}
@media(max-width:799px){.art-play{grid-template-columns:1fr;gap:48px}.sculpture-turntable{min-height:clamp(360px,60svh,520px)}.turntable-tools{padding-bottom:16px}.play-heading h2{font-size:clamp(56px,14vw,80px)}}
@media(prefers-reduced-motion:reduce){.sculpture-turntable{cursor:default}}










[data-art-ready] 

.core-controls{display:grid;gap:16px;max-width:320px;padding-top:0}
.core-control-label{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#d3ccdf;font-size:14px}
.core-control-label output{color:#7effde;font-variant-numeric:tabular-nums}
.core-controls input{width:100%;min-height:44px;accent-color:#8b80ff;cursor:ew-resize}
.core-controls button{justify-self:start;min-height:44px;background:transparent;border:1px solid #c8bedb66;color:#f5f3fa;padding:12px 16px;font-size:14px;cursor:pointer}
.core-controls button:hover{border-color:#8b80ff;color:#8b80ff}
.core-controls :focus-visible{outline:2px solid #7effde;outline-offset:4px}

[data-paused] .art-intro .type-line{animation:none}


.intro-copy{display:grid;gap:24px;align-content:center}.intro-identity{font-size:16px;line-height:1.5;color:#d3ccdf;max-width:32ch}.intro-work{display:inline-flex;align-items:center;gap:24px;justify-self:start;min-height:44px;color:#8b80ff;font-size:16px}.intro-work svg{width:24px;height:24px}.core-control-slot{min-height:172px}
.turntable-visual{position:relative;min-height:520px;width:100%;align-self:center}.sculpture-turntable{height:100%}
.static-ring{position:absolute;width:65%;aspect-ratio:1;left:17%;top:15%;border:24px solid #b7afc6;border-top-color:#e8e1f2;border-bottom-color:#30253e;border-radius:50%;transform:rotateX(48deg) rotateZ(-28deg);box-shadow:16px 32px 48px #09090b88}
.connection-visual{position:absolute;left:5%;top:15%;width:42%;height:65%;pointer-events:none}
.art-chapter{position:relative}
[data-art-ready] .connection-visual .static-ring,[data-art-ready] .turntable-visual .static-ring{visibility:hidden}
.art-experience:not([data-art-ready]) .flow-tunnel>span{animation:none;opacity:.6}
.art-experience:not([data-art-ready]) .spark-field i{animation:none;opacity:.7}
.art-experience:not([data-art-ready]){--screen-coverage:1!important;--screen-influence:1!important}
.screen-studies:focus-within .screen-plane,.screen-dialog .screen-plane{display:grid;opacity:1}.screen-dialog{--screen-influence:1}
.screen-underlay{opacity:var(--screen-influence,1)}
@media(max-width:799px){.turntable-visual{min-height:clamp(360px,60svh,520px)}.connection-visual{position:relative;left:auto;top:auto;align-self:center;width:100%;height:320px;order:3}.art-chapter{align-items:stretch}.art-chapter h2,.art-chapter-copy{align-self:flex-start}.art-intro-bottom>p{display:none}}



.art-chapter h2{color:#ede9f5}.structure-block .journey-copy h2{color:#f5f3fa}.flow-block .journey-copy h2{color:#ede9f5}
.motion-home ::selection{background:#7effde;color:#100d15}.art-experience input{caret-color:#8b80ff}
@media(max-width:799px){.intro-copy{display:grid}.core-control-slot{order:4;min-height:172px}}




.work-search{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:0 0 40px}.work-search label{grid-column:1/-1;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.work-search input{width:100%;min-height:48px;border:1px solid #8b80ff66;background:var(--surface);color:inherit;font:inherit;padding:12px 20px;border-radius:var(--control-radius)}.work-search input:focus-visible{outline:2px solid #7effde;outline-offset:3px}.work-search p{grid-column:1/-1;font-size:13px;color:#c8c3d8;margin:0}#empty-filter{padding:32px 0;max-width:560px}@media(max-width:600px){.work-search{grid-template-columns:1fr}}

.viewer-open{overflow:hidden}.project-viewer{scrollbar-gutter:stable;width:min(1400px,94vw);max-width:94vw;height:92svh;max-height:92svh;margin:auto;padding:0;border:1px solid var(--line);background:var(--bg);color:var(--text);overscroll-behavior:contain}.project-viewer::backdrop{background:#09090bcc}.viewer-toolbar,.viewer-navigation{display:flex;align-items:center;gap:24px;padding:16px 32px;background:var(--bg);border-bottom:1px solid var(--line)}.viewer-toolbar{position:sticky;top:0;z-index:2;justify-content:space-between}.viewer-toolbar h2{font-size:16px}.project-viewer button{min-height:44px;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.project-viewer button:disabled{opacity:.35;cursor:default}.viewer-navigation{flex-wrap:wrap;font-size:13px}.viewer-navigation a{margin-left:auto;display:inline-flex;align-items:center;min-height:44px}.case-layout--preview{grid-template-columns:1fr}.project-viewer [data-viewer-body]{position:relative;overflow:clip}.viewer-outgoing{position:absolute;inset:0;pointer-events:none}.project-viewer .viewer-message,.project-viewer [data-viewer-retry]{padding:32px}@media(max-width:600px){.project-viewer{width:100vw;max-width:100vw;height:100svh;max-height:100svh;border:0}.viewer-toolbar,.viewer-navigation{padding:16px 24px;gap:16px}.viewer-navigation a{margin-left:0}}

.viewer-media-proxy{position:fixed;inset:0;z-index:5;pointer-events:none}.viewer-media-proxy img{position:absolute;max-width:none;transform-origin:0 0}.work-index{--accent:#8b80ff}

.case-toc a[aria-current]{color:var(--text);text-decoration:underline;text-underline-offset:6px}





.dialog-tools .study-note{flex-basis:100%;max-width:64ch}

.project-visual>canvas,.project-visual>svg{display:block;width:100%;height:100%}

@media(max-width:600px){}



.about-emblem{display:block;width:144px;height:144px;border-radius:50%}


.intro-identity{max-width:none}.intro-work{justify-self:center;padding:12px 24px;background:#8b80ff;color:#09090b}.form-controls{grid-column:1/-1;display:flex;justify-content:center;align-items:start;flex-wrap:wrap;gap:32px;order:3;padding:24px;border:1px solid #8b80ff33;border-radius:16px;background:#181522cc}

.form-controls .core-control-slot{min-height:0;width:min(420px,100%)}.core-controls--form{max-width:none;grid-template-columns:1fr auto;align-items:center;gap:8px}.core-controls--form .core-control-label,.core-controls--form p{grid-column:1/-1}.core-controls--form p{font-size:13px;color:#c8c3d8}.core-controls--form button{grid-column:2;grid-row:2}

.intro-work:hover{background:#7effde}

[data-track]{position:relative}[data-track]::before{content:"";position:absolute;inset:-8px;z-index:4;pointer-events:none;border:12px solid transparent;border-image:url(/media/track-corners.svg) 12 stretch;opacity:0;transform:scale(.97);transition:opacity .25s,transform .45s cubic-bezier(.16,1,.3,1)}[data-track]:is(:hover,:focus-within)::before{opacity:1;transform:none}.project-media[data-track]::before{inset:8px}

.case-media .project-visual--portrait img{object-fit:contain}
