:root{
  --ink:#1d1830; --muted:#665f80; --bg:#f6f4fc; --card:#ffffff;
  --brand:#4f2bd8; --brand2:#7d3fc4; --gold:#c9a227; --line:#e3dcf2;
  --ok:#1d9e6c; --bad:#d64545;
  --shadow:0 14px 34px rgba(46,18,90,.09), 0 2px 8px rgba(46,18,90,.05);
  --radius:16px;
}
html[data-theme="dark"]{
  --ink:#efeaf8; --muted:#a79cc2; --bg:#100c1e; --card:#1c1730;
  --line:#372c52; --shadow:0 14px 34px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
body{margin:0;font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55;transition:background .25s,color .25s}
h1,h2,h3,.logo,.score-ring{font-family:"Sora","Plus Jakarta Sans",system-ui,sans-serif}
.wrap{max-width:1060px;margin:0 auto;padding:0 18px}
a{color:var(--brand2)}
html[data-theme="dark"] a{color:#c9aef2}
.topbar{position:sticky;top:0;z-index:20;background:var(--card);border-bottom:1px solid var(--line)}
.topbar-row{display:flex;align-items:center;gap:20px;padding-top:10px;padding-bottom:10px}
.logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:1.15rem;color:var(--ink);text-decoration:none}
.logo-mark{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:1rem}
.top-links{margin-left:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.top-links a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.93rem}
.top-links a:hover{color:var(--brand2)}
.gh-btn{background:var(--ink);color:var(--card)!important;border-radius:9px;padding:7px 14px}
.theme-btn{appearance:none;border:1px solid var(--line);background:var(--card);border-radius:99px;width:36px;height:36px;cursor:pointer}
@media (max-width:720px){.top-links a:not(.gh-btn){display:none}}
.hero{background:radial-gradient(800px 280px at 85% -40px, rgba(201,162,39,.28), transparent 60%),linear-gradient(120deg,#241056,var(--brand) 55%,var(--brand2));color:#fff;padding:52px 0 44px}
.eyebrow{margin:0 0 8px;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:700;color:#f3e9c8}
.hero h1{margin:0;font-size:2.5rem;line-height:1.15}
@media (max-width:720px){.hero h1{font-size:1.8rem}}
.grad{background:linear-gradient(90deg,#ffd964,#f3e9c8);-webkit-background-clip:text;background-clip:text;color:transparent}
.lede{margin:14px 0 0;max-width:66ch;opacity:.94;font-size:1.06rem}
.hero-cta{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.btn{appearance:none;border:none;border-radius:11px;padding:12px 20px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}
.btn-primary{background:#fff;color:#2a1470;box-shadow:0 10px 22px rgba(0,0,0,.22)}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.75)}
.btn-small{background:var(--card);color:var(--ink);border:1px solid var(--line);padding:9px 14px;font-size:.92rem}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.chip{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);border-radius:99px;padding:5px 13px;font-size:.88rem}
main.wrap{padding-top:28px;padding-bottom:40px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.card h2{margin:0 0 6px;font-size:1.35rem}
.sub{color:var(--muted);margin:0 0 14px}
.scorer-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}
@media (max-width:820px){.scorer-grid{grid-template-columns:1fr}}
textarea{width:100%;border:2px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;padding:12px;resize:vertical}
textarea:focus{outline:none;border-color:var(--brand2);box-shadow:0 0 0 4px rgba(125,63,196,.18)}
.score-panel{text-align:center}
.score-ring{font-size:2.6rem;font-weight:800;border:3px solid var(--gold);border-radius:16px;padding:10px 0;background:linear-gradient(135deg,rgba(79,43,216,.08),rgba(201,162,39,.10))}
.score-ring .of{font-size:1.1rem;color:var(--muted)}
.verdict{font-weight:700;margin:10px 0 4px}
.check-list{list-style:none;text-align:left;margin:8px 0;padding:0;font-size:.92rem}
.check-list li{padding:3px 0 3px 24px;position:relative}
.check-list.found li::before{content:"✓";position:absolute;left:2px;color:var(--ok);font-weight:800}
.check-list.missing li::before{content:"✗";position:absolute;left:2px;color:var(--bad);font-weight:800}
.check-list.missing{color:var(--muted)}
.scorer-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.section-h{font-size:1.35rem;margin:30px 0 14px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid{grid-template-columns:1fr}}
.tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);transition:transform .12s}
.tile:hover{transform:translateY(-2px)}
.tile h3{margin:0 0 6px;font-size:1.02rem;color:var(--ink)}
.tile p{margin:0;color:var(--muted);font-size:.93rem}
.ladder{margin-top:30px}
.ladder table{width:100%;border-collapse:collapse}
.ladder th,.ladder td{padding:9px 8px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.ladder td:first-child{font-family:"Sora",sans-serif;font-weight:800;color:var(--brand2)}
.site-footer{border-top:1px solid var(--line);background:var(--card);padding:16px 0 26px;color:var(--muted);font-size:.92rem}
