:focus-visible{outline:3px solid #fff;outline-offset:3px;border-radius:6px}.btn:focus-visible{outline-offset:4px}
.skip{position:absolute;left:12px;top:-60px;z-index:99;background:#fff;color:#000;padding:10px 16px;border-radius:8px;font:600 14px Sora}.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ctl button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.25);display:grid;place-items:center;background:#0008;color:#fff;cursor:pointer}
#snd[aria-pressed=false] .w{opacity:.25}#snd[aria-pressed=false]:after{content:"";position:absolute;width:22px;height:2px;background:#fff;transform:rotate(-45deg)}#snd{position:relative}
.hnav{display:flex;gap:26px;font:600 13px Sora;letter-spacing:.08em}.hnav a{color:#d6d9e3}.hnav a:hover,.hnav a[aria-current]{color:#fff}@media(max-width:1100px){.hnav{display:none}}
#menu{position:fixed;inset:0;z-index:60;background:radial-gradient(circle at 80% 10%,#2a1245,#05050aF5 55%);padding:96px 6vw 40px;overflow:auto}
#menu .g{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:30px;max-width:1200px;margin:auto}#menu b{display:block;font:600 12px Sora;letter-spacing:.2em;color:#b9bdca;margin-bottom:12px}
#menu a{display:block;font:20px Michroma;padding:7px 0}#menu .x{position:absolute;right:3.5vw;top:18px}
.menu-open{overflow:hidden}
.crumb{font:600 12px Sora;letter-spacing:.18em;text-transform:uppercase;color:#b9bdca}.crumb a{color:var(--acc)}
.hud .pb i{height:calc(var(--p,0)*100%)!important}@media(max-width:760px){.hud .pb i{width:calc(var(--p,0)*100%)!important;height:100%!important}}
/* wizard (dark) */
.wz{max-width:860px}.wz-n{font:600 13px Sora;letter-spacing:.15em;color:#cfd2dc}.wz-bar{height:4px;background:#fff2;border-radius:9px;margin:10px 0 24px;overflow:hidden}.wz-bar span{display:block;height:100%;background:var(--acc);box-shadow:0 0 10px var(--acc);transition:width .3s}
.wz h2{font-size:clamp(22px,2.6vw,34px)}.wz fieldset{border:0;padding:0}.wz legend{font:600 18px Sora;margin-bottom:16px}
.wz-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.wz-card{position:relative;cursor:pointer;border:1px solid #ffffff2e;border-radius:14px;padding:16px;font:600 15px Sora;display:flex;gap:12px;align-items:center;background:#ffffff08}
.wz-card input{position:absolute;opacity:0;pointer-events:none}.wz-card i{width:18px;height:18px;border-radius:5px;border:2px solid #fff6;flex:none}
.wz-card:has(:checked){border-color:var(--acc);background:color-mix(in srgb,var(--acc) 14%,transparent)}.wz-card:has(:checked) i{background:var(--acc);border-color:var(--acc)}
.wz-card:has(:focus-visible){outline:3px solid #fff;outline-offset:3px}
.wz label.f{display:block;font:600 13px Sora;margin:14px 0 6px}.wz input[type=text],.wz input[type=email],.wz input[type=tel],.wz textarea{width:100%;padding:14px;border:1px solid #ffffff40;border-radius:12px;font:inherit;background:#0b0b12;color:#fff}
.wz-foot{display:flex;justify-content:space-between;margin-top:28px}button.btn{border:0;cursor:pointer}button.btn.ghost{border:1px solid rgba(255,255,255,.25)}
.notice{border:1px solid #ffd27a88;background:#ffd27a12;border-radius:14px;padding:18px;margin:18px 0}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.ctl{align-items:center}.ctl a.btn{width:auto;height:auto;border-radius:999px;background:var(--acc);border:0;color:#0a0612}@media(max-width:600px){.ctl a.btn{display:none}}
.orb canvas{-webkit-mask-image:radial-gradient(circle,#000 52%,transparent 70%);mask-image:radial-gradient(circle,#000 52%,transparent 70%)}
#hero .pan:before{content:"";position:absolute;inset:auto -10vw 0 -6vw;height:70vh;background:radial-gradient(ellipse at 30% 70%,#07070bcc,transparent 65%);z-index:-1;pointer-events:none}
/* generated figures */
.fig{position:relative;margin:0 0 18px;border-radius:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--acc) 28%,transparent);background:#0b0b12}
.fig img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.fig:hover img{transform:scale(1.03)}
.fig.hi{border-radius:22px;box-shadow:0 0 70px color-mix(in srgb,var(--acc) 16%,transparent),0 30px 60px #0009}
.fig.wide{margin:34px 0 0;aspect-ratio:21/8}.fig.wide img{height:100%;object-fit:cover}
/* ===== v3 component layer: one set for home / layer / sub templates ===== */
:root{--r-lg:22px;--r-md:16px;--r-sm:10px;--ease:cubic-bezier(.2,.7,.2,1);--sp-1:8px;--sp-2:16px;--sp-3:24px;--sp-4:40px;--sp-5:64px}
body{line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1,h2{text-wrap:balance}p{text-wrap:pretty}h3{line-height:1.3;letter-spacing:.005em}
h1{letter-spacing:.01em;line-height:1.04}h2{line-height:1.12;margin-bottom:var(--sp-2)}
.tag{margin-bottom:var(--sp-2);display:inline-flex;align-items:center;gap:10px}.tag:before{content:"";width:18px;height:1px;background:currentColor;opacity:.7}
.glass p+p{margin-top:var(--sp-1)}.mut{max-width:68ch}
/* buttons */
.btn{transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,border-color .25s;line-height:1;white-space:nowrap}
.btn:hover{transform:translateY(-2px);box-shadow:0 0 44px color-mix(in srgb,var(--acc) 70%,transparent)}
.btn.ghost{border-color:rgba(255,255,255,.22);background:rgba(10,10,18,.35);backdrop-filter:blur(8px)}
.btn.ghost:hover{border-color:var(--acc);box-shadow:0 0 22px color-mix(in srgb,var(--acc) 30%,transparent)}
.btn.sm{padding:10px 16px;font-size:13px}
.btn:active{transform:translateY(0) scale(.98)}
/* glass panels */
.glass{border-radius:var(--r-lg);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 20px 50px rgba(0,0,0,.35)}
a.glass{transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
a.glass:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--acc) 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 40px color-mix(in srgb,var(--acc) 16%,transparent)}
/* chips: home client list + orbit labels share one look */
.cl a,.orb a{border-radius:999px;font:600 13px Sora;background:rgba(11,10,20,.85);border:1px solid color-mix(in srgb,var(--acc) 50%,transparent);backdrop-filter:blur(6px);transition:background .2s,color .2s,box-shadow .2s}
.cl a:hover,.orb a:hover{background:color-mix(in srgb,var(--acc) 22%,#0b0a14)}
/* HUD bits share accent glow */
.hud .pb i,.prog{transition:width .15s linear}
/* page transitions */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .22s var(--ease) both}
::view-transition-new(root){animation:vt-in .38s var(--ease) both}
@keyframes vt-out{to{opacity:0;filter:blur(4px)}}
@keyframes vt-in{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}
.hdr{view-transition-name:hdr}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.btn,.glass,.fig img{transition:none!important}.btn:hover,a.glass:hover{transform:none}}
/* ===== review fixes (Apollo / Iris / Ares, Oct 22) ===== */
/* header: content never sits unreadably under it; anchors land below it */
html{scroll-padding-top:96px}[id]{scroll-margin-top:96px}
.hdr{transition:background .3s,backdrop-filter .3s,box-shadow .3s}
.hdr.sc,.menu-open .hdr{background:rgba(7,7,11,.78);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 1px 0 var(--line)}
/* nav centred independently of the right-hand controls (pages without a mute button no longer shift it) */
@media(min-width:1101px){.hdr{position:fixed}.hnav{position:absolute;left:50%;transform:translateX(-50%)}}
/* menu rows >= 44px, readable group labels */
#menu a{display:flex;align-items:center;min-height:48px;padding:4px 0}#menu b{font-size:13px;color:#cfd2dc}
/* footer stays crisp over the 3D world */
footer{position:relative;z-index:3;background:linear-gradient(rgba(7,7,11,.72),rgba(7,7,11,.96) 140px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* placeholder copy that is honest but not shouty (each one carries a TODO(content) comment in the HTML) */
.soon{color:var(--mut);font-style:italic}
/* wizard: radios look like radios, card centred, nav row pinned */
.wz{margin-left:auto;margin-right:auto}.wz .step:not(#done){min-height:360px}
.wz-card input[type=radio]+i{border-radius:50%;position:relative}.wz-card:has(input[type=radio]:checked) i{background:transparent;box-shadow:inset 0 0 0 4px #0b0b12,inset 0 0 0 10px var(--acc)}
.wz-foot{border-top:1px solid var(--line);padding-top:20px}
@media(max-width:760px){.wz .step:not(#done){min-height:0}}
/* packages: equal-height cards, CTAs on one line */
.pk{display:flex;flex-direction:column}.pk>.cta{margin-top:auto;padding-top:22px}.pk .tag{min-height:1.6em}.pk h2{min-height:2.3em}
@media(max-width:1100px) and (min-width:761px){.pkg-grid{grid-template-columns:repeat(2,1fr)!important}.pkg-grid>.pk:last-child{grid-column:1/-1}}
/* ===== Antonio phone pass (Oct 22): opaque scrolled header, compact landscape, bigger radios, 44px work links ===== */
:root{--hh:76px}
.hdr.sc,.menu-open .hdr{background:rgba(8,6,14,.9);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);box-shadow:none;border-bottom:1px solid rgba(180,76,255,.18)}
.hdr{border-bottom:1px solid transparent}
html{scroll-padding-top:calc(var(--hh) + 20px)}[id]{scroll-margin-top:calc(var(--hh) + 20px)}
main>section:first-child:not(#hero),.ch:not(#hero) .pan{scroll-margin-top:calc(var(--hh) + 20px)}
main>.page:first-child,main>section.sub:first-child{padding-top:max(calc(var(--hh) + 24px),var(--pt,0px))}
@media(max-height:500px) and (orientation:landscape){:root{--hh:52px}.hdr{padding-top:6px;padding-bottom:6px;max-height:52px}.hdr #menu-btn{padding:6px 12px!important;min-height:40px}.hdr .logo img{width:28px;height:28px}.hdr .btn{padding:8px 14px!important}main h1{margin-top:calc(var(--hh) + 8px)}}
@media(max-width:760px){main .btn.sm,main .wrap a:not(.btn):not(.logo){min-height:44px;display:inline-flex;align-items:center}}
.wz-card i{width:20px;height:20px}
.wz-card input[type=radio]+i{border-radius:50%;border:2px solid #fff8;background:transparent;box-shadow:none;transition:box-shadow .15s,border-color .15s}
.wz-card:has(input[type=radio]:checked) i{border-color:var(--acc);background:#0b0b12;box-shadow:inset 0 0 0 4px #0b0b12,inset 0 0 0 10px var(--acc),0 0 12px color-mix(in srgb,var(--acc) 60%,transparent)}
