:root{--bg:#14161b;--surface:#20232b;--surface-2:#2b2f39;--text:#ece8e1;--muted:#8f939c;--accent:#f2c35b;--flag-border:#ffffff8c;--tap:64px;--gutter:16px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;margin:0;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif}body{min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:none;padding:0}button:disabled{cursor:default}button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.screen{width:100%;max-width:430px;min-height:100dvh;padding:max(var(--gutter), env(safe-area-inset-top)) max(var(--gutter), env(safe-area-inset-right)) max(var(--gutter), env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));flex-direction:column;gap:20px;margin:0 auto;animation:.25s ease-out enter;display:flex}@keyframes enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;display:flex}.bottom{min-height:var(--tap);flex-direction:column;align-items:stretch;gap:12px;display:flex}.title{text-align:center;margin:8px 0 0;font-size:1.5rem;font-weight:700}.hint{color:var(--muted);text-align:center;margin:0}.btn{min-height:var(--tap);background:var(--surface-2);border-radius:18px;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:1.15rem;font-weight:700;transition:transform .1s,opacity .2s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4}.btn.primary{background:var(--accent);color:#1b1606}.btn.small{min-height:var(--tap);padding:0 16px;font-size:1rem}.btn .icon{font-size:1.2em;line-height:1}.btn.big{border-radius:24px;min-height:96px;padding:0 40px;font-size:1.5rem}.flags{min-height:calc(var(--rows,1) * var(--tap) + (var(--rows,1) - 1) * 12px);max-height:calc(var(--rows,1) * 132px + (var(--rows,1) - 1) * 12px);flex:auto;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:12px;margin-block:auto;display:grid}.flag{min-height:var(--tap);border:3px solid var(--flag-border);border-radius:16px;transition:transform .12s,opacity .25s,box-shadow .25s;position:relative;box-shadow:inset 0 -8px #0000002e}.flag:active:not(:disabled){transform:scale(.96)}.flag.dim{opacity:.3}.flag.glow{border-color:#fff;animation:.9s ease-in-out infinite alternate glow;box-shadow:0 0 0 4px #ffffff59,0 0 22px #ffffff73}.flag.mark:after{content:"✓";color:#fff;text-align:center;background:#0000008c;border-radius:50%;width:28px;height:28px;font-size:16px;line-height:28px;position:absolute;top:6px;right:8px}@keyframes glow{0%{transform:scale(1)}to{transform:scale(1.04)}}.start .logo{flex:1;justify-content:center;align-items:center;gap:14px;display:flex}.start .logo span{border:3px solid var(--flag-border);border-radius:14px;width:64px;height:92px}.loading{flex-direction:column;gap:10px;display:flex}.loading .bar{background:var(--surface-2);border-radius:6px;height:12px;overflow:hidden}.loading .fill{background:var(--accent);height:100%;transition:width .2s}.slots-menu{justify-content:space-between;gap:12px;margin:24px 0 0;padding:0;list-style:none;display:flex}.menu-slot{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.menu-slot .disc{background:var(--surface);border:3px solid var(--surface-2);width:72px;height:72px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;display:flex}.menu-slot.now .disc{border-color:var(--accent);color:var(--text)}.menu-slot.done .disc{background:var(--surface-2);border-color:var(--surface-2);color:var(--accent)}.play{background:var(--accent);color:#1b1606;border-radius:50%;width:152px;height:152px;padding-left:10px;font-size:64px;line-height:1;transition:transform .1s;box-shadow:0 8px 24px #00000059}.play:active{transform:scale(.96)}.done-note{flex-direction:column;align-items:center;gap:12px;margin:0;font-size:1.3rem;font-weight:700;display:flex}.big-icon{font-size:64px;line-height:1}.stars{gap:2px;font-size:1.1rem;line-height:1;display:inline-flex}.star{color:var(--surface-2)}.star.on{color:var(--accent)}.stars.big{gap:8px;font-size:64px}.dots{flex-wrap:wrap;justify-content:center;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.dot{border:2px solid var(--surface-2);border-radius:50%;width:14px;height:14px}.dot.done{background:var(--muted);border-color:var(--muted)}.dot.now{border-color:var(--accent);background:var(--accent)}.screen.stage{height:100dvh}.stage-body{flex-direction:column;flex:1;min-height:0;margin-inline:-12px;padding:12px;display:flex;overflow-y:auto}.rule{flex-direction:column;gap:20px;margin-block:auto;display:flex}.rule.sequence{flex:auto;justify-content:center}.slots{grid-template-columns:1fr 1fr auto;align-items:stretch;gap:12px;display:grid}.slot{min-height:var(--tap);border:3px dashed var(--surface-2);color:var(--muted);border-radius:14px;justify-content:center;align-items:center;font-size:1.6rem;transition:box-shadow .2s;display:flex}.slot.filled{border-style:solid;border-color:var(--flag-border)}.slot.lit{box-shadow:0 0 0 4px #ffffff80}.slot.reveal{border-color:#fff}.rule.odd{flex-direction:row;justify-content:space-between;gap:12px}.round{aspect-ratio:1;max-width:112px;min-height:var(--tap);background:var(--surface);border:3px solid var(--surface-2);border-radius:50%;flex:1;font-size:2rem;font-weight:700;transition:transform .2s,background-color .3s,border-color .2s,opacity .25s}.round.lit{border-color:var(--accent);background-color:var(--surface-2);transform:scale(1.08)}.round.odd-answer{color:#fff;text-shadow:0 1px 3px #000000b3;border-color:#fff;box-shadow:0 0 0 4px #ffffff59,0 0 22px #ffffff73}.round.dim{opacity:.45}.rule.cards{grid-template-columns:1fr 1fr;gap:14px;display:grid}.card{aspect-ratio:3/4;max-height:22dvh;min-height:var(--tap);background:repeating-linear-gradient(45deg, var(--surface) 0 10px, var(--surface-2) 10px 20px);border:3px solid var(--surface-2);border-radius:14px;transition:background-color .25s,transform .2s}.rule.cards.n4 .card{max-height:30dvh}.rule.cards.n6{grid-template-columns:repeat(3,1fr)}.card.up{border-color:var(--flag-border)}.card.matched{opacity:.85}.card:disabled{cursor:default}.replay{width:100%}.score{color:var(--muted);margin:0;font-size:1.2rem}.gift{font-size:112px;line-height:1;animation:.6s ease-out enter}.tier-up{background:var(--surface);border-radius:14px;margin:0;padding:14px 18px;font-size:1.15rem;font-weight:700}.reward .stars{font-size:1.4rem}.item-icon{border-radius:50%;justify-content:center;align-items:center;line-height:1;display:inline-flex}.item-icon.lap{box-shadow:0 0 0 2px var(--accent), 0 0 8px #f2c35b73;background:#f2c35b24}.home .bottom .btn:not(.primary){background:var(--surface)}.screen.calendar{gap:14px}.cal-stats{justify-content:center;gap:28px;margin-top:4px;font-size:1.5rem;font-weight:700;display:flex}.cal-stats .stat{align-items:center;gap:8px;display:inline-flex}.cal-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.cal-nav .month{margin:0;font-size:1.2rem;font-weight:700}.arrow{width:var(--tap);background:var(--surface);border-radius:16px;height:56px;font-size:2rem;line-height:1;transition:opacity .2s,transform .1s}.arrow:active:not(:disabled){transform:scale(.95)}.arrow:disabled{opacity:.25}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.weekday{color:var(--muted);text-align:center;padding-bottom:2px;font-size:.8rem}.cell{aspect-ratio:1;background:var(--surface);min-height:44px;color:var(--text);border:2px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;font-size:.95rem;transition:border-color .2s,background-color .2s;display:flex;position:relative}.cell.empty{background:0 0}.cell.done{background:var(--surface-2)}.cell.future{opacity:.35}.cell.today{border-color:var(--accent)}.cell.selected{background:#3a3f4b;box-shadow:inset 0 0 0 2px #ffffff59}.cell .num{line-height:1}.part-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;bottom:6px}.cal-summary{min-height:84px}.sum-date{color:var(--muted);text-align:center;margin:0 0 8px;font-weight:700}.sum-list{background:var(--surface);border-radius:16px;grid-template-columns:repeat(4,1fr);gap:6px;margin:0;padding:10px 6px;display:grid}.sum-list>div{flex-direction:column;align-items:center;gap:4px;display:flex}.sum-list dt{font-size:1.1rem;line-height:1}.sum-list dd{margin:0;font-size:1.1rem;font-weight:700}.sum-star{color:var(--accent)}.calendar .bottom{margin-top:auto}.credits-link{min-height:44px;color:var(--muted);align-self:center;padding:0 16px;font-size:.85rem;text-decoration:underline}.overlay{z-index:10;padding:max(var(--gutter), env(safe-area-inset-top)) max(var(--gutter), env(safe-area-inset-right)) max(var(--gutter), env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));background:#08090cb8;justify-content:center;align-items:center;animation:.2s ease-out fade;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border-radius:20px;flex-direction:column;gap:16px;width:100%;max-width:398px;max-height:100%;padding:20px;display:flex}.credits-text{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:var(--text);margin:0;font-size:.9rem;line-height:1.6;overflow-y:auto}@keyframes fade{0%{opacity:0}to{opacity:1}}.more-kinds{flex-wrap:wrap;justify-content:center;gap:16px;margin:0;padding:0;list-style:none;display:flex}.kind{background:var(--surface);border:3px solid var(--surface-2);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:112px;height:112px;transition:transform .1s,border-color .2s;display:flex}.kind:active{border-color:var(--accent);transform:scale(.96)}.kind-icon{font-size:40px;line-height:1}.kind-label{color:var(--muted);font-size:.8rem;font-weight:700}:root{--tabbar:62px}.shell .screen{padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom) + var(--gutter) + 10px)}.tabbar{z-index:5;background:var(--surface);padding:0 max(4px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(4px, env(safe-area-inset-left));border-top:1px solid #ffffff14;position:fixed;bottom:0;left:0;right:0}.tabbar-inner{max-width:430px;height:var(--tabbar);grid-template-columns:repeat(5,1fr);align-items:end;margin:0 auto;display:grid}.tab{height:var(--tabbar);color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.tab-icon{filter:grayscale(.7);opacity:.75;font-size:1.35rem;line-height:1}.tab-label{white-space:nowrap;font-size:.62rem;font-weight:700}.tab.on{color:var(--accent)}.tab.on .tab-icon{filter:none;opacity:1}.tab.main .tab-icon{background:var(--accent);width:54px;height:54px;box-shadow:0 0 0 5px var(--bg);filter:none;opacity:1;border-radius:50%;place-items:center;margin-top:-22px;font-size:1.6rem;display:grid}.tab:active .tab-icon{transform:scale(.94)}.overlay{z-index:10}.quit-title{text-align:center;margin:0;font-size:1.3rem;font-weight:700}.rule-hint{text-align:center;flex-direction:column;align-items:center;gap:4px;margin:0;display:flex}.rule-name{font-size:1.1rem;font-weight:700}.rule-how{color:var(--muted);font-size:.92rem}.cell{position:relative}.cell .num.corner{color:var(--text);opacity:.85;font-size:.62rem;font-weight:700;position:absolute;top:3px;left:4px}.item-grid{grid-template-columns:repeat(5,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.item-cell{aspect-ratio:1;background:var(--surface);border-radius:14px;place-items:center;display:grid}.item-cell.have{background:var(--surface-2)}.item-cell .unknown{color:var(--muted);opacity:.5;font-size:1.3rem;font-weight:700}.panel{background:var(--surface);border-radius:18px;flex-direction:column;gap:12px;padding:16px;display:flex}.panel-title{margin:0;font-size:1.05rem}.howto{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.howto li{align-items:flex-start;gap:12px;display:flex}.howto-icon{font-size:1.5rem;line-height:1.2}.howto-text{flex-direction:column;gap:2px;min-width:0;display:flex}.howto-text span{color:var(--muted);font-size:.92rem}.settings .credits-text{max-height:none}.more .kind:disabled{opacity:.35}.flag.pop{animation:.35s ease-out pop,.9s ease-in-out .35s infinite alternate glow}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}.combo{text-align:center;min-height:1.6rem;margin:-8px 0 0}.combo-badge{background:var(--surface-2);color:var(--accent);border-radius:999px;padding:2px 12px;font-weight:700;animation:.3s ease-out pop;display:inline-block}.result{position:relative;overflow:hidden}.praise{opacity:0;margin:0;font-size:1.6rem;font-weight:700;transition:opacity .25s,transform .25s;transform:scale(.8)}.praise.in{opacity:1;transform:none}.score-num{color:var(--text);font-variant-numeric:tabular-nums;font-size:2rem}.new-best{background:var(--accent);color:#1b1606;border-radius:999px;margin:0;padding:6px 16px;font-weight:700;animation:.4s ease-out pop}.best-line{color:var(--muted);margin:0;font-size:.95rem}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti .piece{opacity:0;border-radius:2px;width:9px;height:14px;animation:1.9s ease-in forwards fall;position:absolute;top:-16px}.confetti .piece:nth-child(3n){background:#f2c35b}.confetti .piece:nth-child(3n+1){background:#e8607a}.confetti .piece:nth-child(3n+2){background:#5fb8e8}.confetti .piece:first-child{animation-delay:0s;left:6%}.confetti .piece:nth-child(2){animation-delay:.25s;left:14%}.confetti .piece:nth-child(3){animation-delay:.1s;left:21%}.confetti .piece:nth-child(4){animation-delay:.4s;left:28%}.confetti .piece:nth-child(5){animation-delay:50ms;left:34%}.confetti .piece:nth-child(6){animation-delay:.3s;left:41%}.confetti .piece:nth-child(7){animation-delay:.15s;left:47%}.confetti .piece:nth-child(8){animation-delay:.45s;left:53%}.confetti .piece:nth-child(9){animation-delay:.2s;left:59%}.confetti .piece:nth-child(10){animation-delay:20ms;left:65%}.confetti .piece:nth-child(11){animation-delay:.35s;left:71%}.confetti .piece:nth-child(12){animation-delay:.12s;left:77%}.confetti .piece:nth-child(13){animation-delay:.5s;left:83%}.confetti .piece:nth-child(14){animation-delay:.22s;left:89%}.confetti .piece:nth-child(15){animation-delay:80ms;left:94%}.confetti .piece:nth-child(16){animation-delay:.6s;left:10%}.confetti .piece:nth-child(17){animation-delay:.65s;left:50%}.confetti .piece:nth-child(18){animation-delay:.7s;left:80%}@keyframes fall{0%{opacity:1;transform:translateY(0)rotate(0)}85%{opacity:1}to{opacity:0;transform:translateY(70vh)rotate(540deg)}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.flag.pop,.combo-badge,.new-best{animation:none}}.home-streak{text-align:center;color:var(--muted);margin:0;font-size:.95rem}.home-streak b{color:var(--text);font-size:1.3rem}.slot-name{color:var(--muted);white-space:nowrap;font-size:.78rem;font-weight:700}.menu-slot.now .slot-name{color:var(--text)}.reward-teaser{background:var(--surface);border-radius:18px;align-items:center;gap:14px;padding:12px 16px;display:flex}.reward-teaser .shadow{filter:brightness(0)invert(.32)}.teaser-text{flex-direction:column;gap:2px;display:flex}.teaser-text span{color:var(--muted);font-size:.92rem}.reward-teaser.got .teaser-text span{color:var(--accent)}.title.small{margin-top:16px;font-size:1.2rem}.chord-book{flex-direction:column;gap:10px;display:flex}.book-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.book-cell{text-align:center;flex-direction:column;align-items:stretch;gap:4px;display:flex}.book-cell .flag{aspect-ratio:4/3;width:100%;min-height:0}.book-miss{color:var(--muted);white-space:nowrap;font-size:.72rem}.book-miss.has{color:#f08a8a;font-weight:700}.book-cell.locked{justify-content:flex-start}.book-unknown{aspect-ratio:4/3;background:var(--surface);color:var(--muted);opacity:.6;border-radius:12px;place-items:center;font-weight:700;display:grid}.milestones{flex-direction:column;gap:6px;display:flex}.badge-row{grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.badge{background:var(--surface);color:var(--muted);border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:8px 0;display:flex}.badge.on{background:var(--surface-2);color:var(--accent)}.badge-icon{font-size:1.3rem;line-height:1}.badge:not(.on) .badge-icon{opacity:.45;font-size:1rem}.badge-label{font-size:.75rem;font-weight:700}.milestone-next{font-size:.85rem}.book-notes{white-space:nowrap;font-size:.95rem;font-weight:700}.book-name{color:var(--muted);font-size:.68rem;line-height:1.25}.crown{margin:0 0 -12px;font-size:3rem;line-height:1;animation:.4s ease-out pop}.clean-line{flex-direction:column;align-items:center;gap:2px;margin:0;font-size:1.15rem;font-weight:700;display:flex}.clean-line.crown-on{color:var(--accent)}.clean-note{color:var(--muted);font-size:.8rem;font-weight:400}.guide-tag{background:var(--accent);color:#1b1606;border-radius:999px;margin:0;padding:4px 14px;font-size:.85rem;font-weight:700}.guide-icon{margin:0;font-size:4rem;line-height:1}.guide-steps{text-align:left;flex-direction:column;align-self:stretch;gap:14px;margin:8px 0 0;padding:0;list-style:none;display:flex}.guide-steps li{background:var(--surface);border-radius:16px;align-items:center;gap:12px;padding:14px 16px;font-size:1.02rem;display:flex}.step-num{background:var(--surface-2);width:28px;height:28px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}@media (prefers-reduced-motion:reduce){.crown{animation:none}}.sum-list{grid-template-columns:none;grid-auto-columns:1fr;grid-auto-flow:column}
