@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@500;600;700;800&family=Noto+Sans+JP:wght@500;700;900&display=swap";:root{--ink:#181818;--paper:#f2f2f2;--effect-red:#df4038;--final-amber:#e5b647;--ball:#d9d9d9;--line:#00000021}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:var(--paper);margin:0;font-family:Inter,Noto Sans JP,sans-serif;overflow-x:hidden}button{font:inherit;color:inherit}.game-shell{width:min(100%,580px);margin:0 auto;padding:24px 20px 36px}.topbar{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand-mark{background:var(--ink);width:54px;height:54px;color:var(--paper);border-radius:50%;place-items:center;font:700 22px DM Mono,monospace;display:grid}h1{letter-spacing:.08em;margin:0;font-size:clamp(18px,3vw,25px)}.brand p{opacity:.65;margin:3px 0 0;font-size:12px;font-weight:600}.icon-button{border:1.5px solid var(--ink);cursor:pointer;background:0 0;width:46px;height:46px;font-weight:800;transition:all .2s}.icon-button:hover{color:var(--paper);background:var(--ink)}.header-actions{align-items:center;gap:8px;display:flex}.language-button{min-width:46px;height:46px;color:var(--paper);background:var(--ink);letter-spacing:.08em;cursor:pointer;border:0;padding:0 9px;font:700 11px DM Mono,monospace}.scoreboard{border:1.5px solid var(--ink);border-bottom:0;grid-template-columns:repeat(3,1fr);display:grid}.scoreboard>div{border-right:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;padding:12px 8px;display:flex}.scoreboard>div:last-child{border:0}.scoreboard>div>span,.eyebrow,.controls>p span{letter-spacing:.16em;font:500 10px DM Mono,monospace}.scoreboard strong{font:700 22px DM Mono,monospace}#score{font-variant-numeric:tabular-nums;perspective:200px;gap:1px;font-size:28px;display:inline-flex}.score-digit{width:.68em;height:1.18em;color:var(--paper);background:var(--ink);font:inherit;border-radius:2px;place-items:center;line-height:1;display:inline-grid;position:relative;overflow:hidden}.score-digit>span{width:100%;height:100%;font:inherit;backface-visibility:hidden;grid-area:1/1;place-items:center;display:grid}.score-digit.flipping .digit-old{z-index:2;transform-origin:bottom;animation:digitFlipOut .26s cubic-bezier(.55,.05,.8,.25) var(--flip-delay) forwards}.score-digit.flipping .digit-new{animation:digitFlipIn .34s cubic-bezier(.2,.75,.25,1) var(--flip-delay) forwards;transform:translateY(-105%)}.game-area{border:1.5px solid var(--ink);isolation:isolate;background:#fafafa;height:clamp(520px,65vh,720px);position:relative;overflow:hidden}.grid{z-index:-2;opacity:.5;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:48px 48px;position:absolute;inset:0}.danger-zone{z-index:4;border-top:1.5px solid var(--ink);background:repeating-linear-gradient(-45deg,#fafafaf0,#fafafaf0 7px,#e1e1e1f0 7px 14px);align-items:center;gap:8px;height:54px;padding:19px 8px 6px;display:flex;position:absolute;bottom:0;left:0;right:0}.danger-zone>span{color:var(--ink);letter-spacing:.12em;font:500 8px DM Mono,monospace;position:absolute;top:5px;left:8px}.blast-meter{border:1.5px solid var(--ink);background:var(--paper);flex:1;height:18px;position:relative;overflow:hidden}.blast-meter-fill{background:repeating-linear-gradient(90deg, var(--effect-red) 0, var(--effect-red) 9px, #b72e29 9px, #b72e29 11px);width:0;height:100%;transition:width .38s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0 auto 0 0}.blast-meter-fill-second{z-index:1;background:repeating-linear-gradient(90deg,#a9201c 0 9px,#761512 9px 11px)}.blast-meter.full{animation:.8s infinite alternate meterReady}.blast-button{border:1.5px solid var(--ink);color:#fff;background:var(--effect-red);cursor:pointer;justify-content:center;align-self:stretch;align-items:center;gap:5px;min-width:76px;transition:all .15s;display:flex}.blast-button span{font-size:17px}.blast-button small{letter-spacing:.08em;font:700 8px DM Mono,monospace}.blast-button:disabled{color:#777;cursor:not-allowed;opacity:.7;background:#ccc}.blast-button:not(:disabled):hover{box-shadow:3px 3px 0 var(--ink);transform:scale(1.04)}.screen-blast-effect{z-index:7;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.screen-blast-core{z-index:2;color:#fff;background:var(--effect-red);border-radius:50%;place-items:center;width:62px;height:62px;font-size:30px;animation:.75s ease-out forwards screenBlastCore;display:grid;box-shadow:0 0 0 10px #df403840}.screen-blast-wave{aspect-ratio:1;border:8px solid var(--effect-red);border-radius:50%;width:80px;animation:.85s cubic-bezier(.1,.65,.2,1) forwards screenBlastWave;position:absolute}.screen-blast-wave.wave-two{border-width:3px;animation-delay:.1s}.number-ball{border:2px solid var(--ink);background:var(--ball);box-shadow:5px 6px 0 var(--ink);will-change:top;border-radius:50%;place-items:center;font:800 22px DM Mono,monospace;transition:width .22s cubic-bezier(.2,.8,.2,1),height .22s cubic-bezier(.2,.8,.2,1),background .15s,transform .15s;display:grid;position:absolute;transform:translate(-50%,-50%)}.number-ball.final-ball{background:var(--final-amber);box-shadow:7px 8px 0 var(--ink);border-width:4px}.number-ball.final-ball:after{content:attr(data-label);color:var(--paper);background:var(--ink);letter-spacing:.12em;padding:2px 6px;font:700 8px DM Mono,monospace;position:absolute;top:-20px}.number-ball.final-ball.final-penalty{box-shadow:9px 10px 0 var(--effect-red);animation:.42s ease-out finalPenalty}.number-ball.five-digit{letter-spacing:-.06em;font-size:21px}.number-ball.hit{background:#fff;transform:translate(-50%,-50%)scale(.76)}.number-ball.burst{background:var(--effect-red);color:#fff;animation:.35s forwards burst}.number-ball.final-clear-burst{z-index:7;color:#fff;background:var(--effect-red);animation:1.5s cubic-bezier(.16,.75,.2,1) forwards finalClearBurst}.number-ball.final-clear-burst:before,.number-ball.final-clear-burst:after{content:"";border:5px solid var(--effect-red);color:#0000;background:0 0;border-radius:50%;animation:1.35s ease-out forwards finalShockwave;position:absolute;inset:-18px}.number-ball.final-clear-burst:after{border-width:3px;animation-delay:.16s;inset:-35px}.final-particle{z-index:6;background:var(--effect-red);pointer-events:none;border-radius:50%;width:13px;height:13px;animation:1.4s ease-out forwards finalParticle;position:absolute}.final-particle:nth-of-type(3n){background:var(--final-amber);border-radius:1px;width:9px;height:9px}.number-ball.gameover-burst{z-index:7;color:#fff;background:var(--effect-red);animation:1.2s cubic-bezier(.2,.8,.2,1) forwards gameoverBurst}.number-ball.gameover-burst:before,.number-ball.gameover-burst:after{content:"";border:4px solid var(--effect-red);border-radius:50%;animation:1.1s ease-out forwards shockwave;position:absolute;inset:-14px}.number-ball.gameover-burst:after{border-width:2px;animation-delay:.12s;inset:-28px}.gameover-particle{z-index:6;background:var(--effect-red);pointer-events:none;border-radius:2px;width:10px;height:10px;animation:1s ease-out forwards gameoverParticle;position:absolute}.gameover-particle:nth-of-type(2n){background:var(--ink);border-radius:50%}.game-area.gameover-shake{animation:.65s ease-out gameoverShake}.pop-text{z-index:5;color:var(--effect-red);pointer-events:none;font:800 14px DM Mono,monospace;animation:.75s forwards floatUp;position:absolute}.multiplier-overlay{z-index:8;pointer-events:none;color:var(--effect-red);text-shadow:3px 3px 0 var(--paper);flex-direction:column;justify-content:center;align-items:center;animation:.95s cubic-bezier(.16,.8,.2,1) forwards multiplierPop;display:flex;position:absolute;inset:0}.multiplier-overlay small{color:var(--paper);background:var(--ink);letter-spacing:.16em;text-shadow:none;padding:4px 8px;font:700 9px DM Mono,monospace}.multiplier-overlay strong{font:900 clamp(56px,14vw,96px)/.95 DM Mono,monospace}.start-card,.game-over-card,.game-clear-card{z-index:10;text-align:center;backdrop-filter:blur(5px);background:#f2f2f2eb;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex;position:absolute;inset:0}.start-card h2,.game-over-card h2,.game-clear-card h2{letter-spacing:-.05em;margin:6px 0 13px;font-size:clamp(28px,5vw,48px);line-height:1.18}.start-card h2 em{color:var(--ink);font-family:DM Mono,monospace;font-style:normal}.start-card>p:not(.eyebrow){max-width:480px;margin:0 0 24px;font-size:13px;line-height:1.9}.eyebrow{color:var(--ink);margin:0}.primary-button{background:var(--ink);color:#fff;letter-spacing:.1em;cursor:pointer;border:0;justify-content:space-between;min-width:220px;padding:16px 20px;font:700 13px DM Mono,monospace;transition:all .18s;display:flex;box-shadow:5px 5px #888}.primary-button:hover{transform:translate(2px,2px);box-shadow:3px 3px #888}.game-over-actions{flex-direction:column;gap:12px;width:min(100%,240px);display:flex}.game-over-actions .primary-button{min-width:100%}.secondary-button{border:1.5px solid var(--ink);letter-spacing:.08em;cursor:pointer;background:0 0;justify-content:space-between;width:100%;padding:13px 16px;font:700 11px DM Mono,monospace;transition:all .16s;display:flex}.secondary-button:hover{color:var(--paper);background:var(--ink)}.game-over-card>strong,.game-clear-card>strong{color:var(--ink);font:800 clamp(42px,9vw,72px) DM Mono,monospace}.game-over-card>p:not(.eyebrow),.game-clear-card>p:not(.eyebrow){letter-spacing:.12em;margin:3px 0 25px;font:500 11px DM Mono,monospace}.game-clear-card .eyebrow{color:var(--effect-red)}.firework-particle{z-index:7;background:var(--effect-red);pointer-events:none;border-radius:50%;width:9px;height:9px;animation:1.15s ease-out forwards fireworkParticle;position:absolute}.firework-particle.amber{background:var(--final-amber)}.firework-core{z-index:7;border:4px solid var(--effect-red);pointer-events:none;border-radius:50%;width:20px;height:20px;animation:.8s ease-out forwards fireworkCore;position:absolute}.victory-banner{z-index:8;color:var(--paper);letter-spacing:.08em;pointer-events:none;background:#181818b8;place-items:center;font:900 clamp(26px,6vw,44px) DM Mono,monospace;animation:2.6s ease-in-out forwards victoryBanner;display:grid;position:absolute;inset:0}.pause-label{z-index:9;color:#fff;letter-spacing:.2em;background:#141414d6;place-items:center;font:700 30px DM Mono,monospace;display:grid;position:absolute;inset:0}.hidden{display:none!important}.controls{padding-top:21px}.controls>p:first-child{justify-content:space-between;align-items:center;margin:0 0 10px;display:flex}.controls small{opacity:.6;font-size:10px}.prime-buttons{grid-template-columns:repeat(6,1fr);gap:10px;display:grid}.prime-buttons button{border:1.5px solid var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:10px;min-height:78px;transition:all .14s;display:flex;position:relative;overflow:hidden}.prime-buttons button:before{content:"";z-index:-1;background:var(--ink);transition:all .18s;position:absolute;inset:100% 0 0}.prime-buttons button:hover,.prime-buttons button.active{color:#fff;transform:translateY(-3px);box-shadow:0 4px #888}.prime-buttons button:hover:before,.prime-buttons button.active:before{inset:0}.prime-buttons button span{font:800 30px DM Mono,monospace}.prime-buttons button small{letter-spacing:.12em;font:500 8px DM Mono,monospace}.prime-buttons button.locked{opacity:.28;cursor:not-allowed;background:repeating-linear-gradient(-45deg,#0000,#0000 5px,#00000014 5px 10px)}.prime-buttons button.locked:hover{color:var(--ink);box-shadow:none;transform:none}.prime-buttons button.locked:hover:before{inset:100% 0 0}.stage-flash{z-index:8;pointer-events:none;color:var(--paper);background:var(--ink);letter-spacing:.1em;place-items:center;font:800 clamp(30px,8vw,64px) DM Mono,monospace;animation:1.4s forwards stageFlash;display:grid;position:absolute;inset:0}.keyboard-hint{text-align:center;opacity:.55;margin:12px 0 0;font-size:10px}kbd{border:1px solid var(--ink);padding:1px 4px;font:500 9px DM Mono,monospace}.site-footer{border-top:1px solid var(--line);color:#18181894;letter-spacing:.08em;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-top:28px;padding-top:18px;font:500 9px DM Mono,monospace;display:flex}.site-footer a{color:inherit;text-underline-offset:3px;transition:color .15s}.site-footer a:hover{color:var(--effect-red)}@keyframes burst{60%{opacity:1;transform:translate(-50%,-50%)scale(1.4)}to{opacity:0;transform:translate(-50%,-50%)scale(2)}}@keyframes finalClearBurst{0%{transform:translate(-50%,-50%)scale(1)}22%{transform:translate(-50%,-50%)scale(.7)}55%{opacity:1;transform:translate(-50%,-50%)scale(2.2)}to{opacity:0;transform:translate(-50%,-50%)scale(3.4)}}@keyframes finalShockwave{0%{opacity:1;transform:scale(.45)}to{opacity:0;transform:scale(2.8)}}@keyframes finalParticle{0%{opacity:1;transform:translate(-50%,-50%)scale(1.2)}75%{opacity:1}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(300deg) scale(.1);opacity:0}}@keyframes finalPenalty{0%,to{transform:translate(-50%,-50%)scale(1)}45%{transform:translate(-50%,-50%)scale(1.2)}}@keyframes floatUp{to{opacity:0;transform:translateY(-35px)}}@keyframes stageFlash{0%,25%{opacity:1}to{opacity:0}}@keyframes gameoverBurst{0%{transform:translate(-50%,-50%)scale(1)}28%{transform:translate(-50%,-50%)scale(.78)}55%{opacity:1;transform:translate(-50%,-50%)scale(1.7)}to{opacity:0;transform:translate(-50%,-50%)scale(2.5)}}@keyframes shockwave{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(2.2)}}@keyframes gameoverParticle{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(240deg) scale(.2);opacity:0}}@keyframes gameoverShake{0%,to{transform:translate(0)}15%{transform:translate(-7px,3px)}30%{transform:translate(6px,-3px)}45%{transform:translate(-5px,-2px)}60%{transform:translate(4px,2px)}75%{transform:translate(-2px,1px)}}@keyframes digitFlipOut{to{opacity:0;transform:translateY(105%)rotateX(-75deg)}}@keyframes digitFlipIn{to{transform:translateY(0)rotateX(0)}}@keyframes multiplierPop{0%{opacity:0;transform:scale(.35)rotate(-8deg)}20%{opacity:1;transform:scale(1.12)rotate(2deg)}68%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}@keyframes fireworkParticle{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}12%{opacity:1}75%{opacity:1}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.15);opacity:0}}@keyframes fireworkCore{0%{opacity:1;transform:translate(-50%,-50%)scale(.2)}to{opacity:0;transform:translate(-50%,-50%)scale(4)}}@keyframes victoryBanner{0%{opacity:0}12%,78%{opacity:1}to{opacity:0}}@keyframes meterReady{0%{box-shadow:0 0 0 var(--effect-red)}to{box-shadow:0 0 10px var(--effect-red)}}@keyframes screenBlastCore{0%{opacity:0;transform:scale(.2)rotate(-30deg)}25%{opacity:1;transform:scale(1.25)rotate(8deg)}to{opacity:0;transform:scale(2.2)rotate(25deg)}}@keyframes screenBlastWave{0%{opacity:1;background:#df40382e;transform:scale(.2)}to{opacity:0;background:0 0;transform:scale(14)}}@media (width<=600px){.game-shell{padding:10px 10px 18px}.topbar{margin-bottom:10px}.brand-mark{width:44px;height:44px;font-size:18px}.icon-button{width:42px;height:42px}.scoreboard>div{flex-direction:column;align-items:center;gap:2px;padding:8px}.scoreboard strong{font-size:18px}#score{font-size:21px}.game-area{height:clamp(400px,100dvh - 285px,650px);min-height:0}.controls{padding-top:12px}.prime-buttons{grid-template-columns:repeat(3,1fr);gap:6px}.prime-buttons button{flex-direction:row;gap:7px;min-height:52px}.prime-buttons button span{font-size:24px}.controls>p:first-child small,.keyboard-hint{display:none}}@media (height<=700px) and (width<=600px){.brand p,.keyboard-hint{display:none}.game-area{height:calc(100dvh - 255px);min-height:330px}.prime-buttons button{min-height:46px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}