/* Demo lobby. System fonts only; no external assets. */
:root { --bg:#0b0f19; --panel:#131c2e; --line:#1f2d47; --text:#e6f4ff; --mute:#8aa0bd; --gold:#f2b134; --ice:#7fc8f8; --ok:#5fd39a; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--bg); color:var(--text); font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; overflow-x:hidden; }
a { color:var(--ice); }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.ribbon { position:sticky; top:0; z-index:20; background:linear-gradient(90deg,#b3261e,#e8590c); color:#fff; text-align:center; font-size:.8rem; letter-spacing:.06em; padding:.35rem .75rem; }
.ribbon-sub { opacity:.9; letter-spacing:0; }
.nav { display:flex; align-items:baseline; gap:.75rem; padding:.9rem 1rem; }
.brand { font-weight:800; font-size:1.15rem; letter-spacing:-.01em; }
.nav-tag { color:var(--mute); font-size:.85rem; }
main { max-width:1100px; margin:0 auto; padding:0 1rem 2rem; }

.hero { border-radius:16px; padding:2rem 1.25rem; border:1px solid var(--line);
  background: radial-gradient(120% 140% at 0% 0%,#1f5f8b 0%,#132033 55%,#0b0f19 100%), #132033; }
.eyebrow { margin:0; color:var(--gold); font-weight:700; font-size:.8rem; text-transform:uppercase; letter-spacing:.12em; }
.hero h1 { margin:.35rem 0 .6rem; font-size:clamp(1.7rem,6vw,2.8rem); line-height:1.1; letter-spacing:-.02em; }
.lede { margin:0 0 1.2rem; max-width:44rem; color:#c5d6ea; }
.hero-cta { margin:0; display:flex; flex-wrap:wrap; gap:.6rem; }
.btn { display:inline-block; padding:.65rem 1.2rem; border-radius:999px; background:var(--gold); color:#1a1200; font-weight:700; text-decoration:none; }
.btn.ghost { background:transparent; color:var(--text); border:1px solid #37507a; }

.sim { margin:1rem 0 0; background:#3a2a06; color:#ffe9b0; border:1px solid #6b4d10; padding:.55rem .8rem; border-radius:10px; font-size:.85rem; }

.section { margin-top:1.75rem; }
.bar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; }
.bar h2, .explain h2 { margin:0; font-size:1.3rem; }
.search input { width:min(100%,18rem); min-width:0; padding:.55rem .9rem; border-radius:999px; border:1px solid var(--line); background:var(--panel); color:var(--text); font:inherit; }
.search { flex:1 1 12rem; display:flex; justify-content:flex-end; }
.search input:focus-visible, .chip:focus-visible, .btn:focus-visible, .tile:focus-visible { outline:2px solid var(--ice); outline-offset:2px; }
.chips { display:flex; gap:.5rem; margin:.9rem 0; overflow-x:auto; padding-bottom:.25rem; }
.chip { flex:none; padding:.4rem .95rem; border-radius:999px; border:1px solid var(--line); background:var(--panel); color:var(--mute); font:inherit; font-size:.9rem; cursor:pointer; }
.chip.on { background:var(--ice); color:#07131f; border-color:var(--ice); font-weight:700; }

.recent { margin-bottom:1.25rem; }
.recent h3 { margin:.25rem 0 .6rem; font-size:1rem; color:var(--mute); font-weight:600; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.75rem; }
.tile { display:flex; flex-direction:column; min-width:0; text-decoration:none; color:inherit; background:var(--panel); border:1px solid var(--line); border-radius:12px; overflow:hidden; transition:transform .12s ease,border-color .12s ease; }
.tile:hover { transform:translateY(-2px); border-color:#2f4a78; }
.tile[hidden] { display:none; }
.tile-art { width:100%; aspect-ratio:2/3; object-fit:cover; display:block; background:#0b1426; }
.tile-name { padding:.6rem .75rem .3rem; font-weight:700; font-size:.95rem; overflow-wrap:anywhere; }
.badges { display:flex; flex-wrap:wrap; gap:.3rem; padding:0 .75rem .75rem; }
.badge { font-size:.7rem; padding:.12rem .5rem; border-radius:999px; background:#0b1426; border:1px solid var(--line); color:#c5d6ea; white-space:nowrap; }
.badge.fair { color:var(--ok); border-color:#245a45; }
.badge.new { color:#1a1200; background:var(--gold); border-color:var(--gold); font-weight:700; }
.empty { color:var(--mute); text-align:center; padding:2rem 0; }

.explain p { color:#c5d6ea; max-width:46rem; }
.foot { border-top:1px solid var(--line); padding:1.25rem 1rem 2.5rem; max-width:1100px; margin:1rem auto 0; color:var(--mute); font-size:.85rem; }
.foot p { margin:.5rem 0; max-width:50rem; }
.age { display:flex; align-items:center; gap:.6rem; }
.age-badge { display:inline-grid; place-items:center; width:2.2rem; height:2.2rem; border-radius:50%; border:2px solid var(--mute); color:var(--text); font-weight:800; font-size:.8rem; }

@media (min-width:700px) { .grid { grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:1rem; } .hero { padding:3rem 2.5rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .tile { transition:none; } }
