:root{color-scheme:dark;--ink: #f2f7ef;--ink-soft: #9aa79c;--paper: #090d0d;--paper-deep: #111816;--panel: rgba(20, 29, 27, .84);--panel-bright: rgba(38, 52, 48, .88);--graphite: #e9f1e8;--graphite-2: #060908;--line: rgba(223, 242, 229, .15);--accent: #a9f265;--mint: #6ee3ae;--cyan: #6bd7ff;--amber: #f2c95f;--violet: #a58cff;--rose: #ff7fa3;--pearl: #dce9e0;--ease-heavy: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.2, .9, .18, 1);--cell-gap: clamp(3px, .8vw, 6px)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;min-height:100dvh;overflow-x:hidden;background:linear-gradient(120deg,rgba(169,242,101,.08) 0 1px,transparent 1px 33%),linear-gradient(90deg,rgba(107,215,255,.035) 1px,transparent 1px),linear-gradient(180deg,#121a18,#070a0a 58%,#040606);background-size:72px 72px,36px 36px,auto;color:var(--ink);font-family:SF Pro Rounded,Avenir Next,Trebuchet MS,Verdana,sans-serif;letter-spacing:0}body:before{position:fixed;inset:0;z-index:-2;pointer-events:none;content:"";opacity:.38;background:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,transparent 0 18px,rgba(169,242,101,.025) 18px 19px);mix-blend-mode:screen}button{font:inherit}.game-library-shell{position:relative;display:grid;align-content:center;gap:clamp(18px,4dvh,34px);width:min(100%,930px);min-height:100dvh;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) clamp(14px,5vw,42px) max(22px,env(safe-area-inset-bottom))}.game-library-shell:before{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";opacity:.9;background:linear-gradient(150deg,rgba(169,242,101,.14),transparent 28%),linear-gradient(30deg,transparent 52%,rgba(107,215,255,.12) 72%,transparent 100%),linear-gradient(rgba(230,246,234,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(230,246,234,.04) 1px,transparent 1px);background-size:auto,auto,44px 44px,44px 44px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent)}.library-hero{display:flex;align-items:end;gap:clamp(14px,3vw,24px);animation:shelfEnter .72s var(--ease-heavy) both}.library-mark{display:grid;width:clamp(56px,10vw,76px);height:clamp(56px,10vw,76px);place-items:center;border:1px solid rgba(232,252,237,.18);border-radius:8px;background:linear-gradient(145deg,#ffffff2e,#ffffff05),linear-gradient(180deg,#a9f26529,#6bd7ff14),#14201d;color:var(--accent);box-shadow:inset 0 1px #ffffff3d,inset 0 -12px 24px #0000003d,0 24px 54px #0000005c,0 0 48px #a9f26529}.library-mark svg{width:34px;height:34px;filter:drop-shadow(0 8px 18px rgba(169,242,101,.32))}.library-kicker{display:block;margin-bottom:7px;color:#a9f265b8;font-size:.74rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.library-hero h1{margin:0;color:var(--ink);font-size:clamp(4.2rem,13vw,7.8rem);font-weight:950;line-height:.8;text-shadow:0 1px 0 rgba(255,255,255,.12),0 24px 58px rgba(0,0,0,.48)}.game-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2.5vw,18px);animation:shelfEnter .76s var(--ease-heavy) 80ms both}.game-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto 1fr auto;align-items:start;gap:14px;width:100%;min-height:clamp(260px,34vw,330px);padding:clamp(14px,2.4vw,20px);overflow:hidden;border:1px solid rgba(232,252,237,.15);border-radius:8px;background:linear-gradient(145deg,#ffffff1f,#ffffff05),linear-gradient(180deg,#141d1bf0,#090d0df0);color:var(--ink);cursor:pointer;text-align:left;box-shadow:inset 0 1px #ffffff29,inset 0 -18px 34px #00000038,0 28px 74px #00000057;transition:transform .62s var(--ease-spring),box-shadow .62s var(--ease-spring),border-color .62s var(--ease-spring),background .62s var(--ease-spring)}.game-card:after{position:absolute;inset:auto 0 0;height:3px;content:"";background:var(--game-accent);transform:scaleX(.34);transform-origin:left;transition:transform .62s var(--ease-spring)}.game-card-coral{--game-accent: linear-gradient(90deg, #ff8a6d, #f2c95f);--card-glow: rgba(255, 138, 109, .2)}.game-card-jade{--game-accent: linear-gradient(90deg, #a9f265, #6bd7ff);--card-glow: rgba(169, 242, 101, .18)}.game-card:hover{transform:translateY(-6px) scale(1.012);border-color:#e8fced4d;box-shadow:inset 0 1px #fff3,inset 0 -18px 34px #00000038,0 34px 86px #00000075,0 0 70px var(--card-glow)}.game-card:hover:after{transform:scaleX(1)}.game-card:active{transform:translateY(1px) scale(.99)}.game-card-icon,.game-card-arrow{display:grid;place-items:center;border-radius:8px}.game-card-icon{width:54px;height:54px;background:linear-gradient(145deg,#ffffff38,#ffffff05),#ffffff12;color:var(--ink);box-shadow:inset 0 1px #ffffff38,0 14px 30px #00000052}.game-card-coral .game-card-icon{background:linear-gradient(145deg,#ffffff42,#ffffff05),#8a382f}.game-card-jade .game-card-icon{background:linear-gradient(145deg,#ffffff42,#ffffff05),#2b6d5f}.game-card-icon svg{width:34px;height:34px}.game-card-copy{display:grid;gap:8px;min-width:0}.game-card-copy strong{overflow-wrap:anywhere;color:var(--ink);font-size:clamp(1.7rem,4vw,2.7rem);font-weight:950;line-height:.92;text-wrap:balance}.game-card-copy span,.game-card-stat{color:#f2f7ef94;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.game-card-stat{grid-column:1 / 3;align-self:end;justify-self:end;padding:7px 10px 8px;border:1px solid rgba(232,252,237,.12);border-radius:8px;background:#ffffff0f;white-space:nowrap}.game-card-arrow{grid-column:3;grid-row:3;align-self:end;width:40px;height:40px;background:#ffffff14;color:var(--ink);transition:transform .62s var(--ease-spring),background .62s var(--ease-spring)}.game-card:hover .game-card-arrow{transform:translate(4px);background:#a9f26529}.game-card-preview{grid-column:1 / -1;display:grid;align-self:stretch;height:clamp(126px,15vw,150px);overflow:hidden;border:1px solid rgba(232,252,237,.11);border-radius:8px;background:linear-gradient(180deg,#ffffff13,#ffffff04),#0305056b;box-shadow:inset 0 1px #ffffff1a,inset 0 -16px 28px #00000042}.game-card-preview-blocks{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;padding:12px}.preview-block{min-width:0;min-height:0;border-radius:5px;background:#ffffff0f;box-shadow:inset 0 1px #ffffff1f}.preview-block-0,.preview-block-3,.preview-block-4{background:linear-gradient(145deg,#ff9b7c,#c94a3e)}.preview-block-1{background:linear-gradient(145deg,#f3d36d,#b27a22)}.preview-block-2{background:linear-gradient(145deg,#75e6c0,#2f8c74)}.game-card-preview-numbers{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr;gap:9px;padding:12px}.preview-number-tile{display:grid;place-items:center;min-width:0;border-radius:8px;background:linear-gradient(145deg,#ffffff5c,#ffffff0a),linear-gradient(145deg,#a9f265,#3a9c7d);color:#08100d;font-size:clamp(1rem,3.2vw,1.9rem);font-weight:950;box-shadow:inset 0 3px #ffffff57,inset 0 -8px #00000024,0 12px 24px #00000047}.game-shell{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,620px);min-height:100dvh;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) clamp(14px,4vw,26px) max(18px,env(safe-area-inset-bottom))}.game-shell>*{position:relative;z-index:1}.game-shell:before{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";opacity:.36;background-image:linear-gradient(rgba(32,35,34,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(32,35,34,.045) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent)}.game-shell:after{position:fixed;inset:0;z-index:0;pointer-events:none;content:"";opacity:0;background:linear-gradient(135deg,transparent 0%,rgba(255,111,92,.24) 54%,transparent 100%),linear-gradient(45deg,rgba(255,111,92,.2),transparent 28%);mix-blend-mode:multiply;transition:opacity .52s var(--ease-heavy),transform .52s var(--ease-heavy)}.game-2048-shell{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,620px);min-height:100dvh;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) clamp(14px,4vw,26px) max(18px,env(safe-area-inset-bottom))}.game-2048-shell>*{position:relative;z-index:1}.game-2048-shell:before{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";opacity:.48;background:linear-gradient(rgba(32,35,34,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(32,35,34,.04) 1px,transparent 1px),linear-gradient(145deg,rgba(88,183,215,.14),transparent 32%),linear-gradient(25deg,transparent 56%,rgba(237,183,63,.12) 72%,transparent);background-size:44px 44px,44px 44px,auto,auto;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent)}.game-shell.risk-warning:after{opacity:.28;animation:riskBreathe 1.8s var(--ease-heavy) infinite alternate}.game-shell.risk-danger:after{opacity:.52;animation:riskBreathe .9s var(--ease-heavy) infinite alternate}.hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;min-height:clamp(92px,15dvh,118px);padding-top:clamp(8px,2dvh,24px)}.best-chip,.icon-button,.combo-chip,.run-strip,.restart-button{border:1px solid rgba(32,35,34,.12);box-shadow:inset 0 1px #ffffff80,0 14px 34px #4552461f}.best-chip{display:inline-flex;align-items:center;justify-self:start;gap:6px;min-height:34px;padding:0 10px;border-radius:8px;background:#ffffff80;color:#c79b21;font-size:clamp(.84rem,2.6vw,1rem);font-weight:800}.best-chip svg{width:24px;height:24px;filter:drop-shadow(0 4px 8px rgba(199,155,33,.24))}.score-stack{position:relative;display:grid;justify-items:center;min-width:168px;line-height:.92;text-align:center}.score-value,.score-shadow{grid-area:1 / 1;font-family:Avenir Next,Trebuchet MS,Verdana,sans-serif;font-size:clamp(3.4rem,16vw,6.7rem);font-weight:900;letter-spacing:0}.score-value{color:#fbfbf8;text-shadow:0 2px 0 rgba(32,35,34,.12),0 22px 42px rgba(32,35,34,.22)}.score-shadow{transform:translate(10px,8px) rotate(-8deg);color:#52b99c5c}.combo-chip{margin-top:10px;padding:5px 10px 6px;border-radius:999px;background:#ec5f4f1f;color:#b64235;font-size:.78rem;font-weight:900;text-transform:uppercase}.hud-actions{display:flex;justify-self:end;gap:8px}.icon-button{display:inline-grid;width:38px;height:38px;place-items:center;border-radius:8px;background:#ffffff8f;color:var(--graphite);cursor:pointer;transition:transform .42s var(--ease-heavy),background .42s var(--ease-heavy),box-shadow .42s var(--ease-heavy)}.icon-button svg{width:20px;height:20px}.icon-button:hover{transform:translateY(-2px);background:#ffffffbd}.icon-button:active,.restart-button:active,.piece-button:active{transform:translateY(1px) scale(.98)}.playfield{display:grid;align-content:center;gap:clamp(12px,3dvh,24px)}.board-bezel{position:relative;width:min(100%,540px,max(300px,calc(100dvh - 315px)));margin:0 auto;padding:clamp(6px,1.5vw,9px);border:1px solid rgba(32,35,34,.24);border-radius:8px;background:linear-gradient(180deg,#ffffff42,#ffffff05),#3b403d;box-shadow:inset 0 1px #ffffff52,inset 0 -3px 10px #0000002e,0 28px 72px #2023223d}.board-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:var(--cell-gap);aspect-ratio:1;padding:var(--cell-gap);border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.05),transparent),var(--graphite-2);box-shadow:inset 0 2px 4px #0000006b,inset 0 -1px #ffffff14}.board-cell{position:relative;display:grid;aspect-ratio:1;place-items:stretch;overflow:hidden;border-radius:5px;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent 42%),#ffffff0b;box-shadow:inset 0 0 0 1px #00000021}.board-cell-ghost-valid:after,.board-cell-ghost-invalid:after{position:absolute;inset:8%;border-radius:5px;content:"";animation:ghostPulse .52s var(--ease-heavy) infinite alternate;z-index:4}.board-cell-ghost-valid:after{background:#52b99c6b;box-shadow:0 0 0 2px #76e1c3b3}.board-cell-ghost-invalid:after{background:#ec5f4f61;box-shadow:0 0 0 2px #ec5f4fb3}.board-cell-clearing{animation:clearFlash .52s var(--ease-heavy)}.board-cell-clearing:after{position:absolute;inset:-18%;z-index:5;border-radius:6px;content:"";background:linear-gradient(90deg,transparent,rgba(255,255,255,.88),transparent),radial-gradient(circle,rgba(88,183,215,.58),transparent 62%);animation:clearSweep .56s var(--ease-heavy) forwards}.board-cell-preview-clear{box-shadow:inset 0 0 0 1px #ffffff42,0 0 18px #ffffff24}.preview-clear-wash{position:absolute;inset:4%;z-index:3;border-radius:5px;opacity:.62;background:var(--cube-bg, rgba(255, 255, 255, .72));box-shadow:inset 0 2px #ffffff5c,0 0 18px #ffffff40;animation:previewLinePulse .62s var(--ease-heavy) infinite alternate}.cube{position:relative;display:block;width:100%;height:100%;border-radius:5px;background:var(--cube-bg, var(--pearl));box-shadow:inset 0 2px #ffffff61,inset 0 -4px #00000029,0 6px 12px #0003}.board-cell-clearing .board-cube{z-index:2;animation:clearCubeBurst .56s var(--ease-heavy) forwards}.cube:before{position:absolute;inset:10% 11% auto;height:28%;border-radius:4px;content:"";background:#ffffff38}.board-cube{z-index:2;animation:cubeLand .36s var(--ease-heavy)}.cube-amber{--cube-bg: linear-gradient(145deg, #ffd85a 0%, #edb73f 50%, #d88d22 100%)}.cube-rose{--cube-bg: linear-gradient(145deg, #ff9cb2 0%, #ec7692 54%, #ca516f 100%)}.cube-cyan{--cube-bg: linear-gradient(145deg, #81d9ef 0%, #58b7d7 54%, #337fa8 100%)}.cube-violet{--cube-bg: linear-gradient(145deg, #bba7ff 0%, #8f73d8 52%, #684bb2 100%)}.cube-jade{--cube-bg: linear-gradient(145deg, #75dcb8 0%, #52b99c 55%, #2f8472 100%)}.cube-coral{--cube-bg: linear-gradient(145deg, #ff9d85 0%, #ec5f4f 55%, #bf3d37 100%)}.cube-pearl,.cube-test,.cube-occupied,.cube-blocked{--cube-bg: linear-gradient(145deg, #f6fbfa 0%, #dfe8e8 52%, #aebcbc 100%)}.notice{position:absolute;left:50%;top:50%;z-index:3;display:grid;grid-template-columns:auto auto;align-items:center;gap:3px 8px;padding:10px 14px;border:1px solid rgba(255,255,255,.32);border-radius:8px;background:#ffffffdb;color:var(--ink);box-shadow:0 18px 44px #0000003d;transform:translate(-50%,-50%);animation:noticePop .9s var(--ease-heavy) forwards;pointer-events:none}.notice svg{grid-row:span 2;width:22px;height:22px;color:var(--accent)}.notice span{font-size:clamp(1.15rem,5vw,2rem);font-weight:950;line-height:.9}.notice small{color:var(--ink-soft);font-size:.78rem;font-weight:800;text-transform:uppercase}.notice-combo{background:#fff3bf}.notice-blocked{background:#ffe5df}.tray{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,3vw,18px);width:min(100%,540px,max(300px,calc(100dvh - 315px)));margin:0 auto}.piece-slot{display:grid;min-height:clamp(74px,14dvh,112px);place-items:center;border:1px solid rgba(32,35,34,.1);border-radius:8px;background:linear-gradient(180deg,#ffffff70,#fff3),#ffffff47;box-shadow:inset 0 1px #fff6,0 18px 38px #4d5a4f1a}.piece-slot-empty{opacity:.42}.piece-button{display:grid;width:100%;min-height:72px;place-items:center;border:0;border-radius:8px;background:transparent;cursor:grab;touch-action:none;transition:transform .42s var(--ease-heavy),filter .42s var(--ease-heavy)}.piece-button:hover{transform:translateY(-4px);filter:saturate(1.08)}.piece-button:disabled{cursor:default;opacity:.55}.piece-preview{display:grid;grid-template-columns:repeat(var(--piece-width),var(--piece-cell));grid-template-rows:repeat(var(--piece-height),var(--piece-cell));gap:max(2px,calc(var(--piece-cell) * .13));filter:drop-shadow(0 12px 16px rgba(32,35,34,.18))}.piece-preview-drag{opacity:.98;transform:rotate(-2deg) scale(1.05);filter:drop-shadow(0 24px 30px rgba(32,35,34,.24))}.piece-cube{min-width:0}.piece-spent{width:46px;height:7px;border-radius:999px;background:#2023222e}.drag-avatar{position:fixed;left:0;top:0;z-index:6;pointer-events:none;transition:filter .18s var(--ease-heavy)}.drag-avatar-invalid{filter:grayscale(.25) saturate(.7)}.run-strip{display:flex;justify-content:center;gap:clamp(8px,3vw,18px);width:min(100%,540px,max(300px,calc(100dvh - 315px)));margin:clamp(14px,3dvh,22px) auto 0;padding:8px 12px;border-radius:8px;background:#ffffff6b;color:#202322ad;font-size:clamp(.72rem,2.4vw,.86rem);font-weight:850;text-transform:uppercase}.game-over{position:fixed;inset:0;z-index:5;display:grid;place-items:center;padding:24px;background:#181b1a61}.game-over-panel{display:grid;justify-items:center;gap:12px;width:min(100%,330px);padding:26px;border:1px solid rgba(255,255,255,.4);border-radius:8px;background:#fafaf4f0;box-shadow:inset 0 1px #ffffff8a,0 30px 90px #00000047;animation:panelIn .54s var(--ease-heavy)}.game-over-panel span{color:var(--ink-soft);font-size:.82rem;font-weight:900;text-transform:uppercase}.game-over-panel strong{color:var(--ink);font-size:clamp(3rem,15vw,5rem);line-height:.95}.restart-button{display:inline-flex;align-items:center;gap:12px;margin-top:4px;padding:8px 8px 8px 18px;border-radius:999px;background:var(--graphite);color:#f8f8f1;cursor:pointer;transition:transform .42s var(--ease-heavy),background .42s var(--ease-heavy)}.restart-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:999px;background:#ffffff1f;color:#fff}.hud-2048{min-height:clamp(90px,14dvh,112px)}.best-chip-2048{color:#2f8a76}.score-stack-2048{min-width:190px}.score-value-2048,.score-shadow-2048{font-size:5rem}.score-shadow-2048{color:#58b7d757}.combo-chip-2048{background:#52b99c24;color:#2f8472}.playfield-2048{align-content:center;gap:18px}.board-2048{--tile-gap-2048: clamp(8px, 2vw, 12px);--tile-size-2048: calc((100% - var(--tile-gap-2048) * 3) / 4);position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--tile-gap-2048);width:min(100%,540px,max(300px,calc(100dvh - 280px)));aspect-ratio:1;margin:0 auto;padding:var(--tile-gap-2048);overflow:hidden;border:1px solid rgba(32,35,34,.24);border-radius:8px;background:linear-gradient(180deg,#ffffff29,#ffffff05),#2d3330;box-shadow:inset 0 1px #ffffff47,inset 0 -5px 16px #0003,0 30px 74px #20232240;touch-action:none}.cell-2048{position:relative;display:block;aspect-ratio:1;overflow:hidden;border-radius:8px;background:linear-gradient(145deg,rgba(255,255,255,.06),transparent 48%),#ffffff0e;box-shadow:inset 0 0 0 1px #0000002e}.tile-layer-2048{position:absolute;inset:var(--tile-gap-2048);z-index:2;pointer-events:none}.tile-2048{position:absolute;left:calc(var(--tile-col) * (var(--tile-size-2048) + var(--tile-gap-2048)));top:calc(var(--tile-row) * (var(--tile-size-2048) + var(--tile-gap-2048)));display:block;width:var(--tile-size-2048);height:var(--tile-size-2048);transition:left .17s cubic-bezier(.2,.86,.2,1),top .17s cubic-bezier(.2,.86,.2,1);will-change:left,top}.tile-gel-2048{position:relative;display:grid;width:100%;height:100%;place-items:center;overflow:hidden;border-radius:8px;background:var(--tile-bg-2048);color:var(--tile-ink-2048, #202322);box-shadow:inset 0 4px #ffffff57,inset 0 -8px #00000024,0 12px 20px #0003}.tile-gel-2048:before{position:absolute;inset:10% 12% auto;height:31%;border-radius:8px;content:"";background:linear-gradient(180deg,#ffffff6b,#ffffff14);transform:skew(-8deg)}.tile-gel-2048:after{position:absolute;inset:0;content:"";background:radial-gradient(circle at 70% 78%,rgba(255,255,255,.18),transparent 38%);mix-blend-mode:screen}.tile-number-2048{position:relative;z-index:1;font-size:2.55rem;font-weight:950;line-height:1;text-shadow:0 2px 0 rgba(255,255,255,.22)}.tile-2048-new .tile-gel-2048{animation:jellySpawn2048 .36s var(--ease-heavy)}.tile-2048-merged .tile-gel-2048{animation:jellyMerge2048 .36s var(--ease-heavy)}.tile-value-2{--tile-bg-2048: linear-gradient(145deg, #f8fbf5, #dfe8e8 54%, #bdcaca)}.tile-value-4{--tile-bg-2048: linear-gradient(145deg, #e2f4df, #aedcc5 54%, #78af9d)}.tile-value-8{--tile-bg-2048: linear-gradient(145deg, #8fe0ef, #58b7d7 54%, #2f7da4);--tile-ink-2048: #fbfbf8}.tile-value-16{--tile-bg-2048: linear-gradient(145deg, #ffd95f, #edb73f 52%, #c47d22)}.tile-value-32{--tile-bg-2048: linear-gradient(145deg, #ff9f86, #ec5f4f 54%, #bf3d37);--tile-ink-2048: #fffaf4}.tile-value-64{--tile-bg-2048: linear-gradient(145deg, #ff9fba, #ec7692 52%, #b94162);--tile-ink-2048: #fffaf4}.tile-value-128{--tile-bg-2048: linear-gradient(145deg, #87e0c0, #52b99c 54%, #277a6b);--tile-ink-2048: #fffaf4}.tile-value-256{--tile-bg-2048: linear-gradient(145deg, #c3b0ff, #8f73d8 52%, #5d42a0);--tile-ink-2048: #fffaf4}.tile-value-512{--tile-bg-2048: linear-gradient(145deg, #67706b, #363d39 52%, #171a19);--tile-ink-2048: #fffaf4}.tile-value-1024{--tile-bg-2048: linear-gradient(145deg, #f6fbfa, #a8d8d6 48%, #3c8d95);--tile-ink-2048: #11201f}.tile-value-2048,.tile-value-super{--tile-bg-2048: linear-gradient(145deg, #fff3bf, #edb73f 38%, #ec5f4f 100%);--tile-ink-2048: #2a1814}.tile-value-128 .tile-number-2048,.tile-value-256 .tile-number-2048,.tile-value-512 .tile-number-2048{font-size:2.15rem}.tile-value-1024 .tile-number-2048,.tile-value-2048 .tile-number-2048,.tile-value-super .tile-number-2048{font-size:1.62rem}.pad-2048{display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px);justify-content:center;gap:8px}.pad-button-2048{width:42px;height:42px;background:#ffffff9e}.pad-up-2048{grid-column:2}.pad-left-2048{grid-column:1;grid-row:2}.pad-right-2048{grid-column:3;grid-row:2}.pad-down-2048{grid-column:2;grid-row:2}.run-strip-2048{width:min(100%,540px,max(300px,calc(100dvh - 280px)))}.game-over-panel-2048{background:#f6fbfaf0}.game-shell,.game-2048-shell{width:min(100%,660px)}.game-shell:before,.game-2048-shell:before{opacity:.9;background:linear-gradient(150deg,rgba(169,242,101,.1),transparent 30%),linear-gradient(25deg,transparent 48%,rgba(107,215,255,.11) 72%,transparent 100%),linear-gradient(rgba(230,246,234,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(230,246,234,.035) 1px,transparent 1px);background-size:auto,auto,44px 44px,44px 44px}.game-shell:after{background:linear-gradient(135deg,transparent 0%,rgba(255,111,92,.24) 54%,transparent 100%),linear-gradient(45deg,rgba(255,111,92,.2),transparent 28%);mix-blend-mode:screen}.best-chip,.icon-button,.combo-chip,.run-strip,.restart-button{border-color:#e8fced24;box-shadow:inset 0 1px #ffffff24,0 18px 38px #00000047}.best-chip,.icon-button,.run-strip{background:linear-gradient(145deg,#ffffff1f,#ffffff06),#0e1413c2;color:var(--ink)}.best-chip{color:var(--amber)}.best-chip-2048{color:var(--accent)}.icon-button:hover{background:linear-gradient(145deg,#a9f26538,#6bd7ff14),#141d1be6;box-shadow:inset 0 1px #ffffff2e,0 18px 44px #00000057,0 0 34px #a9f26521}.score-value{color:var(--ink);text-shadow:0 2px 0 rgba(255,255,255,.07),0 24px 60px rgba(0,0,0,.58),0 0 40px rgba(107,215,255,.12)}.score-shadow{color:#a9f26538}.combo-chip{background:#a9f26521;color:var(--accent)}.board-bezel,.board-2048{border-color:#e8fced2e;background:linear-gradient(180deg,#ffffff1f,#ffffff05),linear-gradient(145deg,#a9f26514,#6bd7ff0a),#121b18;box-shadow:inset 0 1px #ffffff2e,inset 0 -20px 34px #00000047,0 34px 86px #0000007a,0 0 70px #6bd7ff14}.board-grid,.tile-layer-2048{background:transparent}.board-grid{background:linear-gradient(180deg,rgba(255,255,255,.035),transparent),#050807}.board-cell,.cell-2048{background:linear-gradient(145deg,#ffffff12,#ffffff05),#ffffff09;box-shadow:inset 0 1px #ffffff12,inset 0 0 0 1px #00000038}.cube,.tile-gel-2048{box-shadow:inset 0 3px #ffffff5c,inset 0 -8px #0000002e,0 10px 18px #00000057}.cube-amber{--cube-bg: linear-gradient(145deg, #ffe36f 0%, #f2c95f 48%, #a96b20 100%)}.cube-rose{--cube-bg: linear-gradient(145deg, #ff9fc0 0%, #ff7fa3 50%, #b23c64 100%)}.cube-cyan{--cube-bg: linear-gradient(145deg, #a4efff 0%, #6bd7ff 50%, #2678a4 100%)}.cube-violet{--cube-bg: linear-gradient(145deg, #c9b8ff 0%, #a58cff 52%, #684bb2 100%)}.cube-jade{--cube-bg: linear-gradient(145deg, #a9f265 0%, #6ee3ae 48%, #227c65 100%)}.cube-coral{--cube-bg: linear-gradient(145deg, #ffae8b 0%, #ff7d65 50%, #ae332b 100%)}.cube-pearl,.cube-test,.cube-occupied,.cube-blocked{--cube-bg: linear-gradient(145deg, #f2f7ef 0%, #b8c9bf 52%, #647269 100%)}.notice,.game-over-panel{border-color:#e8fced2e;background:linear-gradient(145deg,#ffffff1f,#ffffff06),#0e1413f0;color:var(--ink);box-shadow:inset 0 1px #ffffff29,0 30px 90px #0000007a}.notice small,.game-over-panel span{color:#f2f7ef9e}.notice-combo{background:linear-gradient(145deg,#a9f26533,#ffffff06),#0e1413f0}.notice-blocked{background:linear-gradient(145deg,#ff6f5c38,#ffffff06),#0e1413f0}.piece-slot{border-color:#e8fced1f;background:linear-gradient(180deg,#ffffff18,#ffffff05),#0e1413a8;box-shadow:inset 0 1px #ffffff1f,0 20px 42px #0000003d}.piece-preview{filter:drop-shadow(0 14px 22px rgba(0,0,0,.34))}.piece-spent{background:#e8fced29}.run-strip{color:#f2f7efa8;letter-spacing:.06em}.restart-button{background:linear-gradient(145deg,#a9f26538,#6bd7ff14),#121b18;color:var(--ink)}.restart-icon{background:#ffffff1a}.tile-2048{left:0;top:0;transform:translate3d(calc(var(--tile-col) * (100% + var(--tile-gap-2048))),calc(var(--tile-row) * (100% + var(--tile-gap-2048))),0);transition:transform .17s cubic-bezier(.2,.86,.2,1);will-change:transform}.tile-value-2{--tile-bg-2048: linear-gradient(145deg, #f3fbec, #c9d9ce 54%, #8a9b91);--tile-ink-2048: #101715}.tile-value-4{--tile-bg-2048: linear-gradient(145deg, #e3ffd0, #a9f265 54%, #4e9f48);--tile-ink-2048: #101715}.tile-value-8{--tile-bg-2048: linear-gradient(145deg, #9eecff, #6bd7ff 54%, #2678a4);--tile-ink-2048: #061014}.tile-value-16{--tile-bg-2048: linear-gradient(145deg, #ffe87f, #f2c95f 52%, #a96b20);--tile-ink-2048: #1a1307}.tile-value-32{--tile-bg-2048: linear-gradient(145deg, #ffb08c, #ff7d65 54%, #ae332b);--tile-ink-2048: #fff7ef}.tile-value-64{--tile-bg-2048: linear-gradient(145deg, #ffa2c0, #ff7fa3 52%, #b23c64);--tile-ink-2048: #fff7ef}.tile-value-128{--tile-bg-2048: linear-gradient(145deg, #b7ff7b, #6ee3ae 54%, #227c65);--tile-ink-2048: #07110d}.tile-value-256{--tile-bg-2048: linear-gradient(145deg, #cbbfff, #a58cff 52%, #5d42a0);--tile-ink-2048: #fff7ef}.tile-value-512{--tile-bg-2048: linear-gradient(145deg, #77837b, #303b36 52%, #101513);--tile-ink-2048: #f2f7ef}.tile-value-1024{--tile-bg-2048: linear-gradient(145deg, #f2f7ef, #a9f265 44%, #2a8068);--tile-ink-2048: #07110d}.tile-value-2048,.tile-value-super{--tile-bg-2048: linear-gradient(145deg, #fff29b, #a9f265 38%, #6bd7ff 100%);--tile-ink-2048: #07110d}.pad-button-2048{background:linear-gradient(145deg,#ffffff1f,#ffffff06),#0e1413c2}@keyframes cubeLand{0%{opacity:0;transform:translateY(-18%) scale(.82)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ghostPulse{0%{opacity:.48;transform:scale(.86)}to{opacity:1;transform:scale(1)}}@keyframes clearFlash{0%,to{box-shadow:inset 0 0 0 1px #00000021}45%{background:#ffffffdb;box-shadow:inset 0 0 0 2px #ffffffe6,0 0 28px #58b7d7e0}}@keyframes clearSweep{0%{opacity:0;transform:translate(-80%) scale(.9)}42%{opacity:1;transform:translate(0) scale(1.05)}to{opacity:0;transform:translate(82%) scale(.88)}}@keyframes clearCubeBurst{0%{opacity:1;transform:scale(1);filter:saturate(1)}44%{opacity:1;transform:scale(1.1);filter:saturate(1.35) brightness(1.12)}to{opacity:0;transform:scale(.36) rotate(10deg);filter:saturate(.5) brightness(1.5)}}@keyframes previewLinePulse{0%{opacity:.42;transform:scale(.94)}to{opacity:.74;transform:scale(1)}}@keyframes riskBreathe{0%{transform:scale(.98);filter:saturate(.9)}to{transform:scale(1.03);filter:saturate(1.25)}}@keyframes noticePop{0%{opacity:0;transform:translate(-50%,-42%) scale(.82)}18%,70%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-76%) scale(.92)}}@keyframes panelIn{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shelfEnter{0%{opacity:0;transform:translateY(18px) scale(.985);filter:blur(10px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes jellySpawn2048{0%{opacity:0;transform:scale(.18)}42%{opacity:1;transform:scaleX(1.18) scaleY(.82)}68%{transform:scaleX(.92) scaleY(1.12)}to{opacity:1;transform:scale(1)}}@keyframes jellyMerge2048{0%{transform:scale(1);filter:brightness(1)}36%{transform:scaleX(1.2) scaleY(.82);filter:brightness(1.12)}70%{transform:scaleX(.9) scaleY(1.14)}to{transform:scale(1);filter:brightness(1)}}@media(max-width:720px){.game-list{grid-template-columns:1fr}.game-card{min-height:224px}.game-card-preview{height:112px}}@media(max-width:480px){.game-library-shell{align-content:start;gap:20px;padding-top:max(18px,env(safe-area-inset-top))}.library-mark{width:52px;height:52px}.library-hero h1{font-size:3.2rem}.game-card{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;min-height:206px;padding:12px}.game-card-icon{width:52px;height:52px}.game-card-icon svg{width:28px;height:28px}.game-card-copy strong{font-size:1.5rem}.game-card-stat{display:inline-flex;grid-column:1 / 3;justify-self:start;font-size:.68rem}.game-card-preview{height:96px}.game-card-preview-blocks,.game-card-preview-numbers{gap:6px;padding:9px}.game-shell,.game-2048-shell{padding-inline:10px}.hud{min-height:108px}.best-chip{padding-inline:7px}.hud-actions{gap:6px}.icon-button{width:34px;height:34px}.tray{gap:8px}.score-stack-2048{min-width:136px}.score-value-2048,.score-shadow-2048{font-size:3.35rem}.board-2048{--tile-gap-2048: 8px}.tile-number-2048{font-size:1.95rem}.tile-value-128 .tile-number-2048,.tile-value-256 .tile-number-2048,.tile-value-512 .tile-number-2048{font-size:1.58rem}.tile-value-1024 .tile-number-2048,.tile-value-2048 .tile-number-2048,.tile-value-super .tile-number-2048{font-size:1.18rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
