/* ============================================================
   BUEVO — site styles
   Brand tokens, light/dark themes, three style directions.
   ============================================================ */

/* ---------- TOKENS ---------- */
:root{
  /* brand palette */
  --deep:#0d1f3c; --navy:#1e3f70; --blue:#3566ae; --mid:#4a7ec5;
  --lt:#7aa8d8; --pale:#c5d9f0; --ghost:#e8f1fa; --dot:#488aeb;
  --green:#1a8557; --green-lt:#5de0a0;

  /* fonts */
  --font-ui:"Plus Jakarta Sans", system-ui, sans-serif;
  --font-serif:"Spectral", Georgia, serif;
  --font-mono:"Space Grotesk", ui-monospace, monospace;
  --font-display:var(--font-serif);   /* swapped by style direction */

  /* semantic — LIGHT theme defaults */
  --bg:#ffffff;
  --bg-alt:#f4f7fb;
  --surface:#ffffff;
  --surface-2:#f8fafd;
  --border:#e2eaf4;
  --border-strong:#d2def0;
  --ink:#0d1f3c;
  --ink-2:#42597a;
  --ink-3:#7187a3;
  --accent:#2f63b8;
  --accent-2:#488aeb;
  --on-accent:#ffffff;
  --chip-bg:#eef4fc;
  --shadow:0 1px 2px rgba(13,31,60,.04), 0 18px 40px -28px rgba(13,31,60,.28);
  --shadow-lg:0 30px 80px -40px rgba(13,31,60,.45);
  --ring:rgba(72,138,235,.16);

  --card-radius:0.5rem;
  --btn-radius:0.5rem;
  --maxw:1320px;
  --pad-x:clamp(22px, 5vw, 64px);
  --sec-y:clamp(61px, 7.4vw, 109px);
}

/* ---------- DARK theme ---------- */
html[data-theme="dark"]{
  --bg:#091627;
  --bg-alt:#0c1d35;
  --surface:#11243f;
  --surface-2:#0e2038;
  --border:#1d3656;
  --border-strong:#274a6f;
  --ink:#f3f8ff;
  --ink-2:#acc6e6;
  --ink-3:#7493b8;
  --accent:#6ea4ef;
  --accent-2:#5de0a0;
  --on-accent:#06101f;
  --chip-bg:#152c4a;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 24px 50px -30px rgba(0,0,0,.7);
  --shadow-lg:0 40px 90px -45px rgba(0,0,0,.8);
  --ring:rgba(94,224,160,.18);
}

/* ---------- RESET ---------- */
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:72px; background:var(--bg-alt); }
html[data-theme="dark"]{ background:#11243f; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  font-family:var(--font-ui);
  background:var(--bg-alt);
  color:var(--ink-2);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  transition:background .4s ease, color .4s ease;
  overflow-x:hidden;
}
html[data-theme="dark"] body{ background:var(--surface); }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
::selection{ background:var(--dot); color:#fff; }

/* ---------- LAYOUT ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad-x); }
.section{ padding-block:var(--sec-y); position:relative; }
.section.alt{ background:var(--bg-alt); }

/* ---------- TYPE ---------- */
h1,h2,h3,h4{ color:var(--ink); line-height:1.08; font-weight:800; letter-spacing:-.02em; text-wrap:balance; }
.display{
  font-family:var(--font-display);
  font-weight:800;
  font-size:clamp(2.6rem, 6.2vw, 5.1rem);
  line-height:1.02;
  letter-spacing:-.025em;
}
.h2{
  font-family:var(--font-display);
  font-size:clamp(2rem, 3.8vw, 3.2rem);
  letter-spacing:-.022em;
  line-height:1.04;
}
.lead{ font-size:clamp(1.06rem, 1.5vw, 1.32rem); color:var(--ink-2); line-height:1.62; max-width:62ch; }
.eyebrow{
  font-family:var(--font-mono);
  font-size:.82rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent);
  display:inline-flex; align-items:center; gap:14px; white-space:nowrap;
}
.eyebrow::before{ content:""; width:30px; height:2px; background:currentColor; display:inline-block; opacity:.8; }
.eyebrow.center{ justify-content:center; }

/* ---------- WORDMARK ---------- */
.buevo{ display:inline-flex; align-items:flex-start; line-height:1; font-weight:800; letter-spacing:-.03em; color:var(--ink); font-family:var(--font-ui); }
.buevo .cluster{ display:inline-flex; flex-direction:column; flex-shrink:0; margin-left:.1em; margin-top:.13em; }
.buevo .cluster .cr{ display:flex; }
.buevo .cluster .cr.top{ gap:.06em; margin-bottom:.06em; }
.buevo .cluster .cr.bot{ justify-content:flex-end; }
.buevo .cluster .sq{ width:.16em; height:.16em; border-radius:30%; background:var(--dot); flex-shrink:0; }

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-weight:700; font-size:.98rem; letter-spacing:.005em;
  padding:.85em 1.5em; border-radius:var(--btn-radius);
  transition:transform .18s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn svg{ width:18px; height:18px; }
.btn-primary{ background:var(--accent); color:var(--on-accent); box-shadow:0 12px 26px -14px var(--accent); }
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 18px 34px -14px var(--accent); }
.btn-ghost{ background:transparent; color:var(--ink); border:1.5px solid var(--border-strong); }
.btn-ghost:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.btn-lg{ padding:1.02em 1.9em; font-size:1.05rem; }

/* ---------- NAV ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:var(--bg-alt);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, background .3s ease;
}
.nav.scrolled{ border-bottom-color:var(--border); }
.nav.scrolled:has(.menu-btn.open){ border-bottom-color:transparent; }
.nav-inner{ display:flex; align-items:center; gap:28px; height:72px; }
.nav .buevo{ font-size:1.95rem; }
.nav-links{ display:flex; align-items:center; gap:30px; margin-left:14px; }
.nav-links a{
  font-size:.96rem; font-weight:600; color:var(--ink-2); position:relative; padding:6px 0;
  transition:color .2s ease;
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
  background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a:hover::after{ transform:scaleX(1); }
.nav-right{ display:flex; align-items:center; gap:12px; margin-left:auto; }
.nav-auth{ display:flex; align-items:center; gap:6px; }
.nav-login{ font-size:.92rem; font-weight:600; color:var(--ink-2); padding:9px 14px; border-radius:var(--btn-radius); transition:color .18s ease, background .18s ease; }
.nav-login:hover{ color:var(--ink); background:var(--chip-bg); }
.nav-reg{ font-size:.92rem; padding:9px 18px; box-shadow:none; transition:none; }
.nav-reg:hover{ box-shadow:none; transform:none; }

/* lang toggle */
.lang{
  display:inline-flex; border:1.5px solid var(--border-strong); border-radius:999px; overflow:hidden;
  font-family:var(--font-mono); font-size:.74rem; font-weight:600; letter-spacing:.06em;
}
.lang button{ padding:6px 11px; color:var(--ink-3); transition:all .2s ease; }
.lang button.on{ background:var(--accent); color:var(--on-accent); }

/* theme toggle */
.theme-btn{
  width:40px; height:40px; border-radius:999px; border:1.5px solid var(--border-strong);
  display:inline-flex; align-items:center; justify-content:center; color:var(--ink-2);
  transition:all .2s ease;
}
.theme-btn:hover{ border-color:var(--accent); color:var(--accent); }
.theme-btn svg{ width:19px; height:19px; }
.theme-btn .moon{ display:none; }
html[data-theme="dark"] .theme-btn .sun{ display:none; }
html[data-theme="dark"] .theme-btn .moon{ display:block; }

.menu-btn{ display:none; width:42px; height:42px; border-radius:10px; border:1.5px solid var(--border-strong); color:var(--ink); align-items:center; justify-content:center; }
.mb-bars, .mb-bars::before, .mb-bars::after{ display:block; width:18px; height:2px; border-radius:2px; background:currentColor; transition:transform .28s cubic-bezier(.2,.7,.3,1), opacity .2s ease; }
.mb-bars{ position:relative; }
.mb-bars::before, .mb-bars::after{ content:""; position:absolute; left:0; }
.mb-bars::before{ top:-6px; }
.mb-bars::after{ top:6px; }
.menu-btn.open .mb-bars{ background:transparent; }
.menu-btn.open .mb-bars::before{ transform:translateY(6px) rotate(45deg); }
.menu-btn.open .mb-bars::after{ transform:translateY(-6px) rotate(-45deg); }

/* ---------- HERO ---------- */
.hero{ position:relative; background:var(--bg-alt); padding-top:clamp(108px,14vw,192px); padding-bottom:clamp(80px,12vw,160px); overflow:hidden; }
.hero-glow{ display:none;
  position:absolute; pointer-events:none; z-index:0;
  width:780px; height:780px; right:-150px; top:auto; bottom:-300px; border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb, var(--dot) 22%, transparent), transparent 62%);
  filter:blur(8px);
}
.hero-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,5vw,80px); align-items:center; }
.hero-status{
  display:inline-flex; align-items:center; gap:14px; margin-bottom:22px;
  font-family:var(--font-mono); font-size:.8rem; font-weight:600; letter-spacing:.04em;
  color:var(--ink-2); background:var(--chip-bg); padding:7px 16px 7px 14px; border-radius:999px;
  border:1px solid var(--border);
}
.dotlive{ width:8px; height:8px; border-radius:50%; background:var(--green); position:relative; }
.dotlive::after{ content:""; position:absolute; inset:-4px; border-radius:50%; border:2px solid var(--green); opacity:.5; animation:pulse 2s ease-out infinite; }
@keyframes pulse{ 0%{transform:scale(.6);opacity:.7} 100%{transform:scale(1.6);opacity:0} }
.hero h1{ margin:16px 0 22px; }
.hero .lead{ margin-bottom:34px; }
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-visual{ position:relative; align-self:center; display:flex; flex-direction:column; align-items:flex-end; gap:18px; perspective:1100px; }
.charge-card, .cc-note{ transform-style:preserve-3d; transition:transform .25s cubic-bezier(.2,.7,.3,1); will-change:transform; }
.hero-map{
  position:absolute; left:0; right:-10%; top:-7%; bottom:calc(-1 * clamp(130px,17vw,230px));
  overflow:visible;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, #000 26%);
  mask-image:linear-gradient(to right, transparent 0%, #000 26%);
  --mland:#e7f0fb; --mland-st:#bcd6f3; --mlagoon:#cfe1f7;
}
html[data-theme="dark"] .hero-map{ --mland:#173251; --mland-st:#2a4d73; --mlagoon:#0e2238; }
.hero-map-svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.m-land{ fill:var(--mland); stroke:var(--mland-st); stroke-width:2.5; stroke-linejoin:round; }
.m-brazil{ fill:var(--mland); stroke:var(--mland-st); stroke-width:0.7; stroke-linejoin:round; }
.m-island{ fill:var(--mland); stroke:var(--mland-st); stroke-width:1.4; stroke-linejoin:round; }
.footer-credit{ margin-top:34px; padding-top:22px; border-top:1px solid var(--border); }
.footer-credit p{ font-size:.78rem; color:var(--ink-3); }
.footer-credit a{ color:var(--ink-2); text-decoration:underline; text-underline-offset:2px; }
.footer-credit a:hover{ color:var(--accent); }
.m-lagoon{ fill:var(--mlagoon); }
.m-bridge line{ stroke:var(--accent); stroke-width:3; opacity:.5; stroke-dasharray:1 6; stroke-linecap:round; }

.map-pins .mp{ cursor:pointer; }
.mp-dot{ fill:var(--dot); }
.mp.hub .mp-dot{ fill:var(--green); }
.mp-pulse{ fill:none; stroke:var(--dot); stroke-width:2.5; transform-box:fill-box; transform-origin:center; }
.mp.hub .mp-pulse{ stroke:var(--green); }
@media (prefers-reduced-motion:no-preference){ .mp-pulse{ animation:mppulse 2.8s ease-out infinite; } }
@keyframes mppulse{ 0%{ transform:scale(.5); opacity:.85; } 100%{ transform:scale(3.4); opacity:0; } }
.mp-lbl{ opacity:0; transition:opacity .18s ease; pointer-events:none; }
.mp:hover .mp-lbl, .mp:focus-visible .mp-lbl{ opacity:1; }
.mp-lbl rect{ fill:var(--ink); }
.mp-lbl text{ fill:var(--bg); font-family:var(--font-ui); font-size:16px; font-weight:700; text-anchor:middle; dominant-baseline:middle; }

.hero-badge{
  position:absolute; right:16px; top:16px; background:var(--surface); border:1px solid var(--border);
  border-radius:0.5rem; padding:16px 20px; box-shadow:var(--shadow); display:flex; align-items:center; gap:14px; z-index:3;
}
.hero-badge .num{ font-family:var(--font-mono); font-weight:700; font-size:1.7rem; color:var(--accent); line-height:1; }
.hero-badge .lbl{ font-size:.82rem; color:var(--ink-3); line-height:1.3; }

/* ---------- HERO CHARGE CARD ---------- */
.charge-card{ width:100%; max-width:420px; background:var(--surface); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow-lg); padding:26px 28px; }
html[data-theme="dark"] .charge-card{ background:var(--bg-alt); }
.cc-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; }
.cc-loc{ display:inline-flex; white-space:nowrap; align-items:center; gap:11px; font-family:var(--font-ui); font-size:.8rem; font-weight:700; letter-spacing:0; color:var(--ink); background:var(--surface-2); border:1px solid var(--border); border-radius:999px; padding:6px 13px; }
.cc-tag{ white-space:nowrap; font-family:var(--font-ui); font-size:.8rem; font-weight:700; letter-spacing:0; color:var(--accent); background:var(--chip-bg); border:1px solid var(--border); border-radius:999px; padding:6px 13px; }
.cc-body{ display:flex; align-items:center; justify-content:flex-start; gap:26px; }
.cc-loc-live{ display:none; }
.cc-ring{ position:relative; width:130px; height:130px; flex-shrink:0; }
.cc-ring svg{ width:100%; height:100%; transform:rotate(-90deg); }
.cc-track{ fill:none; stroke:var(--chip-bg); stroke-width:11; }
.cc-prog{ fill:none; stroke:url(#ccStripe); stroke-width:11; stroke-linecap:round; stroke-dasharray:100; stroke-dashoffset:100; transition:stroke-dashoffset 1.4s cubic-bezier(.3,.8,.3,1); }
.cc-prog.is-filled{ stroke-dashoffset:22; }
.ccs-base{ fill:var(--accent); }
.ccs-line{ fill:#fff; opacity:0; }
html[data-theme="dark"] .cc-track{ stroke:#10243f; }
.cc-ring-c{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.cc-pct{ font-family:var(--font-ui); font-weight:800; font-size:1.85rem; line-height:1; color:var(--ink); letter-spacing:-.02em; }
.cc-pct span{ font-size:1rem; color:var(--ink-3); margin-left:2px; }
.cc-pct [data-cc-pct]{ font:inherit; color:inherit; margin:0; }
.cc-state{ font-size:.72rem; color:var(--accent); font-weight:600; margin-top:5px; letter-spacing:.02em; }
.cc-stats{ display:flex; flex-direction:column; align-items:flex-start; gap:16px; flex:0 1 auto; }
.cc-stat .v{ font-weight:700; font-size:1.16rem; color:var(--ink); line-height:1; }
.cc-stat .v span{ font-size:.78rem; font-weight:600; color:var(--ink-3); margin-left:3px; }
.cc-stat .v [data-cc-kwh], .cc-stat .v [data-cc-min], .cc-stat .v [data-cc-cost]{ font:inherit; color:inherit; margin:0; }
.cc-stat .l{ font-size:.76rem; color:var(--ink-3); margin-top:4px; }
.cc-power{ margin-top:0; padding-top:0; }
.cc-power-head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:11px; }
.cc-power-l{ font-size:.76rem; font-weight:600; color:var(--ink-3); }
.cc-power-v{ display:inline-flex; align-items:center; gap:5px; font-size:1.02rem; font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; }
.cc-power-v .cc-bolt{ width:13px; height:13px; color:var(--green); flex-shrink:0; }
.cc-power-v span{ font-size:.74rem; font-weight:600; color:var(--ink-3); margin-left:1px; }
.cc-load{ position:relative; height:16px; border-radius:99px; background:var(--chip-bg); border:1px solid var(--border); overflow:hidden; }
.cc-load-fill{ position:absolute; inset:0 auto 0 0; width:0%; border-radius:99px;
  background:linear-gradient(90deg, var(--mid), var(--accent));
  box-shadow:0 0 12px -2px color-mix(in srgb,var(--accent) 70%, transparent); transition:width .9s cubic-bezier(.4,.1,.2,1); overflow:hidden; }
.cc-load-fill::before{ content:""; position:absolute; top:0; bottom:0; left:0; width:200%;
  background:none; }
@media (prefers-reduced-motion:no-preference){ .cc-load-fill::before{ animation:ccLoadStripes 1.1s linear infinite; } }
@keyframes ccLoadStripes{ from{ transform:translateX(0); } to{ transform:translateX(-24px); } }
.cc-load-fill::after{ content:""; position:absolute; inset:0; width:42%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.5), transparent); }
@media (prefers-reduced-motion:no-preference){ .cc-load-fill::after{ animation:ccLoadSheen 1.9s ease-in-out infinite; } }
@keyframes ccLoadSheen{ 0%{ transform:translateX(-120%); } 100%{ transform:translateX(360%); } }
.cc-load-scale{ display:flex; justify-content:space-between; margin-top:7px; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.04em; color:var(--ink-3); }
.cc-note{ display:flex; align-items:center; gap:13px; width:100%; max-width:420px; background:var(--surface); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow); padding:14px 16px; }
html[data-theme="dark"] .cc-note{ background:var(--bg-alt); }
.cc-note-ic{ width:40px; height:40px; flex-shrink:0; border-radius:10px; background:#1fab53; color:#fff; display:flex; align-items:center; justify-content:center; }
html[data-theme="dark"] .cc-note-ic{ background:#1fab53; }
.cc-note-ic svg{ width:22px; height:22px; }
.cc-note-t{ font-weight:700; font-size:.92rem; color:var(--ink); }
.cc-note-s{ font-size:.8rem; color:var(--ink-3); margin-top:1px; }

/* ---------- SECTION HEAD ---------- */
.sec-head{ max-width:680px; margin-bottom:clamp(40px,5vw,64px); }
.sec-head.center{ margin-inline:auto; text-align:center; }
.sec-head .eyebrow{ margin-bottom:20px; }
.sec-head h2{ margin-bottom:20px; }

/* ---------- FEATURE CARDS ---------- */
.cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:22px; }
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--card-radius);
  padding:34px 32px; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position:relative; overflow:hidden;
}
.card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--border-strong); }
.card-ic{
  width:56px; height:56px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(150deg, var(--mid), var(--blue)); margin-bottom:24px;
  box-shadow:0 12px 22px -12px var(--blue);
}
html[data-theme="dark"] .card-ic{ background:linear-gradient(150deg, #1f3f6b, #2f63b8); }
.card-ic svg{ width:28px; height:28px; stroke:#fff; }
.card h3{ font-size:1.32rem; margin-bottom:12px; }
.card p{ font-size:1rem; color:var(--ink-2); }

/* ---------- NETWORK (header) ---------- */
.net-head{ margin-bottom:clamp(34px,4vw,52px); }
.net-head .eyebrow{ margin-bottom:20px; }
.net-head h2{ margin-bottom:18px; }
.net-head .lead{ max-width:none; }

.net-feature{
  position:relative; overflow:hidden; display:grid; grid-template-columns:1.18fr .82fr;
  gap:clamp(32px,4vw,64px); align-items:center;
  background:linear-gradient(135deg, var(--deep) 0%, var(--blue) 135%);
  border-radius:var(--card-radius); padding:clamp(34px,4vw,56px); margin-bottom:20px;
}
.net-feature::before{ content:""; position:absolute; width:460px; height:460px; right:-130px; top:-180px; border-radius:50%; background:radial-gradient(circle, rgba(94,224,160,.20), transparent 66%); pointer-events:none; }
.net-feature::after{ content:""; position:absolute; width:360px; height:360px; left:-120px; bottom:-200px; border-radius:50%; background:radial-gradient(circle, rgba(72,138,235,.30), transparent 68%); pointer-events:none; }
.nf-main{ position:relative; z-index:1; }
.nf-ic{ width:66px; height:66px; border-radius:var(--card-radius); background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); display:flex; align-items:center; justify-content:center; margin-bottom:24px; backdrop-filter:blur(4px); }
.nf-ic svg{ width:34px; height:34px; stroke:#fff; }
.nf-num{ font-family:var(--font-mono); font-weight:700; font-size:.82rem; letter-spacing:.16em; color:var(--green-lt); margin-bottom:12px; }
.net-feature h3{ color:#fff; font-size:clamp(1.55rem,2.4vw,2.15rem); margin-bottom:16px; }
.net-feature p{ color:var(--pale); font-size:1.06rem; line-height:1.6; max-width:48ch; }
.nf-logos{ position:relative; z-index:1; }
.nf-logos-lbl{ font-family:var(--font-mono); font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:16px; }
.nf-logos-stack{ display:flex; flex-direction:column; gap:12px; }
.nf-logo{ height:74px; background:#fff; border-radius:calc(var(--card-radius) * .8); display:flex; align-items:center; justify-content:center; padding:0 26px; }
.nf-logo img{ width:auto; object-fit:contain; }
@media (max-width:860px){ .net-feature{ grid-template-columns:1fr; gap:32px; } }

.net-tri{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:36px; }
@media (max-width:860px){ .net-tri{ grid-template-columns:1fr; } }
.ncard{ position:relative; overflow:hidden; background:var(--surface); border:1px solid var(--border); border-radius:var(--card-radius); padding:34px 30px; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.ncard::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.2,.7,.3,1); }
.ncard:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--border-strong); }
.ncard:hover::before{ transform:scaleX(1); }
.ncard .nnum{ position:absolute; top:16px; right:20px; font-family:var(--font-mono); font-weight:700; font-size:2.7rem; line-height:1; color:var(--accent); opacity:.1; }
.ncard .nic{ width:54px; height:54px; border-radius:var(--card-radius); background:linear-gradient(150deg, var(--mid), var(--blue)); display:flex; align-items:center; justify-content:center; margin-bottom:22px; box-shadow:0 12px 22px -12px var(--blue); }
html[data-theme="dark"] .ncard .nic{ background:linear-gradient(150deg, #1f3f6b, #2f63b8); }
.ncard .nic svg{ width:27px; height:27px; stroke:#fff; }
.ncard h3{ font-size:1.28rem; margin-bottom:11px; }
.ncard p{ font-size:.99rem; color:var(--ink-2); }

/* partners */
.partners{ margin-top:54px; }
.partners-lbl{ font-family:var(--font-mono); font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-bottom:20px; }
.partners-row{ display:flex; flex-wrap:wrap; gap:18px; align-items:stretch; }
.partner-card{ flex:1 1 180px; min-width:150px; height:100px; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--border); border-radius:0.5rem; padding:0 28px; }
.partner-card img{ max-height:54px; width:auto; object-fit:contain; }
.provided-note{ margin-top:34px; font-size:.88rem; color:var(--lt); }

/* ---------- NETWORK CHARGE RAIL ---------- */
.charge-rail{ position:relative; margin-top:clamp(24px,3.5vw,48px); padding-top:6px; }
.charge-rail::before{ content:""; position:absolute; top:42px; left:12.5%; right:12.5%; height:3px; border-radius:3px; background:linear-gradient(90deg, var(--green), var(--mid) 55%, var(--blue)); opacity:.85; }
.charge-rail .spark{ position:absolute; top:39px; left:12.5%; width:70px; height:9px; border-radius:9px; background:linear-gradient(90deg, transparent, var(--green-lt), transparent); filter:blur(1px); pointer-events:none; opacity:0; }
@media (prefers-reduced-motion:no-preference){
  .charge-rail .spark{ animation:railcharge 3.8s linear infinite; }
  @keyframes railcharge{ 0%{ left:12.5%; opacity:0; } 8%{ opacity:1; } 88%{ opacity:1; } 100%{ left:calc(87.5% - 70px); opacity:0; } }
}
.stops{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,38px); position:relative; }
.stop{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.stop-node{ position:relative; z-index:1; width:74px; height:74px; border-radius:50%; background:linear-gradient(150deg, var(--mid), var(--blue)); border:5px solid var(--bg-alt); box-shadow:0 0 0 1px var(--border), 0 16px 30px -12px var(--blue); display:flex; align-items:center; justify-content:center; margin-bottom:30px; }
html[data-theme="dark"] .stop-node{ background:linear-gradient(150deg, #1f3f6b, #2f63b8); box-shadow:0 0 0 1px var(--border-strong), 0 0 28px -2px rgba(72,138,235,.55); }
.stop-node svg{ width:33px; height:33px; stroke:#fff; }
.stop-text{ display:flex; flex-direction:column; }
.stop-num{ font-family:var(--font-mono); font-weight:700; font-size:.82rem; letter-spacing:.18em; color:var(--accent); margin-bottom:11px; }
.stop h3{ font-size:clamp(1.18rem,1.5vw,1.42rem); margin-bottom:11px; }
.stop p{ font-size:.97rem; line-height:1.58; color:var(--ink-2); max-width:32ch; }
@media (max-width:760px){
  .charge-rail::before{ top:37px; bottom:37px; left:37px; right:auto; width:3px; height:auto; background:linear-gradient(180deg, var(--green), var(--mid) 55%, var(--blue)); }
  .charge-rail .spark{ display:none; }
  .stops{ grid-template-columns:1fr; gap:30px; }
  .stop{ flex-direction:row; align-items:flex-start; text-align:left; gap:24px; }
  .stop-node{ margin-bottom:0; flex-shrink:0; }
  .stop p{ max-width:none; }
}

/* ---------- NETWORK GRID (even 2x2) ---------- */
.net-main{ display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:stretch; }
@media (max-width:560px){ .net-main{ grid-template-columns:1fr; } }
.nf2{ position:relative; overflow:hidden; background:var(--surface); border:1px solid var(--border); border-radius:var(--card-radius); padding:clamp(28px,3vw,38px); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.nf2::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.2,.7,.3,1); }
.nf2:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--border-strong); }
.nf2:hover::before{ transform:scaleX(1); }
.nf2-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.nf2 h3, .nf2 p{ position:relative; z-index:1; }
.nf2-ic{ position:relative; overflow:hidden; width:60px; height:60px; border-radius:var(--card-radius); background:var(--ghost); display:flex; align-items:center; justify-content:center; margin-bottom:22px; }
html[data-theme="dark"] .nf2-ic{ background:var(--chip-bg); }
.nf2-ic::before{ content:""; position:absolute; inset:0; background:linear-gradient(150deg, var(--mid), var(--blue)); opacity:0; transition:opacity .25s ease; }
.nf2-ic svg{ position:relative; z-index:1; width:29px; height:29px; stroke:var(--accent); stroke-width:1.9; transition:stroke .25s ease; }
.nf2-ic svg *{ transition:stroke .25s ease; }
.nf2:hover .nf2-ic::before{ opacity:1; }
.nf2:hover .nf2-ic svg{ stroke:#fff; }
.nf2-num{ font-family:var(--font-mono); font-weight:700; font-size:1rem; letter-spacing:.12em; color:var(--ink-3); }
.nf2 h3{ font-size:clamp(1.3rem,1.8vw,1.6rem); margin-bottom:11px; }
.nf2 p{ font-size:1.02rem; line-height:1.62; color:var(--ink-2); }

/* ============================================================
   NETWORK SHOWCASE — interactive feature switcher
   ============================================================ */
.net-showcase{ position:relative; border:1px solid var(--border); border-radius:20px; overflow:hidden;
  background:var(--surface); display:grid; grid-template-columns:300px 1fr; min-height:430px; }
.net-showcase::before{ content:""; position:absolute; inset:0; pointer-events:none; z-index:3;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5); border-radius:inherit; }
html[data-theme="dark"] .net-showcase::before{ box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }

/* left rail */
.ns-rail{ display:flex; flex-direction:column; border-right:1px solid var(--border); background:var(--bg-alt); }
.ns-tab{ position:relative; flex:1; display:flex; align-items:center; gap:16px; text-align:left;
  padding:22px 24px; background:transparent; border:none; border-bottom:1px solid var(--border);
  cursor:pointer; transition:background .22s ease; }
.ns-tab:last-child{ border-bottom:none; }
.ns-tab:hover{ background:color-mix(in srgb, var(--accent) 6%, transparent); }
.ns-tab.is-active{ background:var(--surface); }
.ns-n{ font-family:var(--font-mono); font-size:.78rem; font-weight:700; letter-spacing:.06em; color:var(--ink-3); transition:color .22s ease; }
.ns-tab.is-active .ns-n{ color:var(--accent); }
.ns-l{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.ns-tab{ align-items:flex-start; }
.ns-n{ padding-top:2px; }
.ns-t{ font-size:.96rem; line-height:1.2; font-weight:700; color:var(--ink); letter-spacing:-.01em; }
.ns-d{ font-size:.8rem; color:var(--ink-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ns-tab.is-active .ns-d{ color:var(--ink-2); }
/* active accent spine + autoplay progress */
.ns-prog{ position:absolute; left:-1px; top:0; bottom:0; width:3px; background:var(--accent); transform:scaleY(0); transform-origin:top; }
.ns-tab.is-active .ns-prog{ transform:scaleY(1); }
@media (prefers-reduced-motion:no-preference){
  .ns-tab.is-active .ns-prog{ animation:nsProg var(--ns-dur,6s) linear forwards; }
}
@keyframes nsProg{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
.net-showcase.is-paused .ns-tab.is-active .ns-prog{ animation-play-state:paused; }

/* right stage */
.ns-stage{ position:relative; }
.ns-panel{ display:none; grid-template-columns:1fr 1fr; gap:44px; padding:clamp(32px,4vw,56px); align-items:center; height:100%; }
.ns-panel.is-active{ display:grid; }
@media (prefers-reduced-motion:no-preference){ .ns-panel.is-active{ animation:nsIn .5s cubic-bezier(.2,.7,.3,1); } }
@keyframes nsIn{ from{ transform:translateY(14px); } to{ transform:none; } }
html.reveal-all .ns-panel.is-active{ animation:none !important; transform:none !important; }
.ns-copy h3{ font-size:clamp(1.5rem,2.4vw,2.1rem); margin-bottom:14px; letter-spacing:-.02em; }
.ns-copy p{ font-size:1.06rem; line-height:1.6; color:var(--ink-2); max-width:42ch; }
.ns-visual{ position:relative; display:flex; align-items:center; justify-content:center; min-height:230px; }

/* visual 01 — hardware spec bars */
.hw-stack{ width:100%; max-width:340px; display:flex; flex-direction:column; gap:18px; }
.hw-row{ display:grid; grid-template-columns:38px auto 1fr; align-items:center; gap:14px; }
.hw-k{ font-family:var(--font-mono); font-weight:800; font-size:.9rem; color:var(--accent); }
.hw-v{ font-size:.92rem; font-weight:600; color:var(--ink); white-space:nowrap; }
.hw-bar{ height:8px; border-radius:99px; background:var(--chip-bg); overflow:hidden; }
.hw-bar i{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg, var(--mid), var(--accent)); }
.hw-conns{ display:flex; gap:8px; margin-top:6px; }
.hw-conn{ font-family:var(--font-mono); font-size:.74rem; font-weight:600; color:var(--ink-2);
  background:var(--surface-2); border:1px solid var(--border); border-radius:7px; padding:7px 12px; }

/* visual 02 — scan → message flow */
.aw-flow{ display:flex; align-items:center; gap:16px; }
.aw-qr{ flex-shrink:0; width:74px; height:74px; color:var(--ink); padding:10px; background:var(--surface-2); border:1px solid var(--border); border-radius:14px; }
.aw-qr svg{ width:100%; height:100%; display:block; }
.aw-arrow{ color:var(--ink-3); }
.aw-arrow svg{ width:24px; height:24px; }
.aw-bubble{ display:flex; align-items:center; gap:11px; background:var(--surface-2); border:1px solid var(--border);
  border-radius:14px 14px 14px 4px; padding:13px 15px; box-shadow:var(--shadow); }
.aw-bubble .wa{ flex-shrink:0; width:30px; height:30px; border-radius:50%; background:#25d366; display:flex; align-items:center; justify-content:center; }
.aw-bubble .wa svg{ width:18px; height:18px; color:#fff; }
.aw-tx{ display:flex; flex-direction:column; gap:2px; font-size:.86rem; color:var(--ink); }
.aw-tx b{ font-size:.74rem; color:var(--ink-3); font-weight:700; }

/* visual 03 — PIX receipt */
.pay-receipt{ width:100%; max-width:300px; background:var(--surface-2); border:1px solid var(--border); border-radius:16px; padding:22px; box-shadow:var(--shadow); }
.pr-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.pix-badge{ font-family:var(--font-mono); font-weight:800; font-size:.82rem; color:#fff; background:#32bcad; border-radius:7px; padding:6px 9px; }
.pr-status{ font-size:.78rem; font-weight:700; color:var(--green); }
html[data-theme="dark"] .pr-status{ color:var(--green-lt); }
.pr-amt{ font-size:2rem; font-weight:800; letter-spacing:-.02em; color:var(--ink); margin-bottom:16px; }
.pr-rows{ display:flex; flex-direction:column; gap:9px; padding-bottom:14px; border-bottom:1px dashed var(--border); margin-bottom:14px; }
.pr-r{ display:flex; justify-content:space-between; font-size:.86rem; color:var(--ink-2); }
.pr-r span:last-child{ font-weight:600; color:var(--ink); }
.pr-foot{ display:flex; align-items:center; gap:9px; font-size:.84rem; font-weight:600; color:var(--ink-2); }
.pr-check{ width:24px; height:24px; flex-shrink:0; border-radius:50%; background:color-mix(in srgb, var(--green) 16%, transparent); color:var(--green); display:flex; align-items:center; justify-content:center; }
.pr-check svg{ width:14px; height:14px; }
html[data-theme="dark"] .pr-check{ color:var(--green-lt); }

/* visual 04 — uptime heatmap (static, distinct from hero) */
.up-board{ width:100%; max-width:330px; }
.up-head{ display:flex; flex-direction:column; gap:3px; margin-bottom:16px; }
.up-pct{ font-size:2rem; font-weight:800; letter-spacing:-.02em; color:var(--ink); }
.up-lbl{ font-size:.82rem; color:var(--ink-3); }
.up-grid{ display:grid; grid-template-columns:repeat(15,1fr); gap:5px; }
.up-grid i{ aspect-ratio:1; border-radius:3px; background:var(--chip-bg); }
.up-grid i.a{ background:color-mix(in srgb, var(--accent) 45%, transparent); }
.up-grid i.b{ background:var(--accent); }
.up-grid i.c{ background:var(--green); }
.up-legend{ display:flex; align-items:center; gap:7px; justify-content:flex-end; margin-top:12px; font-size:.72rem; color:var(--ink-3); }
.ul-cells{ display:inline-flex; gap:3px; }
.ul-cells i{ width:11px; height:11px; border-radius:3px; }
.ul-cells .l0{ background:var(--chip-bg); } .ul-cells .l1{ background:color-mix(in srgb, var(--accent) 45%, transparent); }
.ul-cells .l2{ background:var(--accent); } .ul-cells .l3{ background:var(--green); }

@media (max-width:860px){
  .net-showcase{ grid-template-columns:1fr; min-height:0; }
  .ns-rail{ flex-direction:row; border-right:none; border-bottom:1px solid var(--border); overflow-x:auto; }
  .ns-tab{ flex:1 0 auto; flex-direction:column; align-items:flex-start; gap:8px; border-bottom:none; border-right:1px solid var(--border); min-width:160px; }
  .ns-prog{ left:0; right:0; top:auto; bottom:0; width:auto; height:3px; transform:scaleX(0); transform-origin:left; }
  .ns-tab.is-active .ns-prog{ transform:scaleX(1); }
  @media (prefers-reduced-motion:no-preference){ .ns-tab.is-active .ns-prog{ animation:nsProgX var(--ns-dur,6s) linear forwards; } }
  @keyframes nsProgX{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
}
@media (max-width:620px){
  .ns-panel{ grid-template-columns:1fr; gap:30px; }
  .ns-visual{ min-height:0; }
  .ns-d{ display:none; }
}

/* ---------- HOW-TO-USE STICKER CARD ---------- */
.net-side{ display:flex; align-items:stretch; justify-content:center; }
.htu-card{ position:relative; overflow:hidden; width:100%; max-width:344px; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border); border-radius:var(--card-radius); box-shadow:none; padding:clamp(28px,3vw,38px); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.htu-card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--accent); transform:scaleY(0); transform-origin:top; transition:transform .3s cubic-bezier(.2,.7,.3,1); }
.htu-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--border-strong); }
.htu-card:hover::before{ transform:scaleY(1); }
.htu-steps{ flex:1; justify-content:center; gap:30px; }
.htu-head{ display:flex; align-items:center; gap:10px; margin-bottom:20px; }
.htu-avatar{ width:58px; height:58px; flex-shrink:0; margin-right:2px; border-radius:0.5rem; overflow:hidden; }
.htu-head-text{ display:flex; flex-direction:column; gap:8px; min-width:0; }
.htu-avatar svg{ width:100%; height:100%; display:block; }
.htu-ic-dark{ display:none; }
html[data-theme="dark"] .htu-ic-light{ display:none; }
html[data-theme="dark"] .htu-ic-dark{ display:block; }
.htu-head h4{ font-size:clamp(1.3rem,1.8vw,1.6rem); margin:0; line-height:1.04; white-space:nowrap; }
.htu-badge{ display:inline-flex; align-self:flex-start; align-items:center; line-height:1; padding:6px 9px 4px; font-family:var(--font-mono); font-size:.6rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--green); background:color-mix(in srgb, var(--green) 12%, transparent); border:1px solid color-mix(in srgb, var(--green) 32%, transparent); border-radius:5px; }
html[data-theme="dark"] .htu-badge{ color:var(--green-lt); border-color:color-mix(in srgb, var(--green-lt) 36%, transparent); background:color-mix(in srgb, var(--green-lt) 12%, transparent); }
.htu-steps{ display:flex; flex-direction:column; }
.htu-step{ display:flex; gap:16px; align-items:center; }
.htu-step .n{ width:50px; flex-shrink:0; text-align:left; font-family:var(--font-ui); font-weight:800; font-size:2.3rem; line-height:1; color:#c5d9f0; transition:color .25s ease; }
html[data-theme="dark"] .htu-step .n{ color:#34598c; }
.htu-card:hover .htu-step .n{ color:var(--accent); }
.htu-step h5{ font-size:1.08rem; margin-bottom:4px; color:var(--ink); }
.htu-step p{ font-size:.94rem; color:var(--ink-2); line-height:1.55; }
.htu-qr{ background:var(--surface-2); border:1px solid var(--border); border-radius:var(--card-radius); padding:16px; text-align:center; }
.htu-qr-box{ display:inline-flex; padding:9px; background:#fff; border:1px solid var(--border); border-radius:8px; box-shadow:0 6px 16px -8px rgba(13,31,60,.3); margin-bottom:11px; }
.htu-qr-box svg{ width:62px; height:62px; display:block; }
.htu-qr-icons{ display:flex; justify-content:center; align-items:center; gap:12px; }
.htu-qr-icons .i-web{ width:16px; height:16px; color:var(--ink-3); }
.htu-qr-icons .i-wa{ width:17px; height:17px; color:var(--green); }
html[data-theme="dark"] .htu-qr-icons .i-wa{ color:var(--green-lt); }
.htu-divider{ border:none; border-top:1px solid var(--border); margin:22px 0; }
.htu-foot{ text-align:center; }
.htu-foot .big{ font-weight:700; font-size:.84rem; color:var(--accent); margin-bottom:5px; }
.htu-foot .sub{ font-family:var(--font-mono); font-size:.62rem; letter-spacing:.08em; color:var(--ink-3); text-transform:uppercase; }
@media (max-width:900px){ .htu-card{ margin:0 auto; } }

/* ---------- NETWORK ACCORDION (bold editorial) ---------- */
.net-acc{ border-top:1px solid var(--border-strong); margin-top:8px; }
.acc-item{ position:relative; border-bottom:1px solid var(--border-strong); }
.acc-item::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--accent); transform:scaleY(0); transform-origin:top; transition:transform .4s cubic-bezier(.2,.7,.3,1); }
.acc-item.open::before{ transform:scaleY(1); }
.acc-head{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:clamp(18px,3vw,40px); width:100%; padding:clamp(22px,3vw,38px) 4px clamp(22px,3vw,38px) clamp(14px,2vw,28px); background:none; text-align:left; cursor:pointer; }
.acc-idx{ font-family:var(--font-mono); font-weight:700; font-size:clamp(1rem,1.8vw,1.4rem); color:var(--ink-3); transition:color .3s ease; }
.acc-title{ font-family:var(--font-display); font-weight:800; letter-spacing:-.022em; line-height:1.04; font-size:clamp(1.55rem,3.7vw,2.9rem); color:var(--ink); transition:color .3s ease; }
.acc-head:hover .acc-title, .acc-head:hover .acc-idx{ color:var(--accent); }
.acc-item.open .acc-idx, .acc-item.open .acc-title{ color:var(--accent); }
.acc-toggle{ position:relative; width:26px; height:26px; flex-shrink:0; }
.acc-toggle::before, .acc-toggle::after{ content:""; position:absolute; background:var(--ink-3); transition:transform .35s ease, background .3s ease; }
.acc-toggle::before{ left:1px; right:1px; top:12px; height:2px; }
.acc-toggle::after{ top:1px; bottom:1px; left:12px; width:2px; }
.acc-item.open .acc-toggle::after{ transform:scaleY(0); }
.acc-item.open .acc-toggle::before{ background:var(--accent); }
.acc-panel{ max-height:0; overflow:hidden; transition:max-height .5s cubic-bezier(.2,.7,.3,1); }
.acc-item.open .acc-panel{ max-height:360px; }
.acc-inner{ display:flex; gap:24px; align-items:flex-start; padding:0 4px clamp(28px,3vw,40px) clamp(14px,2vw,28px); }
.acc-ic{ width:54px; height:54px; flex-shrink:0; border-radius:var(--card-radius); background:linear-gradient(150deg, var(--mid), var(--blue)); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 22px -12px var(--blue); }
html[data-theme="dark"] .acc-ic{ background:linear-gradient(150deg, #1f3f6b, #2f63b8); }
.acc-ic svg{ width:27px; height:27px; stroke:#fff; }
.acc-panel p{ font-size:1.08rem; line-height:1.6; color:var(--ink-2); max-width:60ch; }
@media (prefers-reduced-motion:reduce){ .acc-panel{ transition:none; } }
@media (max-width:560px){ .acc-inner{ padding-left:4px; } .acc-ic{ display:none; } }

/* ============================================================
   NETWORK — LIVE SESSION (auto-cycling stage + list)
   ============================================================ */
@keyframes lnFillV{0%{height:18%}50%{height:88%}100%{height:18%}}
@keyframes lnScan{0%{top:6%}100%{top:86%}}
@keyframes lnMsg{0%{opacity:0;transform:translateY(20px) scale(.96)}16%{opacity:1;transform:translateY(0) scale(1)}88%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(20px) scale(.96)}}
@keyframes lnPop{0%{transform:scale(.3) rotate(-8deg);opacity:0}45%{transform:scale(1.12);opacity:1}70%{transform:scale(.97)}100%{transform:scale(1);opacity:1}}
@keyframes lnBar{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
@keyframes lnFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes lnFade{from{transform:translateY(10px)}to{transform:none}}

.livenet{ margin-top:0; }
#network{ background:var(--surface); }
.ln-mono{ font-family:var(--font-mono); }

.ln-head{ display:block; margin-bottom:clamp(34px,4vw,48px); }
.ln-head .eyebrow{ margin-bottom:18px; }
.ln-intro{ max-width:none; margin-top:16px; }
.ln-dot{ width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 16%,transparent); display:inline-block; }
.ln-h{ margin:0; }

/* split */
.ln-split{ display:grid; grid-template-columns:1.12fr .95fr; gap:clamp(34px,4vw,54px); align-items:stretch; }

/* stage (always dark) */
.ln-stage{ position:relative; overflow:hidden; border-radius:20px; background:#0d1f3c; min-height:440px; display:flex; flex-direction:column; padding:28px; }
.ln-grid{ position:absolute; inset:0; background-image:radial-gradient(circle, rgba(255,255,255,.08) 1px, transparent 1.4px); background-size:24px 24px; }
.ln-glow{ position:absolute; right:-110px; top:-90px; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle, color-mix(in srgb,var(--dot) 40%,transparent), transparent 62%); filter:blur(10px); }
.ln-stage-top{ position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; }
.ln-slive{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--green-lt); }
.ln-dot.live{ animation:lnGlow 2s ease-in-out infinite; }
@keyframes lnGlow{0%,100%{box-shadow:0 0 0 0 rgba(93,224,160,.5)}50%{box-shadow:0 0 0 7px rgba(93,224,160,0)}}
.ln-loc{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; color:#6a8bb5; }
.ln-stage-body{ position:relative; z-index:2; flex:1; display:flex; align-items:center; justify-content:center; }
.ln-vis{ display:none; animation:lnFade .5s ease both; }
.ln-vis.is-active{ display:block; }

/* visual: hardware — partner units (coverflow) */
.lnv-hw2{ display:flex; flex-direction:column; align-items:center; gap:34px; }
.lnv-units{ position:relative; width:340px; height:178px; -webkit-user-select:none; user-select:none; }
.lnv-units img{ -webkit-user-drag:none; -webkit-user-select:none; user-select:none; pointer-events:none; }
.lnv-unit{ position:absolute; left:50%; top:50%; display:flex; align-items:center; justify-content:center; width:124px; height:148px; padding:0 18px; border-radius:18px; background:#142a49; border:1px solid #20406a;
  transform:translate(-50%,-50%) translateX(var(--x,0)) scale(var(--s,1)); opacity:var(--o,1); z-index:var(--z,1);
  transition:transform .9s cubic-bezier(.4,.1,.2,1), opacity .9s ease; }
.lnv-unit img{ max-width:84px; max-height:36px; width:auto; object-fit:contain; filter:brightness(0) invert(1); opacity:.92; }
.lnv-uport{ position:absolute; left:50%; bottom:-7px; transform:translateX(-50%); width:26px; height:13px; border-radius:0 0 7px 7px; background:#20406a; }
.lnv-uport::after{ content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:8px; height:5px; border-radius:2px; background:#33507d; transition:background .5s ease, box-shadow .5s ease; }
.lnv-unit.is-center .lnv-uport::after{ background:var(--green); box-shadow:0 0 8px 1px color-mix(in srgb,var(--green) 80%,transparent); animation:lnGlow 2s ease-in-out infinite; }
.lnv-hwmeta{ display:flex; align-items:center; gap:12px; }
.lnv-hwmeta .ln-mono{ font-size:11px; letter-spacing:.08em; color:#8fb0d6; }
.lnv-hwdot{ width:4px; height:4px; border-radius:50%; background:#3a5d8a; }

/* visual: no apps phone */
.lnv-phone{ position:relative; width:166px; height:308px; border-radius:26px; background:#142a49; border:1px solid #20406a; padding:14px; overflow:hidden; animation:lnFloat 5s ease-in-out infinite; }
.lnv-notch{ display:block; width:40px; height:5px; border-radius:99px; background:#24456e; margin:2px auto 14px; }
.lnv-qr{ position:relative; width:120px; height:120px; margin:0 auto; border-radius:12px; background:#0d1f3c; display:grid; grid-template-columns:repeat(6,1fr); grid-template-rows:repeat(6,1fr); gap:3px; padding:12px; overflow:hidden; }
.lnv-qr span{ border-radius:2px; } .lnv-qr .qw{ background:#fff; } .lnv-qr .qa{ background:var(--accent-2); }
.lnv-scan{ position:absolute; left:8px; right:8px; height:2px; background:linear-gradient(90deg,transparent,var(--accent-2),transparent); animation:lnScan 2.6s ease-in-out infinite; }
.lnv-msg{ margin-top:18px; background:#00BE63; color:#04140b; border-radius:14px 14px 14px 4px; padding:10px 12px; font-size:12.5px; font-weight:600; line-height:1.3; max-width:140px; animation:lnMsg 4s ease-in-out infinite; }

/* visual: pix */
.lnv-pix{ width:238px; border-radius:18px; background:#142a49; border:1px solid #20406a; padding:26px; animation:lnFloat 5s ease-in-out infinite; }
.lnv-pix-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.lnv-pix .ln-mono{ font-size:11px; letter-spacing:.14em; color:#6a8bb5; }
.lnv-pix-q{ width:18px; height:18px; background:#32bcad; border:1.5px solid #32bcad; border-radius:4px; transform:rotate(45deg); }
.lnv-pix-amt{ font-family:var(--font-ui); font-weight:800; font-size:33px; letter-spacing:-.02em; color:#fff; }
.lnv-pix-ok{ display:flex; align-items:center; gap:10px; margin-top:18px; }
.lnv-check{ width:28px; height:28px; border-radius:50%; background:var(--green); display:flex; align-items:center; justify-content:center; color:#04140b; font-weight:800; font-size:14px; animation:lnPop 3.4s ease-in-out infinite; }
.ln-mono.g{ font-size:12px; color:var(--green-lt); letter-spacing:.04em; }

/* visual: uptime */
.lnv-up{ width:256px; }
.lnv-up-h{ display:flex; align-items:baseline; gap:7px; margin-bottom:18px; }
.lnv-up-h b{ font-family:var(--font-ui); font-weight:800; font-size:42px; letter-spacing:-.02em; color:#fff; }
.lnv-up-h span:nth-of-type(1){ font-weight:800; font-size:22px; color:var(--green-lt); }
.lnv-up-h .ln-mono{ font-size:11px; letter-spacing:.1em; color:#6a8bb5; margin-left:6px; }
.lnv-up-bars{ display:flex; align-items:flex-end; gap:7px; height:116px; }
.lnv-up-bars span{ flex:1; background:#214066; border-radius:4px; transform-origin:bottom; animation:lnBar 1.8s ease-in-out infinite; }
.lnv-up-bars span:nth-child(1){ animation-delay:-.1s } .lnv-up-bars span:nth-child(2){ animation-delay:-.45s } .lnv-up-bars span:nth-child(3){ animation-delay:-.8s } .lnv-up-bars span:nth-child(4){ animation-delay:-1.15s } .lnv-up-bars span:nth-child(5){ animation-delay:-1.5s } .lnv-up-bars span:nth-child(6){ animation-delay:-1.85s }
.lnv-up-bars .hi{ background:linear-gradient(180deg,var(--green-lt),var(--green)); }
.ln-mono.dim{ display:block; font-size:11px; letter-spacing:.06em; color:#6a8bb5; margin-top:14px; }
.lnv-up-h .ln-mono sup{ font-size:.7em; }
.lnv-up-note{ font-family:var(--font-mono); font-size:9.5px; letter-spacing:.04em; color:#54719a; margin-top:8px; }

/* list */
.ln-list{ display:flex; flex-direction:column; justify-content:center; gap:4px; }
.ln-item{ display:grid; grid-template-columns:4px 1fr; gap:18px; padding:18px 16px; border-radius:14px; cursor:pointer; text-align:left; background:var(--surface); border:1px solid var(--border); transition:box-shadow .3s ease, border-color .3s ease; }
.ln-item.is-active{ background:var(--bg-alt); border-color:var(--border-strong); box-shadow:var(--shadow); }
.ln-rail{ position:relative; width:4px; border-radius:99px; background:var(--border-strong); overflow:hidden; }
.ln-fill{ position:absolute; left:0; right:0; top:0; height:0; background:var(--accent); }
.ln-n{ font-family:var(--font-mono); font-size:11px; color:var(--ink-3); }
.ln-ic > div, .ln-ic{ display:block; }
.ln-ic{ display:flex; flex-direction:column; }
.ln-item h3{ display:inline; font-size:1.28rem; letter-spacing:-.015em; color:var(--ink-3); transition:color .3s ease; margin:0; }
.ln-item.is-active h3{ color:var(--ink); }
.ln-row1{ display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.ln-item .ln-n{ margin:0; }
.ln-item p{ font-size:.95rem; line-height:1.55; color:var(--ink-2); margin:7px 0 0; }

/* maplink + partners */
.ln-maplink{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-top:clamp(34px,4vw,46px); padding:18px 26px; background:var(--surface); border:1px solid var(--border); border-radius:14px; text-decoration:none; color:inherit; transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.ln-maplink:hover{ border-color:var(--accent); transform:translateY(-2px); box-shadow:var(--shadow); }
.ln-mlx{ font-weight:600; color:var(--ink); } .ln-mlx b{ color:var(--accent); font-weight:800; }
.ln-mlc{ display:inline-flex; align-items:center; gap:9px; font-weight:700; color:var(--accent); }
.ln-mlc svg{ width:18px; height:18px; transition:transform .2s ease; }
.ln-maplink:hover .ln-mlc svg{ transform:translateX(5px); }
/* partner units live inside the 01 hardware visual */

@media (prefers-reduced-motion:reduce){ .ln-vis,.lnv-bar i,.lnv-scan,.lnv-msg,.lnv-check,.lnv-up-bars span,.lnv-phone,.lnv-pix{ animation:none !important; } }
@media (max-width:840px){
  .ln-split{ grid-template-columns:1fr; }
  .ln-stage{ min-height:440px; }
}

/* partner bar *//* partner bar *//* partner bar *//* partner bar */
.net-partners{ margin-top:clamp(44px,5vw,68px); text-align:center; }
.net-partners-lbl{ display:block; font-family:var(--font-mono); font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); margin-bottom:22px; }
.net-partners-bar{ display:grid; grid-template-columns:1fr 1px 1fr 1px 1fr; align-items:center; width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--card-radius); padding:26px clamp(28px,4vw,56px); }
html[data-theme="dark"] .net-partners-bar{ border-color:var(--border-strong); }
.np-cell{ display:flex; align-items:center; justify-content:center; justify-self:center; }
html[data-theme="dark"] .np-cell{ background:transparent; padding:0; }
html[data-theme="dark"] .net-partners-bar .np-logo{ filter:brightness(0) invert(1); opacity:.82; }
.net-partners-bar .np-logo{ width:auto; object-fit:contain; justify-self:center; }
.net-partners-bar .np-div{ width:1px; height:40px; background:#e2eaf4; justify-self:center; transition:background .35s ease; }
html[data-theme="dark"] .net-partners-bar .np-div{ background:var(--border-strong); }
@media (max-width:560px){ .net-partners-bar{ grid-template-columns:1fr; gap:22px; } .net-partners-bar .np-div{ display:none; } }

/* ---------- STEPS ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; counter-reset:step; }
.step{ position:relative; padding-top:8px; }
.step-num{ font-family:var(--font-mono); font-weight:700; font-size:1rem; color:var(--accent); letter-spacing:.1em; margin-bottom:18px; display:flex; align-items:center; gap:14px; }
.step-num::after{ content:""; flex:1; height:1px; background:var(--border); }
.step-ic{ width:50px; height:50px; border-radius:12px; border:1.5px solid var(--border-strong); display:flex; align-items:center; justify-content:center; margin-bottom:20px; color:var(--accent); }
.step-ic svg{ width:26px; height:26px; stroke:currentColor; }
.step h3{ font-size:1.28rem; margin-bottom:10px; }
.step p{ font-size:1rem; color:var(--ink-2); max-width:34ch; }
.steps-foot{ margin-top:clamp(48px,5vw,72px); text-align:center; }
.steps-foot .big{ font-family:var(--font-display); font-size:clamp(1.7rem,3vw,2.5rem); color:var(--ink); font-weight:800; letter-spacing:-.02em; }
.steps-foot .sub{ font-family:var(--font-mono); font-size:.92rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-top:14px; }

/* ---------- R&D ---------- */
.rd-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.rd-item{ border-top:2px solid var(--border-strong); padding-top:26px; }
.rd-item .idx{ font-family:var(--font-mono); font-weight:700; font-size:2.4rem; color:var(--accent-2); line-height:1; letter-spacing:-.02em; margin-bottom:18px; opacity:.9; }
.rd-item h3{ font-size:1.3rem; margin-bottom:12px; }
.rd-item p{ font-size:1rem; color:var(--ink-2); }

/* ---------- CTA BAND ---------- */
/* ---------- CTA BAND (full-bleed, light) ---------- */
#cta{ padding:0; }
.cta-band{ position:relative; overflow:hidden; background:var(--surface); border-top:1px solid var(--border); padding-block:var(--sec-y); text-align:center; }
.cta-band::after{ content:""; position:absolute; pointer-events:none; z-index:0; width:620px; height:620px; right:-200px; bottom:-280px; border-radius:50%; background:radial-gradient(circle, color-mix(in srgb, var(--dot) 22%, transparent), transparent 62%); filter:blur(8px); }
.cta-band .wrap{ position:relative; z-index:1; }
html[data-theme="dark"] .cta-band{ background:var(--bg-alt); }
html[data-theme="dark"] .nav,
html[data-theme="dark"] .hero,
html[data-theme="dark"] .mobile-menu,
html[data-theme="dark"] .footer{ background:var(--surface); }
html[data-theme="dark"] #network{ background:var(--bg-alt); }
html[data-theme="dark"] .ln-item,
html[data-theme="dark"] .ln-maplink{ background:var(--bg-alt); }
html[data-theme="dark"] .ln-item.is-active{ background:var(--surface) !important; }
.cta-band .eyebrow{ color:var(--accent); justify-content:center; margin-bottom:20px; }
.cta-band h2{ color:var(--ink); position:relative; margin-bottom:18px; }
.cta-band p{ color:var(--ink-2); position:relative; max-width:46ch; margin:0 auto 32px; font-size:1.12rem; }
.cta-band .btn-primary{ position:relative; }
html[data-theme="dark"] .cta-band h2{ color:#fff; }
html[data-theme="dark"] .cta-band p{ color:var(--pale); }

/* ---------- FOOTER ---------- */
.footer{ background:var(--bg-alt); border-top:1px solid var(--border); padding-block:clamp(54px,6vw,80px) clamp(48px,5vw,64px); }
.footer-top{ display:grid; grid-template-columns:1fr auto; gap:64px; margin-bottom:0; }
.footer .buevo{ font-size:1.95rem; margin-bottom:18px; }
.footer-tag{ color:var(--ink-2); max-width:34ch; font-size:1rem; }
.foot-rights{ margin-top:26px; font-size:.86rem; color:var(--lt); }
.foot-col h4{ font-family:var(--font-mono); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); font-weight:600; margin-bottom:18px; }
.foot-col a{ display:block; color:var(--ink-2); font-size:.98rem; padding:5px 0; transition:color .2s ease; }
.foot-col a:hover{ color:var(--accent); }
.socials{ display:flex; gap:12px; }
.socials a{ width:42px; height:42px; border-radius:10px; border:1px solid var(--border-strong); display:flex; align-items:center; justify-content:center; color:var(--ink-2); transition:all .2s ease; }
.socials a:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.socials svg{ width:20px; height:20px; }
.footer-bottom{ border-top:1px solid var(--border); padding-top:28px; display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.footer-bottom p{ font-size:.86rem; color:var(--ink-3); }

/* ---------- SCROLL REVEAL (gated on html.js so content is visible without JS) ---------- */
.reveal{ transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1); }
html.js .reveal{ opacity:0; transform:translateY(26px); }
html.js .reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.24s; }
@media (prefers-reduced-motion:reduce){ html.js .reveal{ opacity:1; transform:none; transition:none; } }
/* escape hatch: force final visible state with NO transition (used as a safety
   net and for static capture/PDF, where transitions don't interpolate) */
html.reveal-all .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }

/* ============================================================
   STYLE DIRECTIONS
   ============================================================ */
/* (1) EDITORIAL = default (serif display) */

/* (2) ENGINEERED — technical/grid, sans display, sharp corners */
html[data-dir="engineered"]{ --font-display:var(--font-mono); --card-radius:6px; --btn-radius:5px; }
html[data-dir="engineered"] .display{ letter-spacing:-.03em; font-weight:700; }
html[data-dir="engineered"] .h2{ text-transform:none; font-weight:700; }
html[data-dir="engineered"] .card{ border-color:var(--border-strong); }
html[data-dir="engineered"] .card-ic{ border-radius:6px; background:var(--deep); }
html[data-dir="engineered"] .step-ic{ border-radius:6px; }
html[data-dir="engineered"] .hero-map,
html[data-dir="engineered"] .hero-badge{ border-radius:6px; }
html[data-dir="engineered"] .hero-map{ border-top-left-radius:6px; border-top-right-radius:6px; }
html[data-dir="engineered"] .cta-band{ border-radius:8px; }
html[data-dir="engineered"] .section:not(.hero)::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:linear-gradient(var(--border) 1px, transparent 1px); background-size:100% 56px;
  -webkit-mask-image:linear-gradient(transparent, #000 12%, #000 88%, transparent);
          mask-image:linear-gradient(transparent, #000 12%, #000 88%, transparent);
}

/* (3) VIVID — bold sans display, big rounded, color blocks */
html[data-dir="vivid"]{ --font-display:var(--font-ui); --card-radius:0.5rem; --btn-radius:0.5rem; }
html[data-dir="vivid"] .display{ font-weight:800; letter-spacing:-.035em; font-size:clamp(2.8rem,6.6vw,5.6rem); }
html[data-dir="vivid"] .h2{ font-weight:800; letter-spacing:-.03em; }
html[data-dir="vivid"] .card{ padding:40px 34px; }
html[data-dir="vivid"] .card-ic{ width:64px; height:64px; border-radius:0.5rem; }
html[data-dir="vivid"] .hero-glow{ width:920px; height:920px; background:radial-gradient(circle, color-mix(in srgb, var(--dot) 30%, transparent), transparent 60%); }
html[data-dir="vivid"] .rd-item{ border-top:none; background:var(--surface); border:1px solid var(--border); border-radius:0.5rem; padding:34px 32px; }
html[data-dir="vivid"] .rd-item .idx{ font-size:2.8rem; }

/* ---------- RESPONSIVE ---------- */
@media (min-width:1700px){ :root{ --maxw:1480px; } }
@media (max-width:980px){
  .steps{ grid-template-columns:1fr; gap:34px; }
  .rd-grid{ grid-template-columns:1fr; gap:30px; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .footer .footer-brand{ grid-column:1 / -1; }
}
@media (max-width:760px){
  .nav-links{ display:none; }
  .menu-btn{ display:inline-flex; }
  .nav .nav-register{ display:none; }
  .nav-auth{ display:none; }
  .nav .lang{ display:none; }
  .mobile-menu{ display:block; }
}
@media (min-width:761px){ .mobile-menu{ display:none !important; } }
/* Laptop / short viewports (still 2-col): make nav + hero fill exactly one screen */
@media (min-width:901px) and (max-height:920px){
  .hero{
    display:flex; flex-direction:column; justify-content:center;
    min-height:calc(100svh - 72px);
    padding-top:clamp(28px,5vh,72px); padding-bottom:clamp(28px,5vh,72px);
  }
  .hero .display{ font-size:clamp(2.6rem,4.6vw,3.9rem); }
  .hero h1{ margin:10px 0 16px; }
  .hero .lead{ font-size:1rem; line-height:1.55; margin-bottom:24px; }
  .hero-visual{ gap:14px; }
}
/* Very short laptop screens: drop the secondary card so the section still fits */
@media (min-width:901px) and (max-height:680px){
  .hero .lead{ margin-bottom:18px; }
  .hero-visual .cc-note{ display:none; }
}
@media (max-width:900px){
  .hero-grid{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  .hero-visual{ order:1; max-width:520px; width:100%; position:static; align-self:auto; align-items:center; }
  .hero-copy{ order:0; }
  .hero-cta{ justify-content:center; }
  .hero-copy .lead{ max-width:520px; margin-inline:auto; }
  /* optically center the title: hang the trailing dot so its width doesn't pull the block right */
  .hero-copy .display .hero-dot{ display:inline-block; width:0; margin-right:0; overflow:visible; }
  .cc-stats{ transform:none; }
  /* keep the charge-card's own content left-aligned (only the block is centered) */
  .charge-card, .charge-card *, .cc-note, .cc-note *{ text-align:left; }
  .cc-loc{ display:inline-flex; }
  .cc-loc-full{ display:none; }
  .cc-loc-live{ display:inline; }
  .cc-head{ justify-content:space-between; }
  .cc-body{ justify-content:flex-start; gap:clamp(13px,4vw,34px); }
}
@media (max-width:540px){
  html{ font-size:15px; }
  .cta-band::after{ display:none; }
  .hero{ padding-top:clamp(40px,9vw,72px); }
  .cc-power{ padding-top:1rem; }
  .footer-top{ grid-template-columns:1fr; gap:32px; }
  .hero-badge{ right:12px; top:12px; padding:12px 16px; }
  .hero-cta .btn{ flex:0 0 auto; }
}
@media (max-width:374px){
  html{ font-size:14px; }
  .hero-cta .btn{ padding:.85em 1.1em; font-size:.95rem; }
  .cc-body{ gap:16px; }
  .cc-ring{ width:104px; height:104px; }
  .cc-pct{ font-size:1.7rem; }
  .lnv-up{ width:210px; }
  .lnv-up-bars{ height:96px; }
  .cc-state{ font-size:.66rem; }
  .cc-stat .v{ font-size:1rem; }
  .cc-power-v{ font-size:.9rem; }
}

/* ---------- MOBILE MENU ---------- */
.mobile-menu{
  position:fixed; inset:0 0 auto 0; top:72px; z-index:49;
  background:var(--bg-alt); border-bottom:1px solid var(--border);
  padding:22px var(--pad-x) 26px; transform:translateY(-120%);
  transition:transform .35s cubic-bezier(.2,.7,.3,1), visibility 0s linear .35s;
  box-shadow:var(--shadow); display:flex; flex-direction:column; gap:12px;
  visibility:hidden; pointer-events:none;
}
.mobile-menu.open{ transform:translateY(0); visibility:visible; pointer-events:auto; transition:transform .35s cubic-bezier(.2,.7,.3,1), visibility 0s; }
.mobile-menu a{ display:flex; align-items:center; justify-content:center; font-size:1rem; font-weight:700; }
.mobile-menu .btn{ width:100%; margin:0; padding:14px; }
.mobile-menu .btn-primary{ box-shadow:none; transition:none; }
.mobile-menu .btn-primary:hover{ box-shadow:none; transform:none; }
.mobile-menu .btn-ghost{ border:1.5px solid var(--border-strong); color:var(--ink); transition:none; }
.mobile-menu .btn-ghost:hover{ transform:none; border-color:var(--border-strong); color:var(--ink); }
.mm-lang{ align-self:center; margin-top:4px; }
.mm-lang button{ padding:8px 16px; }

.hero-dot{ color:var(--accent); }
html[data-theme="dark"] .hero-dot{ color:var(--dot); }
