:root{--pink: #ff7ac0;--hot: #ff5fae;--cyan: #6fe3ff;--gold: #ffc861;--yellow: #fff27a;--ink: #140a2c;--text: #fff0f8;--muted: #c9b6ea;--jp: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;--pop: "Mochiy Pop One", "Zen Maru Gothic", sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#07061c;color:var(--text);font-family:var(--jp)}#stage{position:fixed;inset:0}#stage canvas{display:block}.hidden{display:none!important}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:radial-gradient(ellipse at center,#140a2c40,#07061c99);overflow-y:auto}.panel{width:min(560px,100%);padding:36px 36px 28px;text-align:center;background:linear-gradient(160deg,#281250b8,#140a2cd1);border:1px solid rgba(255,122,192,.45);border-radius:28px;box-shadow:0 0 0 1px #ffffff0d inset,0 30px 80px #00000080;backdrop-filter:blur(14px);animation:rise .5s cubic-bezier(.2,.9,.3,1.2)}.panel.small{width:min(360px,100%)}.panel.wide{width:min(760px,100%)}@keyframes rise{0%{transform:translateY(24px) scale(.96);opacity:0}}.kicker{font-weight:900;letter-spacing:.4em;color:var(--pink);font-size:14px;margin-bottom:6px}h1{font-family:var(--pop);font-weight:400;margin:0;font-size:clamp(56px,12vw,92px);line-height:1;background:linear-gradient(180deg,#fff 20%,#ffc1e3 55%,#ff5fae);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 0 #5a1d6e)}h1 span{color:var(--yellow);-webkit-text-fill-color:var(--yellow)}h2{font-family:var(--pop);font-weight:400;margin:0 0 4px;font-size:40px;text-shadow:0 3px 0 #5a1d6e}.tag{color:var(--muted);margin:10px 0 24px;font-weight:700}.section-title{font-size:13px;letter-spacing:.2em;color:var(--muted);margin:18px 0 10px;font-weight:700}.section-title.miss{color:#ff8fa8}.modes{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.mode{cursor:pointer;padding:14px 6px 10px;border-radius:16px;border:2px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--text);font-family:var(--jp);transition:all .15s}.mode b{display:block;font-size:22px;font-weight:900}.mode small{color:var(--muted);font-size:12px;font-weight:700}.mode:hover{transform:translateY(-2px);border-color:#ff7ac099}.mode.active{border-color:var(--c, var(--pink));background:color-mix(in srgb,var(--c, var(--pink)) 18%,transparent)}.sources{display:grid;grid-template-columns:1fr 1fr;gap:10px}.source{cursor:pointer;padding:10px 6px 8px;border-radius:14px;border:2px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--text);font-family:var(--jp);transition:all .15s}.source b{display:block;font-size:17px;font-weight:900}.source small{color:var(--muted);font-size:12px;font-weight:700}.source:hover{border-color:#ff7ac099}.source.active{border-color:var(--pink);background:#ff7ac024}.mm-panel{margin-top:10px;text-align:left}.mm-row{display:flex;gap:8px}.mm-row input,.mm-row select{font-family:var(--jp);font-weight:700;font-size:14px;color:var(--text);padding:10px 12px;border-radius:12px;background:#0000004d;border:1px solid rgba(255,255,255,.2);outline:none}.mm-row input{flex:1;min-width:0}.mm-row input:focus,.mm-row select:focus{border-color:var(--pink)}.mm-row select option{background:#1a1040}.mm-hint{font-size:12px;color:var(--muted);margin-top:6px;font-weight:700}.mm-hint a{color:var(--pink)}.mm-status{font-size:13px;margin-top:6px;font-weight:700;color:var(--yellow);min-height:18px}.mm-status.error{color:#ff8fa8}.btn:disabled{opacity:.6;cursor:wait;transform:none}@media(max-width:520px){.modes{grid-template-columns:repeat(2,1fr)}.panel{padding:28px 18px 22px}}.toggles{display:flex;justify-content:center;gap:22px;margin:22px 0 6px;flex-wrap:wrap}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:700;color:var(--text)}.toggle input{display:none}.toggle span{width:40px;height:22px;border-radius:99px;background:#ffffff26;position:relative;transition:.2s}.toggle span:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s}.toggle input:checked+span{background:var(--hot)}.toggle input:checked+span:after{left:21px}.btn{display:block;width:100%;margin-top:14px;padding:14px 20px;border-radius:16px;cursor:pointer;font-family:var(--jp);font-weight:900;font-size:18px;color:var(--text);background:#ffffff0f;border:1px solid rgba(255,255,255,.18);transition:all .15s}.btn:hover{transform:translateY(-2px);background:#ffffff1f}.btn.primary{background:linear-gradient(135deg,#e94d9c,#a64de0);border:none;box-shadow:0 6px 18px #00000059}.btn.primary:hover{filter:brightness(1.08)}.row{display:flex;gap:12px}.row .btn{flex:1}.help{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-top:18px;color:var(--muted);font-size:13px;font-weight:700}kbd{font-family:var(--jp);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-bottom-width:3px;border-radius:6px;padding:1px 6px;color:var(--text)}.note{margin-top:14px;font-size:12px;color:#ffb3c6}#hud{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:16px 22px;pointer-events:none}.label{font-size:12px;letter-spacing:.25em;color:var(--muted);font-weight:700}.value{font-family:var(--pop);font-size:30px;text-shadow:0 2px 0 #3a1450}.hud-center{text-align:center}.wave{font-weight:900;font-size:20px;color:var(--yellow);text-shadow:0 2px 0 #3a1450}.combo{font-family:var(--pop);font-size:18px;color:var(--pink);min-height:26px;transition:transform .08s}.combo.bump{transform:scale(1.18)}.hud-right{text-align:right}.lives{font-size:24px;letter-spacing:4px;color:var(--pink)}#log{position:fixed;left:16px;bottom:16px;width:250px;pointer-events:none;display:flex;flex-direction:column-reverse;gap:6px}.log-item{padding:8px 12px;border-radius:12px;background:#120824e0;border-left:3px solid var(--c);backdrop-filter:blur(6px);animation:slidein .35s cubic-bezier(.2,.9,.3,1.2)}.log-item:nth-child(n+4){opacity:.55}.log-item .jp{font-weight:900;font-size:18px}.log-item .jp small{font-weight:700;color:var(--muted);font-size:12px;margin-left:6px}.log-item .en{color:var(--yellow);font-weight:700;font-size:13px}@keyframes slidein{0%{transform:translate(-30px);opacity:0}}@media(max-width:760px){#log{display:none}}.toast{position:fixed;left:50%;bottom:140px;transform:translate(-50%);padding:12px 20px;border-radius:14px;background:#ff3355e0;font-weight:700;box-shadow:0 0 30px #ff335580;text-align:center;max-width:calc(100% - 32px)}#hurt-flash{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 160px #ff1e46e6;opacity:0;transition:opacity .5s}#hurt-flash.on{opacity:1;transition:none}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 4px}.stat{padding:12px 6px;border-radius:14px;background:#ffffff0d}.stat b{display:block;font-family:var(--pop);font-weight:400;font-size:26px;color:var(--yellow)}.stat span{font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.1em}.wordgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-height:180px;overflow-y:auto;padding:2px}.chip{padding:6px 12px;border-radius:99px;background:#ffffff0f;border:1px solid var(--c);font-size:14px;font-weight:700;cursor:pointer}.chip:hover{background:#ffffff24}.chip small{color:var(--muted);margin-left:6px}.empty{color:var(--muted);font-size:13px}@media(max-width:520px){.stats{grid-template-columns:repeat(2,1fr)}}#loading{position:fixed;inset:0;display:grid;place-items:center;font-size:22px;font-weight:900;color:var(--pink);background:#07061c}
