:root{--ground:#0b1220;--panel:#111b2e;--line:#1e2a44;--ink:#f5f7fb;--dim:#8494ad;--live:#4ade80;--warn:#fbbf24;--dead:#f87171;--accent:#e8eef9}*{box-sizing:border-box}body{background:var(--ground);color:var(--ink);font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}header.app{display:flex;align-items:baseline;gap:12px;padding:14px 16px 10px}header.app .brand{font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:14px}header.app .brand span{color:var(--dim);font-weight:600}header.app .tagline{color:var(--dim);font-size:11px;letter-spacing:.04em;flex:1 1;text-align:right}main.app{padding:0 12px 24px;max-width:1200px;margin:0 auto}.grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}@media (max-width:680px){.grid{grid-template-columns:1fr 1fr;gap:8px}}.tile{position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);cursor:pointer;aspect-ratio:16/9}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile .name{position:absolute;left:10px;bottom:8px;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;text-shadow:0 1px 4px #000c;display:flex;align-items:center;gap:6px}.tile .dot{width:7px;height:7px;border-radius:50%;background:var(--live);box-shadow:0 0 6px #4ade8088}.tile.stale .dot{background:var(--warn)}.tile:after{content:"";position:absolute;inset:auto 0 0 0;height:48px;background:linear-gradient(0deg,#000a,transparent);pointer-events:none}.zoom{position:fixed;inset:0;z-index:50;background:#000d;display:flex;flex-direction:column}.zoom img{flex:1 1;object-fit:contain;min-height:0;width:100%}.zoom .bar{display:flex;align-items:center;gap:14px;padding:12px 16px;font-size:13px}.zoom .bar b{text-transform:uppercase;letter-spacing:.08em}.zoom .bar a{color:var(--ink);opacity:.8}.zoom .bar button{margin-left:auto;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 16px;font-size:13px;cursor:pointer}h2.section{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:22px 2px 10px}.events{display:flex;flex-direction:column;gap:6px}.event{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px 8px 8px}.event img{width:72px;height:48px;object-fit:cover;border-radius:6px;background:#0007}.event .what{font-size:13px;font-weight:600;text-transform:capitalize}.event .where{font-size:11px;color:var(--dim);letter-spacing:.05em;text-transform:uppercase}.event time{margin-left:auto;font-size:12px;color:var(--dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;padding:24px}.login .brand{font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:16px}.login .brand span{color:var(--dim)}.login form{display:flex;gap:8px;width:100%;max-width:340px}.login input{flex:1 1;background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:12px 14px;font-size:16px}.login button{background:var(--ink);color:var(--ground);font-weight:700;border:0;border-radius:10px;padding:12px 18px;font-size:15px;cursor:pointer}.login .err{color:var(--dead);font-size:13px;min-height:18px}.login .small{letter-spacing:.04em}.foot,.login .small{color:var(--dim);font-size:11px}.foot{margin-top:26px;text-align:center;letter-spacing:.05em}.foot a{color:var(--dim)}