/* v08_13 — native scene effects; no video requests and no animation library. */
.home-concept .hero-live{overflow:hidden;padding-top:.8rem}
.home-concept .hero-live .live-stage{position:relative;isolation:isolate;width:100%;aspect-ratio:1672/941;overflow:hidden;background:#0c1b20}
.home-concept .hero-live .live-panel{position:absolute;inset:0;display:block;min-height:0;padding:0;isolation:isolate}
.home-concept .hero-live .live-panel[hidden]{display:none}
.home-concept .hero-live .hero-scene-mobile{display:block;position:absolute;inset:0;z-index:0;margin:0;width:100%;height:100%;overflow:hidden;background:transparent}
.home-concept .hero-live .hero-scene-mobile:after{display:none}
.home-concept .hero-live .hero-scene-mobile>img,.hero-live .scene-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;transform:none;filter:none}
.hero-live .scene-canvas{opacity:0;pointer-events:none;transition:opacity .6s ease}
.hero-live .scene-canvas.is-ready{opacity:1}
.home-concept .hero-live .hero-copy{position:absolute;z-index:2;left:3.5%;top:50%;transform:translateY(-50%);width:44%;padding:0!important;max-width:none}
.home-concept .hero-live .hero-copy h1,.home-concept .hero-live .hero-copy h2{font:400 clamp(2.8rem,4.5vw,5.2rem)/1.05 var(--serif);letter-spacing:-.055em}
.home-concept .hero-live .hero-model{display:inline-block;font:300 1.13em/1 var(--mono);letter-spacing:-.085em;margin-bottom:.14em;color:var(--site-text)}
.home-concept .hero-live .hero-copy em{font-weight:400;color:var(--site-cool)}
.home-concept .hero-live .hero-lede{font-size:clamp(.85rem,1vw,1rem);line-height:1.7}
.home-concept .hero-live .hero-kicker{font-size:.55rem;letter-spacing:.12em;color:var(--site-accent)}
.live-controls{display:flex;gap:1.5rem;align-items:center;padding:1.1rem 0 1.4rem}
.scene-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.8rem;flex:1;min-width:0}
.scene-tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;border:0;background:transparent;color:var(--site-muted);font:.58rem/1.5 var(--mono);text-align:left;cursor:pointer;min-height:48px;padding:.5rem 0;position:relative}
.scene-tabs button>span{font-size:.47rem;color:var(--site-muted)}
.scene-tabs button:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--site-line)}
.scene-tabs button[aria-selected=true]{color:var(--site-text)}
.scene-tabs button[aria-selected=true]>span{color:var(--site-accent)}
.scene-tabs button[aria-selected=true]:after{background:var(--site-accent);height:2px}
.effects-toggle{min-height:44px;min-width:135px;padding:.7rem .8rem;border:1px solid var(--site-line);background:transparent;color:var(--site-cool);font:.6rem/1.5 var(--mono);cursor:pointer}
.effects-toggle:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--site-accent);margin-right:.6rem}
.effects-toggle[aria-pressed=true]:before{background:var(--site-muted)}
/* Quiet light on engineering fields; source product images are never distorted. */
.home-concept.effects-running .device-image:after{content:'';display:block;position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.22;background:radial-gradient(ellipse at var(--field-x,50%) var(--field-y,45%),#a7cdd726,transparent 58%);mask-image:var(--engineering-mask);-webkit-mask-image:var(--engineering-mask)}
.home-concept.effects-running .device-image>img{position:relative;z-index:1}
.home-concept.effects-running .calibration-drawing:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 45%,#a4ccd817 50%,transparent 55%);background-size:100% 200%;animation:field-sweep 9s linear infinite;mask-image:radial-gradient(ellipse,#000,transparent 75%);-webkit-mask-image:radial-gradient(ellipse,#000,transparent 75%)}
.home-concept.effects-running .mission-connectors path{animation:signal-flow 18s linear infinite}
.home-concept.effects-running .partner-constellation circle{animation:star-light 6s ease-in-out infinite alternate}
.home-concept.effects-running .partner-constellation circle:nth-child(3n){animation-delay:-2s}
.home-concept.effects-running .partner-constellation circle:nth-child(3n + 1){animation-delay:-4s}
.home-concept:not(.effects-running) .mission-connectors path,.home-concept:not(.effects-running) .partner-constellation circle{animation-play-state:paused}
@keyframes field-sweep{from{background-position:0 110%}to{background-position:0 -110%}}
@media(max-width:1100px) and (min-width:901px){.home-concept .hero-live .hero-copy h1,.home-concept .hero-live .hero-copy h2{font-size:clamp(2.4rem,4.6vw,3.8rem)}.home-concept .hero-live .hero-lede{font-size:.8rem;line-height:1.55}.home-concept .hero-live .hero-actions{margin-top:1rem;gap:.6rem}}
@media(max-width:900px){.home-concept .hero-live .live-stage{aspect-ratio:auto}.home-concept .hero-live .live-panel{position:relative;inset:auto;display:flex;flex-direction:column}.home-concept .hero-live .live-panel[hidden]{display:none}.home-concept .hero-live .hero-copy{position:relative;left:auto;top:auto;transform:none;width:100%;padding:1.4rem 0 1.7rem!important;min-height:390px;display:flex;flex-direction:column}.home-concept .hero-live .hero-copy .hero-actions{margin-top:auto;padding-top:1rem}.home-concept .hero-live .hero-scene-mobile{position:relative;inset:auto;aspect-ratio:1672/941;height:auto;order:2}.home-concept .hero-live .hero-copy h1,.home-concept .hero-live .hero-copy h2{font-size:clamp(2.9rem,8vw,4.8rem)}.home-concept .hero-live .hero-lede{font-size:.95rem;line-height:1.8;max-width:650px}.live-controls{flex-wrap:wrap}.scene-tabs{flex-basis:100%;gap:.6rem}.effects-toggle{margin-left:auto}.home-concept .hero-live .hero-coordinate{display:none}}
@media(max-width:560px){.scene-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem .8rem}.home-concept .hero-live .hero-copy{min-height:440px}.home-concept .hero-live .hero-copy h1,.home-concept .hero-live .hero-copy h2{font-size:clamp(2.6rem,10vw,3.8rem)}}

/* CSS renderer for webviews without WebGL. */
.scene-fallback{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.scene-fallback>span{position:absolute;display:block;pointer-events:none}
.scene-light{left:20%;top:22%;width:37%;height:40%;background:radial-gradient(ellipse at var(--light-x,50%) var(--light-y,50%),#a9dfd91c,transparent 68%);mix-blend-mode:screen;animation:scene-breathe 7s ease-in-out infinite alternate}
.scene-radar{left:28.3%;top:23.5%;width:15.4%;height:28%;border-radius:50%;overflow:hidden;transform:skew(-8deg);mask-image:radial-gradient(ellipse,#000 48%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse,#000 48%,transparent 72%)}
.scene-radar:before{content:'';position:absolute;inset:-35%;background:conic-gradient(from 0deg,transparent 0deg,transparent 310deg,#65c79609 330deg,#78dfad55 358deg,transparent 360deg);animation:scene-radar-turn 12s linear infinite;transform-origin:center}
.scene-window{left:56%;top:0;width:44%;height:15%;background:repeating-linear-gradient(174deg,transparent 0 8px,#c8e9e511 10px,transparent 14px 32px);filter:blur(3px);mix-blend-mode:soft-light;mask-image:radial-gradient(ellipse,#000 20%,transparent 74%);-webkit-mask-image:radial-gradient(ellipse,#000 20%,transparent 74%);animation:scene-water-light 8s ease-in-out infinite alternate}
.scene-fallback:not(.is-playing) .scene-light,.scene-fallback:not(.is-playing) .scene-window,.scene-fallback:not(.is-playing) .scene-radar:before{animation-play-state:paused}
@keyframes scene-breathe{from{opacity:.25}to{opacity:1}}
@keyframes scene-radar-turn{to{transform:rotate(360deg)}}
@keyframes scene-water-light{from{background-position:0 0;opacity:.25}to{background-position:13px 7px;opacity:.8}}
/* v08_14 — all effects start declaratively; no canvas/context initialization. */
.scene-fallback{display:block}
.scene-fallback .scene-light{opacity:.5;background:radial-gradient(ellipse at 50% 50%,#a9dfd936,transparent 65%)}
.scene-fallback .scene-radar{opacity:.9}
.scene-fallback .scene-radar:before{background:conic-gradient(from 0deg,transparent 0deg,transparent 295deg,#65c79620 330deg,#78dfad99 358deg,transparent 360deg)}
.scene-water-plate{position:absolute;inset:0;overflow:hidden;clip-path:polygon(57% 0,100% 0,100% 16%,57% 16%);mask-image:linear-gradient(#000 0%,#000 10%,transparent 16%);-webkit-mask-image:linear-gradient(#000 0%,#000 10%,transparent 16%)}
.scene-water-plate .scene-water-photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;animation:sea-drift 5s ease-in-out infinite alternate;transform-origin:80% 0}
.scene-console-scan{left:91%;top:33%;width:6%;height:22%;transform:skewY(7deg) skewX(-7deg);overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 25%,#000 80%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 25%,#000 80%,transparent)}
.scene-console-scan:before{content:'';position:absolute;inset:-100% 0;background:linear-gradient(transparent 43%,#a2dfd834 48%,#b4efcf88 50%,transparent 55%);animation:console-scan 6s linear infinite}
@keyframes sea-drift{from{transform:translate3d(-3px,-1px,0) scale(1.008)}to{transform:translate3d(3px,2px,0) scale(1.012)}}
@keyframes console-scan{from{transform:translateY(-25%)}to{transform:translateY(25%)}}
/* Explicit user motion control must win over the inherited global reduce rule. */
.home-concept.effects-running .scene-light{animation-name:scene-breathe!important;animation-duration:5s!important;animation-iteration-count:infinite!important;animation-direction:alternate!important;animation-play-state:running!important}
.home-concept.effects-running .scene-radar:before{animation-name:scene-radar-turn!important;animation-duration:8s!important;animation-iteration-count:infinite!important;animation-play-state:running!important}
.home-concept.effects-running .scene-window{animation-name:scene-water-light!important;animation-duration:6s!important;animation-iteration-count:infinite!important;animation-direction:alternate!important;animation-play-state:running!important}
.home-concept.effects-running .scene-water-photo{animation-name:sea-drift!important;animation-duration:5s!important;animation-iteration-count:infinite!important;animation-direction:alternate!important;animation-play-state:running!important}
.home-concept.effects-running .scene-console-scan:before{animation-name:console-scan!important;animation-duration:6s!important;animation-iteration-count:infinite!important;animation-play-state:running!important}
.home-concept.effects-running .mission-connectors path{animation-duration:18s!important;animation-iteration-count:infinite!important}
.home-concept.effects-running .calibration-drawing:after{animation-duration:9s!important;animation-iteration-count:infinite!important}
.home-concept.effects-running .partner-constellation circle{animation-duration:6s!important;animation-iteration-count:infinite!important}
.home-concept:not(.effects-running) .scene-fallback *,.home-concept:not(.effects-running) .scene-fallback *:before,.home-concept .hero-live.scene-offscreen .scene-fallback *,.home-concept .hero-live.scene-offscreen .scene-fallback *:before{animation-play-state:paused!important}
