:root{color:#ecf0f1;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#1a1a2e;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{justify-content:center;place-items:center;min-width:320px;min-height:100vh;display:flex}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--primary:#c0392b;--primary-dark:#8e2a20;--accent:#f5a623;--bg-dark:#14142b;--bg-medium:#1b1b3a;--bg-light:#26264d;--text:#f0f3f7;--text-dim:#8b93a7;--tile-depth:5px;--tile-radius:4px}html,body,#root{width:100%;height:100%;overflow:hidden}body{color:var(--text);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:radial-gradient(circle at 50% 20%,#26264d 0%,#14142b 70%);font-family:Trebuchet MS,Segoe UI,Tahoma,sans-serif}.app{flex-direction:column;width:100%;max-width:520px;height:100%;margin:0 auto;display:flex;position:relative;overflow:hidden}.menu{justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.menu-content{text-align:center;width:100%}.game-title{flex-direction:column;margin-bottom:12px;line-height:.95;display:flex}.title-tablet{color:var(--accent);letter-spacing:4px;text-shadow:0 3px 0 var(--primary-dark), 0 6px 18px #00000080;font-size:clamp(2.2rem,12vw,3.2rem)}.title-match{color:var(--primary);letter-spacing:4px;text-shadow:0 3px #5c1a12,0 6px 18px #00000080;font-size:clamp(2.2rem,12vw,3.2rem)}.menu-subtitle{color:var(--text-dim);letter-spacing:4px;text-transform:uppercase;margin-bottom:42px;font-size:.8rem}.menu-buttons{flex-direction:column;gap:14px;margin-bottom:26px;display:flex}.play-button,.levels-button{cursor:pointer;text-transform:uppercase;letter-spacing:3px;border:none;border-radius:12px;padding:16px 40px;font-family:inherit;font-size:1.1rem;font-weight:700}.play-button{background:linear-gradient(180deg, #e05a4a, var(--primary));color:#fff;box-shadow:0 4px 0 var(--primary-dark), 0 10px 24px #c0392b59}.play-button:active{box-shadow:0 1px 0 var(--primary-dark), 0 4px 12px #c0392b59;transform:translateY(3px)}.levels-button{color:#fff;background:linear-gradient(#3b3b6e,#2a2a52);box-shadow:0 4px #17172f,0 10px 24px #0000004d}.levels-button:active{transform:translateY(3px);box-shadow:0 1px #17172f}.high-score{color:var(--accent);letter-spacing:1px;font-size:1rem}.menu-decoration{opacity:.25;justify-content:center;gap:18px;margin-top:34px;font-size:2.4rem;display:flex}.level-select{flex-direction:column;height:100%;padding:16px;display:flex}.level-select-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.level-select-header h2{text-align:center;letter-spacing:3px;color:var(--text);flex:1;font-size:1.1rem}.icon-button{color:#fff;cursor:pointer;background:#ffffff14;border:none;border-radius:10px;width:38px;height:38px;font-family:inherit;font-size:1.6rem;line-height:1}.icon-button:active{background:#ffffff29}.back-button{flex:none;width:44px;height:44px;font-size:1.8rem}.spacer{width:38px}.level-grid{-webkit-overflow-scrolling:touch;flex:1;grid-template-columns:repeat(5,1fr);gap:10px;padding-bottom:20px;display:grid;overflow-y:auto}.level-button{aspect-ratio:1;cursor:pointer;color:#fff;border:none;border-radius:10px;justify-content:center;align-items:center;font-family:inherit;font-size:.95rem;font-weight:700;display:flex;position:relative}.level-button.unlocked.early{background:linear-gradient(#3fbf7f,#2b9c66)}.level-button.unlocked.late{background:linear-gradient(180deg, #e05a4a, var(--primary))}.level-button.locked{color:var(--text-dim);cursor:not-allowed;background:#ffffff0d}.level-button.current{outline:3px solid var(--accent);outline-offset:1px}.level-count{text-align:center;letter-spacing:2px;color:var(--text-dim);flex:none;padding-top:8px;font-size:.62rem}.latest-button{color:var(--accent);letter-spacing:1.5px;cursor:pointer;background:#ffffff14;border:none;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:.6rem;font-weight:700}.latest-button:active{background:#ffffff29}.lock-icon{opacity:.7;font-size:.7rem;position:absolute;bottom:3px;right:4px}.level-best{text-align:center;letter-spacing:0;opacity:.8;pointer-events:none;font-size:.5rem;font-weight:400;position:absolute;bottom:3px;left:0;right:0}.game-board{flex-direction:column;height:100%;padding:8px 10px 6px;display:flex;position:relative}.game-header{flex:none;justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.level-info{flex-direction:column;align-items:center;line-height:1;display:flex}.level-label{letter-spacing:3px;color:var(--text-dim);font-size:.55rem}.level-number{font-size:1.15rem;font-weight:700}.score-display{color:var(--accent);text-align:right;min-width:60px;font-size:1.2rem;font-weight:700}.combo-display{text-align:center;color:var(--accent);text-shadow:0 0 12px #f5a623b3,0 2px 6px #000000b3;pointer-events:none;z-index:5;font-size:1.1rem;font-weight:700;position:absolute;top:42%;left:0;right:0}.hand-container{flex:none;margin-bottom:6px}.hand-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:3px;text-align:center;margin-bottom:4px;font-size:.55rem}.hand-slots{width:100%;max-width:264px;height:66px;margin:0 auto;position:relative}.hand-slot-outlines{display:flex;position:absolute;inset:0}.hand-slot-outlines>.slot-outline{width:calc(100% / var(--hand-size));height:100%;position:relative}.hand-slot-outlines>.slot-outline:before{content:"";border-radius:var(--tile-radius);border:2px dashed #ffffff24;position:absolute;inset:0 3px}.hand-tablet{width:calc(100% / var(--hand-size));height:100%;position:absolute;top:0;left:0}.hand-tablet .tile-top{inset:0 3px}.hand-tablet .tile-right{right:-3px}.hand-tablet .tile-bottom{width:calc(100% - 6px);left:3px}.tablet,.flying-tablet{position:relative}.tablet,.hand-tablet,.flying-tablet{border-radius:var(--tile-radius);background:0 0;border:none;padding:0;font-family:inherit;display:block}.tablet{cursor:pointer}.tablet.is-locked{cursor:not-allowed}.tile-top{border-radius:var(--tile-radius);background:var(--tile-color);z-index:3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 2px #ffffff4d,inset 0 -3px #00000038,inset 0 0 0 1px #00000026}.grid-container{container-type:size}.tile-glyph{filter:drop-shadow(0 2px 2px #00000080);font-size:12.6cqw;line-height:1;transform:translateY(-2%)}.hand-tablet .tile-glyph{font-size:36px}.flying-tablet .tile-glyph{font-size:1em}.tile-right{top:3px;right:calc(var(--tile-depth) * -1);width:var(--tile-depth);background:color-mix(in srgb, var(--tile-color) 62%, #000);border-radius:0 var(--tile-radius) var(--tile-radius) 0;z-index:2;height:100%;position:absolute}.tile-bottom{width:100%;height:var(--tile-depth);background:color-mix(in srgb, var(--tile-color) 48%, #000);border-radius:0 0 var(--tile-radius) var(--tile-radius);z-index:1;position:absolute;top:calc(100% - 3px);left:0}.tablet.is-available .tile-top{box-shadow:inset 0 2px #ffffff59,inset 0 -3px #0003,inset 0 0 0 1px #00000026,0 0 0 1.5px #ffffff59,0 0 12px #ffffff2e}.tablet.is-locked .tile-top,.tablet.is-locked .tile-right,.tablet.is-locked .tile-bottom{filter:brightness(.38)saturate(.35)}.tablet.is-locked .tile-top:after{content:"";pointer-events:none;background:repeating-linear-gradient(45deg,#ff464638 0 5px,#ff464600 5px 11px),#78141447;position:absolute;inset:0}.tablet.is-locked .tile-glyph{filter:grayscale()brightness(.85)drop-shadow(0 1px 1px #0009);opacity:.55}.tile-lock{z-index:4;background:#0c0c1ad9;border-radius:2px;width:12px;height:9px;position:absolute;top:4px;right:4px}.tile-lock:before{content:"";border:2px solid #0c0c1ad9;border-bottom:none;border-radius:5px 5px 0 0;width:8px;height:7px;position:absolute;top:-5px;left:2px}.tablet.is-locked{opacity:.92}.hand-tablet .tile-top,.flying-tablet .tile-top{box-shadow:inset 0 2px #ffffff4d,inset 0 -3px #00000038,inset 0 0 0 1px #00000026,0 4px 10px #00000073}.flying-tablet{z-index:200;pointer-events:none;position:fixed;transform:translate(-50%,-50%)}.board-area{flex:auto;justify-content:center;align-items:center;min-height:0;padding-top:20px;display:flex;overflow:visible}.app{container-type:size}.board{aspect-ratio:5/8;width:min(100cqw - 20px,62.5cqh - 148.75px);position:relative}.grid-container{position:absolute;inset:0}.grid-layer{pointer-events:none;position:absolute;inset:0}.grid-cell{pointer-events:none;justify-content:center;align-items:center;transition:transform .22s ease-out;display:flex;position:absolute}.tablet{pointer-events:auto}.board-footer{letter-spacing:1.5px;color:var(--text-dim);flex:none;justify-content:space-between;padding:4px 2px 0;font-size:.62rem;display:flex}.burst{z-index:6;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.burst-particle{border-radius:50%;position:absolute}.burst-ring{border:2.5px solid var(--accent);border-radius:50%;width:34px;height:34px;margin:-17px 0 0 -17px;position:absolute}.overlay{z-index:100;background:#080814e0;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.overlay-content{text-align:center;background:linear-gradient(180deg, var(--bg-medium), var(--bg-light));border-radius:18px;width:100%;max-width:320px;padding:32px 28px;box-shadow:0 16px 50px #0009}.overlay-content h2{letter-spacing:2px;margin-bottom:18px;font-size:1.6rem}.game-over .overlay-content h2{color:#e05a4a}.level-complete .overlay-content h2{color:#3fbf7f}.final-score{color:var(--accent);margin-bottom:26px;font-size:1.4rem}.level-stats{flex-direction:column;gap:8px;margin-bottom:26px;display:flex}.stat{background:#ffffff0d;border-radius:8px;justify-content:space-between;padding:9px 16px;font-size:.9rem;display:flex}.stat-label{color:var(--text-dim)}.stat-value{color:var(--accent);font-weight:700}.overlay-buttons{flex-direction:column;gap:10px;display:flex}.retry-button,.next-button,.menu-button{cursor:pointer;text-transform:uppercase;letter-spacing:2px;border:none;border-radius:10px;padding:13px 24px;font-family:inherit;font-size:.95rem;font-weight:700}.retry-button,.next-button{color:#fff;background:linear-gradient(#3fbf7f,#2b9c66);box-shadow:0 3px #1d7049}.next-button{background:linear-gradient(180deg, #e05a4a, var(--primary));box-shadow:0 3px 0 var(--primary-dark)}.menu-button{color:var(--text);background:#ffffff1a;box-shadow:0 3px #00000040}.account-button{min-height:44px;color:var(--text-dim);letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:10px;margin-top:14px;padding:10px 18px;font-family:inherit;font-size:.68rem}.account-button:active{transform:translateY(1px)}.account-line{max-width:260px;color:var(--text-dim);letter-spacing:1px;text-overflow:ellipsis;white-space:nowrap;margin:8px auto 0;font-size:.62rem;overflow:hidden}.account-panel{max-height:calc(100% - 48px);overflow-y:auto}.account-note{color:var(--text-dim);margin-bottom:16px;font-size:.8rem;line-height:1.45}.account-form{text-align:left;flex-direction:column;gap:6px;margin-bottom:6px;display:flex}.account-label{color:var(--text-dim);letter-spacing:2px;text-transform:uppercase;margin-top:4px;font-size:.62rem}.account-input{width:100%;min-height:44px;color:var(--text);-webkit-user-select:text;user-select:text;background:#0000004d;border:1px solid #ffffff29;border-radius:10px;padding:10px 12px;font-family:inherit;font-size:.9rem}.account-input:focus{outline:2px solid var(--accent);outline-offset:1px}.account-submit{background:linear-gradient(180deg, var(--accent), #d98c0f);color:#1a1a2e;letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;border-radius:10px;width:100%;min-height:44px;margin-top:12px;padding:12px 20px;font-family:inherit;font-size:.88rem;font-weight:700}.account-submit:disabled{opacity:.5;cursor:default}.account-toggle{width:100%;min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:10px;font-family:inherit;font-size:.78rem;text-decoration:underline}.account-signed-in{color:var(--text);overflow-wrap:anywhere;margin-bottom:10px;font-size:.92rem}.account-signed-in strong{color:var(--accent)}.account-message{margin-top:12px;font-size:.76rem;line-height:1.4}.account-error{color:#ff8b7d}.account-notice{color:#7fd6a4}.account-close{width:100%;min-height:44px;color:var(--text);letter-spacing:2px;cursor:pointer;background:#ffffff1a;border:none;border-radius:10px;margin-top:18px;padding:12px 20px;font-family:inherit;font-size:.85rem;font-weight:700}@media (width<=380px){.hand-slots{max-width:236px;height:58px}}@media (height>=780px){.hand-slots{max-width:292px;height:74px}}
