:root{color:#2c3e50;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f5f7;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{touch-action:none;-webkit-user-select:none;user-select:none;background-color:#f4f5f7;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;overflow:hidden}.start-screen,.game-shell{color:#2c3e50;overscroll-behavior-y:none;background:linear-gradient(#ffffffdb,#f4f5f7f2),repeating-linear-gradient(90deg,#2c3e500a 0 1px,#0000 1px 64px),#f4f5f7;height:100svh;overflow:hidden}.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;border-radius:14px;place-items:center;width:70px;font-size:32px;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:#d98880;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(16px);backdrop-filter:blur(16px);text-align:center;background:#ffffffd9;border:2px solid #2c3e5014;border-radius:16px;width:min(620px,100%);padding:40px;position:relative;box-shadow:0 24px 60px #2c3e501f}.eyebrow{color:#7f8c8d;letter-spacing:1px;text-transform:uppercase;margin:0 0 10px;font-size:14px;font-weight:800}.start-panel h1,.reward-modal h2,.result-modal h2{color:#2c3e50;margin:0;font-size:clamp(36px,7vw,64px);font-weight:900;line-height:1.1}.version-pill{color:#27ae60;background:#e8f8f5;border-radius:20px;margin:10px auto;padding:4px 12px;font-size:13px;font-weight:800;display:inline-block}.start-panel p:not(.eyebrow):not(.version-pill){color:#52616f;margin:20px auto 30px;font-size:18px;line-height:1.5}.start-actions{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}button{touch-action:manipulation;font-family:inherit}.start-actions button,.result-modal button{color:#fff;cursor:pointer;background:#2c3e50;border:0;border-radius:12px;padding:16px 32px;font-size:16px;font-weight:800;transition:transform .1s,box-shadow .1s;box-shadow:0 8px #2c3e5033}.start-actions button.secondary{color:#2c3e50;background:#e2e6ea;box-shadow:0 8px #2c3e501a}.start-actions button:disabled{cursor:not-allowed;opacity:.5;transform:none}.start-actions button:hover:not(:disabled),.result-modal button:hover,.reward-grid button:hover,.collection-tabs button:hover{transform:translateY(4px);box-shadow:0 4px #2c3e5033}.start-actions button:active:not(:disabled),.result-modal button:active,.reward-grid button:active,.collection-tabs button:active{transform:translateY(8px);box-shadow:0 0 #2c3e5033}.game-shell{box-sizing:border-box;flex-direction:column;padding:24px;display:flex}.hud{grid-template-columns:repeat(3,1fr);gap:16px;max-width:1080px;margin:0 auto 20px;display:grid}.hud div,.panel,.board-wrap,.boss-banner{background:#fff;border:2px solid #2c3e5014;border-radius:12px;box-shadow:0 8px 24px #2c3e500f}.hud div{text-align:center;padding:16px}.hud span,.resource-row span,.progress-strip span,.result-stat span{color:#7f8c8d;letter-spacing:.5px;text-transform:uppercase;font-size:13px;font-weight:800;display:block}.hud strong,.resource-row strong,.progress-strip strong,.result-stat strong{color:#2c3e50;margin-top:4px;font-family:monospace;font-size:24px;font-weight:900;display:block}.boss-banner{color:#fff;background:#eb5757;border-color:#c0392b;flex-wrap:wrap;align-items:center;gap:16px;max-width:1080px;margin:0 auto 20px;padding:16px 24px;animation:.3s cubic-bezier(.175,.885,.32,1.275) bannerIn;display:flex}.boss-banner strong{text-transform:uppercase;font-size:18px}.boss-banner span{color:#ffffffe6;font-size:16px}.boss-banner small{color:#ffffffdb;flex-basis:100%;font-size:13px;line-height:1.4}.play-layout{grid-template-columns:minmax(200px,260px) minmax(340px,640px) minmax(220px,280px);justify-content:center;align-items:start;gap:20px;display:grid}.panel{padding:20px}.panel h2{color:#2c3e50;margin:0 0 16px;font-size:20px}.resource-row{border-top:1px solid #2c3e5014;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.resource-row span{font-size:14px}.resource-row strong{margin-top:0;font-size:18px}.board-wrap{background:#ffffffe6;padding:20px}.objective-card{background:linear-gradient(135deg,#56ccf21f,#6fcf971a);border:2px solid #56ccf23d;border-radius:12px;margin-bottom:16px;padding:16px}.objective-card span{color:#52616f;letter-spacing:.7px;text-transform:uppercase;font-size:12px;font-weight:900;display:block}.objective-card strong{color:#2c3e50;margin-top:4px;font-size:18px;display:block}.objective-card p{color:#52616f;margin:8px 0 0;font-size:14px;line-height:1.45}.feedback-card{background:#fff;border-left:4px solid #0000;border-radius:12px;margin-bottom:16px;padding:16px;box-shadow:0 4px 12px #0000000d}.feedback-card.gain{border-left-color:#6fcf97}.feedback-card.loss{border-left-color:#eb5757}.feedback-card.neutral{border-left-color:#f2c94c}.feedback-card span{color:#7f8c8d;text-transform:uppercase;font-size:12px;font-weight:800}.feedback-card strong{color:#2c3e50;margin:4px 0 8px;font-size:24px;display:block}.feedback-card p{color:#2c3e50;margin:0 0 8px;font-size:14px;font-weight:600}.feedback-card small{color:#52616f;margin-top:4px;font-size:13px;line-height:1.4;display:block}.progress-strip{border-bottom:2px dashed #2c3e5014;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.progress-strip strong{margin-top:0;font-size:18px}.board{aspect-ratio:1;grid-template-columns:repeat(7,minmax(40px,1fr));gap:8px;display:grid}.tile{color:#fff;background:var(--tile-color);cursor:pointer;touch-action:manipulation;border:0;border-radius:12px;place-items:center;transition:transform .15s cubic-bezier(.34,1.56,.64,1),outline-color .15s,box-shadow .15s,filter .15s;animation:.3s cubic-bezier(.175,.885,.32,1.275) dropIn;display:grid;position:relative;box-shadow:inset 0 -6px #00000026,0 4px 8px #2c3e501a}.tile span{text-shadow:0 3px #0003;font-size:clamp(20px,4vw,32px)}.tile:hover{filter:brightness(1.1);transform:translateY(-4px)scale(1.02);box-shadow:inset 0 -6px #00000026,0 8px 16px #2c3e5033}.tile:active{transform:translateY(2px)scale(.95);box-shadow:inset 0 -2px #0003,0 2px 4px #2c3e501a}.tile.selected{outline-offset:-2px;z-index:10;outline:4px solid #56ccf2;transform:scale(1.08)translateY(-4px);box-shadow:inset 0 -6px #00000026,0 0 20px #56ccf299}.tile.hinted{outline-offset:2px;outline:3px solid #f2c94c;animation:2s ease-in-out infinite hintPulse}.tile.valid-target{box-shadow:inset 0 -6px #00000026,0 0 0 6px #6fcf9740,0 8px 16px #2c3e5029}.tile.neighbor:not(.valid-target):not(.selected){filter:brightness(1.08)}.tile.invalid-move{outline-offset:2px;outline:3px solid #eb5757;animation:.22s ease-out 2 invalidSwap}.tile.locked-tutorial{cursor:not-allowed;filter:saturate(.55)opacity(.7)}.tile.blight,.tile.enemyKeep{animation:1.5s ease-in-out infinite dangerPulse}.log-panel p{color:#52616f;min-height:80px;margin:0;font-size:15px;line-height:1.5}.active-rewards{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.rule-note{border-top:1px solid #2c3e5014;justify-content:space-between;gap:12px;margin-top:12px;padding-top:12px;display:flex}.rule-note span{color:#7f8c8d;letter-spacing:.6px;text-transform:uppercase;font-size:12px;font-weight:900}.rule-note strong{color:#2c3e50;text-align:right;font-size:13px}.threat-card,.route-card{color:#2c3e50;background:#eb575714;border:1px solid #eb575729;border-radius:10px;gap:8px;margin-top:12px;padding:12px;display:grid}.route-card{background:#6fcf971a;border-color:#6fcf9733}.threat-card span,.route-card span{font-size:13px;font-weight:900}.threat-card small,.route-card small{color:#52616f;font-size:12px;line-height:1.35}.active-rewards span{color:#2c3e50;background:#56ccf233;border:1px solid #56ccf266;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:800}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#1e1e2499;place-items:center;padding:24px;animation:.2s ease-out fadeIn;display:grid;position:fixed;inset:0;overflow:hidden}.reward-modal,.result-modal{background:#fffffff2;border:2px solid #fffc;border-radius:16px;width:min(800px,100%);padding:32px;animation:.3s cubic-bezier(.175,.885,.32,1.275) modalIn;box-shadow:0 32px 80px #0003}.collection-modal{background:#fffffffa;border:2px solid #fffc;border-radius:16px;flex-direction:column;width:min(900px,100%);max-height:90svh;padding:24px;animation:.3s cubic-bezier(.175,.885,.32,1.275) modalIn;display:flex;box-shadow:0 32px 80px #0003}.collection-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.collection-header h2{color:#2c3e50;margin:0;font-size:28px}.close-btn{color:#7f8c8d;box-shadow:none;cursor:pointer;background:0 0;border:none;padding:4px 12px;font-size:28px}.close-btn:hover{color:#eb5757;box-shadow:none;background:#eb57571a;transform:none}.collection-tabs{border-bottom:2px solid #2c3e5014;gap:12px;margin-bottom:20px;padding-bottom:12px;display:flex}.collection-tabs button{color:#7f8c8d;box-shadow:none;background:0 0;border:2px solid #0000;border-radius:8px;padding:8px 16px}.collection-tabs button.active{color:#fff;background:#2c3e50;box-shadow:0 4px 12px #2c3e5026}.collection-content{flex-grow:1;padding-right:8px;overflow-y:auto}.collection-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.collection-card{background:#f4f5f7;border:1px solid #0000000d;border-radius:12px;align-items:flex-start;gap:16px;padding:16px;display:flex}.collection-icon{color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:48px;height:48px;font-size:24px;display:grid;box-shadow:inset 0 -4px #0000001a}.collection-icon.reward-icon{color:inherit;background:#fff;box-shadow:0 4px 8px #0000000d}.collection-info{flex-direction:column;gap:6px;display:flex}.collection-info strong{color:#2c3e50;font-size:16px}.collection-info p{color:#52616f;margin:0;font-size:13px;line-height:1.4}.collection-info small{color:#7f8c8d;margin-top:4px;font-size:12px}.reward-tags{gap:8px;margin-bottom:10px;display:flex}.category-tag{color:#52616f;letter-spacing:.5px;background:#f4f5f7;border-radius:6px;padding:4px 8px;font-size:11px;font-style:normal;font-weight:900}.route-tag{color:#27ae60;letter-spacing:.5px;background:#e8f8f5;border-radius:6px;padding:4px 8px;font-size:11px;font-style:normal;font-weight:900}.reward-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px;display:grid}.reward-grid button{color:#2c3e50;text-align:left;cursor:pointer;background:#fff;border:2px solid #2c3e501a;border-radius:12px;flex-direction:column;min-height:220px;padding:24px;transition:all .2s cubic-bezier(.175,.885,.32,1.275);display:flex;box-shadow:0 8px #2c3e5014}.reward-grid button:hover{border-color:#56ccf2;transform:translateY(-8px);box-shadow:0 16px #56ccf233}.reward-grid span.reward-emoji{background:#f4f5f7;border:1px solid #0000000d;border-radius:12px;place-items:center;width:56px;height:56px;margin-bottom:16px;font-size:28px;display:grid}.reward-grid strong{margin-bottom:8px;font-size:18px}.reward-grid small{color:#52616f;font-size:14px;line-height:1.5}.reward-grid .effect-summary{color:#9b51e0;margin-top:8px;font-weight:600}.result-modal{text-align:center;max-width:480px}.result-copy{color:#52616f;margin:18px 0;line-height:1.5}.result-stat{border-top:1px solid #2c3e5014;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;display:flex}.result-stat strong{margin-top:0}.result-modal button{width:100%;margin-top:24px;padding:16px}@keyframes floatTile{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-16px)rotate(3deg)}}@keyframes dangerPulse{0%,to{filter:saturate()brightness()}50%{filter:saturate(1.5)brightness(1.1);transform:scale(1.02)}}@keyframes hintPulse{0%,to{outline-color:#f2c94c66;box-shadow:0 0 #0000}50%{outline-color:#f2c94c;box-shadow:0 0 15px #f2c94c99}}@keyframes fadeIn{0%{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(20px)scale(.95)}}@keyframes bannerIn{0%{opacity:0;transform:translateY(-20px)}}@keyframes dropIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes boardShake{0%,to{transform:translate(0)translateY(0)}25%{transform:translate(-4px)translateY(2px)}50%{transform:translate(4px)translateY(-2px)}75%{transform:translate(-2px)translateY(4px)}}@keyframes invalidSwap{0%,to{transform:translate(0)}35%{transform:translate(-5px)}70%{transform:translate(5px)}}.combo-2 .board-wrap{animation:.2s ease-out boardShake}.combo-3 .board-wrap{animation:.25s ease-out boardShake}.combo-4 .board-wrap{animation:.3s ease-out boardShake}.combo-5 .board-wrap{animation:.35s ease-out boardShake}@media (width<=900px){.start-screen{padding:12px}.start-panel{width:100%;max-height:calc(100svh - 24px);padding:24px 18px;overflow:hidden}.start-panel h1,.reward-modal h2,.result-modal h2{font-size:clamp(28px,10vw,40px)}.start-panel p:not(.eyebrow):not(.version-pill){margin:12px auto 18px;font-size:15px;line-height:1.45}.floating-tiles span{border-radius:10px;width:46px;font-size:22px}.game-shell{gap:6px;height:100svh;padding:8px}.hud{grid-template-columns:repeat(3,1fr);gap:6px;width:100%;margin:0}.hud div{border-radius:8px;min-width:0;padding:6px 4px}.hud span,.resource-row span,.progress-strip span,.result-stat span{letter-spacing:0;font-size:10px}.hud strong{margin-top:2px;font-size:16px}.boss-banner{display:none}.play-layout{flex:auto;grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:1fr;gap:6px;width:100%;min-height:0;overflow:hidden}.resources-panel{order:2;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:6px;display:grid}.resources-panel h2{display:none}.resource-row{border:0;justify-items:center;gap:2px;padding:0;display:grid}.resource-row strong{margin-top:0;font-size:15px}.log-panel{order:3;min-height:0;padding:6px;overflow:hidden}.log-panel h2,.rule-note,.threat-card{display:none}.objective-card,.feedback-card,.progress-strip{border-radius:8px;gap:3px;padding:6px}.objective-card strong,.feedback-card strong,.progress-strip strong{margin-top:0;font-size:14px}.objective-card p,.feedback-card p{margin:0;font-size:11px;line-height:1.28}.objective-card small,.feedback-card small{font-size:10px;line-height:1.25}.active-rewards{gap:4px;max-height:26px;overflow:hidden}.active-rewards span{border-radius:6px;padding:3px 6px;font-size:10px}.log{display:none}.board-wrap{order:1;min-height:0;padding:8px;overflow:hidden}.board{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:min(100%,100svh - 326px);margin:0 auto}.tile span{font-size:clamp(18px,6.2vw,26px)}.tile small{display:none}.modal-backdrop{padding:8px}.reward-modal,.result-modal,.collection-modal{width:100%;max-height:calc(100svh - 16px);padding:14px;overflow:hidden}.reward-grid{grid-template-columns:1fr;gap:8px;margin-top:12px}.reward-grid button{min-height:unset;padding:12px}.reward-grid span.reward-emoji{width:38px;height:38px;margin-bottom:8px;font-size:22px}.reward-grid strong{margin-bottom:4px;font-size:15px}.reward-grid small{font-size:12px;line-height:1.35}.reward-tags{gap:4px;margin-bottom:6px}.category-tag,.route-tag{padding:3px 6px;font-size:10px}.collection-header{margin-bottom:8px}.collection-header h2{font-size:22px}.collection-tabs{gap:6px;margin-bottom:10px;padding-bottom:8px}.collection-tabs button{flex:1;padding:8px 6px;font-size:12px}.collection-content{padding-right:4px}.collection-grid{grid-template-columns:1fr;gap:8px}.collection-card{border-radius:10px;gap:10px;padding:10px}.collection-icon{border-radius:8px;width:38px;height:38px;font-size:20px}.collection-info{gap:3px}.collection-info strong{font-size:14px}.collection-info p,.collection-info small{font-size:11px;line-height:1.3}}
