/* Dark Side Crafts — static portal. Palette matches the validated WCAG 2.1
   AAA set from web/ (all text pairs >= 7:1 on their surfaces). */
:root{color-scheme:dark;--bg:#0f1115;--card:#181c24;--line:#262c38;--fg:#e8ecf2;--dim:#b6bfcc;--acc:#9cb8fa;--err:#ff8f9e}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,sans-serif}
a{color:var(--acc)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
header{padding:1.25rem 1rem;border-bottom:1px solid var(--line)}
h1{margin:0;font-size:1.4rem}
h1 a{color:inherit;text-decoration:none}
.tagline{margin:.25rem 0 0;color:var(--dim)}
main{max-width:66rem;margin:0 auto;padding:1rem}
.controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-bottom:1rem}
.controls label{display:block;font-size:.85rem;color:var(--dim);margin-bottom:.25rem}
.controls input,.controls select{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:.45rem .6rem;font:inherit}
#count{color:var(--dim);font-size:.9rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;padding:0;list-style:none}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;text-decoration:none;color:inherit}
.card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--line)}
.card .name{display:block;padding:.6rem .75rem .2rem;font-weight:600}
.card .cat{display:block;padding:0 .75rem .7rem;color:var(--dim);font-size:.85rem}
.play h2{margin:.2rem 0 .8rem}
.framebox{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.5rem;overflow:auto}
iframe{display:block;border:0;background:#000}
.meta{margin-top:1rem;display:grid;gap:.75rem}
.meta section{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.75rem 1rem}
.meta h3{margin:0 0 .35rem;font-size:1rem;color:var(--acc)}
.back{display:inline-block;margin-bottom:.5rem}
.doc{max-width:46rem}
.doc h2{color:var(--acc)}
.err{color:var(--err)}
footer{border-top:1px solid var(--line);color:var(--dim);padding:1rem;text-align:center;font-size:.9rem}
@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}
