:root{--bg0:#2a1c12;--bg1:#4a3220;--ink:#f6ead7;--ink-dim:#cbb89a;--wood:#8b5a2b;--wood-hi:#c4a574;--accent:#e8b86d;--danger:#c45c3e;--panel:#1c120ab8;--shadow:0 12px 40px #00000059;--font-brand:"Fraunces", "Palatino Linotype", Palatino, serif;--font-ui:"Manrope", "Avenir Next", "Segoe UI", sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);color:var(--ink);font-family:var(--font-ui);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}*,:before,:after{box-sizing:border-box}html,body,#root{background:var(--bg0);touch-action:manipulation;width:100%;height:100%;margin:0;overflow:hidden}#root{height:var(--app-height,100%);height:min(100dvh, var(--app-height,100dvh))}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;cursor:pointer}.boot-splash{background:radial-gradient(120% 80% at 50% 0%, #5a3d26 0%, transparent 55%), linear-gradient(180deg, var(--bg1), var(--bg0));position:fixed;inset:0}.app-shell{background:radial-gradient(120% 70% at 50% -10%,#c4a57447,#0000 50%),linear-gradient(165deg,#4a3220 0%,#2a1c12 45%,#1a110b 100%);width:100%;height:100%;position:relative;overflow:hidden}.home,.play,.panel-screen{height:100%;padding:calc(16px + var(--safe-top)) calc(18px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(18px + var(--safe-left));flex-direction:column;display:flex}.home,.panel-screen{width:100%;max-width:480px;margin-inline:auto}.home{padding-bottom:calc(max(24px, var(--safe-bottom) + 10px));position:relative}.home-hero{z-index:1;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:clamp(1.5rem,4.5vh,2.75rem);min-height:0;padding-bottom:clamp(1rem,6vh,4rem);display:flex;position:relative}.home-header{text-align:center}.home-bg{pointer-events:none;background:radial-gradient(110% 50% at 50% 0,#e8b86d1f,#0000 62%),repeating-linear-gradient(90deg,#ffdcaa06 0 2px,#0000 2px 9px);position:fixed;inset:0;transform:translateZ(0)}.best-pill{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #f6ead71a;border-radius:999px;align-items:baseline;gap:.75rem;padding:.7rem 1.4rem;display:flex}.home-actions{z-index:1;flex-direction:column;flex:none;align-self:center;gap:.75rem;width:min(100%,340px);display:flex;position:relative}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin:0;font-size:.72rem;font-weight:600}.brand{font-family:var(--font-brand);letter-spacing:-.02em;color:var(--accent);text-shadow:0 2px #00000040;margin:.35rem 0 .6rem;font-size:clamp(3rem,14vw,4.4rem);font-weight:700;line-height:.95}.tagline{max-width:18rem;color:var(--ink-dim);margin:0 auto;font-size:.98rem;line-height:1.45}.best-pill span{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.best-pill strong{font-family:var(--font-brand);font-size:1.6rem}.btn{appearance:none;letter-spacing:.01em;will-change:transform;border:none;border-radius:16px;padding:.95rem 1.2rem;font-weight:700;transition:transform .12s,filter .12s}.btn:active{transform:scale(.98)}.btn-primary{color:#2a1c12;box-shadow:var(--shadow);background:linear-gradient(#e8b86d,#c48a3a)}.btn-ghost{background:#f6ead714;border:1px solid #f6ead724}.btn-text{color:var(--ink-dim);background:0 0}.btn.danger{color:#ffb4a2}.play{width:100%;min-height:0;max-width:min(676px, max(480px, calc(min(100dvh, var(--app-height,100dvh)) - 208px)));gap:.5rem;margin-inline:auto}.play-header{flex:none;grid-template-columns:44px 1fr 92px;align-items:stretch;gap:.4rem;display:grid}.play-header .icon-btn{height:auto;min-height:44px}.header-actions{justify-content:flex-end;gap:.4rem;display:flex}.icon-btn{width:44px;height:44px;color:var(--ink-dim);background:#0000002e;border:1px solid #f6ead712;border-radius:12px;place-items:center;transition:transform .11s,color .11s;display:grid}.icon-btn:active:not(:disabled){color:var(--ink);transform:scale(.94)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn svg{display:block}.stats{grid-template-columns:1fr 1.2fr 1fr;gap:.35rem;display:grid}.stat{text-align:center;background:#0000002e;border:1px solid #f6ead712;border-radius:12px;padding:.35rem .2rem}.stat span{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);font-size:.65rem;display:block}.stat strong{font-family:var(--font-brand);font-variant-numeric:tabular-nums;font-size:1.15rem}.stat-score strong{color:var(--accent);font-size:1.45rem}.score-pop{animation:.2s ease-out score-pop;display:inline-block}@keyframes score-pop{0%{transform:scale(1.22)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.score-pop{animation:none}}.toast{letter-spacing:.02em;height:1.6rem;color:var(--accent);text-shadow:0 1px 2px #140a0480;opacity:0;pointer-events:none;justify-content:center;align-items:center;font-size:.92rem;font-weight:700;transition:opacity .14s,transform .14s;display:flex;transform:translateY(4px)}.toast.is-on{opacity:1;transform:translate(0,0)}.toast.is-theme{color:#fff;text-shadow:0 1px 3px #0000008c;font-size:1.08rem}.toast.is-theme.is-on{animation:.42s ease-out theme-pop}@keyframes theme-pop{0%{opacity:0;transform:scale(.6)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.toast.is-theme.is-on{animation:none}}.board-column{flex-direction:column;flex:1;gap:.75rem;min-height:0;display:flex}.board-wrap{touch-action:none;flex:1;place-items:center;min-height:0;display:grid}.board-canvas{box-shadow:var(--shadow);touch-action:none;border-radius:16px;display:block;transform:translateZ(0)}.hand-tray{touch-action:none;flex:none;grid-template-columns:repeat(3,1fr);gap:.55rem;padding:.35rem 0 .15rem;display:grid}.hand-slot{touch-action:none;-webkit-touch-callout:none;background:#00000038;border:1px solid #f6ead71a;border-radius:18px;place-items:center;height:clamp(64px,13dvh,104px);padding:0;transition:transform .11s,background .11s;display:grid}.hand-slot:active:not(:disabled){transform:scale(.96)}.hand-slot.is-disabled{opacity:.55}.hand-slot.is-dragging{background:#0000001f;border-color:#e8b86d42}.hand-slot canvas{pointer-events:none;display:block}.drag-float{pointer-events:none;opacity:0;z-index:40;will-change:transform, opacity, filter;filter:drop-shadow(0 14px 18px #1009046b);transform-origin:50%;position:fixed;top:0;left:0;transform:translate(-200px,-200px)}.drag-float.is-invalid{filter:saturate(.7)drop-shadow(0 14px 18px #10090461)}@media (orientation:landscape) and (width>=600px){.play{max-width:min(828px, calc(min(100dvh, var(--app-height,100dvh)) + 48px))}.board-column{flex-direction:row;justify-content:center;gap:1rem}.hand-tray{grid-template-rows:repeat(3,minmax(0,120px));grid-template-columns:1fr;align-content:center;width:clamp(96px,16vh,136px);height:100%;padding:0}.hand-slot{height:auto;min-height:0}}.panel-screen{gap:.85rem}.panel-header{grid-template-columns:44px 1fr 44px;align-items:center;margin-bottom:.5rem;display:grid}.panel-header h2{text-align:center;font-family:var(--font-brand);margin:0}.spacer{width:44px}.toggle-row{background:#00000038;border:1px solid #f6ead714;border-radius:16px;justify-content:space-between;align-items:center;padding:1rem 1.1rem;display:flex}.toggle-row input{width:1.25rem;height:1.25rem;accent-color:var(--accent)}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c08059e;place-items:center;padding:1.25rem;display:grid;position:absolute;inset:0}.modal{width:min(100%,340px);box-shadow:var(--shadow);text-align:center;background:linear-gradient(#5a3d26,#3a2618);border:1px solid #f6ead724;border-radius:22px;flex-direction:column;gap:.7rem;padding:1.35rem 1.25rem 1.2rem;display:flex}.modal h2{font-family:var(--font-brand);margin:0;font-size:1.7rem}.modal ol{text-align:left;color:var(--ink-dim);margin:0;padding-left:1.2rem;line-height:1.45}.undo-guilt{color:var(--ink-dim);margin:0 0 .3rem;font-size:.95rem;line-height:1.5}.go-score{font-family:var(--font-brand);color:var(--accent);margin:0;font-size:3rem;line-height:1}.go-best{color:var(--ink-dim);margin:0 0 .4rem}@media (prefers-reduced-motion:reduce){.btn,.toast{transition:none}}
