[hidden]{display:none!important}:root{--bg:#2a1d33;--card:#fffaf0;--ink:#1d1a17;--plum:#6a3d7c;--accent:#2a7f86;--red:#c2412d;--gold:#e8b923;--soft:#ece2cd;--green:#2f8a4a;--cell:44px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--st1:#3d2a52;--st2:#1f1530;--glow:#ffd67859}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;margin:0;font:16px/1.35 ui-rounded,Trebuchet MS,system-ui,sans-serif;overflow:hidden}body{touch-action:manipulation;-webkit-user-select:none;user-select:none;background:var(--bg);position:fixed;inset:0}button{font:inherit;color:var(--ink);cursor:pointer;touch-action:manipulation}a{color:var(--ink)}.card{background:var(--card);border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);-webkit-overflow-scrolling:touch;touch-action:pan-y;border-radius:18px;width:min(440px,100vw - 24px);max-height:calc(100dvh - 24px);padding:18px 18px 16px;animation:.35s cubic-bezier(.2,1.4,.4,1) cardIn;position:relative;overflow:auto}@keyframes cardIn{0%{opacity:0;transform:translateY(26px)scale(.94)}}.card.wide{width:min(760px,100vw - 20px)}.card.center{text-align:center}.card h2{margin:0 0 8px;font-size:24px}.card h3{margin:14px 0 6px;font-size:18px}.card .lead{margin:0 0 12px;font-size:16px}.lead.small,.small{font-size:14px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.center{justify-content:center}.row.two>*{flex:1 1 0}.col{flex-direction:column;align-items:stretch;gap:9px;display:flex}.screen button,.hud button,.coach button,.tools button,.tray button{border:2.5px solid var(--ink);background:var(--card);min-height:46px;box-shadow:2px 2px 0 var(--ink);border-radius:999px;padding:8px 16px;font-size:16px;font-weight:800;transition:transform .1s,background .2s}.screen button:active,.hud button:active,.coach button:active,.tools button:active,.tray button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(1px,1px)}.screen button:disabled,.tools button:disabled{opacity:.45;cursor:default}button.primary{background:var(--plum);color:#fff}button.big{min-height:58px;font-size:22px}button.daily{background:#fdf0c4}button small{opacity:.8;font-size:14px;font-weight:700}.closex{z-index:2;width:46px;height:46px;position:absolute;top:10px;right:10px;border-radius:50%!important;padding:0!important}.sheethead{min-height:46px;padding-right:54px;position:relative}.sheethead .closex{top:-4px;right:-4px}.bar2{border:2px solid var(--ink);background:var(--soft);border-radius:8px;height:12px;overflow:hidden}.bar2 i{background:linear-gradient(90deg, var(--plum), var(--accent));width:0;height:100%;transition:width .3s;display:block}.screen{z-index:30;background:#180e1eb8;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.screen.clear{background:0 0}.round{border:2.5px solid var(--ink);background:var(--card);width:46px;height:46px;box-shadow:2px 2px 0 var(--ink);place-items:center;font-size:18px;font-weight:900;display:grid;border-radius:50%!important;padding:0!important}.guard{z-index:3;background:0 0;width:34px;position:fixed}.stage{z-index:1;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.stage .backdrop{background:radial-gradient(120% 90% at 50% 105%, var(--st1) 0%, var(--st2) 70%);transition:background .6s;position:absolute;inset:0}.stage .backdrop:after{content:"";background:repeating-linear-gradient(90deg,#ffffff09 0 22px,#0000000d 22px 44px);position:absolute;inset:0}.stage .poster{object-fit:contain;transform-origin:50% 0;background:#fffdf6;border-radius:3px;padding:6px;animation:7s ease-in-out infinite alternate sway;position:absolute;transform:rotate(-2deg);box-shadow:0 6px 16px #00000073}@keyframes sway{0%{rotate:-1.5deg}to{rotate:1.5deg}}.stage .lights{pointer-events:none;height:100%;position:absolute;top:0;left:0;right:0}.stage .beam{background:linear-gradient(180deg, var(--glow), #ffd67800 85%);clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);transform-origin:50% 0;width:34%;height:120%;animation:6s ease-in-out infinite alternate beam;position:absolute;top:-10%}@keyframes beam{0%{transform:rotate(-14deg)}to{transform:rotate(14deg)}}.stage .lamp{object-fit:contain;width:30px;height:30px;animation:2.4s ease-in-out infinite alternate twinkle;position:absolute;top:2px}@keyframes twinkle{0%{transform:scale(.85)rotate(-8deg)}to{transform:scale(1.1)rotate(8deg)}}.stage .bunting{pointer-events:none;height:40px;position:absolute;top:0;left:0;right:0}.stage .bunting img{object-fit:contain;transform-origin:50% 0;width:22px;height:22px;animation:2.2s ease-in-out infinite alternate swing;position:absolute;top:4px}@keyframes swing{0%{transform:rotate(-12deg)}to{transform:rotate(12deg)}}.stage .bunting:before{content:"";border-bottom:2px solid #fff0d299;border-radius:0 0 50% 50%;height:18px;position:absolute;top:2px;left:-2%;right:-2%}.stage .curtain{background:repeating-linear-gradient(90deg,#8c2335 0 10px,#6d1a29 10px 20px);width:9%;position:absolute;top:0;bottom:0;box-shadow:inset -6px 0 10px #00000059}.stage .curtain.left{border-radius:0 0 60%;left:0}.stage .curtain.right{border-radius:0 0 0 60%;right:0;transform:scaleX(-1)}.stage .floor{background:linear-gradient(#7a5233,#4e331f);border-top:3px solid #2b1b10;height:22%;position:absolute;bottom:0;left:0;right:0}.stage .floor:after{content:"";background:repeating-linear-gradient(90deg,#0000001f 0 2px,#0000 2px 48px);position:absolute;inset:0}.stage .lineup{justify-content:center;align-items:flex-end;gap:2%;height:70%;display:flex;position:absolute;bottom:12%;left:10%;right:10%}.stage .lineup .who{flex:0 auto;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.stage .lineup .who img{object-fit:contain;transform-origin:50% 100%;filter:drop-shadow(0 6px 4px #00000059);max-width:100%;height:100%}.stage .lineup .who.idle img{animation:2.6s ease-in-out infinite alternate idle}@keyframes idle{0%{transform:scale(1)}to{transform:scale(1.02,.975)}}.stage .lineup .who .tag{white-space:nowrap;color:#fff6dc;text-shadow:1px 1px #000;font-size:14px;font-weight:800;position:absolute;bottom:-2px;left:50%;transform:translate(-50%,100%)}.stage .crowd{pointer-events:none;height:26%;position:absolute;bottom:-6%;left:0;right:0}.stage .crowd img{object-fit:contain;transform-origin:50% 100%;filter:drop-shadow(0 -2px 3px #0006);position:absolute;bottom:0}body.strip:not(.wide) .stage .crowd,body.strip .stage .poster.titleonly{display:none}body.strip.wide .stage .crowd{height:22%;bottom:-4%}body.strip .stage .curtain{width:7%}.cornermute{top:calc(10px + var(--safe-t));z-index:31;position:fixed;right:10px}#title{background:linear-gradient(#180e1e00 0 30%,#180e1ecc 55%,#120a18f5);align-items:end}.titlewrap{text-align:center;width:min(560px,100vw - 24px);margin-bottom:max(10px, var(--safe-b));flex-direction:column;align-items:center;gap:8px;display:flex}.logo{justify-content:center;align-items:baseline;gap:12px;margin:0;line-height:.95;display:flex}.logo .l1{color:#fff3d0;text-shadow:3px 3px #1d1a17;font-size:clamp(40px,12vw,76px);animation:.6s ease-in-out infinite alternate bop;display:inline-block;transform:rotate(-4deg)}.logo .l2{color:#ffd98a;text-shadow:3px 3px #1d1a17,0 0 18px #ffd68c66;font-size:clamp(40px,12vw,76px);animation:.6s ease-in-out .3s infinite alternate bop;display:inline-block;transform:rotate(3deg)}@keyframes bop{0%{translate:0}to{translate:0 -6px}}.titlewrap .sub{color:#fff3d0;text-shadow:1px 1px #000;max-width:460px;margin:0;font-size:15px}.titlewrap .col{width:min(380px,100%)}.bestline{color:#fff3d0;min-height:18px;margin:2px 0 0;font-size:14px}.credit,.backlink{color:#fff3d0;align-items:center;min-height:44px;padding:0 10px;font-size:14px;display:inline-flex}.credit-foot{right:8px;bottom:calc(2px + var(--safe-b));z-index:2;font-size:14px;position:fixed}.credit-foot a{color:#fff3d0;align-items:center;min-height:44px;padding:0 6px;display:inline-flex}body.playing .credit-foot,body.ontitle .credit-foot{display:none}.hud{height:calc(52px + var(--safe-t));padding:calc(3px + var(--safe-t)) 8px 3px;z-index:10;color:#fff3d0;background:linear-gradient(#120a18eb,#120a18bf);align-items:center;gap:8px;display:flex;position:fixed;top:0;left:0;right:0}.hudmid{text-align:center;flex:1;min-width:0}.hudmid .lbl{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:900;overflow:hidden}.hudmid .sub{opacity:.9;white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.coach{z-index:9;background:var(--card);border:2.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:14px;align-items:center;gap:8px;padding:6px 10px;font-size:15px;display:flex;position:fixed;overflow:hidden}.coach .ctext{flex:auto;min-width:0;max-height:100%;line-height:1.25;overflow:auto}.coach .cbtns{flex:none;gap:6px;display:flex}.coach .cbtns button{min-height:44px;padding:4px 12px;font-size:15px}.coach.wide{flex-direction:column;align-items:stretch;overflow:auto}.coach.wide .cbtns{flex-wrap:wrap}.coach .goals{gap:2px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.coach .goals li{align-items:baseline;gap:6px;display:flex}.coach .goals li b{text-align:center;flex:none;width:18px}.coach .goals li.ok{color:var(--green);font-weight:800}.coach.flash{animation:.5s flash}@keyframes flash{30%{background:#fff0b8;transform:scale(1.02)}}.coach.compose{flex-direction:column;align-items:stretch;gap:3px}.coach.compose .ctext,.coach.compose .cbtns{display:none}.gridwrap{z-index:5;position:fixed}.colhead{height:24px;display:grid}.colhead div{color:#fff3d0;border-radius:6px 6px 0 0;place-items:center;font-size:14px;font-weight:900;display:grid;position:relative}.colhead div.beat:before{content:"";background:#fff3d066;border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;top:4px;left:50%}.colhead div.ok{color:#7be08f}.colhead div.no{color:#ff8f7d}.colhead div.gap{color:#ffd98a}.colhead div.ok:before,.colhead div.no:before,.colhead div.gap:before{display:none}.colhead div.now{background:#ffd67859}.grid{border:3px solid var(--ink);touch-action:none;background:#fbf3e2;border-radius:10px;display:grid;overflow:hidden;box-shadow:4px 4px #00000059}.cell{width:var(--cell);height:var(--cell);background:var(--rowc,#fff);cursor:pointer;border:1px solid #1d1a171f;border-top:0;border-left:0;outline:none;place-items:center;margin:0;padding:0;display:grid;position:relative}.cell.bar2l{border-left:2px solid #1d1a1773}.cell.beat{background-image:linear-gradient(#1d1a170b,#1d1a170b)}.cell.home:after{content:"⌂";opacity:.35;pointer-events:none;font-size:14px;line-height:1;position:absolute;top:0;left:2px}.cell.home.notfirst:after{display:none}.cell.shut{cursor:not-allowed;background:repeating-linear-gradient(135deg,#d9cfbd 0 6px,#cfc4b0 6px 12px)}.cell.gapc{box-shadow:inset 0 0 0 2px #e8b923e6}.cell.cursor{box-shadow:inset 0 0 0 3px var(--accent)}.cell img{object-fit:contain;transform-origin:50% 90%;pointer-events:none;filter:drop-shadow(0 2px 1px #00000040);width:92%;height:92%}.cell.locked img{opacity:.9}.cell.locked:before{content:"";opacity:.45;background:#1d1a17;border-radius:50%;width:8px;height:8px;position:absolute;top:3px;right:3px}.cell.ghost img{opacity:.45}.cell.ghost{box-shadow:inset 0 0 0 3px var(--gold);animation:1s ease-in-out infinite alternate pulse}.cell.bad{box-shadow:inset 0 0 0 3px var(--red);animation:1s ease-in-out infinite alternate pulse}.cell.glow{box-shadow:inset 0 0 0 4px var(--gold), 0 0 12px var(--gold);z-index:2;animation:.7s ease-in-out infinite alternate pulse}@keyframes pulse{0%{outline:0 solid #0000}to{outline-offset:-3px;outline:3px solid #e8b92380}}.cell.dragfrom img{opacity:.25}.cell.dropok{box-shadow:inset 0 0 0 3px var(--green)}.cell.dropno{box-shadow:inset 0 0 0 3px var(--red)}.playhead{width:var(--cell);pointer-events:none;z-index:3;background:#ffd67847;border-left:2px solid #e8b923cc;border-right:2px solid #e8b923cc;position:absolute;top:24px}.dragghost{z-index:40;pointer-events:none;object-fit:contain;filter:drop-shadow(0 8px 6px #0006);width:64px;height:64px;position:fixed;transform:translate(-50%,-50%)scale(1.15)}.tray{z-index:8;align-items:center;gap:6px;display:flex;position:fixed}.traylist{scrollbar-width:thin;touch-action:pan-x;flex:auto;gap:6px;min-width:0;padding:4px 2px;display:flex;overflow:auto hidden}.tray.wide{flex-direction:column;align-items:stretch}.tray.wide .traylist{touch-action:pan-y;flex-wrap:wrap;place-content:flex-start center;overflow:auto}.tray .pg{flex:none;width:44px;min-width:44px;height:52px;font-size:16px;border-radius:12px!important;padding:0!important}.tray .pg.on{background:#fdf0c4}.who-btn{background:#fffaf0;flex:none;place-items:center;width:58px;height:58px;display:grid;position:relative;border-radius:14px!important;min-height:58px!important;padding:2px!important}.who-btn img{object-fit:contain;pointer-events:none;width:50px;height:50px}.who-btn.sel{background:#fdf0c4;transform:translateY(-2px);box-shadow:0 0 0 3px var(--gold), 2px 2px 0 var(--ink)!important}.who-btn.glow{animation:.7s ease-in-out infinite alternate pulse;box-shadow:0 0 0 4px var(--gold), 0 0 14px var(--gold)!important}.tools{z-index:8;justify-content:center;gap:6px;display:flex;position:fixed}.tools button{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;min-width:44px;max-width:110px;height:52px;font-size:14px;line-height:1.05;display:flex;border-radius:14px!important;padding:2px 4px!important}.tools button .i{font-size:18px}.tools button.on{background:#fdf0c4}.tools button.go{background:var(--plum);color:#fff}.tools button.glow{animation:.7s ease-in-out infinite alternate pulse;box-shadow:0 0 0 4px var(--gold), 0 0 14px var(--gold)!important}.toast{left:50%;top:calc(60px + var(--safe-t));z-index:25;background:var(--ink);color:#fff3d0;text-align:center;pointer-events:none;border-radius:12px;max-width:calc(100vw - 90px);padding:8px 14px;font-size:15px;font-weight:800;animation:.3s toastIn;position:fixed;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-10px)}}.tabs{flex-wrap:wrap;gap:6px;margin:4px 0 10px;display:flex}.tabs button{min-height:44px;padding:6px 12px;font-size:15px}.tabs button[aria-selected=true]{background:var(--plum);color:#fff}.giggrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.gig{text-align:left;grid-template-columns:48px 1fr;align-items:center;gap:6px;display:grid;border-radius:16px!important;min-height:92px!important;padding:8px!important}.gig img{object-fit:contain;width:48px;height:48px}.gig b{font-size:15px;display:block}.gig span{opacity:.85;font-size:14px;font-weight:700;display:block}.gig .st{color:#b8860b;letter-spacing:1px}.gig.lock{opacity:.55}.gig.next{background:#fdf0c4}.band{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.mem{border:2px solid var(--ink);text-align:center;background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:8px;font-size:14px;display:flex}.mem img{object-fit:contain;width:84px;height:84px}.mem b{font-size:15px}.mem .v{color:var(--plum);font-weight:800}.mem button{min-height:44px;padding:4px 12px;font-size:14px}.mem a{font-size:14px;font-weight:800}.pics{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.pic{border:2px solid var(--ink);background:#fff;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:6px;font-size:14px;display:flex;min-height:140px!important}.pic img{object-fit:contain;width:100%;height:100px}.pic.lockd{opacity:.6;justify-content:center}.recs{grid-template-columns:1fr auto;gap:4px 16px;font-size:15px;display:grid}.howpage{min-height:200px}.howpage h3{font-size:20px}.howpage p{font-size:16px}.howpage .pics2{flex-wrap:wrap;justify-content:center;gap:8px;margin:8px 0;display:flex}.howpage .pics2 figure{flex-direction:column;align-items:center;width:92px;margin:0;font-size:14px;display:flex}.howpage .pics2 img{object-fit:contain;width:64px;height:64px}.dots{gap:6px;display:inline-flex}.dots i{background:#cfc4b0;border-radius:50%;width:9px;height:9px}.dots i.on{background:var(--plum)}.stars{justify-content:center;gap:10px;min-height:64px;margin:6px 0;display:flex}.stars .s{place-items:center;width:60px;height:60px;display:grid;position:relative}.stars .s img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.stars .s.off img{opacity:.18}.stars .s.pop{animation:.5s cubic-bezier(.2,1.8,.4,1) both starpop}@keyframes starpop{0%{transform:scale(.2)rotate(-40deg)}}.why{margin:2px 0;font-size:14px}.castrow{flex-wrap:wrap;justify-content:center;gap:10px;margin:8px 0;display:flex}.castrow figure{flex-direction:column;align-items:center;width:86px;margin:0;font-size:14px;display:flex}.castrow img{object-fit:contain;width:64px;height:64px;animation:.5s cubic-bezier(.2,1.6,.4,1) both hopin}@keyframes hopin{0%{opacity:0;transform:translateY(20px)scale(.5)}}.castrow .new{color:var(--red);font-weight:900}.spot{border:2px dashed var(--ink);text-align:left;background:#fff7e4;border-radius:14px;justify-content:center;align-items:center;gap:12px;max-width:520px;margin:10px auto;padding:10px;display:flex}.spot img{object-fit:contain;flex:none;width:96px;height:96px}.spot .t{flex-direction:column;gap:4px;font-size:15px;display:flex}.spot a{font-weight:800}.share{border:2px solid var(--ink);white-space:pre-wrap;text-align:left;background:#fff;border-radius:10px;margin:8px auto;padding:10px;font-size:16px;display:inline-block}.codebox{border:2px solid var(--ink);word-break:break-all;-webkit-user-select:text;user-select:text;background:#fff;border-radius:10px;padding:10px;font:800 18px/1.3 ui-monospace,Menlo,monospace}.sheet h3{margin:12px 0 6px}.slots{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;display:grid}.slot{border:2px solid var(--ink);background:#fff;border-radius:12px;flex-direction:column;gap:6px;padding:8px;font-size:14px;display:flex}.slot .btns{gap:6px;display:flex}.slot .btns button{flex:1;min-height:44px;padding:4px 8px;font-size:14px}.codein{border:2px solid var(--ink);-webkit-user-select:text;user-select:text;border-radius:10px;width:100%;min-height:48px;padding:8px;font:700 17px ui-monospace,Menlo,monospace}.err{color:var(--red);min-height:20px;font-size:15px;font-weight:800}.opt{flex-wrap:wrap;gap:6px;margin:4px 0 8px;display:flex}.opt button{min-height:44px;padding:4px 12px;font-size:15px}.opt button.on{background:var(--plum);color:#fff}input[type=range]{width:100%;height:44px}.viewer img{object-fit:contain;max-width:100%;max-height:52vh}body.wide #title{background:linear-gradient(90deg,#180e1e00 0 45%,#180e1ec7 62%,#120a18f0);place-items:center end;padding-right:5vw}body.wide .titlewrap{width:min(460px,42vw);margin-bottom:0}@media (width<=480px){.card{padding-left:24px;padding-right:24px}}@media (width<=620px){.titlewrap{width:100%;padding:0 34px}.titlewrap .sub{font-size:14px}}
