/* CLMS 03.1 — cinematic light, physical depth, purposeful interaction. */
.intro-trigger{display:flex;align-items:center;gap:8px;font:10px var(--mono);color:var(--cyan);padding:10px 0;white-space:nowrap}.intro-trigger i{width:13px;height:13px;border:1px solid #7cddeb;border-radius:50%;position:relative}.intro-trigger i:after{content:'';position:absolute;border-left:3px solid var(--cyan);border-top:2px solid transparent;border-bottom:2px solid transparent;left:5px;top:4px}.motion-toggle{font:9px var(--mono);color:var(--cyan);padding:10px 0}.motion-toggle:before{content:'Ⅱ';display:inline-block;margin-right:9px}.motion-toggle[aria-pressed=true]:before{content:'▷'}.scroll-progress{position:fixed;inset:0 auto auto 0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#325c6d,#70e2ed);z-index:45;pointer-events:none}.header-tools{gap:18px}.header{transition:border-color .4s,background .4s}.desktop-nav a:before{content:'';position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--cyan);transform:scaleX(0);transform-origin:left;transition:transform .3s}.desktop-nav a:hover:before{transform:scaleX(1)}
/* Image and light share one coordinate plane; processor position is fitted in JS. */
.hero-world{--scene-position-x:62%;--scene-position-y:0%;position:absolute;inset:0 0 180px;z-index:-3;transform:translate3d(var(--world-x,0px),var(--world-y,0px),0) scale(1.025);transform-origin:75% 40%;pointer-events:none;will-change:transform;overflow:hidden}.hero-world .hero-image{inset:0;z-index:0;height:auto;opacity:1;background-position:var(--scene-position-x) var(--scene-position-y);background-size:cover}.hero-raster{opacity:.19}.processor-light{position:absolute;left:var(--core-x,76%);top:var(--core-y,42%);width:var(--core-size,40px);height:var(--core-size,40px);transform:translate(-50%,-50%);z-index:1;mix-blend-mode:screen}.processor-light i{position:absolute;pointer-events:none}.core-bloom{inset:-150%;border-radius:50%;background:radial-gradient(ellipse,#c6ffffae 0,#75e5ff88 9%,#2fceff38 30%,transparent 70%);opacity:.45;filter:blur(2px)}.core-flare{left:-210%;right:-210%;height:2px;top:50%;background:linear-gradient(90deg,transparent,#53d4ff90,#eaffff,#53d4ff90,transparent);box-shadow:0 0 12px #53ceff,0 0 30px #53ceff77;opacity:.35;transform:rotate(-12deg)}.core-ring{inset:-75%;border-radius:50%;border:1px solid #6cdcf06b;transform:rotateY(30deg) rotateZ(-20deg)}.ring-two{inset:-170%;border-style:dashed;border-color:#6cdcf034}.ring-three{inset:-275%;border-color:#dcb97e26;border-left-color:#efb57a88}.energy-field{position:absolute;inset:0;width:100%;height:100%;z-index:2;opacity:.85;mix-blend-mode:screen}.lens-sweep{position:absolute;inset:0;z-index:1;background:linear-gradient(110deg,transparent 57%,#89dcff0a 60%,#a7e7ff12 61%,transparent 64%);opacity:0;transform:translateX(-20%);mix-blend-mode:screen}.motion-enabled .core-bloom{animation:core-breath 4.8s ease-in-out infinite}.motion-enabled .core-flare{animation:core-glint 7s ease-in-out infinite}.motion-enabled .ring-one{animation:processor-orbit 18s linear infinite}.motion-enabled .ring-two{animation:processor-orbit 30s linear reverse infinite}.motion-enabled .ring-three{animation:processor-orbit 44s linear infinite}.motion-enabled .lens-sweep{animation:surface-sweep 12s ease-in-out infinite}@keyframes core-breath{0%,100%{opacity:.25;scale:.88}50%{opacity:.75;scale:1.15}}@keyframes core-glint{0%,65%,100%{opacity:.18;scale:.7}76%{opacity:.8;scale:1.15}86%{opacity:.3;scale:1}}@keyframes processor-orbit{to{transform:rotateY(30deg) rotateZ(340deg)}}@keyframes surface-sweep{0%,65%,100%{opacity:0;transform:translateX(-25%)}80%{opacity:.8}95%{opacity:0;transform:translateX(25%)}}
/* Surface depth and cursor light: transforms never move an interactive hit target far. */
.gateways,.project-grid,.service-grid,.catalog-grid{perspective:1500px}.gateway,.project-card,.catalog-card,.service-card,.application-visual{position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .4s;isolation:isolate}.motion-enabled .pointer-engaged{transform:perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-5px);border-color:#73cbdda0}.gateway:after{background:radial-gradient(circle at var(--light-x,60%) var(--light-y,20%),#85ddff25,transparent 58%);transition:opacity .25s}.project-card:after,.catalog-card:after,.service-card:after,.application-visual:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(350px circle at var(--light-x,50%) var(--light-y,0%),#8de2f213,transparent 65%);opacity:0;transition:opacity .3s}.pointer-engaged:after{opacity:1}.gateway-copy{transform:translateZ(25px)}.gateway-top{transform:translateZ(18px)}.gateway>.object-scene{transform:translateZ(40px)}.gateway:hover>.object-scene{transform:translateZ(50px) translateY(-8px)}.gateway h2{max-width:100%;text-wrap:balance}.gateway .object,.catalog-art .object,.service-card .object{transition:translate .65s,filter .6s,box-shadow .6s}.motion-enabled .gateway:hover .object,.motion-enabled .catalog-card:hover .object{translate:0 -9px;filter:drop-shadow(0 8px 16px #79dcea20)}.motion-enabled .object-screen:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,transparent,#96e9f670,transparent);height:30%;animation:screen-trace 5s ease-in-out infinite;opacity:.6}.object-screen{overflow:hidden}.motion-enabled .object-dot{animation:indicator-breath 3.8s ease-in-out infinite}.motion-enabled .button:hover span{transform:translate(3px,-3px)}.button span{transition:transform .25s}.motion-enabled .application-chart i{transform-origin:bottom;animation:chart-build 1.1s both}.motion-enabled .application-chart i:nth-child(2){animation-delay:.12s}.motion-enabled .application-chart i:nth-child(3){animation-delay:.24s}.motion-enabled .application-chart i:nth-child(4){animation-delay:.36s}@keyframes screen-trace{0%,20%{transform:translateY(-120%);opacity:0}40%{opacity:.7}70%,100%{transform:translateY(400%);opacity:0}}@keyframes indicator-breath{0%,100%{filter:drop-shadow(0 0 0 #69e7ff)}50%{background:#89f0fa;filter:drop-shadow(0 0 6px #69e7ff)}}@keyframes chart-build{from{scale:1 0}to{scale:1 1}}
.motion-reveal{transition:opacity .8s var(--reveal-delay,0ms),transform .9s cubic-bezier(.2,.8,.2,1) var(--reveal-delay,0ms)}.motion-enabled .motion-reveal:not(.is-revealed){opacity:0;transform:translate3d(0,28px,0)}.motion-enabled.experience-ready .hero-heading>*{animation:hero-unfold 1s cubic-bezier(.2,.8,.2,1) both}.motion-enabled.experience-ready .hero-heading h1{animation-delay:.08s}.motion-enabled.experience-ready .hero-heading .hero-lead{animation-delay:.17s}.motion-enabled.experience-ready .hero-contact{animation-delay:.25s}.motion-enabled.experience-ready .page-heading>*{animation:hero-unfold .85s cubic-bezier(.2,.8,.2,1) both}.motion-enabled.experience-ready .page-heading h1{animation-delay:.08s}.motion-enabled.experience-ready .page-heading .lead{animation-delay:.17s}@keyframes hero-unfold{from{opacity:0;transform:translateY(24px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
/* Interactive exploded model, mapped to three practical areas of expertise. */
.system-experience{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;padding-block:100px 45px;align-items:center}.system-narrative h2{font-size:clamp(34px,3.6vw,58px);font-weight:500;letter-spacing:-.045em;line-height:1.1;margin:22px 0 32px}.system-tabs{border-top:1px solid var(--line)}.system-tabs button{display:flex;align-items:center;gap:22px;width:100%;border-bottom:1px solid var(--line);text-align:left;padding:18px 0;font-size:16px;color:var(--muted);transition:color .25s,padding .3s,background .3s}.system-tabs button>span{font:10px var(--mono);color:#7694a5}.system-tabs button>b{font-size:15px;margin-left:auto;font-weight:400;transition:transform .3s}.system-tabs button[aria-selected=true]{color:var(--cyan);padding-left:14px;background:linear-gradient(90deg,#42778b22,transparent)}.system-tabs button[aria-selected=true]>b{transform:rotate(45deg);color:var(--cyan)}.system-panels{min-height:145px;padding-top:23px}.system-panels p{font-size:14px;color:var(--muted);margin-bottom:20px;max-width:430px}.system-panels .button{padding:10px 17px;min-height:40px;font-size:11px}.assembly-stage{position:relative;min-height:520px;display:grid;place-items:center;perspective:1000px;isolation:isolate;border:1px solid #385465;background:radial-gradient(ellipse at 50% 50%,#22465750,transparent 65%),#0c1620;overflow:hidden}.assembly-stage:before,.assembly-stage:after{content:'';position:absolute;width:45px;height:45px;border-color:#6cb9d0;border-style:solid;z-index:5;pointer-events:none}.assembly-stage:before{left:0;top:0;border-width:1px 0 0 1px}.assembly-stage:after{right:0;bottom:0;border-width:0 1px 1px 0}.assembly-floor{position:absolute;width:650px;height:600px;top:18%;background:repeating-linear-gradient(90deg,transparent 0 39px,#8bb9c715 39px 40px),repeating-linear-gradient(0deg,transparent 0 39px,#8bb9c715 39px 40px);transform:rotateX(68deg) rotateZ(-28deg);mask-image:radial-gradient(ellipse,#000,transparent 65%)}.assembly{position:relative;width:235px;height:195px;transform-style:preserve-3d;transform:rotateX(56deg) rotateZ(-32deg);transition:transform 1.2s cubic-bezier(.2,.8,.2,1);margin-top:35px;translate:0 0}.assembly-layer{position:absolute;inset:0;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.2,.8,.2,1),opacity .8s,box-shadow .8s,border-color .8s;box-shadow:-3px 5px #213743,-6px 10px #112737,-12px 25px 40px #0009;border:1px solid #83aec0}.layer-cover{transform:translateZ(95px);background:linear-gradient(130deg,#889ea7,#2b4655 47%,#6a8795);opacity:.76}.layer-cover:before{content:'';position:absolute;inset:14px;border:1px solid #c0d6de50}.layer-cover>span{position:absolute;top:40px;left:40px;font:25px var(--mono);letter-spacing:.18em;color:#b6d5df}.layer-cover>i{position:absolute;left:43px;top:110px;width:148px;height:4px;background:#133342;box-shadow:0 9px #133342,0 18px #133342,0 27px #133342}.layer-cover>i+i{left:10px;top:10px;width:5px;height:5px;box-shadow:207px 0 #092432,0 166px #092432,207px 166px #092432}.layer-board{transform:translateZ(0px);background:repeating-linear-gradient(90deg,transparent 0 19px,#80d7e622 19px 20px),repeating-linear-gradient(0deg,transparent 0 19px,#80d7e622 19px 20px),#0d3142;border-color:#7ccfe1;box-shadow:-3px 5px #28596a,-6px 10px #123344,0 0 32px #64dcff24}.assembly-chip{position:absolute;inset:58px 78px;background:linear-gradient(125deg,#b6f3fc,#2481a3);border:4px solid #244a5e;box-shadow:0 0 0 6px #172e3c,0 0 0 8px #a5ddeb50,0 0 30px #51d5fb7c;transform:translateZ(8px)}.assembly-chip:after{content:'';position:absolute;inset:8px;border:1px solid #dafdff99;background:linear-gradient(120deg,#b8faff99,#3b9bbb)}.layer-board>b{position:absolute;width:22px;height:45px;background:#142530;border:1px solid #759aa8;right:20px;top:25px;box-shadow:-158px 94px #142530}.layer-base{transform:translateZ(-72px);background:linear-gradient(130deg,#233c4d,#091a29);border-color:#466375;opacity:.9}.layer-base>i{position:absolute;inset:25px;border:1px solid #4b6c7c;background:repeating-linear-gradient(90deg,transparent 0 10px,#78abbe18 10px 11px)}.assembly-ring{position:absolute;inset:-60px;border:1px solid #6fcade42;border-left-color:#9eefffaa;border-radius:50%;transform:translateZ(-90px);transition:transform 1s}.assembly-caption{position:absolute;bottom:23px;left:25px;right:25px;display:flex;justify-content:space-between;gap:15px;font:9px var(--mono);color:#8daab9;letter-spacing:.1em}.assembly-stage[data-system="0"] .assembly{transform:rotateX(50deg) rotateZ(-20deg)}.assembly-stage[data-system="0"] .layer-cover{transform:translateZ(160px);opacity:.22}.assembly-stage[data-system="0"] .layer-board{transform:translateZ(25px);box-shadow:-3px 5px #28596a,0 0 55px #64dcff50}.assembly-stage[data-system="0"] .layer-base{transform:translateZ(-85px);opacity:.35}.assembly-stage[data-system="2"] .assembly{transform:rotateX(65deg) rotateZ(-45deg)}.assembly-stage[data-system="2"] .layer-cover{transform:translateZ(12px);opacity:1}.assembly-stage[data-system="2"] .layer-board{transform:translateZ(0)}.assembly-stage[data-system="2"] .layer-base{transform:translateZ(-18px)}.motion-enabled .assembly{animation:assembly-hover 8s ease-in-out infinite}.motion-enabled .assembly-chip{animation:chip-luminance 4.8s ease-in-out infinite}.motion-enabled .assembly-ring{animation:assembly-ring 40s linear infinite}.motion-enabled .assembly-stage.pointer-engaged .assembly{rotate:1 1 0 var(--tilt-y,0deg)}@keyframes assembly-hover{0%,100%{translate:0 0}50%{translate:0 -13px}}@keyframes chip-luminance{0%,100%{filter:brightness(.85)}50%{filter:brightness(1.35)}}@keyframes assembly-ring{to{transform:translateZ(-90px) rotateZ(360deg)}}
/* Four-second entry sequence. The visible skip control works from the first frame. */
.boot{background:#050c14;padding:35px 4vw;overflow:hidden}.boot-top,.boot-bottom{position:relative;z-index:4}.boot-core{position:absolute;inset:0;gap:0;display:flex;flex-direction:column;justify-content:center;align-items:center;perspective:950px}.boot-horizon{position:absolute;inset:20% -30% -60%;background:repeating-linear-gradient(90deg,transparent 0 59px,#6bafc626 59px 60px),repeating-linear-gradient(0deg,transparent 0 59px,#6bafc626 59px 60px);transform:rotateX(68deg);mask-image:radial-gradient(ellipse,#000,transparent 65%);opacity:0}.boot.active .boot-horizon{animation:boot-horizon 2.8s ease forwards}.boot-emblem{display:flex;flex-direction:column;align-items:center;gap:30px;position:relative;z-index:2}.boot-emblem img{width:76px;filter:drop-shadow(0 0 25px #6bdcec66)}.boot-emblem strong{font-size:clamp(65px,11vw,150px);font-weight:500;letter-spacing:.12em;line-height:1;color:#e2f2f5;text-indent:.12em}.boot.active .boot-emblem{animation:emblem-assemble 1.5s cubic-bezier(.2,.8,.2,1) both}.boot-rings{position:absolute;top:50%;left:50%;width:440px;height:440px;transform:translate(-50%,-50%);opacity:.7}.boot-rings i{position:absolute;inset:0;border:1px solid #77cfdf3b;border-left-color:#9ddcea;border-radius:50%;animation:none;transform:rotateX(18deg)}.boot-rings i:nth-child(2){inset:32px;border-style:dashed;border-color:#82c7d550;transform:rotateX(30deg) rotateY(40deg)}.boot-rings i:nth-child(3){inset:-45px;border-color:#79b8cf13;border-bottom-color:#efb57a66}.boot-rings i:nth-child(4){inset:64px;border-color:#6eafc922;transform:rotateX(65deg)}.boot.active .boot-rings i{animation:boot-ring-assemble 3.4s cubic-bezier(.2,.7,.2,1) both}.boot.active .boot-rings i:nth-child(2){animation-delay:.15s;animation-direction:reverse}.boot.active .boot-rings i:nth-child(3){animation-delay:.3s}.boot-disciplines{display:flex;gap:25px;position:relative;z-index:3;margin-top:35px}.boot-disciplines span{font:10px var(--mono);letter-spacing:.1em;color:#a8d3de}.boot.active .boot-disciplines span{animation:boot-word .7s ease both;animation-delay:.65s}.boot.active .boot-disciplines span:nth-child(2){animation-delay:1.05s}.boot.active .boot-disciplines span:nth-child(3){animation-delay:1.45s}.boot-progress{animation-duration:3.4s;background:linear-gradient(90deg,#1a5679,#80e9f4)}.boot-bottom{margin-top:auto}.boot-bottom button{border:1px solid #608b9b;padding:12px 20px;min-height:44px}.boot-bottom button:hover{background:#284a5b}.boot.leaving{animation:boot-iris .85s cubic-bezier(.76,0,.2,1) forwards}.boot-phase{max-width:55%;line-height:1.8}.boot[data-phase="2"] .boot-emblem img{filter:drop-shadow(0 0 35px #90f0ff)}@keyframes boot-horizon{from{opacity:0;translate:0 100px}to{opacity:.7;translate:0 0}}@keyframes emblem-assemble{from{opacity:0;transform:translateZ(-250px) rotateY(25deg);filter:blur(12px)}to{opacity:1;transform:translateZ(0) rotateY(0);filter:blur(0)}}@keyframes boot-ring-assemble{0%{opacity:0;scale:.6;rotate:-80deg}30%{opacity:.75}100%{opacity:.55;scale:1;rotate:60deg}}@keyframes boot-word{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes boot-iris{to{clip-path:inset(0 0 100% 0);filter:brightness(1.3)}}
/* Five offset mechanical shutters: close 520 ms, reveal 760 ms. */
.page-wipe{transform:none;background:none;visibility:hidden;pointer-events:none}.page-wipe.closing,.page-wipe.opening{visibility:visible;pointer-events:auto}.wipe-panels{position:absolute;inset:0;display:flex;perspective:1000px}.wipe-panels i{flex:1;height:100%;background:linear-gradient(140deg,#1f3e4d,#0b1a28 70%);border-right:1px solid #6ca2b43b;transform:translateY(102%);position:relative}.wipe-panels i:after{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#8ad8e3);box-shadow:0 0 20px #5ac4e6}.closing .wipe-panels i{animation:shutter-close .36s cubic-bezier(.5,0,.15,1) forwards}.closing .wipe-panels i:nth-child(2){animation-delay:.035s}.closing .wipe-panels i:nth-child(3){animation-delay:.07s}.closing .wipe-panels i:nth-child(4){animation-delay:.105s}.closing .wipe-panels i:nth-child(5){animation-delay:.14s}.opening .wipe-panels i{transform:translateY(0);animation:shutter-open .55s cubic-bezier(.65,0,.15,1) .05s both}.opening .wipe-panels i:nth-child(2){animation-delay:.085s}.opening .wipe-panels i:nth-child(3){animation-delay:.12s}.opening .wipe-panels i:nth-child(4){animation-delay:.155s}.opening .wipe-panels i:nth-child(5){animation-delay:.19s}.wipe-label{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:18px;opacity:0;text-align:center;padding:30px}.wipe-label>span{font-size:36px;letter-spacing:.15em;font-weight:500}.wipe-label>b{font:12px/1.7 var(--mono);letter-spacing:.08em;color:#acd9e7;max-width:650px}.wipe-label>i{width:55px;height:1px;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.closing .wipe-label{animation:destination-in .2s .24s both}.opening .wipe-label{animation:destination-out .25s both}@keyframes shutter-close{to{transform:translateY(0)}}@keyframes shutter-open{to{transform:translateY(-102%)}}@keyframes destination-in{to{opacity:1}}@keyframes destination-out{from{opacity:1}to{opacity:0;transform:translateY(-15px)}}
@media(min-width:1700px){.hero-world{--scene-position-x:50%;--scene-position-y:35%}}
@media(max-width:1280px){.desktop-nav{display:none}.menu-toggle{display:block}.header-tools{margin-left:auto;gap:24px}.system-experience{gap:45px}.assembly-stage{min-height:480px}.assembly{scale:.9}}
@media(max-width:980px){.system-experience{grid-template-columns:1fr 1fr;gap:30px}.assembly-stage{min-height:440px}.assembly{scale:.75}.system-tabs button{font-size:14px;gap:14px}.system-panels{min-height:170px}.assembly-caption{font-size:8px;left:17px;right:17px}}
@media(max-width:700px){.header-tools{gap:13px}.intro-trigger{font-size:9px;gap:5px}.intro-trigger i{display:none}.header .brand small{display:none}.header .brand b{font-size:18px}.header .brand img{width:26px}.header{gap:12px}.hero-world{inset:0 0 auto;height:550px;--scene-position-x:64%;--scene-position-y:0%;opacity:.7;transform:none;will-change:auto}.hero-world .hero-image{opacity:1}.core-ring{opacity:.55}.energy-field{opacity:.65}.system-experience{grid-template-columns:1fr;gap:30px;padding-top:65px}.system-narrative h2{font-size:35px}.system-panels{min-height:145px}.assembly-stage{min-height:420px}.assembly{scale:.8}.boot-rings{width:280px;height:280px}.boot-rings i:nth-child(3){inset:-20px}.boot-emblem img{width:55px}.boot-emblem strong{font-size:64px}.boot-disciplines{gap:12px;margin-top:25px}.boot-disciplines span{font-size:8px;letter-spacing:0}.boot-top{font-size:8px;gap:25px}.boot-top>span{text-align:right}.boot-bottom{align-items:flex-end}.boot-bottom button{font-size:9px;padding:10px 12px;white-space:nowrap}.gateway-copy{transform:none}.gateway-top{transform:none}.motion-enabled .pointer-engaged{transform:none}.motion-enabled .gateway:hover>.object-scene{transform:none}}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation:none!important;transition:none!important}.motion-paused .hero-world{transform:none}.motion-paused .motion-reveal{opacity:1;transform:none}.motion-paused .pointer-engaged{transform:none}.motion-paused .boot,.motion-paused .page-wipe{display:none!important}.motion-paused .energy-field{opacity:0}.scene-sleeping *,.scene-sleeping *:before,.scene-sleeping *:after,.page-sleeping *,.page-sleeping *:before,.page-sleeping *:after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.hero-world{transform:none}.motion-reveal{opacity:1!important;transform:none!important}.energy-field{display:none}.boot,.page-wipe{display:none!important}.pointer-engaged{transform:none!important}.assembly{animation:none}}
