/* A Web — CALM layer (rebuilt from scratch). Loads last.
   Rules: one static background, no blur filters, no backdrop-filter, no WebGL,
   nothing full-screen animates. Only small transform/opacity hover effects remain. */
:root{--ease:cubic-bezier(.22,1,.36,1);--edge:rgba(255,255,255,.12)}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;background:var(--bg)}
body{background:transparent!important}
::selection{background:var(--g);color:#fff}
:focus-visible{outline:2px solid var(--g);outline-offset:3px;border-radius:8px}

/* 1) the ONLY background: static gradients, never repainted */
html::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(70vmax 55vmax at 0% 0%,color-mix(in srgb,var(--g) 24%,transparent),transparent 70%),radial-gradient(60vmax 55vmax at 100% 100%,color-mix(in srgb,var(--v,#7b3cff) 22%,transparent),transparent 70%)}

/* 2) remove every old moving / blurred / blended layer */
body::before,body::after,.bgo,#aurora,#ptc,#spot,#cg,#grain,#cur,.sp,#gl{display:none!important}
*,*::before,*::after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* 3) stop decorative loops (spinners, typing dots, recording pulses and the voice overlay are untouched) */
#aif0,#aif0::before,#aif0 .or2,#aif0 .or2::after,.aih>i,.hero::before,.hero>img,.lgo img,.card::after,.lc::before,.lcoin::before,
.lc .btn.big::after,h1,.gt2,.orb,.empty,.aem img,.adm-b,.th:before,.th:after,header .av,header .logo{animation:none!important}
.lc::before{filter:none!important}
.hero>img,.lgo img{box-shadow:0 10px 28px -8px rgba(0,0,0,.55)!important}

/* 4) solid cards instead of glass */
body .box,body .card,body .mod,body .rooms{background:color-mix(in srgb,var(--bg) 90%,var(--ink) 10%)!important;border:1px solid var(--edge);box-shadow:0 8px 24px -14px rgba(0,0,0,.6)!important}
header{background:var(--bg)!important;border-bottom:1px solid var(--edge)}
.ov{background:rgba(5,2,12,.78)!important}

/* 5) calm hover motion (transform only) */
.card,.box,.btn{transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--g) 50%,var(--edge))}
.btn:not(.o){background:linear-gradient(120deg,var(--g),var(--v,#7b3cff))}
.btn:hover{transform:translateY(-2px)}.btn:active{transform:scale(.97)}

/* 6) A-AI button: completely static */
#aif0{box-shadow:0 8px 24px color-mix(in srgb,var(--g) 50%,transparent);transition:scale .25s var(--ease)}
#aif0::before{display:none}
#aif0 .or2{box-shadow:none!important}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ================= VOICE OVERLAY v3 (opaque, calm, self-contained) ================= */
html body .vo{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:20px;overflow:hidden;background:radial-gradient(ellipse 80% 60% at 50% 26%,#2b1058 0,#0d0720 62%,#06030e 100%)!important;animation:vofade .35s ease both!important}
html body .vo.x{opacity:0;transition:opacity .3s}
@keyframes vofade{from{opacity:0}}
html body .vo::before{content:"";position:absolute;left:50%;top:27%;width:min(92vw,640px);aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--g) 30%,transparent),transparent 65%);animation:vobr 4s ease-in-out infinite!important}
@keyframes vobr{50%{transform:scale(1.14);opacity:.7}}
html body .vo .voc{position:relative;z-index:1;width:min(620px,100%);display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;animation:vopop .5s cubic-bezier(.2,1.2,.3,1) both!important}
@keyframes vopop{from{opacity:0;transform:translateY(26px) scale(.96)}}
html body .vo [hidden]{display:none!important}
html body .vo .vx{position:fixed;top:18px;inset-inline-end:18px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;font-size:18px;cursor:pointer;transition:transform .3s,background .3s}
html body .vo .vx:hover{transform:rotate(90deg);background:rgba(255,255,255,.16)}
/* orb */
html body .vo .vorb{position:relative;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;background:none!important;box-shadow:0 0 0 6px rgba(255,255,255,.06),0 20px 60px -12px color-mix(in srgb,var(--g) 75%,transparent);animation:vofl 5s ease-in-out infinite!important}
@keyframes vofl{50%{transform:translateY(-7px)}}
html body .vo .vorb::before{display:none!important}
html body .vo .vai{width:100%;height:100%;max-width:132px;border-radius:50%;object-fit:cover;display:grid;place-items:center;font-size:58px;color:#fff;background:linear-gradient(135deg,var(--g),var(--v,#7b3cff));filter:none!important;animation:none!important}
html body .vo .vorb i{position:absolute;inset:0;border-radius:50%;border:2px solid color-mix(in srgb,var(--g) 65%,#fff);opacity:0;animation:none!important}
html body .vo[data-s=listen] .vorb i{animation:voring 2.4s ease-out infinite!important}
html body .vo[data-s=listen] .vorb i:nth-child(2){animation-delay:.8s!important}
html body .vo[data-s=listen] .vorb i:nth-child(3){animation-delay:1.6s!important}
@keyframes voring{from{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}
html body .vo .vorb::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:3px solid transparent;border-top-color:#fff;border-right-color:var(--g);opacity:0;transition:opacity .3s}
html body .vo[data-s=think] .vorb::after{opacity:1;animation:vospin 1s linear infinite}
@keyframes vospin{to{transform:rotate(360deg)}}
/* equalizer (transform only) */
html body .vo .vob{display:flex;gap:5px;align-items:center;height:48px}
html body .vo .vob b{width:5px;height:44px;border-radius:9px;background:linear-gradient(var(--g),var(--v,#7b3cff));transform:scaleY(.14);opacity:.5;animation:none!important;box-shadow:none!important}
html body .vo[data-s=listen] .vob b,html body .vo[data-s=think] .vob b{opacity:1;animation:voeq 1s ease-in-out infinite alternate!important;animation-delay:calc(var(--i)*-.13s)!important}
html body .vo[data-s=speak] .vob b,html body .vo[data-s=greet] .vob b,html body .vo[data-s=go] .vob b{opacity:1;animation:voeq .45s ease-in-out infinite alternate!important;animation-delay:calc(var(--i)*-.11s)!important}
@keyframes voeq{from{transform:scaleY(.14)}to{transform:scaleY(1)}}
/* status chip, transcript, answer */
html body .vo h2{display:inline-flex;align-items:center;gap:10px;margin:4px 0 0;padding:7px 18px;border-radius:99px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);font-size:15px;font-weight:700;color:#fff;-webkit-text-fill-color:#fff;animation:none!important}
html body .vo h2::before{content:"";width:8px;height:8px;border-radius:50%;background:#6dffb0}
html body .vo[data-s=listen] h2::before{background:#ff4d6d;animation:vopl 1s ease-in-out infinite}
html body .vo[data-s=think] h2::before{background:#ffb84d;animation:vopl .8s ease-in-out infinite}
@keyframes vopl{50%{transform:scale(1.7);opacity:.5}}
html body .vo .vot{margin:0;min-height:1.3em;max-width:100%;font-size:clamp(20px,3.6vw,28px);font-weight:700;line-height:1.3;color:#fff;overflow-wrap:anywhere;animation:none!important}
html body .vo .vans{width:100%;max-height:34vh;overflow:auto;text-align:start;padding:16px 20px;border-radius:20px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);font-size:16px;line-height:1.7;color:#efe8ff;animation:voup .5s var(--ease) both!important}
@keyframes voup{from{opacity:0;transform:translateY(14px)}}
html body .vo .vsub{margin:0;font-size:13px;color:rgba(255,255,255,.6);animation:none!important}
html body .vo .vcd{width:200px;height:4px;border-radius:9px;background:rgba(255,255,255,.15);overflow:hidden}
html body .vo .vcd i{display:block;height:100%;background:var(--g);transform-origin:left;animation:vocd 3.5s linear forwards!important}
@keyframes vocd{to{transform:scaleX(0)}}
html body .vo input{width:100%;text-align:center;font-size:20px;padding:15px 20px;border-radius:99px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:#fff}
html body .vo .row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;animation:none!important}

/* ===== A-AI tab (ai.png) + GC icon (gc.png) ===== */
#aif0 b{padding:0}
#aif0 b img{width:86%;height:86%;object-fit:cover;border-radius:50%;display:block}
.aih>i{overflow:hidden;border-radius:50%}.aih>i img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.av.gcb{border-radius:50%;overflow:hidden;background:none}.av.gcb img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.chd .av.gcb{width:34px;height:34px;flex:none;margin-inline-end:10px}.chd{display:flex;align-items:center}

/* ===== PHONE SMOOTHNESS (html.lite = phones / touch screens) ===== */
html.lite{scroll-behavior:auto}
html.lite body{overscroll-behavior-y:none}
html.lite *{-webkit-tap-highlight-color:transparent;will-change:auto!important}
html.lite .rv{filter:none!important}
html.lite .rv.in{animation:none!important;opacity:1;transition:opacity .25s}
html.lite body .box,html.lite body .card,html.lite body .mod,html.lite body .rooms{box-shadow:none!important}
html.lite .card,html.lite .post,html.lite .it{content-visibility:auto;contain-intrinsic-size:auto 240px}
html.lite .btn,html.lite .card,html.lite .box,html.lite nav a{transition:none}
html.lite .vo::before{animation:none!important}
html.lite .vo .vorb i{animation-duration:3s!important}
html.lite #splash img{animation:none}
@media(hover:none){.card:hover,.btn:hover,.rooms button:hover,.box:hover{transform:none!important;box-shadow:none}}
.chd b{flex:1;text-align:start}