/* GrooveSteps reading pages: about, contact, privacy, terms, glossary,
   donate, guides and drum articles. Everything is scoped to <main> so the
   shared header and footer are never touched. Tokens come from gs.css. */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--gs-bg);color:var(--gs-ink);font-family:var(--gs-font-body);line-height:1.7;-webkit-font-smoothing:antialiased}

main{display:block;padding:56px 0 24px}
main.wrap,main .wrap{max-width:820px;margin:0 auto;padding-left:24px;padding-right:24px}
main :where(h1,h2,h3,p,ul,ol,dl,table,figure){margin-top:0}

/* breadcrumbs: .crumb on prose pages, the first .muted line on articles */
main .crumb,main.wrap>p.muted:first-child{font-size:.84rem;color:var(--gs-ink-mute);margin:0 0 22px}
main .crumb a,main.wrap>p.muted:first-child a{color:var(--gs-ink-mute);text-decoration:none}
main .crumb a:hover,main.wrap>p.muted:first-child a:hover{color:var(--gs-ink)}

main h1{overflow-wrap:break-word;font-family:var(--gs-font-disp);font-weight:800;font-size:clamp(2.3rem,6vw,3.6rem);line-height:1.02;letter-spacing:-.035em;margin:0 0 14px;color:var(--gs-ink);text-wrap:balance;
  background:none;-webkit-text-fill-color:currentColor}
main h2{font-family:var(--gs-font-disp);font-weight:750;font-size:clamp(1.35rem,3vw,1.7rem);line-height:1.15;letter-spacing:-.02em;margin:44px 0 12px;color:var(--gs-ink);scroll-margin-top:96px}
main h3{font-family:var(--gs-font-disp);font-weight:700;font-size:1.12rem;letter-spacing:-.01em;margin:24px 0 6px;color:var(--gs-brass-lt)}
main .lede{color:var(--gs-ink-soft);font-size:clamp(1.08rem,2vw,1.22rem);line-height:1.6;margin:0 0 30px;max-width:62ch}
main p,main li,main dd{color:var(--gs-ink-soft)}
main p{margin:0 0 14px}
main ul,main ol{margin:0 0 16px 22px;padding:0}
main li{margin:6px 0}
main li::marker{color:var(--gs-brass)}
main strong,main b{color:var(--gs-ink)}
main a{overflow-wrap:anywhere;color:var(--gs-brass-lt);text-decoration:underline;text-decoration-color:rgba(245,208,138,.38);text-underline-offset:3px}
main a:hover{text-decoration-color:currentColor}
main .upd,main .muted,main .cap,main .meta{color:var(--gs-ink-mute)}
main .upd{font-size:.85rem;margin-bottom:30px}
main .cap{font-size:.85rem;margin:-4px 0 18px}
main hr{border:0;border-top:1px solid var(--gs-border-soft);margin:36px 0}

/* tables */
main table{width:100%;border-collapse:collapse;margin:14px 0 22px;font-size:.95rem;border:1px solid var(--gs-border);border-radius:14px;overflow:hidden}
main th,main td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--gs-border-soft);vertical-align:top}
main th{font-family:var(--gs-font-disp);font-weight:700;color:var(--gs-ink);background:rgba(244,237,225,.03)}
main tr:last-child td{border-bottom:0}

/* panels and cards */
main .box,main .card{border:1px solid var(--gs-border);border-radius:18px;padding:22px 24px;margin:22px 0;background:var(--gs-surface)}
main .box a,main .card a{font-weight:600}
main .card h2{margin-top:0;font-size:1.3rem}
main .card h3{color:var(--gs-brass-lt)}
main .grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
main .grid .card{margin:0}
main .best{color:var(--gs-ink-soft);font-size:.92rem}
main .meta{font-family:var(--gs-font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}
@media(max-width:640px){main .grid{grid-template-columns:1fr}}

/* buttons */
main .btn,main .dl,main .cta,main form button{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:12px 22px;border-radius:999px;border:1px solid transparent;
  background:var(--gs-brass);color:#16110a;font:700 .96rem/1.1 var(--gs-font-body);text-decoration:none;cursor:pointer;transition:background-color .15s,transform .15s}
main .btn:hover,main .dl:hover,main .cta:hover,main form button:hover{background:var(--gs-brass-lt);text-decoration:none;transform:translateY(-1px)}
main .cta.ghost{background:transparent;color:var(--gs-ink);border-color:var(--gs-border-strong)}
main .cta.ghost:hover{background:rgba(244,237,225,.07);border-color:var(--gs-ink-soft)}
main .cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}

/* glossary and guides */
main .toc{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px}
main .toc a{font-size:.86rem;color:var(--gs-ink-soft);text-decoration:none;border:1px solid var(--gs-border);border-radius:999px;padding:5px 13px;background:rgba(244,237,225,.03)}
main .toc a:hover{border-color:var(--gs-brass);color:var(--gs-ink)}
main dl{margin:8px 0 0}
main dt{font-family:var(--gs-font-disp);font-weight:700;color:var(--gs-ink);font-size:1.12rem;margin:24px 0 4px;scroll-margin-top:96px}
main dd{margin:0 0 4px}
main dd.def,main .answer-capsule{color:#ddd3c3}
main .rel{font-size:.86rem;color:var(--gs-ink-mute);margin:4px 0 0}
main .score{background:#f4ede1;border-radius:12px;padding:10px 6px;margin:14px 0;overflow-x:auto}
main .beatgrid{font-family:var(--gs-font-mono);background:#0b0a08;border:1px solid var(--gs-border);border-radius:12px;padding:14px 16px;margin:12px 0;overflow-x:auto;white-space:pre;color:var(--gs-brass-lt);font-size:.92rem}
main details{border:1px solid var(--gs-border);border-radius:14px;background:rgba(244,237,225,.02);margin:10px 0;padding:2px 18px}
main summary{cursor:pointer;font-family:var(--gs-font-disp);font-weight:700;color:var(--gs-ink);padding:14px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}
main summary::-webkit-details-marker{display:none}
main summary::after{content:"+";color:var(--gs-brass);font-family:var(--gs-font-mono)}
main details[open] summary::after{content:"\2212"}
main details .answer-capsule{margin:0 0 16px}

/* forms */
main form label{display:block;font-size:.88rem;color:var(--gs-ink-soft);margin:16px 0 6px;font-weight:500}
main form input,main form textarea,main form select{width:100%;padding:12px 14px;border:1px solid var(--gs-border-strong);border-radius:12px;background:rgba(244,237,225,.04);color:var(--gs-ink);font:inherit}
main form input:focus,main form textarea:focus,main form select:focus{border-color:var(--gs-brass);outline:2px solid rgba(233,180,76,.35);outline-offset:1px}
main form button{margin-top:18px;border:0}
