:root{--wood-dark: #4a2f1c;--wood-mid: #6b4226;--wood-light: #8a5a35;--board-bg: #7a4d2b;--cell-a: #a06a3c;--cell-b: #93602f;--cream: #f3e4c8;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overscroll-behavior:none}body{font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;background:radial-gradient(circle at 20% 10%,rgba(255,220,170,.08),transparent 40%),repeating-linear-gradient(100deg,#3b2414,#3b2414 3px,#43291a 4px,#3b2414 8px),linear-gradient(160deg,#4a2f1c,#2d1c10);color:var(--cream);min-height:100vh;overflow-x:hidden;user-select:none;-webkit-user-select:none;touch-action:pan-y;overscroll-behavior:none}.app-root{display:flex;flex-direction:column;align-items:center;padding:calc(20px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-right,0px)) calc(40px + env(safe-area-inset-bottom,0px)) calc(12px + env(safe-area-inset-left,0px))}.game-shell{width:100%;max-width:480px;display:flex;flex-direction:column;align-items:center;gap:14px}.game-title{margin:0;font-size:2rem;letter-spacing:3px;text-transform:uppercase;color:#f6d9a8;text-shadow:0 2px 0 rgba(0,0,0,.5),0 0 18px rgba(246,217,168,.25)}.game-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.game-title.game-title-compact{font-size:1.35rem;letter-spacing:1.5px}.game-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.difficulty-pill{height:38px;padding:0 12px;border-radius:19px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#5a3a22,#3a2410);color:#f0dcb8;font-size:.7rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;white-space:nowrap;box-shadow:inset 0 1px #ffffff14,0 3px 6px #00000059;transition:transform .12s ease,background .12s ease}.difficulty-pill:hover{background:linear-gradient(180deg,#6b4a2c,#45301a)}.difficulty-pill:active{transform:scale(.94)}.icon-btn{width:38px;height:38px;flex-shrink:0;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#5a3a22,#3a2410);color:#f0dcb8;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:inset 0 1px #ffffff14,0 3px 6px #00000059;transition:transform .12s ease,background .12s ease}.icon-btn:hover{background:linear-gradient(180deg,#6b4a2c,#45301a)}.icon-btn:active{transform:scale(.92)}.menu-screen{width:100%;display:flex;flex-direction:column;align-items:center;padding:24px 0 8px}.menu-subtitle{margin:10px 0 26px;opacity:.75;letter-spacing:.5px}.difficulty-list{width:100%;display:flex;flex-direction:column;gap:14px}.difficulty-card{display:flex;align-items:center;gap:14px;width:100%;padding:16px 20px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:linear-gradient(180deg,#5a3a22,#40270f);color:#f0dcb8;cursor:pointer;box-shadow:inset 0 1px #ffffff14,0 4px 10px #00000059;transition:transform .1s ease,background .12s ease;text-align:left}.difficulty-card:hover{background:linear-gradient(180deg,#6b4a2c,#45301a);transform:translateY(-1px)}.difficulty-card:active{transform:translateY(1px)}.difficulty-name{font-size:1.15rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;flex:1}.difficulty-size{font-variant-numeric:tabular-nums;opacity:.8;font-size:.9rem}.difficulty-best{font-size:.75rem;opacity:.65;min-width:68px;text-align:right}.app-footer{width:100%;max-width:480px;text-align:center;padding:18px 0 6px;font-size:.7rem;letter-spacing:.3px;color:#f3e4c866}.score-bar{display:flex;gap:12px;width:100%}.score-box{flex:1;background:linear-gradient(180deg,#5a3a22,#40270f);border:1px solid rgba(0,0,0,.4);border-radius:10px;padding:8px 14px;box-shadow:inset 0 1px #ffffff14,0 3px 6px #00000059;text-align:center}.score-box-best{background:linear-gradient(180deg,#6b4d1e,#4a3410)}.score-label{font-size:.68rem;letter-spacing:2px;text-transform:uppercase;opacity:.75}.score-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.board-wrap{width:100%;display:flex;justify-content:center;position:relative}.board-grid{width:100%;aspect-ratio:1 / 1;display:grid;background:repeating-linear-gradient(90deg,rgba(0,0,0,.08) 0px,transparent 2px,transparent 40px),linear-gradient(155deg,var(--board-bg),#5f3a1e);border-radius:10px;padding:6px;gap:2px;box-shadow:inset 0 2px 6px #0000008c,0 6px 16px #00000073,0 0 0 4px #3a2513,0 0 0 6px #1e120a;position:relative}.cell{position:relative;border-radius:3px;background-image:linear-gradient(155deg,#ffffff0a,#0000001f)}.cell-shade-a{background-color:var(--cell-a)}.cell-shade-b{background-color:var(--cell-b)}.cell-preview-valid{box-shadow:inset 0 0 0 2px #78e68cf2,inset 0 0 12px #78e68c8c;background-color:#78e68c59}.cell-preview-invalid{box-shadow:inset 0 0 0 2px #f05a5ae6,inset 0 0 12px #f05a5a73;background-color:#f05a5a47}.cell-filled{background-color:transparent}.tile{position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:4px;background-color:var(--tile-color);background-image:linear-gradient(155deg,#ffffff59,#fff0 40%),linear-gradient(155deg,#0000 55%,#00000059);box-shadow:inset 0 0 0 1px #ffffff26,0 2px 3px #00000059;animation:place-pop .16s ease-out}@keyframes place-pop{0%{transform:scale(.55);filter:brightness(1.5)}60%{transform:scale(1.08)}to{transform:scale(1)}}.flash-tile{position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:4px;background-color:var(--tile-color);box-shadow:0 0 16px 4px #ffffffe6;animation:flash-clear .48s ease-out forwards;pointer-events:none;z-index:5}.chips{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6}.chip{position:absolute;left:50%;top:50%;width:var(--chip-size);height:var(--chip-size);border-radius:1px;opacity:0;animation:chip-fly .6s ease-out var(--chip-delay) forwards}@keyframes chip-fly{0%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1)}70%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--chip-x)),calc(-50% + var(--chip-y) + 18px)) rotate(var(--chip-rot)) scale(.6)}}.board-danger{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;pointer-events:none;z-index:4;transition:opacity .4s ease;background:radial-gradient(ellipse at center,transparent 45%,rgba(120,20,15,.32) 85%,rgba(90,12,10,.5) 100%)}.board-shake-1{animation:board-shake .35s ease-out;--shake: 2px}.board-shake-2{animation:board-shake .35s ease-out;--shake: 4px}.board-shake-3{animation:board-shake .35s ease-out;--shake: 6px}@keyframes board-shake{0%{transform:translate(0)}15%{transform:translate(calc(var(--shake) * -1),calc(var(--shake) * .4))}30%{transform:translate(var(--shake),calc(var(--shake) * -.4))}45%{transform:translate(calc(var(--shake) * -.7),calc(var(--shake) * .2))}60%{transform:translate(calc(var(--shake) * .5),calc(var(--shake) * -.2))}80%{transform:translate(calc(var(--shake) * -.25))}to{transform:translate(0)}}@media (prefers-reduced-motion: reduce){.chip,.board-shake-1,.board-shake-2,.board-shake-3{animation:none}.chip{opacity:0}}@keyframes flash-clear{0%{transform:scale(1);opacity:1;background-color:#fff}25%{opacity:1;background-color:#fff;transform:scale(1.15)}to{transform:scale(1.5);opacity:0}}.combo-toast{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:1.35rem;font-weight:800;color:#ffe9b0;text-shadow:0 0 10px rgba(255,200,80,.9),0 2px 3px rgba(0,0,0,.6);animation:combo-pop .9s ease-out forwards;pointer-events:none;z-index:20;letter-spacing:1px;text-align:center;white-space:nowrap}@keyframes combo-pop{0%{opacity:0;transform:translate(-50%,-40%) scale(.6)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}35%{transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-70%) scale(1)}}.tray-toolbar{width:100%;display:flex;justify-content:flex-end;margin-top:-4px}.reroll-btn{display:flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:linear-gradient(180deg,#e0983e,#b96f1f);color:#2a1a0d;font-weight:700;font-size:.72rem;letter-spacing:.3px;text-transform:uppercase;cursor:pointer;box-shadow:0 3px 8px #00000059,inset 0 1px #fff6;transition:transform .1s ease,opacity .15s ease}.reroll-btn:hover:not(:disabled){transform:translateY(-1px)}.reroll-btn:active:not(:disabled){transform:translateY(1px)}.reroll-btn:disabled{cursor:default;opacity:.45;background:linear-gradient(180deg,#6b5236,#4a3a26);color:#f0dcb8b3;box-shadow:none}.piece-tray{width:100%;display:flex;justify-content:space-between;gap:10px;background:linear-gradient(180deg,#3d2513,#2a1a0d);border-radius:12px;padding:14px 10px;box-shadow:inset 0 2px 6px #00000080,0 4px 10px #00000059;min-height:104px}.piece-slot{flex:1;display:flex;align-items:center;justify-content:center;min-height:90px}.piece-grab{cursor:grab;padding:6px;display:flex;align-items:center;justify-content:center}.piece-preview{position:relative}.piece-preview-dimmed{filter:grayscale(.4) brightness(.85)}.piece-tile{position:absolute;border-radius:4px;background-color:var(--tile-color);background-image:linear-gradient(155deg,#ffffff59,#fff0 40%),linear-gradient(155deg,#0000 55%,#00000059);box-shadow:inset 0 0 0 1px #ffffff26,0 2px 3px #00000059;margin:1px;width:calc(100% - 2px);height:calc(100% - 2px)}.drag-ghost{position:fixed;left:0;top:0;z-index:100;pointer-events:none;will-change:transform;filter:drop-shadow(0 8px 14px rgba(0,0,0,.5))}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0803b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-card{background:linear-gradient(180deg,#5a3a22,#33200f);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:32px 40px;text-align:center;box-shadow:0 12px 40px #0009;min-width:260px}.modal-card h2{margin:0 0 8px;font-size:1.8rem;letter-spacing:2px;text-transform:uppercase;color:#f6d9a8}.modal-new-best{color:#ffd873;font-weight:700;margin-bottom:10px;text-shadow:0 0 10px rgba(255,216,115,.6)}.modal-score{font-size:2.6rem;font-weight:800;color:#fff}.modal-best{opacity:.75;margin-bottom:20px}.modal-message{opacity:.85;margin:0 0 22px;max-width:26ch;line-height:1.4}.modal-actions{display:flex;gap:12px;justify-content:center}.modal-btn{border:none;border-radius:10px;font-weight:700;font-size:1rem;padding:12px 24px;cursor:pointer;transition:transform .1s ease}.modal-btn:hover{transform:translateY(-1px)}.modal-btn:active{transform:translateY(1px)}.modal-btn-primary{background:linear-gradient(180deg,#e0983e,#b96f1f);color:#2a1a0d;box-shadow:0 4px 10px #0006,inset 0 1px #fff6}.modal-btn-secondary{background:linear-gradient(180deg,#6b5236,#4a3a26);color:#f0dcb8;box-shadow:0 4px 10px #0000004d,inset 0 1px #ffffff1a}.restart-btn{background:linear-gradient(180deg,#e0983e,#b96f1f);border:none;border-radius:10px;color:#2a1a0d;font-weight:700;font-size:1rem;padding:12px 28px;cursor:pointer;box-shadow:0 4px 10px #0006,inset 0 1px #fff6;transition:transform .1s ease}.restart-btn:hover{transform:translateY(-1px)}.restart-btn:active{transform:translateY(1px)}.text-link-btn{display:block;margin:14px auto 0;background:none;border:none;color:#f3e4c8b3;font-size:.82rem;text-decoration:underline;cursor:pointer}.text-link-btn:hover{color:#f3e4c8}@media (max-width: 420px){.game-title{font-size:1.5rem}.score-value{font-size:1.2rem}.difficulty-pill{font-size:.6rem;padding:0 8px}}.app-footer{display:flex;flex-direction:column;align-items:center;gap:6px}.app-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px}.app-footer a,.app-footer button{font:inherit;letter-spacing:inherit;color:inherit;background:none;border:0;padding:4px 0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.app-footer a:hover,.app-footer button:hover{color:var(--cream)}.consent{position:fixed;left:0;right:0;bottom:0;z-index:100;display:flex;flex-direction:column;gap:12px;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:var(--wood-dark);border-top:2px solid var(--wood-light);color:var(--cream);font-size:.85rem;line-height:1.5}.consent-text{margin:0}.consent-text a{color:inherit}.consent-actions{display:flex;gap:10px}.consent-actions button{flex:1 1 0;min-height:44px;padding:0 16px;font:inherit;font-weight:600;letter-spacing:.5px;color:var(--cream);background:transparent;border:1px solid rgba(243,228,200,.5);border-radius:8px;cursor:pointer}.consent-actions button:hover{background:#f3e4c81f}
