/* Full-viewport object scene. Project pages retain their established layout. */
@font-face{font-family:Orbit Mono;src:url('/orbit-assets/vcr-osd-mono.woff2') format('woff2');font-display:swap}
.portfolio-home{background:#171717}.portfolio-home main{background:var(--paper)}
.studio-navigation.orbit-navigation{top:8px;left:8px;width:calc(100% - 16px);padding:20px 30px;background:transparent;border:0;backdrop-filter:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;min-height:84px;gap:20px;color:#eee}
.orbit-wordmark{display:flex;flex-direction:column;justify-self:start;font-size:22px;line-height:.85;font-weight:750;letter-spacing:-.07em;padding-top:2px}.orbit-wordmark>span{display:flex;align-items:center;gap:4px}.orbit-wordmark>span+span{margin-top:3px}.orbit-wordmark i{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.orbit-search{position:relative;width:clamp(240px,17vw,340px);height:44px;display:flex;align-items:center;gap:8px;border:1.5px solid #929292;border-radius:40px;background:#050505c9;color:#bbb;box-shadow:0 0 0 1px #ffffff15}
.orbit-search input{color:#ddd;font:14px/1.2 var(--body);min-width:0;width:100%;padding:11px 0 11px 18px;border:0;border-radius:40px;background:transparent;outline:none;box-shadow:none;appearance:none}.orbit-search input::placeholder{color:#868686}.orbit-search input::-webkit-search-cancel-button{cursor:pointer}.orbit-search:focus-within{border-color:#f1f1f1;box-shadow:0 0 0 2px #fff2}.orbit-search button{width:35px;height:35px;padding:8px;border:0;border-radius:50%;color:#a9a9a9;background:transparent;cursor:pointer;flex:none;margin-right:4px}.orbit-search button:hover{background:#ffffff17;color:#fff}.orbit-search svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.orbit-search-results{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);width:max(100%,350px);padding:14px 0 8px;border:1px solid #3a3a3a;background:#0a0a0aed;backdrop-filter:blur(20px);border-radius:16px;box-shadow:0 18px 44px #0006;color:#eee;max-height:70svh;overflow-y:auto}.orbit-search-results ul{padding:0;margin:0;list-style:none}.orbit-search-results a{display:flex;justify-content:space-between;gap:20px;padding:14px 20px;font-size:14px}.orbit-search-results a:hover,.orbit-search-results a:focus-visible{color:#fff;background:#ffffff15}.orbit-search-results b{font-weight:400;color:#888}.orbit-search-caption{font-size:12px;line-height:1.5;color:#888;padding:0 20px;margin:0 0 8px}.orbit-search-empty{font-size:14px;padding:12px 20px;line-height:1.8;margin:0;color:#ccc}
.orbit-navigation .orbit-menu{justify-self:end;margin-top:4px}.orbit-navigation .orbit-menu summary{border:1px solid #ffffff13;background:#151515c9;border-radius:35px;gap:10px;padding:9px 16px;font:12px/1.1 var(--body);color:#dedede}.orbit-navigation .orbit-menu summary>span{font-size:17px;line-height:.8}.orbit-navigation .orbit-menu nav{border-color:#353535;background:#111;color:#eee;border-radius:12px;overflow:hidden;min-width:230px;font-size:15px;box-shadow:0 15px 40px #0008}.orbit-navigation .orbit-menu nav a{border-color:#2b2b2b;display:flex;justify-content:space-between;gap:30px;padding:18px 22px}.orbit-navigation .orbit-menu nav a:hover{background:#222;color:#fff}.orbit-menu nav a>span{font:12px var(--mono);color:#777}
.studio-navigation.orbit-navigation.on-light{top:0;left:0;width:100%;background:#f6f6f6f5;color:#111;align-items:center;padding-block:15px;backdrop-filter:blur(15px);border-bottom:1px solid #d9d9d9}.orbit-navigation.on-light .orbit-search{background:#f0f0f0;border-color:#bbb;box-shadow:none}.orbit-navigation.on-light .orbit-search input{color:#222}.orbit-navigation.on-light .orbit-search button{color:#555}.orbit-navigation.on-light .orbit-search:focus-within{border-color:#555}.orbit-navigation.on-light .orbit-menu{margin-top:0}.orbit-navigation.on-light .orbit-menu summary{background:#eee;color:#222;border-color:#ddd}
.studio-hero.studio-orbit-hero{height:calc(100svh - 16px);min-height:640px;max-height:none;margin:8px 8px 0;background:#000;color:#eee;isolation:isolate;overflow:hidden;position:relative}
.orbit-stage{position:absolute;inset:0;overflow:hidden}.orbit-particles{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.orbit-objects{position:absolute;inset:0;z-index:2;transform:translate(var(--scene-x,0px),var(--scene-y,0px));transition:transform 1.2s cubic-bezier(.16,.65,.22,1);pointer-events:none}
.orbit-object{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:clamp(70px,calc(var(--size)*.078vw),390px);aspect-ratio:1;transform:translate(-50%,-50%) rotate(var(--turn));display:block;pointer-events:auto;outline-offset:2px;z-index:2;isolation:isolate}.orbit-object-drift{display:block;width:100%;height:100%;animation:orbit-drift var(--duration) ease-in-out var(--delay) infinite alternate;will-change:transform}.orbit-object img{width:100%;height:100%;object-fit:contain;display:block;filter:brightness(.82);transition:filter .35s,scale .4s}.orbit-object:hover{z-index:5}.orbit-object:hover img,.orbit-object:focus-visible img{filter:brightness(1.1);scale:1.035}.orbit-object-back{opacity:.27;filter:blur(.6px);z-index:0}.orbit-object-edge{opacity:.58}.orbit-object-low{opacity:.62}.orbit-object-label{position:absolute;left:50%;bottom:0;transform:translate(-50%,12px) rotate(calc(var(--turn)*-1));white-space:nowrap;font:13px/1.4 var(--body);background:#181818e8;color:#fff;border:1px solid #555;border-radius:40px;padding:9px 13px;opacity:0;transition:opacity .2s,translate .2s;pointer-events:none;box-shadow:0 5px 30px #0008}.orbit-object-label b{margin-left:12px;font-weight:400}.orbit-object:hover .orbit-object-label,.orbit-object:focus-visible .orbit-object-label{opacity:1;translate:0 -5px}.orbit-coordinates{position:absolute;bottom:0;left:50%;white-space:nowrap;transform:translateX(-50%);font:9px var(--mono);color:#7a7a7a;letter-spacing:.02em;pointer-events:none}.orbit-object:hover .orbit-coordinates{opacity:0}
.orbit-sculpture{width:100%;height:100%;display:block;filter:brightness(.87) drop-shadow(12px 18px 8px #0009)}.orbit-spring{width:80%;height:90%;margin:0 auto;position:relative;transform:rotate(-3deg)}.orbit-spring i{position:absolute;width:85%;height:17%;border:5px solid #d5d5d5;border-top-color:#fbfbfb;border-bottom-color:#707070;border-left-color:#b4b4b4;border-radius:50%;top:calc(var(--ring)*7.8%);left:calc(var(--ring)*1%);transform:skewY(-8deg);box-shadow:1px 1px 1px #555,inset 0 1px 1px #fff6}.orbit-spring b{position:absolute;top:69%;left:9%;width:85%;height:25%;background:linear-gradient(90deg,#b1b1b1,#e7e7e7 47%,#999);border-radius:0 0 48% 40%;transform:skewY(-8deg);box-shadow:inset 0 -5px 8px #777}.orbit-loop{position:relative;margin:5% 15%;width:67%;height:88%;transform:rotate(20deg);border:22px solid #e6a323;border-left-color:#ffd167;border-right-color:#9d6415;border-bottom-color:#bf7c16;border-radius:49% 51% 50% 50%;box-shadow:inset 7px 0 9px #080706,6px 0 7px #0009,inset 0 0 2px #ffcf68;background:transparent}.orbit-loop::before,.orbit-loop::after{content:"";position:absolute;width:25px;height:32px;background:linear-gradient(90deg,#5b5b5b,#eee 50%,#9a9a9a);border-radius:5px;left:-24px;top:27%;transform:rotate(-25deg)}.orbit-loop::after{left:auto;right:-25px;top:auto;bottom:24%;transform:rotate(25deg)}
.orbit-introduction{position:absolute;left:30px;bottom:43px;z-index:4;width:fit-content;max-width:57%;pointer-events:none}.orbit-introduction::before{content:"";position:absolute;z-index:-1;inset:-70px -65px -50px -35px;background:radial-gradient(ellipse at 25% 78%,#000 20%,#000d 44%,transparent 76%);pointer-events:none}.orbit-introduction h1{font-family:var(--body);font-size:clamp(27px,2.18vw,45px);font-weight:750;line-height:1.42;letter-spacing:-.045em;margin:0 0 24px}.orbit-introduction>p{font:12px/1.5 var(--mono);color:#929292;letter-spacing:-.025em;margin:0}
.orbit-motion-paused .orbit-object-drift{animation-play-state:paused}.orbit-motion-paused .orbit-objects{transform:none}.orbit-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes orbit-drift{from{transform:translate3d(-5px,9px,0) rotate(-2deg)}to{transform:translate3d(7px,-12px,0) rotate(3deg)}}
@media(min-width:1900px){.orbit-object{width:calc(var(--size)*.071vw)}.orbit-introduction{left:36px;bottom:54px}.orbit-navigation{padding-inline:36px}}
@media(max-width:1000px){.orbit-introduction{max-width:72%;bottom:48px}.orbit-introduction h1{font-size:clamp(26px,3.1vw,34px)}.orbit-object{width:calc(var(--size)*.10vw)}.orbit-object-7{left:21%}.orbit-object-12{left:28%;top:71%}.orbit-object-10{left:81%}.orbit-search{width:280px}}
@media(max-width:700px){.studio-navigation.orbit-navigation{top:5px;left:5px;width:calc(100% - 10px);padding:17px 14px;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;min-height:70px}.orbit-wordmark{font-size:18px}.orbit-wordmark i{width:6px;height:6px}.orbit-search{width:clamp(138px,39vw,265px);height:36px}.orbit-search input{font-size:12px;padding:9px 0 9px 12px}.orbit-search button{width:27px;height:27px;padding:5px;margin-right:3px}.orbit-search svg{width:16px;height:16px}.orbit-navigation .orbit-menu{margin:0}.orbit-navigation .orbit-menu summary{padding:8px 10px;font-size:10px;gap:5px}.orbit-navigation .orbit-menu summary>span{font-size:14px}.orbit-navigation .orbit-menu nav{display:flex;gap:0;width:230px;padding:0;font-size:14px;border:1px solid #353535}.orbit-search-results{width:min(350px,calc(100vw - 38px));margin-top:8px}.studio-navigation.orbit-navigation.on-light{padding-inline:18px}.studio-hero.studio-orbit-hero{margin:5px 5px 0;height:calc(100svh - 10px);min-height:670px}.orbit-object{width:calc(var(--size)*.15vw)}.orbit-object-1{left:10%;top:19%;opacity:.35}.orbit-object-2{left:41%;top:11%;width:130px}.orbit-object-3{left:83%;top:20%;width:130px}.orbit-object-4{left:55%;top:29%;width:85px}.orbit-object-5{left:90%;top:40%;width:110px}.orbit-object-6{left:23%;top:34%;width:90px}.orbit-object-7{left:10%;top:51%;width:145px}.orbit-object-8{left:104%;top:66%;width:180px}.orbit-object-9{left:45%;top:49%;width:80px}.orbit-object-10{left:83%;top:60%;width:90px}.orbit-object-11{left:59%;top:70%;width:110px}.orbit-object-12,.orbit-object-13{display:none}.orbit-coordinates{font-size:7px}.orbit-introduction{left:18px;bottom:47px;max-width:calc(100% - 36px)}.orbit-introduction h1{font-size:clamp(22px,4.7vw,32px);line-height:1.5;margin-bottom:20px}.orbit-introduction>p{font-size:10px}.orbit-introduction::before{inset:-55px -15px -50px -20px;background:linear-gradient(0deg,#000 42%,#000a 65%,transparent)}.orbit-spring i{border-width:4px}.orbit-loop{border-width:16px}.orbit-loop::before,.orbit-loop::after{width:19px;height:25px;left:-18px}.orbit-loop::after{left:auto;right:-18px}}
@media(prefers-reduced-motion:reduce){.orbit-object-drift{animation:none}.orbit-objects{transform:none;transition:none}.orbit-object img{transition:none}}
.studio-hero.studio-orbit-hero{box-shadow:0 0 0 8px #171717}.orbit-objects{mix-blend-mode:screen}
.orbit-scene-asleep .orbit-object-drift{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.orbit-motion-active .orbit-object-drift{animation:orbit-drift var(--duration) ease-in-out var(--delay) infinite alternate!important}.orbit-motion-active.orbit-scene-asleep .orbit-object-drift{animation-play-state:paused!important}}
.orbit-scroll-track{position:relative;background:#000;margin:0;height:auto}.orbit-scroll-track.orbit-scroll-enabled{height:300lvh}.orbit-scroll-track .studio-hero.studio-orbit-hero{margin:0;min-height:0;height:100vh;height:100lvh;position:relative;z-index:3;box-shadow:none}.orbit-scroll-track .studio-hero.studio-orbit-hero::after{content:"";position:absolute;inset:0;border:8px solid #171717;pointer-events:none;z-index:8}/* Keep the complete content surface above the pinned hero and its frame. */
.portfolio-home .studio-content{display:flow-root;position:relative;z-index:4;background:var(--paper)}

.orbit-webgl-ready .orbit-particles{opacity:1}.orbit-webgl-ready .orbit-objects{display:none}.orbit-over-project{cursor:pointer}.orbit-webgl-tooltip{position:absolute;z-index:6;pointer-events:none;padding:9px 15px;border:1px solid #555;border-radius:40px;color:#f2f2f2;background:#181818e8;white-space:nowrap;font-size:13px;max-width:calc(100% - 24px)}
/* Lenis owns smooth scrolling while mounted, including idle and history restoration. */
html.lenis,html.lenis body{height:auto}html.lenis{scroll-behavior:auto!important}.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis-smooth iframe{pointer-events:none}
@media(max-width:700px){.orbit-scroll-track .studio-hero.studio-orbit-hero::after{border-width:5px}}
@media(prefers-reduced-motion:reduce){.orbit-scroll-track.orbit-scroll-enabled{height:auto}}

.orbit-entry{display:none;background:#000;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;pointer-events:auto}
.orbit-entry-pending .orbit-entry{display:flex}.orbit-entry-pending{overflow:hidden}
.orbit-entry canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.orbit-entry-vertical,.orbit-entry-horizontal{position:absolute;z-index:1;pointer-events:none;background:#111114}
.orbit-entry-vertical{width:1px;top:0;bottom:0;left:12.5%}.orbit-entry-vertical:nth-of-type(3){left:25%}.orbit-entry-vertical:nth-of-type(4){left:75%}.orbit-entry-vertical:nth-of-type(5){left:87.5%}
.orbit-entry-horizontal{height:1px;left:0;right:0;top:12.5%}.orbit-entry-horizontal:last-child{top:87.5%}
.orbit-entry-label{position:relative;z-index:3;padding:16px 24px 16px 36px;color:#f6f6f6;font:18px/32px 'Orbit Mono',var(--mono);text-transform:uppercase;white-space:nowrap}
.orbit-entry-label>span{opacity:0}.orbit-entry-label>i{position:absolute;width:10px;height:10px;top:-5px;left:-5px;opacity:0}
.orbit-entry-label>i::before,.orbit-entry-label>i::after{content:"";position:absolute;background:#565658;inset:4.5px 0}.orbit-entry-label>i::after{inset:0 4.5px}
.orbit-entry-label>i:nth-of-type(2){left:auto;right:-5px}.orbit-entry-label>i:nth-of-type(3){top:auto;bottom:-5px}.orbit-entry-label>i:nth-of-type(4){top:auto;bottom:-5px;left:auto;right:-5px}
.orbit-entry-dot{position:absolute;left:calc(50% - 3.5px);top:calc(50% - 3.5px);width:7px;height:7px;border-radius:50%;background:#f6f6f6;z-index:3}
.orbit-entry-pending .orbit-introduction{opacity:1}.orbit-line{display:block;overflow:hidden}.orbit-line-inner{display:block}.orbit-introduction h1 .orbit-line,.orbit-introduction h1 .orbit-line-inner{color:inherit}
.orbit-curtains{display:grid;grid-template-columns:24px repeat(4,minmax(0,1fr)) 24px;align-items:end;position:absolute;inset:0;z-index:7;pointer-events:none}.orbit-curtains i{height:0;background:var(--paper);display:block;border-left:1px solid #dedede}.orbit-curtains i:first-child{border:0}
@media(max-width:700px){.orbit-curtains{grid-template-columns:12px repeat(4,minmax(0,1fr)) 12px}}
@media(prefers-reduced-motion:reduce){.orbit-entry{display:none!important}.orbit-entry-pending{overflow:auto}.orbit-curtains{display:none}.orbit-line-inner{transform:none!important}}
