:root{
  --bg:#141210; --panel:#1d1a16; --ink:#ece5d8; --dim:#a89c88;
  --line:#2e2822; --gold:#d8a93f; --gold-dim:#8a6d2a;
  --rook:#7fb3d5; --sable:#d59a7f;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}
.top{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.2rem 1.4rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(20,18,16,.96);backdrop-filter:blur(6px);z-index:20}
.brand h1{margin:0;font-size:1.6rem;letter-spacing:.04em}
.brand .tag{margin:.15rem 0 0;color:var(--dim);font-size:.85rem}
.voice-toggle{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.vbtn{background:transparent;color:var(--dim);border:0;padding:.5rem 1.1rem;font-size:.9rem;cursor:pointer;letter-spacing:.06em}
.vbtn[aria-pressed="true"]{background:var(--gold);color:#141210;font-weight:600}
main{max-width:1100px;margin:0 auto;padding:1.2rem 1.4rem 4rem}
.searchrow{display:flex;gap:.6rem;margin-bottom:1rem}
#q{flex:1;background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:.7rem 1rem;font-size:1rem}
#q:focus{outline:2px solid var(--gold-dim);border-color:var(--gold)}
#archive{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:.7rem}
.sotd{background:linear-gradient(135deg,#241d12,#1d1a16);border:1px solid var(--gold-dim);border-radius:14px;padding:1rem 1.2rem;margin-bottom:1.2rem;display:flex;gap:1rem;align-items:center;cursor:pointer}
.sotd .glyph{font-size:3rem;line-height:1}
.sotd .lbl{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gold)}
.sotd .nm{font-weight:600}
.sotd .mn{color:var(--dim);font-size:.9rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem;cursor:pointer;transition:border-color .15s;position:relative}
.card:hover{border-color:var(--gold-dim)}
.card .glyph{font-size:2.6rem;line-height:1.2;text-align:center;min-height:3.2rem}
.card .glyph img{max-width:100%}
.card h3{margin:.5rem 0 .2rem;font-size:.95rem}
.card .meaning{color:var(--dim);font-size:.82rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:.6rem}
.arch{font-size:.72rem;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prov{font-size:.68rem;padding:.15rem .5rem;border-radius:999px;letter-spacing:.05em}
.prov.needs-review{background:#3a2c14;color:var(--gold)}
.prov.sourced{background:#1d3a24;color:#8fd59a}
.prov.disputed{background:#3a1f1f;color:#e08a8a}
.prov.editorial{background:#232838;color:#9ab3e0}
.card .actions{display:flex;gap:.4rem;margin-top:.6rem}
.btn{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:.35rem .7rem;font-size:.8rem;cursor:pointer}
.btn:hover{border-color:var(--gold)}
.btn.play{border-color:var(--gold-dim);color:var(--gold)}
.btn:disabled{opacity:.35;cursor:default}
.empty{color:var(--dim);text-align:center;margin-top:3rem}
.drawer{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:50;display:flex;justify-content:center;align-items:flex-end}
.drawer[hidden]{display:none}
.sheet{background:var(--panel);border:1px solid var(--line);border-radius:16px 16px 0 0;max-width:640px;width:100%;max-height:88vh;overflow:auto;padding:1.6rem;position:relative}
@media(min-width:700px){.drawer{align-items:center}.sheet{border-radius:16px}}
.close{position:absolute;top:.8rem;right:1rem;background:none;border:0;color:var(--dim);font-size:1.6rem;cursor:pointer}
.sheet .glyph{font-size:5rem;text-align:center;line-height:1.2}
.sheet h2{margin:.4rem 0 .2rem;text-align:center}
.sheet .meaning-full{color:var(--ink);text-align:center;max-width:34rem;margin:.6rem auto}
.sheet .prov-row{display:flex;gap:.6rem;justify-content:center;align-items:center;margin:.8rem 0;flex-wrap:wrap}
.sheet .row{display:flex;gap:.5rem;justify-content:center;margin:.8rem 0;flex-wrap:wrap}
.sheet .wishline{text-align:center;margin-top:1rem;font-size:.85rem;color:var(--dim)}
.sheet a{color:var(--gold)}
model-viewer{width:100%;height:320px;background:#0e0d0b;border-radius:12px;--poster-color:transparent}
.fab{position:fixed;right:1.2rem;bottom:1.2rem;background:var(--gold);color:#141210;border:0;border-radius:999px;padding:.7rem 1.1rem;font-size:1rem;cursor:pointer;z-index:40;font-weight:600}
#col-list .col{border:1px solid var(--line);border-radius:10px;padding:.8rem;margin:.6rem 0}
#col-list .col h4{margin:0 0 .4rem}
#col-list .col .items{display:flex;flex-wrap:wrap;gap:.4rem}
#col-list .chip{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.2rem .7rem;font-size:.85rem;cursor:pointer}
.newcol{display:flex;gap:.5rem;margin:.8rem 0}
.newcol input{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:.5rem .8rem}
.foot{border-top:1px solid var(--line);padding:1.2rem;text-align:center;color:var(--dim);font-size:.85rem}
.foot a{color:var(--gold)}
.hear-other{font-size:.78rem;color:var(--dim);background:none;border:0;text-decoration:underline;cursor:pointer;padding:.2rem}
