:root{
  --bg:#0e1116; --card:#171b22; --line:#262c36; --txt:#e8eaed;
  --muted:#9aa3af; --accent:#b388ff; --good:#39d98a; --warn:#ffd166; --bad:#e85d5d;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  min-height:100vh;background:var(--bg);color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  display:flex;flex-direction:column;align-items:center;padding:0 16px 60px;
}
a{color:inherit;text-decoration:none}
.wrap{width:100%;max-width:460px}

/* ---- top nav ---- */
.nav{width:100%;max-width:560px;display:flex;align-items:center;gap:6px;
  padding:14px 4px 10px;margin-bottom:6px;flex-wrap:wrap}
.brand{font-weight:800;font-size:20px;letter-spacing:.5px;margin-right:6px}
.brand b{color:var(--accent)}
.tabs{display:flex;gap:4px;flex-wrap:wrap}
.tab{font-size:13px;padding:6px 11px;border-radius:999px;color:var(--muted);
  border:1px solid transparent}
.tab:hover{color:var(--txt);background:#1b212a}
.tab.active{color:var(--txt);background:#1d2530;border-color:var(--line)}
.tab.soon{opacity:.45;pointer-events:none}

/* ---- generic ---- */
h1{font-size:24px;margin:0}
.sub{color:var(--muted);font-size:13px;margin:2px 0 18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:16px}
.btn{width:100%;padding:14px;border:none;border-radius:12px;background:var(--accent);color:#06101f;
  font-weight:700;font-size:15px;cursor:pointer;margin-top:14px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn.alt{background:#232a34;color:var(--txt);border:1px solid var(--line)}
.muted{color:var(--muted);font-size:13px}
.big{font-size:32px;font-weight:800;margin:6px 0}
.center{text-align:center}
footer{color:var(--muted);font-size:12px;margin-top:8px;text-align:center;max-width:460px}

/* swatches / sliders */
.swatch{height:110px;border-radius:12px;border:1px solid var(--line);transition:background .15s;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;
  color:rgba(255,255,255,.85);text-shadow:0 1px 2px rgba(0,0,0,.5)}
.sliders{margin-top:16px;display:flex;flex-direction:column;gap:14px}
.slider-row label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:6px}
input[type=range]{width:100%;height:14px;border-radius:8px;appearance:none;outline:none;cursor:pointer}
input[type=range]::-webkit-slider-thumb{appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid #0008;box-shadow:0 1px 4px #0006;cursor:pointer}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid #0008;cursor:pointer}

/* hints */
.hints{display:flex;gap:8px;margin-top:14px}
.hint{flex:1;text-align:center;background:#1d232c;border:1px solid var(--line);border-radius:10px;padding:8px 4px;font-size:12px;color:var(--muted)}
.hint b{display:block;font-size:15px;margin-top:2px;color:var(--txt)}

/* toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#fff;color:#111;
  padding:10px 16px;border-radius:10px;font-size:13px;font-weight:600;opacity:0;transition:opacity .2s;pointer-events:none;z-index:50}
.toast.show{opacity:1}

/* hub cards */
.hub{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hub a{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;display:block;transition:transform .1s,border-color .1s}
.hub a:hover{transform:translateY(-2px);border-color:var(--accent)}
.hub .ic{height:54px;border-radius:10px;margin-bottom:10px}
.hub h3{margin:0 0 4px;font-size:16px}
.hub p{margin:0;font-size:12px;color:var(--muted)}
.hub .soon{opacity:.5}
.hub .soon:hover{transform:none;border-color:var(--line)}
@media(max-width:380px){.hub{grid-template-columns:1fr}}

/* prose (legal / info pages) */
.prose{max-width:680px;line-height:1.65;font-size:15px}
.prose h1{margin-bottom:4px}
.prose h2{font-size:18px;margin:26px 0 8px}
.prose p,.prose li{color:#cfd4dc}
.prose a{color:var(--accent);text-decoration:underline}
.prose ul{padding-left:20px}
.prose .upd{color:var(--muted);font-size:13px;margin-bottom:18px}
.prose table{width:100%;border-collapse:collapse;margin:10px 0;font-size:14px}
.prose th,.prose td{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}
