/* Studio Norte · Qué hacemos: cinematic 3D camera scene driven by SceneEngine (parts/scene-engine.js).
   Everything is scoped under .svc-scene. No keyframes: every mini-UI is a function of --p (0..1, progress
   through that service's play phase), so scrubbing backwards plays the story backwards.
   Non-focused screens use --f (focus amount) for opacity; JS sets --p, --f and the camera transform. */

.svc-scene{
  --s-bg:#070b14;--s-raised:#111b31;--s-card:#0d1526;--s-text:#ecf0f7;--s-muted:#8995ab;--s-body:#c3cde0;
  --s-ice:#8fd3ff;--s-hair:rgba(236,240,247,.1);--s-wa:#25d366;
  --g:clamp(16px,4vw,56px);
  --s-sans:'Archivo',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --s-mono:'JetBrains Mono',ui-monospace,Consolas,'Courier New',monospace;
  position:relative;background:transparent;color:var(--s-text);font-family:var(--s-sans);-webkit-font-smoothing:antialiased;
}
.svc-scene *,.svc-scene *::before,.svc-scene *::after{box-sizing:border-box}
.svc-scene h2,.svc-scene h3,.svc-scene p,.svc-scene ul,.svc-scene figure{margin:0}
.svc-scene ul{padding:0;list-style:none}
.svc-scene [hidden]{display:none!important}

/* the sticky stage (the engine requires .scene-stage as first child) */
.svc-scene .scene-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;perspective:1400px;perspective-origin:50% 50%;isolation:isolate}

/* ---------- header layer (fades out on the first move) ---------- */
.svc-scene .svc-head{position:absolute;z-index:4;left:var(--g);right:var(--g);top:clamp(84px,14vh,150px);max-width:1200px;margin:0 auto;display:grid;gap:22px;align-items:end;pointer-events:none;opacity:var(--head,1)}
@media (min-width:900px){.svc-scene .svc-head{grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:40px}}
.svc-scene .svc-label{font-family:var(--s-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--s-muted)}
.svc-scene .svc-label b{font-weight:500;color:var(--s-ice)}
.svc-scene .svc-title{margin-top:18px;font-size:clamp(34px,4.6vw,60px);font-weight:700;font-stretch:112%;letter-spacing:-.03em;line-height:.98;text-wrap:balance}
.svc-scene .svc-lead{max-width:34ch;color:var(--s-body);font-size:clamp(16px,1.5vw,19px);line-height:1.5}

/* ---------- 3D plane: 4 x 2 screens, 520 x 320 plane px, 28 px gap ---------- */
.svc-scene .svc-plane{position:absolute;left:0;top:0;z-index:0;width:2164px;height:668px;display:grid;grid-template-columns:repeat(4,520px);grid-template-rows:repeat(2,320px);gap:28px;transform-origin:0 0;pointer-events:none}
.svc-scene .svc-cell{position:relative;width:520px;height:320px;--p:1;--f:0;margin:0}
.svc-scene .svc-screen{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:12px;border:1px solid var(--s-hair);background-color:#0a1222;background-image:radial-gradient(rgba(143,211,255,.07) 1px,transparent 1.2px);background-size:22px 22px;overflow:hidden;box-shadow:0 0 0 1px rgba(143,211,255,calc(var(--f)*.4)),0 50px 90px -50px rgba(0,0,0,.9)}
.svc-scene .svc-bar{position:absolute;left:0;right:0;top:0;height:36px;display:flex;align-items:center;gap:9px;padding:0 16px;border-bottom:1px solid var(--s-hair);background:rgba(7,11,20,.55)}
.svc-scene .svc-bar i{display:block;width:9px;height:9px;border-radius:50%;background:rgba(236,240,247,.2)}
.svc-scene .svc-bar span{margin-left:auto;font-family:var(--s-mono);font-size:14px;letter-spacing:.04em;color:var(--s-muted)}
/* the mini-UI is authored at 260 x 142 and zoomed x2 to fill the 520 x 284 area under the bar */
.svc-scene .svc-ui-wrap{position:absolute;left:0;top:36px;width:520px;height:284px;overflow:hidden}
.svc-scene .svc-ui{position:relative;width:260px;height:142px;zoom:2}
.svc-scene .m-web,.svc-scene .m-shop,.svc-scene .m-cal,.svc-scene .m-form,.svc-scene .m-qr,.svc-scene .m-lang,.svc-scene .m-qual,.svc-scene .m-3d{position:absolute;inset:0}

/* ---------- 01 website: nav, hero, photo, text, button ---------- */
.svc-scene .w-nav{position:absolute;left:10px;right:10px;top:10px;height:14px;display:flex;align-items:center;gap:6px;--e:clamp(0,(var(--p) - .02)*10,1);opacity:calc(.18 + .82*var(--e));transform:translate3d(calc((1 - var(--e)) * -18px),0,0)}
.svc-scene .w-logo{display:block;width:10px;height:10px;border-radius:3px;background:var(--s-ice)}
.svc-scene .w-link{display:block;width:16px;height:4px;border-radius:2px;background:rgba(236,240,247,.22)}
.svc-scene .w-link:nth-child(2){margin-left:auto}
.svc-scene .w-cta{width:28px;height:9px;border-radius:999px;background:none;border:1px solid rgba(143,211,255,.6)}
.svc-scene .w-hero{position:absolute;left:10px;right:10px;top:32px;height:46px;border-radius:8px;border:1px solid var(--s-hair);background:linear-gradient(120deg,#1a2c4d,#111e36);--e:clamp(0,(var(--p) - .10)*8,1);opacity:calc(.18 + .82*var(--e));transform:translate3d(0,calc((1 - var(--e)) * 10px),0)}
.svc-scene .w-h1{position:absolute;left:10px;top:12px;width:58%;height:8px;border-radius:3px;background:var(--s-text)}
.svc-scene .w-h2{position:absolute;left:10px;top:26px;width:40%;height:5px;border-radius:3px;background:rgba(236,240,247,.3)}
.svc-scene .w-photo{position:absolute;left:10px;top:86px;width:52%;height:54px;border-radius:8px;border:1px solid var(--s-hair);background:radial-gradient(circle at 72% 30%,rgba(143,211,255,.5) 0 5px,transparent 6px),linear-gradient(160deg,#2a4870,#15243f);--e:clamp(0,(var(--p) - .20)*8,1);opacity:calc(.18 + .82*var(--e));transform:scale(calc(.94 + .06*var(--e)))}
.svc-scene .w-side{position:absolute;left:calc(52% + 20px);right:10px;top:86px;height:54px;display:flex;flex-direction:column;--e:clamp(0,(var(--p) - .30)*10,1);opacity:calc(.18 + .82*var(--e));transform:translate3d(0,calc((1 - var(--e)) * 6px),0)}
.svc-scene .w-side i{display:block;width:92%;height:4px;margin-bottom:6px;border-radius:2px;background:rgba(236,240,247,.22)}
.svc-scene .w-side .w-s2{width:70%}
.svc-scene .w-btn{display:block;margin-top:auto;width:76%;height:16px;border-radius:999px;background:var(--s-ice);transform-origin:0 50%;--e2:clamp(0,(var(--p) - .38)*10,1);transform:scale(calc(.5 + .5*var(--e2)));opacity:calc(.25 + .75*var(--e2))}

/* ---------- 02 shop: three products, two taps (badge 1 then 2), WhatsApp toast ---------- */
.svc-scene .sh-top{position:absolute;left:10px;right:10px;top:7px;height:14px;display:flex;align-items:center;justify-content:space-between}
.svc-scene .sh-title{font-family:var(--s-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--s-muted)}
.svc-scene .sh-cart{position:relative;display:block;width:14px;height:14px}
.svc-scene .sh-cart svg{width:14px;height:14px;fill:none;stroke:var(--s-ice);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.svc-scene .sh-badge{position:absolute;right:-8px;top:-7px;min-width:12px;height:12px;padding:0 3px;border-radius:999px;background:var(--s-ice);color:#06101f;font-family:var(--s-mono);font-size:8px;font-weight:700;line-height:12px;text-align:center;--bv:clamp(0,(var(--p) - .26)*20,1);opacity:var(--bv);transform:scale(calc(.6 + .4*var(--bv)))}
.svc-scene .sh-badge span{position:absolute;left:0;right:0;top:0;text-align:center}
.svc-scene .b1{opacity:clamp(0,(.44 - var(--p))*100,1)}
.svc-scene .b2{opacity:clamp(0,(var(--p) - .44)*100,1)}
.svc-scene .sh-item{position:absolute;top:28px;width:28%;height:80px;padding:5px;border-radius:8px;border:1px solid var(--s-hair);background:var(--s-raised);display:flex;flex-direction:column;gap:4px}
.svc-scene .sh-a{left:4%;--e:clamp(0,(var(--p) - .02)*12,1);opacity:calc(.18 + .82*var(--e));transform:translate3d(0,calc((1 - var(--e)) * 8px),0)}
.svc-scene .sh-b{left:36%;--e:clamp(0,(var(--p) - .04)*12,1);opacity:calc(.18 + .82*var(--e));transform:translate3d(0,calc((1 - var(--e)) * 8px),0)}
.svc-scene .sh-c{left:68%;--e:clamp(0,(var(--p) - .06)*12,1);opacity:calc(.18 + .82*var(--e));transform:translate3d(0,calc((1 - var(--e)) * 8px),0)}
.svc-scene .sh-img{display:block;height:28px;border-radius:5px}
.svc-scene .i1{background:linear-gradient(135deg,#25477a,#15284a)}
.svc-scene .i2{background:linear-gradient(135deg,#2c6558,#173a31)}
.svc-scene .i3{background:linear-gradient(135deg,#6a5530,#3a2f18)}
.svc-scene .sh-name{display:block;width:70%;height:4px;border-radius:2px;background:rgba(236,240,247,.35)}
.svc-scene .sh-price{font-family:var(--s-mono);font-size:10px;line-height:1;color:var(--s-ice)}
.svc-scene .sh-btn{margin-top:auto;height:14px;border-radius:999px;border:1px solid rgba(143,211,255,.5);color:var(--s-ice);font-family:var(--s-mono);font-size:8px;line-height:12px;text-align:center;letter-spacing:.02em;--ta:0;background:rgba(143,211,255,calc(var(--ta)*.3));box-shadow:0 0 0 calc(var(--ta)*3px) rgba(143,211,255,calc(var(--ta)*.35))}
.svc-scene .sh-a .sh-btn{--ta:calc(clamp(0,(var(--p) - .25)*20,1) - clamp(0,(var(--p) - .31)*12,1))}
.svc-scene .sh-c .sh-btn{--ta:calc(clamp(0,(var(--p) - .39)*20,1) - clamp(0,(var(--p) - .45)*12,1))}
.svc-scene .sh-cursor{position:absolute;top:0;left:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(143,211,255,.35),0 4px 12px rgba(0,0,0,.5);z-index:3;pointer-events:none;--c1:clamp(0,(var(--p) - .14)*12.5,1);--c2:clamp(0,(var(--p) - .34)*12.5,1);left:calc(92% - 74%*var(--c1) + 64%*var(--c2));top:calc(64px + 31px*var(--c1));opacity:calc(clamp(0,(var(--p) - .10)*25,1)*(1 - clamp(0,(var(--p) - .50)*12,1)))}
.svc-scene .sh-toast{position:absolute;left:4%;right:4%;top:116px;height:22px;display:flex;align-items:center;gap:6px;padding:0 8px;border-radius:7px;border:1px solid rgba(37,211,102,.55);background:rgba(37,211,102,.12);color:#c4f7d6;font-family:var(--s-mono);font-size:9.5px;white-space:nowrap;overflow:hidden;--t:clamp(0,(var(--p) - .52)*10,1);opacity:var(--t);transform:translate3d(0,calc((1 - var(--t)) * 10px),0)}
.svc-scene .sh-tick{width:10px;height:10px;flex:none;fill:none;stroke:var(--s-wa);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 03 calendar: day picked, time picked, confirmation with a drawn check ---------- */
.svc-scene .c-head{position:absolute;left:10px;right:10px;top:9px;height:12px;display:flex;justify-content:space-between;align-items:center;font-family:var(--s-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--s-body)}
.svc-scene .c-arr{color:var(--s-muted);letter-spacing:.2em}
.svc-scene .c-week{position:absolute;left:10px;right:10px;top:27px;height:9px;display:grid;grid-template-columns:repeat(7,1fr);font-family:var(--s-mono);font-size:7px;line-height:9px;text-align:center;color:var(--s-muted)}
.svc-scene .c-grid{position:absolute;left:10px;right:10px;top:39px;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:13px;gap:3px 2px}
.svc-scene .c-grid i{display:grid;place-items:center;font-style:normal;font-family:var(--s-mono);font-size:8px;color:var(--s-muted);border-radius:4px}
.svc-scene .c-grid .c-sel{--sel:clamp(0,(var(--p) - .12)*10,1);background:rgba(143,211,255,var(--sel));color:color-mix(in srgb,#06101f calc(var(--sel)*100%),var(--s-muted))}
.svc-scene .c-times{position:absolute;left:10px;right:10px;top:110px;height:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;opacity:calc(1 - clamp(0,(var(--p) - .46)*20,1))}
.svc-scene .c-chip{display:grid;place-items:center;border-radius:6px;border:1px solid var(--s-hair);background:var(--s-card);color:var(--s-muted);font-family:var(--s-mono);font-size:9px}
.svc-scene .c-pick{--pk:clamp(0,(var(--p) - .34)*16,1);background:rgba(143,211,255,var(--pk));border-color:rgba(143,211,255,calc(.2 + .8*var(--pk)));color:color-mix(in srgb,#06101f calc(var(--pk)*100%),var(--s-muted))}
.svc-scene .c-ok{position:absolute;left:10px;right:10px;top:110px;height:22px;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:999px;border:1px solid rgba(143,211,255,.55);background:rgba(143,211,255,.1);color:var(--s-ice);font-size:10px;font-weight:600;--okv:clamp(0,(var(--p) - .50)*12,1);opacity:var(--okv);transform:translate3d(0,calc((1 - var(--okv)) * 6px),0)}
.svc-scene .c-ok svg{width:12px;height:12px;flex:none;fill:none;stroke:var(--s-ice);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18;stroke-dashoffset:calc(18 * (1 - clamp(0,(var(--p) - .54)*10,1)))}

/* ---------- 04 form: name and receipt type in, check, press, new row lands in the sheet ---------- */
.svc-scene .f-field{position:absolute;left:10px;width:60%}
.svc-scene .f1{top:8px}
.svc-scene .f2{top:42px}
.svc-scene .f-lab{display:block;font-family:var(--s-mono);font-size:7.5px;line-height:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--s-muted)}
.svc-scene .f-in{display:flex;align-items:center;gap:6px;margin-top:3px;height:18px;padding:0 6px;border-radius:5px;border:1px solid var(--s-hair);background:#0a1222}
.svc-scene .f-type{display:block;min-width:0;overflow:hidden;white-space:nowrap;font-family:var(--s-mono);font-size:9px;color:var(--s-text)}
.svc-scene .f1 .f-type{max-width:calc(9ch * clamp(0,(var(--p) - .04)*6.67,1))}
.svc-scene .f2 .f-type{max-width:calc(15ch * clamp(0,(var(--p) - .18)*7.14,1))}
.svc-scene .f-ok{display:block;width:12px;height:12px;margin-left:auto;flex:none;--fo:clamp(0,(var(--p) - .32)*12,1);opacity:var(--fo);transform:scale(calc(.4 + .6*var(--fo)))}
.svc-scene .f-ok svg{width:12px;height:12px;fill:none;stroke:var(--s-ice);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.svc-scene .f-btn{position:absolute;left:74%;right:10px;top:19px;height:28px;display:grid;place-items:center;border-radius:7px;background:var(--s-ice);color:#06101f;font-size:10px;font-weight:600;transform:scale(calc(1 - .07*(clamp(0,(var(--p) - .38)*16,1) - clamp(0,(var(--p) - .44)*16,1))))}
.svc-scene .f-sheet{position:absolute;left:10px;right:10px;top:78px;height:62px;border-radius:7px;border:1px solid var(--s-hair);background:#0a1222;overflow:hidden}
.svc-scene .f-row{display:grid;grid-template-columns:1.2fr 1fr .8fr;align-items:center;gap:6px;height:15px;padding:0 6px;border-bottom:1px solid var(--s-hair);font-family:var(--s-mono);font-size:7.5px;color:var(--s-body)}
.svc-scene .f-row.f-h{height:14px;font-size:6.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--s-muted)}
.svc-scene .f-row i{display:block;width:70%;height:4px;border-radius:2px;background:rgba(236,240,247,.2)}
.svc-scene .f-pill{justify-self:start;padding:1px 5px;border-radius:999px;background:rgba(143,211,255,.16);border:1px solid rgba(143,211,255,.5);color:var(--s-ice);font-size:6.5px;line-height:10px}
.svc-scene .f-new{--fn:clamp(0,(var(--p) - .50)*12,1);opacity:var(--fn);transform:translate3d(calc((1 - var(--fn)) * -12px),0,0)}

/* ---------- 05 QR: the scan line sweeps once, the frame lights, access badge ---------- */
.svc-scene .q-box{position:absolute;left:10px;top:10px;width:112px;height:112px;padding:8px;border-radius:12px;background:#0a1222;overflow:hidden;--lit:clamp(0,(var(--p) - .44)*16,1);border:1px solid rgba(143,211,255,calc(.18 + .82*var(--lit)));box-shadow:0 0 0 1px rgba(143,211,255,calc(.45*var(--lit))),0 0 26px rgba(143,211,255,calc(.35*var(--lit)))}
.svc-scene .q-grid{position:absolute;inset:8px;display:grid;grid-template-columns:repeat(21,1fr);grid-template-rows:repeat(21,1fr)}
.svc-scene .q-grid i{display:block}
.svc-scene .q-grid i.on{background:var(--s-text);transform:scale(.9);border-radius:1px}
.svc-scene .q-scan{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--s-ice),transparent);box-shadow:0 0 10px var(--s-ice);--sc:clamp(0,(var(--p) - .10)*3.33,1);top:calc(var(--sc)*100%);opacity:calc(clamp(0,(var(--p) - .08)*25,1)*(1 - clamp(0,(var(--p) - .40)*25,1)))}
.svc-scene .q-info{position:absolute;left:132px;right:10px;top:10px;height:112px;display:flex;flex-direction:column;justify-content:space-between}
.svc-scene .q-tag{font-family:var(--s-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--s-muted)}
.svc-scene .q-l{display:block;height:4px;margin-top:8px;border-radius:2px;background:rgba(236,240,247,.22)}
.svc-scene .q-l2{width:62%;margin-top:6px}
.svc-scene .q-ok{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;padding:7px 9px;border-radius:9px;background:rgba(143,211,255,.12);border:1px solid rgba(143,211,255,.5);color:var(--s-ice);font-size:11px;font-weight:600;line-height:1.15;--qk:clamp(0,(var(--p) - .52)*12.5,1);opacity:var(--qk);transform:translate3d(0,calc((1 - var(--qk)) * 6px),0)}
.svc-scene .q-ok svg{width:12px;height:12px;fill:none;stroke:var(--s-ice);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 06 language: ES reads, toggle slides to EN, heading cross-fades ---------- */
.svc-scene .l-toggle{position:absolute;left:12px;top:26px;width:92px;height:24px;display:flex;border-radius:999px;border:1px solid var(--s-hair);background:var(--s-card);overflow:hidden;--sl:clamp(0,(var(--p) - .36)*12.5,1)}
.svc-scene .l-thumb{position:absolute;left:2px;top:2px;bottom:2px;width:calc(50% - 3px);border-radius:999px;background:var(--s-ice);transform:translateX(calc(var(--sl)*(100% + 2px)))}
.svc-scene .l-es,.svc-scene .l-en{position:relative;z-index:1;flex:1;display:grid;place-items:center;font-family:var(--s-mono);font-size:9.5px;letter-spacing:.08em}
.svc-scene .l-es{color:color-mix(in srgb,#06101f calc((1 - var(--sl))*100%),var(--s-muted))}
.svc-scene .l-en{color:color-mix(in srgb,#06101f calc(var(--sl)*100%),var(--s-muted))}
.svc-scene .l-h{position:absolute;left:12px;right:12px;top:66px;height:30px}
.svc-scene .l-s{position:absolute;left:12px;right:12px;top:102px;height:18px}
.svc-scene .lh-es,.svc-scene .lh-en{position:absolute;left:0;top:0;white-space:nowrap;font-size:20px;font-weight:700;font-stretch:112%;letter-spacing:-.02em;line-height:30px}
.svc-scene .ls-es,.svc-scene .ls-en{position:absolute;left:0;top:0;white-space:nowrap;font-size:12px;line-height:18px;color:var(--s-muted)}
.svc-scene .lh-es,.svc-scene .ls-es{opacity:clamp(0,1 - (var(--p) - .38)*10,1)}
.svc-scene .lh-en,.svc-scene .ls-en{opacity:clamp(0,(var(--p) - .44)*10,1)}

/* ---------- 07 qualify: two answers selected, then the lead badge lights ---------- */
.svc-scene .qu-cap{position:absolute;left:10px;top:9px;font-family:var(--s-mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--s-muted)}
.svc-scene .qc{position:absolute;left:10px;right:10px;height:26px;display:flex;align-items:center;gap:8px;padding:0 9px 0 6px;border-radius:999px;border:1px solid rgba(143,211,255,.3);background:rgba(143,211,255,.06);color:var(--s-text);font-family:var(--s-mono);font-size:9.5px;white-space:nowrap}
.svc-scene .qc1{top:28px;--s:clamp(0,(var(--p) - .14)*12.5,1);background:rgba(143,211,255,calc(.06 + .08*var(--s)));border-color:rgba(143,211,255,calc(.3 + .3*var(--s)))}
.svc-scene .qc2{top:60px;--s:clamp(0,(var(--p) - .30)*12.5,1);background:rgba(143,211,255,calc(.06 + .08*var(--s)));border-color:rgba(143,211,255,calc(.3 + .3*var(--s)))}
.svc-scene .qc-box{width:14px;height:14px;flex:none;display:grid;place-items:center;border-radius:4px;border:1px solid rgba(236,240,247,.35);background:rgba(143,211,255,var(--s))}
.svc-scene .qc-box svg{width:10px;height:10px;fill:none;stroke:#06101f;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:var(--s)}
.svc-scene .qu-badge{position:absolute;left:10px;right:10px;top:100px;height:28px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;border:1px solid rgba(143,211,255,.7);background:rgba(143,211,255,.1);color:var(--s-ice);font-size:11.5px;font-weight:600;--bd:clamp(0,(var(--p) - .50)*12.5,1);opacity:calc(.4 + .6*var(--bd));box-shadow:0 0 0 1px rgba(143,211,255,calc(.25*var(--bd))),0 0 24px rgba(143,211,255,calc(.3*var(--bd)))}
.svc-scene .qu-dot{width:7px;height:7px;border-radius:50%;background:var(--s-ice)}

/* ---------- 08 3D card: layers assemble, card turns with progress, glint sweeps ---------- */
.svc-scene .m-3d{display:grid;place-items:center;perspective:520px}
.svc-scene .d-tilt{position:relative;width:132px;height:84px;transform-style:preserve-3d}
.svc-scene .d-spin{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(calc(-18deg + 36deg*var(--p))) rotateX(calc(6deg - 10deg*var(--p)))}
.svc-scene .d-plane{position:absolute;inset:0;border-radius:12px;border:1px solid var(--s-hair);background:#0c172b}
.svc-scene .d-back{background:#09121f;--eb:clamp(0,(var(--p) - .04)*6.25,1);transform:translate3d(calc(9px*var(--eb)),calc(8px*var(--eb)),calc(-34px*var(--eb)))}
.svc-scene .d-mid{background:#0e1c34;border-color:rgba(143,211,255,.14);--em:clamp(0,(var(--p) - .08)*8.33,1);transform:translate3d(calc(4px*var(--em)),calc(3px*var(--em)),calc(-14px*var(--em)))}
.svc-scene .d-front{transform:translate3d(0,0,12px);overflow:hidden;background:linear-gradient(160deg,#18304f,#0d1729);border-color:rgba(143,211,255,.35);box-shadow:0 18px 30px -12px rgba(0,0,0,.8)}
.svc-scene .d-h{position:absolute;left:12px;top:14px;width:48%;height:7px;border-radius:3px;background:var(--s-text)}
.svc-scene .d-s{position:absolute;left:12px;top:27px;width:64%;height:4px;border-radius:2px;background:rgba(236,240,247,.3)}
.svc-scene .d-img{position:absolute;right:10px;top:12px;bottom:12px;width:34px;border-radius:7px;background:linear-gradient(170deg,#2c5a8a,#1b3557)}
.svc-scene .d-pill{position:absolute;left:12px;bottom:12px;width:40%;height:14px;border-radius:999px;background:var(--s-ice)}
.svc-scene .d-glint{position:absolute;inset:0;background:linear-gradient(105deg,transparent 38%,rgba(143,211,255,.38) 50%,transparent 62%);--gl:clamp(0,(var(--p) - .34)*4.55,1);transform:translate3d(calc(-110% + 220%*var(--gl)),0,0)}

/* ---------- info panel (left column on desktop, under the screen on phones) ---------- */
.svc-scene .svc-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(7,11,20,.94) 0%,rgba(7,11,20,.86) 36%,rgba(7,11,20,0) 52%);opacity:var(--pa,0)}
.svc-scene .svc-panel{position:absolute;z-index:3;left:var(--g);top:50%;width:32vw;max-width:560px;color:var(--s-text);opacity:var(--pa,0);transform:translate3d(calc((1 - var(--pa,0)) * -24px),-50%,0);pointer-events:none}
.svc-scene .svc-panel>*{max-width:27vw}
.svc-scene .svc-pn{font-family:var(--s-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--s-ice)}
.svc-scene .svc-pt{margin-top:16px;font-size:clamp(30px,3.4vw,48px);font-weight:700;font-stretch:112%;letter-spacing:-.03em;line-height:1;text-wrap:balance}
.svc-scene .svc-pd{margin-top:18px;color:var(--s-body);font-size:clamp(15px,1.25vw,18px);line-height:1.55}
.svc-scene .svc-pex{margin-top:18px;font-family:var(--s-mono);font-size:12px;letter-spacing:.06em;color:var(--s-muted)}
.svc-scene .svc-chips{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px}
.svc-scene .svc-chips li{padding:7px 12px;border-radius:999px;border:1px solid rgba(143,211,255,.35);background:rgba(7,11,20,.55);font-family:var(--s-mono);font-size:11.5px;letter-spacing:.04em;color:var(--s-text)}

/* ---------- pointer target on the focused screen: hover pauses the engine ---------- */
.svc-scene .svc-hit{position:absolute;left:0;top:0;z-index:5;width:0;height:0;border-radius:12px;pointer-events:none}
.svc-scene .svc-dim{position:absolute;inset:0;z-index:1;background:#070b14;opacity:var(--dim,0);pointer-events:none}

/* ---------- HUD: eight segments (click to jump) and a state label ---------- */
.svc-scene .svc-hud{position:absolute;z-index:6;left:var(--g);bottom:28px;width:min(420px,70vw);font-family:var(--s-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--s-text)}
.svc-scene .svc-segs{display:flex;gap:6px}
.svc-scene .svc-seg{position:relative;flex:1;height:18px;padding:0;margin:0;border:0;background:none;cursor:pointer;font:inherit}
.svc-scene .svc-seg::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:var(--s-hair)}
.svc-scene .svc-seg i{position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:var(--s-ice);transform-origin:0 50%;transform:scaleX(0)}
.svc-scene .svc-seg:focus-visible{outline:1px solid var(--s-ice);outline-offset:3px}
.svc-scene .svc-hud-st{margin-top:12px;font-size:11px;color:var(--s-muted)}

/* ---------- reduced motion / no-engine: the static grid (SceneEngine adds .scene--static) ---------- */
.svc-scene .svc-cap{display:none}
.svc-scene.scene--static .scene-stage{position:relative;height:auto;overflow:visible;perspective:none;padding:clamp(96px,13vw,160px) 0 clamp(72px,10vw,120px)}
.svc-scene.scene--static .svc-head{position:relative;left:auto;right:auto;top:auto;margin:0 auto 56px;padding:0 var(--g);opacity:1}
.svc-scene.scene--static .svc-plane{position:relative;left:auto;top:auto;width:1068px;height:auto;margin:0 auto;grid-template-columns:520px 520px;grid-template-rows:auto;gap:56px 28px;transform:none;justify-content:center}
.svc-scene.scene--static .svc-cell{width:520px;height:auto}
.svc-scene.scene--static .svc-screen{position:relative;inset:auto;height:320px}
.svc-scene.scene--static .svc-cap{display:block;margin-top:20px;max-width:520px}
.svc-scene.scene--static .svc-cap h3{font-size:21px;font-weight:650;letter-spacing:-.02em;line-height:1.15}
.svc-scene.scene--static .svc-cap .svc-no{display:block;font-family:var(--s-mono);font-size:12px;letter-spacing:.1em;color:var(--s-ice);margin-bottom:8px}
.svc-scene.scene--static .svc-desc{margin-top:8px;color:var(--s-muted);font-size:15px;line-height:1.5}
.svc-scene.scene--static .svc-ex{margin-top:12px;font-family:var(--s-mono);font-size:11.5px;letter-spacing:.04em;color:var(--s-body)}
.svc-scene.scene--static .svc-dim,.svc-scene.scene--static .svc-scrim,.svc-scene.scene--static .svc-panel,.svc-scene.scene--static .svc-hud,.svc-scene.scene--static .svc-hit{display:none}

/* ---------- phones (under 900 px): header stacked, screen at the top, panel under it ---------- */
@media (max-width:899px){
  .svc-scene .svc-head{grid-template-columns:minmax(0,1fr);gap:16px}
  .svc-scene .svc-title{font-size:clamp(34px,8.6vw,46px);margin-top:12px}
  .svc-scene .svc-panel{left:var(--g);right:72px;width:auto;transform:translate3d(0,calc((1 - var(--pa,0)) * 14px),0)}
  .svc-scene .svc-panel>*{max-width:none}
  .svc-scene .svc-pt{font-size:30px;margin-top:12px}
  .svc-scene .svc-pd{font-size:15px;margin-top:12px;line-height:1.5}
  .svc-scene .svc-pex{margin-top:12px;font-size:11px}
  .svc-scene .svc-chips{margin-top:14px;gap:6px}
  .svc-scene .svc-chips li{font-size:10.5px;padding:6px 10px}
  .svc-scene .svc-scrim{background:linear-gradient(180deg,rgba(7,11,20,0) 0%,rgba(7,11,20,0) 46%,rgba(7,11,20,.96) 52%,rgba(7,11,20,.96) 100%)}
  .svc-scene .svc-hud{left:var(--g);right:72px;width:auto;bottom:22px}
  .svc-scene.scene--static .svc-plane{width:520px;grid-template-columns:520px}
}

@media (prefers-reduced-motion:reduce){
  .svc-scene .svc-seg i{transition:none}
}
