/* OnSpot v2 · shared tokens and base styles */
:root{
  --bg:#03060c; --bg2:#060c17; --panel:rgba(10,20,36,.72); --panel-solid:#0a1424;
  --line:rgba(96,200,255,.14); --line-strong:rgba(96,200,255,.32);
  --cyan:#4fe3ff; --cyan-dim:rgba(79,227,255,.14); --blue:#2f7bff; --amber:#ffb84d;
  --green:#3ef0a8; --red:#ff5c7a; --violet:#9b8cff;
  --text:#e8f4ff; --muted:#86a2bd; --faint:#4f6680;
  --glow:0 0 24px rgba(79,227,255,.35);
  --r:14px; --font:"Inter",system-ui,sans-serif; --display:"Space Grotesk","Inter",sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.eyebrow{font:500 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--cyan)}
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);background:transparent;padding:12px 20px;border-radius:999px;text-decoration:none;font-weight:600;font-size:14px;transition:.2s}
.btn:hover{border-color:var(--cyan);box-shadow:var(--glow)}
.btn.primary{background:linear-gradient(135deg,var(--cyan),var(--blue));color:#02101c;border:0;box-shadow:0 0 30px rgba(79,227,255,.35)}
.btn.primary:hover{box-shadow:0 0 44px rgba(79,227,255,.6);transform:translateY(-1px)}
.glass{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.grid-bg{position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:56px 56px;mask-image:radial-gradient(ellipse at 50% 0%,#000 0%,transparent 70%);opacity:.5}
.logo{display:flex;align-items:center;gap:10px;font:700 18px var(--display);letter-spacing:-.01em;text-decoration:none}
.logo small{display:block;font:500 9px var(--mono);letter-spacing:.24em;color:var(--muted)}
.logo-mark{width:30px;height:30px;border-radius:50%;border:2px solid var(--cyan);box-shadow:var(--glow),inset 0 0 10px rgba(79,227,255,.5);display:grid;place-items:center}
.logo-mark::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}

/* gate modal */
dialog.gate{border:0;padding:0;background:transparent;color:var(--text);max-width:440px;width:calc(100% - 32px)}
dialog.gate::backdrop{background:rgba(1,4,10,.78);backdrop-filter:blur(6px)}
.gate-card{padding:32px;position:relative;border:1px solid var(--line-strong);box-shadow:0 30px 80px rgba(0,0,0,.6),var(--glow)}
.gate-card h2{font:600 26px/1.2 var(--display);margin:10px 0 6px}
.gate-card p{color:var(--muted);margin:0 0 20px;font-size:14px}
.gate-card label{display:block;font-size:12px;color:var(--muted);margin:14px 0 6px;font-weight:500}
.gate-card input[type=text],.gate-card input[type=email]{width:100%;background:rgba(3,8,16,.8);border:1px solid var(--line-strong);border-radius:10px;padding:12px 14px;color:var(--text);font:inherit;outline:none}
.gate-card input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan-dim)}
.gate-card .consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--muted);margin:16px 0 20px;line-height:1.45}
.gate-card .consent input{margin-top:3px;accent-color:var(--cyan)}
.gate-card .btn{width:100%;justify-content:center;padding:14px}
.gate-card .fine{font-size:11.5px;color:var(--faint);margin:14px 0 0;text-align:center}
.gate-card .err{color:var(--red);font-size:13px;min-height:18px;margin:8px 0 0}
.gate-close{position:absolute;top:14px;right:16px;background:none;border:0;color:var(--muted);font-size:22px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;z-index:99;background:var(--cyan);color:#000;padding:8px 12px;border-radius:8px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
[hidden]{display:none!important}
