:root{font-family:Trebuchet MS,Avenir Next,Segoe UI,sans-serif;color:#fff7ee;background:radial-gradient(circle at 50% -10%,rgba(255,219,164,.35),transparent 35%),radial-gradient(circle at 18% 14%,rgba(255,240,210,.12),transparent 28%),linear-gradient(180deg,#ad6e2c47,#5d36181f),linear-gradient(180deg,#784319,#b46f31 16%,#8e521f 36%,#6c3d17 62%,#4d2910);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%}body{margin:0;min-height:100vh;min-height:100dvh;overflow:hidden;background:linear-gradient(105deg,rgba(255,255,255,.03) 0 8%,transparent 8% 16%,rgba(0,0,0,.04) 16% 24%,transparent 24% 32%,rgba(255,255,255,.025) 32% 40%,transparent 40%),radial-gradient(circle at top,rgba(255,227,177,.12),transparent 30%),linear-gradient(180deg,#9e6027,#814919 18%,#6d3b15 48%,#592e11)}button{font:inherit}.app-shell{min-height:100vh;min-height:100dvh;padding:max(6px,env(safe-area-inset-top)) 10px max(8px,env(safe-area-inset-bottom));display:flex;align-items:stretch;justify-content:center}.app-card{--app-v-gap: clamp(6px, 1.5vh, 10px);--tray-gap: clamp(6px, 2vw, 10px);--tray-cell-size: clamp(16px, 5.1vw, 21px);width:min(100%,480px);height:100%;padding:6px 8px 8px;border-radius:32px;position:relative;display:flex;flex-direction:column;gap:var(--app-v-gap)}.topbar{display:flex;flex-direction:column;align-items:center;gap:clamp(4px,1vh,8px)}.score-marquee{width:100%;text-align:center}.eyebrow{margin:0 0 2px;text-transform:uppercase;letter-spacing:.2em;font-size:.62rem;color:#ffecd0c7}.score-hero{display:flex;flex-direction:column;align-items:center;gap:2px;text-shadow:0 2px 0 rgba(98,53,14,.3),0 8px 16px rgba(42,19,4,.32)}.score-label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#fff0dcdb}.score-hero strong{font-size:clamp(2rem,9.4vw,4rem);line-height:.9;font-weight:800;color:#fffdf7}.subcopy,.footer-copy{color:#ffecd6c7}.subcopy{margin:0 auto;line-height:1.22;max-width:32ch;text-align:center;font-size:clamp(.74rem,2.35vw,.9rem)}.footer-copy{margin-top:0;display:flex;flex-direction:column;gap:4px;font-size:.82rem;text-align:center}.hud{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.stat,.restart{border:0;border-radius:16px;padding:10px 12px;background:linear-gradient(180deg,#8f5625f0,#673a18f5),linear-gradient(90deg,#ffffff0a,#00000014);box-shadow:inset 0 1px #ffffff38,inset 0 -2px 4px #2c15062e,0 8px 16px #351a082e}.stat span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:#ffe7c6cc;margin-bottom:2px}.stat strong{font-size:1.15rem;color:#fff8ef}.score-hero.pulse,.stat.pulse{animation:pulse .22s ease}.restart{color:#fff8f0;font-weight:700;cursor:pointer;min-width:104px}.board-shell{position:relative;width:min(100%,440px);max-width:100%;margin:0 auto;padding:clamp(7px,2vw,10px);border-radius:24px;flex:0 0 auto;background:linear-gradient(145deg,#885026eb,#532d13f7),linear-gradient(0deg,#ffffff0a,#00000014);box-shadow:inset 0 2px #ffffff24,inset 0 -8px 12px #2c140757,0 18px 26px #401c083d}.board-shell:before{content:"";position:absolute;inset:7px;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.05),transparent 28%),linear-gradient(180deg,rgba(56,27,10,.18),transparent 24%);pointer-events:none;opacity:.55}.board{--board-gap: 5px;position:relative;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:var(--board-gap);aspect-ratio:1;padding:2px;border-radius:20px;background:linear-gradient(180deg,#592d1399,#3e1c0bb3);touch-action:none}.board:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(to right,transparent calc(33.333% - 3px),rgba(58,27,10,.72) calc(33.333% - 3px),rgba(58,27,10,.72) calc(33.333% + 3px),transparent calc(33.333% + 3px),transparent calc(66.666% - 3px),rgba(58,27,10,.72) calc(66.666% - 3px),rgba(58,27,10,.72) calc(66.666% + 3px),transparent calc(66.666% + 3px)),linear-gradient(to bottom,transparent calc(33.333% - 3px),rgba(58,27,10,.72) calc(33.333% - 3px),rgba(58,27,10,.72) calc(33.333% + 3px),transparent calc(33.333% + 3px),transparent calc(66.666% - 3px),rgba(58,27,10,.72) calc(66.666% - 3px),rgba(58,27,10,.72) calc(66.666% + 3px),transparent calc(66.666% + 3px));pointer-events:none}.cell{position:relative;aspect-ratio:1 / 1;border-radius:6px;background:linear-gradient(180deg,#70361bf0,#431f10fa),linear-gradient(90deg,#ffffff0a,#0000001f);box-shadow:inset 0 1px #ffffff12,inset 0 -2px 4px #1b0b0475,0 1px 1px #12070233}.cell:before{content:"";position:absolute;inset:6%;border-radius:4px;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent 40%,rgba(0,0,0,.14));opacity:.9}.cell.occupied,.mini-cell.filled{background:linear-gradient(180deg,#fbefce,#efd9ad 34%,#d9b37d 78%,#c69456);box-shadow:inset 0 1px #ffffff85,inset 0 -2px 4px #995e223d,0 3px 6px #3218062e}.cell.occupied:before,.mini-cell.filled:before{content:"";position:absolute;inset:8%;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 45%,rgba(162,102,36,.14))}.cell.valid{outline:2px solid rgba(157,233,173,.9);background:linear-gradient(180deg,#618a53eb,#3e5f39f0)}.cell.valid:after,.cell.clear-preview:after,.cell.clear-preview-piece:after{content:"";position:absolute;inset:10%;border-radius:inherit;pointer-events:none}.cell.clear-preview{outline:2px solid rgba(255,227,150,.95);background:linear-gradient(180deg,#f3d389f5,#d4a14df5),linear-gradient(90deg,#ffffff14,#00000014);box-shadow:inset 0 1px #ffffff57,inset 0 -2px 4px #7d4c133d,0 0 0 1px #fff4d02e,0 4px 10px #522a0a2e}.cell.clear-preview:after{inset:16%;border:1.5px solid rgba(255,247,219,.82);opacity:.9}.cell.clear-preview-piece{outline:2px solid rgba(255,244,196,.98);background:linear-gradient(180deg,#9ac67dfa,#709b50fa),linear-gradient(90deg,#ffffff14,#0000000f);box-shadow:inset 0 1px #ffffff47,inset 0 -2px 4px #45602d3d,0 0 0 1px #fff1c638,0 4px 12px #3a54223d}.cell.clear-preview-piece:after{inset:18%;background:radial-gradient(circle at 50% 50%,#fff9e3e0,#fff9e300 68%);opacity:.95}.cell.invalid{outline:2px solid rgba(255,159,145,.88);background:linear-gradient(180deg,#984637e6,#702a22f0)}@media(max-width:520px){.cell.valid,.cell.clear-preview,.cell.clear-preview-piece,.cell.invalid{outline-width:1.5px}.cell.clear-preview:after{inset:18%;border-width:1px}.cell.clear-preview-piece:after{inset:20%}}@media(prefers-reduced-motion:no-preference){.cell.clear-preview,.cell.clear-preview-piece{animation:previewGlow 1.4s ease-in-out infinite}}@keyframes previewGlow{0%,to{filter:saturate(1) brightness(1)}50%{filter:saturate(1.08) brightness(1.05)}}@media(prefers-reduced-motion:reduce){.cell.clear-preview,.cell.clear-preview-piece{animation:none}}.cell.clearing{animation:clearFlash .26s ease}.tray{margin-top:0;padding:2px 2px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--tray-gap);align-items:end}.tray-piece{min-height:clamp(64px,19vw,102px);border:0;border-radius:18px;padding:6px 4px 8px;display:flex;align-items:center;justify-content:center;background:transparent;box-shadow:none;transition:transform .16s ease,opacity .16s ease;cursor:grab;touch-action:none}.tray-piece.active{opacity:.12;transform:scale(.96)}.tray-piece.ghost{opacity:1;min-height:auto;transform:scale(1.03) rotate(-2deg);pointer-events:none}.mini-grid{display:grid;gap:clamp(3px,1vw,5px);filter:drop-shadow(0 9px 9px rgba(74,33,9,.18))}.mini-cell{position:relative;width:var(--tray-cell-size);height:var(--tray-cell-size);border-radius:5px;opacity:0}.mini-cell.filled{opacity:1}.drag-ghost{position:fixed;z-index:30;pointer-events:none}.piece-amber .mini-cell.filled,.piece-oak .mini-cell.filled,.piece-sand .mini-cell.filled,.piece-walnut .mini-cell.filled,.piece-pine .mini-cell.filled,.piece-clay .mini-cell.filled{background:linear-gradient(180deg,#fdf3d5,#efdcb4 34%,#d5b17f 74%,#c89157)}.modal-backdrop{position:fixed;inset:0;background:#1f0e0380;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:24px}.modal{width:min(100%,360px);padding:28px;border-radius:28px;background:linear-gradient(180deg,#8c5224fa,#5c3215);box-shadow:0 26px 80px #00000047;text-align:center}.modal-copy{color:#ffecd0d6;margin:12px 0 22px}.play-again{width:100%;border:0;border-radius:18px;padding:15px;background:linear-gradient(180deg,#fde4b5,#d89d56);color:#5a2d0f;font-weight:800;cursor:pointer}@keyframes clearFlash{0%{transform:scale(1);filter:brightness(1)}50%{transform:scale(.88);filter:brightness(1.25)}to{transform:scale(1);filter:brightness(1)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}@media(max-width:520px){.app-shell{padding-left:8px;padding-right:8px}.topbar{flex-direction:row;align-items:flex-end;justify-content:space-between}.score-marquee{width:auto;text-align:left;flex:1 1 auto}.eyebrow{display:none}.hud{width:auto;flex:0 0 auto;grid-template-columns:repeat(2,auto);gap:6px;align-items:stretch}.stat,.restart{padding:8px 10px;min-width:0}.subcopy{max-width:28ch;font-size:.72rem}.tray-piece{min-height:clamp(58px,17vw,92px);align-items:flex-start}.footer-copy{display:none}}@media(max-height:820px){.footer-copy{display:none}}@media(max-height:720px){.subcopy{display:none}.app-card{--tray-cell-size: clamp(14px, 4.6vw, 18px);--tray-gap: clamp(4px, 1.6vw, 8px);--app-v-gap: clamp(4px, 1vh, 8px)}.score-hero strong{font-size:clamp(1.8rem,8.5vw,2.8rem)}.stat,.restart{padding:8px 10px;border-radius:14px}.board-shell{padding:6px}.tray-piece{min-height:clamp(58px,17vw,88px);padding:4px 2px 6px}}@media(min-width:720px){.app-shell{padding:20px 18px 24px}.app-card{padding:16px 18px 22px}.subcopy,.footer-copy{max-width:38ch;margin-left:auto;margin-right:auto}}
