
:root{color-scheme:dark;--ease:cubic-bezier(.22,1,.36,1);--text:#e6e9ef}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:var(--text);background:#06090e;-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{color:inherit;font:inherit;background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:1px solid #b6e9f8;outline-offset:6px}main,#gallery,#world{position:absolute;inset:0;width:100%;height:100%}#gallery{touch-action:none;cursor:grab}#gallery.dragging{cursor:grabbing}#world{display:block}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 35%,#03050a24 75%,#03050a66);z-index:1}.site-header{position:fixed;top:33px;left:38px;right:38px;display:flex;justify-content:space-between;align-items:center;z-index:10;pointer-events:none}.site-header>*{pointer-events:auto}.identity{display:flex;gap:15px;align-items:center}.identity-mark{font:600 28px Arial,sans-serif;letter-spacing:-1.5px;color:#e4eced}.identity-name{font-size:12px;letter-spacing:2px;border-left:1px solid #ffffff25;padding-left:15px}.identity-name small{display:block;font-size:8px;letter-spacing:1px;color:#8c9baf;margin-top:5px}nav{display:flex;align-items:center;padding:5px 9px;border:1px solid #83bcb14a;border-radius:30px;background:#0b101184;backdrop-filter:blur(18px);box-shadow:0 0 35px #7de3cc09,inset 0 0 10px #b4f3db04}nav a,nav button{font-size:11px;letter-spacing:1px;padding:10px 14px;color:#bbc9cf;transition:color .2s}nav a:hover,nav button:hover{color:#fff}.nav-orbit{width:37px;height:7px;margin-right:4px;background:linear-gradient(12deg,transparent 35%,#aad3cd 49%,transparent 64%);border-radius:50%;opacity:.7}.work-index{position:fixed;left:40px;bottom:45px;z-index:10;width:185px}.index-heading{font:9px ui-monospace,monospace;display:flex;gap:10px;align-items:center;letter-spacing:1px;color:#667880;margin-bottom:15px}.index-heading>span:first-child{color:#c3d4da}.index-rule{height:1px;width:27px;background:#7a929452}.project-list{display:grid;gap:4px}.project-list button{display:flex;align-items:center;gap:15px;text-align:left;font-size:12px;padding:7px 0;color:#74858e;transition:color .35s,transform .5s var(--ease)}.project-list button>span{letter-spacing:2px;flex-shrink:0}.project-list button small{font-size:8px;letter-spacing:.8px;opacity:0;transform:translateX(-5px);transition:opacity .4s,transform .4s;white-space:nowrap}.project-list button i{font-size:14px;font-style:normal;opacity:0;transition:opacity .4s}.project-list button[aria-pressed=true]{color:#e6eeef}.project-list button[aria-pressed=true] small{opacity:.7;transform:none}.project-list button[aria-pressed=true] i{opacity:.8}.project-list button:hover{color:#fff;transform:translateX(3px)}.scene-status{position:fixed;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#loading{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);font-size:10px;letter-spacing:2px;color:#8a9baf;z-index:3;transition:opacity .6s}#loading span{display:block;height:1px;background:#c5d7dd;margin-top:18px;transform-origin:left;animation:loading 1s infinite alternate}#loading.done{opacity:0;pointer-events:none}#fallback{position:absolute;inset:35% 20px auto;text-align:center;color:#b5c6cf;font-size:14px;line-height:2.4}#fallback[hidden]{display:none}.no-script{position:fixed;top:35%;width:100%;text-align:center;line-height:2;z-index:20}.skip-link{position:fixed;left:20px;top:-80px;z-index:30;padding:12px;background:#18333e}.skip-link:focus{top:15px}

dialog{width:min(720px,calc(100% - 40px));max-height:85dvh;border:1px solid #a5b9df2e;border-radius:23px;padding:0;background:linear-gradient(140deg,#171f2d,#111a26);color:#d7e0ee;box-shadow:0 40px 130px #0008;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#3a4963 transparent}dialog::backdrop{background:#05081174;backdrop-filter:blur(8px)}dialog[open]{animation:dialog-enter .5s var(--ease)}dialog.leaving{animation:dialog-exit .25s ease-in forwards}dialog.leaving::backdrop{opacity:0;transition:opacity .25s}.dialog-toolbar{height:62px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff0a;background:#151e2ae8;backdrop-filter:blur(15px);position:sticky;top:0;z-index:10}.dialog-label{font-size:10px;letter-spacing:1px;color:#73839c}.close-dialog{height:30px;width:30px;border-radius:50%;display:grid;place-items:center;font-size:23px;color:#8598b5;background:#ffffff06}.close-dialog:hover{color:#e8f0ff;background:#ffffff10}.case-content{padding:33px 38px 39px}.case-kicker{font-size:10px;color:#7c91ae;letter-spacing:1px}.case-content h2{font-size:37px;font-weight:450;letter-spacing:1px;margin-top:14px;line-height:1.3}.case-lead{font-size:14px;line-height:1.8;color:#9cabc1;margin-top:12px}.case-stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:22px}.case-stack>span{font-size:9px;background:#a9c5f207;border:1px solid #a5c2ee15;border-radius:6px;color:#8c9fbc;padding:6px 8px}.contact-grid{display:grid;gap:12px;margin-top:26px}.contact-link{display:flex;align-items:center;justify-content:space-between;border:1px solid #a8c5ec1e;border-radius:13px;padding:18px 19px;color:#b1c6e4;font-size:15px;background:#93b8e807}.contact-link:hover{background:#93b8e811;border-color:#a8c5ec4f}.contact-link>span{font-size:16px;color:#718db4}.contact-meta{font-size:10px;line-height:1.9;color:#6a7f9f;margin-top:26px}.copy-button{font-size:11px;color:#88a5cd;padding:10px 0;margin-top:15px}.copy-status{min-height:17px;font-size:10px;color:#8eb4a3;margin-top:3px}.resume-project{padding:17px 0;border-bottom:1px solid #a2bde619}.resume-project h3{font-size:14px;font-weight:450;color:#b6c9e4;margin-bottom:7px}.resume-project p{font-size:11px;line-height:1.8;color:#7d93b4}.resume-title{display:flex;align-items:center;justify-content:space-between}.resume-title>span{font-size:9px;color:#6f84a5}.resume-contact{display:flex;flex-wrap:wrap;gap:17px;margin-top:25px;font-size:11px;color:#8da8cc}.resume-projects{margin-top:22px}
@keyframes loading{from{transform:scaleX(.2);opacity:.3}to{transform:scaleX(1);opacity:1}}@keyframes dialog-enter{from{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:none}}@keyframes dialog-exit{to{opacity:0;transform:translateY(10px) scale(.98)}}
@media(max-width:600px){.site-header{top:25px;left:22px;right:22px}.identity{gap:10px}.identity-mark{font-size:25px}.identity-name{padding-left:10px;font-size:11px}.identity-name small{font-size:7px;letter-spacing:.4px}.nav-orbit{width:17px;margin:0}nav{padding:3px 5px}nav a,nav button{font-size:9px;padding:9px 10px;letter-spacing:.5px}.work-index{left:24px;bottom:31px;width:165px}.project-list button{font-size:11px;padding:7px 0;gap:12px}.project-list button small{font-size:7px}.project-list button i{font-size:12px}.index-heading{font-size:8px;margin-bottom:8px}dialog{width:calc(100% - 22px);max-height:90dvh;border-radius:19px}.dialog-toolbar{height:55px;padding:0 19px}.case-content{padding:27px 22px 29px}.case-content h2{font-size:32px}.case-lead{font-size:13px}.case-stack>span{font-size:8px}.case-summary li{font-size:11px}.demo-box{padding:15px}.moments{grid-template-columns:1fr}.contact-link{font-size:13px;padding:16px}.demo-top>span{font-size:7px}.demo-top h3{font-size:12px}.demo-choices button{font-size:9px;padding:8px}.resume-contact{font-size:10px;gap:14px}}
@media(max-width:360px){.identity-name{display:none}.site-header{left:20px;right:20px}.work-index{left:20px}}
@media(max-height:450px){.site-header{top:19px;left:25px;right:25px}.identity-mark{font-size:23px}.work-index{left:27px;bottom:20px}.project-list{gap:0}.project-list button{padding:4px 0}.index-heading{margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}


/* Transparent controls follow the same projected plane as the physical glass. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#focus-surface{position:fixed;left:0;top:0;z-index:6;transform-origin:0 0;pointer-events:none;opacity:0;will-change:transform;backface-visibility:hidden;isolation:isolate}
#focus-surface[hidden],#focus-surface [hidden]{display:none!important}
.focus-heading{position:absolute;left:6.2%;top:5.8%;text-shadow:0 2px 12px #000a;pointer-events:none}
.focus-heading h2{font-size:32px;font-weight:400;letter-spacing:3px;color:#e1edef;line-height:1.4}.focus-heading p{font-size:16px;letter-spacing:1px;color:#b1c8cf;margin-top:7px;line-height:1.6}
.focus-sources{position:absolute;left:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);pointer-events:none;opacity:0}
.focus-sources>*{width:1px;height:1px}
.focus-footer{position:absolute;left:6.2%;right:6.2%;bottom:4.7%;display:flex;align-items:center;justify-content:flex-end;gap:16px}
.focus-notice{position:absolute;left:15%;right:15%;top:42%;text-align:center;line-height:1.8;font-size:18px;color:#d2e0e4;text-shadow:0 2px 10px #000}
.site-header,.work-index{transition:opacity .6s var(--ease)}body.inspecting .work-index{opacity:.6}body.inspecting .site-header{opacity:.8}
body.inspecting .project-list button[aria-pressed=true]{color:#f4ffff}
#focus-surface.focus-fallback{left:5%;top:15%;width:90%!important;height:70%!important;transform:none!important;border:1px solid #b4d8dc55;border-radius:22px;background:#101b26ed;backdrop-filter:blur(20px)}
.focus-fallback .focus-sources{left:3%;top:5%;width:94%;height:83%;clip-path:none;opacity:1;display:grid;place-items:center}.focus-fallback .focus-sources>*{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:brightness(1.25) contrast(1.06);border-radius:28px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

@media(max-width:600px){body.inspecting .work-index{opacity:0;pointer-events:none}}

@media(max-aspect-ratio:4/5){body.inspecting .work-index{opacity:0;pointer-events:none}}
#focus-surface:focus{outline:none}
.focus-website{display:flex;align-items:center;justify-content:center;min-height:44px;white-space:nowrap;color:#dcecef;font-size:16px;letter-spacing:.6px;text-shadow:0 1px 8px #0008}
.focus-website:hover{color:#fff}
.focus-mobile .focus-heading{top:5.5%}.focus-mobile .focus-heading h2{font-size:36px}.focus-mobile .focus-heading p{font-size:22px;letter-spacing:.2px}
.focus-mobile .focus-footer{bottom:4.4%}.focus-mobile .focus-website{font-size:24px;min-height:var(--focus-hit,76px);min-width:var(--focus-hit,76px)}.focus-mobile .focus-notice{font-size:24px}
