@font-face{font-family:Jost;src:url(/fonts/Jost-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;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:Jost;src:url(/fonts/Jost-latin-ext.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg-color: #0d0d12;--panel-bg: rgba(255, 255, 255, .05);--border-color: rgba(255, 255, 255, .1);--text-primary: #f0f0f5;--text-secondary: #a0a0ab;--tile-size: 60px;--grid-gap: 8px;--tile-positive-bg: #b0b0b0;--tile-positive-text: #333;--tile-negative-bg: #3a3a3a;--tile-negative-text: #ccc;--tile-neutral-bg: #c4a882;--tile-neutral-text: #fff;--confetti-color-1: #F5F5DB;--confetti-color-2: #D1B58C;--confetti-color-3: #A3704F;--svg-stroke-width: 3;--tile-symbol-size: 55%;--tile-border-radius: 12px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Jost,"Noto Color Emoji",-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-style:normal;background-color:var(--bg-color);color:var(--text-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#app{display:flex;flex-direction:column;gap:1rem;align-items:stretch;width:fit-content;padding:20px;position:relative}.header{text-align:center}.header h1{font-family:Jost,sans-serif;font-size:2.5rem;font-weight:400;letter-spacing:.05em;color:var(--tile-neutral-bg);margin-bottom:.75rem}.stats-bar{display:flex;justify-content:space-between;width:100%;padding:.75rem 1rem;background:var(--panel-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:16px}.stat-item{display:flex;flex-direction:column;align-items:center}.stat-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em}.stat-value{font-size:1.25rem;font-weight:600}.stat-value.score-pop{animation:scorePop .3s ease-out}@keyframes scorePop{0%{transform:scale(1)}50%{transform:scale(1.5);color:var(--tile-neutral-bg)}to{transform:scale(1)}}.game-container{position:relative;background:var(--panel-bg);border:2px solid var(--border-color);border-radius:20px;padding:var(--grid-gap);width:fit-content;box-shadow:0 0 40px #0000004d}.grid{display:grid;grid-template-columns:repeat(6,var(--tile-size));grid-template-rows:repeat(6,var(--tile-size));gap:var(--grid-gap);position:relative}.tile-empty{background:#ffffff08;border-radius:var(--tile-border-radius)}.tile{width:var(--tile-size);height:var(--tile-size);border-radius:var(--tile-border-radius);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.6rem;position:absolute;left:0;top:0;transition-property:translate;transition-duration:var(--tile-slide-duration, .2s);transition-timing-function:var(--tile-slide-easing, cubic-bezier(.16, 1, .3, 1));will-change:translate,transform;-webkit-user-select:none;user-select:none}.tile svg{width:55%;height:55%;pointer-events:none}.preview-tile svg{width:55%;height:55%;pointer-events:none}.tile-positive{background:var(--tile-positive-bg);color:var(--tile-positive-text)}.tile-negative{background:var(--tile-negative-bg);color:var(--tile-negative-text)}.tile-neutral{background:var(--tile-neutral-bg);color:var(--tile-neutral-text)}.tile-new{animation:spawn .3s cubic-bezier(.34,1.56,.64,1) both}.tile-new svg{animation:symbolSpawn .35s cubic-bezier(.22,1.2,.36,1) .08s both}@keyframes spawn{0%{transform:scale(0);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}@keyframes symbolSpawn{0%{opacity:0;transform:scale(.3) rotate(-30deg)}to{opacity:1;transform:scale(1) rotate(0)}}.tile-intro{animation:tileIntro var(--tile-intro-duration, .45s) cubic-bezier(.34,1.42,.64,1) both;animation-delay:var(--tile-intro-delay, 0ms)}.tile-intro svg{animation:symbolSpawn .3s cubic-bezier(.22,1.2,.36,1) both;animation-delay:calc(var(--tile-intro-delay, 0ms) + 80ms)}@keyframes tileIntro{0%{transform:scale(0) translateY(-50px);opacity:0}55%{transform:scale(1.12) translateY(2px);opacity:1}75%{transform:scale(.95) translateY(0)}to{transform:scale(1) translateY(0);opacity:1}}.tile-moved:not(.tile-neutral){animation:moveArrive .22s ease-out}.tile-moved svg{animation:symbolBounce .28s cubic-bezier(.34,1.56,.64,1) .04s both}@keyframes moveArrive{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes symbolBounce{0%{transform:scale(.8)}50%{transform:scale(1.12)}to{transform:scale(1)}}.tile-neutralize{animation:neutralizePop .45s cubic-bezier(.34,1.56,.64,1) both}.tile-neutralize svg{animation:neutralSymbolSpin .5s cubic-bezier(.22,1.2,.36,1) both}@keyframes neutralizePop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3);opacity:1}75%{transform:scale(.92)}to{transform:scale(1)}}@keyframes neutralSymbolSpin{0%{opacity:0;transform:scale(0) rotate(-180deg)}60%{opacity:1;transform:scale(1.15) rotate(10deg)}to{opacity:1;transform:scale(1) rotate(0)}}.tile-merge{animation:mergePulse .3s cubic-bezier(.34,1.56,.64,1)}@keyframes mergePulse{0%{transform:scale(.7);filter:brightness(1)}50%{transform:scale(1.15);filter:brightness(1.4)}to{transform:scale(1);filter:brightness(1)}}.neutralize-ripple{position:absolute;border-radius:50%;border:1.5px solid var(--tile-neutral-bg);pointer-events:none;animation:rippleExpand .6s cubic-bezier(.2,.8,.2,1) forwards}@keyframes rippleExpand{0%{width:6px;height:6px;opacity:.6;transform:translate(-50%,-50%) scale(.5)}to{width:90px;height:90px;opacity:0;transform:translate(-50%,-50%) scale(1)}}.neutralize-particle{position:absolute;width:6px;height:6px;border-radius:50%;pointer-events:none;animation-name:particleBurst;animation-timing-function:cubic-bezier(.2,.8,.3,1);animation-fill-mode:forwards;animation-duration:.55s}@keyframes particleBurst{0%{opacity:1;transform:translate(0) scale(1)}70%{opacity:.8;transform:translate(var(--px),var(--py)) scale(.8)}to{opacity:0;transform:translate(var(--px),var(--py)) scale(0)}}.tile-slide-ghost{position:absolute;left:0;top:0;width:var(--tile-size);height:var(--tile-size);border-radius:var(--tile-border-radius);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5;will-change:translate,transform,opacity}.tile-slide-ghost svg{width:55%;height:55%;pointer-events:none}.bottom-bar{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.bottom-controls{display:flex;align-items:center;gap:1rem;background:var(--panel-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:60px;padding:8px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .15s ease,filter .15s ease}@media(hover:hover){.bottom-controls:hover{transform:scale(var(--btn-hover-scale, 1.08));filter:brightness(var(--btn-hover-brightness, 1.25))}}.bottom-controls:active{transform:scale(var(--btn-active-scale, .96));filter:brightness(1.8);transition:transform .08s ease,filter .08s ease}.shuffle-icon{pointer-events:none}.toolbar-btn{background:transparent;border:none;cursor:pointer;color:var(--text-primary);padding:6px;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,filter .15s ease,color .15s ease;flex-shrink:0}@media(hover:hover){.toolbar-btn:hover{color:var(--text-primary);transform:scale(var(--btn-hover-scale-icon, 1.2));filter:brightness(var(--btn-hover-brightness, 1.25))}}.toolbar-btn:active{transform:scale(var(--btn-active-scale-icon, .9));filter:brightness(2);transition:transform .08s ease,filter .08s ease}#hbr-top,#hbr-mid,#hbr-bot{transform-origin:12px 12px;transition:transform var(--hamburger-morph-duration, .25s) cubic-bezier(.4,0,.2,1),opacity calc(var(--hamburger-morph-duration, .25s) * .6) ease}#menu-btn.menu-open #hbr-top{transform:translateY(6px) rotate(45deg)}#menu-btn.menu-open #hbr-mid{opacity:0;transform:scaleX(0)}#menu-btn.menu-open #hbr-bot{transform:translateY(-6px) rotate(-45deg)}@keyframes restartSpin{0%{transform:rotate(0)}80%{transform:rotate(-375deg)}to{transform:rotate(-360deg)}}#restart-svg{transform-origin:center center}#restart-svg.spinning{animation:restartSpin var(--restart-spin-duration, .55s) cubic-bezier(.4,0,.2,1) forwards}.next-preview{display:flex;align-items:center;gap:.6rem;cursor:pointer;padding:.4rem 0rem;transition:transform .15s ease}.next-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-weight:500}.preview-tile{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:500;font-size:1.3rem}.preview-tile.tile-positive{background:var(--tile-positive-bg);color:var(--tile-positive-text)}.preview-tile.tile-negative{background:var(--tile-negative-bg);color:var(--tile-negative-text)}.preview-tile.tile-neutral{background:var(--tile-neutral-bg);color:var(--tile-neutral-text)}.reroll-pips{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:4px}.reroll-pip{width:7px;height:7px;border-radius:50%;background:#fff;transition:background .2s ease}.reroll-pip.used{background:#ffffff26}.reroll-spinning{animation:rerollFlip .08s ease-in-out}@keyframes rerollFlip{0%{transform:scaleX(1) scale(1);opacity:1}40%{transform:scaleX(0) scale(.85);opacity:.5}60%{transform:scaleX(0) scale(.85);opacity:.5}to{transform:scaleX(1) scale(1);opacity:1}}.bottom-controls:has(.reroll-spinning){animation:rerollGlow .4s ease-in-out infinite alternate}@keyframes rerollGlow{0%{filter:brightness(1)}to{filter:brightness(1.18)}}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:18px;z-index:100;opacity:0;pointer-events:none;transition:opacity .4s ease}.overlay.visible{opacity:1;pointer-events:all}.game-over{background:#000000c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.game-over h2{font-size:2rem;font-weight:400;margin-bottom:.5rem}.overlay-score{color:var(--text-secondary);margin-bottom:.5rem;font-size:1.1rem}.special-overlay{background:#000000c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.level-up-text{font-size:1.8rem;font-weight:400;text-align:center;animation:levelPulse 2s ease-in-out infinite}@keyframes levelPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.congrats-overlay{background:#000000c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.congrats-overlay h2{font-size:1.6rem;margin-bottom:.75rem}.confetti-container{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.confetti-piece{position:absolute;width:8px;height:20px;top:-30px;animation:confettiFall linear forwards}.confetti-tile{position:absolute;top:-30px;display:flex;align-items:center;justify-content:center;border-radius:4px;pointer-events:none;overflow:hidden;animation:confettiFall linear forwards}.confetti-tile svg{width:65%;height:65%;pointer-events:none}.confetti-tile.ct-positive{background:var(--tile-positive-bg);color:var(--tile-positive-text)}.confetti-tile.ct-negative{background:var(--tile-negative-bg);color:var(--tile-negative-text)}@keyframes confettiFall{to{top:110%;transform:rotate(720deg) translate(var(--drift))}}.restart-confirm{position:fixed;inset:0;background:#000000c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:0;z-index:300}.confirm-dialog{background:#1a1a24;border:1px solid var(--border-color);border-radius:16px;padding:2rem;text-align:center;max-width:300px}.confirm-dialog p{font-size:1.1rem;font-weight:400;margin-bottom:1.25rem}.confirm-buttons{display:flex;gap:.75rem;justify-content:center}.overlay-buttons{display:flex;gap:.75rem;justify-content:center;align-items:center}.btn-share{background:transparent;border:1px solid var(--border-color);color:var(--text-primary);font-weight:400}@media(hover:hover){.btn-share:hover{background:#ffffff14}}.share-modal{position:fixed;inset:0;z-index:400;border-radius:0;background:#000000c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.share-dialog{background:#1a1a24;border:1px solid var(--border-color);border-radius:20px;padding:1.5rem;width:min(380px,calc(100vw - 40px));max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:1rem}.share-header{display:flex;justify-content:space-between;align-items:center}.share-header h3{font-size:1.15rem;font-weight:400;color:var(--text-primary)}.share-preview{display:flex;justify-content:center}.share-preview img{width:100%;max-width:320px;border-radius:12px;border:1px solid var(--border-color)}.share-actions{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.share-action-btn{display:flex;flex-direction:column;align-items:center;gap:4px;background:#ffffff0f;border:1px solid var(--border-color);border-radius:12px;padding:12px 16px;color:var(--text-primary);cursor:pointer;font-family:Jost,sans-serif;font-size:.75rem;font-weight:400;letter-spacing:.04em;transition:transform .15s ease,background .15s ease,filter .15s ease;min-width:64px}@media(hover:hover){.share-action-btn:hover{background:#ffffff1f;transform:scale(var(--btn-hover-scale, 1.08));filter:brightness(var(--btn-hover-brightness, 1.25))}}.share-action-btn:active{transform:scale(var(--btn-active-scale, .96));filter:brightness(1.6);transition:transform .08s ease,filter .08s ease}.share-toast{text-align:center;font-size:.8rem;color:var(--tile-neutral-bg);min-height:1.2em;transition:opacity .3s ease}.share-modal.share-platform-mobile .share-desktop-only,.share-modal.share-platform-desktop .share-mobile-only{display:none}.menu-close-row{display:flex;justify-content:flex-end;margin-bottom:.25rem}.close-btn-inline{background:transparent;border:none;cursor:pointer;color:var(--text-primary);padding:6px;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,filter .15s ease,opacity .15s ease;border-radius:50%}@media(hover:hover){.close-btn-inline:hover{transform:scale(var(--btn-hover-scale-icon, 1.2));filter:brightness(var(--btn-hover-brightness, 1.25))}}.close-btn-inline:active{transform:scale(var(--btn-active-scale-icon, .9));filter:brightness(2);transition:transform .08s ease,filter .08s ease}.menu-panel{position:fixed;inset:0;background:#000000c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:150;opacity:0;pointer-events:none;transition:opacity var(--menu-panel-duration, .3s) ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.menu-panel.visible{opacity:1;pointer-events:all}.menu-items{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:calc(6 * var(--tile-size) + 7 * var(--grid-gap) + 4px);padding:0 2rem}.menu-item{background:var(--menu-btn-bg, #d9cfc0);border:none;color:var(--menu-btn-text, #1a1a1a);padding:.9rem 1.2rem;border-radius:8px;font-size:1.05rem;font-family:Jost,sans-serif;font-weight:400;cursor:pointer;transition:all .15s ease;text-align:center}@media(hover:hover){.menu-item:hover{background:var(--menu-btn-bg, #d9cfc0);filter:brightness(1.12);transform:translateY(-1px)}}.menu-item:active{background:var(--menu-btn-bg, #d9cfc0);filter:brightness(1.5);transform:translateY(0);transition:transform .08s ease,filter .08s ease}.menu-attribution{text-align:center;color:var(--text-secondary);font-size:.85rem}.menu-attribution p{margin-bottom:.3rem}.attribution-link{color:var(--tile-neutral-bg);text-decoration:none;font-size:.8rem;transition:filter .15s ease}@media(hover:hover){.attribution-link:hover{filter:brightness(1.3)}}.how-to-play-overlay{position:fixed;inset:0;background:#000000c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:400;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:0;overflow:hidden;font-style:normal}.htp-scroll-wrapper{width:100%;max-width:calc(6 * var(--tile-size) + 7 * var(--grid-gap) + 44px);height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;display:flex;justify-content:center;position:relative;padding:env(safe-area-inset-top,0) 6px calc(env(safe-area-inset-bottom,0) + 40px) env(safe-area-inset-left,0);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.htp-scroll-wrapper::-webkit-scrollbar{width:5px}.htp-scroll-wrapper::-webkit-scrollbar-track{background:transparent}.htp-scroll-wrapper::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:4px}.htp-scroll-wrapper::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.htp-scroll-wrapper:after{content:"";position:fixed;right:calc(50% - 218px);top:60px;bottom:20px;width:3px;background:#ffffff0f;border-radius:3px;pointer-events:none;z-index:10}@supports selector(::-webkit-scrollbar){.htp-scroll-wrapper:after{display:none}}@media(hover:none)and (pointer:coarse){.htp-scroll-wrapper:after{display:block}}.htp-content{width:100%;max-width:calc(6 * var(--tile-size) + 7 * var(--grid-gap) + 4px);padding:56px 24px 24px;display:flex;flex-direction:column;gap:0}.htp-content:after{content:"";display:block;min-height:80px;flex-shrink:0}.how-to-play-overlay .menu-close-row{margin-top:12px}.htp-title{font-size:1.3rem;font-weight:300;font-style:normal;letter-spacing:.18em;text-align:center;color:var(--text-primary);margin-bottom:32px}.htp-step{background:var(--panel-bg);border:1px solid var(--border-color);border-radius:16px;padding:20px 20px 22px;margin-bottom:12px;display:flex;flex-direction:column;align-items:center;gap:12px}.htp-step-goal{border-color:#c4a8824d;background:#c4a8820d}.htp-step-label{font-size:.78rem;font-weight:500;font-style:normal;letter-spacing:.18em;color:var(--text-secondary);text-transform:uppercase;text-align:center}.htp-desc{font-size:.88rem;font-weight:400;font-style:normal;line-height:1.6;color:var(--text-secondary);text-align:center}.htp-desc strong{color:var(--text-primary);font-weight:500}.htp-demo{display:flex;align-items:center;gap:12px}.htp-tile{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:500;flex-shrink:0}.htp-tile svg{width:55%;height:55%;pointer-events:none}.htp-tile-multi svg{width:35%;height:35%;margin:0 1px}.htp-tile-preview{width:36px;height:36px;border-radius:8px}.htp-inline-tile svg{width:65%;height:65%;pointer-events:none}.htp-tile-pos{background:var(--tile-positive-bg);color:var(--tile-positive-text)}.htp-tile-neg{background:var(--tile-negative-bg);color:var(--tile-negative-text)}.htp-tile-neutral{background:var(--tile-neutral-bg);color:var(--tile-neutral-text);font-size:.85rem}.htp-tile-empty{border:1.5px dashed rgba(255,255,255,.12);background:transparent}.htp-inline-tile{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;font-size:.72rem;font-weight:500;vertical-align:middle;line-height:1;flex-shrink:0}.htp-mini-grid{display:flex;gap:6px;align-items:center}.htp-swipe-demo{position:relative}.htp-swipe-tile{position:absolute;left:50px;top:0;z-index:1}.htp-swipe-demo .htp-swipe-tile{animation:htpSwipe 3.6s ease-in-out infinite}@keyframes htpSwipe{0%{transform:translate(0)}12%{transform:translate(50px)}25%{transform:translate(50px)}37%{transform:translate(0)}50%{transform:translate(0)}62%{transform:translate(-50px)}75%{transform:translate(-50px)}87%{transform:translate(0)}to{transform:translate(0)}}.htp-platform-hint{display:none;justify-content:center;align-items:center}.htp-hint-touch{color:#ffffff40;animation:htpHintPulse 2s ease-in-out infinite alternate}@keyframes htpHintPulse{0%{opacity:.4}to{opacity:.8}}.htp-hint-desktop{color:var(--text-secondary)}.htp-key-row{display:flex;gap:6px;justify-content:center}.htp-key{display:flex;align-items:center;justify-content:center;width:32px;height:28px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#ffffff0a;font-size:.85rem;font-weight:500;color:var(--text-secondary);font-family:Jost,sans-serif}.htp-key-group{display:flex;align-items:center;gap:8px}.htp-key-or{font-size:.7rem;font-weight:400;color:#ffffff40;letter-spacing:.05em}.htp-key-cross{display:flex;flex-direction:column;align-items:center;gap:3px}.how-to-play-overlay.platform-touch .htp-hint-touch,.how-to-play-overlay.platform-desktop .htp-hint-desktop{display:flex}.htp-merge-demo{flex-direction:column;gap:8px}.htp-merge-row{display:flex;align-items:center;gap:8px}.htp-plus,.htp-equals,.htp-operator{font-size:1rem;font-weight:400;color:var(--text-secondary);flex-shrink:0}.htp-lozenge-demo{display:flex;justify-content:center}.htp-lozenge{display:flex;align-items:center;gap:12px;background:var(--panel-bg);border:1px solid var(--border-color);border-radius:60px;padding:8px 16px;pointer-events:none}.htp-shuffle-icon{color:var(--text-secondary);flex-shrink:0}.htp-lozenge-preview{display:flex;align-items:center;gap:8px}.htp-next-label{font-size:.65rem;font-weight:500;letter-spacing:.1em;color:var(--text-secondary);text-transform:uppercase}.htp-pips{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:4px}.htp-pip{width:7px;height:7px;border-radius:50%;background:#fff}.htp-pip-used{background:#ffffff26}.htp-tile.htp-tile-neg.htp-small{width:36px;height:36px;font-size:1rem}.htp-goal-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:6px;animation:htpGoalGlow 2s ease-in-out infinite alternate}@keyframes htpGoalGlow{0%{filter:brightness(1)}to{filter:brightness(1.2)}}.htp-cta-btn{margin-top:24px;margin-bottom:0;width:100%;padding:.9rem 1.2rem;border-radius:12px;border:none;background:var(--tile-neutral-bg);color:#fff;font-family:Jost,sans-serif;font-size:.95rem;font-weight:500;letter-spacing:.12em;cursor:pointer;transition:filter .15s ease,transform .1s ease}@media(hover:hover){.htp-cta-btn:hover{filter:brightness(1.15);transform:translateY(-1px)}}.htp-cta-btn:active{filter:brightness(1.5);transform:translateY(0);transition:transform .08s ease,filter .08s ease}.inline-tile{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;font-size:.85rem;font-weight:500;vertical-align:middle;line-height:1}.tile-positive-inline{background:var(--tile-positive-bg);color:var(--tile-positive-text)}.tile-negative-inline{background:var(--tile-negative-bg);color:var(--tile-negative-text)}.tile-neutral-inline{background:var(--tile-neutral-bg);color:var(--tile-neutral-text);font-size:.7rem}.inline-icon{font-size:1.1rem;color:var(--text-primary)}.btn{background:var(--menu-btn-bg, #d9cfc0);color:var(--menu-btn-text, #1a1a1a);border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;font-family:Jost,sans-serif;cursor:pointer;transition:all .2s;font-size:.95rem}@media(hover:hover){.btn:hover{background:var(--menu-btn-bg, #d9cfc0);filter:brightness(1.12);transform:translateY(-2px)}}.btn:active{background:var(--menu-btn-bg, #d9cfc0);filter:brightness(1.5);transform:translateY(0);transition:transform .08s ease,filter .08s ease}.btn-cancel{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}@media(hover:hover){.btn-cancel:hover{background:#ffffff0d}}.splash-screen{position:fixed;inset:0;z-index:9999;background:var(--bg-color);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);transition:opacity .5s ease,visibility .5s ease;overflow:hidden}.splash-screen.splash-hidden{opacity:0;visibility:hidden;pointer-events:none}.splash-hero{width:140px;height:140px;border-radius:24px;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;box-shadow:0 0 60px #c4a88240,0 0 120px #c4a8821a;animation:splashHeroIn .8s cubic-bezier(.34,1.56,.64,1) .1s both}.splash-hero svg{width:55%;height:55%}@keyframes splashHeroIn{0%{transform:scale(0);opacity:0}60%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}.splash-title{font-family:Jost,sans-serif;font-size:2.8rem;font-weight:400;letter-spacing:.08em;color:var(--tile-neutral-bg);margin-top:1.5rem;position:relative;z-index:2;animation:splashFadeUp .6s ease .4s both}.splash-author{font-family:Jost,sans-serif;font-size:1rem;font-weight:300;color:var(--text-secondary);letter-spacing:.05em;margin-top:.25rem;position:relative;z-index:2;animation:splashFadeUp .6s ease .55s both}.splash-highscore{font-family:Jost,sans-serif;font-size:.85rem;font-weight:400;color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;margin-top:.75rem;position:relative;z-index:2;animation:splashFadeUp .6s ease .6s both}.splash-highscore:empty{display:none}.splash-actions{display:flex;flex-direction:column;align-items:stretch;gap:.65rem;margin-top:1.5rem;width:min(220px,60vw);position:relative;z-index:2;animation:splashFadeUp .6s ease .7s both}.splash-btn{width:100%;font-family:Jost,sans-serif;font-weight:500;letter-spacing:.08em;border:none;border-radius:12px;cursor:pointer;transition:transform .15s ease,filter .15s ease;-webkit-user-select:none;user-select:none;text-align:center;outline:none}.splash-btn:focus-visible{outline:2px solid var(--tile-neutral-bg);outline-offset:2px}@media(hover:hover){.splash-btn:hover{transform:scale(var(--btn-hover-scale, 1.08));filter:brightness(var(--btn-hover-brightness, 1.25))}.splash-btn-htp:hover{color:var(--text-primary)}}.splash-btn:active{transform:scale(var(--btn-active-scale, .96));filter:brightness(1.8);transition:transform .08s ease,filter .08s ease}.splash-btn-play{font-size:1.1rem;padding:.8rem 0;background:var(--tile-neutral-bg);color:#1a1a1a}.splash-btn-htp{font-size:.85rem;padding:.55rem 0;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.splash-hint{font-family:Jost,sans-serif;font-size:.7rem;font-weight:400;color:var(--text-secondary);letter-spacing:.12em;text-transform:uppercase;position:absolute;bottom:calc(8% + env(safe-area-inset-bottom,0px));z-index:2;opacity:.4;animation:splashFadeUp .6s ease .9s both}@keyframes splashFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes splashPulse{0%,to{opacity:.5}50%{opacity:1}}.splash-tiles{position:absolute;inset:0;z-index:1;pointer-events:none}.splash-deco{position:absolute;border-radius:18%;display:flex;align-items:center;justify-content:center;opacity:.35;animation:splashDecoIn .7s ease backwards;cursor:pointer;pointer-events:auto;--deco-glow: rgba(196, 168, 130, .3);filter:brightness(1) drop-shadow(0 0 0px var(--deco-glow));transition:scale .25s cubic-bezier(.34,1.56,.64,1),opacity .35s ease,filter .5s ease}.splash-deco.tile-positive{--deco-glow: color-mix(in srgb, var(--tile-positive-bg) 50%, transparent)}.splash-deco.tile-negative{--deco-glow: color-mix(in srgb, var(--tile-negative-bg) 60%, transparent)}.splash-deco.tile-neutral{--deco-glow: color-mix(in srgb, var(--tile-neutral-bg) 55%, transparent)}@media(hover:hover){.splash-deco:hover{scale:1.2;opacity:1;filter:brightness(1.2) drop-shadow(0 0 8px var(--deco-glow))}}.splash-deco:active,.splash-deco.splash-deco-touched{scale:1.15;opacity:1;filter:brightness(1.3) drop-shadow(0 0 10px var(--deco-glow))}.splash-deco.splash-deco-spin{opacity:1}@keyframes splashWobble{0%{rotate:0deg}25%{rotate:-8deg}75%{rotate:8deg}to{rotate:0deg}}@keyframes splashSpin{0%{rotate:0deg;scale:1}40%{rotate:200deg;scale:.85}to{rotate:360deg;scale:1}}.splash-deco svg{width:55%;height:55%}.splash-deco-1{width:50px;height:50px;top:12%;left:8%;transform:rotate(-15deg);animation-delay:.15s}.splash-deco-2{width:38px;height:38px;top:8%;right:15%;transform:rotate(22deg);animation-delay:.25s}.splash-deco-3{width:44px;height:44px;top:28%;right:8%;transform:rotate(-8deg);animation-delay:.35s}.splash-deco-4{width:32px;height:32px;top:22%;left:18%;transform:rotate(30deg);animation-delay:.2s}.splash-deco-5{width:46px;height:46px;bottom:25%;left:10%;transform:rotate(12deg);animation-delay:.3s}.splash-deco-6{width:36px;height:36px;bottom:18%;right:12%;transform:rotate(-25deg);animation-delay:.4s}.splash-deco-7{width:28px;height:28px;bottom:32%;right:22%;transform:rotate(18deg);animation-delay:.1s}.splash-deco-8{width:40px;height:40px;bottom:12%;left:22%;transform:rotate(-20deg);animation-delay:.45s}@keyframes splashDecoIn{0%{opacity:0;transform:scale(.4) var(--_rot, rotate(0deg))}to{opacity:.35}}.splash-deco-1{animation:splashDecoIn .7s ease .15s backwards,splashFloat 6s ease-in-out .85s infinite}.splash-deco-2{animation:splashDecoIn .7s ease .25s backwards,splashFloat 7s ease-in-out .95s infinite;--splash-float-x: -6px;--splash-float-y: 8px}.splash-deco-3{animation:splashDecoIn .7s ease .35s backwards,splashFloat 5.5s ease-in-out 1.05s infinite;--splash-float-x: 5px;--splash-float-y: -7px}.splash-deco-4{animation:splashDecoIn .7s ease .2s backwards,splashFloat 6.5s ease-in-out .9s infinite;--splash-float-x: -4px;--splash-float-y: 6px}.splash-deco-5{animation:splashDecoIn .7s ease .3s backwards,splashFloat 7.5s ease-in-out 1.1s infinite;--splash-float-x: 7px;--splash-float-y: -5px}.splash-deco-6{animation:splashDecoIn .7s ease .4s backwards,splashFloat 5s ease-in-out 1.2s infinite;--splash-float-x: -8px;--splash-float-y: 4px}.splash-deco-7{animation:splashDecoIn .7s ease .1s backwards,splashFloat 8s ease-in-out .8s infinite;--splash-float-x: 3px;--splash-float-y: -9px}.splash-deco-8{animation:splashDecoIn .7s ease .45s backwards,splashFloat 6s ease-in-out 1.15s infinite;--splash-float-x: -5px;--splash-float-y: 7px}.splash-deco-9{width:34px;height:34px;top:40%;left:6%;transform:rotate(10deg);animation:splashDecoIn .7s ease .18s backwards,splashFloat 7s ease-in-out .88s infinite;--splash-float-x: 4px;--splash-float-y: -6px}.splash-deco-10{width:30px;height:30px;top:15%;right:30%;transform:rotate(-12deg);animation:splashDecoIn .7s ease .32s backwards,splashFloat 6.5s ease-in-out 1.02s infinite;--splash-float-x: -5px;--splash-float-y: 7px}.splash-deco-11{width:38px;height:38px;bottom:35%;right:6%;transform:rotate(20deg);animation:splashDecoIn .7s ease .38s backwards,splashFloat 5.5s ease-in-out 1.08s infinite;--splash-float-x: 6px;--splash-float-y: -4px}@keyframes splashFloat{0%,to{transform:translate(0)}50%{transform:translate(var(--splash-float-x, 5px),var(--splash-float-y, -8px))}}@media(max-width:430px){:root{--tile-size: 50px;--grid-gap: 6px}.header h1{font-size:2rem}.tile{font-size:1.3rem;border-radius:8px}.splash-hero{width:100px;height:100px;border-radius:18px;box-shadow:0 0 40px #c4a88233,0 0 80px #c4a88214}.splash-title{font-size:2rem;margin-top:1rem}.splash-author{font-size:.85rem}.splash-highscore{font-size:.75rem;margin-top:.5rem}.splash-actions{margin-top:1rem;gap:.5rem}.splash-btn-play{font-size:1rem;padding:.7rem 0}.splash-btn-htp{font-size:.8rem;padding:.5rem 0}.splash-hint{font-size:.6rem}.splash-deco{transform:scale(.75)}.splash-deco-1{top:8%;left:4%}.splash-deco-2{top:5%;right:8%}.splash-deco-3{top:22%;right:3%}.splash-deco-4{top:16%;left:12%}.splash-deco-5{bottom:20%;left:5%}.splash-deco-6{bottom:14%;right:5%}.splash-deco-7{bottom:28%;right:15%}.splash-deco-8{bottom:8%;left:15%}}@media(max-width:360px){:root{--tile-size: 44px;--grid-gap: 5px}.splash-hero{width:80px;height:80px;border-radius:14px}.splash-title{font-size:1.7rem}}@media(max-height:500px)and (orientation:landscape){.splash-hero{width:80px;height:80px;border-radius:14px}.splash-title{font-size:1.6rem;margin-top:.6rem}.splash-author{font-size:.75rem;margin-top:.1rem}.splash-highscore{font-size:.7rem;margin-top:.3rem}.splash-actions{margin-top:.6rem;gap:.4rem}.splash-btn-play{padding:.5rem 0;font-size:.9rem}.splash-btn-htp{padding:.35rem 0;font-size:.75rem}.splash-hint{bottom:4%;font-size:.55rem}.splash-deco-4,.splash-deco-7{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.dev-panel{position:fixed;top:0;right:0;bottom:0;width:320px;z-index:500;background:#0d0d12c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-left:1px solid var(--border-color);display:flex;flex-direction:column;font-family:Jost,sans-serif;color:var(--text-primary);transform:translate(100%);transition:transform .25s cubic-bezier(.16,1,.3,1)}.dev-panel.visible{transform:translate(0)}.dev-panel-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px 16px 24px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}.dev-panel-scroll::-webkit-scrollbar{width:5px}.dev-panel-scroll::-webkit-scrollbar-track{background:transparent}.dev-panel-scroll::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:4px}.dev-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.dev-panel-title{font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:#98c379}.dev-panel-close{background:transparent;border:none;cursor:pointer;color:var(--text-primary);padding:4px;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease;border-radius:50%}.dev-panel-close:hover{opacity:.7;background:#ffffff0f}.dev-section{margin-bottom:14px}.dev-section-header{font-size:.65rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid var(--border-color)}.dev-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;gap:10px;min-height:30px}.dev-row+.dev-row{border-top:1px solid rgba(255,255,255,.04)}.dev-label{font-size:.78rem;font-weight:400;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.dev-control{display:flex;align-items:center;gap:8px;flex-shrink:0}.dev-slider{-webkit-appearance:none;appearance:none;width:90px;height:4px;border-radius:2px;background:#ffffff1a;outline:none;cursor:pointer;margin:0;padding:0;vertical-align:middle}.dev-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--text-primary);border:none;cursor:pointer;margin-top:-5px;transition:transform .1s ease}.dev-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.dev-slider::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:#ffffff1a}.dev-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--text-primary);border:none;cursor:pointer}.dev-slider::-moz-range-track{height:4px;border-radius:2px;background:#ffffff1a;border:none}.dev-value{font-size:.72rem;font-weight:400;color:var(--text-primary);min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.dev-toggle{position:relative;width:36px;height:20px;flex-shrink:0}.dev-toggle input{opacity:0;width:0;height:0;position:absolute}.dev-toggle-track{position:absolute;inset:0;border-radius:10px;background:#ffffff1a;cursor:pointer;transition:background .2s ease}.dev-toggle-track:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:var(--text-secondary);top:2px;left:2px;transition:transform .2s ease,background .2s ease}.dev-toggle input:checked+.dev-toggle-track{background:#98c3794d}.dev-toggle input:checked+.dev-toggle-track:after{transform:translate(16px);background:#98c379}.dev-number{width:52px;height:24px;border:1px solid var(--border-color);border-radius:6px;background:#ffffff0a;color:var(--text-primary);font-family:Jost,sans-serif;font-size:.75rem;text-align:center;outline:none;-moz-appearance:textfield;appearance:textfield}.dev-number::-webkit-outer-spin-button,.dev-number::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.dev-number:focus{border-color:#ffffff40}.dev-select{height:26px;border:1px solid var(--border-color);border-radius:6px;background:#ffffff0a;color:var(--text-primary);font-family:Jost,sans-serif;font-size:.75rem;padding:0 20px 0 6px;outline:none;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%23888' stroke-width='1.5'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}.dev-select:focus{border-color:#ffffff40}.dev-select option{background:#1a1a22;color:var(--text-primary)}.dev-tip{font-size:.68rem;font-weight:400;color:#ffffff4d;line-height:1.5;margin-top:4px;padding:6px 8px;background:#ffffff05;border-radius:6px;border-left:2px solid rgba(255,255,255,.06)}.dev-section-toggle{display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none}.dev-section-chevron{font-size:.7rem;color:var(--text-secondary);transition:transform .15s ease;margin-left:6px}.dev-section-collapsible.open .dev-section-chevron{transform:rotate(90deg)}.dev-section-body{padding-top:4px}.dev-color-wrap{display:flex;flex-direction:column;gap:6px;padding:4px 0}.dev-color-top-row{display:flex;align-items:center;gap:8px}.dev-color-swatch-wrap{position:relative;width:28px;height:28px;border-radius:6px;overflow:hidden;flex-shrink:0;cursor:pointer;border:2px solid rgba(255,255,255,.12)}.dev-color-swatch{width:100%;height:100%;border-radius:4px}.dev-color-native{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;border:none;padding:0}.dev-color-hex{width:72px;height:24px;border:1px solid var(--border-color);border-radius:6px;background:#ffffff0a;color:var(--text-primary);font-family:Jost,monospace;font-size:.7rem;text-align:center;letter-spacing:.05em;outline:none}.dev-color-hex:focus{border-color:#ffffff40}.dev-color-palette{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.dev-palette-swatch{width:100%;aspect-ratio:1;border:2px solid transparent;border-radius:5px;cursor:pointer;transition:border-color .15s ease,transform .12s ease;padding:0;outline:none}.dev-palette-swatch:hover{transform:scale(1.15);border-color:#ffffff4d}.dev-palette-swatch.active{border-color:var(--text-primary);box-shadow:0 0 0 1px var(--bg-color),0 0 0 2px var(--text-primary)}.dev-color-grey-row{display:flex;align-items:center;gap:8px;margin-top:2px}.dev-color-grey-label{font-size:.68rem;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.dev-grey-slider{flex:1;width:auto!important}.dev-grey-slider::-webkit-slider-runnable-track{background:linear-gradient(to right,#fff,#000)!important;height:6px!important;border-radius:3px!important}.dev-grey-slider::-moz-range-track{background:linear-gradient(to right,#fff,#000)!important;height:6px!important;border-radius:3px!important}.dev-save-btn{display:block;width:100%;margin-top:16px;padding:10px 0;border:1px solid var(--border-color);border-radius:8px;background:#ffffff0a;color:var(--text-primary);font-family:Jost,sans-serif;font-size:.78rem;font-weight:500;letter-spacing:.08em;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.dev-save-btn:hover{background:#ffffff14;border-color:#fff3}.dev-save-btn:disabled{cursor:wait;opacity:.7}.dev-save-btn.dev-save-success{border-color:#98c379;color:#98c379;background:#98c37914}.dev-save-btn.dev-save-error{border-color:#e06c75;color:#e06c75;background:#e06c7514}@media(max-width:768px){.dev-panel{inset:auto 0 0;width:100%;max-height:50vh;border-left:none;border-top:1px solid var(--border-color);border-radius:16px 16px 0 0;transform:translateY(100%)}.dev-panel.visible{transform:translateY(0)}}@media(max-height:500px)and (min-width:769px){.dev-panel{width:280px}.dev-panel-scroll{padding:10px 12px 16px}.dev-row{padding:3px 0;min-height:26px}}@media(max-width:360px){.dev-panel-scroll{padding:10px 10px 18px}.dev-slider{width:70px}}.debug-panel{position:fixed;top:0;left:0;bottom:0;width:220px;z-index:500;background:#0d0d12c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-right:1px solid var(--border-color);display:flex;flex-direction:column;font-family:Jost,sans-serif;color:var(--text-primary);transform:translate(-100%);transition:transform .25s cubic-bezier(.16,1,.3,1)}.debug-panel.visible{transform:translate(0)}.debug-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.debug-panel-title{font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:#98c379}.debug-panel-close{background:transparent;border:none;cursor:pointer;color:var(--text-primary);padding:4px;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease;border-radius:50%}.debug-panel-close:hover{opacity:.7;background:#ffffff0f}.debug-panel-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px;display:flex;flex-direction:column;gap:8px}.debug-panel-btn{display:block;width:100%;padding:12px 16px;background:#ffffff0a;border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-family:Jost,sans-serif;font-size:.85rem;font-weight:400;cursor:pointer;text-align:left;transition:background .15s ease,transform .15s ease}.debug-panel-btn:hover{background:#ffffff14}.debug-panel-btn:active{transform:scale(.97);background:#ffffff1f}.debug-btn-device{color:#61afef}.debug-btn-settings{color:#d19a66}.debug-panel{touch-action:auto}@media(max-width:768px){.debug-panel{inset:auto 0 0;width:100%;max-height:50vh;border-right:none;border-top:1px solid var(--border-color);border-radius:16px 16px 0 0;transform:translateY(100%)}.debug-panel.visible{transform:translateY(0)}}@media(max-height:500px)and (min-width:769px){.debug-panel{width:180px}.debug-panel-scroll{padding:10px 12px}.debug-panel-btn{padding:8px 12px;font-size:.8rem}}
