@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./fonts/font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(./fonts/font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./fonts/font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./fonts/font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 400;
  font-stretch: normal;
  font-display: swap;
  src: url(./fonts/font-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 500;
  font-stretch: normal;
  font-display: swap;
  src: url(./fonts/font-6.ttf) format('truetype');
}
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 600;
  font-stretch: normal;
  font-display: swap;
  src: url(./fonts/font-7.ttf) format('truetype');
}

.campaign{background:#f0ebe3;border:1px solid #e1d8cd;border-radius:19px;padding:17px 22px;margin-bottom:18px}.campaign-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.campaign h2{font-size:23px;margin-top:4px}.mode-picker{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700}.mode-picker select{font:inherit;background:#fffaf2;color:#655370;border:1px solid #cfc0d4;border-radius:10px;padding:9px 27px 9px 12px;cursor:pointer}.mode-picker select:focus-visible{outline:3px solid #8d80b0;outline-offset:3px}.level-track{display:flex;gap:9px;margin-top:15px}.level-dot{display:grid;place-items:center;flex:1;height:27px;border-radius:8px;background:#e5ddd4;color:#988b8b;font-size:13px;font-weight:700}.level-dot.current{background:#8a759a;color:#fff;box-shadow:0 2px 0 #69577c}.level-dot.complete{background:#d3e2cb;color:#527248}.campaign #modeNote{font-size:13px;color:#7a6c73;margin-top:11px;line-height:1.5}.army-summary{display:flex;gap:12px;align-items:center;font-size:13px;color:#7c7180}#roster{grid-template-columns:repeat(3,minmax(0,1fr));max-height:360px;overflow:auto;padding:4px 6px 7px 0;scrollbar-color:#cabdcc transparent;scrollbar-width:thin}#roster .cat-card{min-height:126px}#roster .cat-card.locked{opacity:.68;border-style:dashed;background:#f2eee9}#roster .cat-card.locked .cat-art{filter:saturate(.55)}.unlock-note,.unit-stats{display:block;margin-top:6px;font-size:12px;color:#88758d}.unlock-note{font-weight:600}.shop-items{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-card p{font-size:13px}#resultText{font-size:15px;line-height:1.5}.result h2{padding:0 12px}@media(max-width:700px){.campaign{padding:14px}.campaign h2{font-size:19px}.campaign .eyebrow{font-size:10px}.mode-picker{gap:5px;font-size:12px;flex-direction:column;align-items:start}.mode-picker select{padding:6px 14px 6px 8px}.level-track{gap:5px}.level-dot{height:24px;font-size:12px}.army-summary{align-items:end;flex-direction:column;gap:5px}.shop-items{grid-template-columns:1fr}#roster{max-height:420px}#roster .cat-card{min-height:165px}.unit-stats,.unlock-note{font-size:11px}.campaign #modeNote{font-size:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
:root{font-family:'DM Sans',sans-serif;color:#443d4c;background:#faf7f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer;color:inherit;touch-action:manipulation}button:focus-visible{outline:3px solid #6c64a3;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.48}main{max-width:1280px;margin:auto;padding:28px 40px 15px}header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px}.brand,.top-actions{display:flex;align-items:center;gap:14px}.paw{font-size:42px;color:#d78363;background:#f9e9dc;border-radius:18px;padding:2px 12px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:#847782}h1,h2,p{margin:0}h1,h2{font-family:'Fredoka',sans-serif;font-weight:500}h1{font-size:32px;letter-spacing:-.5px}h2{font-size:26px}button{border:1px solid #e1d9d2;background:#fffdf9;border-radius:12px;padding:10px 15px;font-weight:700}.top-actions>button{width:42px;height:42px;padding:8px}.wallet{display:flex;gap:8px;align-items:center;background:#fff1cd;border:1px solid #efd79f;padding:11px 19px;border-radius:30px;color:#715423}.wallet strong{font-size:23px}.wallet>span:last-child{font-size:14px}.arena{border-radius:24px;overflow:hidden;position:relative;background:#e4eee8;border:1px solid #d4ddd5;box-shadow:0 5px 0 #e9e3d8}.tower-stats{position:absolute;z-index:2;left:28px;right:28px;top:23px;display:flex;justify-content:space-between;align-items:start;pointer-events:none}.tower-stats>div:not(.wave){width:26%;max-width:240px}.team-label{font-size:12px;font-weight:700;letter-spacing:1px;color:#476d5d}.tower-stats strong{display:block;font-size:17px;margin:6px 0 8px}.enemy-stats{text-align:right}.enemy-stats .team-label{color:#7b608d}.health{height:9px;background:#fff8;border-radius:20px;overflow:hidden}.health i{display:block;height:100%;width:100%;background:#75a183;transition:width .2s}.health.evil i{background:#a184b5}.wave{text-align:center;background:#ffffff80;padding:9px 17px;border-radius:13px;color:#74796e}.wave span{font-size:11px;letter-spacing:1.5px;font-weight:700;display:block}.wave b{display:block;font-size:18px;margin-top:3px}canvas{display:block;width:100%;height:auto}.battle-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:#fff9eade;color:#646653;border-radius:20px;padding:7px 17px;font-size:13px;white-space:nowrap}.command{margin:29px 0 27px}.section-title,.shop-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:16px}.section-title h2,.shop-heading h2{margin-top:5px}.income{font-size:13px;color:#6c8364;background:#eaf0e1;padding:8px 12px;border-radius:18px}.roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cat-card{display:flex;text-align:left;align-items:center;gap:14px;position:relative;border:1px solid #dfd7cd;border-bottom:4px solid #d9cfc3;border-radius:17px;padding:13px 17px;background:#fffefa;transition:transform .15s}.cat-card:hover:enabled{transform:translateY(-3px);border-color:#b8cba8}.cat-art{width:75px;height:72px;flex-shrink:0}.cat-name{font-family:'Fredoka',sans-serif;font-size:21px;font-weight:500;display:block}.cat-detail{font-size:12px;display:block;color:#93858c;margin-top:3px}.price{display:block;font-size:14px;margin-top:8px;color:#8a6836}.key{position:absolute;right:9px;top:8px;font-size:10px;color:#a59999;border:1px solid #ebe3d9;border-radius:5px;padding:1px 5px}.shop{background:#f1ece5;border:1px solid #e8e0d6;border-radius:20px;padding:21px 23px 16px}.tabs{display:flex;background:#e5ded5;padding:4px;border-radius:12px}.tabs button{border:0;background:transparent;font-size:14px;padding:8px 16px}.tabs button[aria-selected=true]{background:#fffefa;box-shadow:0 2px 3px #4b382111}.shop-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.shop-card{display:flex;gap:12px;align-items:center;background:#fffaf3;border:1px solid #e5dacc;border-radius:13px;padding:14px}.item-icon{font-size:34px;flex-shrink:0}.item-copy{flex:1}.shop-card h3{font-size:16px;margin:0 0 5px}.shop-card p{font-size:12px;color:#85767a;line-height:1.4}.shop-card button{white-space:nowrap;font-size:13px;background:#ede5f3;border-color:#ddd0e6;padding:9px}.shop-note{font-size:12px;color:#887d79;margin-top:14px}footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#a49891;margin-top:18px}footer button{border:0;background:none;font-size:12px;padding:5px}.primary{background:#6e8d67;color:white;border-color:#58734f;padding:12px 24px;border-bottom-width:3px}.result{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;gap:14px;justify-content:center;align-items:center;text-align:center;background:#fff9eced}.result[hidden]{display:none}.result>span{font-size:50px}.result h2{font-size:38px}.result p{max-width:400px;padding:0 15px}dialog{border:1px solid #e0d6c9;border-radius:23px;background:#fffaf1;color:#443d4c;padding:32px;max-width:450px;width:calc(100% - 30px);box-shadow:0 20px 100px #332b4240}dialog::backdrop{background:#34304470;backdrop-filter:blur(5px)}dialog h2{margin:12px 0 20px}dialog p{font-size:16px;line-height:1.6;margin-bottom:16px}.close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:23px;padding:0 6px}#hatch{text-align:center}#hatchArt svg{width:150px;height:140px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);z-index:20;max-width:90%;padding:12px 22px;background:#48404c;color:white;border-radius:15px;opacity:0;transition:.2s;pointer-events:none;text-align:center;font-size:14px}#toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:900px){main{padding:20px}.shop-items{grid-template-columns:1fr}.shop-card{padding:10px 14px}.cat-card{padding:12px;gap:8px}.cat-art{width:52px}.cat-name{font-size:18px}.tower-stats{left:18px;right:18px;top:14px}.team-label{font-size:10px}.wave{padding:6px 10px}.wave span{font-size:9px}}@media(max-width:600px){main{padding:13px}header{margin-bottom:17px;gap:7px}.paw{display:none}h1{font-size:25px}.brand .eyebrow{font-size:9px;letter-spacing:1.5px}.top-actions{gap:5px}.wallet{padding:7px 10px;gap:5px}.wallet strong{font-size:20px}.wallet>span:last-child{display:none}.top-actions>button{width:32px;height:34px;padding:5px}.tower-stats{left:12px;right:12px;top:10px}.tower-stats>div:not(.wave){width:32%}.team-label{font-size:8px;letter-spacing:.3px}.tower-stats strong{font-size:12px;margin:4px 0}.wave span{display:none}.wave b{font-size:13px;margin:0}.health{height:6px}canvas{height:265px;object-fit:fill}.battle-hint{font-size:10px;bottom:8px;max-width:97%;padding:5px 10px}.section-title h2,.shop-heading h2{font-size:23px}.section-title{align-items:end}.income{font-size:10px;padding:6px 8px}.roster{gap:7px}.cat-card{flex-direction:column;text-align:center;padding:10px 4px}.cat-art{width:58px;height:55px}.cat-name{font-size:17px}.cat-detail{font-size:10px}.price{margin-top:5px}.key{display:none}.command{margin:22px 0}.shop{padding:16px 13px}.shop-heading{align-items:start}.shop-heading .eyebrow{font-size:10px}.tabs button{font-size:12px;padding:7px 9px}.shop-heading h2{font-size:20px}.result{gap:8px}.result>span{font-size:26px}.result h2{font-size:27px}.result p{font-size:13px}.result .primary{padding:8px 20px}}

#shopItems{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign{padding:12px 18px}.campaign .level-track{margin-top:10px}.campaign .level-dot{height:22px}.campaign #modeNote{margin-top:8px}@media(min-width:901px){main{padding-top:20px}header{margin-bottom:18px}.arena canvas{max-height:330px}}@media(max-width:700px){#shopItems{grid-template-columns:1fr}}

#sound[aria-pressed="false"]{background:#e9e3ef;color:#7e718b}@media(max-width:460px){h1{font-size:21px}.wallet{padding:6px 8px}.top-actions{gap:4px}}
