@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--primary:#059669;--primary-strong:#047857;--primary-soft:#d1fae5;--primary-tint:#ecfdf5;--primary-rgb:5 150 105;--progress-fill:#22b183;--entry:#059669;--badge-bg:#e8efeb;--surface:#fff;--bg:#fafbfc;--tile:#f4f5f7;--track:#e5e9f2;--text:#141414;--text-soft:#3a3a42;--muted:#a4acb4;--muted-strong:#6e7580;--grid:#e4e7e9;--grid-strong:#919499;--danger:#ef4444;--danger-soft:#fee2e2;--brand-line:#cfe9dd;--brand-muted:#a9c9bb;--amber:#d98a55;--amber-soft:#fdedd7;--shadow-sm:0 1px 2px #11182708, 0 4px 12px #1118270a;--shadow-md:0 2px 4px #1118270d, 0 8px 24px #11182714;--shadow-lg:0 8px 16px #11182714, 0 24px 48px #1118271f;--shadow-primary:0 6px 16px rgb(var(--primary-rgb) / .3);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter Variable,Apple SD Gothic Neo,Noto Sans KR,system-ui,-apple-system,sans-serif}@supports (color:color-mix(in srgb, red, blue)){:root{--brand-line:color-mix(in srgb, var(--primary) 22%, #fff);--brand-muted:color-mix(in srgb, var(--primary) 45%, #fff)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{height:100%}body{overscroll-behavior:none;touch-action:manipulation;background:#e4efe9;position:fixed;inset:0;overflow:hidden}button,input{font:inherit;color:inherit;background:0 0;border:none}button{cursor:pointer;-webkit-user-select:none;user-select:none}:focus{outline:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.g2048{gap:14px}.home-title{text-align:left;flex:1}.g2048-home .brand-mark{width:min(52vw,190px);height:auto;color:var(--primary)}.best-chip{flex-direction:column;align-items:flex-end;gap:2px;padding-top:4px;display:flex}.best-chip strong{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.score-row{gap:10px;display:flex}.score-box{background:var(--tile);border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 8px;display:flex;position:relative}.score-label{letter-spacing:.12em;color:var(--muted);font-size:10px;font-weight:700}.score-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.score-gain{color:var(--primary);pointer-events:none;font-size:14px;font-weight:700;animation:.7s ease-out forwards score-gain;position:absolute;top:6px;right:12px}@keyframes score-gain{0%{opacity:0;transform:translateY(6px)}25%{opacity:1}to{opacity:0;transform:translateY(-16px)}}.tile-actions{gap:10px;display:flex}.tile-action{min-height:44px;color:var(--text-soft);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:14px;flex:1;justify-content:center;align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.tile-action:disabled{color:var(--muted);opacity:.5;box-shadow:none}.tile-action:active:not(:disabled){background:var(--primary-tint)}.board-area{flex-direction:column;gap:12px;margin:auto 0;display:flex}.board-frame{position:relative;container-type:inline-size}.tile-board{--size:min(100cqw, 60vh);--gap:calc(var(--size) * .026);--cell:calc((var(--size) - var(--gap) * (var(--cells) + 1)) / var(--cells));width:var(--size);height:var(--size);padding:var(--gap);background:color-mix(in srgb, var(--tile) 92%, #000);touch-action:none;border-radius:18px;margin:0 auto;position:relative}.tile-cells{grid-template-columns:repeat(var(--cells), 1fr);grid-template-rows:repeat(var(--cells), 1fr);gap:var(--gap);height:100%;display:grid}.tile-cell{background:var(--surface);opacity:.7;border-radius:10px}.tile{top:var(--gap);left:var(--gap);width:var(--cell);height:var(--cell);font-size:calc(var(--cell) * .46);font-variant-numeric:tabular-nums;letter-spacing:-.02em;translate:calc((var(--cell) + var(--gap)) * var(--col)) calc((var(--cell) + var(--gap)) * var(--row));will-change:translate;border-radius:10px;justify-content:center;align-items:center;font-weight:700;transition:translate .18s cubic-bezier(.22,.8,.3,1);display:flex;position:absolute}.tile.three{font-size:calc(var(--cell) * .37)}.tile.four{font-size:calc(var(--cell) * .29)}.tile.fresh{animation:.16s ease-out .12s both tile-appear}@keyframes tile-appear{0%{opacity:0;scale:.72}to{opacity:1;scale:1}}.tile.merged{animation:.18s ease-out .16s both tile-pop}@keyframes tile-pop{0%{scale:1}55%{scale:1.1}to{scale:1}}.tile.dying{animation:60ms linear .16s both tile-vanish}@keyframes tile-vanish{to{opacity:0}}@media (prefers-reduced-motion:reduce){.tile,.tile.fresh,.tile.merged,.tile.dying,.score-gain{transition:none;animation:none}.tile.dying{opacity:0}}.tile{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}.tile.v2{background:var(--surface)}.tile.v4{background:var(--primary-tint)}.tile.v8{background:var(--primary-soft)}.tile.v16{color:#fff;background:color-mix(in srgb, var(--primary) 55%, #fff)}.tile.v32{color:#fff;background:color-mix(in srgb, var(--primary) 72%, #fff)}.tile.v64{color:#fff;background:color-mix(in srgb, var(--primary) 88%, #fff)}.tile.v128{color:#fff;background:var(--primary)}.tile.v256{color:#fff;background:var(--primary-strong)}.tile.v512{color:#fff;background:color-mix(in srgb, var(--primary-strong) 82%, #000)}.tile.v1024{color:#fff;background:#2f3a42}.tile.v2048,.tile.v4096{color:#fff;box-shadow:var(--shadow-sm), 0 0 0 2px color-mix(in srgb, var(--primary) 60%, transparent);background:#1d242a}@supports not (color:color-mix(in srgb, red 50%, blue)){.tile-board{background:var(--tile)}.tile.v16,.tile.v32,.tile.v64{color:#fff;background:var(--primary)}.tile.v512{background:var(--primary-strong)}.tile.v2048,.tile.v4096{box-shadow:var(--shadow-sm)}}.hint-line{text-align:center;opacity:.9}.suika{gap:12px}.bowl-area{flex-direction:column;gap:10px;margin:auto 0;display:flex}.bowl{touch-action:none;background:0 0;width:min(100%,76.6284dvh - 252.874px);margin:0 auto;display:block}.rescue-row{gap:10px;display:flex}.rescue{background:var(--surface);min-height:48px;box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 8px;display:flex}.rescue strong{color:var(--text-soft);font-size:14px;font-weight:600}.rescue span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.rescue:disabled{background:var(--tile);box-shadow:none}.rescue:disabled strong{color:var(--muted)}.rescue:active:not(:disabled){background:var(--primary-tint)}.next-box{flex:0 0 96px;justify-content:center}.next-view{justify-content:center;align-items:center;gap:6px;height:28px;display:flex}.next-view strong{color:var(--text-soft);font-size:13px;font-weight:600}.fruit-icon{flex:none;display:block}.stat-fruit{justify-content:center;align-items:center;gap:5px;display:flex}.flat-meta.with-fruit{align-items:center;gap:5px;display:flex}.fruit-ladder{justify-content:center;align-items:center;gap:5px;margin-bottom:4px;display:flex}.suika-home .brand-mark{width:min(48vw,170px);height:auto;color:var(--primary)}.memory{gap:14px}.preview-hint{text-align:center;transition:opacity .2s}.preview-hint.done{opacity:.65}.memory-grid{grid-template-columns:repeat(var(--cols), 1fr);gap:10px;margin:auto 0;display:grid}.memory-card{aspect-ratio:3/4;perspective:600px;background:0 0}.memory-card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .32s cubic-bezier(.3,.8,.35,1);display:block;position:relative}.memory-card.open .memory-card-inner{transform:rotateY(180deg)}.memory-card-back,.memory-card-face{backface-visibility:hidden;border-radius:14px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.memory-card-back{background:var(--primary);box-shadow:var(--shadow-sm)}.memory-card-back:after{content:"";background:linear-gradient(#ffffff73 2px,#0000 2px) 0/100% 50%,linear-gradient(90deg,#ffffff73 2px,#0000 2px) 50% 0/50% 100%;border:2px solid #ffffff73;border-radius:6px;position:absolute;inset:22%}.memory-card-face{background:var(--surface);box-shadow:var(--shadow-sm);transform:rotateY(180deg)}.memory-card.matched .memory-card-face{background:var(--primary-tint);box-shadow:none}.memory-card.matched{animation:.3s ease-out both card-settle}@keyframes card-settle{0%{scale:1}45%{scale:1.07}to{scale:1}}.memory-card.celebrate .memory-card-inner{animation:card-cheer .62s ease-out var(--pop-delay,0s) both}.memory-card.celebrate .memory-card-face{animation:card-cheer-face .62s ease-out var(--pop-delay,0s) both}@keyframes card-cheer{0%{transform:rotateY(180deg)scale(1)}35%{transform:rotateY(180deg)scale(1.16)translateY(-6%)}70%{transform:rotateY(180deg)scale(.97)}to{transform:rotateY(180deg)scale(1)}}@keyframes card-cheer-face{0%{background:var(--primary-tint)}40%,to{background:var(--primary-soft)}}@media (prefers-reduced-motion:reduce){.memory-card-inner,.memory-card.matched,.memory-card.celebrate .memory-card-inner,.memory-card.celebrate .memory-card-face{transition:none;animation:none}}.memory-home .brand-mark{width:min(48vw,170px);height:auto;color:var(--primary)}.nono{gap:12px}.nono-board{--gap:1px;grid-template-rows:auto 1fr;grid-template-columns:auto 1fr;width:100%;margin:0 auto;display:grid}.nono-corner{grid-area:1/1}.nono-col-hints{grid-area:1/2;grid-template-columns:repeat(var(--cells), 1fr);gap:var(--gap);display:grid}.nono-row-hints{grid-area:2/1;grid-template-rows:repeat(var(--cells), 1fr);gap:var(--gap);display:grid}.nono-grid{grid-area:2/2;grid-template-columns:repeat(var(--cells), 1fr);grid-template-rows:repeat(var(--cells), 1fr);gap:var(--gap);aspect-ratio:1;background:var(--track);border-radius:8px;display:grid;overflow:hidden}.nono-hint{font-size:var(--hint-size);color:var(--muted-strong);font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:flex-end;gap:.35em;padding:2px;font-weight:600;display:flex}.nono-hint.col{min-height:calc(var(--col-hints) * 1.35em + 6px);flex-direction:column;justify-content:flex-end;align-items:center;gap:.15em}.nono-hint.row{min-width:calc(var(--row-hints) * 1.15em + 8px);gap:.4em}.nono-hint.done{color:var(--muted);opacity:.45}.nono-cell{background:var(--surface);transition:background .1s}.nono-cell.filled{background:var(--primary)}.nono-cell.marked{background:linear-gradient(45deg, transparent 44%, var(--muted) 44%, var(--muted) 56%, transparent 56%), linear-gradient(-45deg, transparent 44%, var(--muted) 44%, var(--muted) 56%, transparent 56%), var(--surface);opacity:.75;background-position:50%;background-repeat:no-repeat;background-size:52% 52%,52% 52%,100% 100%}.nono-cell.wrong{background:var(--danger);opacity:1}.nono-cell.top{box-shadow:inset 0 2px 0 -1px var(--grid-strong)}.nono-cell.left{box-shadow:inset 2px 0 0 -1px var(--grid-strong)}.nono-cell.top.left{box-shadow:inset 0 2px 0 -1px var(--grid-strong), inset 2px 0 0 -1px var(--grid-strong)}.nono-board.size-5{--hint-size:15px}.nono-board.size-10{--hint-size:11px}.nono-board.size-15{--hint-size:9px}.nono .board-area{align-items:center;margin:auto 0;display:flex}.mode-tabs{background:var(--tile);border-radius:16px;grid-template-columns:repeat(2,1fr);gap:8px;padding:5px;display:grid}.mode-tab{min-height:46px;color:var(--muted-strong);border-radius:12px;justify-content:center;align-items:center;gap:7px;font-size:15px;font-weight:600;display:flex}.mode-tab.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}.mode-swatch{background:var(--primary);border-radius:4px;width:15px;height:15px;display:block}.nono-home .brand-mark{width:min(48vw,180px);height:auto;color:var(--primary)}.bubble{gap:12px}.bubble .board-area{align-items:center;margin:auto 0}.bubble-canvas{touch-action:none;width:100%;max-width:420px;margin:0 auto;display:block}.bubble-home .brand-mark{width:min(48vw,170px);height:auto;color:var(--primary)}.match3{gap:12px}.match3-home .brand-mark{width:min(48vw,170px);height:auto;color:var(--primary)}.gem-board{--size:min(100cqw, 54vh);--gap:calc(var(--size) * .016);--cell:calc((var(--size) - var(--gap) * (var(--cells) + 1)) / var(--cells));width:var(--size);height:var(--size);padding:var(--gap);background:color-mix(in srgb, var(--tile) 92%, #000);touch-action:none;border-radius:18px;margin:0 auto;position:relative}.gem-layer{z-index:1;border-radius:18px;position:absolute;inset:0;overflow:hidden}.gem-cells{grid-template-columns:repeat(var(--cells), 1fr);grid-template-rows:repeat(var(--cells), 1fr);gap:var(--gap);height:100%;display:grid}.gem-cell{background:var(--surface);opacity:.55;border-radius:24%}.gem,.gem-burst,.gem-score{--x:calc((var(--cell) + var(--gap)) * var(--col));--y:calc((var(--cell) + var(--gap)) * var(--row))}.gem{top:var(--gap);left:var(--gap);width:var(--cell);height:var(--cell);translate:var(--x) var(--y);will-change:translate;touch-action:none;transition:translate .18s cubic-bezier(.22,.8,.3,1);position:absolute}.gem-face{background:radial-gradient(circle at 32% 28%, var(--gem-light), var(--gem) 52%, var(--gem-deep) 100%);box-shadow:inset 0 calc(var(--cell) * -.07) 0 #00000029, 0 1px 2px #1118271f;animation:gem-sway calc(2.8s + var(--sway) * 90ms) ease-in-out infinite;animation-delay:calc(var(--sway) * -.21s);border-radius:28%;position:absolute;inset:0}@keyframes gem-sway{0%,to{translate:-1.2%;rotate:-1.2deg}50%{translate:1.2%;rotate:1.2deg}}.gem-face:after{content:"";background:#ffffffbf;border-radius:50%;width:26%;height:18%;position:absolute;top:16%;left:18%;rotate:-25deg}.gem.c0,.gem-burst.c0{--gem:#ef4444;--gem-light:#fca5a5;--gem-deep:#b91c1c}.gem.c1,.gem-burst.c1{--gem:#3b82f6;--gem-light:#93c5fd;--gem-deep:#1d4ed8}.gem.c2,.gem-burst.c2{--gem:#f59e0b;--gem-light:#fcd34d;--gem-deep:#b45309}.gem.c3,.gem-burst.c3{--gem:#10b981;--gem-light:#6ee7b7;--gem-deep:#047857}.gem.c4,.gem-burst.c4{--gem:#a855f7;--gem-light:#d8b4fe;--gem-deep:#7e22ce}.gem.c5,.gem-burst.c5{--gem:#ec4899;--gem-light:#f9a8d4;--gem-deep:#be185d}.gem.dropping{animation:gem-drop calc(.17s + var(--drop) * 45ms) cubic-bezier(.42, 0, .72, .55)}@keyframes gem-drop{0%{translate:var(--x) calc(var(--y) - (var(--cell) + var(--gap)) * var(--drop))}70%{translate:var(--x) var(--y);animation-timing-function:ease-out;scale:1}82%{scale:1.12 .86}92%{scale:.97 1.05}to{translate:var(--x) var(--y);scale:1}}.gem.popping{z-index:2;animation:.24s cubic-bezier(.3,.8,.4,1) forwards gem-pop}@keyframes gem-pop{20%{filter:brightness(1.8)saturate(1.15);scale:1.32}to{opacity:0;filter:brightness(1.5);rotate:28deg;scale:.1}}.gem-burst{top:var(--gap);left:var(--gap);z-index:3;width:var(--cell);height:var(--cell);pointer-events:none;translate:var(--x) var(--y);rotate:calc((var(--row) * 37 + var(--col) * 61) * 1deg);position:absolute}.gem-burst:before{content:"";box-shadow:0 0 0 calc(var(--cell) * .08) var(--gem-light), 0 0 calc(var(--cell) * .5) calc(var(--cell) * .12) var(--gem);background:#fff;border-radius:50%;animation:.32s ease-out forwards burst-flash;position:absolute;inset:34%}@keyframes burst-flash{0%{opacity:1;scale:.25}25%{opacity:.8}to{opacity:0;scale:2.2}}.gem-burst:after{content:"";background:var(--gem);box-shadow:calc(var(--cell) * .36) 0 0 calc(var(--cell) * .02) var(--gem), calc(var(--cell) * -.32) 0 0 calc(var(--cell) * -.01) var(--gem-deep), 0 calc(var(--cell) * .34) 0 calc(var(--cell) * .01) var(--gem), 0 calc(var(--cell) * -.36) 0 calc(var(--cell) * -.01) var(--gem-light), calc(var(--cell) * .22) calc(var(--cell) * .26) 0 calc(var(--cell) * -.015) var(--gem-light), calc(var(--cell) * -.26) calc(var(--cell) * .22) 0 calc(var(--cell) * .015) var(--gem-light), calc(var(--cell) * .26) calc(var(--cell) * -.22) 0 calc(var(--cell) * -.02) var(--gem-deep), calc(var(--cell) * -.22) calc(var(--cell) * -.26) 0 calc(var(--cell) * .01) var(--gem);border-radius:50%;animation:.5s cubic-bezier(.15,.75,.3,1) forwards burst-shards;position:absolute;inset:45%}@keyframes burst-shards{0%{opacity:1;rotate:-18deg;scale:.15}55%{opacity:.9}to{opacity:0;rotate:24deg;scale:2.7}}.gem-score{top:var(--gap);left:var(--gap);z-index:5;width:var(--cell);height:var(--cell);font-size:calc(var(--cell) * .7);font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap;text-shadow:0 0 3px #111827d9,0 2px 8px #11182799,0 0 18px #fff6;pointer-events:none;translate:var(--x) var(--y);justify-content:center;align-items:baseline;gap:.12em;font-weight:800;animation:.72s cubic-bezier(.2,.9,.3,1) forwards gem-score;display:flex;position:absolute}.gem-score em{opacity:.95;font-size:.74em;font-style:normal}.gem-score.chained{color:#ffd54a}@keyframes gem-score{0%{opacity:0;scale:.4}20%{opacity:1;scale:1.3}40%{scale:1}to{translate:var(--x) calc(var(--y) - var(--cell) * 1.2);opacity:0}}.gem-board.rocked{animation-duration:.26s;animation-timing-function:ease-out}.gem-board.rocked.even{animation-name:board-rock-a}.gem-board.rocked.odd{animation-name:board-rock-b}.gem-board.rocked.hard{--rock:7px;animation-duration:.34s}@keyframes board-rock-a{25%{translate:0 var(--rock,3px)}60%{translate:0 calc(var(--rock,3px) * -.55)}}@keyframes board-rock-b{25%{translate:0 var(--rock,3px)}60%{translate:0 calc(var(--rock,3px) * -.55)}}.chain-badge{z-index:6;width:fit-content;box-shadow:var(--shadow-lg);pointer-events:none;background:#111827d1;border-radius:999px;justify-content:center;align-items:center;gap:10px;margin-inline:auto;padding:10px 24px;animation:.64s cubic-bezier(.2,.9,.3,1) forwards chain-badge;display:flex;position:absolute;top:10%;left:0;right:0}.chain-badge strong{font-variant-numeric:tabular-nums;color:#ffd54a;text-shadow:0 2px 10px #00000080;font-size:clamp(40px,16cqw,72px);font-weight:800;line-height:1}.chain-badge span{color:#ffffffd9;font-size:clamp(14px,4.6cqw,22px);font-weight:700}.chain-badge.hot strong{color:#ff9a3c}.chain-badge.hot{background:#180c06d9}@keyframes chain-badge{0%{opacity:0;rotate:-7deg;scale:.5}22%{opacity:1;rotate:3deg;scale:1.18}45%{rotate:0deg;scale:1}to{opacity:0;translate:0 -16px;scale:1.06}}.gem.shaken{animation:.36s gem-shake}@keyframes gem-shake{25%{rotate:-8deg}75%{rotate:8deg}}@media (prefers-reduced-motion:reduce){.gem-face{animation:none}.gem,.gem.dropping,.gem.popping,.gem.shaken,.gem-board.rocked,.gem-burst:before,.gem-burst:after,.chain-badge{transition-duration:10ms;animation-duration:10ms}.gem-score{animation-duration:.5s}}.doodle{gap:12px}.doodle-score-row{gap:10px;display:flex}.doodle-score-box{background:var(--tile);border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 8px;display:flex}.doodle-score-label{letter-spacing:.12em;color:var(--muted);font-size:10px;font-weight:700}.doodle-score-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.doodle-best-chip{flex-direction:column;align-items:flex-end;gap:2px;padding-top:4px;display:flex}.doodle-best-chip strong{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.doodle-stage-area{flex-direction:column;gap:10px;margin:auto 0;display:flex}.doodle-stage{aspect-ratio:400/620;width:min(100%,64.5161dvh - 161.29px);box-shadow:var(--shadow-sm);touch-action:none;border-radius:18px;margin:0 auto;display:block;overflow:hidden}.doodle-home .brand-mark{width:min(46vw,165px);height:auto;color:var(--primary)}@media (height<=680px){.doodle-stage{width:min(100%,64.5161dvh - 140.645px)}}.app{background:var(--bg);flex-direction:column;width:100%;max-width:420px;height:100%;margin:0 auto;display:flex;position:relative;overflow:hidden}.screen{padding:calc(env(safe-area-inset-top) + 20px) 20px calc(env(safe-area-inset-bottom) + 16px);overscroll-behavior:contain;flex-direction:column;flex:1;gap:16px;display:flex;overflow-y:auto}.row{justify-content:space-between;align-items:center;gap:8px;display:flex}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.accent{color:var(--primary)}.danger{color:var(--danger)}.card{text-align:left;background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;gap:12px;padding:16px;display:flex}.section-title{font-size:14px;font-weight:600}.icon-button{width:44px;height:44px;color:var(--text-soft);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:14px;justify-content:center;align-items:center;display:flex}.icon-button.ghost{box-shadow:none;background:0 0;border:none}.button{border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;padding:12px 18px;font-size:16px;font-weight:600;display:flex}.button.block{width:100%}.button.row-button{flex-direction:row;gap:8px}.button.primary{color:#fff;background:var(--primary);box-shadow:var(--shadow-primary)}.button.primary:active{background:var(--primary-strong)}.button.danger-fill{color:#fff;background:var(--danger)}.button.danger-fill:active{filter:brightness(.94)}.button.outline{background:var(--surface);box-shadow:var(--shadow-sm)}.button.text{min-height:46px;color:var(--muted-strong);font-weight:500}.button-sub{opacity:.9;font-size:12px;font-weight:400}.button-row{gap:10px;display:flex}.progress{background:var(--track);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress>span{background:var(--progress-fill);border-radius:999px;height:100%;transition:width .3s;display:block}.badge{letter-spacing:.06em;color:var(--primary);background:var(--badge-bg);border-radius:999px;padding:6px 11px;font-size:10px;font-weight:700}.badge.done{color:var(--muted-strong);background:var(--tile)}.stat-row{gap:10px;display:flex}.stat-tile{background:var(--surface);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:8px;padding:16px 8px;display:flex}.stat-label{letter-spacing:.1em;color:var(--muted);font-size:10px;font-weight:600}.stat-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.brand-lockup{color:var(--primary);align-items:center;gap:8px;display:inline-flex}.brand-lockup strong{color:var(--text);font-size:20px;font-weight:700}.brand-symbol{width:26px;height:26px}.hub{gap:14px}.hub .greeting{margin-top:-6px}.hub-quote{letter-spacing:-.01em;color:var(--text-soft);margin:14px 0 20px;font-size:19px;font-weight:600;line-height:1.65}.game-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.game-card{text-align:left;color:var(--primary);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:18px;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:6px;padding:16px 15px 15px;display:flex}.game-card strong{color:var(--text);font-size:17px;font-weight:700}.game-mark{width:42px;height:42px;margin-bottom:4px;display:flex}.game-note{color:var(--muted);font-size:11px;line-height:1.35}.game-card.tool{color:var(--muted)}.game-card.tool .game-mark{align-items:center}.game-card.soon{color:var(--muted);background:var(--tile);box-shadow:none}.game-card.soon strong{color:var(--muted-strong)}.placeholder{text-align:center;flex-direction:column;align-items:center;gap:8px;margin:auto 0;display:flex}.placeholder strong{color:var(--muted-strong);font-size:20px;font-weight:700}.placeholder p{line-height:1.6}.header-spacer{width:36px}.home{gap:14px}.home-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.back-button{width:36px;height:36px;color:var(--muted-strong);box-shadow:none;background:0 0;justify-content:center;align-items:center;margin-left:-8px;display:flex}.level-chip{flex-direction:column;align-items:flex-end;gap:6px;width:96px;padding-top:4px;display:flex}.level-chip-label{color:var(--muted-strong);font-size:13px;font-weight:700}.level-chip .progress{height:5px}.greeting{color:var(--muted-strong);margin-bottom:4px;font-size:13px}.headline{letter-spacing:-.01em;font-size:22px;font-weight:700;line-height:1.3}.player-block{flex-direction:column;gap:12px;padding:2px;display:flex}.player-level{font-size:19px;font-weight:700}.brand{justify-content:center;align-items:center;margin:auto 0;display:flex}.brand-mark{width:min(62vw,220px);height:auto}.home-actions{flex-direction:column;gap:8px;display:flex}.home .button.primary{min-height:64px;font-size:17px;font-weight:600}.text-actions{gap:8px;display:flex}.text-actions .button.text{min-height:56px;color:var(--text-soft);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:14px;flex:1;gap:3px;padding:8px 12px;font-size:15px}.text-actions .button.text .button-sub{color:var(--muted);opacity:1;font-size:12px}.sub-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.sub-header h1{text-align:center;flex:1;font-size:18px;font-weight:700}.sub-header h1:only-child,.hub .sub-header h1{text-align:left}.difficulty-list,.record-list{flex-direction:column;gap:12px;display:flex}.difficulty-card{gap:8px;padding:18px}.difficulty-label{font-size:18px;font-weight:700}.difficulty-stats{color:var(--muted-strong);justify-content:flex-start;gap:14px}.size-tabs{background:var(--tile);border-radius:16px;grid-template-columns:repeat(3,1fr);gap:8px;padding:5px;display:grid}.size-tab{color:var(--muted-strong);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;display:flex}.size-tab strong{font-size:15px;font-weight:700}.size-tab span{letter-spacing:.04em;color:var(--muted);font-size:10px}.size-tab.active{color:var(--primary);background:var(--surface);box-shadow:var(--shadow-sm)}.size-tab.active span{color:var(--primary);opacity:.75}.game{gap:12px;padding-left:16px;padding-right:16px}.game-header{justify-content:space-between;align-items:center;display:flex}.game-title{flex-direction:column;align-items:center;gap:4px;display:flex}.mode-label{letter-spacing:.14em;color:var(--muted);font-size:11px;font-weight:600}.timer{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.board{grid-template-columns:repeat(var(--box-cols,3), minmax(0, 1fr));grid-template-rows:repeat(var(--box-rows,3), minmax(0, 1fr));width:100%;max-width:min(100%, calc(100dvh - var(--board-reserve,320px)));aspect-ratio:1;background:var(--grid-strong);border:1px solid var(--grid-strong);border-radius:10px;gap:1px;margin-inline:auto;transition:filter .2s;display:grid;position:relative;overflow:hidden;container-type:inline-size}.box{grid-template-columns:repeat(var(--box-w,3), minmax(0, 1fr));grid-template-rows:repeat(var(--box-h,3), minmax(0, 1fr));background:var(--grid);gap:1px;display:grid}.board.blurred{filter:blur(6px)}.cell{min-width:0;font-size:calc(47cqw / var(--cells,9));color:var(--entry);background:var(--surface);justify-content:center;align-items:center;font-weight:500;display:flex;position:relative}.cell.given{color:var(--text);font-weight:700}.cell.hinted{color:#a78bfa}.cell.peer{background:var(--primary-tint)}.cell.same-value{background:var(--primary-soft)}.cell.wrong{color:var(--danger);background:var(--danger-soft)}.cell.selected{z-index:1;background:var(--primary-soft);box-shadow:inset 0 0 0 2px var(--entry)}.cell.selected.wrong{color:var(--danger);background:var(--danger-soft);box-shadow:inset 0 0 0 2px var(--danger)}.cell.selected.wrong .notes{color:var(--danger)}.digit{z-index:1;display:inline-block;position:relative}@keyframes cell-pop{0%{transform:scale(1)}40%{transform:scale(1.38)}70%{transform:scale(.96)}to{transform:scale(1)}}@keyframes cell-pop-color{0%,to{color:inherit}40%,70%{color:var(--entry)}}@keyframes cell-flash{0%,to{opacity:0}40%,70%{opacity:.9}}.cell.pop:before{content:"";background:var(--primary-soft);animation:cell-flash .5s ease-out var(--pop-delay,0s) both;position:absolute;inset:0}.cell.pop .digit{animation:cell-pop .5s ease-out var(--pop-delay,0s) both, cell-pop-color .5s ease-out var(--pop-delay,0s) both}@keyframes cell-celebrate{0%{transform:scale(1)}30%{transform:scale(1.5)}55%{transform:scale(.92)}75%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes board-celebrate{0%{box-shadow:0 0 0 0 rgb(var(--primary-rgb) / .35)}70%{box-shadow:0 0 0 18px rgb(var(--primary-rgb) / 0)}to{box-shadow:0 0 0 0 rgb(var(--primary-rgb) / 0)}}.board.celebrating{animation:1.1s ease-out both board-celebrate}@keyframes cell-celebrate-style{0%{color:inherit;font-weight:inherit}35%,to{color:var(--primary);font-weight:700}}@keyframes cell-celebrate-flash{0%{opacity:0}35%{opacity:.95}to{opacity:.55}}.board.celebrating .cell.pop .digit{animation:cell-celebrate .7s ease-out var(--pop-delay,0s) both, cell-celebrate-style .7s ease-out var(--pop-delay,0s) both}.board.celebrating .cell.pop:before{background:var(--primary-soft);animation:cell-celebrate-flash .7s ease-out var(--pop-delay,0s) both}@media (prefers-reduced-motion:reduce){.board.celebrating,.board.celebrating .cell.pop .digit,.cell.pop:before,.cell.pop .digit{animation:none}.cell.pop:before{content:none}}.notes{grid-template-columns:repeat(var(--note-cols,3), 1fr);width:100%;height:100%;font-size:calc(26cqw / var(--cells,9));color:var(--muted);font-weight:600;line-height:1;display:grid}.notes>span{justify-content:center;align-items:center;display:flex}.cell.wrong .notes{color:var(--danger)}.spacer.top{flex:1;min-height:8px}.spacer.bottom{flex:2;min-height:12px}.controls{gap:6px;display:flex}.control{flex-direction:column;flex:1;align-items:center;gap:8px;display:flex}.control-tile{width:50px;height:50px;color:var(--text-soft);background:var(--tile);border-radius:16px;justify-content:center;align-items:center;display:flex;position:relative}.control-label{letter-spacing:.1em;color:var(--muted);font-size:11px;font-weight:500}.control-badge{letter-spacing:.1em;color:var(--muted);font-size:10px;font-weight:600;position:absolute;top:-12px;right:-4px}.control.active .control-tile{color:#fff;background:var(--primary)}.control.active .control-label,.control.active .control-badge{color:var(--primary)}.control:disabled{opacity:.4}.keypad{grid-template-columns:repeat(var(--keys,9), 1fr);gap:6px;display:grid}.key{height:52px;font-size:clamp(20px, calc(160px / var(--keys,9)), 26px);color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:12px;justify-content:center;align-items:center;font-weight:600;display:flex}.key.active{color:var(--primary);border:2px solid var(--primary);box-shadow:none}.key:disabled{color:var(--muted);opacity:.4;box-shadow:none}.key:active{background:var(--primary-tint)}.status-bar{letter-spacing:.08em;color:var(--muted);background:var(--tile);border-radius:14px;justify-content:center;gap:32px;padding:14px 16px;font-size:11px;font-weight:500;display:flex}.overlay{background:#11182740;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.modal{text-align:center;background:var(--surface);width:100%;max-width:320px;box-shadow:var(--shadow-lg);border-radius:24px;flex-direction:column;gap:10px;padding:26px 22px 18px;display:flex}.modal p.small{margin-bottom:8px;line-height:1.5}.modal h2{margin-bottom:10px;font-size:22px;font-weight:700}.modal .button{border-radius:12px;min-height:50px}.modal-stats{border-top:1px solid var(--track);gap:10px;margin-top:6px;padding:18px 0 4px;display:flex}.modal-stats>div{flex-direction:column;flex:1;gap:8px;display:flex}.modal-stats strong{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.sound-toggle{letter-spacing:.1em;color:var(--muted);flex-direction:row;gap:8px;font-size:12px;font-weight:500}.result{text-align:center;justify-content:center;align-items:center;gap:16px}.result-icon{width:76px;height:76px;color:var(--primary);background:var(--primary-soft);border-radius:50%;justify-content:center;align-items:center;display:flex}.result-icon.danger{color:var(--danger);background:var(--danger-soft)}.result-title{letter-spacing:-.02em;margin-top:4px;font-size:30px;font-weight:700}.result>p{color:var(--muted-strong);margin-top:-12px;font-size:15px}.result .stat-row,.result .card,.result .button,.result .button-row,.result .level-block{width:100%}.compare{text-align:center;gap:6px;padding:18px 16px}.compare p{font-size:15px}.compare .small{letter-spacing:.08em;color:var(--muted)}.level-block{flex-direction:column;gap:10px;padding:2px;display:flex}.level-block .row{letter-spacing:.06em;font-size:12px}.stat-strip{padding:2px;display:flex}.stat-strip>div{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.stat-strip>div+div{border-left:1px solid var(--track)}.stat-strip strong{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.stat-strip span{color:var(--muted);font-size:11px}.row-tail{flex:none;align-items:center;gap:12px;display:flex}.link-row{text-align:left;width:100%}.link-row:active{opacity:.6}.section-head{align-items:baseline;margin-top:4px}.size-panel{background:var(--tile);border-radius:18px;flex-direction:column;gap:5px;padding:5px;display:flex}.size-panel .size-tabs{background:0 0;border-radius:0;padding:0}.stat-table{background:var(--surface);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;padding:10px 14px 6px;display:flex}.stat-table-row{text-align:right;font-variant-numeric:tabular-nums;grid-template-columns:1fr 3rem 3.6rem 3.6rem;align-items:center;gap:8px;padding:8px 0;font-size:14px;display:grid}.stat-table-row>:first-child{text-align:left}.stat-table-row.head{color:var(--muted);border-bottom:1px solid var(--track);padding:0 0 8px;font-size:11px}.flat-list{flex-direction:column;padding:0 2px;list-style:none;display:flex}.flat-row{justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.flat-row+.flat-row{border-top:1px solid var(--track)}.flat-main,.flat-side{flex-direction:column;gap:2px;min-width:0;display:flex}.flat-side{text-align:right;align-items:flex-end}.flat-title{font-size:15px;font-weight:600}.flat-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.flat-side .accent{font-size:13px;font-weight:700}.name-input{border-bottom:1px dashed var(--track);width:62%;padding:4px 0;font-size:16px;font-weight:700}.setting-row{flex-direction:row;justify-content:space-between;align-items:center;font-weight:600}.version-line{border-top:1px solid var(--border-soft,#f3f4f6);letter-spacing:.02em;padding-top:10px}.update-button{border-radius:12px;flex:none;min-height:44px;padding:10px 14px;font-size:14px}.update-button:disabled{opacity:.5}.setting-label{font-weight:600}.setting-input{text-align:right;background:var(--tile);border-radius:10px;width:55%;padding:8px 12px;font-size:15px;font-weight:600}.setting-input:focus{box-shadow:inset 0 0 0 2px var(--primary)}.switch{background:var(--track);border-radius:999px;align-items:center;width:46px;height:28px;padding:3px;transition:background .2s;display:flex}.switch>span{width:22px;height:22px;box-shadow:var(--shadow);background:#fff;border-radius:50%;transition:transform .2s}.switch.on{background:var(--primary)}.switch.on>span{transform:translate(18px)}.theme-grid{grid-template-columns:repeat(6,1fr);gap:10px;display:grid}.swatch{aspect-ratio:1;color:#fff;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;transition:transform .15s;display:flex}.swatch.selected{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--primary);transform:scale(1.06)}.tabbar{padding:10px 28px calc(env(safe-area-inset-bottom) + 12px);background:var(--surface);justify-content:space-around;display:flex}.tab{width:52px;height:40px;color:var(--muted);border-radius:14px;justify-content:center;align-items:center;display:flex;position:relative}.tab.active{color:var(--primary);background:var(--primary-tint)}.tab-dot{background:var(--danger);border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:12px}.rotate-notice{display:none}@media (orientation:landscape) and (height<=520px){.app{display:none}.rotate-notice{text-align:center;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:fixed;inset:0}.rotate-notice .rotate-icon{width:64px;height:64px;color:var(--primary);background:var(--primary-soft);border-radius:50%;justify-content:center;align-items:center;display:flex}.rotate-notice h2{font-size:19px;font-weight:700}.rotate-notice p{color:var(--muted-strong);font-size:14px}}@media (height<=680px){.screen{padding-top:calc(env(safe-area-inset-top) + 12px);padding-bottom:calc(env(safe-area-inset-bottom) + 10px);gap:10px}.game{gap:8px}.icon-button{width:40px;height:40px}.timer{font-size:22px}.control-tile{border-radius:13px;width:44px;height:44px}.control{gap:5px}.key{height:44px}.status-bar{padding:10px 12px}.spacer.top,.spacer.bottom{min-height:0}.board{--board-reserve:275px}.card{padding:14px}.brand{gap:2px;padding:4px 0}.home .button.primary{min-height:54px}.headline{font-size:20px}.player-block{gap:9px}.tabbar{padding:6px 24px calc(env(safe-area-inset-bottom) + 8px)}}@media (width>=700px){.app{max-width:560px}.screen{padding:calc(env(safe-area-inset-top) + 28px) 28px calc(env(safe-area-inset-bottom) + 24px);gap:20px}.game{padding-left:24px;padding-right:24px}.card{border-radius:20px;padding:20px}.icon-button{border-radius:16px;width:52px;height:52px}.button{border-radius:16px;min-height:60px;font-size:18px}.headline{font-size:26px}.level-chip{flex-direction:column;align-items:flex-end;gap:6px;width:96px;padding-top:4px;display:flex}.level-chip-label{color:var(--muted-strong);font-size:13px;font-weight:700}.level-chip .progress{height:5px}.greeting{font-size:15px}.player-level{font-size:22px}.home .button.primary{min-height:74px;font-size:20px}.sub-header h1{font-size:21px}.brand-mark{width:min(52vw,280px)}.difficulty-label{font-size:21px}.timer{font-size:32px}.mode-label{font-size:12px}.board{--board-reserve:440px;border-radius:12px}.control-tile{border-radius:18px;width:58px;height:58px}.control-label{font-size:12px}.key{border-radius:14px;height:62px;font-size:24px}.status-bar{padding:16px;font-size:12px}.stat-value{font-size:26px}.result-icon{width:92px;height:92px}.result-title{font-size:36px}.modal{max-width:380px}.tab{width:64px;height:46px}}@media (width>=820px) and (orientation:portrait){.app{max-width:620px}}@media (width>=900px) and (height>=600px) and (orientation:landscape){.app{max-width:1120px}.screen:not(.game),.tabbar{width:100%;max-width:560px;margin:0 auto}.game{grid-template:"board header""board controls""board keypad""board status"/minmax(0,1fr) clamp(280px,34%,400px);align-content:center;gap:18px 36px;padding:32px;display:grid}.game .spacer{display:none}.game-header{grid-area:header;align-self:start}.board{grid-area:board;place-self:center;width:min(100%,78vh,660px);max-width:none;height:auto}.controls{grid-area:controls;align-self:end;margin-top:0}.keypad{grid-area:keypad;grid-template-columns:repeat(var(--keys-half,5), 1fr);align-self:start}.status-bar{grid-area:status;align-self:end}}
