/* Optional interaction layer: the source content and logos remain untouched. */
.logo-scene{position:relative;min-width:0;isolation:isolate}
.scene-stage{position:relative;aspect-ratio:3/2;width:calc(100% + 100px);margin-inline-start:-50px}
.scene-poster{display:block;width:100%;height:100%;object-fit:contain;padding:2% 28%;transition:opacity .6s ease}
.model-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;transition:opacity .8s ease;touch-action:pan-y;cursor:grab;outline-offset:-12px}
.scene-ready .model-canvas{opacity:1}.scene-ready .scene-poster{opacity:0}
.model-canvas.is-dragging{cursor:grabbing}
.scene-caption{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;min-height:44px;margin-top:2px;color:var(--muted);font-size:.6875rem;letter-spacing:.025em}
.scene-hint{display:inline-flex;align-items:center;gap:8px}.scene-hint::before{content:'↔';font-size:1rem;color:var(--action)}
.motion-toggle{min-height:36px;border:1px solid var(--line);border-radius:999px;padding:7px 12px;background:#fff;color:var(--body);cursor:pointer;font:inherit;letter-spacing:0;transition:border-color .2s,background .2s}
.motion-toggle:hover{border-color:var(--blue);background:var(--soft)}
.motion-toggle::before{content:'Ⅱ';display:inline-block;width:12px;margin-inline-end:5px;font-size:.75rem}.motion-toggle[data-paused="true"]::before{content:'▶';font-size:.5625rem}
.motion-toggle:disabled{cursor:default;opacity:.75}.motion-toggle:disabled::before{content:'−'}
.scene-hint[hidden],.motion-toggle[hidden]{display:none}
.service-visual .scene-stage{width:calc(100% + 60px);margin-inline-start:-30px}.service-visual{margin-top:12px}
.site-header{transition:box-shadow .35s ease}.site-header.is-scrolled{box-shadow:0 9px 32px #0e273a09}
.reading-progress{position:absolute;bottom:-1px;inset-inline-start:0;display:block;width:100%;height:2px;pointer-events:none;transform:scaleX(var(--reading-progress,0));transform-origin:left;background:linear-gradient(90deg,var(--blue),var(--mint))}
[dir="rtl"] .reading-progress{transform-origin:right}
.button,.back-top{position:relative;overflow:hidden;will-change:auto;translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .35s cubic-bezier(.2,.8,.2,1),background .2s,box-shadow .25s}
.button:active,.back-top:active{scale:.975}.click-wave{position:absolute;pointer-events:none;border-radius:50%;background:currentColor;opacity:0;width:80px;height:80px;margin:-40px;z-index:0}
.service-row-main{position:relative;transition:background .3s,translate .35s cubic-bezier(.2,.7,.2,1)}
.service-row-main::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;opacity:0;background:radial-gradient(ellipse 380px 150px at var(--pointer-x,50%) var(--pointer-y,50%),#24eeaf13,transparent);transition:opacity .4s}
.service-row-main:hover::before{opacity:1}.service-row-main h3{transition:color .25s,translate .35s cubic-bezier(.2,.8,.2,1)}
@media(hover:hover) and (pointer:fine){.service-row-main:hover h3{translate:5px 0}[dir="rtl"] .service-row-main:hover h3{translate:-5px 0}.advisory-list li:hover h3{translate:0 -3px}.advisory-list h3{transition:translate .3s,color .3s}.advisory-list li:hover h3{color:var(--action)}}
.cursor-halo{position:fixed;top:0;left:0;width:32px;height:32px;border:1px solid #1a80e555;border-radius:50%;pointer-events:none;z-index:60;opacity:0;transition:opacity .2s,border-color .2s;will-change:transform}
.cursor-halo.is-visible{opacity:1}.cursor-halo.is-interactive{border-color:#1a80e5aa}
.motion-paused{scroll-behavior:auto!important}.motion-paused *, .motion-paused *::before,.motion-paused *::after{animation:none!important;transition:none!important}
.motion-paused .is-awaiting{opacity:1;transform:none}.motion-paused .cursor-halo{display:none}.motion-paused .button,.motion-paused .back-top{translate:none;scale:none}.motion-paused .service-row-main h3,.motion-paused .advisory-list h3{translate:none}
.motion-paused .model-canvas{cursor:default}
.motion-paused::view-transition-group(*),.motion-paused::view-transition-old(*),.motion-paused::view-transition-new(*){animation:none!important}
@view-transition{navigation:auto}
::view-transition-old(root){animation:page-out .18s ease both}::view-transition-new(root){animation:page-in .35s cubic-bezier(.2,.7,.2,1) both}
@keyframes page-out{to{opacity:0}}@keyframes page-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:760px){.scene-stage{width:100%;max-width:590px;margin-inline:auto}.hero-visual{margin-top:8px}.scene-caption{font-size:.6875rem;gap:10px}.service-visual .scene-stage{width:100%;margin-inline:0}.service-visual .scene-caption{gap:4px}.cursor-halo{display:none}}
@media(max-width:480px){.scene-stage{aspect-ratio:1.4}.service-visual{max-width:380px;width:100%;justify-self:center}.scene-caption{margin-top:-3px}}
@media(prefers-reduced-motion:reduce){.cursor-halo{display:none}.model-canvas{cursor:default}.button,.back-top{translate:none;scale:none}.service-row-main h3,.advisory-list h3{translate:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
