/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box}body,html{height:100%}body{background:var(--bg-dark);min-height:0;color:var(--text);flex-direction:column;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex}@supports (height:100dvh){body,html{height:100dvh;min-height:100dvh}}html:lang(ko) body{font-family:Seoul Hangang,Segoe UI,Malgun Gothic,Apple SD Gothic Neo,sans-serif}html:lang(ja) body{font-family:Kosugi Maru,Seoul Hangang,Segoe UI,Hiragino Maru Gothic ProN,sans-serif}html:lang(zh) body,html:lang(zh-Hans) body,html:lang(zh-Hant) body{font-family:ZCOOL KuaiLe,Noto Sans SC,Microsoft YaHei,PingFang SC,sans-serif}}@layer components{.skip-link{z-index:9999;background:var(--accent);color:var(--bg-dark);border-radius:4px;padding:.75rem 1rem;font-weight:700;text-decoration:none;position:absolute;left:-9999px}.skip-link:focus{outline:2px solid var(--accent-hot);outline-offset:2px;top:1rem;left:1rem}.app-root{flex-direction:column;height:100dvh;min-height:100dvh;display:flex;overflow:visible}.app-root:has(>.adfit-mobile-strip)>:first-child{box-sizing:border-box;padding-bottom:120px}.app-root>.adfit-mobile-strip{z-index:10;padding-bottom:env(safe-area-inset-bottom,0);box-sizing:border-box;position:fixed;bottom:0;left:0;right:0}.game-root{outline:none;flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;overflow:visible}.game-root:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page{z-index:0;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:visible}.page-menu{padding:0}.page-menu .page-content{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;min-height:0;padding:20px;display:flex;overflow:visible}.menu-section{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:320px;display:flex}.menu-actions,.menu-actions-row{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.menu-actions-row--full{flex-basis:100%;width:100%}.menu-actions-secondary{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.page-game{padding:0;position:relative}.page-game .board-wrap{flex:1;min-height:0;padding-top:56px}.game-hud{pointer-events:none;z-index:4;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:12px;right:6px}.game-hud .btn-hud{pointer-events:auto;min-height:36px;padding:8px 14px;font-size:.9rem}.game-hud-actions{flex-direction:column;align-items:flex-end;gap:6px;margin-left:12px;display:flex}.game-hud .controls-modal-btn{position:static;top:auto;left:auto}.game-hud .game-hud-stats-wrap{pointer-events:auto;background:var(--bg-panel);-webkit-backdrop-filter:blur(12px);border:1px solid #ffffff14;border-radius:10px;align-items:stretch;min-width:0;height:auto;min-height:56px;transition:width .25s ease-out,min-width .25s ease-out;display:flex;overflow:visible;box-shadow:0 0 0 1px #00e5ff14,0 8px 24px #00000059,inset 0 1px #ffffff0f}.game-hud .game-hud-stats-wrap .game-hud-stats-toggle{width:20px;min-width:20px;min-height:56px;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0003;border:none;border-right:1px solid #ffffff1a;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;padding:0;transition:background .15s,color .15s;display:flex}.game-hud-stats-wrap{background:var(--bg-panel);-webkit-backdrop-filter:blur(12px);border:1px solid #ffffff14;border-radius:10px;align-items:stretch;min-width:0;height:auto;min-height:56px;transition:width .25s ease-out,min-width .25s ease-out;display:flex;overflow:visible;box-shadow:0 0 0 1px #00e5ff14,0 8px 24px #00000059,inset 0 1px #ffffff0f}.game-hud-stats-toggle{width:20px;min-width:20px;min-height:56px;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0003;border:none;border-right:1px solid #ffffff1a;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;padding:0;transition:background .15s,color .15s;display:flex}.game-hud-stats-toggle:hover{color:var(--accent);background:#00e5ff26}.game-hud-stats-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.game-hud-stats-toggle-icon{font-size:1.1rem;font-weight:700;line-height:1;display:block}.game-hud-stats-wrap--collapsed .game-hud-stats{opacity:0;pointer-events:none;border:none;flex:0 0 0;width:0;min-width:0;max-width:0;margin:0;padding-left:0;padding-right:0;overflow:visible}.game-hud .game-hud-stats-wrap.game-hud-stats-wrap--collapsed,.game-hud-stats-wrap--collapsed{width:20px;min-width:20px;height:56px;min-height:56px}.game-hud .game-hud-stats-wrap.game-hud-stats-wrap--collapsed .game-hud-stats-toggle,.game-hud-stats-wrap--collapsed .game-hud-stats-toggle{border-right:none;height:56px;min-height:56px}.game-hud-stats{flex:auto;align-items:stretch;gap:8px;padding:10px;transition:opacity .2s ease-out}.game-hud-stat,.game-hud-stats{outline:none;min-width:0;display:flex}.game-hud-stat{flex-direction:column;flex:0 auto;align-items:flex-start;gap:4px}.game-hud-stat-value:focus,.game-hud-stat:focus{outline:none}.game-hud-stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);opacity:.9;font-size:1rem;font-weight:600;line-height:1.35}.game-hud-stat-value{color:var(--accent);text-shadow:0 0 14px var(--accent-dim);letter-spacing:.02em;font-size:1.25rem;font-weight:700;line-height:1.2}.game-hud-stat--score-block{flex-direction:column;flex:0 auto;align-items:flex-start;gap:2px;min-width:0;display:flex}.game-hud-stat:has(.level-badge){justify-content:center}.game-hud-stat:has(.level-badge) .game-hud-stat-value{font-size:1rem}.game-hud-stat:has(.level-badge) .level-badge{border-radius:8px;padding:6px 10px;font-size:1rem}.game-hud-stat.game-hud-stat--score-block .game-hud-score-badge{box-sizing:border-box;border-radius:8px;min-width:0;padding:6px 10px;font-size:1rem}.game-hud-score-badge .game-hud-stat-value,.game-hud-score-badge .game-hud-stat-value--sub{font-size:1rem}.game-hud-progress-wrap{flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-width:80px;display:flex}.game-hud-stat-value--sub{opacity:.95;font-size:1rem;font-weight:600}.game-hud-progress{background:#ffffff1f;border-radius:3px;width:100%;height:6px;margin-top:0;overflow:visible}.game-hud-progress-bar{background:linear-gradient(90deg,var(--accent-dim),var(--accent));border-radius:3px;height:100%;transition:width .25s ease-out}.touch-controls{padding:16px 16px max(16px,env(safe-area-inset-bottom));z-index:4;pointer-events:none;justify-content:space-between;align-items:flex-end;gap:20px;display:none;position:absolute;bottom:0;left:0;right:0}.touch-controls .touch-btn{pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-width:48px;min-height:48px;color:var(--text);background:#0c0e1c80;border:1px solid #ffffff1a;border-radius:14px;padding:10px;font-size:1.5rem;font-weight:700;transition:transform .1s,box-shadow .15s;box-shadow:0 0 0 1px #00e5ff14,0 4px 12px #00000040,inset 0 1px #ffffff0d}.touch-controls .touch-btn:active{box-shadow:0 0 0 1px var(--accent-dim),inset 0 2px 8px #00000059;transform:scale(.95)}.touch-controls-dpad{grid-template-rows:1fr;grid-template-columns:1fr 1fr;align-content:end;gap:6px;width:102px;height:54px;display:grid}.touch-btn-left{grid-area:1/1}.touch-btn-right{grid-area:1/2}.touch-controls-right{flex-direction:column;align-items:center;gap:6px;display:flex}.touch-controls-right-row{gap:6px;display:flex}.touch-btn-up,.touch-controls-right .touch-btn-down{flex:none}.touch-btn-hard{letter-spacing:.02em;flex:none;justify-content:center;align-items:center;min-width:102px;min-height:56px;padding:10px 12px;font-size:.95rem;font-weight:700;line-height:1;display:flex}.touch-btn-hard-icon{text-align:center;display:block}@media (max-width:768px){.touch-controls{display:flex}}@media (pointer:coarse) and (min-width:769px){.touch-controls{display:flex}}.level-badge{font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#00e5ff1f,#00b4dc14);border:1px solid #00e5ff59;border-radius:10px;align-items:baseline;gap:4px;padding:4px 10px;display:inline-flex;box-shadow:0 0 0 1px #00e5ff1a,inset 0 1px #ffffff14}.level-badge-prefix{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);opacity:.95;font-size:.75em;font-weight:600}.level-badge-num{color:var(--accent-hot);text-shadow:0 0 12px var(--accent-dim);letter-spacing:.02em;font-size:1em;font-weight:700}.level-badge--small{border-radius:6px;gap:2px;padding:2px 6px;font-size:.8rem}.level-badge--small .level-badge-prefix{font-size:.7em}.level-badge--small .level-badge-num{font-size:.95em}.navbar{min-height:var(--navbar-height);background:0 0;border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:center;padding:12px 20px;position:relative}.navbar,.navbar-trophies{align-items:center;display:flex}.navbar-trophies{gap:6px;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.navbar-trophies .trophy-icon{opacity:.9;font-size:1.5rem;line-height:1}.navbar-trophies .trophy-icon--easy{filter:sepia()saturate(2.4)hue-rotate(-38deg)brightness(.76)contrast(1.08)}.navbar-trophies .trophy-icon--normal{filter:grayscale()brightness(1.15)}.navbar-trophies .trophy-icon--hard{filter:saturate(1.15)brightness(1.02)}.navbar-trophies .trophy-icon--empty{opacity:.5}.navbar-trophy-info-btn{width:36px;height:36px;color:var(--text);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;font-weight:700;transition:background .2s,border-color .2s;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.navbar-trophy-info-btn:hover{background:#fff3;border-color:#ffffff80}.trophy-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(12px);background:#000000b3;justify-content:center;align-items:center;padding:24px;animation:overlay-in .35s ease-out;display:flex;position:fixed;inset:0}.trophy-modal-card{background:linear-gradient(165deg,#12162afa,#080c1cfc);border:1px solid #ffffff1f;border-radius:20px;flex-direction:column;align-items:center;gap:20px;min-width:280px;max-width:90%;max-height:85vh;padding:28px 32px;animation:overlay-card-in .4s cubic-bezier(.34,1.56,.64,1);display:flex;overflow:visible;box-shadow:0 0 0 1px #00e5ff26,0 0 48px #00000080,0 24px 48px #0006,inset 0 1px #ffffff0f}.trophy-modal-title{letter-spacing:.08em;color:var(--accent);text-shadow:0 0 16px var(--accent-dim);margin:0;font-size:clamp(1.25rem,4vw,1.75rem);font-weight:700}.trophy-modal-desc{color:var(--text-muted);text-align:center;margin:0;font-size:.9rem;line-height:1.4}.trophy-modal-list{flex-direction:column;gap:12px;width:100%;margin:0;padding:0;list-style:none;display:flex}.trophy-modal-item{background:#ffffff0d;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;display:flex}.trophy-modal-item-icon{flex-shrink:0;font-size:1.5rem;line-height:1}.trophy-modal-item-icon--easy{filter:sepia()saturate(2.4)hue-rotate(-38deg)brightness(.76)contrast(1.08)}.trophy-modal-item-icon--normal{filter:grayscale()brightness(1.15)}.trophy-modal-item-icon--hard{filter:saturate(1.15)brightness(1.02)}.trophy-modal-item-label{color:var(--text);min-width:4em;font-weight:600}.trophy-modal-item-requirement{color:var(--text-muted);margin-left:auto;font-size:.875rem}.trophy-modal-item-icon--locked{opacity:.6}.trophy-modal-item-icon--earned.trophy-modal-item-icon--easy{filter:sepia()saturate(2.6)hue-rotate(-38deg)brightness(.78)contrast(1.1)drop-shadow(0 0 6px #b06a30b8)}.trophy-modal-item-icon--earned.trophy-modal-item-icon--normal{filter:grayscale()brightness(1.15)drop-shadow(0 0 6px #c8c8d280)}.trophy-modal-item-icon--earned.trophy-modal-item-icon--hard{filter:saturate(1.15)brightness(1.02)drop-shadow(0 0 6px #ffc10780)}.trophy-modal-item--earned .trophy-modal-item-requirement{color:var(--accent)}.navbar-title{letter-spacing:.12em;text-transform:uppercase;gap:.5rem;margin:0;font-size:clamp(1.25rem,4vw,2rem);font-weight:700}.navbar-logo-btn,.navbar-title{justify-content:center;align-items:center;display:flex}.navbar-logo-btn{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.navbar-logo-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.navbar-logo-wrap{justify-content:center;align-items:center;gap:.5rem;height:clamp(28px,5vw,40px);line-height:0;display:flex;overflow:visible}.navbar-logo-icon{aspect-ratio:1;flex-shrink:0;width:auto;height:100%}@media (max-width:374px){.navbar-logo-icon{display:none}}.navbar-logo-img{object-fit:cover;object-position:top center;width:auto;height:100%;max-height:100%;filter:drop-shadow(0 0 12px var(--accent-dim));display:block}.navbar-title .navbar-logo-btn:hover .navbar-logo-img,.navbar-title .navbar-logo-img:hover{filter:drop-shadow(0 0 16px var(--accent-dim))}.navbar-logo{object-fit:contain;width:auto;height:clamp(28px,5vw,40px);display:block}.navbar-title .navbar-logo{color:var(--text);filter:drop-shadow(0 0 12px var(--accent-dim))}.navbar-title .navbar-logo-btn:hover .navbar-logo,.navbar-title .navbar-logo:hover{color:var(--accent);filter:drop-shadow(0 0 16px var(--accent-dim))}.navbar-title-text{background:linear-gradient(135deg,var(--accent-hot) 0,var(--accent) 50%,#00b8d4 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 24px var(--accent-dim));background-size:200%;-webkit-background-clip:text;background-clip:text;animation:title-glow 3s ease-in-out infinite alternate}.header{text-align:center;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0f1223f5,#080a16eb);flex-shrink:0;padding:12px 20px}.title{letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(135deg,var(--accent-hot) 0,var(--accent) 50%,#00b8d4 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 24px var(--accent-dim));background-size:200%;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(1.25rem,4vw,2rem);font-weight:700}.layout{flex:1;justify-content:center;gap:clamp(12px,2vw,20px);width:100%;max-width:1400px;margin:0 auto;padding:clamp(12px,2vh,24px) clamp(12px,2vw,20px);overflow:visible}.layout,.side{align-items:center;min-height:0;display:flex}.side{flex-direction:column;flex-shrink:0}.side-left{order:-1}.main{flex-direction:column;gap:clamp(12px,2vh,24px)}.board-wrap,.main{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:visible}.board-wrap{box-shadow:0 0 0 1px #ffffff14,0 0 40px var(--accent-glow),inset 0 0 60px #0006,inset 0 0 0 1px #00e5ff14;background:linear-gradient(145deg,#0a0f23f2,#050814fa);border-radius:16px;padding:clamp(8px,1.5vw,12px);animation:board-frame-pulse 4s ease-in-out infinite;position:relative}.board-wrap-inner{transform-origin:50%;max-width:100%;position:relative}.board-wrap .board{z-index:1;display:block;position:relative}.sky-effects{pointer-events:none;z-index:2;contain:layout paint;border-radius:16px;position:absolute;inset:0;overflow:visible}.sky-effect{will-change:transform;position:absolute}.sky-effect--fly{justify-content:center;align-items:center;width:64px;height:38px;display:flex}.sky-effect--fly.sky-effect--ltr{animation:sky-fly-ltr linear forwards;left:0}.sky-effect--fly.sky-effect--rtl{animation:sky-fly-rtl linear forwards;left:auto;right:0}.sky-effect--fly.sky-effect--rtl .sky-sprite{transform:scaleX(-1)}.sky-sprite{filter:drop-shadow(0 0 6px #00e5ff4d)}.sky-sprite--cloud{filter:drop-shadow(0 4px 8px #648cc859)drop-shadow(0 2px 4px #5078b440)drop-shadow(0 0 6px #00e5ff33)}.sky-effect--dark-cloud{pointer-events:none;background:linear-gradient(#140f2366,#0f0a1938 45%,#0000);height:36%;animation:sky-dark-cloud 8s ease-in-out forwards;top:0;left:0;right:0}.line-clear-overlay{pointer-events:none;z-index:2;border-radius:16px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.line-clear-text{color:#fff;text-shadow:0 0 8px var(--accent),0 0 20px var(--accent-dim),0 0 40px var(--accent-glow),0 2px 4px #00000080,0 4px 12px #0006;letter-spacing:.02em;transform-origin:50%;font-family:inherit;font-size:clamp(2rem,8vw,3.5rem);font-weight:700;animation:line-clear-text-pop .55s ease-out forwards}html:lang(ko) .line-clear-text{font-family:Seoul Hangang,Segoe UI,sans-serif}html:lang(ja) .line-clear-text{font-family:Kosugi Maru,Seoul Hangang,sans-serif}html:lang(zh) .line-clear-text,html:lang(zh-Hans) .line-clear-text,html:lang(zh-Hant) .line-clear-text{font-family:ZCOOL KuaiLe,Noto Sans SC,sans-serif}.cell--ice{border:1px solid #d2f4ffb3;animation:ice-shimmer 2.8s ease-in-out infinite;position:relative}.cell--ice:after{content:"";pointer-events:none;background:linear-gradient(140deg,#ffffff73,#ffffff14 40%,#fff0 65%);border-radius:3px;position:absolute;inset:1px}.cell--drop-anchor{outline-offset:-2px;outline:2px dashed #7edefff2}.cell--drop-anchor-invalid{outline-color:#ff7373f2;box-shadow:inset 0 0 0 1px #ff7373b3}@keyframes ice-shimmer{0%,to{filter:saturate()brightness()}50%{filter:saturate(1.15)brightness(1.12)}}.cell--clearing{animation:cell-clear .5s ease-out forwards}.overlay{z-index:3;-webkit-backdrop-filter:blur(12px);background:#000000b3;border-radius:16px;justify-content:center;padding:24px;animation:overlay-in .35s ease-out;position:absolute;inset:0}.overlay,.overlay-card{flex-direction:column;align-items:center;display:flex}.overlay-card{background:linear-gradient(165deg,#12162af2,#080c1cfa);border:1px solid #ffffff1f;border-radius:20px;gap:20px;min-width:280px;max-width:90%;padding:32px 40px;animation:overlay-card-in .4s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 0 1px #00e5ff26,0 0 48px #00000080,0 24px 48px #0006,inset 0 1px #ffffff14}.overlay-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text);text-shadow:0 0 20px var(--accent-dim),0 2px 4px #0006;margin:0;font-size:clamp(1.75rem,5vw,2.5rem);font-weight:700;animation:overlay-title-pulse 1.5s ease-in-out infinite alternate}.overlay-title:after{content:none;display:none}.overlay:not(.overlay--gameover) .overlay-title{color:var(--accent-hot);font-size:clamp(1.25rem,4vw,1.75rem)}.overlay--gameover .overlay-card{border-color:#ff785040;box-shadow:0 0 0 1px #ff645033,0 0 48px #00000080,0 24px 48px #0006,inset 0 1px #ffffff0f}.overlay--gameover .overlay-title{color:#ffb4a0;text-shadow:0 0 20px #ff785080,0 0 40px #ff503c40,0 2px 4px #00000080;font-size:clamp(1.25rem,3.5vw,1.75rem)}.overlay--gameover .overlay-title:after{content:none;display:none}.overlay-stats{flex-wrap:wrap;justify-content:center;gap:20px;width:100%;margin:0;display:flex}.overlay-stat{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;align-items:center;gap:6px;min-width:100px;padding:14px 24px;display:flex;box-shadow:inset 0 1px #ffffff0f}.overlay-stat-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:1rem;font-weight:600}.overlay-stat-value{color:var(--accent);text-shadow:0 0 16px var(--accent-dim);letter-spacing:.02em;font-size:1.5rem;font-weight:700}.overlay--gameover .overlay-stat-value{color:#ffc4a8;text-shadow:0 0 16px #ffc4a866}.overlay-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:4px;display:flex}.game-ui{border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(165deg,#12162aeb,#080c1cf5);border-radius:16px;flex-direction:column;flex-shrink:0;align-items:center;gap:clamp(12px,2vh,20px);min-width:260px;max-width:320px;max-height:100%;padding:clamp(14px,2vh,24px) clamp(16px,2vw,28px);display:flex;overflow:visible;box-shadow:0 0 0 1px #ffffff0f,0 12px 40px #00000059,inset 0 1px #ffffff14}.game-stats{flex-wrap:wrap;justify-content:center;gap:16px 24px;display:flex}.stat{background:var(--bg-glass);border:1px solid #ffffff14;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 16px;transition:transform .2s,box-shadow .2s;display:flex}.stat:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00e5ff1f}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:1rem;font-weight:500}.stat-value{color:var(--accent);text-shadow:0 0 14px var(--accent-dim);letter-spacing:.02em;font-size:1.5rem;font-weight:700}.stat-mult{opacity:.9;margin-left:2px;font-size:.85em}.stat-speed{color:var(--text-muted);margin-top:2px;font-size:.875rem;font-weight:500;display:block}.stat--next-level{flex:100%;max-width:100%}.stat--next-level .stat-label{font-size:.875rem;font-weight:500}.stat-value--next{font-weight:600;font-size:1.1rem!important}.stat-progress{background:#ffffff1f;border-radius:4px;width:100%;height:8px;margin-top:8px;overflow:visible}.stat-progress-bar{background:linear-gradient(90deg,var(--accent-dim),var(--accent));height:100%;box-shadow:0 0 12px var(--accent-dim);border-radius:4px;transition:width .25s ease-out}.game-actions{flex-wrap:wrap;gap:14px;margin-top:-8px;display:flex}.btn,.game-actions{justify-content:center}.btn{color:var(--text);background:var(--btn-bg);border:1px solid var(--border);cursor:pointer;letter-spacing:.03em;border-radius:12px;align-items:center;min-height:36px;padding:6px 14px;font-size:1rem;font-weight:600;transition:background .2s,transform .15s,box-shadow .2s,border-color .2s;display:inline-flex}.btn:hover{background:var(--btn-hover);transform:translateY(-2px);box-shadow:0 8px 24px #00000040}.btn:active{transform:translateY(0)scale(.98)}.btn-reset{color:#ffc4a8;background:#ff503c1a;border-color:#ff645066}.btn-reset:hover{background:#ff64502e;box-shadow:0 8px 28px #ff503c38}.btn-primary{border-color:var(--accent-dim);color:var(--accent);background:linear-gradient(135deg,#00c8f038,#008cc82e)}.btn-primary:hover{background:linear-gradient(135deg,#00dcff52,#00a0dc47);box-shadow:0 8px 28px #00e5ff47,0 0 0 1px #00e5ff40}.btn-diff,.btn-pause{color:var(--text);background:#ffffff24;border:1px solid #ffffff47;font-weight:500;box-shadow:0 2px 8px #00000040}.btn-diff{flex-direction:column;align-items:center;gap:6px;min-height:48px;padding:14px 22px;display:inline-flex}.btn-diff-label{line-height:1.2;display:block}.level-badge--current{background:linear-gradient(135deg,#00e5ff2e,#00b4dc1f);border-color:#00e5ff80}.btn-diff:hover{color:var(--text);background:#ffffff38;border-color:#fff6}.btn-diff--current{color:var(--accent);border-color:var(--accent-dim);background:#00e5ff1f}.btn-diff--current:hover{color:var(--accent-hot);border-color:var(--accent-dim);background:#00e5ff2e}.btn-diff--recommended{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim)}.btn-diff--recommended:hover{background:#00e5ff26}.difficulty-section{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.difficulty-section-label{color:var(--text-muted);font-size:1.0625rem;font-weight:500}.difficulty-section-subtitle{color:var(--text-muted);text-align:center;margin:0 0 4px;font-size:.9375rem}.difficulty-unlock-hint{color:var(--text-muted);text-align:center;margin:0;font-size:1rem}.difficulty-buttons{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.trophy-icon{align-items:center;font-size:1rem;line-height:1;display:inline-flex}.trophy-icon--earned{filter:drop-shadow(0 0 4px #ffc10799)}.trophy-icon--earned.trophy-icon--easy{filter:sepia()saturate(2.6)hue-rotate(-38deg)brightness(.78)contrast(1.1)drop-shadow(0 0 4px #b06a30b8)}.trophy-icon--earned.trophy-icon--normal{filter:grayscale()brightness(1.15)drop-shadow(0 0 4px #c8c8d280)}.trophy-icon--earned.trophy-icon--hard{filter:saturate(1.15)brightness(1.02)drop-shadow(0 0 4px #ffc10799)}.trophy-celebrate-overlay{z-index:1300;pointer-events:none;position:fixed;inset:0}.trophy-celebrate,.trophy-celebrate-overlay{justify-content:center;align-items:center;display:flex}.trophy-celebrate{--trophy-fly-x:0px;--trophy-fly-y:0px;will-change:transform,opacity;flex-direction:column;gap:10px}.trophy-celebrate--pop{animation:trophy-celebrate-pop .9s cubic-bezier(.2,.95,.23,1.07) forwards}.trophy-celebrate--fly{animation:trophy-celebrate-fly .72s cubic-bezier(.2,.72,.2,1) forwards}.trophy-celebrate-icon{transform-origin:50%;font-size:clamp(3rem,12vw,5rem);line-height:1;position:relative}.trophy-celebrate-icon--glow:before{content:"";filter:blur(1px);z-index:-1;background:radial-gradient(circle,#ffdc78b3 0,#ffc1072e 45%,#ffc10700 72%);border-radius:50%;width:170%;height:170%;animation:trophy-celebrate-halo .9s ease-out forwards;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.trophy-celebrate-text{letter-spacing:.04em;color:#fff5cf;text-shadow:0 0 10px #ffd680e6,0 0 24px #ffc1078c,0 2px 8px #0000007a;margin:0;font-size:clamp(1rem,3.8vw,1.5rem);font-weight:700}.trophy-celebrate--fly .trophy-celebrate-text{opacity:0;transition:opacity .16s ease-out,transform .2s ease-out;transform:translateY(-8px)}@keyframes trophy-celebrate-pop{0%{opacity:0;filter:blur(4px);transform:scale(.22)}30%{opacity:1;filter:blur();transform:scale(1.18)}58%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes trophy-celebrate-halo{0%{opacity:.3;transform:translate(-50%,-50%)scale(.75)}45%{opacity:1;transform:translate(-50%,-50%)scale(1.06)}to{opacity:0;transform:translate(-50%,-50%)scale(1.22)}}@keyframes trophy-celebrate-fly{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:.82;transform:translate3d(var(--trophy-fly-x),var(--trophy-fly-y),0) scale(.26)}}.game-actions-secondary{border-top:1px solid #ffffff1a;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:auto;padding-top:22px;display:flex}.controls-hint{border-top:1px solid #ffffff14;flex-direction:column;align-items:center;gap:8px;margin-top:20px;padding-top:18px;display:flex}.controls-hint-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.9375rem;font-weight:500}.controls-hint-keys{color:var(--text-muted);opacity:.95;text-align:center;font-size:1rem;line-height:1.5}.controls-modal-btn{color:var(--text);cursor:pointer;background:#ffffff1a;border:1px solid #ffffff40;border-radius:12px;padding:10px 16px;font-size:.9rem;font-weight:500;transition:background .2s,border-color .2s;box-shadow:0 2px 12px #00000040}.controls-modal-btn--idle{right:12px;top:calc(var(--navbar-height) + 12px);z-index:100;position:fixed;left:auto}.controls-modal-btn:hover{background:#ffffff2e;border-color:#fff6}.controls-modal-keys{color:var(--text-muted);text-align:center;white-space:pre-line;margin:0;font-size:1rem;line-height:1.6}.controls-modal-touch{color:var(--accent-dim);text-align:center;margin:10px 0 0;font-size:.95rem;line-height:1.5}.controls-modal-card .trophy-modal-title{margin-bottom:4px}.drag-tray{background:#060a189e;border-top:1px solid #ffffff14;flex-wrap:wrap;gap:10px;padding:10px 12px 14px;display:flex}.drag-tray,.drag-tray-piece{justify-content:center;align-items:center}.drag-tray-piece{cursor:grab;background:#ffffff0d;border:1px solid #ffffff29;border-radius:12px;min-width:68px;min-height:68px;padding:10px;transition:transform .12s,border-color .18s,box-shadow .18s;display:inline-flex}.drag-tray-piece:hover{border-color:#7edeffa6;transform:translateY(-1px);box-shadow:0 6px 16px #00aaf03d}.drag-tray-piece--dragging,.drag-tray-piece--selected{border-color:#7edefff2;box-shadow:0 0 0 1px #7edeffa6,0 8px 20px #00aaf03d}.drag-tray-piece--dragging{opacity:1;cursor:grabbing}.drag-tray-piece--used{opacity:.35;cursor:not-allowed;filter:grayscale(.55)}.drag-tray-help{color:var(--text-muted);opacity:.9;margin:0 0 0 6px;font-size:.9rem}.legal-page{flex-direction:column;flex:1;align-items:center;min-height:0;padding:20px 16px;display:flex;overflow:visible}.legal-page-inner{width:100%;max-width:560px}.legal-back{color:var(--text-muted);margin-bottom:20px;font-size:.95rem;text-decoration:none;transition:color .2s;display:inline-block}.legal-back:hover{color:var(--accent)}.legal-title{color:var(--text);margin:0 0 16px;font-size:1.5rem;font-weight:700}.legal-body{color:var(--text-muted);font-size:.95rem;line-height:1.7}.legal-body p{margin:0 0 12px}.legal-body p:last-child{margin-bottom:0}.footer{background:#0a0c1c99;border-top:1px solid #ffffff14;flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:8px 16px;min-height:44px;padding:10px 16px;display:flex;box-shadow:inset 0 1px #ffffff08}.footer-link{color:var(--text-muted);font-size:.9rem;text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--accent)}.footer-sep{color:var(--text-muted);opacity:.6;font-size:.875rem}.banner-wrap{background:#0a0c1c66;border-top:1px solid #ffffff0f;flex-shrink:0;justify-content:center;align-items:center;padding:8px 16px;display:flex}.banner-wrap--top{border-top:none;border-bottom:1px solid #ffffff0f}.ad-banner{background:#00000040;border:1px solid #ffffff0f;border-radius:10px;min-height:40px;max-height:90px;overflow:visible}.ad-banner-bottom,.ad-banner-top{width:100%;min-width:280px;max-width:728px;height:auto;max-height:70px}@media (max-width:900px){.side{display:none}}@media (max-height:700px){.main{flex-flow:wrap;place-content:center}.board-wrap{flex:0 auto}.board-wrap,.game-ui{max-height:100%}}.adfit-pc-strip{background:#0a0c1cd9;border-top:1px solid #ffffff14;flex-shrink:0;justify-content:center;align-items:center;padding:8px 16px;display:flex;position:relative}.adfit-pc-strip .kakao_ad_area{width:100%;max-width:728px}.adfit-placeholder{color:var(--text-muted);opacity:.7;pointer-events:none;font-size:.875rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.adfit-mobile-strip{z-index:1;padding:0 0 env(safe-area-inset-bottom,0);box-sizing:border-box;background:#0a0c1cd9;border-top:1px solid #ffffff14;flex-shrink:0;justify-content:center;align-items:center;width:100%;display:flex;position:relative}.adfit-mobile-strip .kakao_ad_area{width:100%;max-width:320px}}@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--bg-dark:#050510;--bg-panel:#0c0e1ce0;--bg-glass:#ffffff0a;--accent:#00e5ff;--accent-dim:#00e5ff80;--accent-glow:#00e5ff59;--accent-hot:#00fff7;--text:#f8faff;--text-muted:#e0e8ff;--border:#ffffff1a;--border-glow:#00e5ff66;--btn-bg:#ffffff0f;--btn-hover:#ffffff1f;--shadow-glow:0 0 40px var(--accent-glow);--shadow-board:0 0 60px #00b4dc40;--navbar-height:56px}@font-face{font-family:Seoul Hangang;src:url(https://cdn.jsdelivr.net/gh/fonts-archive/SeoulHangang@main/SeoulHangang-Medium.woff2)format("woff2"),url(https://cdn.jsdelivr.net/gh/fonts-archive/SeoulHangang@main/SeoulHangang-Medium.woff)format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Seoul Hangang;src:url(https://cdn.jsdelivr.net/gh/fonts-archive/SeoulHangang@main/SeoulHangang-Bold.woff2)format("woff2"),url(https://cdn.jsdelivr.net/gh/fonts-archive/SeoulHangang@main/SeoulHangang-Bold.woff)format("woff");font-weight:700;font-style:normal;font-display:swap}.app-root:has(>.adfit-mobile-strip)>:first-child{box-sizing:border-box;padding-bottom:120px}.app-root>.adfit-mobile-strip{z-index:10;padding-bottom:env(safe-area-inset-bottom,0);box-sizing:border-box;position:fixed;bottom:0;left:0;right:0}.game-hud .game-hud-stats-wrap{pointer-events:auto;align-items:stretch;height:auto;min-height:56px;display:flex}.game-hud .game-hud-stats-wrap .game-hud-stats-toggle{width:20px;min-width:20px;min-height:56px;color:var(--accent);cursor:pointer;background:#0003;border:none;border-right:1px solid #ffffff1a;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;padding:0;display:flex}.game-hud .game-hud-stats-wrap.game-hud-stats-wrap--collapsed{width:20px;min-width:20px;height:56px;min-height:56px}.game-hud .game-hud-stats-wrap.game-hud-stats-wrap--collapsed .game-hud-stats-toggle{border-right:none;height:56px;min-height:56px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes overlay-in{0%{opacity:0;-webkit-backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(12px)}}@keyframes overlay-card-in{0%{opacity:0;transform:scale(.92)translateY(-12px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes overlay-title-pulse{0%{text-shadow:0 0 16px var(--accent-dim),0 2px 4px #0006}to{text-shadow:0 0 28px var(--accent-glow),0 2px 4px #0006}}@keyframes board-frame-pulse{0%,to{box-shadow:0 0 0 1px #ffffff14,0 0 40px var(--accent-glow),inset 0 0 60px #0006,inset 0 0 0 1px #00e5ff14}50%{box-shadow:0 0 0 1px #ffffff1a,0 0 55px #00e5ff4d,inset 0 0 60px #0006,inset 0 0 0 1px #00e5ff1f}}@keyframes title-glow{0%{filter:drop-shadow(0 0 20px var(--accent-dim))}to{filter:drop-shadow(0 0 32px var(--accent-glow))}}@keyframes sky-fly-ltr{to{transform:translate(calc(100% + 120px))}}@keyframes sky-fly-rtl{to{transform:translate(calc(-100% - 120px))}}@keyframes sky-dark-cloud{0%{opacity:0;transform:translateY(-100%)}25%{opacity:1;transform:translateY(0)}75%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30%)}}@keyframes line-clear-text-pop{0%{opacity:0;filter:blur(4px);transform:scale(.4)}25%{opacity:1;filter:blur();transform:scale(1.15)}45%{transform:scale(1.05)}70%{opacity:1}to{opacity:0;filter:brightness(1.5);transform:scale(1.1)}}@keyframes cell-clear{0%{filter:brightness(1.2);box-shadow:inherit;transform:scale(1)}25%{filter:brightness(2.8);box-shadow:0 0 14px var(--accent),0 0 28px var(--accent-dim),inset 0 0 8px #fff9;transform:scale(1.28)}50%{filter:brightness(2.2);transform:scale(1.12)}to{filter:brightness(.3);opacity:0;transform:scale(1)}}