/* UPLINK-Toyama next generation spatial navigation */
@view-transition{navigation:none}
::view-transition-old(root){animation:ng-old .7s cubic-bezier(.55,0,.85,.35) both;transform-origin:50% 50%}
::view-transition-new(root){animation:ng-new .95s cubic-bezier(.16,1,.3,1) both;transform-origin:50% 50%}
@keyframes ng-old{to{opacity:0;filter:blur(18px);transform:perspective(1200px) translateZ(280px) rotateX(-5deg)}}
@keyframes ng-new{from{opacity:0;filter:blur(20px);transform:perspective(1200px) translateZ(-420px) rotateX(7deg)}}

html.ng-route-lock{overflow:hidden}
.ng-route-gate{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;overflow:hidden;color:#effffc;background:#03141b;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s linear,visibility 0s .9s}
.ng-route-gate.is-active{opacity:1;visibility:visible;transition:opacity .18s linear,visibility 0s}
.ng-route-gate canvas{position:absolute;inset:0;width:100%;height:100%}
.ng-gate-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 0 28%,rgba(0,7,12,.2) 58%,rgba(0,5,9,.88) 100%);mix-blend-mode:multiply}
.ng-gate-grid{position:absolute;inset:1.35rem;border:1px solid rgba(210,255,246,.18);clip-path:polygon(0 0,32% 0,32% 1px,68% 1px,68% 0,100% 0,100% 100%,68% 100%,68% calc(100% - 1px),32% calc(100% - 1px),32% 100%,0 100%)}
.ng-gate-copy{position:relative;z-index:2;display:grid;place-items:center;gap:.9rem;width:min(90vw,80rem);text-align:center;opacity:clamp(0,calc((var(--gate-p,1) - .48) * 3.1),1);transform:translateZ(160px) scale(calc(.82 + var(--gate-p,1) * .18))}
.ng-gate-copy small{font:750 clamp(.58rem,.8vw,.74rem)/1 ui-monospace,monospace;letter-spacing:.24em;color:rgba(224,255,248,.65)}
.ng-gate-copy strong{font:850 clamp(3.2rem,10vw,10rem)/.82 Arial,"Noto Sans JP",sans-serif;letter-spacing:-.075em;text-wrap:balance;text-shadow:0 0 4rem color-mix(in srgb,var(--gate-color,#75efd1) 45%,transparent)}
.ng-gate-copy i{display:block;width:min(24rem,55vw);height:1px;background:linear-gradient(90deg,transparent,var(--gate-color,#75efd1),transparent);box-shadow:0 0 1.2rem var(--gate-color,#75efd1)}
.ng-gate-depth{position:absolute;right:2rem;bottom:1.7rem;color:rgba(224,255,248,.48);font:700 .55rem/1 ui-monospace,monospace;letter-spacing:.2em;writing-mode:vertical-rl}
.ng-gate-location{position:absolute;z-index:2;left:2rem;top:1.7rem;display:grid;gap:.45rem;color:rgba(230,255,250,.78);font:700 .62rem/1.2 ui-monospace,monospace;letter-spacing:.17em;text-transform:uppercase}
.ng-gate-location::before{content:"CURRENT LOCATION";color:var(--gate-color,#75efd1);font-size:.5rem;letter-spacing:.22em}
.ng-gate-path{position:absolute;z-index:2;left:50%;bottom:2rem;translate:-50% 0;display:flex;align-items:center;gap:1rem;width:max-content;color:rgba(230,255,250,.62);font:700 clamp(.52rem,.72vw,.66rem)/1 ui-monospace,monospace;letter-spacing:.14em}
.ng-gate-path i{width:clamp(2rem,5vw,5rem);height:1px;background:linear-gradient(90deg,transparent,var(--gate-color,#75efd1))}

.nextgen-depth-ready main{perspective:1800px;perspective-origin:50% var(--ng-perspective-y,50%)}
.nextgen-depth-ready .ng-depth-scene{position:relative;transform-style:preserve-3d;isolation:isolate}
.nextgen-depth-ready .ng-depth-scene>.shell{transform:translate3d(0,var(--ng-y,0),var(--ng-z,0)) rotateX(var(--ng-rx,0deg)) rotateY(var(--ng-ry,0deg));transform-origin:50% 50%;transform-style:preserve-3d;filter:saturate(var(--ng-sat,1)) contrast(var(--ng-contrast,1));will-change:transform}
.nextgen-depth-ready .ng-depth-scene .section-title,.nextgen-depth-ready .ng-depth-scene>.shell>h2{transform:translateZ(90px)}
.nextgen-depth-ready .ng-depth-scene .eyebrow{transform:translateZ(130px)}
.nextgen-depth-ready .ng-depth-scene .feature,.nextgen-depth-ready .ng-depth-scene .process article,.nextgen-depth-ready .ng-depth-scene .living-product{transform-style:preserve-3d;backface-visibility:hidden}
.nextgen-depth-ready .field-instrument-grid{transform-style:preserve-3d}
.nextgen-depth-ready .field-instrument-visual{z-index:1!important;scale:var(--ng-field-scale,1);transform-origin:68% 50%;filter:saturate(var(--ng-field-sat,1)) brightness(var(--ng-field-light,1));will-change:scale,transform,filter}
.nextgen-depth-ready .field-instrument-copy{z-index:20!important;transform:translate3d(0,var(--chapter-copy-y,0),calc(70px + var(--ng-copy-z,0px)))}
.nextgen-depth-ready .field-instrument .ui-chapter-word{scale:var(--ng-word-scale,1);transform-origin:100% 100%}
.nextgen-depth-ready .cinematic-hero{transform-style:preserve-3d}
.nextgen-depth-ready .cinematic-hero .page-hero-grid{transform:translateZ(70px)}
.nextgen-depth-ready .cinematic-hero picture{transform:translateZ(-80px) scale(1.055)}

@media(max-width:900px),(pointer:coarse){
  .nextgen-depth-ready .ng-depth-scene>.shell{transform:none!important;filter:none!important}
  .nextgen-depth-ready .ng-depth-scene .section-title,.nextgen-depth-ready .ng-depth-scene>.shell>h2,.nextgen-depth-ready .ng-depth-scene .eyebrow{transform:none}
  .nextgen-depth-ready .field-instrument-visual{scale:1!important}
  .ng-gate-grid{inset:.65rem}
  .ng-gate-path{bottom:1.2rem;gap:.55rem;font-size:.48rem;letter-spacing:.08em}.ng-gate-path i{width:1.2rem}
  .ng-gate-location{left:1rem;top:1rem;font-size:.52rem}
}
@media(prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.01ms}
  .ng-route-gate{display:none!important}
  .nextgen-depth-ready .ng-depth-scene>.shell,.nextgen-depth-ready .field-instrument-visual{transform:none!important;scale:1!important;filter:none!important}
}
