:root{color:#ecf3d8;font-synthesis:none;background:#182c29;font-family:Trebuchet MS,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(at 50% 0,#345343,#182c29 80%);min-height:100vh;margin:0}button,input{font:inherit}button{color:#e7edda;cursor:pointer;background:#34463c;border:2px solid #536552;border-radius:7px;padding:9px 12px;font-weight:700;box-shadow:0 3px #14231e}button:not(:disabled):hover{background:#475d45;border-color:#8da077}button:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px #14231e}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #f7d264}h1,h2,h3,p{margin:0}.game-header{align-items:center;gap:25px;max-width:1400px;margin:auto;padding:18px 24px;display:flex}.game-logo{flex:none;align-items:center;gap:9px;min-width:238px;display:flex;position:relative}.game-logo:after{content:"";background:repeating-linear-gradient(90deg,#688542 0 15px,#3e612f 15px 20px);height:4px;position:absolute;bottom:-5px;left:49px;right:0;box-shadow:3px 3px #0b1710}.logo-mark{flex:none;width:55px;height:51px;display:block;position:relative}.logo-mark img{object-fit:contain;width:59px;height:59px;image-rendering:pixelated;filter:drop-shadow(3px 3px #08110c);position:absolute;inset:-5px 0 0 -2px}.logo-words{align-items:center;gap:8px;display:flex;transform:rotate(-.5deg)}.pixel-word{height:31px;display:block;overflow:visible}.pixel-word-zoo{width:70px}.pixel-word-rumble{width:139px}.pixel-word-shadow{fill:#08120d}.pixel-word-face{fill:#f0c653;filter:drop-shadow(0 -1px #fff0a0)}.pixel-word-zoo .pixel-word-face{fill:#d9e58a}.mode{color:#a2b29a;letter-spacing:1px;font-size:10px}.help-button{background:#30483a;border-radius:4px 8px 5px 7px;font-size:11px}.header-actions{gap:7px;margin-left:auto;display:flex}.debug-button{color:#aebba3}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.guide-backdrop{z-index:20000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#07120edb;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.guide-dialog{background:linear-gradient(#2c4838e8,#172c24f5),radial-gradient(circle at 85% 0,#71804966,#0000 38%);border:3px solid #859363;border-radius:14px;width:min(720px,100%);padding:22px;box-shadow:0 10px #091711,0 20px 60px #000a}.guide-heading{border-bottom:2px solid #526746;justify-content:space-between;align-items:start;gap:20px;padding-bottom:17px;display:flex}.guide-heading span{color:#d3b85e;letter-spacing:2px;margin-bottom:4px;font-size:9px;font-weight:900;display:block}.guide-heading h2{color:#f6e8ad;letter-spacing:-.2px;font-size:21px}.guide-heading button{width:38px;height:38px;padding:0;font-size:24px}.guide-steps{grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0;display:grid}.guide-steps article{background:#1b3027;border:2px solid #496044;border-radius:9px;min-height:146px;padding:13px}.guide-steps article>b{color:#26301e;background:#d1ad4f;border-radius:50%;place-items:center;width:25px;height:25px;margin-bottom:12px;font-size:12px;display:grid}.guide-steps h3{color:#e8ddac;margin-bottom:6px;font-size:13px}.guide-steps p{color:#b8c7a9;font-size:10px;line-height:1.55}.guide-tip{color:#aebfa2;background:#15271f;border-left:4px solid #d1ad4f;gap:12px;padding:11px 13px;font-size:10px;display:flex}.guide-tip strong{color:#ead887;white-space:nowrap}.guide-start{color:#2e2a17;background:#d1ad4f;border-color:#f0d979;margin:18px auto 0;padding:11px 30px;font-size:13px;display:block}.game-main{grid-template-columns:minmax(0,1fr) 264px;gap:20px;max-width:1400px;margin:auto;padding:0 24px 24px;display:grid}.play-panel{background:#22382e;border:3px solid #617757;border-radius:13px;overflow:hidden;box-shadow:0 7px #10201c}.arena-toolbar{background:#304735;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;display:flex}.phase{color:#ffde76;font-size:12px;font-weight:900}.team-score{color:#bfcdaa;font-size:10px}.team-score b{color:#e9f1d0;margin-left:6px;font-size:14px}.versus{color:#ecb482;margin:0 15px;font-weight:900}.timer{font-variant-numeric:tabular-nums;color:#b9caa5;font-size:12px}.arena-wrap{position:relative}.battlefield{aspect-ratio:960/640;width:100%}.battlefield canvas{display:block}.loading{background:#24382d;place-items:center;display:grid;position:absolute;inset:0}.bench-heading{justify-content:space-between;align-items:center;padding:13px 16px 9px;display:flex}h2{letter-spacing:1px;font-size:12px;font-weight:900}.bench-heading h2 span{color:#a0b38c;padding-left:7px;font-size:10px}.bench-heading>span{color:#adbb9c;font-size:10px}.bench{grid-template-columns:repeat(8,minmax(0,1fr));gap:7px;padding:0 14px 15px;display:grid}.bench-slot{color:#a0b38d;background:#1a2d24;border-color:#42583e;flex-direction:column;justify-content:center;align-items:center;min-width:0;height:97px;padding:6px 2px;display:flex;box-shadow:inset 0 3px #15231c}.bench-slot.occupied{cursor:grab;background:#44563a;border-color:#849363}.animal-icon{font-size:28px;line-height:1.1}.bench-slot strong{margin-top:2px;font-size:10px}.stars{color:#ffd366;letter-spacing:1px;font-size:11px}.star-2 .animal-icon{filter:drop-shadow(0 0 5px #7ce6dd)}.star-3 .animal-icon{filter:drop-shadow(0 0 4px #fff0a3)drop-shadow(0 0 9px #f7ae3b)}.star-3 .stars{color:#fff0a3;text-shadow:0 0 7px #f6a629;font-size:13px}.bench-slot small{color:#cad5b6;margin-top:3px;font-size:7px}.empty-slot{color:#556b46;font-size:24px}.selected{background:#59633a!important;border-color:#ffd568!important}.upgraded{animation:.7s ease-out upgrade}.upgraded-3{animation:1.15s cubic-bezier(.2,.9,.2,1) upgrade-three}@keyframes upgrade-three{0%{transform:scale(.72);box-shadow:0 0 12px #fff4b0}35%{transform:scale(1.2);box-shadow:0 0 42px #ffb329}65%{transform:scale(.97)}to{transform:scale(1)}}@keyframes upgrade{0%{transform:scale(.8);box-shadow:0 0 28px #ffd466}40%{transform:scale(1.12)}to{transform:scale(1)}}.command-bar{align-items:center;gap:8px;padding:0 15px 12px;display:flex}.command-bar>button{font-size:11px}.command-bar .fight-button{color:#403317;background:#f2c455;border-color:#fae08e;padding:12px 30px;font-size:16px;box-shadow:0 4px #947533}.fight-button:not(:disabled):hover{background:#ffda70}.speed-buttons{gap:4px;margin-left:auto;display:flex}.speed-buttons button{padding:8px;font-size:11px}button[aria-pressed=true]{background:#566445;border-color:#cfbc70}.game-message{color:#a9bb94;min-height:34px;padding:0 16px 14px;font-size:11px;line-height:1.5}.side-panel{background:#20362d;border:2px solid #4a6046;border-radius:12px;align-self:start;padding:17px 14px;box-shadow:0 5px #10201c}.side-panel>h2{color:#c4d4af;margin-bottom:12px}.owned-list{gap:7px;max-height:300px;padding:2px 0 5px;display:grid;overflow-y:auto}.owned-card{text-align:left;grid-template-columns:35px 1fr auto;align-items:center;gap:2px 7px;padding:9px 8px;font-size:11px;display:grid}.owned-card .animal-icon{grid-row:1/3;font-size:24px}.owned-card small{color:#b6c7a6;grid-column:2/4;font-size:8px}.location-label{letter-spacing:1px;color:#98b580;grid-column:2/4;font-size:7px}.owned-list>p{color:#a9ba98;padding:10px 0;font-size:11px}.selection-info{background:#3a4c31;border:1px solid #81935f;border-radius:7px;margin-top:13px;padding:10px}.selection-info h3{color:#f4d67d;font-size:11px}.selection-info p{color:#cad5b4;margin:8px 0;font-size:10px;line-height:1.6}.selection-info button{font-size:10px}.placement-picker{border-top:1px solid #64764f;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin-top:10px;padding-top:10px;display:grid}.placement-picker button{color:#98aa86;min-width:0;min-height:31px;box-shadow:none;border-width:1px;border-radius:4px;padding:3px 1px;font-size:7px}.placement-picker button.current{color:#fff0a7;background:#736530;border-color:#ffd66e}.combat-guide{background:#192a22;border:1px solid #486044;border-radius:7px;margin-bottom:16px;padding:10px}.combat-guide summary{color:#d8cf9b;letter-spacing:.5px;font-size:10px}.combat-guide dl{grid-template-columns:1fr 1fr;gap:6px 9px;margin:10px 0 0;display:grid}.combat-guide dl>div{border-left:2px solid #718761;padding-left:7px}.combat-guide dt{color:#dce5c7;text-transform:uppercase;font-size:8px;font-weight:900}.combat-guide dd{color:#8fa281;margin:2px 0 0;font-size:8px;line-height:1.35}.run-summary{grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0;display:grid}.run-summary span{color:#aaba93;text-align:center;text-transform:uppercase;border:1px solid #5c6840;border-radius:4px;padding:7px 3px;font-size:7px}.run-summary b{color:#f2d676;margin-bottom:3px;font-size:10px;display:block}.sandbox-tools{border-top:1px solid #4c6246;margin-top:15px;padding-top:15px}summary{cursor:pointer;color:#ddce96;font-size:12px;font-weight:700}.sandbox-tools>p{color:#a3b693;margin:10px 0;font-size:10px}.spawn-row{align-items:center;gap:5px;margin:8px 0;display:flex}.spawn-row>span{flex:1;font-size:11px}.spawn-row button{padding:5px 7px;font-size:10px}.reset-tools{gap:6px;margin-top:13px;display:flex}.reset-tools button{padding:7px 8px;font-size:9px}.debug-tools{border-top:1px solid #445b40;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;padding-top:12px;display:flex}.debug-tools label{align-items:center;gap:8px;width:100%;font-size:10px;display:flex}.debug-tools input{color:#c5d3b2;background:#14281e;border:1px solid #53664b;border-radius:4px;width:100%;min-width:0;padding:6px;font-size:10px}.debug-tools button{padding:6px 8px;font-size:10px}.debug-tools small{color:#93aa7d;font-size:9px}@media (width<=1000px){.game-main{grid-template-columns:minmax(0,1fr) 230px;gap:12px;padding:0 12px 20px}.game-header{padding:14px 16px}.mode{display:none}.team-score{font-size:8px}.versus{margin:0 8px}.bench-slot small{font-size:6px}}@media (width<=760px){.game-main{grid-template-columns:1fr}.side-panel{grid-template-columns:1fr 1fr;gap:12px;display:grid}.side-panel>h2{grid-column:1/-1;margin:0}.sandbox-tools{border:0;margin:0;padding:0}.selection-info{grid-column:1/-1}.bench{gap:4px;padding:0 8px 12px}.bench-slot{height:84px}.animal-icon{font-size:24px}.command-bar{flex-wrap:wrap;padding:0 10px 12px}.arena-toolbar{padding:12px}.guide-steps{grid-template-columns:1fr 1fr}}@media (width<=450px){h1{font-size:inherit}.game-logo{gap:6px;min-width:0}.logo-mark{width:43px;height:39px}.logo-mark img{width:47px;height:47px;inset:-4px 0 0 -2px}.logo-words{gap:5px}.pixel-word{height:25px}.pixel-word-zoo{width:56px}.pixel-word-rumble{width:111px}.game-logo:after{left:44px}.help-button{padding:8px;font-size:9px}.team-score{display:none}.bench-slot{height:75px}.bench{grid-template-columns:repeat(8,minmax(72px,1fr));padding-bottom:8px;overflow-x:auto}.animal-icon{font-size:20px}.bench-slot small{display:none}.bench-slot strong,.bench-slot .stars,.bench-heading>span{font-size:8px}.command-bar .fight-button{padding:10px 18px}.side-panel{grid-template-columns:1fr}.owned-list{max-height:200px}.game-header{gap:9px}.header-actions{gap:4px}.debug-button{display:none}.guide-backdrop{align-items:start;padding:10px;overflow-y:auto}.guide-dialog{padding:15px}.guide-heading h2{font-size:17px}.guide-steps{grid-template-columns:1fr}.guide-steps article{min-height:0}.guide-tip{display:grid}}@media (prefers-reduced-motion:reduce){.upgraded{animation:none}}.shop-panel{background:#1b3027;border:2px solid #4c6347;border-radius:9px;margin:0 14px 16px;padding:12px}.shop-header{align-items:center;gap:12px;margin-bottom:11px;display:flex}.shop-header h2{color:#d5e0bc}.gold-count{color:#ffdb71;margin-left:auto;font-size:13px;font-weight:900}.shop-header button{padding:7px 9px;font-size:10px}.shop-offers{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.shop-offer{background:#374b3b;border-bottom-width:4px;flex-direction:column;align-items:center;gap:4px;height:180px;min-height:180px;padding:8px 3px;display:flex;overflow:hidden}.offer-tier{letter-spacing:1px;color:#9cb591;font-size:7px}.offer-icon{font-size:29px;line-height:1}.shop-offer strong{font-size:11px}.shop-offer small{color:#bdcbb1;font-size:8px}.offer-stats{white-space:nowrap;flex:none}.offer-ability{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:20px;line-height:1.25;display:-webkit-box;overflow:hidden}.offer-price{color:#ffdc6c;flex:none;margin-top:auto;font-size:12px;font-weight:900}.sold-offer{color:#829776;margin:auto;font-size:10px}.tier-1{border-color:#83907c}.tier-2{border-color:#6caa68}.tier-3{border-color:#73a8d1}.tier-4{border-color:#ae7cd0}.tier-5{border-color:#d6b050}.level-panel{align-items:center;gap:10px;margin:14px 0 11px;display:flex}.level-badge{color:#f6da80;background:#494b2e;border:2px solid #8b7b47;border-radius:7px;padding:9px;font-size:12px;font-weight:900}.xp-info{flex:1}.xp-info>span{color:#c4d5ad;justify-content:space-between;font-size:10px;display:flex}.xp-info small{color:#91a87e;font-size:9px}.xp-track{background:#10241a;border-radius:4px;height:6px;margin-top:6px;overflow:hidden}.xp-track>div{background:#9fbf65;height:100%}.level-panel>button{padding:8px;font-size:10px}.shop-odds{color:#adc09a;flex-wrap:wrap;gap:10px;font-size:8px;display:flex}.shop-odds>span{border-left:3px solid;padding-left:5px}.shop-odds>.tier-1{border-color:#83907c}.shop-odds>.tier-2{border-color:#6caa68}.shop-odds>.tier-3{border-color:#73a8d1}.shop-odds>.tier-4{border-color:#ae7cd0}.shop-odds>.tier-5{border-color:#d6b050}.shop-odds .roster-note{color:#7e9670;border:0;margin-left:auto}.sell-note{color:#859c76;margin-top:8px;font-size:8px;display:block}@media (width<=450px){.shop-panel{margin:0 8px 12px;padding:9px}.shop-header{gap:6px}.shop-header h2,.gold-count{font-size:10px}.shop-offers{grid-template-columns:repeat(5,minmax(128px,1fr));gap:4px;padding-bottom:7px;overflow-x:auto}.shop-offer{height:126px;min-height:126px}.shop-offer small{display:none}.offer-icon{font-size:25px}.xp-info small{display:none}}.play-panel>.command-bar{background:#293f31;border-bottom:2px solid #425a3d;padding:10px 15px 14px}.trait-panel{border-bottom:2px solid #425b3c;grid-column:1/-1;margin-bottom:17px;padding-bottom:14px}.trait-panel h2{color:#dbd59a;margin-bottom:8px}.trait-panel>p{color:#91a97d;margin-bottom:10px;font-size:9px;line-height:1.6}.trait-row{background:#263e2d;border:1px solid #415b3a;border-radius:6px;margin:6px 0;padding:9px}.trait-row summary{color:#96a782;align-items:center;gap:8px;font-size:11px;display:flex}.trait-row summary>span{margin-left:auto;font-size:10px}.trait-row summary>b{color:#779065;font-size:7px}.active-trait{background:#3d512f;border-color:#a3b966}.active-trait summary strong{color:#e4e9b3}.active-trait summary>b{color:#d8dc76}.trait-description{color:#97ab83;padding-top:8px;font-size:9px;line-height:1.7}.trait-description p{margin:4px 0}.current-threshold{color:#e0df9e}.offer-traits{color:#9abc81;min-height:9px;font-size:7px}.shop-offer{height:180px}.trait-presets{grid-template-columns:1fr 1fr;gap:5px;margin-bottom:14px;display:grid}.trait-presets button{padding:7px 4px;font-size:8px}@media (width<=450px){.shop-offer{height:126px;min-height:126px}.offer-traits{letter-spacing:-.2px;font-size:6px}}.run-progress{background:#17241b;border:2px solid #405240;margin-bottom:18px;padding:14px}.run-progress>div{color:#9aab9c;padding:5px 0;font-size:12px}.run-progress .current-encounter{color:#ffd66e;font-weight:800}.run-progress .run-result{color:#fff;background:#2a3923;border:2px solid #d4ae51;margin-top:12px;padding:14px}.shop-panel.sell-available{outline-offset:3px;outline:2px dashed #e0b75f}.shop-panel.sell-hover{background:#394a27;outline-style:solid}.sell-banner{color:#17241b;text-align:center;pointer-events:none;background:#e0b75f;margin-bottom:10px;padding:12px;font-weight:800}.bench-slot{touch-action:none}.animal-drag-ghost{z-index:100;pointer-events:none;filter:drop-shadow(0 5px 3px #0008);font-size:42px;position:fixed;transform:translate(-50%,-50%)}.animal-icon,.offer-icon,.animal-drag-ghost img{image-rendering:pixelated}.animal-icon{object-fit:contain;flex-shrink:0;width:42px;height:42px}.owned-card{grid-template-columns:42px 1fr auto}.owned-card .animal-icon{width:42px;height:42px}.offer-icon{object-fit:contain;width:58px;height:58px}.animal-drag-ghost img{object-fit:contain;width:76px;height:76px}.command-bar{flex-wrap:wrap}@media (prefers-reduced-motion:reduce){.upgraded{animation:none}button{transition:none}}.reduced-motion .upgraded{animation:none}
