/* Dark glowing hero, cropped wordmark, library shown as shop tiles.
   One typeface (Outfit, self-hosted so no request leaves for Google), one action colour. */
@font-face{font-family:"Outfit";src:url("../fonts/outfit-latin-variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
  --night:#04122B; --deep:#004AAD; --sky:#38B6FF; --white:#FFFFFF;
  --bg:#F5F7FB; --card:#FFFFFF; --ink:#0B1426; --soft:#5B6475; --line:#E3E8F0;
  --action:#004AAD; --action-ink:#FFFFFF; --warn:#C0392B;
  --sans:"Outfit",system-ui,-apple-system,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#070D19;--card:#0F1829;--ink:#EEF2F8;--soft:#9AA6BA;--line:#1D2A40;--action:#38B6FF;--action-ink:#04122B;--warn:#FF8A7A;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#070D19;--card:#0F1829;--ink:#EEF2F8;--soft:#9AA6BA;--line:#1D2A40;--action:#38B6FF;--action-ink:#04122B;--warn:#FF8A7A;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.03em;line-height:1.02}
p{margin:0}
[hidden]{display:none!important}

/* Hero */
.hero{position:relative;overflow:hidden;color:var(--white);background:
  radial-gradient(120% 70% at 85% 0%, rgba(56,182,255,.55) 0%, rgba(56,182,255,0) 55%),
  radial-gradient(90% 60% at 0% 100%, rgba(0,74,173,.9) 0%, rgba(0,74,173,0) 60%),
  linear-gradient(180deg,#062457 0%, var(--night) 100%);
  padding:16px 16px 0}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.18;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.hero-in{position:relative;z-index:2;max-width:560px;margin:0 auto;padding:36px 4px 0;display:grid;gap:18px}
.hero h1{font-size:clamp(44px,12vw,72px);font-weight:600}
.hero h1 .accent{color:var(--sky)}
.hero .tagline{font-size:clamp(24px,6.5vw,32px);font-weight:500;letter-spacing:-.02em;line-height:1.1;margin-top:-8px}
.hero .sub{font-size:18px;color:rgba(255,255,255,.82);max-width:30ch}
.codebox{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:6px}
.codebox label{font-size:15px;font-weight:500;color:rgba(255,255,255,.85)}
.coderow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:6px;border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,.10));
  border:1px solid rgba(255,255,255,.3);border-bottom-color:rgba(255,255,255,.1);
  box-shadow:0 14px 40px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.4);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.coderow input{min-width:0;font:600 19px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--white);background:transparent;border:0;padding:12px 16px}
.coderow input::placeholder{color:rgba(255,255,255,.6);letter-spacing:0;text-transform:none;font-weight:400}
.coderow input:focus{outline:none}
.coderow:focus-within{outline:3px solid var(--sky);outline-offset:3px}
.coderow button{font:600 17px var(--sans);border:0;border-radius:999px;padding:0 24px;background:var(--white);color:var(--deep);cursor:pointer}
.coderow button:hover{background:var(--sky);color:var(--night)}
.msg{font-size:14px;color:rgba(255,255,255,.75);min-height:1.4em;padding-left:18px}
.msg.err{color:#FFD2CB;font-weight:500}
.trust{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.trust span{font-size:13px;font-weight:500;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16)}
.wordmark{position:relative;z-index:1;margin:34px -16px 0;font-weight:700;font-size:23vw;line-height:.74;letter-spacing:-.02em;white-space:nowrap;
  color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.22);text-align:center;transform:translateY(12%)}
@media (min-width:700px){.wordmark{font-size:170px}}

/* Library */
.wrap{max-width:560px;margin:0 auto;padding:0 16px}
.lib-wrap{max-width:760px}
.libhead{display:flex;justify-content:space-between;align-items:baseline;padding:32px 2px 14px}
.libhead h2{font-size:28px}
.libhead span{font-size:14px;color:var(--soft)}
.library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.library li{display:grid}
.tile{display:grid;grid-template-rows:auto 1fr;border-radius:20px;overflow:hidden;background:var(--card);border:1px solid var(--line);
  box-shadow:0 8px 24px rgba(11,20,38,.06);text-decoration:none;transition:transform .15s,border-color .15s}
.tile:hover{border-color:var(--action);transform:translateY(-2px)}
.tile-cover{position:relative;aspect-ratio:4/3;display:grid;place-items:center;color:var(--white);background:radial-gradient(90% 90% at 80% 10%,#38B6FF 0%,rgba(56,182,255,0) 60%),linear-gradient(160deg,#0A5CC7,#04122B)}
.tile-cover.bolt,.cover.bolt{background:radial-gradient(90% 90% at 80% 10%,#9AD8FF 0%,rgba(154,216,255,0) 60%),linear-gradient(160deg,#2B3A55,#0B1426)}
.tile-cover svg{width:38%;max-width:64px}
.tile-cover svg,.cover svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.kind{position:absolute;top:10px;left:10px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:rgba(4,18,43,.5)}
.tile-body{display:grid;grid-template-rows:auto 1fr auto auto;gap:6px;padding:12px}
.tile h3{font-size:18px;letter-spacing:-.02em;line-height:1.15}
.tile p{font-size:14px;line-height:1.35;color:var(--soft)}
.tile .access{font-size:13px;font-weight:500;margin-top:4px}
.get{display:block;text-align:center;font-size:15px;font-weight:600;padding:9px;margin-top:4px;border-radius:999px;background:var(--action);color:var(--action-ink)}
@media (min-width:700px){.library{grid-template-columns:repeat(3,minmax(0,1fr))}}
.soon{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:10px}
.soon h2{font-size:17px;letter-spacing:-.02em;color:var(--soft)}
.soon ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.soon li{font-size:14px;color:var(--soft);padding:6px 12px;border-radius:999px;border:1px dashed var(--line)}
.soon p{font-size:14px;color:var(--soft)}

.small{font-size:13px;color:var(--soft)}
.small a{color:var(--action)}
.small.center{text-align:center}
.steps{margin:0;padding-left:20px;display:grid;gap:4px;font-size:15px}

/* Product */
.topbar{max-width:560px;margin:0 auto;padding:16px 16px 0;display:flex;align-items:center}
.topbar a{font-size:15px;font-weight:500;text-decoration:none;padding:9px 16px;border-radius:999px;background:var(--card);border:1px solid var(--line)}
.product{display:grid;gap:18px;padding:18px 0 0;max-width:528px;margin:0 auto}
.cover{display:grid;place-items:center;color:var(--white);background:radial-gradient(90% 90% at 80% 10%,#38B6FF 0%,rgba(56,182,255,0) 60%),linear-gradient(160deg,#0A5CC7,#04122B)}
.product .cover{height:190px;border-radius:26px}
.product .cover svg{width:84px}
.ptitle{display:grid;gap:4px}
.ptitle h1{font-size:34px}
.ptitle .n{font-size:15px;color:var(--soft);font-weight:500}
.lead{font-size:18px;color:var(--soft)}
.points{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.points li{display:flex;gap:10px;align-items:baseline}
.points li::before{content:"";flex:0 0 8px;height:8px;border-radius:50%;background:var(--action);transform:translateY(-1px)}
.ok{font-size:15px;font-weight:600;color:var(--action);background:color-mix(in oklab,var(--action) 10%,transparent);padding:10px 14px;border-radius:14px}
.buy{display:grid;gap:10px}
.btn.dl{display:block;text-align:center;text-decoration:none}
.btn{font:600 18px var(--sans);padding:17px;border-radius:999px;border:0;background:var(--action);color:var(--action-ink);cursor:pointer;width:100%;box-shadow:0 10px 24px color-mix(in oklab,var(--action) 30%,transparent)}
.btn.second{background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:none;font-size:16px;padding:14px}
.status{font-size:14px;color:var(--soft);min-height:1.4em;text-align:center}
.status.err{color:var(--warn);font-weight:500}
.block{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;display:grid;gap:10px}
.block h2{font-size:21px}
.block p{color:var(--soft);font-size:15px}
.toggle{justify-self:start;font:600 15px var(--sans);background:none;border:0;padding:0;color:var(--action);cursor:pointer}
.prompt{font:13px/1.55 ui-monospace,Menlo,monospace;white-space:pre-wrap;background:var(--bg);border-radius:12px;padding:12px;margin:0;color:var(--ink)}
.unlock{background:var(--card);border:2px solid var(--action);border-radius:22px;padding:18px;display:grid;gap:10px}
.unlock h2{font-size:21px;display:flex;align-items:center;gap:8px}
.unlock h2 svg{width:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.unlock p{color:var(--soft);font-size:15px}
.unlockrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.unlockrow input{min-width:0;font:600 17px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:12px 16px}
.unlockrow input::placeholder{letter-spacing:0;text-transform:none;font-weight:400;color:var(--soft)}
.unlockrow button{font:600 16px var(--sans);border:0;border-radius:999px;padding:0 20px;background:var(--action);color:var(--action-ink);cursor:pointer}

footer{max-width:560px;margin:44px auto 0;padding:0 20px 40px;font-size:13px;color:var(--soft);display:grid;gap:6px;text-align:center}
footer a{color:var(--soft)}
footer strong{color:var(--ink)}

/* Legal pages */
.legal{display:grid;gap:14px;padding-top:26px}
.legal h1{font-size:38px}
.legal h2{font-size:21px;margin-top:14px}
.legal p,.legal li{color:var(--soft);font-size:16px}
.legal ul{margin:0;padding-left:20px;display:grid;gap:4px}
.legal a{color:var(--action)}
.todo{background:color-mix(in oklab,var(--warn) 16%,transparent);color:var(--ink);padding:0 4px;border-radius:4px}
@media (prefers-reduced-motion:no-preference){
  .hero-in > *{animation:rise .6s cubic-bezier(.2,.7,.2,1) both}
  .hero-in > *:nth-child(2){animation-delay:.06s}.hero-in > *:nth-child(3){animation-delay:.12s}.hero-in > *:nth-child(4){animation-delay:.18s}
  @keyframes rise{from{transform:translateY(10px)}to{transform:none}}
}
