@font-face{font-family:Fraunces;font-style:normal;font-weight:700 900;font-display:swap;src:url(/fonts/fraunces-vietnamese.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:700 900;font-display:swap;src:url(/fonts/fraunces-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:700 900;font-display:swap;src:url(/fonts/fraunces-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:600 900;font-display:swap;src:url(/fonts/nunito-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:600 900;font-display:swap;src:url(/fonts/nunito-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:600 900;font-display:swap;src:url(/fonts/nunito-vietnamese.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:600 900;font-display:swap;src:url(/fonts/nunito-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:600 900;font-display:swap;src:url(/fonts/nunito-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Nunito,ui-rounded,system-ui,sans-serif;color:#fff7ed;background:#1a0f08;font-synthesis:none}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,select:focus-visible{outline:3px solid #fde68a;outline-offset:3px}button:disabled{opacity:.5;cursor:default}button:active:not(:disabled){transform:translateY(2px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.game-viewport{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 25%,#513219,#140b06 75%)}.game-shell{position:relative;isolation:isolate;display:flex;flex-direction:column;width:100%;height:100dvh;overflow:hidden;color:#fff;background-position:center;background-size:cover;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);user-select:none}.wood-vignette{position:absolute;z-index:-1;inset:0;background:linear-gradient(to bottom,#0006,transparent,#0009);pointer-events:none}.block-canvas{position:absolute;inset:0;z-index:10;display:block;width:100%;height:100%;pointer-events:none}.game-header{position:relative;z-index:11;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px 8px;border-bottom:1px solid #e8b35640;background:linear-gradient(120deg,#492811f5,#2c180df5 60%,#20130cf5);box-shadow:inset 0 1px #ffde9b25,0 3px 12px #0005}.game-brand{display:flex;align-items:center;gap:8px;min-width:0}.game-logo{display:block;width:52px;height:52px;flex-shrink:0;object-fit:contain;filter:drop-shadow(0 3px 3px #0008)}.game-wordmark{min-width:0}.game-brand h1{display:flex;align-items:baseline;gap:4px;margin:0;color:#fff4d8;font-size:21px;line-height:1.1;font-weight:900;letter-spacing:-.8px;white-space:nowrap;text-shadow:0 2px #180c05,0 3px 6px #0008}.game-brand h1 span{color:#ffc94c}.game-brand p{margin:5px 0 0;color:#c6a171;font-size:8px;font-weight:900;letter-spacing:.9px;white-space:nowrap}.game-tools{display:flex;gap:6px;flex-shrink:0}.game-tools button{display:grid;width:34px;height:36px;padding:0;place-items:center;border:1px solid #d4a36455;border-radius:11px;background:linear-gradient(#613b20,#382112);color:#f4d8a9;font-weight:900;font-size:19px;box-shadow:0 3px #180c07,inset 0 1px #fce0ac30}.game-tools .tool-help{font-size:21px;color:#e7c58f}.game-tools .tool-profile{color:#ffd77d;background:linear-gradient(#755025,#462c14)}.game-tools button:hover{filter:brightness(1.15)}.game-tools button:active{translate:0 2px;box-shadow:0 1px #180c07}.score-ribbon{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:58px;padding:7px 16px;border-bottom:2px solid #382315;background:linear-gradient(100deg,#221408ee,#382210dd);box-shadow:inset 0 -1px #bf883c25}.score-ribbon>div{display:flex;flex-direction:column}.score-ribbon span{color:#f59e0b;font-size:9px;font-weight:900;letter-spacing:1.2px}.score-ribbon strong{color:#fffbeb;font-family:Fraunces,Georgia,serif;font-size:25px;line-height:1.1;font-weight:900;text-shadow:0 2px 4px #000b}.score-ribbon .record{text-align:right}.score-ribbon .record span{color:#a8a29e}.score-ribbon .record strong{color:#fbbf24;font-size:20px}.combo-indicator{color:#ffb42b;font-size:13px;font-weight:900;font-style:italic;text-shadow:0 2px #451a03}.playfield{display:flex;flex:1;min-height:0;position:relative;align-items:center;justify-content:center;container-type:size}.block-board{position:relative;flex-shrink:0;width:min(390px,calc(100cqw - 12px),calc(100cqh - 12px));aspect-ratio:1;touch-action:none;border:4px solid #523722;border-radius:16px;background:#140b06;box-shadow:inset 0 4px 24px #000,0 12px 32px #000b}.block-tray{position:relative;flex-shrink:0;padding:10px 12px 12px;border-top:2px solid #432d1d;background:linear-gradient(to top,#150a04,#1d0e06,#1d0e06bb)}.tray-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;height:96px}.tray-slot{position:relative;display:grid;place-items:center;border:0;border-radius:16px;background-color:transparent;background-position:center;background-size:contain;background-repeat:no-repeat;touch-action:none;cursor:grab;transition:filter .15s,opacity .15s,box-shadow .15s}.tray-slot img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 1px 3px #0009)}.tray-slot.selected{box-shadow:0 0 0 2px #fbbf24,0 0 20px #fbbf2473}.tray-slot.dragged{opacity:.3;cursor:grabbing}.tray-slot:not(:disabled):hover{filter:brightness(1.1)}.tray-shape{display:grid;gap:2px;pointer-events:none}.tray-shape>span{display:block;min-height:0;overflow:hidden;border-radius:2px}.empty-slot{font-size:11px;color:#fde68a66}.clear-banner{position:absolute;top:38%;left:0;width:100%;z-index:50;display:flex;flex-direction:column;align-items:center;pointer-events:none}.frameless-banner-title{font-family:Impact,Arial Black,system-ui,sans-serif;font-size:clamp(20px,6vw,30px);font-weight:900;letter-spacing:2px;text-transform:uppercase;background:linear-gradient(#fff,#fef08a 25%,#f59e0b 65%,#d97706);background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:1.5px #451a03;filter:drop-shadow(0 4px #78350f) drop-shadow(0 6px #451a03) drop-shadow(0 14px 25px #000e);animation:textJitter .12s 3;white-space:nowrap}.frameless-banner-points,.frameless-banner-combo,.score-popup{font-family:Impact,Arial Black,system-ui,sans-serif;font-size:26px;font-weight:900;color:#fbbf24;-webkit-text-stroke:1px #451a03;filter:drop-shadow(0 2px #451a03) drop-shadow(0 4px 12px #000e)}.frameless-banner-combo{margin-top:4px;color:#fb923c;font-size:24px;font-style:italic}.score-popup{position:absolute;z-index:30;pointer-events:none;translate:-50% -50%;color:#fef08a}@keyframes textJitter{20%{translate:-3px 2px;rotate:-1.5deg}40%{translate:3px -2px;rotate:1.5deg}60%{translate:-2px -2px}80%{translate:2px 2px}}.game-over{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;border:2px solid #f59e0b66;border-radius:12px;text-align:center;background:#000e}.game-over-icon{font-size:36px}.game-over h2{margin:4px 0;color:#fbbf24;font-family:Fraunces,Georgia,serif;font-size:23px}.game-over p{margin:3px 0 8px;color:#d1c4b2;font-size:12px}.game-over dl{width:min(200px,100%);padding:8px 12px;margin:5px 0 15px;border:1px solid #fff2;border-radius:12px;background:#ffffff16;font-size:12px}.game-over dl div{display:flex;justify-content:space-between;gap:6px;margin:3px 0}.game-over dd{margin:0;font-weight:900;color:#fbbf24}.gold-button{border:1px solid #fde68a;border-radius:999px;padding:10px 24px;color:#291408;background:linear-gradient(120deg,#f59e0b,#fbbf24,#d97706);font-weight:900;box-shadow:0 5px 16px #f59e0b40}.tutorial-overlay{position:absolute;inset:0;z-index:30;pointer-events:none}.tutorial-pill{position:absolute;top:130px;left:50%;display:flex;align-items:center;gap:8px;translate:-50% 0;width:max-content;max-width:95%;padding:7px 10px;border:1px solid #fbbf2480;border-radius:999px;color:#fcd34d;background:#000e;font-size:11px;font-weight:900;pointer-events:auto;box-shadow:0 5px 16px #000a}.tutorial-pill button{border:0;border-radius:5px;padding:3px 6px;font-size:10px;color:#d6d3d1;background:#fff2}.tutorial-path{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.tutorial-path path{fill:none;stroke:#fbbf2480;stroke-width:3.5;stroke-dasharray:6 6;stroke-linecap:round}.tutorial-hand{position:absolute;left:0;top:0;margin:-20px;font-size:40px;filter:drop-shadow(0 4px 12px #000b)}.renderer-error{position:absolute;z-index:70;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;background:#0c0a09f5}.boot-screen{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#6b3d1c,#1a0f08 70%)}.boot-card{width:min(86vw,340px);padding:28px;border:3px solid #8d5a2b;border-radius:26px;color:#ffedd5;text-align:center;background:#201108f0;box-shadow:0 18px 50px #0009}.boot-logo{display:block;width:96px;height:96px;margin:0 auto;object-fit:contain;filter:drop-shadow(0 4px 5px #0007)}.boot-card h1{margin:8px 0;font-family:Fraunces,Georgia,serif;font-size:25px;letter-spacing:1px}.boot-card p{color:#d6b28e;font-size:13px}.boot-track{display:block;width:100%;height:10px;margin:20px 0 8px;overflow:hidden;border:0;border-radius:999px;background:#3c2414}.boot-track::-webkit-progress-bar{background:#3c2414}.boot-track::-webkit-progress-value{border-radius:inherit;background:linear-gradient(90deg,#f59e0b,#facc15);transition:width .25s}.boot-card b{color:#fbbf24;font-size:12px}.pwa-install-overlay{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:16px;background:#060301c7;backdrop-filter:blur(8px)}.pwa-install-card{position:relative;width:min(360px,92vw);padding:24px 22px 18px;border:3px solid #81522c;border-radius:26px;color:#fff7ed;background:linear-gradient(#3a2112,#1b0d06);box-shadow:0 20px 70px #000a;text-align:center}.pwa-install-card img{display:block;width:88px;height:88px;margin:0 auto 8px;object-fit:contain}.pwa-install-card h2{margin:5px 0 8px;font-family:Fraunces,Georgia,serif;font-size:25px}.pwa-install-card p:not(.profile-kicker){margin:0 0 14px;color:#d6b28e;font-size:12px;line-height:1.5}.pwa-install-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:1px solid #8d5a2b;border-radius:50%;color:#fed7aa;background:#2c170c;font-size:24px;line-height:1}.pwa-install-instruction{margin:12px 0;padding:10px;border:1px solid #8d5a2b;border-radius:12px;color:#fed7aa;background:#0004;font-size:12px;line-height:1.5}.ranking-dialog,.profile-dialog{padding:0;border:0;border-radius:26px;width:min(360px,92vw);max-height:calc(100dvh - 32px);overflow:auto;color:#fff7ed;background:#1b0d06;box-shadow:0 20px 70px #000a}.ranking-dialog::backdrop,.profile-dialog::backdrop{background:#060301c7;backdrop-filter:blur(8px)}.ranking-card,.profile-card{position:relative;padding:24px 22px;border:3px solid #81522c;border-radius:inherit;color:#fff7ed;text-align:center;background:linear-gradient(#3a2112,#1b0d06)}.profile-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:1px solid #8d5a2b;border-radius:50%;color:#fed7aa;background:#2c170c}.profile-avatar{display:grid;width:52px;height:52px;margin:0 auto 10px;place-items:center;border:2px solid #fbbf24;border-radius:18px;font-size:27px;background:#5b3218}.profile-kicker{margin:0;color:#fbbf24;font-size:10px;font-weight:900;letter-spacing:1.3px}.profile-card h2{margin:5px 0 0;font-family:Fraunces,Georgia,serif;font-size:25px}.profile-name{margin:4px 0 14px;color:#d6b28e;font-size:13px}.profile-score,.linked-email{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px;border:1px solid #84552d;border-radius:14px;color:#fed7aa;background:#0004;font-size:12px;text-align:left}.profile-score strong{color:#fbbf24;font-size:20px}.linked-email{display:block;overflow-wrap:anywhere;color:#86efac;line-height:1.6;text-align:center}.linked-email b{color:#fff7ed}.profile-help,.profile-status{color:#d6b28e;font-size:12px;line-height:1.45}.profile-status{color:#fbbf24}.profile-card label{display:block;margin:12px 0 5px;color:#fbbf24;font-size:11px;font-weight:900;text-align:left}.profile-card input,.profile-card select{width:100%;padding:10px 12px;border:1px solid #8d5a2b;border-radius:12px;outline:none;color:#fff7ed;background:#1a0f08}.profile-card input:focus{border-color:#fbbf24;box-shadow:0 0 0 3px #fbbf2429}.profile-primary,.profile-secondary{width:100%;margin-top:12px;padding:10px 12px;border-radius:12px;font-weight:900}.profile-primary{border:2px solid #fde68a;color:#3b210d;background:linear-gradient(#facc15,#d97706);box-shadow:0 4px #7c3f0a}.profile-secondary{border:1px solid #8d5a2b;color:#fed7aa;background:transparent}.profile-notice{color:#86efac;font-size:12px}.profile-error{color:#fda4af;font-size:12px}.profile-actions{display:flex;gap:8px}.profile-id{color:#a8a29e;font-size:9px;overflow-wrap:anywhere}.ranking-dialog{width:min(390px,94vw)}.ranking-card{position:relative;padding:24px 18px 18px;border:3px solid #81522c;border-radius:26px;color:#fff7ed;text-align:center;background:linear-gradient(#3a2112,#1b0d06)}.ranking-emblem{display:grid;width:56px;height:56px;margin:0 auto 8px;place-items:center;border:2px solid #fbbf24;border-radius:18px;font-size:30px;background:#5b3218}.ranking-card h2{margin:5px 0 2px;font-family:Fraunces,Georgia,serif;font-size:26px}.ranking-subtitle{margin:0 0 14px;color:#d6b28e;font-size:12px}.ranking-list{max-height:min(52dvh,420px);overflow-y:auto;padding:4px;border:1px solid #84552d;border-radius:14px;background:#0005}.ranking-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:43px;padding:5px 9px;border-bottom:1px solid #84552d55;text-align:left}.ranking-row:last-child{border-bottom:0}.ranking-row.current{border:1px solid #fbbf24;border-radius:10px;background:#fbbf241c}.ranking-rank{color:#d6b28e;font-size:13px;font-weight:900;text-align:center}.ranking-rank.rank-1{font-size:22px}.ranking-rank.rank-2{font-size:20px}.ranking-rank.rank-3{font-size:18px}.ranking-name{min-width:0;overflow:hidden;color:#fff7ed;font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.ranking-name small{display:inline-block;margin-left:6px;color:#fbbf24;font-size:9px}.ranking-row strong{color:#fbbf24;font-size:15px}.ranking-loading,.ranking-me{color:#d6b28e;font-size:12px}.ranking-me{color:#fbbf24;font-weight:900}@media(min-width:640px)and (min-height:600px){.game-shell{width:430px;height:95dvh;max-height:840px;border:4px solid #523b28;border-radius:32px;box-shadow:0 25px 80px #000b}.tray-slots{height:112px}}@media(max-width:360px){.game-header{padding-inline:10px}.game-brand{gap:6px}.game-logo{width:42px;height:42px}.game-brand h1{font-size:17px;gap:3px}.game-brand p{font-size:7px;letter-spacing:.3px}.game-tools{gap:4px}.game-tools button{width:29px;height:32px}}@media(max-height:500px){.game-header{padding-block:5px}.score-ribbon{min-height:42px;padding-block:3px}.score-ribbon strong{font-size:20px}.tray-slots{height:56px}.block-tray{padding-block:4px}.tutorial-pill{top:96px}.game-over{padding:8px}.game-over-icon{display:none}.game-over h2{font-size:16px}.game-over p{display:none}.game-over dl{margin-block:4px;padding-block:2px}.game-over .gold-button{padding-block:5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}.tutorial-hand{display:none}}
