:root{--scene-ink:#171a20;--scene-muted:#6b6d70;--scene-line:#d9dadd;--scene-blue:#3e6ae1;--scene-blue-soft:rgba(62,106,225,.10);--scene-ash:#f4f4f6;--scene-ease:cubic-bezier(.22,.8,.2,1)}
.scene-hero{overflow:hidden!important}.hero-scene{width:min(47vw,640px)!important;height:auto!important;aspect-ratio:1.34!important;padding:24px 26px!important;background:#fff!important;border:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;position:relative!important;transform:none!important;color:var(--scene-ink)!important;contain:layout paint!important}.hero-scene *{box-sizing:border-box}.hero-scene strong,.hero-scene span{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}.scene-label{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid var(--scene-line);font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--scene-muted)}.scene-label strong{max-width:58%;font-size:11px!important;line-height:1.35!important;letter-spacing:0!important;text-transform:none!important;font-weight:600!important;color:var(--scene-ink)!important;text-align:right}.scene-canvas{min-height:0;flex:1;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:5px;overflow:hidden}.scene-svg{display:block;width:100%;height:100%;min-height:0;overflow:visible}.scene-micro{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:20px;padding:0 4px 3px;color:#8a8c91;font-size:8px;letter-spacing:.08em;text-transform:uppercase}.scene-micro span{white-space:nowrap}.scene-foot{display:flex;justify-content:space-between;gap:18px;padding-top:12px;border-top:1px solid var(--scene-line);font-size:10px;color:var(--scene-muted)}.scene-foot strong{max-width:62%;font-size:11px!important;line-height:1.3!important;font-weight:600!important;color:var(--scene-ink)!important;text-align:right;letter-spacing:0!important}

/* Phase 1 — safety supervisor intercepts the unsafe touchdown path. */
.p1-ground{stroke:#c8c9cc}.p1-pad{fill:#eeeff1;stroke:#8f9196}.p1-unsafe{fill:none;stroke:#c5c6ca;stroke-width:2;stroke-dasharray:8 9;animation:sceneDash 4.4s linear infinite}.p1-divert{fill:none;stroke:var(--scene-blue);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:sceneDraw 1.55s var(--scene-ease) forwards}.p1-shield{fill:rgba(62,106,225,.07);stroke:var(--scene-blue);stroke-width:2;transform-origin:290px 196px;animation:p1Shield 3s ease-in-out infinite}.p1-vehicle{fill:none;stroke:var(--scene-ink);stroke-width:2;animation:p1Vehicle 4.6s cubic-bezier(.4,0,.2,1) infinite}.p1-vehicle circle{fill:#fff}.p1-risk circle{fill:var(--scene-blue);animation:p1Risk 1.8s ease-in-out infinite}.p1-risk circle:nth-child(2){animation-delay:.28s}.p1-risk circle:nth-child(3){animation-delay:.55s}.p1-abort{fill:none;stroke:var(--scene-blue);stroke-width:2}.p1-micro span:nth-child(2){color:var(--scene-blue)}

/* Phase 2 — raw spikes are collected inside a moving persistence window. */
.p2-grid{stroke:#e0e1e3;stroke-dasharray:5 7}.p2-raw{fill:none;stroke:#b9bbc0;stroke-width:1.4}.p2-smooth{fill:none;stroke:var(--scene-ink);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:sceneDraw 1.75s var(--scene-ease) forwards}.p2-window rect{fill:rgba(62,106,225,.055);stroke:var(--scene-blue);stroke-dasharray:5 5}.p2-window line{stroke:var(--scene-blue);opacity:.45}.p2-window{animation:p2Sweep 5s ease-in-out infinite}.p2-state{fill:var(--scene-blue);animation:scenePulse 2.1s ease-in-out infinite}.p2-micro span:nth-child(2){color:var(--scene-blue)}

/* Phase 3 — two independent estimates converge on a fused state. */
.p3-sensor circle{fill:#fff;stroke:#b6b8bc;stroke-width:1.5}.p3-sensor path{fill:none;stroke-width:1.8}.p3-sensor.a path{stroke:var(--scene-ink)}.p3-sensor.b circle,.p3-sensor.b path{stroke:var(--scene-blue)}.p3-beam{fill:none;stroke-width:2.4;stroke-dasharray:1;stroke-dashoffset:1;animation:sceneDraw 1.6s var(--scene-ease) forwards}.p3-beam.a{stroke:var(--scene-ink)}.p3-beam.b{stroke:var(--scene-blue);animation-delay:.2s}.p3-comparator circle:first-child{fill:var(--scene-ink)}.p3-comparator circle:nth-child(2){fill:none;stroke:rgba(255,255,255,.35)}.p3-comparator path{stroke:#fff;stroke-width:1.5}.p3-delta{fill:none;stroke:#bfc0c4;stroke-dasharray:6 7;animation:sceneDash 4s linear infinite}.p3-pulse{fill:var(--scene-blue);animation:p3Travel 2.7s ease-in-out infinite}.p3-pulse.b{animation-delay:1.25s}.p3-micro span:last-child{color:var(--scene-blue)}

/* Phase 4 — the archive scan passes across a deliberately empty node. */
.p4-line{stroke:#c1c2c5;stroke-width:1.5}.p4-node circle{fill:var(--scene-ink);animation:p4Node 3.2s ease-in-out infinite}.p4-node.n2 circle{animation-delay:.25s}.p4-node.n3 circle{animation-delay:.5s}.p4-node.n5 circle{animation-delay:.9s}.p4-node.n6 circle{animation-delay:1.15s}.p4-gap circle{fill:#fff;stroke:#b8bac0;stroke-width:1.5;stroke-dasharray:4 4;transform-origin:300px 170px;animation:p4Gap 2.7s ease-in-out infinite}.p4-gap path{stroke:var(--scene-blue);stroke-width:2}.p4-scan{stroke:rgba(62,106,225,.3);animation:p4Scan 3.4s ease-in-out infinite}.p4-micro .gap{color:var(--scene-blue);font-weight:650}

/* Phase 5 — stress compresses inward while the central trajectory persists. */
.p5-rings rect{fill:none;stroke:#d4d5d8;transform-origin:280px 170px;animation:p5Tunnel 4.5s ease-in-out infinite}.p5-rings rect:nth-child(2){animation-delay:.18s;stroke:rgba(62,106,225,.25)}.p5-rings rect:nth-child(3){animation-delay:.36s}.p5-rings rect:nth-child(4){animation-delay:.54s;stroke:rgba(62,106,225,.38)}.p5-track{fill:none;stroke:var(--scene-ink);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:sceneDraw 1.5s var(--scene-ease) forwards}.p5-stress circle{fill:#9ea0a5;opacity:.22;animation:p5Particle 2.45s ease-in-out infinite var(--d)}.p5-core{fill:var(--scene-blue);animation:scenePulse 2s ease-in-out infinite}.p5-core-ring{fill:none;stroke:rgba(62,106,225,.35);animation:p5Core 2s ease-out infinite}.p5-micro span:last-child{color:var(--scene-blue)}

/* Phase 6 — camera lock feeds a staged confidence/track/control chain. */
.p6-view{fill:#f8f8f9;stroke:#c4c5c8}.p6-grid{fill:none;stroke:#e1e2e4}.p6-target rect{fill:none;stroke:var(--scene-ink);stroke-width:2}.p6-lock{fill:none;stroke:var(--scene-blue);stroke-width:2;stroke-dasharray:8 6;transform-origin:201px 171px;animation:p6Lock 2.5s ease-in-out infinite}.p6-scan{stroke:var(--scene-blue);stroke-width:2;filter:drop-shadow(0 0 5px rgba(62,106,225,.18));animation:p6Scan 2.9s ease-in-out infinite}.p6-flow{fill:none;stroke:#c6c7ca;stroke-dasharray:5 7}.p6-node circle:first-child{fill:var(--scene-ink)}.p6-node circle:nth-child(2){fill:none;stroke:rgba(62,106,225,.28);animation:p6Node 2.6s ease-out infinite}.p6-node.n2 circle:nth-child(2){animation-delay:.55s}.p6-node.n3 circle:nth-child(2){animation-delay:1.1s}.p6-micro span:nth-child(2),.p6-micro span:nth-child(3){color:var(--scene-blue)}

/* Phase 6B — independent component gates: lateral passes, altitude abstains. */
.p6b-frame{fill:#fafafa;stroke:#d1d2d5}.p6b-div{stroke:#d5d6d8}.p6b-lateral .track,.p6b-altitude .track{fill:#e8e9eb}.p6b-lateral .fill{fill:var(--scene-blue);transform-origin:106px 103px;animation:p6bFill 1.35s var(--scene-ease) both}.p6b-altitude .fill{fill:#aeb0b5;transform-origin:316px 103px;animation:p6bAlt 1.35s var(--scene-ease) both}.p6b-lateral circle,.p6b-lateral path:not(.gate){fill:none;stroke:var(--scene-ink);stroke-width:2}.p6b-altitude .shutter{fill:none;stroke:#aeb0b4;stroke-width:2;stroke-dasharray:7 5;transform-origin:385px 186px;animation:p6bShutter 2.8s ease-in-out infinite}.p6b-lateral .gate{stroke:var(--scene-blue);stroke-width:3;animation:p6bGate 2.2s ease-in-out infinite}.p6b-altitude .gate{stroke:#b7b8bc;stroke-width:3;stroke-dasharray:7 6}.p6b-micro span:first-child{color:var(--scene-blue)}

/* Phase 7 — a contained 3D factorial stress lattice. */
.hero-scene-phase7{overflow:hidden!important}.p7-stage{position:relative;min-height:0;overflow:hidden}.p7-stage .scene-svg{position:absolute;inset:0;width:100%!important;height:100%!important}.p7-cube{transform-origin:300px 180px;animation:p7Float 6.8s ease-in-out infinite}.p7-cube path{fill:none;stroke:#b9bbc0;stroke-width:1.15}.p7-cube path:nth-child(-n+3){stroke:var(--scene-ink);stroke-width:1.6}.p7-hot circle{fill:var(--scene-blue);animation:p7Hot 2.35s ease-in-out infinite}.p7-hot circle:nth-child(2){animation-delay:.48s}.p7-hot circle:nth-child(3){animation-delay:.96s}.p7-hot circle:nth-child(4){animation-delay:1.44s}.p7-orbit{fill:none;stroke:rgba(62,106,225,.32);stroke-width:1.4;stroke-dasharray:1;stroke-dashoffset:1;animation:sceneDraw 1.9s var(--scene-ease) forwards}.p7-probe{fill:var(--scene-blue);animation:p7Probe 5.4s ease-in-out infinite}.p7-micro span:nth-child(2){color:var(--scene-blue)}

/* Phase 8 — model and external-simulator traces diverge over time. */
.p8-axis{fill:none;stroke:#d5d6d8}.p8-model,.p8-real{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:sceneDraw 1.65s var(--scene-ease) forwards}.p8-model{stroke:#aeb0b5}.p8-real{stroke:var(--scene-blue);animation-delay:.22s}.p8-deltas line{stroke:#c0c1c5;stroke-dasharray:4 4;animation:p8Delta 2.6s ease-in-out infinite}.p8-runner{animation:p8Runner 4.8s ease-in-out infinite}.p8-runner.model{fill:#aeb0b5}.p8-runner.real{fill:var(--scene-blue);animation-name:p8RunnerReal}.p8-micro span:nth-child(2){color:var(--scene-blue)}

/* Phase 9 — detector box stays locked while metric estimate moves away from truth. */
.p9-frame{fill:#f7f7f8;stroke:#c3c4c7}.p9-target{fill:none;stroke:var(--scene-ink);stroke-width:7}.p9-lock{fill:none;stroke:var(--scene-blue);stroke-width:2;stroke-dasharray:8 6;transform-origin:189px 172px;animation:p9Lock 2.05s ease-in-out infinite}.p9-cross{fill:none;stroke:#d9dadd}.p9-center{fill:var(--scene-blue)}.p9-geo>circle:first-child{fill:none;stroke:#cacbd0}.p9-geo .truth{fill:var(--scene-ink)}.p9-geo .estimate{fill:var(--scene-blue);animation:p9Drift 3.5s ease-in-out infinite}.p9-geo .error{stroke:var(--scene-blue);stroke-width:2;stroke-dasharray:5 5;animation:sceneDash 3s linear infinite}.p9-range{fill:none;stroke:rgba(62,106,225,.2);animation:p9Range 2.6s ease-out infinite}.p9-micro span:last-child{color:var(--scene-blue)}

/* Phase 10 — temporal state follows a filled calibrated uncertainty envelope. */
.p10-envelope{fill:rgba(62,106,225,.09);stroke:rgba(62,106,225,.32);stroke-width:1;transform-origin:280px 180px;animation:p10Envelope 3.2s ease-in-out infinite}.p10-path{fill:none;stroke:var(--scene-ink);stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:sceneDraw 1.65s var(--scene-ease) forwards}.p10-state circle{fill:var(--scene-blue);opacity:0;animation:p10Pop .45s var(--scene-ease) var(--d) forwards}.p10-filter rect{fill:#f2f4fb;stroke:rgba(62,106,225,.4)}.p10-filter path{fill:none;stroke:var(--scene-blue);stroke-width:1.5}.p10-filter{animation:p10Filter 3.1s ease-in-out infinite}.p10-cursor{fill:var(--scene-blue);animation:p10Cursor 5.3s ease-in-out infinite}.p10-micro span:last-child{color:var(--scene-blue)}

/* Phase 10R — frozen shift tightens the mean, then exposes escaped tail points. */
.p10r-band{fill:rgba(62,106,225,.055);stroke:rgba(62,106,225,.40);stroke-width:1.5}.p10r-mid{stroke:#c0c2c6}.p10r-good circle{fill:var(--scene-ink);opacity:0;animation:p10rGood .48s var(--scene-ease) var(--d) forwards}.p10r-tail circle{fill:#fff;stroke:var(--scene-blue);stroke-width:3;animation:p10rTail 2.7s ease-in-out infinite}.p10r-tail circle:nth-child(2){animation-delay:.65s}.p10r-tail circle:nth-child(3){animation-delay:1.3s}.p10r-shift{fill:none;stroke:#aeb0b5;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1;animation:sceneDraw 1.6s var(--scene-ease) forwards}.p10r-arrow{fill:none;stroke:var(--scene-blue);stroke-width:2;animation:p10rArrow 2.5s ease-in-out infinite}.p10r-scan line{stroke:rgba(62,106,225,.25);animation:p10rScan 3.8s ease-in-out infinite}.p10r-micro span:nth-child(2),.p10r-micro span:nth-child(3){color:var(--scene-blue)}

@keyframes sceneDraw{to{stroke-dashoffset:0}}@keyframes sceneDash{to{stroke-dashoffset:-32}}@keyframes scenePulse{50%{transform:scale(1.22);opacity:.55}}
@keyframes p1Shield{50%{transform:translateY(-4px);filter:drop-shadow(0 9px 12px rgba(62,106,225,.11))}}@keyframes p1Vehicle{0%,8%{transform:translate(82px,68px)}46%{transform:translate(246px,176px)}60%{transform:translate(262px,188px)}82%,100%{transform:translate(164px,246px)}}@keyframes p1Risk{50%{transform:scale(1.55);transform-origin:center;opacity:.25}}
@keyframes p2Sweep{0%,100%{transform:translateX(52px)}50%{transform:translateX(350px)}}
@keyframes p3Travel{0%{transform:translateX(-62px);opacity:0}25%{opacity:1}100%{transform:translateX(225px);opacity:0}}
@keyframes p4Node{50%{fill:var(--scene-blue)}}@keyframes p4Gap{50%{stroke:var(--scene-blue);transform:scale(1.08)}}@keyframes p4Scan{0%,100%{transform:translateY(-44px)}50%{transform:translateY(130px)}}
@keyframes p5Tunnel{50%{transform:scale(.985);opacity:.58}}@keyframes p5Particle{0%,100%{transform:translate(0,0);opacity:.12}50%{transform:translate(-17px,8px);opacity:.48}}@keyframes p5Core{0%{transform:scale(.72);opacity:.5;transform-origin:center}100%{transform:scale(1.55);opacity:0;transform-origin:center}}
@keyframes p6Lock{50%{transform:scale(.94);stroke-dashoffset:-18}}@keyframes p6Scan{0%,100%{transform:translateY(0)}50%{transform:translateY(196px)}}@keyframes p6Node{0%{transform:scale(.6);opacity:.5;transform-origin:center}70%,100%{transform:scale(1.35);opacity:0;transform-origin:center}}
@keyframes p6bFill{from{transform:scaleX(0)}}@keyframes p6bAlt{from{transform:scaleX(0)}}@keyframes p6bShutter{50%{transform:scale(.82);opacity:.38}}@keyframes p6bGate{50%{filter:drop-shadow(0 0 5px rgba(62,106,225,.35))}}
@keyframes p7Float{0%,100%{transform:translateY(0) skewY(0deg)}50%{transform:translateY(-7px) skewY(-1deg)}}@keyframes p7Hot{50%{transform:scale(1.75);transform-origin:center;opacity:.3}}@keyframes p7Probe{0%,100%{transform:translate(0,0)}40%{transform:translate(95px,-126px)}70%{transform:translate(242px,-180px)}}
@keyframes p8Delta{50%{stroke:var(--scene-blue);stroke-width:2.4}}@keyframes p8Runner{0%,100%{transform:translate(0,0)}50%{transform:translate(275px,-140px)}}@keyframes p8RunnerReal{0%,100%{transform:translate(0,0)}50%{transform:translate(310px,-62px)}}
@keyframes p9Lock{50%{transform:scale(.93);stroke-dashoffset:-18}}@keyframes p9Drift{50%{transform:translate(17px,-13px)}}@keyframes p9Range{0%{transform:scale(.7);opacity:.55;transform-origin:404px 148px}100%{transform:scale(1.5);opacity:0;transform-origin:404px 148px}}
@keyframes p10Envelope{50%{transform:scaleY(1.08);opacity:.72}}@keyframes p10Pop{to{opacity:1}}@keyframes p10Filter{50%{transform:translateX(9px);filter:drop-shadow(0 7px 10px rgba(62,106,225,.09))}}@keyframes p10Cursor{0%,100%{transform:translate(0,0)}18%{transform:translate(65px,-22px)}36%{transform:translate(130px,-53px)}54%{transform:translate(195px,-100px)}72%{transform:translate(260px,-126px)}88%{transform:translate(390px,-106px)}}
@keyframes p10rGood{to{opacity:1}}@keyframes p10rTail{50%{transform:scale(1.42);transform-origin:center;filter:drop-shadow(0 0 6px rgba(62,106,225,.2))}}@keyframes p10rArrow{50%{transform:translateX(11px)}}@keyframes p10rScan{0%,100%{transform:translateX(-220px)}50%{transform:translateX(105px)}}

@media(max-width:900px){.hero-scene{width:min(88vw,640px)!important;margin:0 auto!important;aspect-ratio:1.28!important}.scene-label{align-items:flex-start}.scene-foot{flex-direction:column;gap:5px}.scene-foot strong{max-width:none;text-align:left!important}.scene-micro{font-size:7.5px}.p7-stage{min-height:270px}}
@media(max-width:560px){.hero-scene{padding:18px!important}.scene-label strong{max-width:64%}.scene-micro{gap:5px;overflow:hidden}.scene-micro span{font-size:7px}.scene-foot{font-size:9px}}
@media(prefers-reduced-motion:reduce){.hero-scene *{animation:none!important}}
