/* ==================================================================
   proto.ly — shared base: theme tokens, layout, header, footer,
   buttons, sections, demo, project survey. Used by every page.
   ================================================================== */
.phone-link{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.82rem;
  padding:7px 12px;border-radius:999px;border:1px solid transparent;transition:color .2s,border-color .2s,background .2s}
.phone-link:hover{color:var(--text);border-color:var(--line-strong);background:var(--fill-3)}
.phone-link svg{flex-shrink:0}
.final-live{margin-top:20px;color:var(--faint);font-size:.92rem;
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.final-live .ldot{width:7px;height:7px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 10px rgba(52,211,153,.7);animation:pulse 1.8s infinite;flex-shrink:0}
.final-live a{color:var(--ok-soft);font-weight:600}
.final-live a:hover{text-decoration:underline;text-underline-offset:3px}
.final-call{margin-top:14px;color:var(--faint);font-size:.9rem}
.final-call a{color:var(--cyan-ink);font-weight:600;display:inline-flex;gap:6px}
.final-call a:hover{text-decoration:underline}
.foot-phone{display:flex;align-items:center;gap:6px;color:var(--faint);font-size:.85rem;transition:color .2s}
.foot-phone:hover{color:var(--text)}
@media (max-width:640px){
  .phone-link .phone-num{display:none}
  .phone-link{padding:8px;border:1px solid var(--line-strong)}
}
/* ================================================================
   THEME TOKENS
   Light is the default and lives on :root, so the page renders
   correctly even before JS runs. Dark overrides it via
   :root[data-theme="dark"] — two attributes' worth of specificity,
   so it wins regardless of source order.
   ================================================================ */
:root{
  /* --- brand constants (identical in both themes) --- */
  --indigo:#6366F1;
  --cyan:#22D3EE;
  --radius:18px;
  --font-en:'Poppins',system-ui,-apple-system,sans-serif;
  --font-ar:'Almarai','Poppins',system-ui,sans-serif;

  /* ================= LIGHT (default) ================= */
  color-scheme:light;
  --bg:#EDEFF6;
  --surface:#FFFFFF;
  --surface-2:#F4F6FC;
  --text:#0B0D16;
  --muted:rgba(11,13,22,.68);
  --faint:rgba(11,13,22,.55);
  --line:rgba(11,13,22,.10);
  --line-strong:rgba(11,13,22,.17);
  --line-hover:rgba(11,13,22,.32);
  --glow-indigo:rgba(99,102,241,.22);
  --glow-cyan:rgba(34,211,238,.18);

  /* ink — accent colours used as *text*, where contrast rules */
  --indigo-ink:#4F46E5;
  --cyan-ink:#0E7288;
  --ok:#059669;
  --warn:#B45309;
  --bad:#DC2626;
  --ok-soft:#047857;

  /* fills — ascending prominence */
  --fill-05:rgba(11,13,22,.018);
  --fill-1:rgba(11,13,22,.028);
  --fill-2:#F4F6FC;
  --fill-3:#F4F6FC;
  --fill-4:rgba(11,13,22,.05);
  --fill-5:rgba(11,13,22,.085);

  /* surfaces — floating windows, cards, screens */
  --win-a:#FFFFFF;
  --win-b:#FBFCFE;
  --card-a:#FFFFFF;
  --card-b:#F8FAFE;
  --mock-bg:#F4F6FC;
  --inset:#F4F6FC;
  --pop-bg:#FFFFFF;
  --screen-a:#FFFFFF;
  --screen-b:#F5F7FD;
  --bezel-a:#DFE3ED;
  --bezel-b:#B4BBCB;
  --island:#14171F;

  /* glass */
  --glass:rgba(237,239,246,.72);
  --glass-solid:rgba(237,239,246,.97);
  --glass-2:rgba(255,255,255,.62);

  /* depth */
  --sh-1:rgba(28,34,68,.10);
  --sh-2:rgba(28,34,68,.13);
  --sh-3:rgba(28,34,68,.18);
  --rim:rgba(11,13,22,.03);

  /* atmosphere */
  --dot-idle:rgba(11,13,22,.20);
  --grid-line:rgba(11,13,22,.05);
  --grain-dot:rgba(11,13,22,.030);
  --grain-op:.30;
  --orb-op-1:.55;
  --orb-op-2:.42;
  --mesh-blend:multiply;
  --mesh-op:.55;
  --spark-op:.5;
  --halo-op-1:.42;
  --halo-op-2:.26;
  --floor-op:.6;
  --floor-line-a:rgba(99,102,241,.20);
  --floor-line-b:rgba(99,102,241,.13);
  --streak-op:.75;
  --sheen:linear-gradient(105deg,transparent 38%,rgba(99,102,241,.10) 48%,rgba(34,211,238,.10) 54%,transparent 63%);

  /* gradients */
  --grad-accent:linear-gradient(120deg,#6366F1 0%,#4F46E5 42%,#0E9BBB 100%);
  --grad-num:linear-gradient(120deg,#131728 12%,#4F46E5 62%,#0E7288);
  --grad-brand:linear-gradient(120deg,#4F46E5,#0E7288);
}
/* ================= DARK ================= */
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#08090D;
  --surface:#111318;
  --surface-2:#151823;
  --text:#FFFFFF;
  --muted:rgba(255,255,255,.64);
  --faint:rgba(255,255,255,.40);
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.14);
  --line-hover:rgba(255,255,255,.25);
  --glow-indigo:rgba(99,102,241,.35);
  --glow-cyan:rgba(34,211,238,.22);

  --indigo-ink:#A5A7FF;
  --cyan-ink:#22D3EE;
  --ok:#34D399;
  --warn:#FBBF24;
  --bad:#F87171;
  --ok-soft:#8FE9C6;

  --fill-05:rgba(255,255,255,.012);
  --fill-1:rgba(255,255,255,.020);
  --fill-2:rgba(255,255,255,.028);
  --fill-3:rgba(255,255,255,.038);
  --fill-4:rgba(255,255,255,.050);
  --fill-5:rgba(255,255,255,.090);

  --win-a:rgba(22,25,35,.94);
  --win-b:rgba(12,14,20,.97);
  --card-a:rgba(22,25,35,.70);
  --card-b:rgba(15,17,25,.90);
  --mock-bg:#0C0E15;
  --inset:#101320;
  --pop-bg:rgba(21,24,35,.95);
  --screen-a:#0F1219;
  --screen-b:#0A0C12;
  --bezel-a:#23262F;
  --bezel-b:#0E1016;
  --island:#05060A;

  --glass:rgba(8,9,13,.62);
  --glass-solid:rgba(8,9,13,.96);
  --glass-2:rgba(17,19,24,.55);

  --sh-1:rgba(0,0,0,.50);
  --sh-2:rgba(0,0,0,.70);
  --sh-3:rgba(0,0,0,.85);
  --rim:rgba(255,255,255,.02);

  --dot-idle:rgba(255,255,255,.18);
  --grid-line:rgba(255,255,255,.045);
  --grain-dot:rgba(255,255,255,.028);
  --grain-op:.35;
  --orb-op-1:.7;
  --orb-op-2:.5;
  --mesh-blend:normal;
  --mesh-op:.5;
  --spark-op:.55;
  --halo-op-1:.5;
  --halo-op-2:.3;
  --floor-op:.5;
  --floor-line-a:rgba(99,102,241,.12);
  --floor-line-b:rgba(99,102,241,.08);
  --streak-op:.6;
  --sheen:linear-gradient(105deg,transparent 38%,rgba(165,167,255,.10) 48%,rgba(34,211,238,.07) 54%,transparent 63%);

  --grad-accent:linear-gradient(120deg,#A5A7FF 0%,var(--indigo) 45%,var(--cyan) 100%);
  --grad-num:linear-gradient(120deg,#FFFFFF 20%,#A5A7FF 70%,var(--cyan));
  --grad-brand:linear-gradient(120deg,var(--indigo),var(--cyan));
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-en);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
html[lang="ar"] body{font-family:var(--font-ar)}
html[lang="ar"] h1,html[lang="ar"] h2,html[lang="ar"] h3,html[lang="ar"] .btn{letter-spacing:0 !important}
html[lang="ar"] h1,html[lang="ar"] h2,html[lang="ar"] h3,html[lang="ar"] .logo,html[lang="ar"] .hp b{font-weight:700}
html[lang="ar"] h1{line-height:1.4}
html[lang="ar"] h2{line-height:1.45}
::selection{background:rgba(99,102,241,.4)}
a{color:inherit;text-decoration:none}
.container{max-width:1180px;margin-inline:auto;padding-inline:24px}
/* ---------- ambient background ---------- */
.orb{position:fixed;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0}
.orb-1{width:640px;height:640px;background:radial-gradient(circle,var(--glow-indigo),transparent 70%);top:-200px;inset-inline-start:-160px;opacity:var(--orb-op-1)}
.orb-2{width:520px;height:520px;background:radial-gradient(circle,var(--glow-cyan),transparent 70%);top:30vh;inset-inline-end:-200px;opacity:var(--orb-op-2)}
.grain{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:var(--grain-op);
  background-image:radial-gradient(var(--grain-dot) 1px,transparent 1px);
  background-size:3px 3px}
main,header,footer{position:relative;z-index:1}
/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;inset-inline:0;z-index:50;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  background:var(--glass);
  border-bottom:1px solid var(--line);
  transition:background .3s;
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{font-weight:600;font-size:1.1rem;letter-spacing:-.01em;display:flex;align-items:center;gap:2px;font-family:var(--font-en)}
.logo .ly{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav-links{display:flex;gap:32px;align-items:center}
.nav-links a{font-size:.9rem;color:var(--muted);transition:color .2s;font-weight:400}
.nav-links a:hover{color:var(--text)}
.nav-actions{display:flex;align-items:center;gap:12px}
.lang-toggle{
  background:transparent;border:1px solid var(--line-strong);color:var(--text);
  border-radius:999px;padding:7px 16px;font-size:.85rem;cursor:pointer;
  font-family:var(--font-ar);font-weight:500;transition:border-color .2s,background .2s;
}
.lang-toggle:hover{border-color:var(--indigo);background:rgba(99,102,241,.08)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:12px;padding:12px 24px;font-size:.95rem;font-weight:600;
  cursor:pointer;transition:transform .2s,box-shadow .3s,background .2s,border-color .2s;
  border:none;font-family:inherit;
}
.btn-sm{padding:8px 18px;font-size:.85rem;border-radius:10px}
.btn-primary{
  background:linear-gradient(135deg,#6E71F6,#5457E8);color:#fff;
  box-shadow:0 0 0 1px rgba(255,255,255,.1) inset,0 8px 32px -8px var(--glow-indigo);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(255,255,255,.15) inset,0 14px 44px -8px rgba(99,102,241,.55)}
.btn-ghost{background:var(--fill-4);color:var(--text);border:1px solid var(--line-strong)}
.btn-ghost:hover{background:var(--fill-5);border-color:var(--line-hover)}
.arrow{display:inline-block;transition:transform .2s}
html[dir="rtl"] .arrow{transform:scaleX(-1)}
.btn:hover .arrow{transform:translateX(3px)}
html[dir="rtl"] .btn:hover .arrow{transform:scaleX(-1) translateX(3px)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
h1{
  font-size:clamp(2.5rem,6vw,4.4rem);
  font-weight:600;letter-spacing:-.022em;line-height:1.1;
  max-width:820px;margin-inline:auto;
}
h1 .accent-line{
  background:var(--grad-accent);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
/* ---------- showroom ---------- */
.showroom{
  margin-top:90px;position:relative;height:520px;
  perspective:1600px;
}
.showroom::before{
  content:"";position:absolute;inset-inline:10%;bottom:-40px;height:200px;
  background:radial-gradient(ellipse at center,rgba(99,102,241,.18),transparent 70%);
  filter:blur(30px);
}
.stage-floor{
  position:absolute;bottom:0;inset-inline:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--line-strong),transparent);
}
.dash{
  position:absolute;border-radius:16px;
  background:linear-gradient(180deg,var(--win-a),var(--win-b));
  border:1px solid var(--line-strong);
  box-shadow:0 40px 80px -20px var(--sh-2),0 0 0 1px var(--fill-1) inset;
  backdrop-filter:blur(10px);
  overflow:hidden;
  transform-style:preserve-3d;
}
.dash-center{
  width:560px;height:400px;inset-inline-start:50%;top:20px;
  transform:translateX(-50%);z-index:3;
  animation:dash-enter 1s .55s cubic-bezier(.2,.8,.2,1) both,float-a 7s 1.7s ease-in-out infinite;
  box-shadow:0 50px 100px -20px var(--sh-3),0 0 80px -30px var(--glow-indigo);
}
html[dir="rtl"] .dash-center{transform:translateX(50%)}
.dash-left{
  width:400px;height:310px;inset-inline-start:2%;top:110px;z-index:2;
  transform:rotateY(16deg) rotateX(4deg);
  animation:dash-enter 1s .75s cubic-bezier(.2,.8,.2,1) both,float-b 8s 1.9s ease-in-out infinite;
}
.dash-right{
  width:400px;height:310px;inset-inline-end:2%;top:110px;z-index:2;
  transform:rotateY(-16deg) rotateX(4deg);
  animation:dash-enter 1s .9s cubic-bezier(.2,.8,.2,1) both,float-c 9s 2.1s ease-in-out infinite;
}
html[dir="rtl"] .dash-left{transform:rotateY(-16deg) rotateX(4deg)}
html[dir="rtl"] .dash-right{transform:rotateY(16deg) rotateX(4deg)}
@keyframes float-a{0%,100%{margin-top:0}50%{margin-top:-14px}}
@keyframes float-b{0%,100%{margin-top:0}50%{margin-top:-10px}}
@keyframes float-c{0%,100%{margin-top:0}50%{margin-top:-18px}}
/* dashboard chrome + UI atoms */
.dash-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.dash-title{font-size:.78rem;font-weight:600;display:flex;align-items:center;gap:8px}
.dash-title .pd{width:8px;height:8px;border-radius:3px}
.pd-indigo{background:var(--indigo);box-shadow:0 0 12px var(--glow-indigo)}
.pd-cyan{background:var(--cyan);box-shadow:0 0 12px var(--glow-cyan)}
.pd-violet{background:#8B5CF6;box-shadow:0 0 12px rgba(139,92,246,.4)}
.dash-tabs{display:flex;gap:14px;margin-inline-start:auto;font-size:.66rem;color:var(--faint)}
.dash-tabs span.on{color:var(--text);font-weight:500}
.dash-body{padding:14px 16px;display:grid;gap:12px}
.ui-row{display:grid;gap:12px}
.ui-stat{
  background:var(--fill-3);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;
}
.ui-stat .k{font-size:.6rem;color:var(--faint);text-transform:uppercase;letter-spacing:.08em}
html[lang="ar"] .ui-stat .k{letter-spacing:0}
.ui-stat .v{font-size:1.05rem;font-weight:600;letter-spacing:-.02em;margin-top:2px;font-variant-numeric:tabular-nums}
.ui-stat .d{font-size:.62rem;margin-top:1px}
.up{color:var(--ok)}
.down{color:var(--bad)}
.cy{color:var(--cyan-ink)}
.ui-panel{background:var(--fill-2);border:1px solid var(--line);border-radius:10px;padding:12px;position:relative;overflow:hidden}
.panel-label{font-size:.62rem;color:var(--faint);margin-bottom:8px;font-weight:500}
/* bars */
.bars{display:flex;align-items:flex-end;gap:6px;height:70px}
.bars i{flex:1;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,var(--indigo),rgba(99,102,241,.25));min-height:8%;transform-origin:bottom;animation:grow 1.2s cubic-bezier(.2,.8,.2,1) both}
.bars i.c{background:linear-gradient(180deg,var(--cyan),rgba(34,211,238,.2))}
@keyframes grow{from{transform:scaleY(0)}}
/* table */
.ui-table{display:grid;gap:0;font-size:.64rem}
.ui-table .tr{display:grid;grid-template-columns:1.6fr 1fr .8fr;gap:8px;padding:7px 4px;border-bottom:1px solid var(--fill-4);color:var(--muted);align-items:center;transition:background .15s}
.ui-table .tr:hover{background:var(--fill-2)}
.ui-table .th{color:var(--faint);font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line)}
html[lang="ar"] .ui-table .th{letter-spacing:0}
.chip{display:inline-block;border-radius:999px;padding:2px 8px;font-size:.56rem;font-weight:600;justify-self:start}
html[dir="rtl"] .chip{justify-self:start}
.chip-g{background:rgba(52,211,153,.14);color:var(--ok)}
.chip-y{background:rgba(251,191,36,.14);color:var(--warn)}
.chip-b{background:rgba(34,211,238,.14);color:var(--cyan-ink)}
.chip-i{background:rgba(99,102,241,.16);color:var(--indigo-ink)}
/* notification */
.notif{
  position:absolute;top:52px;inset-inline-end:12px;z-index:4;
  background:var(--pop-bg);border:1px solid var(--line-strong);
  border-radius:10px;padding:9px 12px;font-size:.62rem;display:flex;gap:8px;align-items:center;
  box-shadow:0 12px 32px var(--sh-1);backdrop-filter:blur(8px);
  animation:notif-in 1s .9s cubic-bezier(.2,.9,.3,1.2) both;
}
@keyframes notif-in{from{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:none}}
.notif .nd{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);flex-shrink:0}
.notif b{font-weight:600}
/* donut */
.donut{width:74px;height:74px;border-radius:50%;position:relative;flex-shrink:0;
  background:conic-gradient(var(--indigo) 0 68%, var(--cyan) 68% 87%, var(--fill-5) 87% 100%)}
.donut::after{content:"";position:absolute;inset:12px;border-radius:50%;background:var(--inset)}
.donut span{position:absolute;inset:0;display:grid;place-items:center;font-size:.78rem;font-weight:600;z-index:1;font-variant-numeric:tabular-nums}
/* stock meter */
.meter{height:6px;border-radius:99px;background:var(--fill-4);overflow:hidden}
.meter i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--indigo),var(--cyan));animation:meter-in 1.4s cubic-bezier(.2,.8,.2,1) both}
@keyframes meter-in{from{width:0 !important}}
.meter-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:.62rem;color:var(--muted);padding:5px 0}
.meter-row b{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}
/* avatars */
.avatars{display:flex}
.av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.55rem;font-weight:600;border:2px solid var(--inset);margin-inline-start:-8px;font-family:var(--font-en)}
.av:first-child{margin-inline-start:0}
.av1{background:linear-gradient(135deg,#6366F1,#4338CA)}
.av2{background:linear-gradient(135deg,#22D3EE,#0891B2)}
.av3{background:linear-gradient(135deg,#8B5CF6,#6D28D9)}
.av4{background:var(--fill-5);color:var(--muted);font-size:.5rem}
/* map (estate) */
.map{position:relative;height:120px;border-radius:10px;overflow:hidden;
  background:
    linear-gradient(var(--grid-line) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-line) 1px,transparent 1px),
    radial-gradient(ellipse at 30% 40%,rgba(99,102,241,.12),transparent 60%),
    var(--mock-bg);
  background-size:26px 26px,26px 26px,100% 100%,100% 100%;
  border:1px solid var(--line)}
.map .road{position:absolute;background:var(--fill-4)}
.pin{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(34,211,238,.15),0 0 14px var(--cyan)}
.pin.i{background:var(--indigo);box-shadow:0 0 0 4px rgba(99,102,241,.15),0 0 14px var(--indigo)}
.pin::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid currentColor;color:var(--cyan-ink);opacity:.5;animation:ping 2.2s infinite}
.pin.i::after{color:var(--indigo)}
@keyframes ping{0%{transform:scale(.5);opacity:.7}100%{transform:scale(1.6);opacity:0}}
/* route (flow) */
.route{position:relative;height:110px;border-radius:10px;border:1px solid var(--line);overflow:hidden;
  background:radial-gradient(ellipse at 70% 30%,rgba(34,211,238,.08),transparent 60%),var(--mock-bg)}
.route svg{position:absolute;inset:0;width:100%;height:100%}
.route .path{fill:none;stroke:url(#routeGrad);stroke-width:2;stroke-dasharray:6 6;animation:dash 8s linear infinite}
@keyframes dash{to{stroke-dashoffset:-120}}
.truck-dot{fill:var(--cyan);filter:drop-shadow(0 0 6px var(--cyan))}
/* ---------- sections ---------- */
section{padding:110px 0;position:relative}
.sec-head{max-width:640px;margin-bottom:60px}
.sec-head.center{margin-inline:auto;text-align:center}
.kicker{
  font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cyan-ink);margin-bottom:16px;display:flex;align-items:center;gap:10px;
}
html[lang="ar"] .kicker{letter-spacing:0;font-size:.85rem}
.sec-head.center .kicker{justify-content:center}
.kicker::before{content:"";width:24px;height:1px;background:linear-gradient(90deg,var(--cyan),transparent)}
html[dir="rtl"] .kicker::before{background:linear-gradient(-90deg,var(--cyan),transparent)}
h2{font-size:clamp(1.85rem,3.9vw,2.8rem);font-weight:600;letter-spacing:-.018em;line-height:1.2}
.sec-sub{color:var(--muted);margin-top:16px;font-size:1.05rem;line-height:1.7}
/* products */
.products-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pcard{
  background:linear-gradient(180deg,var(--card-a),var(--card-b));
  border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .35s;
  display:flex;flex-direction:column;position:relative;
}
.pcard::before{
  content:"";position:absolute;inset:0;border-radius:var(--radius);
  background:radial-gradient(600px circle at var(--mx,50%) var(--my,0%),rgba(99,102,241,.1),transparent 45%);
  opacity:0;transition:opacity .4s;pointer-events:none;
}
.pcard:hover{transform:translateY(-6px);border-color:rgba(99,102,241,.35);box-shadow:0 30px 60px -20px var(--sh-2),0 0 50px -20px var(--glow-indigo)}
.pcard:hover::before{opacity:1}
.pcard-visual{height:220px;padding:20px 20px 0;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.pcard-visual .mini{
  background:linear-gradient(180deg,var(--win-a),var(--win-b));border:1px solid var(--line-strong);
  border-bottom:none;border-radius:12px 12px 0 0;height:100%;padding:12px;
  display:grid;gap:10px;align-content:start;
  box-shadow:0 -10px 40px -10px var(--sh-1);
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.pcard:hover .pcard-visual .mini{transform:translateY(-6px)}
.pcard-body{padding:26px 26px 30px;display:flex;flex-direction:column;gap:10px;flex:1}
.pname{font-size:1.2rem;font-weight:600;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}
.pname .pd{width:9px;height:9px;border-radius:3px}
.psub{font-size:.85rem;color:var(--cyan-ink);font-weight:500}
.pdesc{color:var(--muted);font-size:.94rem;line-height:1.65;flex:1}
.plink{font-size:.88rem;font-weight:600;color:var(--indigo-ink);display:inline-flex;gap:6px;align-items:center;margin-top:8px}
/* demo */
.demo-wrap{position:relative}
.demo-glow{position:absolute;inset:-60px 0;background:radial-gradient(ellipse at 50% 30%,rgba(99,102,241,.14),transparent 65%);filter:blur(40px);pointer-events:none}
.demo-tabs{display:flex;gap:10px;justify-content:center;margin-bottom:36px;flex-wrap:wrap}
.demo-tab{
  background:var(--fill-3);border:1px solid var(--line-strong);color:var(--muted);
  border-radius:999px;padding:10px 22px;font-size:.9rem;font-weight:500;cursor:pointer;
  transition:all .25s;font-family:inherit;display:flex;gap:8px;align-items:center;
}
.demo-tab .pd{width:8px;height:8px;border-radius:3px;opacity:.5;transition:opacity .25s}
.demo-tab:hover{color:var(--text);border-color:var(--line-hover)}
.demo-tab.active{background:rgba(99,102,241,.14);border-color:rgba(99,102,241,.5);color:var(--text);box-shadow:0 0 30px -8px var(--glow-indigo)}
.demo-tab.active .pd{opacity:1}
.browser{
  border-radius:16px;border:1px solid var(--line-strong);overflow:hidden;
  background:linear-gradient(180deg,var(--win-a),var(--win-b));
  backdrop-filter:blur(14px);
  box-shadow:0 60px 120px -30px var(--sh-3),0 0 80px -40px var(--glow-indigo);
  position:relative;
}
.browser-bar{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--fill-1)}
.dots{display:flex;gap:7px}
.dots i{width:11px;height:11px;border-radius:50%;background:var(--fill-5)}
.dots i:first-child{background:rgba(248,113,113,.55)}
.dots i:nth-child(2){background:rgba(251,191,36,.55)}
.dots i:nth-child(3){background:rgba(52,211,153,.55)}
.url{
  flex:1;max-width:340px;margin-inline:auto;background:var(--fill-4);
  border:1px solid var(--line);border-radius:8px;padding:5px 14px;
  font-size:.72rem;color:var(--faint);text-align:center;font-family:var(--font-en);direction:ltr;
}
.url b{color:var(--muted);font-weight:500}
.demo-app{display:grid;grid-template-columns:200px 1fr;min-height:460px}
.demo-app>*{min-width:0}
.demo-side{border-inline-end:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:4px;background:var(--fill-1)}
.side-brand{font-size:.8rem;font-weight:600;padding:6px 12px 16px;display:flex;gap:8px;align-items:center}
.side-item{
  font-size:.8rem;color:var(--muted);padding:8px 12px;border-radius:8px;cursor:pointer;
  transition:background .2s,color .2s;display:flex;justify-content:space-between;align-items:center;
}
.side-item:hover{background:var(--fill-4);color:var(--text)}
.side-item.on{background:rgba(99,102,241,.15);color:var(--text);font-weight:500}
.side-item .count{font-size:.62rem;background:rgba(34,211,238,.15);color:var(--cyan-ink);border-radius:99px;padding:1px 7px;font-weight:600;font-variant-numeric:tabular-nums}
.demo-main{padding:24px;display:none;animation:demo-in .5s cubic-bezier(.2,.8,.2,1)}
.demo-main.on{display:grid;gap:16px;align-content:start}
@keyframes demo-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.demo-head-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.demo-h{font-size:1.05rem;font-weight:600;letter-spacing:-.01em}
.demo-h small{display:block;font-size:.72rem;color:var(--faint);font-weight:400;margin-top:2px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.badge-live{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;color:var(--cyan-ink);background:rgba(34,211,238,.1);border:1px solid rgba(34,211,238,.25);border-radius:99px;padding:4px 12px;font-weight:500}
.badge-live .dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);animation:pulse 1.8s infinite}
/* why */
.why-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}
.why-card{
  grid-column:span 2;
  background:var(--fill-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 28px;transition:border-color .3s,background .3s;position:relative;overflow:hidden;
}
.why-card:nth-child(1),.why-card:nth-child(2){grid-column:span 3}
.why-card:hover{border-color:rgba(34,211,238,.3);background:var(--fill-3)}
.why-card::after{
  content:"";position:absolute;top:0;inset-inline-start:28px;width:44px;height:2px;
  background:linear-gradient(90deg,var(--indigo),var(--cyan));border-radius:99px;opacity:.9;
}
html[dir="rtl"] .why-card::after{background:linear-gradient(-90deg,var(--indigo),var(--cyan))}
.why-card h3{font-size:1.08rem;font-weight:600;letter-spacing:-.015em;margin-bottom:10px;margin-top:8px}
.why-card p{color:var(--muted);font-size:.92rem;line-height:1.7}
/* final cta */
.final{
  text-align:center;padding:130px 0 140px;position:relative;overflow:hidden;
}
.final::before{
  content:"";position:absolute;inset-inline:15%;top:20%;bottom:10%;
  background:radial-gradient(ellipse at center,rgba(99,102,241,.16),transparent 65%);
  filter:blur(50px);pointer-events:none;
}
.final h2{font-size:clamp(2rem,4.6vw,3.4rem);max-width:760px;margin-inline:auto;position:relative}
.final .fade{color:var(--faint)}
.final .btn{margin-top:44px;position:relative;padding:16px 36px;font-size:1.05rem;border-radius:14px}
/* footer */
footer{border-top:1px solid var(--line);padding:44px 0;color:var(--faint);font-size:.85rem}
.foot-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.foot-links{display:flex;gap:12px 26px;flex-wrap:wrap}
.foot-links a{transition:color .2s}
.foot-links a:hover{color:var(--text)}
/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.1s}
.reveal-d2{transition-delay:.2s}
.reveal-d3{transition-delay:.3s}
/* responsive */
@media (max-width:1080px){
  /* keep the showroom panels inside the viewport — bleeding them out widened the page */
  .dash-left{inset-inline-start:0;width:372px}
  .dash-right{inset-inline-end:0;width:372px}
  .dash-center{width:min(540px,62%)}
}
@media (max-width:900px){
  .nav-links{display:none}
  .products-grid{grid-template-columns:1fr}
  .why-grid{grid-template-columns:1fr 1fr}
  .why-card,.why-card:nth-child(1),.why-card:nth-child(2){grid-column:span 2}
  .demo-app{grid-template-columns:1fr}
  .demo-side{flex-direction:row;overflow-x:auto;overscroll-behavior-x:contain;min-width:0;max-width:100%;
    border-inline-end:none;border-bottom:1px solid var(--line);padding:10px}
  .side-brand{display:none}
  .side-item{white-space:nowrap}
  .stat-grid{grid-template-columns:1fr 1fr}
  .two-col{grid-template-columns:1fr}
  .showroom{height:auto;perspective:none;display:flex;flex-direction:column;gap:20px;align-items:center;margin-top:60px}
  .dash{position:relative;inset:auto !important;top:auto !important;transform:none !important;width:100% !important;max-width:560px;height:auto;min-height:300px;animation:none}
  .dash-center{order:-1}
}
@media (max-width:560px){
  section{padding:80px 0}
  .stat-grid{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s !important;animation-iteration-count:1 !important;transition-duration:.001s !important}
  html{scroll-behavior:auto}
}
/* ---------- v5: mobile nav ---------- */
.menu-btn{display:none;background:var(--fill-3);border:1px solid var(--line-strong);
  border-radius:10px;width:38px;height:38px;cursor:pointer;
  flex-direction:column;align-items:center;justify-content:center;gap:5px}
.menu-btn span{display:block;width:16px;height:1.5px;background:var(--text);border-radius:2px;transition:transform .25s,opacity .25s}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media (max-width:900px){
  .menu-btn{display:flex}
  .nav-links{display:none}
  .nav-links.open{display:flex;position:absolute;top:64px;inset-inline:0;flex-direction:column;
    align-items:stretch;gap:0;background:var(--glass-solid);
    backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    border-bottom:1px solid var(--line);padding:8px 24px 16px}
  .nav-links.open a{padding:14px 4px;border-bottom:1px solid var(--line);font-size:1rem}
  .nav-links.open a:last-child{border-bottom:none}
}
@media (max-width:560px){
  .nav-inner .btn-sm{display:none}
  .url{font-size:.62rem;padding:4px 10px}
  .badge-live{display:none}
  .demo-main{padding:16px}
  .dash-body{padding:12px}
  .fleet-card{padding:24px 20px}
  .marquee{margin-top:56px}
  .showroom{margin-top:48px}
  .final{padding:96px 0 104px}
  .why-grid{grid-template-columns:1fr}
  .why-card,.why-card:nth-child(1),.why-card:nth-child(2){grid-column:span 1}
  h2{font-size:1.7rem}
}
.btn:focus-visible,.lang-toggle:focus-visible,.demo-tab:focus-visible,.menu-btn:focus-visible,a:focus-visible{outline:2px solid var(--cyan-ink);outline-offset:3px}
/* ---------- v2: logo placeholder ---------- */
.logo{gap:10px}
.logo-mark{width:30px;height:30px;border-radius:9px;flex-shrink:0;
  background:linear-gradient(135deg,var(--indigo),var(--cyan));
  display:grid;place-items:center;font-weight:700;font-size:.95rem;color:#fff;
  box-shadow:0 0 22px -4px var(--glow-indigo),0 0 0 1px rgba(255,255,255,.15) inset;
  font-family:var(--font-en)}
@keyframes streak{
  0%{transform:translateY(0) scaleX(.4);opacity:0}
  12%{opacity:var(--streak-op)}
  70%{opacity:.3}
  100%{transform:translateY(460px) scaleX(1.4);opacity:0}}
/* staged dashboard entrance (text entrance uses rise-in below) */
@keyframes dash-in{from{opacity:0;filter:blur(14px)}to{opacity:1;filter:blur(0)}}
.dash-center{animation:float-a 7s ease-in-out infinite,dash-in 1.1s .5s ease both}
.dash-left{animation:float-b 8s ease-in-out infinite,dash-in 1.1s .72s ease both}
.dash-right{animation:float-c 9s ease-in-out infinite,dash-in 1.1s .88s ease both}
.accent-line{background-size:220% 100%;animation:shimmer 7s linear infinite}
@keyframes shimmer{to{background-position:-220% 0}}
/* ---------- v2: module ticker ---------- */
.marquee{margin-top:80px;border-block:1px solid var(--line);padding:16px 0;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,black 14%,black 86%,transparent);
  mask-image:linear-gradient(90deg,transparent,black 14%,black 86%,transparent);
  background:var(--fill-05)}
.marquee-track{display:flex;gap:46px;width:max-content;animation:mq 30s linear infinite;padding-inline-end:46px}
.mq{font-size:.84rem;color:var(--faint);display:flex;align-items:center;gap:10px;white-space:nowrap;font-weight:400}
.mq::before{content:"";width:5px;height:5px;border-radius:2px;background:var(--indigo);opacity:.75;box-shadow:0 0 8px var(--glow-indigo)}
.mq:nth-child(even)::before{background:var(--cyan);box-shadow:0 0 8px var(--glow-cyan)}
@keyframes mq{to{transform:translateX(-50%)}}
html[dir="rtl"] .marquee-track{animation-name:mq-rtl}
@keyframes mq-rtl{to{transform:translateX(50%)}}
/* ---------- v2: coming-soon logistics card ---------- */
.fleet-card{grid-column:1/-1;display:flex;align-items:center;gap:28px;justify-content:space-between;flex-wrap:wrap;
  border:1px dashed rgba(99,102,241,.45);border-radius:var(--radius);padding:32px 36px;
  background:linear-gradient(100deg,rgba(99,102,241,.08),rgba(34,211,238,.05));
  position:relative;overflow:hidden;transition:border-color .3s}
.fleet-card:hover{border-color:rgba(34,211,238,.55)}
.fleet-card::before{content:"";position:absolute;inset-inline-end:-60px;top:-60px;width:220px;height:220px;
  background:radial-gradient(circle,rgba(34,211,238,.14),transparent 70%);filter:blur(20px)}
.soon{font-size:.7rem;font-weight:600;color:var(--cyan-ink);letter-spacing:.1em;text-transform:uppercase;
  border:1px solid rgba(34,211,238,.35);background:rgba(34,211,238,.08);
  padding:6px 16px;border-radius:99px;white-space:nowrap}
html[lang="ar"] .soon{letter-spacing:0;font-size:.8rem}
/* ---------- v3: product status (live / coming soon) ---------- */
.pstatus{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
  margin-inline-start:auto;flex-shrink:0;
  font-size:.62rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  padding:5px 11px;border-radius:99px}
html[lang="ar"] .pstatus{letter-spacing:0;text-transform:none;font-size:.7rem}
.pstatus.live{color:var(--ok-soft);background:rgba(52,211,153,.13);border:1px solid rgba(52,211,153,.38)}
.pstatus.live .dot{width:6px;height:6px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 9px rgba(52,211,153,.7);animation:pulse 1.8s infinite}
.pstatus.wip{color:var(--faint);background:var(--fill-4);border:1px solid var(--line-strong)}
:root:not([data-theme="dark"]) .pstatus.live{background:rgba(5,150,105,.10);border-color:rgba(5,150,105,.30)}
/* an unshipped product reads a touch quieter, without breaking the grid */
.pcard.is-soon .pcard-visual .mini{opacity:.6;filter:saturate(.6);transition:opacity .3s,filter .3s,transform .5s}
.pcard.is-soon:hover .pcard-visual .mini{opacity:.82;filter:saturate(.85)}
.pcard.is-soon .plink{color:var(--faint);font-weight:500}
.pcard.is-soon:hover .plink{color:var(--muted)}
/* the live-demo link on the shipped card */
.plink.live{color:var(--ok-soft)}
.plink.live .dot{width:7px;height:7px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 10px rgba(52,211,153,.65);animation:pulse 1.8s infinite;flex-shrink:0}
.plink.live:hover{text-decoration:underline;text-underline-offset:3px}
/* demo tab tags */
.demo-tab .tab-tag{font-style:normal;font-size:.6rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:2px 7px;border-radius:6px;margin-inline-start:2px;
  background:var(--fill-4);color:var(--faint);border:1px solid var(--line)}
.demo-tab .tab-tag.live{background:rgba(52,211,153,.14);border-color:rgba(52,211,153,.34);color:var(--ok-soft)}
html[lang="ar"] .demo-tab .tab-tag{letter-spacing:0;text-transform:none;font-size:.66rem}
/* the "open the real thing" band under the demo browser */
.demo-live{margin-top:26px;display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;
  border:1px solid rgba(52,211,153,.32);border-radius:var(--radius);padding:24px 28px;position:relative;overflow:hidden;
  background:linear-gradient(100deg,rgba(52,211,153,.09),rgba(34,211,238,.05))}
.demo-live::before{content:"";position:absolute;inset-inline-end:-70px;top:-70px;width:230px;height:230px;
  background:radial-gradient(circle,rgba(52,211,153,.16),transparent 70%);filter:blur(22px);pointer-events:none}
.demo-live-txt{position:relative;z-index:2;max-width:620px}
.demo-live-txt b{display:flex;align-items:center;gap:9px;font-size:1.02rem;font-weight:600;letter-spacing:-.01em}
.demo-live-txt b .ldot{width:8px;height:8px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 11px rgba(52,211,153,.7);animation:pulse 1.8s infinite;flex-shrink:0}
.demo-live-txt p{margin-top:7px;color:var(--muted);font-size:.9rem;line-height:1.6}
.demo-live .btn{position:relative;z-index:2;flex-shrink:0}
.demo-live code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86rem;letter-spacing:0}
:root:not([data-theme="dark"]) .demo-live{border-color:rgba(5,150,105,.28);
  background:linear-gradient(100deg,rgba(5,150,105,.07),rgba(14,114,136,.04))}
@media (max-width:640px){
  .demo-live{padding:22px 20px;gap:18px}
  .demo-live .btn{width:100%;justify-content:center}
}
/* ---------- v2: demo video placeholders ---------- */
.demo-videos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}
.dv{border:1px dashed var(--line-strong);border-radius:14px;padding:20px 22px;
  display:flex;gap:16px;align-items:center;background:var(--fill-1);
  transition:border-color .3s,background .3s,transform .3s;cursor:pointer}
.dv:hover{border-color:rgba(99,102,241,.55);background:rgba(99,102,241,.06);transform:translateY(-3px)}
.play{width:44px;height:44px;border-radius:50%;background:var(--fill-4);
  border:1px solid var(--line-strong);display:grid;place-items:center;flex-shrink:0;transition:all .3s}
.dv:hover .play{background:rgba(99,102,241,.2);border-color:rgba(99,102,241,.6);box-shadow:0 0 24px -6px var(--glow-indigo)}
.play::after{content:"";border-style:solid;border-width:7px 0 7px 11px;
  border-color:transparent transparent transparent var(--text);margin-inline-start:3px}
html[dir="rtl"] .play::after{transform:scaleX(-1);margin-inline-start:-3px}
.dv b{font-size:.92rem;font-weight:600;display:block}
.dv small{display:block;color:var(--faint);font-size:.74rem;margin-top:2px}
@media (max-width:900px){
  .demo-videos{grid-template-columns:1fr}
  .fleet-card{padding:26px 24px}
}
/* ---------- v9: theme toggle ---------- */
.theme-toggle{
  position:relative;width:34px;height:34px;flex-shrink:0;
  background:var(--fill-4);border:1px solid var(--line-strong);color:var(--text);
  border-radius:50%;cursor:pointer;display:grid;place-items:center;
  transition:border-color .2s,background .2s;
}
.theme-toggle:hover{border-color:var(--indigo);background:rgba(99,102,241,.12)}
.theme-toggle svg{position:absolute;width:16px;height:16px;
  transition:opacity .32s cubic-bezier(.2,.8,.2,1),transform .42s cubic-bezier(.2,.8,.2,1)}
/* dark theme shows the moon; light theme shows the sun */
.t-sun{opacity:0;transform:rotate(-70deg) scale(.5)}
.t-moon{opacity:1;transform:none}
:root:not([data-theme="dark"]) .t-sun{opacity:1;transform:none}
:root:not([data-theme="dark"]) .t-moon{opacity:0;transform:rotate(70deg) scale(.5)}
.theme-toggle:focus-visible{outline:2px solid var(--cyan-ink);outline-offset:3px}
/* ---------- v3: logo mark ---------- */
.mark{flex-shrink:0;filter:drop-shadow(0 0 10px rgba(99,102,241,.5))}
@keyframes rise-in{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes dash-enter{from{opacity:0;filter:blur(12px)}to{opacity:1;filter:blur(0)}}
@media (max-width:900px){
  .dash{animation:dash-enter 1s .4s cubic-bezier(.2,.8,.2,1) both !important}
}
/* ---------- v6: "Why Proto" — needs paired with a live system interface ---------- */
.nx{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:52px;align-items:start}
/* --- left: the needs --- */
.nx-list{display:flex;flex-direction:column;gap:4px}
.nx-item{
  position:relative;display:block;width:100%;text-align:start;cursor:pointer;
  background:transparent;border:none;border-radius:14px;color:inherit;font:inherit;
  padding:17px 20px;padding-inline-start:26px;
  transition:background .35s,box-shadow .35s;
}
.nx-item::before,.nx-item::after{
  content:"";position:absolute;top:15px;bottom:15px;inset-inline-start:0;width:2px;border-radius:99px;
}
.nx-item::before{background:var(--fill-5)}
.nx-item::after{background:linear-gradient(180deg,var(--indigo),var(--cyan));transform:scaleY(0);transform-origin:top}
.nx-item:hover{background:var(--fill-2)}
.nx-item.on{background:var(--fill-3);box-shadow:inset 0 0 0 1px var(--line)}
.nx-item.on::after{animation:nx-prog 6.2s linear both}
.nx:hover .nx-item.on::after,.nx:focus-within .nx-item.on::after{animation-play-state:paused}
@keyframes nx-prog{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.nx-item h3{
  font-size:1.01rem;font-weight:600;letter-spacing:-.015em;color:var(--muted);
  display:flex;align-items:center;gap:11px;transition:color .35s;
}
.nx-item.on h3,.nx-item:hover h3{color:var(--text)}
.nx-d{width:7px;height:7px;border-radius:2px;background:var(--dot-idle);flex-shrink:0;
  transition:background .35s,box-shadow .35s}
.nx-item.on .nx-d{background:linear-gradient(135deg,var(--indigo),var(--cyan));box-shadow:0 0 12px var(--glow-indigo)}
.nx-item p{
  color:var(--faint);font-size:.9rem;line-height:1.7;
  max-height:0;opacity:0;margin-top:0;overflow:hidden;
  transition:max-height .55s cubic-bezier(.2,.8,.2,1),opacity .35s,margin-top .35s;
}
.nx-item.on p{max-height:260px;opacity:1;margin-top:9px}
/* --- right: the interface --- */
.nx-view{position:sticky;top:96px}
.nx-view::before{
  content:"";position:absolute;inset:-46px 0;pointer-events:none;
  background:radial-gradient(ellipse at 50% 22%,rgba(99,102,241,.16),transparent 66%);filter:blur(38px);
}
.nx-frame{
  position:relative;border-radius:16px;border:1px solid var(--line-strong);overflow:hidden;
  background:linear-gradient(180deg,var(--win-a),var(--win-b));
  box-shadow:0 50px 100px -35px var(--sh-3),0 0 70px -40px var(--glow-indigo);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.nx-bar{display:flex;align-items:center;gap:12px;padding:11px 15px;border-bottom:1px solid var(--line);
  background:var(--fill-1)}
.nx-tag{margin-inline-start:auto;font-size:.62rem;color:var(--faint);letter-spacing:.12em;text-transform:uppercase;
  display:flex;align-items:center;gap:7px}
html[lang="ar"] .nx-tag{letter-spacing:0;font-size:.7rem}
.nx-tag .nd{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);
  animation:pulse 2.2s infinite}
.nx-body{position:relative;min-height:452px}
.nx-pane{
  position:absolute;inset:0;padding:18px;display:flex;flex-direction:column;gap:14px;
  opacity:0;visibility:hidden;transform:translateY(12px) scale(.985);
  transition:opacity .4s,transform .55s cubic-bezier(.2,.8,.2,1),visibility .4s;
}
.nx-pane.on{opacity:1;visibility:visible;transform:none}
.nx-h{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.74rem;
  color:var(--muted);font-weight:500}
.nx-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.64rem;color:var(--faint);direction:ltr}
.nx-note{margin-top:auto;display:flex;align-items:flex-start;gap:8px;font-size:.7rem;color:var(--faint);line-height:1.6;
  border-top:1px solid var(--line);padding-top:11px}
.nx-ok{color:var(--ok);font-weight:700;flex-shrink:0}
.nx-ar{display:inline-block;color:var(--faint);font-size:.62rem}
html[dir="rtl"] .nx-ar{transform:scaleX(-1)}
/* pane 1 — messy reality becomes structured records */
.nx-swap{position:relative;min-height:272px;flex:none}
.nx-raw,.nx-clean{position:absolute;inset:0}
.nx-raw{display:flex;flex-direction:column;gap:9px;justify-content:center;padding:4px 2px}
.nx-raw span{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.64rem;color:var(--faint);
  border:1px dashed var(--line-strong);border-radius:8px;padding:8px 11px;background:var(--fill-1);
  direction:ltr;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nx-pane.on .nx-raw span{animation:nx-scatter 2.5s cubic-bezier(.3,.7,.2,1) both;
  animation-delay:calc(var(--i,0)*.08s + .3s)}
@keyframes nx-scatter{
  0%{opacity:1;transform:rotate(-.5deg)}
  40%{opacity:.4}
  100%{opacity:0;transform:translateY(-16px) rotate(-2.5deg) scale(.96)}
}
.nx-clean{display:flex;flex-direction:column}
.nx-row{display:grid;grid-template-columns:1.5fr .7fr .8fr;gap:8px;align-items:center;
  font-size:.7rem;color:var(--muted);padding:9px 6px;border-bottom:1px solid var(--fill-4)}
.nx-row.hd{color:var(--faint);font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;
  border-bottom:1px solid var(--line)}
html[lang="ar"] .nx-row.hd{letter-spacing:0;font-size:.66rem}
.nx-pane.on .nx-clean>*{animation:nx-slot .7s cubic-bezier(.2,.8,.2,1) both;
  animation-delay:calc(1.45s + var(--i,0)*.12s)}
@keyframes nx-slot{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
/* pane 2 — a screen anyone can finish */
.nx-form{display:grid;gap:10px;flex:none}
.nx-field{border:1px solid var(--line);border-radius:10px;background:var(--fill-2);
  padding:9px 12px;display:flex;flex-direction:column;gap:3px}
.nx-field .fl{font-size:.6rem;color:var(--faint);text-transform:uppercase;letter-spacing:.07em}
html[lang="ar"] .nx-field .fl{letter-spacing:0;font-size:.66rem}
.nx-field .fv{font-size:.82rem;font-weight:500;white-space:nowrap;overflow:hidden}
.nx-pane.on .nx-field{animation:nx-focus 1.5s cubic-bezier(.2,.8,.2,1) both;
  animation-delay:calc(var(--i,0)*.6s + .15s)}
@keyframes nx-focus{
  0%{border-color:var(--line);box-shadow:none}
  22%{border-color:rgba(99,102,241,.65);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
  100%{border-color:var(--line-strong);box-shadow:none}
}
.nx-pane.on .nx-field .fv{animation:nx-type-l .55s steps(20,end) both;
  animation-delay:calc(var(--i,0)*.6s + .4s)}
html[dir="rtl"] .nx-pane.on .nx-field .fv{animation-name:nx-type-r}
@keyframes nx-type-l{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes nx-type-r{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
.nx-cta{align-self:start;border-radius:10px;padding:9px 20px;font-size:.76rem;font-weight:600;
  background:linear-gradient(135deg,#6E71F6,#5457E8);color:#fff;box-shadow:0 8px 26px -10px var(--glow-indigo)}
.nx-pane.on .nx-cta{animation:nx-press .7s cubic-bezier(.2,.8,.2,1) 2.05s both}
@keyframes nx-press{
  0%{transform:none;box-shadow:0 8px 26px -10px var(--glow-indigo)}
  35%{transform:scale(.955)}
  60%{box-shadow:0 12px 42px -8px rgba(99,102,241,.75)}
  100%{transform:none}
}
.nx-toast{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;align-self:start;
  background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.28);color:var(--ok-soft);
  border-radius:10px;padding:8px 14px}
.nx-pane.on .nx-toast{animation:nx-toast .6s cubic-bezier(.2,.9,.3,1.2) 2.45s both}
@keyframes nx-toast{from{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:none}}
/* pane 3 — the same screen in both languages */
.nx-mirror{position:relative;min-height:256px;flex:none;border:1px solid var(--line);border-radius:12px;
  overflow:hidden;background:var(--mock-bg)}
.nx-mock{position:absolute;inset:0;display:grid;grid-template-columns:98px 1fr}
.nx-mock.a{font-family:var(--font-en)}
.nx-mock.b{font-family:var(--font-ar)}
.mk-side{border-inline-end:1px solid var(--line);padding:11px 9px;display:flex;flex-direction:column;gap:5px;
  background:var(--fill-1)}
.mk-side b{font-size:.6rem;font-weight:600;margin-bottom:6px;display:flex;gap:6px;align-items:center;white-space:nowrap}
.mk-side b::before{content:"";width:7px;height:7px;border-radius:2px;background:var(--indigo);
  box-shadow:0 0 10px var(--glow-indigo);flex-shrink:0}
.mk-side span{font-size:.62rem;color:var(--faint);padding:5px 7px;border-radius:6px}
.mk-side span.on{background:rgba(99,102,241,.16);color:var(--text)}
.mk-main{padding:12px 13px}
.mk-t{font-size:.78rem;font-weight:600;display:flex;align-items:baseline;gap:8px;margin-bottom:9px}
.mk-t em{font-style:normal;font-size:.6rem;color:var(--cyan-ink);font-weight:500}
.mk-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 2px;
  border-bottom:1px solid var(--fill-4);color:var(--muted);font-size:.66rem}
.nx-pane.on .nx-mock.a{animation:nx-mir-a 6.4s cubic-bezier(.4,0,.2,1) infinite both}
.nx-pane.on .nx-mock.b{animation:nx-mir-b 6.4s cubic-bezier(.4,0,.2,1) infinite both}
@keyframes nx-mir-a{0%,42%{opacity:1;transform:none}52%,92%{opacity:0;transform:translateX(-16px)}100%{opacity:1;transform:none}}
@keyframes nx-mir-b{0%,42%{opacity:0;transform:translateX(16px)}52%,92%{opacity:1;transform:none}100%{opacity:0;transform:translateX(16px)}}
.nx-pills{display:flex;gap:5px}
.nx-pills i{font-style:normal;font-size:.6rem;padding:3px 10px;border-radius:99px;
  border:1px solid var(--line-strong);color:var(--faint);transition:none}
.nx-pills i.b{font-family:var(--font-ar)}
.nx-pane.on .nx-pills i.a{animation:nx-pill-a 6.4s infinite both}
.nx-pane.on .nx-pills i.b{animation:nx-pill-b 6.4s infinite both}
@keyframes nx-pill-a{
  0%,44%{background:rgba(99,102,241,.2);border-color:rgba(99,102,241,.55);color:#fff}
  50%,96%{background:transparent;border-color:var(--line-strong);color:var(--faint)}
  100%{background:rgba(99,102,241,.2);border-color:rgba(99,102,241,.55);color:#fff}
}
@keyframes nx-pill-b{
  0%,44%{background:transparent;border-color:var(--line-strong);color:var(--faint)}
  50%,96%{background:rgba(99,102,241,.2);border-color:rgba(99,102,241,.55);color:#fff}
  100%{background:transparent;border-color:var(--line-strong);color:var(--faint)}
}
/* pane 4 — bend the system to the company */
.nx-fields{display:grid;gap:8px;flex:none}
.nx-fr{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;background:var(--fill-2);font-size:.75rem}
.nx-grip{color:var(--faint);font-size:.66rem;letter-spacing:1px;flex-shrink:0}
.nx-fr .nm{flex:1;min-width:0;display:flex;align-items:center}
.nx-tg{width:28px;height:16px;border-radius:99px;background-color:var(--fill-5);position:relative;flex-shrink:0}
.nx-tg::after{content:"";position:absolute;top:2px;inset-inline-start:2px;width:12px;height:12px;border-radius:50%;
  background:#fff;opacity:.5}
.nx-tg.on{background-color:#5457E8;box-shadow:0 0 14px -4px var(--glow-indigo)}
.nx-tg.on::after{transform:translateX(12px);opacity:1}
html[dir="rtl"] .nx-tg.on::after{transform:translateX(-12px)}
.nx-pane.on .nx-tg.late{animation:nx-tgon .5s cubic-bezier(.2,.8,.2,1) 1.9s both}
@keyframes nx-tgon{from{background-color:var(--fill-5)}to{background-color:#5457E8}}
.nx-pane.on .nx-tg.late::after{animation:nx-knob-l .5s cubic-bezier(.2,.8,.2,1) 1.9s both}
html[dir="rtl"] .nx-pane.on .nx-tg.late::after{animation-name:nx-knob-r}
@keyframes nx-knob-l{from{transform:none;opacity:.5}to{transform:translateX(12px);opacity:1}}
@keyframes nx-knob-r{from{transform:none;opacity:.5}to{transform:translateX(-12px);opacity:1}}
.nx-rename{position:relative;display:inline-flex;align-items:center;min-width:0}
.ren-old{position:absolute;inset-inline-start:0;white-space:nowrap;color:var(--faint)}
.nx-pane.on .ren-old{animation:nx-vanish .45s .75s both}
@keyframes nx-vanish{from{opacity:1}to{opacity:0;transform:translateY(-5px)}}
.ren-new{white-space:nowrap;overflow:hidden}
.nx-pane.on .ren-new{animation:nx-type-l .6s steps(16,end) 1.2s both}
html[dir="rtl"] .nx-pane.on .ren-new{animation-name:nx-type-r}
.caret{width:1.5px;height:12px;background:var(--cyan);margin-inline-start:3px;opacity:0;flex-shrink:0}
.nx-pane.on .caret{animation:nx-caret .5s steps(1,end) 1.2s 5 both}
@keyframes nx-caret{0%,49%{opacity:1}50%,100%{opacity:0}}
.nx-flowline{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-top:2px}
.nx-flowline .chip{font-size:.62rem;padding:4px 11px}
.nx-pane.on .nx-new{animation:nx-pop .55s cubic-bezier(.2,.9,.3,1.3) 2.5s both}
@keyframes nx-pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
/* pane 5 — your domain, your data */
.nx-url{display:flex;align-items:center;gap:8px;position:relative;
  background:var(--fill-4);border:1px solid var(--line);border-radius:9px;
  padding:9px 13px;font-size:.75rem;font-family:var(--font-en);direction:ltr}
.nx-url b{font-weight:600;color:var(--indigo-ink)}
.nx-url .u-old{position:absolute;inset-inline-start:36px;color:var(--faint)}
.nx-pane.on .nx-url .u-old{animation:nx-vanish .45s .7s both}
.nx-url .u-new{white-space:nowrap;overflow:hidden}
.nx-pane.on .nx-url .u-new{animation:nx-type-l .7s steps(22,end) 1.15s both}
.nx-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:none}
.nx-two .ui-stat .v{font-size:.82rem}
.nx-exp{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.nx-pct{font-size:.66rem;color:var(--cyan-ink);font-weight:600;font-variant-numeric:tabular-nums}
.nx-pane.on .nx-pct{animation:nx-slot .5s 1.9s both}
.nx-pane .meter i{animation:none;width:100%}
.nx-pane.on .meter i{animation:nx-fill 1.6s cubic-bezier(.2,.8,.2,1) .5s both}
@keyframes nx-fill{from{width:0}to{width:100%}}
.nx-keys{display:flex;align-items:center;gap:9px;font-size:.7rem;color:var(--muted)}
.nx-keys .sh{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;flex-shrink:0;
  background:rgba(34,211,238,.12);border:1px solid rgba(34,211,238,.3);color:var(--cyan-ink);font-size:.66rem}
/* responsive */
@media (max-width:980px){
  .nx{grid-template-columns:1fr;gap:26px}
  /* one column: the panel stacks above the list, so it must scroll with the
     page — left sticky it pins itself over the options as they scroll past */
  .nx-view{position:relative;top:auto;order:-1}
  .nx-view::before{inset:-20px 0}
  .nx-body{min-height:424px}
  .nx-swap{min-height:224px}
  .nx-mirror{min-height:210px}
  /* fewer table rows so the record list can't run into the closing line */
  .nx-row{padding:7px 5px}
  #nx-pane-1 .nx-clean>:nth-child(n+6){display:none}
}
@media (max-width:560px){
  .nx-item{padding:14px 14px;padding-inline-start:20px}
  .nx-item h3{font-size:.95rem}
  .nx-item p{font-size:.85rem}
  .nx-pane{padding:14px;gap:9px}
  .nx-body{min-height:422px}
  .nx-swap{min-height:206px}
  .nx-mirror{min-height:196px}
  .nx-form{gap:8px}
  .nx-field{padding:8px 11px}
  #nx-pane-1 .nx-clean>:nth-child(n+5){display:none}
  .nx-mock{grid-template-columns:80px 1fr}
  .nx-url{font-size:.68rem}
  .nx-url .u-old{inset-inline-start:32px}
}
/* ================================================================
   LIGHT-THEME REFINEMENTS
   Tinted fills that read as "soft glow" on black turn invisible on
   white, so the accent washes get more weight and the elevated
   surfaces get a real shadow instead of a glow.
   ================================================================ */
:root:not([data-theme="dark"]) body{background:var(--bg)}
/* accent-tinted pills, chips and badges need more saturation on white */
:root:not([data-theme="dark"]) .chip-g{background:rgba(5,150,105,.12)}
:root:not([data-theme="dark"]) .chip-y{background:rgba(180,83,9,.12)}
:root:not([data-theme="dark"]) .chip-b{background:rgba(14,114,136,.13)}
:root:not([data-theme="dark"]) .chip-i{background:rgba(79,70,229,.13)}
:root:not([data-theme="dark"]) .badge-live{background:rgba(14,114,136,.10);border-color:rgba(14,114,136,.28)}
:root:not([data-theme="dark"]) .side-item .count{background:rgba(14,114,136,.12);color:var(--cyan-ink)}
:root:not([data-theme="dark"]) .soon{background:rgba(14,114,136,.09);border-color:rgba(14,114,136,.32)}
:root:not([data-theme="dark"]) .nx-keys .sh{background:rgba(14,114,136,.11);border-color:rgba(14,114,136,.28)}
:root:not([data-theme="dark"]) .nx-toast{background:rgba(5,150,105,.10);border-color:rgba(5,150,105,.26)}
:root:not([data-theme="dark"]) .fleet-card{background:linear-gradient(100deg,rgba(99,102,241,.10),rgba(34,211,238,.08))}
/* elevated surfaces: swap the dark-mode glow for an honest shadow */
:root:not([data-theme="dark"]) .dash,
:root:not([data-theme="dark"]) .hsp-win{box-shadow:0 24px 48px -18px var(--sh-2),0 2px 6px -2px var(--sh-1)}
:root:not([data-theme="dark"]) .dash-center{box-shadow:0 32px 64px -20px var(--sh-3),0 2px 8px -2px var(--sh-1)}
:root:not([data-theme="dark"]) .browser,
:root:not([data-theme="dark"]) .nx-frame{box-shadow:0 40px 80px -28px var(--sh-3),0 2px 8px -3px var(--sh-1)}
:root:not([data-theme="dark"]) .notif{box-shadow:0 10px 26px -8px var(--sh-2)}
:root:not([data-theme="dark"]) .pcard:hover{box-shadow:0 24px 48px -20px var(--sh-2),0 0 0 1px rgba(99,102,241,.18)}
/* toggle knob needs a shadow to separate from a light track */
:root:not([data-theme="dark"]) .nx-tg{background-color:rgba(11,13,22,.18)}
:root:not([data-theme="dark"]) .nx-tg::after{box-shadow:0 1px 3px rgba(11,13,22,.30)}
/* dashed placeholders read as noise when they are this faint on white */
:root:not([data-theme="dark"]) .dv{border-color:var(--line-strong);background:var(--surface)}
:root:not([data-theme="dark"]) .dv:hover{background:rgba(99,102,241,.07)}
:root:not([data-theme="dark"]) .play{background:var(--fill-4)}
/* mini previews inside product cards */
:root:not([data-theme="dark"]) .pcard-visual .mini{box-shadow:0 -8px 28px -12px var(--sh-1)}
/* keep the browser dots recognisable */
:root:not([data-theme="dark"]) .dots i{background:rgba(11,13,22,.14)}
/* ================================================================
   SHOPIFY STORES section + project survey
   ================================================================ */
#stores{overflow:hidden}
#stores .sec-head{max-width:720px}
.st-show{display:grid;grid-template-columns:320px minmax(0,1fr);gap:40px;align-items:center}
.st-show > *{min-width:0}
.st-list{display:flex;flex-direction:column;gap:12px}
.st-pick{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:16px;
  padding:16px 20px;border-radius:16px;border:1px solid var(--line);background:var(--fill-1);
  transition:background .3s,border-color .3s,transform .3s;position:relative;overflow:hidden}
.st-pick:hover{border-color:var(--line-hover)}
.st-pick:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}
.st-pick .sw{width:38px;height:38px;border-radius:12px;flex-shrink:0;background:var(--c);
  box-shadow:0 8px 22px -8px var(--c)}
.st-pick b{display:block;font-size:1.45rem;font-weight:800;line-height:1.2}
.st-pick small{display:block;color:var(--muted);font-size:.85rem;margin-top:2px}
.st-pick .bar{position:absolute;inset-inline-start:0;bottom:0;height:2px;width:0;background:var(--c)}
.st-pick.on{background:var(--surface);border-color:var(--c);transform:translateX(-4px)}
html[dir="ltr"] .st-pick.on{transform:translateX(4px)}
.st-pick.on b{color:var(--c)}
.st-pick.on .bar{animation:stBar var(--dwell,6s) linear forwards}
@keyframes stBar{to{width:100%}}
.st-stage{position:relative}
.st-glow{position:absolute;inset:8% 6%;border-radius:40px;background:var(--st-c,#6366F1);filter:blur(80px);
  opacity:.35;transition:background .8s;z-index:0}
.st-stage .browser{z-index:1}
.st-stage .st-url{flex:1;text-align:center;font-size:.8rem;color:var(--faint);direction:ltr;font-family:var(--font-en)}
.st-stage .st-url b{color:var(--text);font-weight:600}
.st-screen{position:relative;aspect-ratio:16/10.5;overflow:hidden;background:#fff}
.st-screen img{position:absolute;top:0;left:0;width:100%;display:block;opacity:0;transform:scale(1.03);
  transition:opacity .7s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.st-screen img.on{opacity:1;transform:none;animation:stScroll 16s cubic-bezier(.45,.05,.55,.95) .8s infinite alternate}
@keyframes stScroll{from{top:0}to{top:calc(var(--h,0px) * -1)}}
.st-stage:hover .st-screen img.on{animation-play-state:paused}
.st-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:70px}
.st-feat{display:flex;gap:14px;align-items:flex-start;padding:20px;border-radius:16px;border:1px solid var(--line);
  background:linear-gradient(180deg,var(--card-a),var(--card-b))}
.st-feat .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;
  background:rgba(99,102,241,.12);color:var(--indigo-ink)}
.st-feat .ic svg{width:20px;height:20px}
.st-feat b{display:block;font-size:1rem}
.st-feat span{display:block;color:var(--muted);font-size:.88rem;margin-top:3px;line-height:1.55}
.st-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:70px;counter-reset:st}
.st-step{position:relative;padding:24px 22px 22px;border-radius:16px;background:var(--fill-2);border:1px solid var(--line)}
.st-step::before{counter-increment:st;content:"0" counter(st);display:block;font-family:var(--font-en);font-weight:700;
  font-size:2rem;line-height:1;margin-bottom:14px;background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent}
.st-step b{display:block;font-size:1.02rem}
.st-step span{display:block;color:var(--muted);font-size:.88rem;margin-top:4px;line-height:1.55}
.st-cta{margin-top:56px;text-align:center}
.st-cta .btn{padding:16px 36px;font-size:1.05rem;border-radius:14px}
.st-cta p{margin-top:14px;color:var(--faint);font-size:.9rem}
@media (max-width:900px){
  .st-show{grid-template-columns:minmax(0,1fr);gap:24px}
  .st-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;order:2}
  .st-pick{padding:12px 14px;gap:12px}
  .st-pick .sw{width:28px;height:28px;border-radius:9px}
  .st-pick b{font-size:1.1rem}
  .st-pick.on{transform:none}
  .st-feats{grid-template-columns:1fr 1fr}
  .st-steps{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .st-feats{grid-template-columns:1fr}
  .st-screen{aspect-ratio:4/5}
  .st-cta .btn{width:100%}
}
/* ---------------- survey ---------------- */
.sv{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:var(--bg);
  opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
.sv.open{opacity:1;visibility:visible;transition:opacity .4s}
.sv-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.sv-bg::before,.sv-bg::after{content:"";position:absolute;width:70vmax;height:70vmax;border-radius:50%;
  filter:blur(90px);opacity:.28;transition:background 1s}
.sv-bg::before{background:var(--sv-a,#6366F1);top:-30vmax;inset-inline-end:-20vmax;animation:svFloat 14s ease-in-out infinite alternate}
.sv-bg::after{background:var(--sv-b,#22D3EE);bottom:-35vmax;inset-inline-start:-25vmax;animation:svFloat 18s ease-in-out infinite alternate-reverse}
@keyframes svFloat{to{transform:translate(6vmax,4vmax) scale(1.1)}}
.sv-top{position:relative;display:flex;align-items:center;gap:14px;padding:18px 24px;max-width:860px;width:100%;margin:0 auto}
.sv-x,.sv-back{all:unset;cursor:pointer;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;
  border:1px solid var(--line-strong);background:var(--fill-3);color:var(--text);transition:background .2s,opacity .2s}
.sv-x:hover,.sv-back:hover{background:var(--fill-5)}
.sv-back[disabled]{opacity:0;pointer-events:none}
.sv-x svg,.sv-back svg{width:18px;height:18px}
html[dir="rtl"] .sv-back svg{transform:scaleX(-1)}
.sv-prog{flex:1;height:4px;border-radius:4px;background:var(--fill-5);overflow:hidden}
.sv-prog i{display:block;height:100%;width:0;border-radius:4px;background:var(--grad-accent);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.sv-body{position:relative;flex:1;overflow-y:auto;overscroll-behavior:contain}
.sv-step{max-width:860px;margin:0 auto;padding:4vh 24px 60px;min-height:100%;display:flex;flex-direction:column;justify-content:center}
.sv-step.in{animation:svIn .6s cubic-bezier(.2,.8,.2,1) both}
.sv-step.in.back{animation-name:svInBack}
@keyframes svIn{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes svInBack{from{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:none}}
.sv-step > *{animation:svIn .6s cubic-bezier(.2,.8,.2,1) both}
.sv-step > *:nth-child(2){animation-delay:.06s}
.sv-step > *:nth-child(3){animation-delay:.12s}
.sv-step > *:nth-child(4){animation-delay:.18s}
.sv-step > *:nth-child(5){animation-delay:.24s}
.sv-k{color:var(--cyan-ink);font-size:.9rem;font-weight:700;margin-bottom:12px}
.sv-h{font-size:clamp(1.7rem,4.4vw,2.6rem);font-weight:800;line-height:1.35}
.sv-p{color:var(--muted);margin-top:10px;font-size:1.02rem;line-height:1.7;max-width:620px}
.sv-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:34px}
.sv-opts.sm{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.sv-o{all:unset;box-sizing:border-box;cursor:pointer;position:relative;padding:22px 20px;border-radius:18px;
  border:1px solid var(--line-strong);background:var(--surface);
  box-shadow:0 10px 30px -18px var(--sh-2);transition:transform .25s,border-color .25s,box-shadow .25s,background .25s}
.sv-o:hover{transform:translateY(-3px);border-color:var(--line-hover);box-shadow:0 18px 40px -18px var(--sh-3)}
.sv-o:focus-visible{outline:2px solid var(--indigo);outline-offset:3px}
.sv-o.sel{border-color:var(--indigo);background:linear-gradient(180deg,rgba(99,102,241,.10),rgba(99,102,241,.03));
  box-shadow:0 0 0 3px rgba(99,102,241,.18)}
.sv-o.sel::after{content:"";position:absolute;top:14px;inset-inline-end:14px;width:22px;height:22px;border-radius:50%;
  background:var(--indigo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/14px no-repeat;
  animation:svPop .35s cubic-bezier(.34,1.56,.64,1)}
@keyframes svPop{from{transform:scale(0)}to{transform:scale(1)}}
.sv-o .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:16px;
  background:rgba(99,102,241,.12);color:var(--indigo-ink)}
.sv-o .ic svg{width:24px;height:24px}
.sv-o b{display:block;font-size:1.08rem;font-weight:700}
.sv-o small{display:block;color:var(--muted);font-size:.86rem;margin-top:4px;line-height:1.5}
.sv-opts.sm .sv-o{padding:18px 16px;text-align:center}
.sv-opts.sm .sv-o .ic{margin:0 auto 12px}
/* palettes */
.sv-pal{display:flex;height:64px;border-radius:12px;overflow:hidden;margin-bottom:14px}
.sv-pal i{flex:1}
.sv-pal i:first-child{flex:2}
/* domain explainer */
.sv-addr{margin-top:28px;max-width:520px;border-radius:14px;border:1px solid var(--line-strong);background:var(--surface);
  box-shadow:0 20px 50px -24px var(--sh-3);overflow:hidden}
.sv-addr-bar{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--fill-2)}
.sv-addr-bar .dots i{width:9px;height:9px}
.sv-addr-in{flex:1;display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--surface);
  border:1px solid var(--line);direction:ltr;font-family:var(--font-en);font-size:.95rem}
.sv-addr-in svg{width:14px;height:14px;color:var(--ok)}
.sv-addr-in .t{color:var(--faint)}
.sv-addr-in .d{color:var(--text);font-weight:600;border-inline-end:2px solid var(--indigo);padding-inline-end:2px;animation:svCaret 1s step-end infinite}
@keyframes svCaret{50%{border-color:transparent}}
.sv-addr-note{padding:12px 16px;font-size:.88rem;color:var(--muted)}
/* contact form */
.sv-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}
.sv-f{display:flex;flex-direction:column;gap:7px}
.sv-f.full{grid-column:1/-1}
.sv-f label{font-size:.88rem;font-weight:700;color:var(--muted)}
.sv-f input,.sv-f textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);
  border-radius:14px;padding:15px 16px;font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s;width:100%}
.sv-f textarea{min-height:96px;resize:vertical}
.sv-f input:focus,.sv-f textarea:focus{border-color:var(--indigo);box-shadow:0 0 0 4px rgba(99,102,241,.15)}
.sv-f input[dir="ltr"]{text-align:start}
html[dir="rtl"] .sv-f input[dir="ltr"]{text-align:right}
.sv-f.err input{border-color:var(--bad)}
.sv-f .em{font-size:.8rem;color:var(--bad);display:none}
.sv-f.err .em{display:block}
.sv-hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.sv-actions{margin-top:26px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.sv-actions .btn{padding:15px 34px;font-size:1.02rem;border-radius:14px}
.sv-actions .btn[disabled]{opacity:.6;pointer-events:none}
.sv-actions small{color:var(--faint);font-size:.85rem}
.sv-msg{margin-top:16px;font-size:.92rem;color:var(--bad)}
.sv-msg a{color:var(--indigo-ink);font-weight:700;text-decoration:underline}
.sv-spin{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:svSpin .8s linear infinite}
@keyframes svSpin{to{transform:rotate(360deg)}}
/* done */
.sv-done{text-align:center;align-items:center}
.sv-check{width:110px;height:110px;margin:0 auto 30px}
.sv-check circle{fill:none;stroke:var(--ok);stroke-width:4;stroke-dasharray:300;stroke-dashoffset:300;animation:svDraw .8s ease forwards}
.sv-check path{fill:none;stroke:var(--ok);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:80;animation:svDraw .5s .6s ease forwards}
@keyframes svDraw{to{stroke-dashoffset:0}}
.sv-done .sv-p{margin-inline:auto}
.sv-done .btn{margin-top:34px}
.sv-sum{margin:28px auto 0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:620px}
.sv-sum span{padding:7px 14px;border-radius:999px;background:var(--fill-4);border:1px solid var(--line);font-size:.86rem;color:var(--muted)}
@media (max-width:560px){
  .sv-top{padding:14px 16px}
  .sv-step{padding:3vh 16px 40px;justify-content:flex-start}
  .sv-opts{grid-template-columns:1fr;gap:10px;margin-top:24px}
  .sv-opts.sm{grid-template-columns:1fr 1fr}
  .sv-o{padding:16px;display:flex;align-items:center;gap:14px}
  .sv-o .ic{margin:0;width:42px;height:42px}
  .sv-opts.sm .sv-o{display:block}
  .sv-opts.sm .sv-o .ic{margin:0 auto 10px}
  .sv-opts.pal .sv-o{display:block}
  .sv-form{grid-template-columns:1fr}
  .sv-actions .btn{width:100%}
}
html.sv-lock,html.sv-lock body{overflow:hidden}
.st-show.paused .st-pick.on .bar{animation-play-state:paused}

/* home: "see more" link in the stores teaser */
.st-more{color:var(--indigo-ink);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ==================================================================
   PRELOADER
   ================================================================== */
/* ================================================================
   PRELOADER
   Uses the real logo geometry from the header mark, drawn in reverse
   so the stroke travels toward the dot and the dot lands last.

   pathLength="1" normalises the path, so stroke-dasharray works
   regardless of the drawn length. That is safe here because the SVG
   scales uniformly — unlike a sparkline stretched with
   preserveAspectRatio="none", where dash lengths and rendered
   lengths come apart.
   ================================================================ */
#pll{
  position:fixed;inset:0;z-index:9999;
  display:grid;place-items:center;
  background:#0B0C11;
  transition:opacity .5s ease,visibility .5s ease;
}
/* Follow the page theme instead of always dark? Swap the line above for:
   background:var(--bg,#0B0C11);
   The page resolves data-theme before first paint, so it will match. */

html.pll-done #pll{opacity:0;visibility:hidden;pointer-events:none}

#pll .pll-inner{display:flex;flex-direction:column;align-items:center;gap:26px}

#pll svg{
  width:96px;height:96px;overflow:visible;
  filter:drop-shadow(0 0 14px rgba(99,102,241,.45));
  animation:pll-fade 2.4s ease-in-out infinite;
}

#pll .pll-line{
  fill:none;stroke:url(#pllGrad);stroke-width:11;
  stroke-linejoin:miter;stroke-linecap:butt;
  stroke-dasharray:1;stroke-dashoffset:1;
  animation:pll-draw 2.4s cubic-bezier(.45,.05,.25,1) infinite;
}

#pll .pll-dot{
  fill:url(#pllGrad);
  transform-box:fill-box;transform-origin:center;
  opacity:0;
  animation:pll-dot 2.4s cubic-bezier(.34,1.4,.64,1) infinite;
}

@keyframes pll-fade{
  0%{opacity:0}
  8%{opacity:1}
  80%{opacity:1}
  100%{opacity:0}
}
@keyframes pll-draw{
  0%{stroke-dashoffset:1}
  55%{stroke-dashoffset:0}
  100%{stroke-dashoffset:0}
}
@keyframes pll-dot{
  0%,50%{opacity:0;transform:scale(.3)}
  62%{opacity:1;transform:scale(1.18)}
  70%,100%{opacity:1;transform:scale(1)}
}

/* Never animate a loading screen at someone who has asked us not to —
   they still get the logo, just held still. */
@media (prefers-reduced-motion:reduce){
  #pll svg,#pll .pll-line,#pll .pll-dot,
  #pll .pll-line{stroke-dashoffset:0}
  #pll .pll-dot{opacity:1}
}
