*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:"Segoe UI",system-ui,sans-serif;color:#3b3222;background:radial-gradient(ellipse at 50% 30%,rgba(255,230,170,0.10),rgba(0,0,0,0.38) 85%),repeating-linear-gradient(93deg,rgba(0,0,0,0.00) 0px,rgba(0,0,0,0.06) 70px,rgba(0,0,0,0.00) 140px,rgba(255,255,255,0.03) 200px,rgba(0,0,0,0.00) 260px),linear-gradient(180deg,#8a5c33,#71482a 60%,#5f3c22);display:flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none}#scaler{position:relative;z-index:1}.deco{position:fixed;z-index:0;pointer-events:none;display:none}body.mode-desktop .deco{display:block}#stage{display:flex;flex-direction:column;gap:10px;padding:12px;transform-origin:top left;width:max-content}#hud{display:flex;align-items:center;gap:12px;background:linear-gradient(180deg,#f7f1dd,#ece2c6);border:1px solid #c9b98f;border-radius:8px;box-shadow:0 5px 14px rgba(30,15,5,0.45),inset 0 1px 0 #fffdf4;padding:8px 14px;height:66px}#hudTitle{font-family:"Segoe Print","Comic Sans MS",cursive;font-weight:700;font-size:17px;line-height:0.9;color:#5d4a26;letter-spacing:1px;padding-right:6px;border-right:2px dashed #cbbb92}#hudTitle span{display:block;font-size:10px;letter-spacing:0.5px;color:#8a744a}.stat{display:flex;align-items:baseline;gap:5px;min-width:64px}.stat i{font-style:normal;font-size:13px;font-weight:700;opacity:0.75}.stat b{font-size:19px;font-variant-numeric:tabular-nums}.stat.gold{min-width:92px}.stat.lives{min-width:52px}.stat.score{min-width:96px}.stat.wavecount{min-width:86px}.stat.gold i{color:#a97e14}.stat.lives i{color:#b73e33}.stat.score i{color:#6a5aa8}.stat.wavecount i{font-size:10px;text-transform:uppercase}.stat.wavecount b{font-size:16px}.stat.danger b{color:#c0392b;animation:blink 0.8s steps(2) infinite}@keyframes blink{50%{opacity:0.45}}#waveBox{flex:1;display:flex;flex-direction:column;gap:4px;min-width:260px}#queue{display:flex;gap:6px}.chip{font-size:11px;font-weight:600;background:#fffdf2;border:1.5px solid #b9a97f;border-radius:20px;padding:2px 9px;white-space:nowrap;opacity:0.75}.chip.next{opacity:1;box-shadow:0 1px 4px rgba(80,60,20,0.3)}.chip .dirs{font-weight:800;color:#7a6748;opacity:0.9}.chip.boss.next{animation:bossPulse 0.9s ease-in-out infinite}@keyframes bossPulse{50%{background:#ffe3e0}}.chip.done{border-style:dashed}#countWrap{position:relative;height:15px;background:#ddd2b2;border-radius:8px;overflow:hidden;border:1px solid #c2b188}#countBar{height:100%;width:100%;background:linear-gradient(90deg,#7fae5a,#a5c96b);transition:width 0.15s linear}#countTxt{position:absolute;inset:0;text-align:center;font-size:10.5px;font-weight:700;line-height:15px;color:#4a3d20;text-shadow:0 1px 0 rgba(255,255,255,0.5)}#sendBtn{font:700 13px "Segoe UI",sans-serif;font-variant-numeric:tabular-nums;color:#fff;background:linear-gradient(180deg,#5f9e46,#47803a);border:1px solid #38672e;border-radius:8px;padding:9px 8px;min-width:178px;text-align:center;cursor:pointer;box-shadow:0 3px 0 #2f5427,0 4px 8px rgba(0,0,0,0.25);white-space:nowrap}#sendBtn:hover:not(:disabled){filter:brightness(1.08)}#sendBtn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #2f5427}#sendBtn:disabled{background:#b7ad93;border-color:#9a9078;box-shadow:none;cursor:default;color:#6d6650}#hudBtns{display:flex;gap:5px}#hudBtns button{width:34px;height:34px;font-size:14px;background:#fffcf0;border:1px solid #bfae83;border-radius:7px;cursor:pointer;color:#5d4e2c;box-shadow:0 2px 0 #cabc95}#hudBtns button:hover{background:#fff6d8}#hudBtns button:active{transform:translateY(1px);box-shadow:none}#hudBtns #muteBtn{width:48px;font-size:11px}#hudBtns button.active{background:#efe2b8;box-shadow:inset 0 1px 3px rgba(90,70,30,0.4)}#table{display:flex;gap:12px;align-items:flex-start}#boardWrap{border-radius:3px;box-shadow:0 10px 24px rgba(25,12,4,0.55),0 2px 5px rgba(25,12,4,0.4);line-height:0}#board{border-radius:3px;touch-action:none}#side{width:234px;display:flex;flex-direction:column;gap:8px}#paletteTitle{font-family:"Segoe Print","Comic Sans MS",cursive;font-weight:700;font-size:13px;color:#f3e9cf;text-shadow:0 1px 2px rgba(0,0,0,0.5);letter-spacing:1.5px;padding-left:2px}#paletteTitle .hint{font-family:"Segoe UI",sans-serif;font-weight:400;font-size:10px;letter-spacing:0;opacity:0.8;float:right;margin-top:3px}#palette{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;background:linear-gradient(160deg,#c29a6b,#a87f4f 70%,#977144);border:1px solid #7d5c33;border-radius:10px;padding:7px;box-shadow:0 4px 12px rgba(30,15,5,0.4),inset 0 1px 0 rgba(255,235,200,0.35);position:relative}#palette::after{content:'';position:absolute;inset:3px;border:1.5px dashed rgba(90,62,30,0.55);border-radius:8px;pointer-events:none}.card{position:relative;background:linear-gradient(180deg,#e3c99b,#cfae78);border:1px solid #8a6a42;border-radius:6px 6px 10px 10px;padding:6px 6px 5px;text-align:center;cursor:grab;box-shadow:0 2px 5px rgba(30,15,5,0.3),inset 0 -6px 8px rgba(70,45,20,0.18),inset 0 1px 0 rgba(255,240,210,0.5);transition:transform 0.07s ease,box-shadow 0.07s ease}.card:hover{transform:translateY(-2px);box-shadow:0 5px 10px rgba(30,15,5,0.4),inset 0 -6px 8px rgba(70,45,20,0.18)}.card:active{cursor:grabbing}.card.armed{outline:2.5px solid #4d7dc4;outline-offset:1px;background:linear-gradient(180deg,#e9d9b8,#d8bf90)}.card.poor{filter:grayscale(0.6) brightness(0.88)}.card.poor .cardCost{color:#a03427}.cardIcon{width:36px;height:36px;margin:0 auto;display:block}.cardName{font-size:9.5px;font-weight:700;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#4a3316}.cardCost{font-size:10px;font-weight:600;color:#6e4f1a}.card kbd{position:absolute;top:3px;right:5px;font:700 9px "Segoe UI",sans-serif;color:#877748;background:#fffef7;border:1px solid #cdbf98;border-radius:3px;padding:0 3px}#inspector{background:linear-gradient(180deg,#fbf6e7,#f1e8cf);border:1px solid #c3b288;border-radius:8px;box-shadow:0 3px 8px rgba(30,15,5,0.35);padding:10px 11px;font-size:12px;min-height:178px}.iname{font-weight:700;font-size:13.5px;margin-bottom:5px}.iname .lv{font-size:11px;color:#7c6a3f;font-weight:600}.idesc{color:#66583a;margin-bottom:6px;line-height:1.35}.irow{display:flex;justify-content:space-between;padding:2px 0;border-bottom:1px dotted #d5c8a4}.irow b i.auraBonus{color:#b8860b;font-style:normal;font-size:10.5px}.ihint{margin-top:7px;font-size:10.5px;color:#8b7a52;line-height:1.4}.ibtn{display:block;width:100%;margin-top:7px;padding:7px 8px;font:700 12px "Segoe UI",sans-serif;border-radius:7px;cursor:pointer;border:1px solid}.ibtn.up{background:linear-gradient(180deg,#6b9ed4,#4a7cb8);border-color:#3a639a;color:#fff;box-shadow:0 2px 0 #31537f}.ibtn.up:hover:not(:disabled){filter:brightness(1.08)}.ibtn.sell{background:linear-gradient(180deg,#d68f4c,#c07636);border-color:#97591f;color:#fff;box-shadow:0 2px 0 #7d4a1c}.ibtn.sell:hover{filter:brightness(1.08)}.ibtn.rearm{background:linear-gradient(180deg,#9d6f4b,#82573a);border-color:#64411f;color:#fff;box-shadow:0 2px 0 #513418}.ibtn.rearm:hover:not(:disabled){filter:brightness(1.08)}.ibtn:disabled{background:#cfc6ad;border-color:#b0a685;color:#7d745c;cursor:default;box-shadow:none}.ibtn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.nextFx{margin-top:5px;font-size:10.5px;font-weight:600;color:#4a6ea8;background:rgba(107,158,212,0.12);border:1px dashed rgba(74,124,184,0.45);border-radius:6px;padding:4px 7px;line-height:1.35}.tips{padding-left:16px;line-height:1.5;color:#5c4f30}.tips li{margin-bottom:4px}kbd{font:700 10px "Segoe UI",sans-serif;background:#fffef7;border:1px solid #cdbf98;border-bottom-width:2px;border-radius:3px;padding:0 4px;color:#6c5c32}.overlay{position:fixed;inset:0;background:rgba(28,16,6,0.62);display:flex;align-items:center;justify-content:center;z-index:50}.overlay.hidden{display:none}.overlay.mini{background:rgba(28,16,6,0.35);cursor:pointer}.panel{background:linear-gradient(180deg,#faf5e4,#efe5c9);border:1px solid #c9b98f;border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,0.55),inset 0 1px 0 #fffdf4;padding:26px 30px;max-width:720px;max-height:92vh;overflow:auto;text-align:center}.panel h1{font-family:"Segoe Print","Comic Sans MS",cursive;font-size:30px;color:#4e3d1e;margin-bottom:8px}#menuRelief{display:block;width:min(560px,100%);height:auto;margin:0 auto 12px;border-radius:6px;box-shadow:0 4px 12px rgba(40,22,6,0.35)}.panel h2{font-family:"Segoe Print","Comic Sans MS",cursive;color:#4e3d1e;margin-bottom:10px}.panel .tag{color:#6b5a35;margin-bottom:18px;line-height:1.5}.diffRow{display:flex;gap:12px;justify-content:center;margin-bottom:14px}.diffBtn{display:flex;flex-direction:column;gap:4px;width:168px;padding:14px 12px;background:linear-gradient(180deg,#fffdf2,#f0e7cb);border:1.5px solid #bfae83;border-radius:10px;cursor:pointer;font-family:inherit;transition:transform 0.08s ease,box-shadow 0.08s ease;box-shadow:0 4px 10px rgba(40,20,5,0.3)}.diffBtn:hover{transform:translateY(-3px);box-shadow:0 8px 16px rgba(40,20,5,0.35);border-color:#8a744a}.diffBtn b{font-size:17px;color:#4e3d1e}.diffBtn span{font-size:11px;color:#75643c}.diffBtn .best{margin-top:4px;font-weight:700;color:#8a6d1d}.diffBtn .crown{font-size:15px}.diffBtn.crowned{border-color:#c9a227;box-shadow:0 4px 10px rgba(40,20,5,0.3),0 0 0 1px rgba(201,162,39,0.45)}.linkBtn{background:none;border:none;color:#4a6ea8;text-decoration:underline;cursor:pointer;font-size:13px}.newHigh{display:inline-block;font-weight:800;color:#fff;background:linear-gradient(180deg,#d9a62c,#b8860b);padding:4px 14px;border-radius:20px;margin-bottom:12px}.statsGrid{max-width:320px;margin:0 auto 16px;text-align:left}.statsGrid .irow{font-size:14px;padding:4px 0}.btnRow{display:flex;gap:10px;justify-content:center}.bigBtn{font:700 14px "Segoe UI",sans-serif;color:#fff;background:linear-gradient(180deg,#5f9e46,#47803a);border:1px solid #38672e;border-radius:8px;padding:10px 20px;cursor:pointer;box-shadow:0 3px 0 #2f5427;margin-top:4px}.bigBtn:hover{filter:brightness(1.08)}.bigBtn:active{transform:translateY(2px);box-shadow:none}.bigBtn.alt{background:linear-gradient(180deg,#8d9aad,#6d7b90);border-color:#57647a;box-shadow:0 3px 0 #49546a}.bigBtn.danger{background:linear-gradient(180deg,#c9564a,#a83e33);border-color:#82291f;box-shadow:0 3px 0 #6d2218}.panel.confirm{padding:22px 30px}.panel.confirm p{color:#6b5a35;margin-bottom:14px}.panel.help{text-align:left;max-width:860px}.panel.help h3{margin:10px 0 6px;color:#4e3d1e}.panel.help ul{padding-left:18px;line-height:1.55;font-size:12.5px;color:#55482c}.helpCols{display:flex;gap:26px}.helpCols>div{flex:1}.towerList li{margin-bottom:3px}.panel.help .bigBtn{display:block;margin:14px auto 0}.panel.pause{padding:20px 36px}.panel.pause p{color:#6b5a35}#sendBtn.peek{background:linear-gradient(180deg,#6b5a43,#52422f);border-color:#3d2f1f;box-shadow:0 3px 0 #2e2317,0 4px 8px rgba(0,0,0,0.25)}#boardWrap{position:relative}#touchCluster{position:absolute;display:flex;gap:10px;z-index:20}#touchCluster.hidden{display:none}#touchCluster button{width:48px;height:48px;border-radius:50%;font-size:20px;font-weight:700;border:2px solid;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,0.35);touch-action:manipulation}#tcOk{background:linear-gradient(180deg,#5f9e46,#47803a);border-color:#38672e;color:#fff}#tcOk:disabled{background:#b7ad93;border-color:#9a9078;color:#6d6650}#tcRotate{background:linear-gradient(180deg,#6b9ed4,#4a7cb8);border-color:#3a639a;color:#fff}#tcNo{background:linear-gradient(180deg,#d68f4c,#c07636);border-color:#97591f;color:#fff}body.mode-portrait,body.mode-landscape{overflow:hidden;touch-action:manipulation;align-items:flex-start;justify-content:flex-start}body.mode-portrait #scaler,body.mode-landscape #scaler{width:100vw;height:100vh;height:100dvh}body.mode-portrait #stage,body.mode-landscape #stage{width:100vw;height:100vh;height:100dvh;padding:4px;gap:4px;transform:none !important}body.mode-portrait,body.mode-landscape{overscroll-behavior:none}body.mode-landscape #stage{padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right))}body.mode-portrait #stage{padding-top:max(4px,env(safe-area-inset-top));padding-bottom:max(4px,env(safe-area-inset-bottom))}body.mode-portrait #hud,body.mode-landscape #hud{flex-wrap:wrap;height:auto;padding:4px 8px;gap:8px;row-gap:2px}body.mode-portrait #hudTitle,body.mode-landscape #hudTitle{display:none}body.mode-portrait .stat b,body.mode-landscape .stat b{font-size:15px}body.mode-portrait .stat.gold,body.mode-landscape .stat.gold{min-width:74px}body.mode-portrait .stat.lives,body.mode-landscape .stat.lives{min-width:44px}body.mode-portrait .stat.score,body.mode-landscape .stat.score{min-width:78px}body.mode-portrait .stat.wavecount,body.mode-landscape .stat.wavecount{min-width:72px}body.mode-portrait #waveBox{order:10;flex-basis:100%;min-width:0}body.mode-landscape #hud{flex-wrap:nowrap;padding:3px 8px;gap:6px}body.mode-landscape #waveBox{flex:1 1 auto;min-width:96px;gap:2px}body.mode-landscape .chip{font-size:9.5px;padding:1px 6px;border-width:1px}body.mode-landscape #countWrap{height:10px}body.mode-landscape #countTxt{font-size:8.5px;line-height:10px}body.mode-landscape #sendBtn{min-width:126px;font-size:11px;padding:7px 4px}body.mode-landscape #hudBtns button{width:34px;height:34px;font-size:12px}body.mode-landscape .stat b{font-size:14px}body.mode-landscape .stat i{font-size:11px}body.mode-landscape .stat.gold{min-width:62px}body.mode-landscape .stat.lives{min-width:38px}body.mode-landscape .stat.score{min-width:64px}body.mode-landscape .stat.wavecount{min-width:60px}@media (max-width:740px){body.mode-landscape .stat.score{display:none}body.mode-landscape .stat.wavecount{display:none}}body.mode-portrait #queue,body.mode-landscape #queue{overflow-x:auto;scrollbar-width:none}body.mode-portrait #queue::-webkit-scrollbar,body.mode-landscape #queue::-webkit-scrollbar{display:none}body.mode-portrait #sendBtn,body.mode-landscape #sendBtn{padding:8px 6px;font-size:12px;min-width:150px}body.mode-portrait #hudBtns button,body.mode-landscape #hudBtns button{width:38px;height:38px}body.mode-portrait #table{flex-direction:column;align-items:center;gap:4px;width:100%}body.mode-portrait #boardWrap{margin:0 auto}body.mode-portrait #side{width:100%;gap:4px}body.mode-portrait #paletteTitle{display:none}body.mode-portrait #palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:2px 1px}@media (min-width:600px){body.mode-portrait #palette{grid-template-columns:repeat(8,minmax(0,1fr))}}body.mode-portrait .card{min-width:0;padding:5px 2px 4px}body.mode-portrait .cardIcon{width:32px;height:32px}body.mode-portrait .cardName{font-size:8.5px}body.mode-portrait .cardCost{font-size:9px}body.mode-portrait .card kbd{display:none}body.mode-portrait #inspector{position:fixed;left:6px;right:6px;bottom:6px;z-index:40;min-height:0;max-height:42vh;overflow-y:auto;transform:translateY(130%);transition:transform 0.18s ease;box-shadow:0 -6px 24px rgba(0,0,0,0.45)}body.mode-portrait #inspector.open{transform:none}body.mode-landscape #table{flex-direction:row;gap:6px;align-items:flex-start;justify-content:center;width:100%}body.mode-landscape #side{width:196px;flex-shrink:0;overflow-y:auto;gap:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}body.mode-landscape #side::-webkit-scrollbar{display:none}body.mode-landscape #side::after{content:'';position:sticky;bottom:0;min-height:16px;margin-top:-16px;background:linear-gradient(rgba(90,58,34,0),rgba(60,38,22,0.55));border-radius:0 0 8px 8px;pointer-events:none}body.mode-landscape #paletteTitle{display:none}body.mode-landscape #palette{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}body.mode-landscape .card{padding:4px 2px 3px;min-width:0}body.mode-landscape .cardIcon{width:30px;height:30px}body.mode-landscape .cardName{font-size:8px}body.mode-landscape .cardCost{font-size:8.5px}body.mode-landscape .card kbd{display:none}body.mode-landscape #inspector{min-height:0;padding:8px 9px}body.mode-landscape #inspector:not(.open){display:none}body.mode-portrait .panel,body.mode-landscape .panel{width:min(720px,94vw);padding:18px 14px;max-height:88vh}body.mode-portrait .panel h1,body.mode-landscape .panel h1{font-size:24px}body.mode-portrait .diffRow,body.mode-landscape .diffRow{flex-wrap:wrap;gap:8px}body.mode-portrait .diffBtn,body.mode-landscape .diffBtn{width:min(46%,168px);padding:10px 8px}body.mode-portrait .helpCols{flex-direction:column;gap:4px}
