:root{--bg: #111111;--bg-accent: #1c1815;--tile: #1d1d1d;--tile-border: #383838;--text: #eeeeee;--muted: #909090;--accent: #ff5722;--marked: #bf360c;--marked-text: #ffe9e0;--win: #ff8a50;--display-font: "Anton", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,var(--bg-accent),var(--bg) 70%);background-attachment:fixed;color:var(--text);font-family:system-ui,-apple-system,sans-serif;min-height:100vh;-webkit-tap-highlight-color:transparent}#root{max-width:560px;margin:0 auto;padding:1rem .75rem calc(2rem + env(safe-area-inset-bottom))}button{font-family:inherit;font-size:.95rem;color:var(--text);background:var(--tile);border:1px solid var(--tile-border);border-radius:10px;padding:.65rem 1rem;cursor:pointer;transition:transform .08s ease,background .15s ease}button:active{transform:scale(.97)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}button.ghost{background:transparent}button.small{padding:.3rem .7rem;font-size:.8rem}.muted{color:var(--muted)}.error{color:var(--win);text-align:center}.setup{display:flex;flex-direction:column;gap:1.25rem;padding-top:8vh;text-align:center}.setup-logo{font-size:3.5rem}.setup h1{font-family:var(--display-font);font-size:clamp(2rem,9vw,3rem);letter-spacing:.03em;margin:.25rem 0;color:var(--accent);text-transform:uppercase}.tagline{color:var(--muted);max-width:36ch;margin:0 auto;line-height:1.45}.setup-form{display:flex;flex-direction:column;gap:.6rem}.setup-form input{font-size:1.15rem;padding:.8rem 1rem;border-radius:12px;border:1px solid var(--tile-border);background:var(--tile);color:var(--text);text-align:center;outline:none}.setup-form input:focus{border-color:var(--accent)}.setup-foot{font-size:.85rem}.show-picker{display:flex;flex-direction:column;gap:.5rem}.show-option{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;text-align:left}.show-date{color:var(--accent);font-variant-numeric:tabular-nums;font-size:.85rem}.show-venue{font-weight:600}.show-city{color:var(--muted);font-size:.85rem}.app{display:flex;flex-direction:column;gap:1rem}.win-banner{display:flex;align-items:center;justify-content:center;gap:.75rem;font-family:var(--display-font);font-size:1.5rem;color:var(--win);letter-spacing:.05em;animation:pop .4s ease}.card-wrap{background:var(--bg);border:1px solid var(--tile-border);border-radius:16px;padding:.9rem}.card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.8rem}.artist-img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--accent)}.artist-name{font-family:var(--display-font);font-size:clamp(1.3rem,6vw,1.9rem);margin:0;line-height:1.05;color:var(--accent);text-transform:uppercase;letter-spacing:.02em}.show-line{margin:.15rem 0 0;color:var(--muted);font-size:.8rem}.bingo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.3rem}.tile{position:relative;aspect-ratio:1;padding:.2rem;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;overflow:hidden;font-size:clamp(.5rem,2.3vw,.72rem);line-height:1.15;text-align:center}.tile-text{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word}.tile-sub{font-size:.85em;color:var(--accent);font-style:italic}.tile .tee{font-size:.9em}.tile .badge{position:absolute;top:2px;right:4px;font-size:.75em;color:var(--accent)}.tile[data-rarity=j]{border-color:var(--accent);border-style:dashed}.tile.marked{background:var(--marked);border-color:var(--marked);color:var(--marked-text);transform:scale(.97)}.tile.marked .badge,.tile.marked .tile-sub{color:var(--marked-text)}.tile.free{background:var(--accent);border-color:var(--accent);color:var(--bg);font-family:var(--display-font);font-size:clamp(.7rem,3vw,1rem);letter-spacing:.08em}.tile.winning{outline:2px solid var(--win);outline-offset:-2px;box-shadow:0 0 14px var(--win);animation:pop .4s ease}.card-footer{display:flex;justify-content:space-between;margin-top:.7rem;font-size:.7rem;letter-spacing:.18em;color:var(--muted)}.actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.kofi{text-align:center;margin-top:.5rem}.kofi a{color:var(--muted);font-size:.85rem;text-decoration:none;border-bottom:1px dotted var(--muted)}.kofi a:hover{color:var(--accent)}@keyframes pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
