:root{--bg:#1b1230;--panel:#2a1b4a;--line:#4b3585;--ink:#f4ecff;--dim:#a99bd0;--pink:#ff4fa3;--yellow:#ffd23f;--cyan:#3de8ff;--green:#5dff8a;--font:"Press Start 2P",ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html{color-scheme:dark;scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%;overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100dvh;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:12px;line-height:1.9;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:100% 4px}button{font:inherit;cursor:pointer;border:0;color:#1b1230}.wrap{max-width:560px;margin:0 auto;padding:16px 14px 140px}.wrap.sessw{padding-bottom:16px}header{text-align:center;padding:12px 0 8px}.marquee{position:relative;padding:26px 12px 22px;background:var(--panel);border:4px solid var(--pink);box-shadow:6px 6px #0d0818}.marquee:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:3px dotted var(--yellow);pointer-events:none}h1{font-size:clamp(22px,8vw,38px);margin:0;color:var(--yellow);text-shadow:4px 4px 0 var(--pink);letter-spacing:2px;line-height:1.3}.by{display:block;color:var(--cyan);font-size:clamp(10px,3.4vw,14px);letter-spacing:2px;margin-top:12px;text-shadow:3px 3px 0 #0d0818}.hook{margin:22px 0 0;font-size:clamp(11px,3.4vw,14px);line-height:2.1}.hook em{font-style:normal;color:var(--green)}h2{font-size:12px;color:var(--green);margin:32px 0 12px}h2:before{content:"► ";color:var(--pink)}.box{border:4px solid var(--line);background:var(--panel);box-shadow:6px 6px #0d0818;padding:16px}.stage{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:24px}canvas{width:128px;height:192px;image-rendering:pixelated}.stage b{color:var(--yellow);font-weight:400}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.stat{border:4px solid var(--line);background:var(--panel);box-shadow:4px 4px #0d0818;padding:10px;text-align:center}.stat span{display:block;color:var(--dim);font-size:10px}.stat b{display:block;color:var(--cyan);font-weight:400;font-size:18px;margin-top:4px}.stat.hot b{color:var(--pink)}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal i{height:30px;background:#0d0818;border:2px solid var(--line)}.cal i.part{background:#7a6a2a}.cal i.on{background:var(--green);border-color:var(--green)}.cal i.today{outline:3px solid var(--yellow);outline-offset:1px}.btn{display:block;width:100%;min-height:56px;margin-top:20px;background:var(--pink);padding:16px;font-size:15px;box-shadow:4px 4px #0d0818}.btn:active{transform:translate(2px,2px);box-shadow:2px 2px #0d0818}.btn.alt{background:var(--line);color:var(--ink);font-size:11px;padding:12px;margin-top:12px}.btn.gold{background:var(--yellow)}.row{display:flex;flex-wrap:wrap;gap:12px}.row .btn{margin-top:0;flex:1 1 40%}.row .btn.big{flex:1 1 100%;min-height:72px;font-size:18px}.sub{color:var(--dim);font-size:10px;line-height:2}.set{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;margin-top:12px;min-height:48px}.set select,.set input{font:inherit;font-size:16px;min-height:48px;min-width:96px;background:var(--bg);color:var(--ink);border:3px solid var(--line);padding:8px}.pose{padding:10px 0;border-bottom:2px dashed var(--line)}.pose:last-child{border:0}.pose b{color:var(--yellow);font-weight:400;font-size:11px;display:block}.pose span{color:var(--dim);font-size:10px;line-height:2}.sess{text-align:center;display:flex;flex-direction:column;min-height:calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.sess .stage{margin-top:12px;flex:1;justify-content:center;min-height:0}.sess .stage canvas{height:clamp(96px,20dvh,180px);width:auto;aspect-ratio:2/3}.sess .row{margin-top:12px;padding-bottom:8px}.phase{font-size:11px;letter-spacing:2px;padding:6px 10px;display:inline-block;background:var(--pink);color:#1b1230}.phase.rest{background:var(--cyan)}.phase.ready{background:var(--yellow)}.pname{color:var(--yellow);font-size:clamp(14px,5vw,20px);margin:20px 0 8px;line-height:1.5}.cue{color:var(--dim);font-size:11px;line-height:2.1;min-height:48px}.time{font-size:min(15vw,84px);white-space:nowrap;color:var(--green);margin:14px 0;text-shadow:4px 4px 0 #0d0818;line-height:1}.bar{height:20px;border:4px solid var(--line);background:#0d0818}.bar div{height:100%;background:var(--green);width:0}.dock{position:fixed;left:0;right:0;bottom:0;z-index:5;padding:24px 14px calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(rgba(27,18,48,0),var(--bg) 40%)}.dock .btn{margin:0 auto;max-width:532px}.prog{color:var(--dim);font-size:9px;margin-top:12px}.done-big{font-size:18px;color:var(--yellow);text-shadow:3px 3px 0 var(--pink);margin:20px 0;line-height:1.5}.blink{animation:b 1s steps(2) infinite}@keyframes b{50%{opacity:0}}@media (min-width:600px){body{font-size:13px}}@media (prefers-reduced-motion:reduce){.blink{animation:none}}button:focus-visible,select:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.set input{width:120px;text-align:right}input{-webkit-user-select:text;user-select:text}.vid{display:inline-block;margin-top:4px;padding:8px 0;color:var(--cyan);font-size:10px;text-decoration:none}a.vid:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
