:root{font-family:ui-rounded,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;color:#f7fbff;background:#081520;font-synthesis:none;--surface:#102330;--line:rgba(255,255,255,.13);--mint:#69e0bd;--yellow:#ffd166}*{box-sizing:border-box}html,body{margin:0;min-width:320px;min-height:100%;overflow:hidden}body{min-height:100dvh;background:radial-gradient(circle at 15% 10%,#15384a 0,transparent 32%),radial-gradient(circle at 90% 85%,#24274e 0,transparent 35%),#081520}button{font:inherit}.game-app{height:100dvh;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.topbar{height:68px;display:flex;align-items:center;gap:12px;padding:0 clamp(14px,3vw,30px);border-bottom:1px solid var(--line);background:rgba(7,20,30,.84);backdrop-filter:blur(16px);flex:none}.brand-mark{width:42px;height:42px;position:relative;border-radius:12px;background:linear-gradient(145deg,#6be0bd,#2a8d88);box-shadow:0 8px 22px rgba(40,167,145,.25);overflow:hidden}.brand-mark span{position:absolute;font-weight:900;color:#08221e;line-height:1}.brand-mark span:first-child{font-size:25px;left:5px;top:5px}.brand-mark span:nth-child(2){font-size:16px;right:5px;top:7px;opacity:.76}.brand-mark span:last-child{font-size:13px;right:8px;bottom:5px;opacity:.55}.brand-copy{min-width:0}.brand-copy strong,.brand-copy small{display:block}.brand-copy strong{font-size:18px;letter-spacing:-.4px}.brand-copy small{margin-top:2px;color:#8da2ae;font-size:8px;letter-spacing:1.6px}.top-actions{display:flex;gap:7px;margin-left:auto}.icon-button{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:#112836;color:#d8e8ee}.icon-button:disabled{opacity:.3}.icon-button svg{width:21px;height:21px;fill:currentColor}.game-hud{min-height:70px;display:grid;grid-template-columns:auto minmax(150px,1fr) auto auto;align-items:center;gap:clamp(12px,3vw,30px);padding:10px clamp(14px,3vw,30px);border-bottom:1px solid var(--line);background:rgba(12,31,43,.72);flex:none}.stage-info{display:flex;align-items:baseline;gap:4px}.stage-info span,.hud-stat span{display:block;color:#93a8b3;font-size:11px;font-weight:700}.stage-info strong{color:var(--yellow);font-size:30px;line-height:1}.stage-info small{color:#93a8b3;font-size:12px}.progress-area{min-width:0}.progress-copy{display:flex;justify-content:space-between;margin-bottom:7px;color:#9fb3bd;font-size:10px}.progress-copy b{color:var(--mint)}.progress-track{height:7px;border-radius:8px;background:rgba(255,255,255,.09);overflow:hidden}.progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#48bba0,#8ee7ca);transition:width .25s ease}.hud-stat{min-width:64px}.hud-stat strong{display:block;margin-top:3px;color:#f7fbff;font-size:17px;font-variant-numeric:tabular-nums}.game-main{min-height:0;flex:1;display:flex;flex-direction:column;padding:9px clamp(8px,2vw,20px) 8px}.instruction{display:flex;align-items:baseline;justify-content:center;gap:9px;min-height:29px;flex:none}.instruction strong{font-size:14px}.instruction span{color:#94aab4;font-size:10px}.game-board{width:min(100%,1200px);min-height:0;flex:1;align-self:center;display:flex;flex-direction:column;gap:clamp(2px,.45vw,5px);padding:clamp(2px,.45vw,5px);border:1px solid rgba(255,255,255,.13);border-radius:15px;background:rgba(255,255,255,.055);box-shadow:0 18px 55px rgba(0,0,0,.22);overflow:hidden;touch-action:manipulation}.board-row{min-height:0;display:flex;gap:clamp(2px,.45vw,5px)}.number-tile{min-width:0;min-height:0;border:0;border-radius:clamp(6px,1vw,12px);color:#fff;font-weight:850;font-variant-numeric:tabular-nums;letter-spacing:-.045em;text-shadow:0 2px 3px rgba(0,0,0,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 3px 9px rgba(0,0,0,.15);cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,filter .15s ease,background .15s ease}.number-tile.teal{background:#176c65}.number-tile.blue{background:#315d8e}.number-tile.purple{background:#694e91}.number-tile.orange{background:#a05a31}.number-tile.green{background:#416f48}.number-tile.rose{background:#8e4856}.number-tile:hover{filter:brightness(1.12)}.number-tile:active{transform:scale(.97)}.number-tile:focus-visible{outline:4px solid #fff;outline-offset:-5px}.number-tile.correct{background:#2e9e67;animation:correctPulse .38s ease}.number-tile.wrong{background:#c34848;animation:wrongPulse .38s ease}.feedback{min-height:27px;margin:5px 0 0;display:flex;align-items:center;justify-content:center;color:#a9bbc4;font-size:11px;font-weight:650;text-align:center;flex:none}.feedback.success{color:#71e3b7}.feedback.warning{color:#ffb09b}.overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:calc(20px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));background:rgba(3,12,18,.76);backdrop-filter:blur(12px);overflow:auto}.overlay[hidden]{display:none}.dialog{width:min(470px,100%);padding:clamp(24px,5vw,40px);border:1px solid rgba(255,255,255,.16);border-radius:24px;background:linear-gradient(155deg,rgba(23,53,67,.98),rgba(12,31,43,.98));box-shadow:0 28px 90px rgba(0,0,0,.42);text-align:center}.dialog.compact{width:min(400px,100%)}.dialog-symbol{width:76px;height:76px;display:grid;place-items:center;margin:0 auto 17px;border-radius:22px;background:linear-gradient(145deg,#78e5c3,#359c8c);color:#0b2925;font-size:29px;font-weight:900;box-shadow:0 15px 35px rgba(67,190,160,.25)}.pause-symbol{font-size:34px}.finish-symbol{background:linear-gradient(145deg,#ffe18a,#e8a940);color:#3b280b}.eyebrow{margin:0;color:#72d4b7;font-size:10px;font-weight:800;letter-spacing:2px}.dialog h1,.dialog h2{margin:8px 0 12px;font-size:clamp(28px,7vw,42px);line-height:1.18;letter-spacing:-1.4px}.dialog-description{margin:0;color:#a8bbc4;font-size:14px;line-height:1.75}.rule-list{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:22px 0}.rule-list span{padding:11px 6px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.045);color:#91a8b2;font-size:10px;line-height:1.45}.rule-list b{display:block;margin-bottom:3px;color:#f3f9fb;font-size:12px}.primary-button{width:100%;min-height:52px;border:0;border-radius:13px;background:linear-gradient(135deg,#6ce0bd,#3aa38e);color:#092821;font-size:17px;font-weight:850;box-shadow:0 11px 27px rgba(45,166,139,.25);cursor:pointer}.primary-button:active{transform:translateY(1px)}.text-button{margin-top:12px;border:0;background:none;color:#7fe0c2;font-weight:700;cursor:pointer}.install-hint{margin:14px 0 0;padding:10px;border-radius:9px;background:rgba(255,255,255,.06);color:#9db1ba;font-size:11px;line-height:1.5}.best-record{margin:17px 0 0;color:#8197a2;font-size:11px}.best-record strong{color:#d8e8ee}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:23px 0 12px}.result-grid article{padding:15px 8px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(255,255,255,.045)}.result-grid span,.result-grid strong{display:block}.result-grid span{color:#91a6b0;font-size:10px}.result-grid strong{margin-top:6px;color:#fff;font-size:21px}.record-message{min-height:22px;margin:0 0 13px;color:#ffd878;font-size:12px;font-weight:750}@keyframes correctPulse{50%{transform:scale(.96);filter:brightness(1.3)}}@keyframes wrongPulse{25%,75%{transform:translateX(-4px)}50%{transform:translateX(4px)}}@keyframes boardShake{25%,75%{transform:translateX(-2px)}50%{transform:translateX(2px)}}.game-board.shake{animation:boardShake .22s ease}
@media(max-width:700px){.topbar{height:60px;padding-left:12px;padding-right:12px}.brand-mark{width:37px;height:37px;border-radius:10px}.brand-mark span:first-child{font-size:22px}.brand-copy strong{font-size:16px}.top-actions{gap:5px}.icon-button{width:36px;height:36px}.game-hud{min-height:60px;grid-template-columns:auto minmax(95px,1fr) auto auto;gap:9px;padding:7px 11px}.stage-info strong{font-size:25px}.progress-copy{margin-bottom:5px}.progress-track{height:6px}.hud-stat{min-width:47px}.hud-stat strong{font-size:14px}.game-main{padding:6px 5px 5px}.instruction{min-height:26px}.instruction strong{font-size:12px}.instruction span{font-size:9px}.feedback{min-height:23px;margin-top:3px;font-size:10px}.dialog{border-radius:20px}.rule-list{gap:5px}.rule-list span{padding:9px 3px}}
@media(max-width:430px){.brand-copy small{display:none}.game-hud{grid-template-columns:auto minmax(70px,1fr) auto auto;gap:7px}.stage-info span{display:none}.progress-copy span{display:none}.hud-stat span{font-size:9px}.hud-stat strong{font-size:13px}.instruction{justify-content:space-between;padding:0 4px}.dialog-description br{display:none}.rule-list{grid-template-columns:1fr}.rule-list span{display:flex;align-items:center;justify-content:center;gap:7px}.rule-list b{display:inline;margin:0}.dialog-symbol{width:66px;height:66px;border-radius:19px}.dialog h1,.dialog h2{font-size:28px}}
@media(max-height:620px){.topbar{height:52px}.brand-mark{width:34px;height:34px}.game-hud{min-height:51px;padding-top:5px;padding-bottom:5px}.stage-info strong{font-size:22px}.instruction{min-height:22px}.feedback{min-height:20px}.dialog{padding:20px}.dialog-symbol{width:54px;height:54px;margin-bottom:10px}.rule-list{margin:14px 0}.dialog-description{font-size:12px;line-height:1.5}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.sound-button[aria-pressed="false"]{color:#8da2ae;background:#0c1f2b}.sound-icon{width:20px;height:20px;fill:currentColor}.sound-icon .mute-mark{display:none}.sound-button[aria-pressed="false"] .sound-waves,.sound-setting[aria-pressed="false"] .sound-waves{display:none}.sound-button[aria-pressed="false"] .mute-mark,.sound-setting[aria-pressed="false"] .mute-mark{display:block}.record-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0 10px;padding:0;border:0;text-align:left}.record-options legend{grid-column:1/-1;width:100%;margin-bottom:7px;color:#d8e8ee;font-size:12px;font-weight:800;text-align:center}.record-option{position:relative;display:flex;align-items:flex-start;gap:8px;padding:11px;border:1px solid rgba(255,255,255,.12);border-radius:11px;background:rgba(255,255,255,.04);cursor:pointer}.record-option:has(input:checked){border-color:var(--mint);background:rgba(105,224,189,.1)}.record-option input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--mint);flex:none}.record-option span,.record-option b,.record-option small{display:block}.record-option b{color:#edf8fa;font-size:12px}.record-option small{margin-top:3px;color:#8ea4af;font-size:9px;line-height:1.4}.nickname-record-fields{margin:0 0 11px;text-align:left}.nickname-record-fields label{display:block;margin:0 0 6px;color:#cfe0e6;font-size:11px;font-weight:750}.nickname-record-fields input{width:100%;height:45px;padding:0 13px;border:1px solid rgba(255,255,255,.17);border-radius:10px;outline:0;background:#091b26;color:#fff;font:inherit;font-size:14px}.nickname-record-fields input:focus{border-color:var(--mint);box-shadow:0 0 0 3px rgba(105,224,189,.12)}.storage-notice{margin:7px 2px 0;color:#78909b;font-size:9px;line-height:1.45}.form-error{min-height:15px;margin:4px 2px 0;color:#ff9e91;font-size:10px}.sound-setting{width:100%;min-height:36px;display:flex;align-items:center;justify-content:center;gap:7px;margin:0 0 9px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.04);color:#bcd0d8;font-size:11px;cursor:pointer}.sound-setting[aria-pressed="false"]{color:#8297a1}.sound-setting .sound-icon{width:17px;height:17px}.sound-setting b{font-weight:750}.best-record{line-height:1.7}.best-record #record-owner{color:#9fb3bd}
@media(max-width:430px){.record-options{grid-template-columns:1fr}.record-option{padding:9px}.record-option small{font-size:8px}}
@media(max-height:760px){#start-overlay{place-items:start center}.record-options{margin-top:12px}.rule-list{margin:12px 0}.dialog-symbol{margin-bottom:10px}}

.game-hud{grid-template-columns:auto minmax(150px,1fr) auto auto auto}.stage-info strong{font-size:40px}.time-stat{min-width:105px}.time-stat strong{color:var(--mint);font-size:24px;letter-spacing:.2px}.rank-scope{margin:0 0 9px;color:#78909b;font-size:9px}.result-grid article:last-child strong{color:var(--mint);font-size:18px}
@media(max-width:700px){.game-hud{grid-template-columns:auto minmax(74px,1fr) auto auto auto;gap:7px}.stage-info strong{font-size:33px}.time-stat{min-width:73px}.time-stat strong{font-size:17px}.time-stat span{font-size:9px}}
@media(max-width:430px){.game-hud{grid-template-columns:auto minmax(55px,1fr) auto auto auto;gap:5px;padding-left:7px;padding-right:7px}.stage-info strong{font-size:32px}.hud-stat{min-width:38px}.time-stat{min-width:68px}.time-stat strong{font-size:16px}.result-grid article:last-child strong{font-size:16px}}
.primary-button:disabled{opacity:.55;cursor:wait}
.number-tile{position:relative;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden}.number-label{display:block;width:73%;height:73%;flex:none}.number-value{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cache-reset-button{display:block;margin:11px auto 0;color:#9fb5bd;font-size:11px}.cache-reset-button:disabled{opacity:.6;cursor:wait}.top-ten-prompt{margin:0 0 12px;padding:12px;border:1px solid rgba(255,209,102,.42);border-radius:12px;background:rgba(255,209,102,.09);text-align:left}.top-ten-prompt[hidden]{display:none}.top-ten-message{margin:0 0 6px;color:var(--yellow);font-size:14px;font-weight:850;text-align:center}.top-ten-prompt label{display:block;margin-bottom:7px;color:#d8e6ea;font-size:11px;text-align:center}.guest-record-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.guest-record-form input{min-width:0;height:39px;padding:0 11px;border:1px solid rgba(255,255,255,.18);border-radius:9px;outline:0;background:#091b26;color:#fff;font:inherit;font-size:13px}.guest-record-form input:focus{border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,209,102,.12)}.guest-record-form button{min-width:78px;border:0;border-radius:9px;background:var(--yellow);color:#332407;font-size:12px;font-weight:850;cursor:pointer}.guest-record-form button:disabled{opacity:.55;cursor:wait}.guest-score-error{min-height:13px;margin:5px 0 0;color:#ff9e91;font-size:9px;text-align:center}.finish-leaderboard{margin:0 0 13px;padding:12px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(4,17,25,.38);text-align:left}.leaderboard-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.leaderboard-heading h3{margin:0;color:#fff;font-size:13px}.leaderboard-heading span{color:#718a96;font-size:9px}.leaderboard-list{display:grid;gap:5px;margin:0;padding:0;list-style:none}.leaderboard-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:27px;padding:4px 7px;border-radius:7px;background:rgba(255,255,255,.045)}.leaderboard-rank{color:var(--yellow);font-size:10px}.leaderboard-nickname{overflow:hidden;color:#d9e7ec;font-size:11px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.leaderboard-score{color:var(--mint);font-size:11px;font-variant-numeric:tabular-nums}.leaderboard-status{padding:9px;color:#8096a0;font-size:10px;text-align:center}
