:root{color:#2c3e50;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f5f7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}.start-screen,.game-shell{color:#2c3e50;background:linear-gradient(#ffffffdb,#f4f5f7f2),repeating-linear-gradient(90deg,#2c3e500a 0 1px,#0000 1px 64px),#f4f5f7;min-height:100svh}.start-screen{place-items:center;padding:24px;display:grid;position:relative;overflow:hidden}.floating-tiles{pointer-events:none;position:absolute;inset:0}.floating-tiles span{aspect-ratio:1;color:#fff;border-radius:14px;place-items:center;width:70px;font-weight:900;animation:5s ease-in-out infinite floatTile;display:grid;position:absolute;box-shadow:0 18px 36px #2c3e5029}.floating-tiles span:first-child{background:#6fcf97;top:18%;left:14%}.floating-tiles span:nth-child(2){background:#a66f45;animation-delay:-1s;top:15%;right:18%}.floating-tiles span:nth-child(3){background:#839192;animation-delay:-2s;bottom:15%;left:20%}.floating-tiles span:nth-child(4){background:#9b51e0;animation-delay:-3s;bottom:23%;right:12%}.floating-tiles span:nth-child(5){background:#56ccf2;animation-delay:-4s;bottom:10%;left:50%}.start-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffc7;border:2px solid #2c3e5024;border-radius:8px;width:min(620px,100%);padding:34px;position:relative;box-shadow:0 24px 60px #2c3e5029}.eyebrow{color:#7f8c8d;letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:13px;font-weight:800}.start-panel h1,.reward-modal h2,.result-modal h2{color:#20313f;margin:0;font-size:clamp(36px,7vw,76px);line-height:.95}.start-panel p:not(.eyebrow){color:#52616f;max-width:540px;margin:20px 0 0;font-size:18px}.start-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}button{font:inherit}.start-actions button,.result-modal button{color:#fff;cursor:pointer;background:#2c3e50;border:0;border-radius:8px;padding:12px 18px;font-weight:800;transition:transform .14s,box-shadow .14s;box-shadow:0 10px #2c3e5029}.start-actions button:disabled{cursor:not-allowed;opacity:.58;transform:none}.start-actions .secondary{color:#2c3e50;background:#fff}.start-actions button:hover,.result-modal button:hover,.reward-grid button:hover{transform:translateY(2px);box-shadow:0 5px #2c3e5029}.start-actions button:disabled:hover{transform:none;box-shadow:0 10px #2c3e5029}.game-shell{box-sizing:border-box;padding:18px}.hud{grid-template-columns:repeat(3,1fr);gap:10px;max-width:1080px;margin:0 auto 12px;display:grid}.hud div,.panel,.board-wrap,.boss-banner{background:#ffffffc2;border:2px solid #2c3e501f;border-radius:8px;box-shadow:0 12px 28px #2c3e501a}.hud div{padding:12px 14px}.hud span,.resource-row span,.progress-strip span,.result-stat span{color:#7f8c8d;letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:800;display:block}.hud strong,.resource-row strong,.progress-strip strong,.result-stat strong{color:#2c3e50;font-variant-numeric:tabular-nums;font-weight:900}.boss-banner{color:#fff;background:#9b51e0;align-items:center;gap:12px;max-width:1080px;margin:0 auto 12px;padding:12px 14px;animation:.24s ease-out bannerIn;display:flex}.boss-banner span{color:#ffffffe0}.play-layout{grid-template-columns:minmax(160px,220px) minmax(320px,620px) minmax(180px,240px);justify-content:center;align-items:start;gap:14px;display:grid}.panel{padding:16px}.panel h2{margin:0 0 14px;font-size:18px}.resource-row{border-top:1px solid #2c3e501a;justify-content:space-between;gap:12px;padding:10px 0;display:flex}.board-wrap{padding:14px}.progress-strip{justify-content:space-between;margin-bottom:12px;display:flex}.board{aspect-ratio:1;grid-template-columns:repeat(7,minmax(34px,1fr));gap:7px;display:grid}.tile{color:#fff;background:var(--tile-color);cursor:pointer;border:0;border-radius:8px;place-items:center;transition:transform .12s,outline-color .12s,filter .12s;display:grid;position:relative;box-shadow:inset 0 -5px #00000024,0 7px 14px #2c3e5024}.tile span{text-shadow:0 2px #0000002e;font-size:clamp(16px,3vw,26px);font-weight:950}.tile:hover{filter:saturate(1.1);transform:translateY(-2px)}.tile.selected{outline-offset:-5px;outline:3px solid #fff;transform:scale(1.05)}.tile.blight,.tile.enemyKeep{animation:1.1s ease-in-out infinite dangerPulse}.log-panel p{color:#52616f;min-height:96px;margin:0}.active-rewards{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.active-rewards span{color:#2c3e50;background:#56ccf233;border-radius:8px;padding:6px 8px;font-size:12px;font-weight:800}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1e1e246b;place-items:center;padding:18px;animation:.18s ease-out fadeIn;display:grid;position:fixed;inset:0}.reward-modal,.result-modal{background:#ffffffe6;border:2px solid #ffffff80;border-radius:8px;width:min(760px,100%);padding:24px;animation:.2s ease-out modalIn;transform:translateY(0);box-shadow:0 26px 70px #1e1e244d}.reward-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px;display:grid}.reward-grid button{color:#2c3e50;text-align:left;cursor:pointer;background:#fff;border:2px solid #2c3e501f;border-radius:8px;min-height:190px;padding:18px;transition:transform .14s,box-shadow .14s,border-color .14s;box-shadow:0 10px #2c3e501f}.reward-grid button:hover{border-color:#56ccf2}.reward-grid span{color:#fff;background:#9b51e0;border-radius:8px;place-items:center;width:48px;height:48px;margin-bottom:12px;font-weight:900;display:grid}.reward-grid strong,.reward-grid small{display:block}.reward-grid small{color:#52616f;margin-top:8px;font-size:13px}.result-modal{max-width:420px}.result-stat{border-top:1px solid #2c3e501f;justify-content:space-between;gap:20px;padding:14px 0;display:flex}.result-modal button{margin-top:18px}.combo-2 .board-wrap,.combo-3 .board-wrap,.combo-4 .board-wrap{animation:.18s ease-out boardShake}@keyframes floatTile{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-16px)rotate(3deg)}}@keyframes dangerPulse{0%,to{filter:saturate()}50%{filter:saturate(1.4)brightness(1.05)}}@keyframes fadeIn{0%{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(10px)}}@keyframes bannerIn{0%{opacity:0;transform:translateY(-10px)}}@keyframes boardShake{0%,to{transform:translate(0)}30%{transform:translate(-2px)}70%{transform:translate(2px)}}@media (width<=880px){.hud,.play-layout,.reward-grid{grid-template-columns:1fr}.resources-panel{order:2}.log-panel{order:3}.board-wrap{order:1}}
