:root{--crimson: #c41230;--violet: #9b1fff;--magenta: #e040fb;--amber: #f0a500;--white-beam: #ffffff;--bg: #120818;--bg-panel: #1a0d24;--bg-elevated: #221030;--border: rgba(196, 18, 48, .15);--border-mid: rgba(196, 18, 48, .25);--text-primary: #f0e6ff;--text-label: rgba(224, 64, 251, .65);--text-muted: rgba(224, 64, 251, .42);--text-dim: rgba(255, 255, 255, .45);--glow-crimson: 0 0 12px rgba(196, 18, 48, .6), 0 0 28px rgba(196, 18, 48, .25);--glow-violet: 0 0 12px rgba(155, 31, 255, .55), 0 0 24px rgba(155, 31, 255, .2);--glow-magenta: 0 0 14px rgba(224, 64, 251, .6), 0 0 30px rgba(224, 64, 251, .25);--glow-amber: 0 0 10px rgba(240, 165, 0, .5), 0 0 20px rgba(240, 165, 0, .2);--font-display: "Space Grotesk", system-ui, sans-serif;--font-mono: "DM Mono", ui-monospace, monospace;--radius: 4px}*{box-sizing:border-box;margin:0;padding:0}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:radial-gradient(120% 120% at 50% 42%,#1a0d24,#120818 72%);overflow:hidden;cursor:pointer;animation:splashFade .7s ease 8.2s forwards}.splash-skip{animation:splashFade .32s ease forwards!important}@keyframes splashFade{to{opacity:0;pointer-events:none}}.splash-stage{position:absolute;left:50%;top:50%;width:60vmin;height:74vmin;transform:translate(-50%,-50%)}.splash-stage>*{position:absolute;left:50%}.splash-hint{position:absolute;bottom:6vmin;left:0;right:0;text-align:center;font-family:var(--font-display);font-size:.5rem;letter-spacing:2px;color:var(--text-dim);opacity:0;animation:hintIn .6s ease 1.2s forwards}@keyframes hintIn{to{opacity:.6}}.splash-goose{width:44vmin;height:44vmin;margin-left:-22vmin;top:13vmin;filter:drop-shadow(0 0 10px rgba(224,64,251,.45))}.gs{stroke-dasharray:100;stroke-dashoffset:100}@keyframes drawOn{to{stroke-dashoffset:0}}.goose-melt .gs{animation:drawOn 1.5s ease forwards}.goose-melt .gs:nth-child(1){animation-delay:.2s}.goose-melt .gs:nth-child(2){animation-delay:.5s}.goose-melt .gs:nth-child(3){animation-delay:.35s}.goose-melt .gs:nth-child(4){animation-delay:.6s}.goose-melt .gs:nth-child(5){animation-delay:.75s}.goose-melt{transform-origin:50% 80%;animation:meltDrip 1.8s cubic-bezier(.55,0,.85,.35) 2.7s forwards}@keyframes meltDrip{0%{opacity:1;transform:translateY(0) scaleY(1)}55%{opacity:.85;transform:translateY(5vmin) scaleY(1.1)}to{opacity:0;transform:translateY(11vmin) scaleY(1.2)}}.splash-drip{width:2.2vmin;height:13vmin;margin-left:-1.1vmin;top:40vmin;transform-origin:top center;transform:scaleY(0);opacity:0;background:linear-gradient(to bottom,#f4ecff00,#f4ecffe6);border-radius:0 0 45% 45%;filter:drop-shadow(0 0 6px rgba(224,64,251,.5));animation:dripDown 1.1s ease-in 2.95s forwards,dripFade .6s ease 4.2s forwards}@keyframes dripDown{0%{transform:scaleY(0);opacity:.9}to{transform:scaleY(1);opacity:.9}}@keyframes dripFade{to{opacity:0}}.goose-reform .gs{animation:drawOn 1.5s ease forwards}.goose-reform .gs:nth-child(1){animation-delay:6.6s}.goose-reform .gs:nth-child(2){animation-delay:6.95s}.goose-reform .gs:nth-child(3){animation-delay:6.8s}.goose-reform .gs:nth-child(4){animation-delay:7.15s}.goose-reform .gs:nth-child(5){animation-delay:7.35s}.goose-reform{animation:reformGlow 1.4s ease 7.6s both}@keyframes reformGlow{0%{filter:drop-shadow(0 0 4px rgba(224,64,251,.3))}to{filter:drop-shadow(0 0 22px rgba(224,64,251,.8)) drop-shadow(0 0 40px rgba(196,18,48,.4))}}.splash-puddle{width:30vmin;height:6.5vmin;margin-left:-15vmin;top:51vmin;border-radius:50%;border:2px solid #f4ecff;background:radial-gradient(ellipse at 50% 38%,rgba(244,236,255,.12),transparent 72%);box-shadow:0 0 14px #e040fb73,inset 0 0 10px #e040fb2e;opacity:0;animation:puddleForm 1.6s ease-out 2.9s both,puddleEvap 1.5s ease-in 5s forwards}@keyframes puddleForm{0%{opacity:0;transform:scale(.04)}55%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes puddleEvap{to{opacity:0;transform:scaleX(2.4) scaleY(.12);filter:blur(8px)}}.splash-vapor{width:30vmin;height:28vmin;margin-left:-15vmin;top:20vmin}.splash-vapor span{position:absolute;bottom:0;width:9vmin;height:9vmin;border-radius:50%;background:radial-gradient(circle,rgba(224,64,251,.4),transparent 70%);filter:blur(4px);opacity:0}.splash-vapor span:nth-child(1){left:4vmin;animation:rise 1.8s ease-out 4.7s forwards}.splash-vapor span:nth-child(2){left:12vmin;animation:rise 2s ease-out 4.95s forwards}.splash-vapor span:nth-child(3){left:18vmin;animation:rise 1.9s ease-out 5.2s forwards}.splash-vapor span:nth-child(4){left:9vmin;animation:rise 2.1s ease-out 5.4s forwards}@keyframes rise{0%{opacity:0;transform:translateY(0) scale(.6)}35%{opacity:.55}to{opacity:0;transform:translateY(-22vmin) scale(1.5)}}.splash-cloud{width:44vmin;height:18vmin;margin-left:-22vmin;top:2vmin;opacity:0;animation:cloudIn 1.2s ease 5.3s both,cloudBob 5s ease-in-out 6.5s infinite}.splash-cloud span{position:absolute;bottom:4vmin;background:#2a1838;border-radius:50%;box-shadow:inset 0 -3px 8px #9b1fff59,0 6px 22px #00000080}.splash-cloud span:nth-child(1){width:20vmin;height:20vmin;left:12vmin;bottom:1vmin}.splash-cloud span:nth-child(2){width:15vmin;height:15vmin;left:3vmin}.splash-cloud span:nth-child(3){width:16vmin;height:16vmin;left:26vmin}.splash-cloud span:nth-child(4){width:13vmin;height:13vmin;left:19vmin;bottom:6vmin}.splash-cloud span:nth-child(5){width:40vmin;height:8vmin;left:2vmin;bottom:4vmin;border-radius:4vmin}@keyframes cloudIn{0%{opacity:0;transform:translateY(-6vmin)}to{opacity:1;transform:translateY(0)}}@keyframes cloudBob{0%,to{transform:translate(-1.5vmin)}50%{transform:translate(1.5vmin)}}.splash-rain{width:40vmin;height:36vmin;margin-left:-20vmin;top:14vmin;opacity:0;background-image:repeating-linear-gradient(to bottom,rgba(224,64,251,.55) 0 7px,transparent 7px 26px);background-size:2px 26px;-webkit-mask-image:repeating-linear-gradient(to right,#000 0 2px,transparent 2px 13px);mask-image:repeating-linear-gradient(to right,#000 0 2px,transparent 2px 13px);animation:rainIn .6s ease 6.1s both,rainFall .5s linear 6.1s infinite,rainOut .8s ease 7.9s forwards}@keyframes rainIn{to{opacity:.85}}@keyframes rainOut{to{opacity:0}}@keyframes rainFall{0%{background-position-y:0}to{background-position-y:26px}}@media (prefers-reduced-motion: reduce){.splash{animation:splashFade .5s ease .4s forwards}.splash-stage *,.splash-hint{animation:none!important}.goose-reform .gs{stroke-dashoffset:0}.goose-melt,.splash-puddle,.splash-drip,.splash-vapor,.splash-cloud,.splash-rain{opacity:0}}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-display);-webkit-font-smoothing:antialiased;background-image:radial-gradient(120% 60% at 50% 0%,rgba(196,18,48,.1),transparent 60%),radial-gradient(90% 50% at 80% 20%,rgba(155,31,255,.08),transparent 70%);background-attachment:fixed;min-height:100vh}.app{max-width:720px;margin:0 auto;padding-bottom:64px}.header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#120818d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.wordmark{font-family:var(--font-display);font-weight:700;font-size:.9rem;letter-spacing:3px;color:var(--crimson);text-shadow:var(--glow-crimson)}.avatar{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-mid);background:var(--bg-elevated)}.content{padding:14px 16px}.section-title{font-size:.65rem;font-weight:600;letter-spacing:2.5px;color:var(--crimson);text-shadow:0 0 18px currentColor;margin-bottom:12px}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.masthead-date{font-family:var(--font-mono);font-size:.9rem;color:var(--text-primary)}.masthead-venue{font-family:var(--font-mono);font-size:.9rem;color:var(--violet);text-shadow:var(--glow-violet);margin-top:4px}.masthead-meta{font-family:var(--font-mono);font-size:.76rem;color:var(--text-muted);margin-top:4px}.set-label{font-family:var(--font-display);font-size:.56rem;font-weight:600;letter-spacing:1.5px;color:var(--text-label);margin:14px 0 6px}.song-row{font-family:var(--font-mono);font-size:.9rem;color:var(--text-primary);padding:3px 0}.song-row .cover{color:var(--text-muted);font-size:.76rem}.source-label{font-family:var(--font-mono);font-size:.5rem;color:var(--violet);opacity:.6;margin-top:12px}.state-msg{font-family:var(--font-mono);font-size:.76rem;color:var(--text-dim);padding:24px 0;text-align:center}.state-msg.error{color:var(--crimson)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#120818eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border-mid);max-width:720px;margin:0 auto}.bottom-nav button{flex:1;background:none;border:none;color:var(--text-dim);font-family:var(--font-display);font-size:.54rem;font-weight:500;letter-spacing:1.5px;padding:12px 4px;cursor:pointer;transition:color .2s,text-shadow .2s}.bottom-nav button.active{color:var(--magenta);text-shadow:var(--glow-magenta)}.community-avg{font-family:var(--font-display);font-size:.62rem;letter-spacing:1px;color:var(--amber);text-shadow:var(--glow-amber);margin-top:8px}.song-block{padding:6px 0;border-bottom:1px solid rgba(155,31,255,.08)}.song-block .transition{color:var(--text-muted)}.song-rate{display:flex;align-items:center;gap:10px;margin-top:3px}.stars{display:inline-flex;gap:2px}.star{background:none;border:none;cursor:pointer;font-size:.95rem;line-height:1;color:#ffffff2e;padding:0;transition:color .15s,text-shadow .15s}.star.on{color:var(--crimson);text-shadow:var(--glow-crimson)}.song-comm{font-family:var(--font-mono);font-size:.6rem;color:var(--amber);opacity:.75}.btn{display:block;width:100%;margin-top:10px;padding:12px;font-family:var(--font-display);font-size:.6rem;font-weight:600;letter-spacing:2px;color:var(--text-primary);background:#c412301f;border:1px solid var(--border-mid);border-radius:var(--radius);cursor:pointer;transition:background .2s,box-shadow .2s}.btn:hover{background:#c4123033}.btn:disabled{opacity:.5;cursor:default}.btn-honk{color:var(--white-beam);background:var(--crimson);border-color:var(--crimson);box-shadow:var(--glow-crimson)}.btn-ghost{background:none;border-color:var(--border);color:var(--text-label);letter-spacing:1px;font-weight:400}.field{display:block;width:100%;margin-bottom:10px;padding:10px 12px;font-family:var(--font-mono);font-size:.85rem;color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border-mid);border-radius:var(--radius)}.field::placeholder{color:var(--text-dim)}.field:focus{outline:none;border-color:var(--violet);box-shadow:var(--glow-violet)}.search-row{display:flex;gap:8px;align-items:stretch;margin-bottom:12px}.search-row .field{margin-bottom:0}.search-btn{width:auto;margin-top:0;padding:10px 14px}.results{padding:6px;margin-bottom:12px}.result-row{display:flex;gap:10px;align-items:baseline;width:100%;background:none;border:none;cursor:pointer;text-align:left;padding:8px;border-bottom:1px solid rgba(155,31,255,.08)}.result-row:hover{background:#9b1fff0f}.result-date{font-family:var(--font-mono);font-size:.8rem;color:var(--violet)}.result-venue{font-family:var(--font-mono);font-size:.76rem;color:var(--text-primary)}.latest-tag{font-family:var(--font-display);font-size:.5rem;font-weight:600;letter-spacing:2px;color:var(--text-label);margin-bottom:6px}.data-value{font-family:var(--font-mono);font-size:.9rem;color:var(--text-primary)}.myshow-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid rgba(155,31,255,.08)}.myshow-ratings{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.my-rating{font-family:var(--font-display);font-size:.8rem;color:var(--crimson);text-shadow:var(--glow-crimson)}.import-box{margin-bottom:14px}.import-label{font-family:var(--font-display);font-size:.56rem;font-weight:600;letter-spacing:1.5px;color:var(--text-label);margin-bottom:8px}.import-result{font-family:var(--font-mono);font-size:.7rem;color:var(--amber);margin-top:8px}.goosebumps{margin-top:12px;padding:12px 14px;background:var(--bg-elevated);border:1px solid rgba(224,64,251,.25);border-radius:var(--radius)}.goosebumps-head{font-family:var(--font-display);font-size:.56rem;font-weight:600;letter-spacing:2px;color:var(--magenta);text-shadow:var(--glow-magenta);margin-bottom:8px}.goosebumps-text{font-family:var(--font-mono);font-size:.8rem;line-height:1.5;color:var(--text-primary)}.source-label.amber{color:var(--amber)}
