:root{
  --bg:#fbf7ef;
  --ink:#2c2b28;
  --muted:#6f6d66;
  --card:#ffffff;
  --line:#eadfce;
  --accent:#7c6cf0;
  --accent-soft:#efedff;
  --radius:18px;
  --shadow:0 6px 0 rgba(0,0,0,.06);
  --purple:#7c6cf0; --purple-soft:#efedff;
  --teal:#12a594; --teal-soft:#dff5f1;
  --coral:#f4693b; --coral-soft:#ffe9e1;
  --pink:#e0559a; --pink-soft:#ffe4f1;
  --blue:#3a86e0; --blue-soft:#e3f0ff;
  --amber:#e59214; --amber-soft:#fff0d6;
  --green:#5a9c25; --green-soft:#eaf6dc;
}
/* dark mode — auto from OS, or force with data-theme="dark" */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#17151f; --ink:#ece9f5; --muted:#a29bb5; --card:#221f2d; --line:#38334a;
    --shadow:0 6px 0 rgba(0,0,0,.35);
    --accent-soft:#2a2540; --purple-soft:#2a2540; --teal-soft:#123430;
    --coral-soft:#3a241d; --pink-soft:#3a2030; --blue-soft:#122740;
    --amber-soft:#332612; --green-soft:#20300f;
  }
}
:root[data-theme="dark"]{
  --bg:#17151f; --ink:#ece9f5; --muted:#a29bb5; --card:#221f2d; --line:#38334a;
  --shadow:0 6px 0 rgba(0,0,0,.35);
  --accent-soft:#2a2540; --purple-soft:#2a2540; --teal-soft:#123430;
  --coral-soft:#3a241d; --pink-soft:#3a2030; --blue-soft:#122740;
  --amber-soft:#332612; --green-soft:#20300f;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:"Baloo 2",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:860px;margin:0 auto;padding:0 20px 80px}

/* ---------- shared bits ---------- */
a{color:inherit}
.back{display:inline-flex;align-items:center;gap:6px;text-decoration:none;
  font-weight:600;color:var(--muted);margin:26px 0 10px;padding:8px 14px;
  background:var(--card);border:2px solid var(--line);border-radius:999px}
.back:hover{border-color:var(--accent);color:var(--accent)}

/* ---------- concept page header ---------- */
.hero{
  background:var(--accent-soft);border:3px solid var(--accent);
  border-radius:var(--radius);padding:26px 28px;margin-top:6px;
}
.hero .kicker{font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  font-size:13px;color:var(--accent)}
.hero h1{margin:.15em 0 .1em;font-size:clamp(30px,6vw,46px);line-height:1.05}
.hero .one-liner{font-size:19px;color:var(--ink);margin:0;font-weight:500}

/* ---------- section blocks ---------- */
h2.block{font-size:26px;margin:38px 0 12px;display:flex;align-items:center;gap:10px}
h2.block .dot{width:14px;height:14px;border-radius:50%;background:var(--accent)}
p.lead{font-size:18px}

.picture{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);
  padding:18px;margin:14px 0;text-align:center}
.picture svg{max-width:100%;height:auto}
.caption{color:var(--muted);font-size:15px;margin-top:8px}

/* ---------- example cards ---------- */
.examples{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:14px 0}
.ex{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;border-top:8px solid var(--accent)}
.ex h3{margin:.1em 0 .3em;font-size:19px}
.ex p{margin:0;color:var(--muted);font-size:15.5px}

/* ---------- code ---------- */
pre{background:#2b2a37;color:#f4f2ff;border-radius:14px;padding:16px 18px;
  overflow:auto;font-size:15px;line-height:1.55;
  font-family:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace}
pre .c{color:#8f8ba8}
pre .k{color:#ff9d6b}
pre .s{color:#8be0b4}
pre .n{color:#8ec7ff}
code.inline{background:var(--accent-soft);color:var(--accent);
  padding:2px 7px;border-radius:7px;font-weight:600;
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.92em}

/* ---------- remember / try boxes ---------- */
.remember{background:var(--amber-soft);border:2px dashed var(--amber);
  border-radius:var(--radius);padding:16px 20px;margin:18px 0;font-size:17px}
.remember b{color:#8a5a00}
.tryit{background:var(--teal-soft);border:2px solid var(--teal);
  border-radius:var(--radius);padding:18px 20px;margin:18px 0}
.tryit h3{margin:0 0 10px;color:#0a6a5f}

/* ---------- fun buttons ---------- */
.btn{font-family:inherit;font-weight:700;font-size:16px;cursor:pointer;
  background:var(--accent);color:#fff;border:none;padding:10px 18px;
  border-radius:999px;box-shadow:0 4px 0 rgba(0,0,0,.18)}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.18)}
.btn.ghost{background:#fff;color:var(--accent);border:2px solid var(--accent);box-shadow:none}

/* ---------- HOME PAGE ---------- */
.home-hero{text-align:center;padding:46px 20px 10px}
.home-hero h1{font-size:clamp(34px,8vw,60px);margin:.1em 0}
.home-hero p{font-size:20px;color:var(--muted);max-width:560px;margin:6px auto 0}
.home-hero .badge{display:inline-block;background:var(--accent);color:#fff;
  font-weight:700;padding:6px 16px;border-radius:999px;font-size:14px;
  letter-spacing:.05em;text-transform:uppercase}
.sec-title{font-size:24px;margin:40px 0 6px;display:flex;align-items:center;gap:10px}
.sec-title .pill{font-size:13px;font-weight:700;color:#fff;background:var(--muted);
  padding:3px 12px;border-radius:999px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:8px}
.tile{display:block;text-decoration:none;background:var(--card);
  border:2px solid var(--line);border-radius:var(--radius);padding:20px;
  border-bottom:10px solid var(--accent);transition:transform .12s}
.tile:hover{transform:translateY(-4px)}
.tile .emoji{font-size:34px;line-height:1}
.tile h3{margin:.35em 0 .2em;font-size:21px}
.tile p{margin:0;color:var(--muted);font-size:15px}
.tile.soon{opacity:.55;border-bottom-color:var(--line);cursor:default}
.tile.soon:hover{transform:none}
.foot{text-align:center;color:var(--muted);margin-top:56px;font-size:15px}

/* accent helper classes so each tile/page can pick a color */
.a-purple{--accent:var(--purple);--accent-soft:var(--purple-soft)}
.a-teal{--accent:var(--teal);--accent-soft:var(--teal-soft)}
.a-coral{--accent:var(--coral);--accent-soft:var(--coral-soft)}
.a-pink{--accent:var(--pink);--accent-soft:var(--pink-soft)}
.a-blue{--accent:var(--blue);--accent-soft:var(--blue-soft)}
.a-amber{--accent:var(--amber);--accent-soft:var(--amber-soft)}
.a-green{--accent:var(--green);--accent-soft:var(--green-soft)}
