/* ============================================================
   OTCFin — shared design system (condensed from the site's
   "Petrol & Particle" tokens). Used by the dynamic page
   renderer (page.html) and the admin console so both match
   the hand-built marketing pages.
   ============================================================ */
:root {
  --abyss-900:#07212E; --abyss-850:#0A2A38;
  --petrol-700:#0E2C3C; --petrol-600:#123A50; --petrol-500:#184868; --petrol-400:#1E5A7C;
  --teal-400:#3888A8; --teal-300:#4FA3C2; --signal-300:#6FC4DD; --signal-200:#9BDCEC;
  --paper-0:#FFFFFF; --paper-50:#F8F8F8; --paper-100:#EDF2F4;
  --ink-text:#0E2C3C; --ink-mid:#41606E; --ink-low:#7E96A1; --line-light:rgba(14,44,60,.10);
  --text-hi:#EAF3F7; --text-mid:#9FB6C2; --text-low:#5E7A88;
  --line:rgba(255,255,255,.08); --line-strong:rgba(255,255,255,.14);
  --pass:#2FBF71; --watch:#E8A32A; --breach:#F0506A;
  --r-cell:4px; --r-card:10px; --r-panel:16px; --r-pill:999px;
  --ease:cubic-bezier(.22,1,.36,1);
  --maxw:1320px;
  --font-display:"Space Grotesk","Inter Tight",system-ui,sans-serif;
  --font-body:"Inter",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);background:var(--abyss-900);color:var(--text-hi);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
::selection{background:var(--signal-300);color:var(--abyss-900)}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:24px}
.section{position:relative;padding-block:clamp(32px,4.5vw,56px)}
@media(max-width:640px){.wrap{padding-inline:16px}}

.surface-abyss{background:var(--abyss-900);color:var(--text-hi)}
.surface-petrol{background:var(--petrol-700);color:var(--text-hi)}
.surface-document{background:var(--paper-50);color:var(--ink-text)}

.display{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.04}
h1.display{font-size:clamp(2.1rem,4.8vw,3.4rem);letter-spacing:-.03em;line-height:1.06}
h2.display{font-size:clamp(1.6rem,3.4vw,2.6rem);letter-spacing:-.025em}
h3.display{font-size:clamp(1.3rem,2.2vw,2rem);letter-spacing:-.02em}
.lede{font-size:clamp(.94rem,1.2vw,1.08rem);color:var(--text-mid);max-width:62ch}
.body{font-size:1rem;color:var(--text-mid)}
.small{font-size:.875rem;line-height:1.55}
.muted{color:var(--text-mid)}

.eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-low)}
.eyebrow::before{content:"";width:9px;height:9px;border-radius:50%;border:2px solid var(--teal-400);box-shadow:0 0 0 2px rgba(56,136,168,.18)}

.btn{display:inline-flex;align-items:center;gap:9px;height:46px;padding-inline:22px;border-radius:var(--r-card);font-weight:500;font-size:.95rem;transition:transform .18s var(--ease),background .2s var(--ease),box-shadow .25s var(--ease),color .2s,border-color .2s;border:1px solid transparent;white-space:nowrap;cursor:pointer}
.btn-primary{background:var(--teal-400);color:var(--abyss-900);font-weight:600}
.btn-primary:hover{background:var(--teal-300);transform:translateY(-1px);box-shadow:0 12px 30px -12px var(--teal-300)}
.btn-ghost{border-color:var(--line-strong);color:var(--text-mid)}
.btn-ghost:hover{color:var(--text-hi);border-color:var(--text-mid);transform:translateY(-1px)}
.btn:focus-visible{outline:2px solid var(--signal-300);outline-offset:2px}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

.card{position:relative;background:var(--petrol-700);border:1px solid var(--line);border-radius:var(--r-card);padding:26px;transition:transform .4s var(--ease),background .3s,border-color .3s,box-shadow .3s}
.card:hover{background:var(--petrol-600);border-color:var(--line-strong)}
.grid{display:grid;gap:20px}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.g-2,.g-3{grid-template-columns:1fr}}

/* Nav */
.nav{position:fixed;inset:0 0 auto 0;height:64px;z-index:50;background:rgba(7,33,46,.72);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:100%}
.brand{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:-.02em;color:var(--text-hi)}
.brand .ap{display:inline-grid;place-items:center;width:1.05em;height:1.05em;margin-right:.02em}
.brand .ap::before{content:"";width:.78em;height:.78em;border-radius:50%;border:2.5px solid var(--signal-300);box-shadow:0 0 12px -2px var(--signal-300)}
.nav-links{display:flex;align-items:center;gap:2px}
.nav-links a{position:relative;padding:8px 14px;border-radius:var(--r-card);color:var(--text-mid);font-size:.92rem;transition:color .18s}
.nav-links a:hover{color:var(--text-hi)}
@media(max-width:980px){.nav-links{display:none}}

/* Footer */
.footer{border-top:1px solid var(--line);padding-block:40px;color:var(--text-mid)}
.footer .cols{display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:center}
.footer a{color:var(--text-mid)}
.footer a:hover{color:var(--text-hi)}

/* Page hero for dynamic pages */
.page-hero{padding-top:128px;padding-bottom:24px}
.page-body{padding-top:8px;padding-bottom:80px;max-width:820px}
.page-body h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;font-size:1.7rem;margin:32px 0 12px}
.page-body h3{font-family:var(--font-display);font-weight:600;font-size:1.3rem;margin:24px 0 10px}
.page-body p{color:var(--text-mid);margin:0 0 16px}
.page-body ul,.page-body ol{color:var(--text-mid);margin:0 0 16px 22px}
.page-body li{margin-bottom:6px}
.page-body a{color:var(--signal-300);text-decoration:underline}
.page-body img{border-radius:var(--r-card);margin:20px 0}
.page-body blockquote{border-left:3px solid var(--teal-400);padding-left:18px;margin:20px 0;color:var(--text-hi)}
.page-body code{font-family:var(--font-mono);background:var(--petrol-700);padding:2px 6px;border-radius:4px;font-size:.9em}
