/* ============================================================
   LITHIUM — "Clean / Glass & soft" system
   Light, airy, generous whitespace. Real frosted glass over a
   soft emerald gradient mesh. Dark code-window as the hero
   centerpiece (Stripe-style). One signature: soft armor assembly.
   Boldness spent on restraint + precision, not loud accents.
   ============================================================ */
:root{
  /* brand */
  --emerald:#0a9d5e;
  --emerald-2:#0bbd70;
  --teal:#0eb3a4;
  --mint:#9ff0cf;

  /* LIGHT (default) */
  --bg:#f4f8f6;
  --ink:#0c1d15;
  --text:#0d2018;
  --text-dim:#566c61;
  --text-faint:#8b9d93;
  --line:rgba(12,40,28,.09);
  --line-strong:rgba(12,40,28,.14);

  --glass:rgba(255,255,255,.6);
  --glass-2:rgba(255,255,255,.74);
  --glass-border:rgba(255,255,255,.85);
  --glass-hi:rgba(255,255,255,.75);
  --solid:#ffffff;

  --accent:var(--emerald);
  --accent-2:var(--emerald-2);
  --accent-soft:rgba(10,157,94,.1);
  --accent-line:rgba(10,157,94,.28);
  --grad:linear-gradient(135deg,#0eb3a4,#0a9d5e 60%,#0a8f55);

  --shadow-soft:0 24px 60px -28px rgba(10,45,30,.22),0 4px 14px -6px rgba(10,45,30,.1);
  --shadow-hover:0 36px 80px -30px rgba(10,45,30,.28),0 6px 18px -6px rgba(10,45,30,.12);
  --shadow-glass:inset 0 1px 0 rgba(255,255,255,.7);

  /* code window stays dark in both themes */
  --code-bg:#0c1612;
  --code-bg-2:#0a120e;
  --code-border:rgba(120,255,200,.16);
  --code-text:#cfeede;
  --code-dim:#7e978b;
  --code-accent:#34e89c;
}
html[data-theme="dark"]{
  --bg:#091210;
  --ink:#e8f4ee;
  --text:#e8f4ee;
  --text-dim:#9bb1a6;
  --text-faint:#647a6f;
  --line:rgba(255,255,255,.09);
  --line-strong:rgba(255,255,255,.16);

  --glass:rgba(255,255,255,.045);
  --glass-2:rgba(255,255,255,.07);
  --glass-border:rgba(255,255,255,.12);
  --glass-hi:rgba(255,255,255,.06);
  --solid:#0e1a15;

  --accent:#22e89a;
  --accent-2:#54ffba;
  --accent-soft:rgba(34,232,154,.12);
  --accent-line:rgba(34,232,154,.3);
  --grad:linear-gradient(135deg,#22e8c4,#22e89a 60%,#10c178);

  --shadow-soft:0 24px 60px -28px rgba(0,0,0,.7),0 4px 14px -6px rgba(0,0,0,.5);
  --shadow-hover:0 36px 80px -30px rgba(0,0,0,.8);
  --shadow-glass:inset 0 1px 0 rgba(255,255,255,.08);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--text);
  font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;letter-spacing:-.005em;
  transition:background .45s ease,color .45s ease;
}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;letter-spacing:0}
h1,h2,h3,h4{font-family:"Plus Jakarta Sans";line-height:1.08;letter-spacing:-.03em;font-weight:700}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
::selection{background:var(--accent);color:#fff}

/* soft gradient mesh backdrop */
.mesh{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.mesh i{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55}
.mesh i:nth-child(1){width:620px;height:620px;background:radial-gradient(circle,var(--mint),transparent 65%);top:-180px;left:-120px;animation:float1 24s ease-in-out infinite}
.mesh i:nth-child(2){width:520px;height:520px;background:radial-gradient(circle,#bfeede,transparent 65%);top:8%;right:-140px;animation:float2 30s ease-in-out infinite}
.mesh i:nth-child(3){width:480px;height:480px;background:radial-gradient(circle,#d7f5ea,transparent 65%);top:46%;left:30%;animation:float1 34s ease-in-out infinite}
html[data-theme="dark"] .mesh i{opacity:.16}
html[data-theme="dark"] .mesh i:nth-child(1){background:radial-gradient(circle,#0fae72,transparent 65%)}
html[data-theme="dark"] .mesh i:nth-child(2){background:radial-gradient(circle,#0eb3a4,transparent 65%)}
html[data-theme="dark"] .mesh i:nth-child(3){background:radial-gradient(circle,#0a9d5e,transparent 65%)}
@keyframes float1{0%,100%{transform:translate(0,0)}50%{transform:translate(60px,-40px)}}
@keyframes float2{0%,100%{transform:translate(0,0)}50%{transform:translate(-70px,50px)}}

.wrap{max-width:1160px;margin:0 auto;padding:0 26px;position:relative;z-index:1}
.scroll-prog{position:fixed;top:0;left:0;height:2px;width:0;background:var(--grad);z-index:100;transition:width .08s linear}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55em;padding:.85em 1.45em;border-radius:12px;font-weight:600;font-size:.95rem;white-space:nowrap;transition:transform .2s cubic-bezier(.2,.8,.3,1),box-shadow .25s,background .25s,border-color .25s,color .2s;position:relative;overflow:hidden}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 12px 30px -12px rgba(10,157,94,.6)}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.4) 50%,transparent 65%);transform:translateX(-130%);transition:transform .65s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 42px -14px rgba(10,157,94,.7)}
.btn-primary:hover::after{transform:translateX(130%)}
.btn-ghost{border:1px solid var(--line-strong);color:var(--text);background:var(--glass-2);backdrop-filter:blur(10px)}
.btn-ghost:hover{border-color:var(--accent-line);color:var(--accent);transform:translateY(-2px)}
.btn-block{width:100%;justify-content:center}
.btn-lg{padding:1.02em 1.85em;font-size:1rem}

/* periodic Li mark */
.li-mark{display:inline-grid;place-content:center;position:relative;width:38px;height:38px;border-radius:11px;background:var(--grad);font-family:"Plus Jakarta Sans";font-weight:800;font-size:1rem;color:#fff;flex:none;box-shadow:0 6px 16px -6px rgba(10,157,94,.6)}
.li-mark::before{content:"3";position:absolute;top:3px;left:6px;font-size:.48rem;opacity:.7;font-family:"IBM Plex Mono"}
.li-mark::after{content:"6.94";position:absolute;bottom:2px;right:0;left:0;text-align:center;font-size:.4rem;opacity:.7;font-family:"IBM Plex Mono"}

/* glass primitive */
.glass{background:var(--glass);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border:1px solid var(--glass-border);border-radius:20px;box-shadow:var(--shadow-soft),var(--shadow-glass)}

/* ============================ NAV ============================ */
header.nav{position:sticky;top:14px;z-index:60;margin:14px auto 0;max-width:1160px;padding:0 14px;width:calc(100% - 28px)}
.nav-inner{display:flex;align-items:center;gap:24px;height:60px;padding:0 16px;border-radius:16px;background:var(--glass-2);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);box-shadow:0 10px 30px -18px rgba(10,45,30,.2),var(--shadow-glass);transition:box-shadow .3s}
header.nav.scrolled .nav-inner{box-shadow:0 16px 40px -20px rgba(10,45,30,.3),var(--shadow-glass)}
.brand{display:flex;align-items:center;gap:11px;font-family:"Plus Jakarta Sans";font-weight:800;font-size:1.15rem;letter-spacing:-.02em}
.brand .dot{color:var(--accent)}
.nav-links{display:flex;gap:2px;margin-left:4px}
.nav-links a{padding:.5em .8em;border-radius:9px;font-size:.9rem;color:var(--text-dim);font-weight:500;transition:color .2s,background .2s;position:relative}
.nav-links a:hover{color:var(--text);background:var(--accent-soft)}
.nav-links a.active{color:var(--accent);background:var(--accent-soft)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:9px}
#navAuth{display:inline-flex;align-items:center;gap:9px}
.theme-toggle{width:38px;height:38px;border-radius:11px;border:1px solid var(--line-strong);display:grid;place-content:center;color:var(--text-dim);background:var(--glass);transition:.25s}
.theme-toggle:hover{color:var(--accent);border-color:var(--accent-line);transform:rotate(-12deg)}
.theme-toggle svg{width:18px;height:18px}
.hamburger{display:none;width:40px;height:40px;border:1px solid var(--line-strong);border-radius:11px;place-content:center;color:var(--text)}
.account-chip{display:flex;align-items:center;gap:8px;padding:.4em .55em .4em .8em;border:1px solid var(--line-strong);border-radius:11px;font-size:.85rem;background:var(--glass);transition:border-color .2s}
.account-chip:hover{border-color:var(--accent-line)}
.account-chip .av{width:24px;height:24px;border-radius:7px;background:var(--grad);color:#fff;display:grid;place-content:center;font-weight:700;font-size:.8rem}
.logout-form{display:inline-flex;margin:0}
.logout-btn{width:38px;height:38px;border-radius:11px;border:1px solid var(--line-strong);display:grid;place-content:center;color:var(--text-dim);background:var(--glass);cursor:pointer;transition:.25s}
.logout-btn:hover{color:var(--accent);border-color:var(--accent-line)}
.logout-btn svg{width:18px;height:18px}

/* ============================ PAGES ============================ */
.page{display:none}
.page.active{display:block}
section{padding:104px 0}
.eyebrow{font-family:"IBM Plex Mono";font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:.65em;margin-bottom:20px}
.eyebrow::before{content:"";width:24px;height:2px;border-radius:2px;background:var(--grad)}
.section-head{max-width:680px;margin-bottom:60px}
.section-head h2{font-size:clamp(2rem,4.4vw,3.1rem);font-weight:700;letter-spacing:-.035em}
.section-head p{color:var(--text-dim);margin-top:18px;font-size:1.1rem}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.07s}.reveal-d2{transition-delay:.14s}.reveal-d3{transition-delay:.21s}

/* ============================ HERO ============================ */
.hero{padding:78px 0 64px;text-align:center;position:relative}
.badge-pill{display:inline-flex;align-items:center;gap:.6em;padding:.5em 1em;border-radius:100px;font-family:"IBM Plex Mono";font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);background:var(--glass-2);border:1px solid var(--glass-border);backdrop-filter:blur(10px);box-shadow:var(--shadow-glass);margin-bottom:28px}
.badge-pill .led{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.4}}
.hero h1{font-size:clamp(2.7rem,6.2vw,5rem);font-weight:800;letter-spacing:-.04em;margin:0 auto;max-width:14ch}
.hero h1 .acc{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{color:var(--text-dim);font-size:1.2rem;margin:26px auto 0;max-width:600px}
.hero-cta{display:flex;gap:14px;margin-top:36px;justify-content:center;flex-wrap:wrap}
.hero-trust{margin-top:26px;font-family:"IBM Plex Mono";font-size:.78rem;color:var(--text-faint);letter-spacing:.04em}

/* hero rise */
.rise{opacity:0;transform:translateY(22px);animation:rise .85s cubic-bezier(.2,.7,.3,1) forwards}
.rise-1{animation-delay:.05s}.rise-2{animation-delay:.14s}.rise-3{animation-delay:.23s}.rise-4{animation-delay:.32s}.rise-5{animation-delay:.41s}.rise-6{animation-delay:.5s}
@keyframes rise{to{opacity:1;transform:none}}

/* hero code window (dark, floating) */
.hero-window-wrap{margin:64px auto 0;max-width:840px;perspective:1600px}
.hero-window{border-radius:18px;overflow:hidden;background:linear-gradient(165deg,var(--code-bg),var(--code-bg-2));border:1px solid var(--code-border);box-shadow:0 50px 100px -40px rgba(10,45,30,.5),0 20px 50px -30px rgba(10,45,30,.35),inset 0 1px 0 rgba(255,255,255,.06);transition:transform .3s ease;animation:floaty 7s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.win-bar{display:flex;align-items:center;gap:7px;padding:15px 18px;border-bottom:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02)}
.win-bar .d{width:11px;height:11px;border-radius:50%}
.win-bar .d:nth-child(1){background:#ff5f57}.win-bar .d:nth-child(2){background:#febc2e}.win-bar .d:nth-child(3){background:#28c840}
.win-bar .ttl{margin-left:10px;font-family:"IBM Plex Mono";font-size:.76rem;color:var(--code-dim)}
.console-body{padding:24px 26px;font-family:"IBM Plex Mono";font-size:.85rem;line-height:1.95;min-height:340px;text-align:left;color:var(--code-text)}
.console-body .cmd .p{color:var(--code-accent)}
.console-body .ln{display:flex;justify-content:space-between;opacity:0;transform:translateX(-8px);transition:opacity .3s,transform .3s;color:var(--code-dim)}
.console-body .ln.show{opacity:1;transform:none}
.console-body .ln .ok{color:var(--code-accent);font-weight:600}
.console-body .done{margin-top:10px;color:var(--code-accent);font-weight:600;opacity:0;transition:opacity .4s}
.console-body .done.show{opacity:1}
.cursor{display:inline-block;width:9px;height:1.05em;background:var(--code-accent);vertical-align:-2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}

/* ---------- logos / spec strip ---------- */
.spec-strip{padding:30px 0;overflow:hidden;position:relative}
.spec-strip::before,.spec-strip::after{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none}
.spec-strip::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.spec-strip::after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}
.spec-track{display:flex;gap:44px;font-family:"IBM Plex Mono";font-size:.8rem;letter-spacing:.05em;color:var(--text-faint);white-space:nowrap;animation:scroll 38s linear infinite;width:max-content}
.spec-track span{display:inline-flex;align-items:center;gap:.5em}
.spec-track span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- feature cards ---------- */
.f-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.f-card{background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:20px;padding:30px 28px;box-shadow:var(--shadow-soft),var(--shadow-glass);transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}
.f-card::after{content:"";position:absolute;inset:0;border-radius:20px;opacity:0;transition:opacity .35s;background:radial-gradient(400px circle at var(--mx,50%) var(--my,50%),var(--accent-soft),transparent 45%);pointer-events:none}
.f-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover),var(--shadow-glass)}
.f-card:hover::after{opacity:1}
.f-card .ic{width:46px;height:46px;border-radius:13px;background:var(--accent-soft);color:var(--accent);display:grid;place-content:center;margin-bottom:20px;transition:transform .3s}
.f-card:hover .ic{transform:scale(1.08) rotate(-4deg)}
.f-card .ic svg{width:22px;height:22px}
.f-card .tag{font-family:"IBM Plex Mono";font-size:.68rem;letter-spacing:.12em;color:var(--text-faint);text-transform:uppercase}
.f-card h3{font-size:1.22rem;font-weight:700;margin:7px 0 11px;letter-spacing:-.02em}
.f-card p{color:var(--text-dim);font-size:.94rem;position:relative;z-index:1}

/* ============================================================
   SIGNATURE MOTION: SOFT ARMOR ASSEMBLY (scroll-pinned)
   ============================================================ */
.assembly{position:relative;height:380vh}
.assembly-stage{position:sticky;top:0;height:100vh;display:flex;align-items:center;overflow:hidden}
.assembly-stage .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;width:100%}

/* ---- binary chip + armor overlays ---- */
.reactor-card{display:grid;place-items:center;min-height:480px}
.bin-stage{position:relative;width:100%;max-width:420px;aspect-ratio:1;display:grid;place-items:center}
.bin-stage::before{content:"";position:absolute;width:78%;height:78%;border-radius:50%;background:radial-gradient(circle,var(--accent-soft),transparent 70%);filter:blur(32px);opacity:.35;transition:opacity .6s,transform .6s}
.bin-stage.sealed::before{opacity:1;transform:scale(1.18)}
.ff{position:absolute;width:97%;height:97%;border-radius:32px;border:1.5px solid var(--accent-line);box-shadow:0 0 44px -6px var(--accent-line),inset 0 0 44px -12px var(--accent-line);opacity:0;transform:scale(.85);transition:opacity .6s cubic-bezier(.2,.8,.3,1),transform .6s cubic-bezier(.2,.8,.3,1)}
.ff.show{opacity:1;transform:scale(1);animation:ffpulse 3s ease-in-out infinite}
@keyframes ffpulse{50%{box-shadow:0 0 64px -3px var(--accent-line),inset 0 0 54px -10px var(--accent-line)}}
.armor{position:absolute;border-radius:26px;border:1px solid var(--accent-line);opacity:0;transform:scale(.82);transition:opacity .5s,transform .5s}
.armor.show{opacity:.65;transform:scale(1)}
.armor-1{width:80%;height:80%}
.armor-2{width:90%;height:90%;border-style:dashed}
.sensors span{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);opacity:0;transform:scale(0);transition:opacity .4s,transform .4s}
.sensors.show span{opacity:1;transform:scale(1);animation:sense 1.8s ease-in-out infinite}
.sensors span:nth-child(1){top:5%;left:50%}
.sensors span:nth-child(2){top:50%;right:5%;animation-delay:.3s}
.sensors span:nth-child(3){bottom:5%;left:50%;animation-delay:.6s}
.sensors span:nth-child(4){top:50%;left:5%;animation-delay:.9s}
.sensors span:nth-child(5){top:13%;right:13%;animation-delay:1.2s}
@keyframes sense{50%{opacity:.35;transform:scale(.65)}}
.scanbeam{position:absolute;left:9%;right:9%;height:2px;top:9%;background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 12px var(--accent);opacity:0;border-radius:2px;pointer-events:none;z-index:5}
.scanbeam.sweep{animation:sweep .85s ease-in-out}
@keyframes sweep{0%{opacity:0;top:9%}12%{opacity:1}88%{opacity:1}100%{opacity:0;top:87%}}
.bin-chip{position:relative;width:min(360px,86%);background:linear-gradient(165deg,var(--code-bg),var(--code-bg-2));border:1.5px dashed rgba(232,178,126,.5);border-radius:16px;padding:15px 16px 17px;box-shadow:0 32px 64px -28px rgba(10,45,30,.55),inset 0 1px 0 rgba(255,255,255,.05);transition:border-color .5s,box-shadow .5s;z-index:3}
.bin-chip.sealed{border-style:solid;border-color:var(--accent-line);box-shadow:0 32px 72px -24px rgba(10,157,94,.5),0 0 34px -6px var(--accent-line),inset 0 1px 0 rgba(255,255,255,.06)}
.bin-head{display:flex;align-items:center;gap:9px;padding-bottom:11px;margin-bottom:11px;border-bottom:1px solid rgba(255,255,255,.07)}
.bin-ic{width:24px;height:24px;border-radius:7px;background:var(--accent-soft);color:var(--code-accent);display:grid;place-content:center;flex:none}
.bin-ic svg{width:14px;height:14px}
.bin-name{font-size:.82rem;color:var(--code-text);font-weight:600;transition:color .4s}
.bin-status{margin-left:auto;font-family:"IBM Plex Mono";font-size:.58rem;letter-spacing:.1em;padding:.34em .6em;border-radius:6px;font-weight:600;transition:.4s;white-space:nowrap}
.bin-status.exposed{background:rgba(232,178,126,.16);color:#e8b27e;border:1px solid rgba(232,178,126,.4)}
.bin-status.sealed{background:var(--accent-soft);color:var(--code-accent);border:1px solid var(--accent-line)}
.bin-stats{font-size:.62rem;color:var(--code-dim);margin-bottom:12px;letter-spacing:.02em}
.bin-code{display:flex;flex-direction:column;gap:7px;min-height:118px}
.bin-line{font-size:.72rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}
.c-code{color:#cfeede}.c-str{color:#e8b27e}.c-imp{color:#84b6e8}.c-hex{color:#6d877b}.c-redact{color:#3f7d63;letter-spacing:1.5px}.c-vm{color:var(--code-accent)}.c-dim{color:#5f786d;font-style:italic}.c-ok{color:var(--code-accent)}
.membrane{position:absolute;inset:0;border-radius:16px;background:linear-gradient(135deg,rgba(34,232,154,.1),rgba(14,179,164,.04));opacity:0;pointer-events:none;overflow:hidden;transition:opacity .5s;z-index:2}
.membrane.show{opacity:1}
.membrane::after{content:"";position:absolute;top:0;left:-60%;width:55%;height:100%;background:linear-gradient(105deg,transparent,rgba(120,255,200,.22),transparent);animation:sheen 3.4s ease-in-out infinite}
@keyframes sheen{0%{left:-60%}60%,100%{left:120%}}
.lock-badge,.seal-badge{position:absolute;width:30px;height:30px;border-radius:50%;display:grid;place-content:center;color:#04140c;background:var(--grad);box-shadow:0 6px 16px -4px var(--accent-line);opacity:0;transform:scale(0) rotate(-30deg);transition:opacity .4s cubic-bezier(.2,1.5,.4,1),transform .4s cubic-bezier(.2,1.5,.4,1);z-index:4}
.lock-badge svg,.seal-badge svg{width:15px;height:15px}
.lock-badge{right:-12px;top:-12px}
.seal-badge{left:-12px;bottom:-12px}
.lock-badge.show,.seal-badge.show{opacity:1;transform:scale(1) rotate(0)}
.assembly-panel{max-width:430px}
.assembly-step-no{font-family:"IBM Plex Mono";font-size:.8rem;letter-spacing:.18em;color:var(--accent);margin-bottom:16px}
.assembly-panel h2{font-size:clamp(1.9rem,3.6vw,2.7rem);font-weight:700;min-height:1.1em;letter-spacing:-.035em}
.assembly-key{display:block;transition:opacity .4s,transform .4s}
.assembly-panel .desc{color:var(--text-dim);font-size:1.06rem;margin-top:16px;min-height:3.4em}
.assembly-list{list-style:none;margin-top:30px;display:flex;flex-direction:column;gap:3px}
.assembly-list li{display:flex;align-items:center;gap:12px;padding:9px 14px;border-radius:11px;font-size:.88rem;color:var(--text-faint);transition:color .35s,background .35s;font-family:"IBM Plex Mono"}
.assembly-list li .num{width:22px;font-size:.74rem;opacity:.7}
.assembly-list li .tick{margin-left:auto;opacity:0;color:var(--accent);transition:opacity .35s}
.assembly-list li.done{color:var(--text-dim)}
.assembly-list li.done .tick{opacity:1}
.assembly-list li.active{color:var(--text);background:var(--accent-soft)}
.assembly-hint{position:absolute;bottom:30px;left:0;right:0;text-align:center;font-family:"IBM Plex Mono";font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);transition:opacity .4s}
.assembly-hint .mouse{display:inline-block;width:18px;height:28px;border:1.5px solid var(--text-faint);border-radius:10px;position:relative;vertical-align:middle;margin-right:10px}
.assembly-hint .mouse::after{content:"";position:absolute;top:5px;left:50%;transform:translateX(-50%);width:2px;height:6px;background:var(--text-faint);border-radius:2px;animation:scrolldot 1.6s infinite}
@keyframes scrolldot{0%{opacity:1;top:5px}60%{opacity:0;top:13px}100%{opacity:0}}

/* ---------- pipeline ---------- */
.pipe{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pipe .step{background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:18px;padding:30px 26px;box-shadow:var(--shadow-soft),var(--shadow-glass);position:relative;transition:transform .25s}
.pipe .step:hover{transform:translateY(-5px)}
.pipe .step .n{font-family:"IBM Plex Mono";font-size:.78rem;color:var(--accent);letter-spacing:.1em}
.pipe .step h4{font-size:1.16rem;margin:14px 0 9px;font-weight:700;letter-spacing:-.02em}
.pipe .step p{color:var(--text-dim);font-size:.9rem}

/* ---------- pricing ---------- */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.price-card{background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:22px;padding:36px 30px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-soft),var(--shadow-glass);transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}
.price-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-hover),var(--shadow-glass)}
.price-card.feat{background:linear-gradient(180deg,rgba(10,157,94,.08),var(--glass));border-color:var(--accent-line)}
.price-card.feat::before{content:"BELIEBT";position:absolute;top:20px;right:20px;background:var(--grad);color:#fff;font-family:"IBM Plex Mono";font-size:.62rem;font-weight:600;letter-spacing:.14em;padding:.42em .85em;border-radius:8px}
.price-card .pname{font-family:"Plus Jakarta Sans";font-size:1.35rem;font-weight:700;letter-spacing:-.02em}
.price-card .pdesc{color:var(--text-dim);font-size:.9rem;margin-bottom:16px}
.price-card .amt{display:flex;align-items:baseline;gap:6px;margin:6px 0}
.price-card .amt b{font-family:"Plus Jakarta Sans";font-size:2.8rem;font-weight:800;letter-spacing:-.04em}
.price-card .amt span{color:var(--text-faint);font-size:.92rem}
.price-card ul{list-style:none;margin:22px 0 28px;display:flex;flex-direction:column;gap:13px}
.price-card li{display:flex;align-items:flex-start;gap:11px;font-size:.92rem;color:var(--text-dim)}
.price-card li .ck{width:20px;height:20px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-content:center;flex:none;margin-top:1px}
.price-card li .ck svg{width:12px;height:12px}
.price-card .btn{margin-top:auto}
.price-note{text-align:center;color:var(--text-faint);font-size:.84rem;margin-top:30px;font-family:"IBM Plex Mono"}

/* ---------- panels / forms ---------- */
.panel{background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:22px;padding:34px;box-shadow:var(--shadow-soft),var(--shadow-glass)}
.field{margin-bottom:16px}
.field label{display:block;font-size:.82rem;font-weight:600;color:var(--text-dim);margin-bottom:8px}
.field input,.field select{width:100%;padding:.9em 1.05em;border-radius:12px;border:1px solid var(--line-strong);background:var(--glass-2);color:var(--text);font-family:"Plus Jakarta Sans";font-size:.95rem;transition:border-color .2s,box-shadow .2s}
.field input.mono{font-family:"IBM Plex Mono"}
.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.field input::placeholder{color:var(--text-faint)}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.notice{display:flex;gap:12px;align-items:flex-start;padding:15px 17px;border-radius:14px;border:1px solid var(--accent-line);background:var(--accent-soft);font-size:.88rem;color:var(--text)}
.notice svg{width:18px;height:18px;color:var(--accent);flex:none;margin-top:2px}
.tabs{display:flex;gap:8px;background:var(--glass-2);padding:6px;border-radius:14px;border:1px solid var(--line);margin-bottom:24px}
.tabs button{flex:1;padding:.74em;border-radius:10px;font-weight:600;font-size:.9rem;color:var(--text-dim);display:flex;align-items:center;justify-content:center;gap:8px;transition:.2s}
.tabs button.active{background:var(--solid);color:var(--accent);box-shadow:var(--shadow-soft)}
.tabs button svg{width:18px;height:18px}
.checkout-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:26px;align-items:start}
.summary-line{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:.94rem}
.summary-line.total{border-bottom:none;padding-top:16px;font-family:"Plus Jakarta Sans";font-size:1.35rem;font-weight:800;letter-spacing:-.03em}
.summary-line .muted{color:var(--text-dim)}
.paypal-box{display:flex;flex-direction:column;align-items:center;gap:14px;padding:32px;border:1px dashed var(--line-strong);border-radius:16px;text-align:center}
.paypal-btn{background:#ffc439;color:#003087;font-weight:700;padding:.95em 2.6em;border-radius:24px;font-family:"Plus Jakarta Sans";font-size:1.05rem;transition:filter .2s,transform .2s}
.paypal-btn:hover{filter:brightness(1.05);transform:translateY(-2px)}

/* ---------- dashboard ---------- */
.dash-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:38px;flex-wrap:wrap}
.dash-head h1{font-size:clamp(1.9rem,4vw,2.7rem);font-weight:800;letter-spacing:-.035em}
.dash-head p{color:var(--text-dim);margin-top:8px}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}
.stat{background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:18px;padding:22px 24px;box-shadow:var(--shadow-soft),var(--shadow-glass);transition:transform .25s}
.stat:hover{transform:translateY(-4px)}
.stat .k{font-family:"IBM Plex Mono";font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}
.stat .v{font-family:"Plus Jakarta Sans";font-size:1.85rem;font-weight:800;margin-top:8px;letter-spacing:-.03em}
.stat .v.accent{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lic-card{background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:20px;padding:28px 30px;margin-bottom:16px;box-shadow:var(--shadow-soft),var(--shadow-glass);position:relative;overflow:hidden}
.lic-card::after{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--grad)}
.lic-top{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.lic-top .pname{font-family:"Plus Jakarta Sans";font-size:1.3rem;font-weight:700;letter-spacing:-.02em}
.badge{font-family:"IBM Plex Mono";font-size:.66rem;letter-spacing:.1em;padding:.45em .85em;border-radius:8px;font-weight:600}
.badge.active{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line)}
.badge.expired{background:rgba(255,95,87,.12);color:#e0524a;border:1px solid #e0524a}
.kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 30px;margin-bottom:18px}
.kv .k{font-family:"IBM Plex Mono";font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:7px}
.kv .v{font-family:"IBM Plex Mono";font-size:.9rem;color:var(--text);word-break:break-all}
.copy-row{display:flex;align-items:center;gap:10px;background:var(--glass-2);border:1px solid var(--line);border-radius:11px;padding:.65em .85em}
.copy-row code{font-family:"IBM Plex Mono";font-size:.86rem;flex:1;word-break:break-all;color:var(--accent)}
.copy-btn{color:var(--text-dim);display:grid;place-content:center;width:30px;height:30px;border-radius:8px;flex:none;transition:.2s}
.copy-btn:hover{color:var(--accent);background:var(--accent-soft)}
.copy-btn svg{width:16px;height:16px}
.feat-chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-family:"IBM Plex Mono";font-size:.72rem;padding:.4em .75em;border-radius:8px;background:var(--glass-2);border:1px solid var(--line);color:var(--text-dim)}
.dl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.dl{display:flex;align-items:center;gap:14px;padding:20px;background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-soft),var(--shadow-glass);transition:.25s}
.dl:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover),var(--shadow-glass)}
.dl .ic{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-content:center;flex:none}
.dl .ic svg{width:20px;height:20px}
.dl .t{font-weight:700;font-size:.95rem;letter-spacing:-.01em}
.dl .s{font-family:"IBM Plex Mono";font-size:.74rem;color:var(--text-faint)}

/* ---------- orders ---------- */
.table-wrap{background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:20px;overflow:hidden;overflow-x:auto;box-shadow:var(--shadow-soft),var(--shadow-glass)}
table{width:100%;border-collapse:collapse;min-width:680px}
th{font-family:"IBM Plex Mono";font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);text-align:left;padding:18px 22px;border-bottom:1px solid var(--line)}
td{padding:17px 22px;border-bottom:1px solid var(--line);font-size:.9rem;vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr{transition:background .2s}
tbody tr:hover{background:var(--accent-soft)}
td .mono{font-family:"IBM Plex Mono";font-size:.84rem;color:var(--text-dim)}
.link-act{color:var(--accent);font-weight:600;font-size:.86rem;cursor:pointer}
.link-act:hover{text-decoration:underline}

/* empty / auth / legal */
.empty{text-align:center;padding:64px 20px}
.empty .ic{width:64px;height:64px;border-radius:18px;background:var(--accent-soft);color:var(--accent);display:grid;place-content:center;margin:0 auto 22px}
.empty .ic svg{width:28px;height:28px}
.empty h3{font-size:1.3rem;margin-bottom:10px;font-weight:700}
.empty p{color:var(--text-dim);margin-bottom:24px}
.auth-wrap{max-width:440px;margin:0 auto}
.auth-card{background:var(--glass-2);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--glass-border);border-radius:24px;padding:40px;box-shadow:var(--shadow-hover),var(--shadow-glass)}
.auth-card h2{font-size:1.8rem;font-weight:800;text-align:center;letter-spacing:-.03em}
.auth-card .sub{text-align:center;color:var(--text-dim);margin:8px 0 30px;font-size:.94rem}
.auth-switch{text-align:center;margin-top:22px;font-size:.9rem;color:var(--text-dim)}
.auth-switch a{color:var(--accent);font-weight:600;cursor:pointer}
.legal{max-width:760px}
.legal h1{font-size:clamp(2rem,4vw,2.7rem);font-weight:800;margin-bottom:8px;letter-spacing:-.035em}
.legal .updated{font-family:"IBM Plex Mono";font-size:.78rem;color:var(--text-faint);margin-bottom:38px}
.legal h2{font-size:1.15rem;font-weight:700;margin:32px 0 10px;letter-spacing:-.02em}
.legal p{color:var(--text-dim);margin-bottom:6px;line-height:1.8}
.legal address{font-style:normal;color:var(--text);margin:4px 0}
.legal a{color:var(--accent)}
.legal a:hover{text-decoration:underline}

/* footer */
footer{padding:60px 0 40px;margin-top:60px;border-top:1px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:38px;margin-bottom:46px}
.foot-brand p{color:var(--text-dim);font-size:.9rem;margin-top:18px;max-width:280px}
.foot-col h5{font-family:"IBM Plex Mono";font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin-bottom:18px}
.foot-col a{display:block;color:var(--text-dim);font-size:.9rem;padding:5px 0;transition:color .2s,transform .2s;cursor:pointer}
.foot-col a:hover{color:var(--accent);transform:translateX(3px)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:28px;border-top:1px solid var(--line);color:var(--text-faint);font-size:.82rem;font-family:"IBM Plex Mono"}

/* toast / modal */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(140%);background:var(--glass-2);backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--accent-line);border-radius:14px;padding:14px 20px;display:flex;align-items:center;gap:11px;z-index:200;box-shadow:var(--shadow-hover);transition:transform .45s cubic-bezier(.2,.9,.3,1);font-size:.92rem}
.toast.show{transform:translateX(-50%) translateY(0)}
.toast svg{width:19px;height:19px;color:var(--accent)}
.modal-bg{position:fixed;inset:0;background:rgba(8,25,16,.4);backdrop-filter:blur(8px);z-index:150;display:none;place-content:center;padding:24px}
.modal-bg.show{display:grid}
.modal{background:var(--glass-2);backdrop-filter:blur(28px) saturate(180%);border:1px solid var(--glass-border);border-radius:24px;padding:42px;max-width:440px;text-align:center;box-shadow:var(--shadow-hover),var(--shadow-glass);animation:pop .45s cubic-bezier(.2,.9,.3,1)}
@keyframes pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.modal .check{width:68px;height:68px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-content:center;margin:0 auto 24px;border:1px solid var(--accent-line)}
.modal .check svg{width:32px;height:32px}
.modal h3{font-size:1.5rem;margin-bottom:10px;font-weight:800;letter-spacing:-.03em}
.modal p{color:var(--text-dim);margin-bottom:26px}

/* mobile menu */
.mobile-menu{display:none;position:fixed;inset:90px 14px auto 14px;z-index:55;padding:14px;flex-direction:column;gap:4px;background:var(--glass-2);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--glass-border);border-radius:18px;box-shadow:var(--shadow-hover)}
.mobile-menu.open{display:flex}
.mobile-menu a{padding:.85em 1em;border-radius:11px;font-size:1.05rem;font-weight:600;color:var(--text-dim)}
.mobile-menu a.active{color:var(--accent);background:var(--accent-soft)}
.mobile-menu .logout-form{display:block}
.mobile-menu .logout-form button{width:100%;text-align:left;padding:.85em 1em;border-radius:11px;font-size:1.05rem;font-weight:600;font-family:inherit;color:var(--text-dim);background:none;border:0;cursor:pointer}
.mobile-menu .logout-form button:hover{color:var(--accent)}

@media(max-width:960px){
  .f-grid{grid-template-columns:repeat(2,1fr)}
  .pipe{grid-template-columns:1fr 1fr}
  .price-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto}
  .checkout-grid{grid-template-columns:1fr}
  .stat-row{grid-template-columns:repeat(2,1fr)}
  .dl-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr;gap:30px}
  .assembly{height:auto}
  .assembly-stage{position:static;height:auto;padding:84px 0}
  .assembly-stage .wrap{grid-template-columns:1fr;gap:50px}
  .assembly-hint{display:none}
  .bin-stage{max-width:340px}
  .assembly-panel h2,.assembly-panel .desc{min-height:0}
}
@media(max-width:680px){
  section{padding:70px 0}
  .nav-links{display:none}
  .hamburger{display:grid}
  .account-chip span{display:none}
  .f-grid{grid-template-columns:1fr}
  .pipe{grid-template-columns:1fr}
  .kv-grid{grid-template-columns:1fr}
  .row-2{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .reveal,.rise{opacity:1;transform:none}
  .hero-window{animation:none}
}
/* ---------- pro polish: scrollbar + focus ---------- */
html{scrollbar-color:var(--line-strong) transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:8px;border:3px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--accent-line)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
a:focus:not(:focus-visible),button:focus:not(:focus-visible),summary:focus:not(:focus-visible){outline:none}

/* ---------- billing toggle ---------- */
.bill-wrap{text-align:center}
.billing-toggle{display:inline-flex;align-items:center;gap:4px;background:var(--glass-2);border:1px solid var(--glass-border);border-radius:100px;padding:5px;margin:0 auto 46px;box-shadow:var(--shadow-glass);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%)}
.billing-toggle button{padding:.58em 1.25em;border-radius:100px;font-weight:600;font-size:.88rem;color:var(--text-dim);transition:.25s;display:inline-flex;align-items:center;gap:.55em}
.billing-toggle button.active{background:var(--solid);color:var(--accent);box-shadow:var(--shadow-soft)}
.billing-toggle .save{font-family:"IBM Plex Mono";font-size:.62rem;letter-spacing:.04em;background:var(--accent-soft);color:var(--accent);padding:.22em .5em;border-radius:6px;border:1px solid var(--accent-line)}
.price-card .amt{flex-wrap:wrap}
.price-card .amt .per-sub{flex-basis:100%;display:block;font-family:"IBM Plex Mono";font-size:.66rem;color:var(--text-faint);margin-top:5px;letter-spacing:.02em}

/* ---------- trust / stats band ---------- */
.trust{padding:60px 0}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.trust-card{background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:18px;padding:28px 24px;box-shadow:var(--shadow-soft),var(--shadow-glass);text-align:center}
.trust-card .v{font-family:"Plus Jakarta Sans";font-size:2.3rem;font-weight:800;letter-spacing:-.045em;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.trust-card .k{font-family:"IBM Plex Mono";font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-top:12px}

/* ---------- comparison ---------- */
.compare{background:var(--glass);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-soft),var(--shadow-glass)}
.compare-scroll{overflow-x:auto}
.compare table{width:100%;border-collapse:collapse;min-width:580px}
.compare th,.compare td{padding:17px 22px;text-align:left;border-bottom:1px solid var(--line);font-size:.92rem}
.compare thead th{font-family:"Plus Jakarta Sans";font-weight:700;font-size:.98rem;letter-spacing:-.015em;color:var(--text)}
.compare thead th.hl{color:var(--accent)}
.compare tbody tr:last-child td{border-bottom:none}
.compare td{color:var(--text-dim)}
.compare td.feat-name{color:var(--text);font-weight:500}
.compare .col-hl{background:var(--accent-soft)}
.cmp-yes{color:var(--accent);display:inline-grid;place-content:center}
.cmp-yes svg{width:18px;height:18px}
.cmp-no{color:var(--text-faint)}

/* ---------- FAQ ---------- */
.faq{max-width:760px;margin:0 auto}
.faq details{background:var(--glass);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border:1px solid var(--glass-border);border-radius:16px;margin-bottom:12px;box-shadow:var(--shadow-soft),var(--shadow-glass);overflow:hidden;transition:border-color .25s}
.faq details[open]{border-color:var(--accent-line)}
.faq summary{list-style:none;cursor:pointer;padding:20px 24px;font-family:"Plus Jakarta Sans";font-weight:600;font-size:1.02rem;letter-spacing:-.012em;display:flex;align-items:center;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:none;width:24px;height:24px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:grid;place-content:center;transition:transform .3s}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq summary .pm svg{width:14px;height:14px}
.faq .ans{padding:0 24px 22px;color:var(--text-dim);font-size:.95rem;line-height:1.72}
@media(max-width:960px){.trust-grid{grid-template-columns:repeat(2,1fr)}}

/* ---------- language dropdown (custom) ---------- */
.foot-bottom-right{display:inline-flex;align-items:center;gap:14px}
.lang-dd{position:relative;font-family:"IBM Plex Mono"}
.lang-dd-btn{display:inline-flex;align-items:center;gap:.55em;background:var(--glass-2);border:1px solid var(--glass-border);color:var(--text-dim);font-family:inherit;font-size:.76rem;letter-spacing:.02em;padding:.55em .8em;border-radius:10px;cursor:pointer;transition:color .22s,border-color .22s,background .22s}
.lang-dd-btn:hover{color:var(--text);border-color:var(--accent-line)}
.lang-dd.open .lang-dd-btn{color:var(--text);border-color:var(--accent-line);background:var(--solid)}
.lang-dd-btn .globe{width:14px;height:14px;opacity:.7;flex:none}
.lang-dd-btn .chev{width:12px;height:12px;opacity:.7;transition:transform .25s;flex:none}
.lang-dd.open .lang-dd-btn .chev{transform:rotate(180deg)}
.lang-dd-menu{position:absolute;right:0;bottom:calc(100% + 8px);min-width:160px;list-style:none;margin:0;padding:5px;background:var(--glass);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);border:1px solid var(--glass-border);border-radius:13px;box-shadow:var(--shadow-soft),var(--shadow-glass);opacity:0;transform:translateY(6px) scale(.97);transform-origin:bottom right;pointer-events:none;transition:opacity .2s,transform .2s;z-index:50}
.lang-dd.open .lang-dd-menu{opacity:1;transform:none;pointer-events:auto}
.lang-dd-menu li{display:flex;align-items:center;gap:.7em;padding:.6em .7em;border-radius:9px;font-size:.8rem;color:var(--text-dim);cursor:pointer;white-space:nowrap;transition:background .18s,color .18s;outline:none}
.lang-dd-menu li:hover,.lang-dd-menu li:focus-visible{background:var(--glass-2);color:var(--text)}
.lang-dd-menu li.active{color:var(--accent)}
.lang-dd-menu li .tag{font-size:.6rem;letter-spacing:.06em;padding:.22em .44em;border-radius:6px;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-line)}
.lang-dd-menu li .ck{margin-left:auto;width:15px;height:15px;color:var(--accent);opacity:0;transition:opacity .18s;flex:none}
.lang-dd-menu li.active .ck{opacity:1}
@media(prefers-reduced-motion:reduce){.lang-dd-menu,.lang-dd-btn .chev{transition:none}}
