:root{--bg: #111111;--bg-accent: #1c1815;--tile: #1d1d1d;--tile-border: #383838;--text: #eeeeee;--muted: #909090;--accent: #ff5722;--stamp: #ff5722;--hair: #383838;--marked: #bf360c;--marked-text: #ffe9e0;--win: #ff8a50;--free-ink: #111111;--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{position:relative;display:flex;flex-direction:column;gap:1rem;min-height:calc(100vh - 2rem - env(safe-area-inset-bottom));padding:1rem;padding-top:max(1rem,env(safe-area-inset-top));justify-content:flex-end;overflow:hidden;border-radius:24px;text-align:center;background:linear-gradient(to bottom,#0000002e,#0000008f 48%,#000000e6),url(/hero.jpg) center top / cover no-repeat;box-shadow:0 20px 48px #00000059}.setup:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.08) 28%,rgba(0,0,0,.36) 100%);pointer-events:none}.setup>*{position:relative;z-index:1}.setup-hero{display:flex;flex-direction:column;gap:.8rem;align-items:center;margin-top:auto}.setup .wordmark .l1{font-size:clamp(2.3rem,11vw,4rem);text-shadow:0 2px 12px rgba(0,0,0,.45)}.setup .wordmark .l2{font-size:clamp(3rem,14vw,5rem);text-shadow:0 2px 14px rgba(0,0,0,.45)}.setup-kicker{margin:0;font-family:Oswald,sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}.setup h1{font-family:var(--display-font);font-size:clamp(2rem,8vw,3.35rem);line-height:.95;letter-spacing:.03em;margin:0;color:var(--text);text-transform:uppercase;text-wrap:balance}.tagline{color:color-mix(in srgb,var(--text) 82%,var(--muted) 18%);max-width:34ch;margin:0 auto;line-height:1.5;text-wrap:balance}.setup-form{display:flex;flex-direction:column;gap:.7rem;padding:1rem;border:1px solid color-mix(in srgb,var(--tile-border) 70%,transparent 30%);border-radius:18px;background:color-mix(in srgb,var(--bg) 72%,transparent 28%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.setup-form input{font-size:1.15rem;padding:.95rem 1rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--tile-border) 75%,var(--text) 25%);background:color-mix(in srgb,var(--tile) 78%,var(--bg) 22%);color:var(--text);text-align:center;outline:none;box-shadow:inset 0 1px #ffffff0a}.setup-form input:focus{border-color:var(--accent)}.setup-form input::placeholder{color:var(--muted)}.setup-form button{min-height:50px}.setup .primary{box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 28%,transparent 72%)}.setup .ghost{background:color-mix(in srgb,var(--bg) 50%,transparent 50%);border-color:color-mix(in srgb,var(--tile-border) 68%,var(--text) 32%)}.setup-example{font-weight:600}.setup .muted{color:color-mix(in srgb,var(--muted) 84%,var(--text) 16%)}.setup-foot{font-size:.85rem;margin:0;padding:0 .5rem}.resume-chip{margin:0 auto;background:color-mix(in srgb,var(--bg) 68%,transparent 32%);border:1px dashed var(--accent);font-size:.95rem}.resume-chip strong{color:var(--accent)}.ai-unlock{text-align:center}.ai-chip{background:var(--tile);border:1px dashed var(--accent);font-size:.95rem}.ai-chip strong{color:var(--accent)}.turnstile-slot{display:flex;justify-content:center;margin-top:.5rem}.show-picker{display:flex;flex-direction:column;gap:.5rem;padding:.9rem;border-radius:18px;background:color-mix(in srgb,var(--bg) 76%,transparent 24%);border:1px solid color-mix(in srgb,var(--tile-border) 72%,transparent 28%)}.show-option{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;text-align:left;width:100%;background:color-mix(in srgb,var(--tile) 84%,var(--bg) 16%)}.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}.setup .error{margin:0;color:color-mix(in srgb,var(--win) 88%,var(--text) 12%)}@media(min-width:640px){.setup{min-height:calc(100vh - 2.5rem - env(safe-area-inset-bottom));padding:1.4rem;justify-content:center}.setup-hero{gap:1rem}.setup-form,.show-picker{max-width:28rem;margin:0 auto;width:100%}}.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{position:relative;overflow:hidden;background:var(--bg);color:var(--text);border:1px solid var(--hair);border-radius:14px;background-image:radial-gradient(var(--grain, rgba(255, 255, 255, .03)) 1px,transparent 1px);background-size:4px 4px}:root[data-mode=light] .card-wrap{--grain: rgba(0, 0, 0, .04)}.card-top{padding:16px 16px 10px;text-align:center;position:relative}.card-header{display:flex;align-items:center;justify-content:center;gap:.6rem}.artist-img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--accent)}.wordmark{font-family:var(--display-font);line-height:.92;letter-spacing:.01em}.wordmark .l1{display:block;font-size:26px;color:var(--text)}.wordmark .l2{display:block;font-size:34px;color:var(--accent)}.card-tagline{font-family:Oswald,sans-serif;font-weight:600;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:5px}.showline{font-family:Oswald,sans-serif;margin-top:11px;border-top:1px dashed var(--hair);padding-top:9px}.showline .artist{font-family:var(--display-font);font-size:22px;line-height:1;color:var(--text);text-transform:uppercase}.showline .vd{font-weight:600;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:4px}.bingo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:5px 12px 12px}.tile{position:relative;aspect-ratio:1;border-radius:7px;background:var(--tile);border:1px solid var(--tile-border);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;padding:4px 3px;overflow:hidden;font-family:inherit;cursor:pointer;transition:transform .08s ease}.tile:active{transform:scale(.96)}.tile-ic{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;color:var(--text)}.tile-text{font-size:clamp(6.5px,2.1vw,8px);line-height:1.12;font-weight:600;letter-spacing:.01em;color:var(--text);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word}.tile.band{padding:2px}.tile-logo{width:84%;max-height:46%;object-fit:contain}.tile-bt{font-size:clamp(6.5px,2.1vw,8px);font-weight:700;margin-top:3px;color:var(--text)}.tile.band.photo{padding:0;background-size:cover;background-position:center;justify-content:flex-end}.tile.band.photo .tile-ov{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,#000000d9,#0000000d 60%)}.tile.band.photo .tile-bt{position:relative;z-index:2;color:#fff;padding-bottom:6px;text-shadow:0 1px 3px #000}.tile.free{background:var(--accent);color:var(--free-ink)}.tile.free .star{font-size:18px;line-height:1;color:var(--free-ink)}.tile.free .tile-text{color:var(--free-ink);font-family:Oswald,sans-serif;font-weight:700;letter-spacing:.1em}.tile.marked:not(.free) .tile-ic,.tile.marked:not(.free) .tile-text,.tile.marked:not(.free) .tile-logo,.tile.marked:not(.free) .tile-bt{opacity:.32}.tile.marked:not(.free):after{content:"SPOTTED";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-13deg);font-family:Oswald,sans-serif;font-weight:700;font-size:8.5px;letter-spacing:.06em;color:var(--stamp);border:1.8px solid var(--stamp);border-radius:3px;padding:2px 4px;opacity:.92;white-space:nowrap;box-shadow:0 0 0 2px var(--bg) inset}.tile.marked.win:not(.free):after{content:"✓ SPOTTED"}.tile.win{box-shadow:0 0 0 2px var(--accent) inset}.card-footer{display:flex;justify-content:space-between;align-items:baseline;padding:11px 14px 14px;border-top:1px solid var(--hair)}.brag-count{font-family:var(--display-font);font-size:20px;color:var(--accent)}.brag-of{font-size:10px;color:var(--muted);font-weight:600}.brag-url{font-family:Oswald,sans-serif;font-size:9px;letter-spacing:.12em;text-transform:uppercase;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}}.share-card{position:fixed;left:-99999px;top:0;width:1080px;height:1920px;pointer-events:none;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);background-image:radial-gradient(ellipse at top,var(--bg-accent),var(--bg) 72%),radial-gradient(var(--grain, rgba(255, 255, 255, .035)) 2px,transparent 2px);background-size:cover,9px 9px;color:var(--text);padding:72px 64px 56px}:root[data-mode=light] .share-card{--grain: rgba(0, 0, 0, .045)}.share-ribbon{align-self:center;font-family:var(--display-font);font-size:96px;line-height:1;letter-spacing:.04em;text-transform:uppercase;color:var(--bg);background:var(--accent);padding:18px 56px;border-radius:14px;margin-bottom:36px;box-shadow:0 14px 40px #0006;transform:rotate(-2deg)}.share-card-top{text-align:center}.share-card-header{display:flex;align-items:center;justify-content:center;gap:26px}.share-artist-img{width:132px;height:132px;border-radius:50%;object-fit:cover;border:5px solid var(--accent)}.share-wordmark{line-height:.9}.share-wordmark .l1{display:block;font-size:80px;color:var(--text)}.share-wordmark .l2{display:block;font-size:116px;color:var(--accent)}.share-card-tagline{font-family:Oswald,sans-serif;font-weight:600;font-size:26px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:22px}.share-showline{font-family:Oswald,sans-serif;margin-top:30px;border-top:2px dashed var(--hair);padding-top:26px}.share-showline .artist{font-family:var(--display-font);font-size:72px;line-height:1.02;color:var(--text);text-transform:uppercase}.share-showline .vd{font-weight:600;font-size:30px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:14px}.share-card-grid{gap:18px;padding:0;margin:48px 0;flex:1 1 auto;align-content:center}.share-card .tile{border-radius:22px;border-width:2px;gap:10px;padding:14px 10px}.share-card .tile-ic{width:92px;height:92px;stroke-width:1.5}.share-card .tile-text{font-size:28px;line-height:1.12;-webkit-line-clamp:4}.share-card .tile.band{padding:8px}.share-card .tile-logo{width:84%;max-height:48%}.share-card .tile-bt{font-size:26px;margin-top:10px}.share-card .tile.band.photo .tile-bt{padding-bottom:16px}.share-card .tile.free .star{font-size:64px}.share-card .tile.free .tile-text{font-size:30px;letter-spacing:.12em}.share-card .tile.marked:not(.free):after{font-size:30px;letter-spacing:.06em;border-width:3px;border-radius:8px;padding:7px 14px;box-shadow:0 0 0 6px var(--bg) inset}.share-card .tile.win{box-shadow:0 0 0 5px var(--accent) inset}.share-card-footer{display:flex;flex-direction:column;gap:36px;padding-top:40px;border-top:3px solid var(--hair)}.share-card-brag{text-align:center}.share-card-brag-label{font-family:var(--display-font);font-size:88px;line-height:1;color:var(--accent);text-transform:uppercase}.share-card-brag-text{font-family:Oswald,sans-serif;font-weight:600;font-size:32px;letter-spacing:.04em;color:var(--muted);margin-top:14px}.share-card-brag-win .share-card-brag-label{font-size:128px;letter-spacing:.03em}.share-card-brag-win .share-card-brag-text{color:var(--text)}.share-card-cta{text-align:center;background:var(--accent);color:var(--bg);border-radius:20px;padding:32px 28px;box-shadow:0 12px 36px #00000059}.share-card-cta span{display:block;font-family:Oswald,sans-serif;font-weight:700;font-size:44px;letter-spacing:.06em;text-transform:uppercase}.share-card-cta strong{display:block;font-family:var(--display-font);font-size:54px;letter-spacing:.04em;text-transform:uppercase;margin-top:12px}
