:root{--primary: #5fbf4a;--secondary: #d98f39;--accent: #8c52ff;--bg: #122018;--surface: #1e2b22;--text: #f4f1e8;--muted: #b7c2b3;--danger: #c94b4b}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0%,#243d2d 0%,var(--bg) 45%);color:var(--text);font-family:Trebuchet MS,Segoe UI,sans-serif}button,select{font:inherit}.app-shell{min-height:100vh;min-height:100dvh;max-width:860px;margin:0 auto;padding:12px;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.top-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.top-bar nav{display:flex;gap:10px;flex-wrap:wrap}.top-bar a{color:var(--muted);text-decoration:none}.top-bar a.active{color:var(--text);text-decoration:underline}.top-bar-compact{align-items:center;flex-wrap:nowrap}.top-bar-compact h1{margin:0;font-size:clamp(1.35rem,4.6vw,1.7rem)}.compact-exit-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-width:86px}.content{margin-top:12px}.battle-route-shell .content{margin-top:8px}.feedback-trigger{min-height:36px}.toast-notice{margin:8px 0 0}.feedback-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#060a08b8;display:grid;place-items:center;z-index:1000;padding:12px}.feedback-modal{width:min(520px,100%);max-height:92vh;overflow:auto}.feedback-form{display:grid;gap:10px}.feedback-form label{display:grid;gap:4px;font-size:13px}.feedback-form input,.feedback-form select,.feedback-form textarea{width:100%;border-radius:8px;border:1px solid #3d5f4c;background:#162118;color:var(--text);padding:8px}.feedback-form textarea{resize:vertical}.room-code-input{width:100%;padding:10px 14px;border-radius:8px;border:1.5px solid var(--primary);background:#1a261e;color:var(--text);font-size:1rem;margin-bottom:10px}.room-code-input:focus{outline:none;border-color:var(--accent)}.feedback-actions{display:flex;gap:8px}.panel{background:#1e2b22e6;border:1px solid #335541;border-radius:16px;padding:14px}.skeleton{position:relative;overflow:hidden;background:#b7c2b333}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0%,rgba(241,245,237,.3) 50%,transparent 100%);animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-stack{display:grid;gap:8px;margin:10px 0}.skeleton-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.skeleton-card{display:grid;gap:8px;padding:8px;border:1px solid #3f664f;background:#243228;border-radius:12px}.skeleton-inline{display:inline-block;vertical-align:middle}.splash{position:relative;overflow:hidden}.flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.2;background:linear-gradient(130deg,transparent 0%,#f4f1e8 20%,transparent 35%);animation:sweep 2.6s infinite}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.splash h2,.splash p,.splash .primary,.splash .capture-attempts-badge{animation:splash-rise .56s ease-out}@keyframes splash-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.primary,.secondary,.primary-link{border:none;border-radius:10px;padding:10px 12px;min-height:44px;cursor:pointer}.primary{background:var(--primary);color:#111}.secondary{background:#33473a;color:var(--text)}.primary-link{display:inline-block;text-decoration:none;background:var(--primary);color:#111}.intake-actions{display:flex;gap:8px;margin-bottom:12px}.starter-grid,.roster-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.starter-card,.roster-card{background:#243228;border:1px solid #3f664f;color:var(--text);border-radius:12px;padding:8px;text-align:left;cursor:pointer}.roster-entry{display:grid;gap:8px}.roster-entry>button{width:100%}.roster-card.active{border-color:var(--accent)}.starter-card img,.roster-bug-portrait,.preview-card img{width:100%;border-radius:10px}.bug-portrait-flip{display:inline-block;width:100%;cursor:pointer;perspective:800px}.bug-portrait-flip-inner{position:relative;display:block;width:100%;transform-style:preserve-3d;transition:transform .22s ease}.bug-portrait-flip.flipped .bug-portrait-flip-inner{transform:rotateY(180deg)}.bug-portrait-face{display:block;width:100%;backface-visibility:hidden;border-radius:10px}.bug-portrait-back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg)}.preview-card,.monetization-placeholders{margin-top:12px;padding:10px;background:#223226;border-radius:10px}.capture-morph{animation:capture-morph .42s ease-out}.capture-cropper p{margin-top:0}.capture-crop-frame{position:relative;width:220px;height:220px;margin:8px auto 12px;border-radius:20px;overflow:hidden;border:2px solid #4b7158;background:#101910;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.capture-crop-frame.dragging{cursor:grabbing}.capture-crop-image{position:absolute;transform:translate(-50%,-50%);max-width:none;pointer-events:none}.transform-animation{margin-top:12px}.transform-stage{position:relative;width:min(340px,100%);aspect-ratio:1 / 1;margin:10px auto;border-radius:20px;overflow:hidden;border:1px solid #4f7e61;background:#0e1511}.transform-photo,.transform-sprite{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.transform-photo{transition:filter .32s ease,opacity .32s ease}.transform-sprite{object-fit:contain;opacity:0;transform:scale(.95);transition:opacity .32s ease,transform .32s ease}.phase-scanning .transform-photo{opacity:1}.phase-dissolving .transform-photo,.phase-materializing .transform-photo,.phase-final .transform-photo{opacity:.2;filter:blur(8px) saturate(0)}.phase-dissolving .transform-sprite,.phase-materializing .transform-sprite,.phase-final .transform-sprite{opacity:.9;transform:scale(1)}.phase-materializing .transform-sprite,.phase-final .transform-sprite{box-shadow:0 0 28px var(--transform-glow, rgba(159, 233, 131, .3))}.transform-scanline{position:absolute;left:0;right:0;top:-28%;height:28%;background:linear-gradient(180deg,#66ff9400,#66ff9459,#66ff9400);opacity:0}.phase-scanning .transform-scanline{opacity:1;animation:scan-sweep .62s linear forwards}.transform-caption{margin:0;color:var(--muted);text-align:center;font-size:12px}.transform-banner{margin:8px 0 0;text-align:center;font-weight:700;letter-spacing:.08em;color:#dbf7cf}@keyframes capture-morph{0%{opacity:.4;transform:scale(.96) translateY(8px);filter:blur(1px)}60%{opacity:1;transform:scale(1.02) translateY(0);filter:blur(0)}to{transform:scale(1)}}@keyframes scan-sweep{0%{transform:translateY(0)}to{transform:translateY(440%)}}.error-text{color:#ff9c9c;font-size:13px;margin:4px 0}.notice-text{color:#c8ddbb;font-size:13px;margin:4px 0}.field-error{color:#ff7b7b;font-size:12px;margin-top:4px;display:block}.capture-attempts-badge{font-size:13px;color:var(--muted);margin:4px 0 12px}.intake-capture-hint{font-size:13px;margin-top:0}.pvp-room-help{margin-top:8px}.pvp-waiting-steps{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 12px}.pvp-room-id-display{display:block;font-family:Courier New,Courier,monospace;font-size:13px;background:#162118;border:1px solid #395542;border-radius:8px;padding:8px 12px;color:#c8ddbb;word-break:break-all;margin-bottom:12px}.pvp-copy-row{display:flex;gap:8px}.pvp-copy-room-btn{min-width:140px;transition:background .15s ease,color .15s ease}.pvp-copy-room-btn.copied{background:#3b7a2e;color:#dff7bf}.pvp-copy-room-btn.errored{background:var(--danger);color:#fff}.battle{position:relative;display:grid;gap:10px}.battle-live-shell{display:grid;gap:10px}.battle-arena{position:relative;min-height:clamp(300px,42svh,420px);border:1px solid #2f4939;border-radius:12px;background:linear-gradient(180deg,#1c2c22eb,#131f18eb);padding:10px;overflow:hidden}.battle-zoom-in{animation:battle-zoom-in .32s ease-out}@keyframes battle-zoom-in{0%{transform:scale(.98);opacity:.7}to{transform:scale(1);opacity:1}}.arena-shake{animation:arena-shake .32s ease-out}@keyframes arena-shake{0%{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}to{transform:translate(0)}}.enemy-card{position:absolute;top:12px;right:12px;width:min(44vw,250px);text-align:right}.enemy-card img,.player-card img,.enemy-card .bug-portrait-flip-inner,.player-card .bug-portrait-flip-inner{width:100%;border-radius:12px}.enemy-card.hit img,.player-card.hit img,.enemy-card.hit .bug-portrait-flip-inner,.player-card.hit .bug-portrait-flip-inner{animation:hit-pulse .28s cubic-bezier(.16,.84,.24,1)}.enemy-card.move-jab img,.player-card.move-jab img,.enemy-card.move-jab .bug-portrait-flip-inner,.player-card.move-jab .bug-portrait-flip-inner{animation:jab-surge .32s ease-out}.enemy-card.move-wing-jab img,.player-card.move-wing-jab img,.enemy-card.move-wing-jab .bug-portrait-flip-inner,.player-card.move-wing-jab .bug-portrait-flip-inner{animation:wing-flare .34s ease-out}.enemy-card.move-sting img,.player-card.move-sting img,.enemy-card.move-sting .bug-portrait-flip-inner,.player-card.move-sting .bug-portrait-flip-inner{animation:sting-thrust .32s ease-out}@keyframes jab-surge{0%{transform:translate(0) scale(1)}50%{transform:translate(4px) scale(1.02)}to{transform:translate(0) scale(1)}}@keyframes wing-flare{0%{transform:scale(1) rotate(0)}45%{transform:scale(1.03) rotate(-1deg)}to{transform:scale(1) rotate(0)}}@keyframes sting-thrust{0%{transform:translateY(0) scale(1);filter:drop-shadow(0 0 0 rgba(157,220,96,0))}50%{transform:translateY(-4px) scale(1.05);filter:drop-shadow(0 0 10px rgba(157,220,96,.3))}to{transform:translateY(0) scale(1);filter:drop-shadow(0 0 0 rgba(157,220,96,0))}}@keyframes hit-pulse{0%{transform:scale(1);filter:saturate(1)}50%{transform:scale(1.03);filter:saturate(1.35)}to{transform:scale(1);filter:saturate(1)}}.player-card{position:absolute;bottom:12px;left:12px;width:min(44vw,250px)}.health{margin:4px 0}.health-name-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0;line-height:1.3}.health-name{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.health-stats-row{display:flex;justify-content:space-between;align-items:center;margin:2px 0 3px}.health-level{font-size:11px;color:var(--muted);font-weight:600}.health-hp{font-size:11px;font-weight:700;color:var(--text);letter-spacing:.02em}.type-badge{display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.04em;padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:middle;text-transform:uppercase}.type-rock{background:#5d6d7e;color:#ecf0f1}.type-paper{background:#27ae60;color:#fff}.type-scissors{background:#c0392b;color:#fff}.health-track{height:8px;border-radius:6px;background:#0e1511;border:1px solid #3e5c49;overflow:hidden}.health-fill{height:100%;background:#5fbf4a;transition:width .2s linear}.health-fill.high{background:#5fbf4a}.health-fill.mid{background:#d6ca46}.health-fill.low{background:#d98f39}.health-fill.critical{background:#c94b4b}.actions{position:relative;padding:10px;border-radius:12px;background:#1a261d;border:1px solid #395542}.actions h3{margin:0 0 6px;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.turn-indicator{margin:0 0 8px;font-size:12px;color:var(--muted)}.tutorial-note{margin:0 0 8px;font-size:12px;color:#dce8ce}.move-row{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.action{background:#335541;color:var(--text);border:1px solid #497158;border-radius:10px;min-height:44px}.move-type-hint{display:block;font-size:.62rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.72;margin-top:3px}.action.is-animating{animation:action-pop .22s ease-out;border-color:#9cdc60}@keyframes action-pop{0%{transform:scale(1)}55%{transform:scale(1.03)}to{transform:scale(1)}}.utility-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.pvp-utility-row{grid-template-columns:1fr}.battle-log{min-height:42px;font-size:12px;color:var(--muted);margin-bottom:8px}.battle-log p{margin:3px 0}.log-super{color:#f39c12;font-weight:700}.result-modal{position:absolute;top:70px;right:14px;bottom:80px;left:14px;background:#122018f5;border:1px solid #4f7e61;border-radius:14px;padding:12px}.result-modal.challenged{border-color:#db4a2f;background:radial-gradient(circle at 18% 10%,#db4a2f29,#db4a2f00 40%),radial-gradient(circle at 84% 24%,#ff963d1f,#ff963d00 42%),#181812f5;box-shadow:0 0 0 1px #db4a2f4d,0 0 22px #db4a2f33}.result-modal.victory{animation:victory-pop .32s ease-out}.result-modal.defeat{animation:defeat-fade .28s ease-out}@keyframes victory-pop{0%{opacity:.4;transform:scale(.96)}65%{opacity:1;transform:scale(1.02)}to{transform:scale(1)}}@keyframes defeat-fade{0%{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.xp-summary{margin:10px 0}.result-summary{margin:8px 0 10px;padding:8px;border:1px solid #3b624a;border-radius:8px;background:#152118}.pvp-streak-banner{display:inline-block;margin:0 0 8px;padding:4px 10px;border-radius:999px;border:1px solid #9cdc60;background:#9ddc602e;color:#dff7bf;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.result-summary p{margin:0 0 4px;font-size:13px}.xp-summary p{margin:0 0 6px;font-size:13px}.xp-track{height:8px;border-radius:6px;border:1px solid #4f7e61;background:#0e1511;overflow:hidden}.xp-fill{height:100%;background:linear-gradient(90deg,#5fbf4a,#9cdc60);transition:width .18s linear}.placeholder-offer{border:1px dashed #7da688;border-radius:8px;padding:10px}.placeholder-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-top:10px}.reward-summary{display:grid;gap:4px;margin-bottom:8px;font-size:12px;color:var(--muted)}.supporter-card{border:1px solid #8c52ff;border-radius:10px;background:linear-gradient(135deg,#8c52ff33,#5fbf4a24);padding:10px}.supporter-card p{margin:0 0 4px}.premium-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;border:1px solid #8c52ff;color:#e5dfff;font-size:12px}.supporter-badge-header{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:8px;border:1px solid #c9a227;background:linear-gradient(135deg,#3a2a00,#1e1600);color:#f5c842;font-size:14px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.monetization-placeholders .primary,.monetization-placeholders .secondary{display:block;width:100%;margin-top:8px}.result-buttons{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}.rematch-alert{margin-top:10px;margin-bottom:2px;padding:10px 12px;border-radius:10px;border:1px solid #ff8459;background:linear-gradient(120deg,#821814d1,#b2351bc7,#6e1410d1);box-shadow:inset 0 0 0 1px #ffa67340,0 0 18px #d53d1e3d;animation:rematch-alert-pulse 1.2s ease-in-out infinite}.rematch-alert-title{margin:0 0 4px;color:#ffe7cb;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.rematch-alert-copy{margin:0;color:#fff3e5;font-weight:600}@keyframes rematch-alert-pulse{0%{transform:scale(1);box-shadow:inset 0 0 0 1px #ffa67340,0 0 12px #d53d1e33}50%{transform:scale(1.01);box-shadow:inset 0 0 0 1px #ffa67373,0 0 22px #d53d1e57}to{transform:scale(1);box-shadow:inset 0 0 0 1px #ffa67340,0 0 12px #d53d1e33}}.recap-log{margin-top:10px;border:1px solid #395542;border-radius:8px;background:#162118;padding:6px 8px}.recap-log summary{cursor:pointer;font-size:13px;font-weight:600;color:#dbe8cf;list-style:none}.recap-log summary::-webkit-details-marker{display:none}.recap-log summary:before{content:"▸";display:inline-block;margin-right:6px}.recap-log[open] summary:before{content:"▾"}.recap-log-body{margin-top:8px;max-height:132px;overflow:auto}.recap-log p{margin:0 0 4px;font-size:12px;color:var(--muted)}.capture-pop{animation:capture-pop .35s ease-out}@keyframes capture-pop{0%{transform:scale(.98);box-shadow:0 0 #9fe98300}55%{transform:scale(1.01);box-shadow:0 0 18px #9fe9833d}to{transform:scale(1);box-shadow:0 0 #9fe98300}}.farm-screen{display:grid;gap:10px}.farm-toolbar{display:grid;gap:8px;padding:8px;border:1px solid #3b624a;border-radius:10px;background:#162118}.farm-toolbar label{display:grid;gap:4px;font-size:13px}.farm-toolbar input,.farm-toolbar select,.farm-options-panel input,.farm-options-panel select{width:100%;border-radius:8px;border:1px solid #3d5f4c;background:#162118;color:var(--text);padding:8px}.farm-toolbar-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.farm-toolbar-row input{flex:1 1 180px}.farm-arena{position:relative;overflow:hidden;min-height:390px;border-radius:14px;border:1px solid #3d5f4c;background:linear-gradient(180deg,#345e57,#203d30 45%,#1b311f);touch-action:none;-webkit-user-select:none;user-select:none}.farm-arena.aiming{cursor:crosshair}.farm-sky{position:absolute;top:0;right:0;bottom:62%;left:0;background:linear-gradient(180deg,#71c1bc8c,#70b3ab47);pointer-events:none}.farm-ground{position:absolute;top:38%;right:0;bottom:0;left:0;background:linear-gradient(180deg,#4b7742bf,#2a4f27f2);pointer-events:none}.farm-bug{position:absolute;width:78px;border:none;background:transparent;padding:0;transform-origin:center center;transition:filter .12s ease}.farm-bug img,.farm-bug-portrait{width:100%;border-radius:10px}.farm-bug.selected{filter:drop-shadow(0 0 14px rgba(174,240,138,.5))}.farm-selected-panel{border:1px solid #3b624a;border-radius:10px;background:#162118;padding:8px 10px}.farm-selected-panel p{margin:0 0 4px}.farm-options-panel{border:1px solid #3b624a;border-radius:10px;background:#162118;padding:8px 10px;display:grid;gap:8px}.farm-options-panel h3,.farm-options-panel p{margin:0}.farm-options-panel label{display:grid;gap:4px;font-size:13px}.farm-options-list{display:flex;gap:8px;flex-wrap:wrap}.farm-bottom-bar{display:flex;justify-content:space-between;align-items:center;gap:8px}.farm-aim-base{position:absolute;width:12px;height:12px;border-radius:999px;background:#e5f4c7;border:2px solid #7eb55f;box-shadow:0 0 10px #bff09573;transform:translate(-50%,-50%);pointer-events:none}.farm-aim-arrow{position:absolute;height:4px;border-radius:999px;background:linear-gradient(90deg,#d1edad40,#dff6bff2);transform-origin:0 50%;pointer-events:none}.farm-aim-head{position:absolute;right:-2px;top:50%;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:12px solid #e1f2bf;transform:translateY(-50%)}.farm-snack{position:absolute;width:18px;height:18px;border-radius:999px;background:radial-gradient(circle at 30% 30%,#d6f2a4,#79b05d 62%,#426a35);box-shadow:0 0 10px #a8e18266;pointer-events:none}.snack-arc{animation:snack-arc .7s ease-in forwards}.bug-nom img{animation:bug-nom .36s ease-out}@keyframes snack-arc{0%{transform:translate(-50%,-50%) scale(.9)}55%{transform:translate(calc(-50% + (var(--snack-dx, 0px) * .55)),calc(-50% + (var(--snack-dy, 0px) * .55) - 42px)) scale(1)}to{transform:translate(calc(-50% + var(--snack-dx, 0px)),calc(-50% + var(--snack-dy, 0px))) scale(.95)}}@keyframes bug-nom{0%{transform:scale(1) rotate(0)}35%{transform:scale(1.08) rotate(-4deg)}70%{transform:scale(1.05) rotate(3deg)}to{transform:scale(1) rotate(0)}}button:disabled,select:disabled{opacity:.55;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.flash,.arena-shake,.enemy-card.hit img,.player-card.hit img,.enemy-card.move-jab img,.player-card.move-jab img,.enemy-card.move-wing-jab img,.player-card.move-wing-jab img,.enemy-card.move-sting img,.player-card.move-sting img,.battle-zoom-in,.capture-pop,.capture-morph,.splash h2,.splash p,.splash .primary,.splash .capture-attempts-badge,.result-modal.victory,.result-modal.defeat,.rematch-alert,.xp-fill,.health-fill,.transform-scanline,.snack-arc,.bug-nom img{animation:none!important;transition:none!important}}@media(max-width:700px){.top-bar{align-items:flex-start}.top-bar-compact{align-items:center}.top-bar nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100%;padding-bottom:2px}.top-bar nav::-webkit-scrollbar{display:none}.top-bar nav>*{white-space:nowrap;flex:0 0 auto}.move-row,.utility-row{grid-template-columns:1fr}}@media(max-width:600px){.app-shell.battle-route-shell{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}.top-bar-compact{margin-bottom:4px}.top-bar-compact h1{font-size:1.8rem}.battle-arena{min-height:0;display:grid;grid-template-columns:1fr;align-content:start;gap:12px;overflow:visible;padding:12px}.enemy-card,.player-card{position:relative;inset:auto;width:min(100%,320px);max-width:min(100%,320px)}.enemy-card{justify-self:end}.player-card{justify-self:start}.enemy-card img,.player-card img{width:min(100%,240px)}.enemy-card img{display:block;margin-left:auto}.health-name{white-space:normal;overflow:visible;text-overflow:clip;flex-basis:100%}.battle.battle-active{height:calc(100dvh - 118px - env(safe-area-inset-bottom));min-height:0;overflow:hidden;padding:8px;gap:8px}.battle.battle-active .rival-trainer-callout{display:none}.battle.battle-active .battle-live-shell{min-height:0;gap:8px;grid-template-rows:minmax(0,1fr) auto}.battle.battle-active .battle-arena{min-height:0;padding:8px;gap:6px;overflow:hidden;grid-template-columns:1fr 1fr;align-items:start}.battle.battle-active .enemy-card,.battle.battle-active .player-card{width:100%;max-width:none;display:grid;gap:4px;align-content:start}.battle.battle-active .enemy-card img,.battle.battle-active .enemy-card .bug-portrait-flip-inner{width:min(100%,128px);margin-left:auto}.battle.battle-active .player-card img,.battle.battle-active .player-card .bug-portrait-flip-inner{width:min(100%,128px);margin-right:auto}.battle.battle-active .health{margin:0}.battle.battle-active .health-name,.battle.battle-active .health-level,.battle.battle-active .health-hp{font-size:10px}.battle.battle-active .actions{padding:8px;gap:6px;border-radius:10px}.battle.battle-active .actions h3{margin-bottom:2px;font-size:12px}.battle.battle-active .turn-indicator{margin-bottom:4px;font-size:11px}.battle.battle-active .tutorial-note{display:none}.battle.battle-active .battle-log{min-height:0;max-height:34px;margin-bottom:4px;overflow:hidden;font-size:11px}.battle.battle-active .battle-log p{margin:0}.battle.battle-active .battle-log p:not(:last-child){display:none}.battle.battle-active .move-description-box{display:none}.battle.battle-active .move-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.battle.battle-active .action{min-height:40px;font-size:.92rem;line-height:1.1;padding:6px;border-radius:8px}.battle.battle-active .move-type-hint{margin-top:2px;font-size:.58rem}.battle.battle-active .utility-row{margin-top:4px;gap:6px}.battle.battle-active .utility-row button,.battle.battle-active .utility-row select{min-height:38px;font-size:.9rem;padding:6px 8px}.battle-prep-screen{padding-bottom:calc(90px + env(safe-area-inset-bottom));gap:8px}.battle-prep-screen h2{margin:0;font-size:1.7rem}.battle-prep-screen .battle-prep-intro{display:none}.battle-prep-section{margin-bottom:0;padding-bottom:10px}.battle-prep-section h3{margin:0 0 8px;font-size:1.1rem}.prep-roster-grid{display:flex;gap:8px;margin-top:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-bottom:4px}.prep-roster-card{min-width:min(88vw,300px);padding:8px 10px;gap:10px;scroll-snap-align:start}.prep-roster-card img,.prep-bug-portrait,.prep-roster-card .bug-portrait-flip{width:42px;height:42px}.prep-card-info{gap:1px}.prep-card-name{font-size:14px}.prep-card-level{font-size:11px}.prep-card-stats{display:none}.prep-selected-badge{top:6px;right:8px}.inventory-summary{gap:6px;justify-content:flex-start;padding:0}.inventory-summary span{font-size:11px;padding:2px 6px}.battle-prep-actions{position:sticky;bottom:calc(6px + env(safe-area-inset-bottom));z-index:4;display:grid;gap:8px;grid-template-columns:1fr 1fr;padding:8px;border-radius:12px;border:1px solid #32513f;background:#122119f2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.battle-prep-actions .primary{grid-column:1 / -1;min-height:50px;font-size:1.05rem;font-weight:700}.battle-prep-actions .secondary{min-height:40px;display:inline-flex;align-items:center;justify-content:center}}@media(max-width:430px){.health-name,.health-level,.health-hp{font-size:10.5px}}@media(max-width:375px){.app-shell{padding:8px;padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom));padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}.health-name,.health-level,.health-hp{font-size:10px}.type-badge{font-size:.58rem;padding:1px 4px}.panel{padding:10px}}@media(max-width:360px){.enemy-card img,.player-card img{width:min(100%,220px)}}.trade-layout{display:grid;gap:12px}.trade-panel{display:grid;gap:10px}.trade-panel label{display:grid;gap:4px;font-size:13px}.trade-panel input,.trade-panel textarea,.trade-panel select{width:100%;border-radius:8px;border:1px solid #3d5f4c;background:#162118;color:var(--text);padding:8px}.trade-panel textarea{resize:vertical}.helper-text{margin:0;color:var(--muted);font-size:12px}.trade-grid{display:grid;gap:8px}.trade-bug-item{display:flex;align-items:center;gap:8px;font-size:.9rem}.trade-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:#243228;border:1px solid #3f664f;color:var(--text);border-radius:10px;padding:8px;text-align:left}.trade-row.active{border-color:var(--accent)}.social-row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.trade-review-card{border:1px solid #395542;border-radius:10px;padding:8px;background:#162118;display:grid;gap:6px}.trade-chip-list{display:flex;flex-wrap:wrap;gap:6px}.trade-chip{display:inline-block;border:1px solid #4f7e61;border-radius:999px;padding:2px 8px;background:#213327;color:#dff7bf;font-size:12px}.trade-confirm-check{display:flex!important;align-items:center;gap:8px}.friend-farm-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.friend-farm-card{border:1px solid #3f664f;border-radius:10px;background:#243228;padding:8px;display:grid;gap:6px;justify-items:center;text-align:center}.friend-farm-card img{width:min(120px,100%);border-radius:10px}.friend-farm-card p{margin:0}a.secondary{display:inline-block;text-decoration:none}.quest-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid #5a9c47;background:#5fbf4a26;color:#c8ddbb;font-size:12px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.quest-callout{margin:10px 0;padding:10px 12px;border:1px solid #5a9c47;border-radius:10px;background:#5fbf4a14}.quest-callout h3{margin:0 0 6px;font-size:14px;color:#c8ddbb;letter-spacing:.04em;text-transform:uppercase}.quest-callout p{margin:0 0 4px;font-size:13px;color:var(--muted)}.quest-callout-footer{margin-top:8px!important;color:#9cdc60!important;font-size:12px!important;font-style:italic}.streak-badge{display:inline-flex;align-items:center;gap:3px;background:#d98f392e;border:1px solid #d98f39;border-radius:12px;padding:2px 8px;font-size:12px;font-weight:700;color:#f5c46b;cursor:default}.quest-reset-label{font-size:11px;color:var(--muted);font-weight:400}.quest-complete-label{color:var(--primary)}.type-chart-screen{max-width:620px}.type-chart-intro{color:var(--muted);margin-bottom:16px}.type-chart-triangle{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;padding:14px 16px;background:#ffffff0a;border-radius:10px}.type-chart-rule{display:flex;align-items:center;gap:10px;font-size:15px}.type-arrow{color:var(--muted);font-size:13px}.type-chart-multipliers{display:grid;gap:6px;margin-bottom:20px}.multiplier-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:8px;font-size:14px}.multiplier-super{background:#5fbf4a26;border:1px solid rgba(95,191,74,.35)}.multiplier-neutral{background:#ffffff0f;border:1px solid rgba(255,255,255,.12)}.multiplier-weak{background:#c94b4b1f;border:1px solid rgba(201,75,75,.3)}.multiplier-value{font-weight:700;font-size:15px}.type-detail-list{display:grid;gap:12px;margin-bottom:20px}.type-detail-card{padding:14px 16px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1)}.type-detail-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.type-tagline{font-size:13px;color:var(--muted);font-style:italic}.type-matchup-row{display:flex;gap:16px;margin-top:10px;font-size:13px;flex-wrap:wrap}.type-chart-tips{margin-bottom:20px;padding:14px 16px;background:#8c52ff14;border:1px solid rgba(140,82,255,.25);border-radius:10px}.type-chart-tips ul{margin:8px 0 0;padding-left:20px;display:grid;gap:6px}.type-chart-tips li{font-size:13px;color:var(--muted)}.type-chart-actions{display:flex;gap:10px;flex-wrap:wrap}.status-badge{font-size:10px;font-weight:700;padding:1px 5px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.status-poison{background:#a750e640;color:#d08cf0;border:1px solid rgba(167,80,230,.5)}.status-burn{background:#e6783240;color:#f0a878;border:1px solid rgba(230,120,50,.5)}.stat-stage-hints{display:inline-flex;gap:4px;margin-left:4px}.stat-up{font-size:10px;font-weight:700;color:#7fdd5e}.stat-down{font-size:10px;font-weight:700;color:#e87a7a}.move-description-box{min-height:46px;padding:8px 12px;margin:6px 0;background:#ffffff0d;border-radius:8px;font-size:13px;color:var(--text);border:1px solid rgba(255,255,255,.1);line-height:1.5}.move-description-hint{color:var(--muted);font-style:italic}.move-meta{color:var(--muted);font-size:12px}.move-meta-effective{color:#7fdd5e;font-weight:700}.move-meta-weak{color:#e87a7a}.move-super{box-shadow:0 0 0 2px #5fbf4a80}.move-weak{opacity:.75}.move-effect-tag{font-size:9px;background:#8c52ff4d;color:#c4a5ff;padding:1px 4px;border-radius:3px;margin-left:4px;font-weight:700;text-transform:uppercase}.move-effective-tag{font-size:11px;color:#7fdd5e;margin-left:4px;font-weight:700}.log-status{color:#d08cf0}.session-complete-callout{margin:10px 0;padding:10px 14px;background:#5fbf4a1f;border:1px solid rgba(95,191,74,.4);border-radius:10px;font-size:13px;text-align:center}.session-complete-callout p{margin:0}.result-xp-line{font-size:22px;font-weight:700;color:#9cdc60;margin:0 0 4px;text-align:center}.result-reward-line{font-size:14px;color:var(--muted);text-align:center;margin:0 0 8px}.level-up-notice{font-size:16px;font-weight:700;color:#f5c46b;text-align:center;margin:8px 0}.inventory-summary{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted);padding:6px 0;justify-content:center}.inventory-summary span{background:#ffffff0f;border-radius:6px;padding:2px 8px}.inline-link{color:var(--primary);text-decoration:none;font-size:inherit}.inline-link:hover{text-decoration:underline}.rarity-common{--rarity-color: #a0a0a0}.rarity-uncommon{--rarity-color: #5fbf4a}.rarity-rare{--rarity-color: #4a99f0}.rarity-legendary{--rarity-color: #f5c46b}.collection-progress{margin-bottom:20px}.collection-pct{font-size:12px;color:var(--muted);margin:4px 0 0}.collection-tier{margin-bottom:24px}.collection-tier-heading{font-size:14px;text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px;color:var(--rarity-color, var(--muted));display:flex;align-items:center;gap:10px}.tier-count{font-size:12px;font-weight:400;color:var(--muted)}.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.collection-card{padding:12px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);transition:border-color .15s}.collection-card.found{border-color:color-mix(in srgb,var(--rarity-color, var(--muted)) 40%,transparent)}.collection-card-image{width:64px;height:64px;margin:0 auto 8px;display:flex;align-items:center;justify-content:center}.collection-card-image img{width:100%;height:100%;object-fit:contain}.collection-silhouette{width:64px;height:64px;background:#ffffff0f;border-radius:50%;border:2px dashed rgba(255,255,255,.15)}.collection-card-name{font-size:13px;font-weight:700;margin:0 0 4px;text-align:center}.collection-flavor{font-size:11px;color:var(--muted);margin:6px 0 0;line-height:1.4}.undiscovered-text{font-style:italic}.collection-card-info{text-align:center}.collection-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.battle-prep-screen .battle-prep-intro{color:var(--muted);margin-bottom:20px}.battle-prep-screen{display:grid;gap:10px}.battle-prep-section{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}.battle-prep-section:last-of-type{border-bottom:none}.prep-roster-grid{display:grid;gap:10px;margin-top:10px}.prep-roster-card{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#ffffff0a;border:2px solid rgba(255,255,255,.1);border-radius:10px;cursor:pointer;text-align:left;transition:border-color .15s;position:relative;color:var(--text);font:inherit}.prep-roster-card.selected{border-color:var(--primary);background:#5fbf4a14}.prep-roster-card img,.prep-bug-portrait,.prep-roster-card .bug-portrait-flip{width:48px;height:48px;object-fit:contain}.prep-card-info{display:grid;gap:2px}.prep-card-name{font-weight:700;margin:0;font-size:15px}.prep-card-level,.prep-card-stats{margin:0;font-size:12px;color:var(--muted)}.prep-selected-badge{position:absolute;top:8px;right:10px;font-size:11px;font-weight:700;color:var(--primary);background:#5fbf4a26;border-radius:4px;padding:1px 6px}.battle-prep-actions{display:flex;gap:10px;flex-wrap:wrap}.battle-prep-actions .secondary{text-decoration:none}.onboarding-screen{max-width:480px;margin:0 auto;text-align:center}.onboarding-progress{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.onboarding-dot{width:8px;height:8px;border-radius:50%;background:#fff3;transition:background .2s}.onboarding-dot.active{background:var(--primary)}.onboarding-dot.done{background:#5fbf4a80}.onboarding-content{margin-bottom:32px}.onboarding-emoji{font-size:64px;line-height:1;margin-bottom:16px}.onboarding-title{margin:0 0 12px}.onboarding-body{color:var(--muted);font-size:15px;line-height:1.6;margin:0}.onboarding-actions{display:flex;flex-direction:column;gap:10px;align-items:center}.farm-toolbar-primary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.farm-select-label{display:flex;align-items:center;gap:6px;font-size:13px}.farm-manage-panel{position:relative}.farm-manage-toggle{font-size:12px;padding:4px 10px}.farm-manage-drawer{position:absolute;top:calc(100% + 6px);left:0;z-index:50;background:var(--surface);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:12px;min-width:260px;display:grid;gap:8px;box-shadow:0 8px 24px #0006}.farm-manage-tip{margin:0;font-size:11px;color:var(--muted)}.starter-name{font-weight:700;display:block;margin-bottom:4px}.starter-flavor{font-size:11px;color:var(--muted);margin:6px 0 0;line-height:1.4;font-style:italic}.rival-trainer-callout{padding:10px 14px;background:#d98f391a;border:1px solid rgba(217,143,57,.3);border-radius:10px;margin-bottom:10px}.rival-trainer-name{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#f5c46b;display:block;margin-bottom:4px}.rival-trainer-taunt{margin:0;font-size:13px;color:var(--text);font-style:italic;line-height:1.5}.rival-farewell{font-size:13px;color:var(--muted);font-style:italic;text-align:center;margin:6px 0 10px;line-height:1.5}.rival-farewell-name{font-style:normal;font-weight:700;color:#f5c46b}.achievement-toast{background:#8c52ff33;border:1px solid rgba(140,82,255,.5);color:#c4a5ff;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:600}.achievement-grid{display:grid;gap:10px;margin-bottom:20px}.achievement-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff08}.achievement-card.unlocked{border-color:#8c52ff59;background:#8c52ff14}.achievement-icon{font-size:28px;line-height:1;flex-shrink:0}.achievement-name{font-size:14px;font-weight:700;margin:0 0 3px}.achievement-desc{font-size:12px;color:var(--muted);margin:0;line-height:1.4}
