/* Fixed-size painted textures animate through transform/opacity only. No background RAF. */
html,body{overflow-x:clip}body{position:relative;isolation:isolate}
.world-grid{contain:strict;overflow:hidden;animation:none;background-size:auto,150px 150px,150px 150px}
.world-grid::before,.world-grid::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 30% 35%,#2c65733d,transparent 60%);transform:scale(1.18);animation:ambient-drift 24s ease-in-out infinite alternate;will-change:transform}
.world-grid::after{background:radial-gradient(ellipse at 75% 70%,#6557812b,transparent 56%);animation-duration:31s;animation-direction:alternate-reverse}
.pointer-light{position:absolute;left:0;top:0;width:480px;height:480px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#6bbedc20,transparent 65%);opacity:.8;will-change:transform}
.world-vignette{box-shadow:inset 0 0 14vw #03060c66}
.hero::after{background:radial-gradient(ellipse at 50% 65%,transparent 30%,#02060c33 100%)}
.demo-section{background:#080d14b8}.vision,.contact{isolation:isolate;overflow:hidden}
.vision::after,.contact::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 40% 30%,#6b9fa52d,transparent 60%);animation:ambient-drift 26s ease-in-out infinite alternate}
@keyframes ambient-drift{from{transform:translate3d(-4%,-3%,0) scale(1.18)}to{transform:translate3d(5%,4%,0) scale(1.18)}}
/* Independent image stages preserve source proportions inside the scroll reveal. */
.service-media{height:clamp(340px,36vw,620px);border:0;background:radial-gradient(ellipse at 48% 45%,#27445588,#0b131b00 70%);overflow:visible;perspective:1300px;isolation:isolate}
.service-media::before{content:'';position:absolute;inset:9% 0;border:1px solid #709bb61a;background:linear-gradient(140deg,#172d3b35,transparent);transform:rotate(-5deg);pointer-events:none;z-index:-1;transition:border-color .6s,transform 1s}
.service:nth-child(even) .service-media::before{transform:rotate(5deg)}
.service-media::after,.film-thumb::after{content:'';position:absolute;inset:0;z-index:5;pointer-events:none;background:radial-gradient(ellipse at var(--spot-x,50%) var(--spot-y,50%),#d1efff30,transparent 57%);opacity:0;transition:opacity .6s;mix-blend-mode:screen}
.service-media.has-pointer::after,.film-thumb.has-pointer::after{opacity:1}
.service-media.has-pointer::before{border-color:#8ed6d55e;transform:rotate(0)}
.service-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d;will-change:auto}
.service-media .service-stage img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.service-browser{position:absolute;left:0;top:15%;width:92%;height:auto;background:#14222d;border:1px solid #8ab1bf50;box-shadow:0 32px 70px #0008;overflow:hidden;border-radius:8px}
.service-browser-bar{height:25px;padding:0 10px;display:flex;align-items:center;gap:5px;background:#15252f;direction:ltr}
.service-browser-bar i{width:4px;height:4px;border-radius:50%;background:#608292}
.service-browser-bar i:nth-child(2){background:#8eb4af}.service-browser-bar i:nth-child(3){background:#a6b6bb}
.service-browser-bar span{font:6px Inter,Arial,sans-serif;letter-spacing:1px;color:#91a8b5;margin:auto;padding-right:25px}
.service-media .service-browser>img{height:auto;aspect-ratio:1265/712;object-fit:contain;background:#0b151d}
.service-phone{position:absolute;right:0;bottom:2%;width:23%;height:72%;padding:4px;border:1px solid #8faab8;background:#07121a;border-radius:17px;box-shadow:-16px 20px 50px #000a;transform:translateZ(55px) rotate(6deg);overflow:hidden}
.service-media .service-phone img{border-radius:12px;object-fit:contain;background:#06151e}
.spatial-stage .service-browser{top:14%;width:100%}.service-media .spatial-stage .service-browser>img{aspect-ratio:1454/659}
.service-inset{position:absolute;bottom:3%;right:5%;width:48%;height:44%;border:1px solid #aac5ce70;background:#07121c;padding:5px;box-shadow:0 22px 55px #000a;transform:translateZ(65px) rotate(-6deg);border-radius:6px}
.service-media .analytics-stage>img,.service-media .infrastructure-stage>img{width:97%;height:90%;filter:none}
.film-thumb{position:relative;perspective:1200px}.film-thumb img{transform-origin:50% 50%}
.service-tags{align-self:end;padding-bottom:0;position:relative;z-index:2}.expertise .service{gap:6vw;min-height:76svh}
.service>div:first-of-type{padding-bottom:45px}.service-media .service-stage{padding:0}
@media(min-width:801px){.hero .hero-art canvas{cursor:grab}.hero .hero-art canvas:active{cursor:grabbing}}
@media(max-width:1100px){.service-media{height:360px}.expertise .service{min-height:620px}.service-tags{padding-bottom:10px}}
@media(max-width:800px){.expertise .service{min-height:0;gap:28px}.service-media,.service:nth-child(even) .service-media{height:clamp(260px,62vw,440px);max-height:none;max-width:640px;margin-inline:auto}.service>div:first-of-type{padding-bottom:0}.service-tags{padding-bottom:0}.service-phone{bottom:0}.service-browser-bar{height:21px}.service-inset{bottom:1%}.ambient-flow{opacity:.7}}
@media(max-width:520px){.service-media,.service:nth-child(even) .service-media{height:255px}.service-browser{top:15%}.service-phone{height:70%;width:24%;border-radius:12px}.service-media .service-phone img{border-radius:8px}.service-inset{bottom:4%}.service-browser-bar span{font-size:5px}.service-browser-bar{height:18px}.hero .scene-experience .art-top{width:150px}}
@media(prefers-reduced-motion:reduce){.world-grid,.world-grid::before,.world-grid::after,.vision::after,.contact::after{animation:none}.service-stage{will-change:auto}.service-media::after,.film-thumb::after{display:none}}
.ambient-paused .world-grid,.ambient-paused .world-grid::before,.ambient-paused .world-grid::after,.ambient-paused .vision::after,.ambient-paused .contact::after{animation-play-state:paused}
/* Solid glyphs with safe ink spacing: no clipping, masks or transparent letter fills. */
.signature{display:inline-flex;align-items:baseline;direction:ltr!important;white-space:nowrap;line-height:1.25;letter-spacing:0!important;position:relative;isolation:isolate;color:#e0ebee}
.signature-letter{display:inline-block;position:relative;padding:0 .025em;margin:0 -.008em;font-family:Inter,Arial,sans-serif!important;font-size:1em!important;font-weight:700;font-style:normal;letter-spacing:-.045em!important;color:inherit!important;background:none!important;-webkit-text-stroke:0!important;animation:none!important;transform:none;transition:transform .45s ease,color .45s ease;overflow:visible}
.signature .letter-0::after{display:none}
.signature .letter-1{color:#afd8d8!important;margin-right:.015em}
.signature .letter-2,.signature .letter-3{font-style:italic}
.signature .letter-4,.signature .letter-5{letter-spacing:-.055em!important}
.signature .letter-6{margin-left:.015em}
.signature::after{content:'';position:absolute;bottom:.035em;left:.06em;width:.5em;height:1px;background:#afdbd5;transform-origin:left;animation:signature-line 6s ease-in-out infinite}
@keyframes signature-line{0%,100%{transform:scaleX(.3);opacity:.35}50%{transform:scaleX(1);opacity:.9}}
.brand .signature{font-size:27px}.footer-brand .signature{font-size:18vw}
.brand:hover .signature-letter,.footer-brand:hover .signature-letter{transform:translateY(-.035em)}
.brand:hover .letter-1,.footer-brand:hover .letter-1{transform:translateY(.025em)}
.hero-title-wrap{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:94%;z-index:4;text-align:center;pointer-events:none}
.hero .hero-copy h1,html[dir=rtl] .hero .hero-copy h1{position:relative;top:auto;left:auto;right:auto;width:auto;max-width:100%;margin:0;transform:none;font:700 clamp(56px,18vw,340px)/1.25 Inter,Arial,sans-serif;letter-spacing:0;mix-blend-mode:normal;color:#e0ebee;z-index:auto}
.hero h1 .signature{padding:.08em .08em .13em;overflow:visible}
.hero h1 .signature::after{height:2px;bottom:.12em;left:.15em}
.hero h1 .title-line.accent{display:none}
.is-light-scene .site-header .signature{color:#1e3b35}
.is-light-scene .site-header .signature .letter-1{color:#517b6d!important}
.service-media.has-pointer .service-stage{will-change:transform}
.site-header{backdrop-filter:none!important}
/* Clearly visible side arrows share the native scroll position with the gallery. */
.work .orbit-navigation{position:absolute;display:block;inset:0;z-index:8;pointer-events:none;direction:ltr}
.work .orbit-navigation button{position:absolute;top:48%;transform:translateY(-50%);width:48px;height:48px;border:1px solid #b9d6dd88;border-radius:50%;background:#0b1824e8;color:#e0eff0;font:24px/1 Inter,Arial,sans-serif;pointer-events:auto;transition:background .2s,opacity .2s;box-shadow:0 5px 18px #0004}
.work .orbit-prev{left:4vw}.work .orbit-next{right:4vw}
.work .orbit-navigation button:hover:not(:disabled){background:#c9dfda;color:#12232b}
.work .orbit-navigation button:disabled{opacity:.28}
.work .orbit-count{position:absolute;right:7vw;bottom:80px;font-size:10px;letter-spacing:3px}
.work:not(.orbit-mode){overflow:clip}.work:not(.orbit-mode) .work-list{grid-template-columns:1fr}
.work:not(.orbit-mode) .orbit-navigation{position:sticky;top:88px;inset-inline:auto;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;margin-bottom:30px;background:#0b1420f5;border:1px solid #7896a43b;pointer-events:auto}
.work:not(.orbit-mode) .orbit-navigation button{position:static;transform:none;width:38px;height:38px;font-size:21px}
.work:not(.orbit-mode) .orbit-count{position:static;font-size:10px}
@media(max-width:800px){.brand .signature{font-size:25px}.hero-title-wrap{top:41%;width:96%}.hero .hero-copy h1,html[dir=rtl] .hero .hero-copy h1{font-size:18vw}.site-header{background:#080b11f0}.is-light-scene .site-header{background:#e0ebe4f5}.pointer-light{width:320px;height:320px}}
@media(max-width:520px){.hero-title-wrap{top:27%}.brand .signature{font-size:24px}.hero .hero-copy h1,html[dir=rtl] .hero .hero-copy h1{font-size:19vw}.hero h1 .signature{padding-inline:.04em}}
@media(prefers-reduced-motion:reduce){.world-grid::before,.world-grid::after,.vision::after,.contact::after,.signature::after{animation:none}.pointer-light{display:none}.signature-letter{transition:none}}
.ambient-paused .world-grid::before,.ambient-paused .world-grid::after,.ambient-paused .vision::after,.ambient-paused .contact::after,.ambient-paused .signature::after{animation-play-state:paused}

/* Native sticky scene: its document coordinates remain stable in both directions. */
.work-stage{display:contents}
.work.orbit-mode{padding:0;overflow:visible;min-height:0}
.work.orbit-mode .work-stage{display:block;position:sticky;top:0;height:100svh;min-height:640px;overflow:hidden;isolation:isolate}
.work .orbit-navigation button{touch-action:manipulation}
.hero .orb-viewport{position:absolute;left:50%;top:50%;width:min(96svh,96vw);height:min(96svh,96vw);transform:translate(-50%,-50%);pointer-events:auto}
.hero .orb-viewport canvas{position:absolute;inset:0!important;width:100%!important;height:100%!important;display:block}
@media(max-width:520px){.hero .orb-viewport{top:48%;width:96vw;height:96vw}}
