:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#102331;background-color:#d7ecff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:block;min-width:320px;min-height:100vh;overflow:hidden;background:linear-gradient(135deg,#d7ecff,#dff7e7 45%,#fff4c7);color:#102331}h1{font-size:2.5rem;line-height:1.1;color:#154360;text-shadow:0 2px 8px rgba(255,255,255,.35);font-family:Impact,sans-serif;margin:0}button{border-radius:12px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s,transform .2s,box-shadow .2s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:3px solid rgba(116,185,255,.95);outline-offset:2px}:root{--ui-texture-panel: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA1SURBVDhPY3j15T9ZIG/Fzf8gvQwgzrUXP0jCowaMGgDCw9EAcgDcABCDXAw2AESQj///BwAwwrGozv6aNAAAAABJRU5ErkJggg==);--ui-texture-panel-dark: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAvSURBVDhPY1Aw9fhPDq4/8R9Mgw3Q8UgkGY8aMGoACI8agGQAiEEuhruAfOzxHwBemPEtSss99AAAAABJRU5ErkJggg==);--ui-texture-button: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA1SURBVDhPY0i7mP+fHCxfpQGmwQbMfj2TZDzcDHDbGUAyHjVg1AAQhhsAYpCL4S4gH+f/BwCHbHv/bDh60wAAAABJRU5ErkJggg==);--ui-texture-button-pressed: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA1SURBVDhPY7Ca5/yfHCwSIwumwQbotpqRjEcNGDUAhAeZASU3akjG1DMAxCAXw11APnb+DwBsM/8PBR9zowAAAABJRU5ErkJggg==);--ui-texture-grass: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABISURBVDhPY1CeY/qfHCxerAGmwQZ43I6FY2L5IANA9CAxgBw8GgZoYWBywguOieWDDADRg8QAcjD1wgDEIBeDDSDXBRDs9R8AcoEh/7bqYooAAAAASUVORK5CYII=);--ui-texture-warning: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABeSURBVDhPY/h/Nfs/Mv623QYF45LfmsUApoeDATABGMalAV0eZACIHg4GwARgGJcGdHl4IOJSAMO45AeRATABGMalAV0eHoi4FMAwLnm4ASAGuRhsAC4bYBi/fPZ/ANM4998cmOa7AAAAAElFTkSuQmCC);--ui-texture-highlight: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAATSURBVDhPYxgFo2AUjAIwYGAAAAQQAAGnRHxjAAAAAElFTkSuQmCC);--ui-texture-hp: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAwSURBVDhPY9A7U/gfG/54hB8DP/exgWNpaWkwPWrAqAGjBlDLABCDXEyRCyDY5j8AnoxlOBtaZDwAAAAASUVORK5CYII=);--ui-texture-log: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAA6SURBVDhPY/hPJmjf+wJMgw24+eYXWXgQGfD5xx+SMUoYYFNACI8aMGoACMMNADHIxWADwCTZ4P9/AM5M0ZxghqRdAAAAAElFTkSuQmCC);--poke-red: #cc1a1a;--poke-red-dark: #8e0000;--poke-red-light: #e83030;--poke-navy: #1c2f5e;--poke-navy-dark: #0e1c3a;--poke-gold: #f8d43a;--poke-gold-dark: #b88800;--poke-green: #28aa3c;--poke-green-dark: #1a6c28;--ink-900: #0d1721;--ink-800: #182840;--ink-700: #2c4260;--sky-500: #3d88d4;--sky-700: #1a5498;--gold-400: #ffd740;--gold-500: #e8b800;--panel-shadow: 0 8px 24px rgba(10, 20, 50, .14), 0 2px 6px rgba(10, 20, 50, .08)}#root{width:100%;max-width:none;min-height:100vh;margin:0;padding:8px;box-sizing:border-box;font-family:Nunito,Segoe UI,system-ui,-apple-system,sans-serif;background:radial-gradient(ellipse at 15% 0%,rgba(255,255,255,.5) 0%,transparent 42%),linear-gradient(168deg,#90c8f8,#b4deff 22%,#d0eeff 38%,#dff5d0,#b0e490 72%,#88d060);color:var(--ink-900);text-align:left}.pixel-art,img.pixel-art{image-rendering:pixelated;image-rendering:crisp-edges}.section-kicker{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.35rem;color:var(--poke-red);font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.section-kicker:before{content:"";display:inline-block;width:3px;height:.85em;border-radius:2px;background:currentColor;flex-shrink:0}.shell-copy{margin:.45rem 0 0;color:var(--ink-700);font-weight:700;font-size:.92rem}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.panel-heading.compact{margin-bottom:.5rem}.panel-heading h2,.panel-heading h3,.moves-section h3,.battle-log-panel h3{margin:0}.status-banner{margin:0;padding:.75rem 1rem .75rem 1.1rem;border-radius:14px;border:2px solid rgba(60,120,200,.32);border-left:5px solid var(--sky-500);background:#e8f4fff5;box-shadow:var(--panel-shadow);color:var(--ink-900);font-weight:800;text-align:left}.status-banner.error,.status-banner.danger{border-color:#b41e1e59;border-left-color:var(--poke-red);background:#ffe4e0f5;color:#7a1515}.status-banner.success{border-color:#288c3c52;border-left-color:var(--poke-green);background:#daf8e2f5;color:#145a24}.status-banner.warning{border-color:#b4781452;border-left-color:var(--gold-500);background:#fff4d0f5;color:#6a4400}.center-status-banner{margin:0;align-self:center;width:min(100%,560px);box-shadow:0 12px 24px #0a143233}.battle-status-banner{position:absolute;top:.85rem;left:50%;z-index:5;width:min(calc(100% - 1.5rem),560px);margin:0;transform:translate(-50%);box-shadow:0 12px 24px #0a14323d;pointer-events:none}.buttons,.menu-actions,.battle-actions,.camp-service-grid{display:flex;flex-wrap:wrap;gap:.75rem}.buttons,.menu-actions{justify-content:center;align-items:center}.menu-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}.buttons button,.menu-actions>button,.battle-actions button,.camp-service-grid button{border:none;border-radius:12px;padding:.72rem 1.1rem;background:linear-gradient(180deg,#52a4ec,#1c68c4);border-bottom:4px solid #0e4890;color:#fff;font-family:inherit;font-size:.92rem;font-weight:900;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 4px 12px #124ea54d;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,border-bottom-width .1s ease}.buttons button:hover,.menu-actions>button:hover,.battle-actions button:hover,.camp-service-grid button:hover{transform:translateY(-2px);box-shadow:0 6px 18px #124ea561}.buttons button:active,.menu-actions>button:active,.battle-actions button:active,.camp-service-grid button:active{transform:translateY(1px);border-bottom-width:2px;box-shadow:0 2px 6px #124ea533}.buttons button:disabled,.menu-actions>button:disabled,.battle-actions button:disabled,.camp-service-grid button:disabled{opacity:.5;cursor:not-allowed;transform:none}.priority-button{background:linear-gradient(180deg,#5ac468,#2a8c3a)!important;border-bottom-color:#196028!important}.cemetery-button{background:linear-gradient(180deg,#3b3b3b,#111)!important;border-bottom-color:#000!important;box-shadow:0 4px 12px #00000052!important}.icon-square-button{position:relative;display:inline-grid!important;place-items:center;width:54px;min-width:54px;min-height:54px;padding:0!important}.button-icon{width:18px;height:18px;opacity:.96}.with-icon{display:inline-flex!important;align-items:center;justify-content:center;gap:.42rem}.with-icon .button-icon{width:15px;height:15px}.icon-button-count{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 .28rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#ff7a7a,#d11f1f);border:2px solid #7a0f0f;color:#fff4f4;font-size:.7rem;font-weight:900;line-height:1;box-sizing:border-box}.release-button,.catch-button{background:linear-gradient(180deg,#e86040,#bc3020)!important;border-bottom-color:#7e1512!important}.switch-button{background:linear-gradient(180deg,#8a7aec,#5848c8)!important;border-bottom-color:#3828a4!important}.switch-button.active{background:linear-gradient(180deg,#6a58dc,#4434b4)!important;border-bottom-color:#281895!important;box-shadow:0 0 0 3px #6450dc40,0 4px 12px #4636aa4d!important}.game-container,.menu-screen{height:calc(100vh - 16px);display:grid;gap:.65rem;max-width:1520px;margin:0 auto}.game-container{position:relative;grid-template-rows:auto auto minmax(0,1fr)}.game-container.screen-shake{animation:screen-shake .18s linear infinite}.game-container.is-doomed>:not(.death-overlay):not(.modal):not(.cemetery-memorial-overlay){pointer-events:none;-webkit-user-select:none;user-select:none}.game-main{min-height:0;height:100%;display:grid;grid-template-columns:250px minmax(0,1fr) 340px;gap:.75rem}.game-shell-header,.menu-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding:.75rem 1rem;border-radius:18px;background:linear-gradient(135deg,#cc1a1a,#a01010 55%,#7a0808);border:2px solid rgba(0,0,0,.22);border-bottom:4px solid rgba(0,0,0,.35);box-shadow:0 8px 28px #8c0a0a4d,0 2px 8px #00000026}.game-shell-header h1,.menu-header h1{color:#fff;text-shadow:1px 2px 0 rgba(0,0,0,.35);margin:0}.game-shell-header .section-kicker{color:var(--poke-gold)}.game-shell-header .section-kicker:before{background:var(--poke-gold)}.game-shell-header .shell-copy{color:#ffffffd1}.menu-screen{grid-template-rows:auto auto auto minmax(0,1fr);max-width:1440px}.menu-header{flex-direction:column}.menu-header p{margin:.4rem 0 0;color:#ffffffd9;font-weight:700}.menu-start-panel{display:grid;justify-items:center;gap:.9rem}.trainer-name-card,.trainer-picker-card,.menu-sort-panel{display:grid;gap:.55rem;padding:.95rem 1rem;border-radius:18px;background:linear-gradient(180deg,#fffffffa,#e9eff5f5);border:2px solid rgba(21,42,84,.14);border-bottom:4px solid rgba(21,42,84,.2);box-shadow:0 12px 24px #12284d1f}.trainer-name-card{width:min(100%,620px);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.85rem}.trainer-picker-card{width:min(100%,620px);gap:.8rem}.trainer-name-main,.trainer-name-field,.trainer-picker-field{display:grid;gap:.55rem}.trainer-name-main{min-width:0}.trainer-name-label,.menu-sort-label{color:var(--ink-800);font-size:.8rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.trainer-name-input{width:100%;border-radius:14px;border:2px solid rgba(31,63,120,.14);background:#fff;padding:.85rem 1rem;color:var(--ink-900);font-family:inherit;font-size:1rem;font-weight:800;box-sizing:border-box;outline:none;transition:border-color .18s ease,box-shadow .18s ease}.trainer-name-input:focus{border-color:#1d68c48c;box-shadow:0 0 0 4px #1d68c424}.trainer-picker-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.trainer-picker-copy{margin:.3rem 0 0;color:var(--ink-700);font-weight:700;font-size:.9rem}.trainer-picker-preview{display:flex;align-items:flex-end;gap:.7rem;padding:.55rem .75rem;border-radius:16px;background:#e2eef7d1;border:1px solid rgba(106,147,181,.24);flex-shrink:0}.trainer-picker-map-preview{width:32px;height:32px}.trainer-picker-battle-preview{width:36px;height:96px;object-fit:contain}.trainer-picker-select{width:100%;border-radius:14px;border:2px solid rgba(31,63,120,.14);background:#fff;padding:.85rem 1rem;color:var(--ink-900);font-family:inherit;font-size:1rem;font-weight:800;box-sizing:border-box;outline:none;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease}.trainer-picker-select:focus{border-color:#1d68c48c;box-shadow:0 0 0 4px #1d68c424}.start-adventure-button{min-width:220px;min-height:74px;padding:1rem 1.7rem!important;font-size:1.12rem!important;background:linear-gradient(180deg,#5ac468,#2a8c3a)!important;border-bottom-color:#196028!important;box-shadow:0 8px 24px #1d6e2b47!important;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.32)!important}.menu-sort-panel{min-width:220px;justify-self:end}.menu-sort-buttons{flex-direction:column;align-items:stretch}.menu-sort-buttons button{width:100%;justify-content:center;background:linear-gradient(180deg,#fff,#e8eef4)!important;border:1px solid rgba(19,39,79,.16);border-bottom:4px solid rgba(19,39,79,.24);color:var(--ink-900)!important;text-shadow:none!important;box-shadow:0 6px 16px #12284d1f!important}.menu-sort-buttons button:hover{box-shadow:0 10px 20px #12284d29!important}.menu-sort-buttons button:active{box-shadow:0 4px 10px #12284d1a!important}.adventure-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:.65rem;min-width:min(100%,440px)}.metric-chip,.route-status-pill{display:flex;flex-direction:column;justify-content:center;gap:.15rem;padding:.65rem .85rem;border-radius:14px;border:2px solid rgba(255,255,255,.16);border-bottom:3px solid rgba(0,0,0,.3);background:linear-gradient(160deg,var(--poke-navy) 0%,var(--poke-navy-dark) 100%);box-shadow:0 4px 12px #0a143747,inset 0 1px #ffffff1a;text-align:center}.metric-chip span,.route-status-pill{color:#aacaffe6;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.metric-chip strong{color:#fff;font-size:1.3rem;text-shadow:0 1px 4px rgba(0,0,0,.4)}.metric-chip.highlight,.route-status-pill.clear,.route-status-pill.switch-state{background:linear-gradient(160deg,#7a5400,#4a3000);border-color:#f8d43a4d}button.route-status-pill{font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;transition:filter .12s,transform .1s}button.route-status-pill:hover{filter:brightness(1.18);transform:translateY(-1px)}button.route-status-pill:active{transform:translateY(0);filter:brightness(.95)}.metric-chip.warning{background:linear-gradient(160deg,#881010,#500808);border-color:#ff645047}.dev-route-controls{margin-top:.45rem;display:inline-flex;gap:.45rem}button.route-status-pill.dev-route-step{min-width:44px;padding:.45rem .55rem;font-size:1rem;line-height:1}.dev-mode-grid{margin-top:.25rem}.first-person-view{position:relative;width:100%;height:100%;min-height:320px;border-radius:14px;overflow:hidden;background:#080d17;border:2px solid rgba(110,150,210,.22)}.first-person-view canvas{width:100%;height:100%;display:block;cursor:crosshair}.first-person-hint{position:absolute;top:.65rem;left:50%;transform:translate(-50%);margin:0;padding:.35rem .58rem;border-radius:8px;background:#080c14a8;color:#e2eeffe6;font-size:.72rem;font-weight:700;letter-spacing:.03em;pointer-events:none}.fps-mobile-controls{display:none}.game-main{min-height:0;display:grid;grid-template-columns:250px minmax(0,1fr) 340px;gap:.75rem}.team-sidebar{min-height:0;height:100%;overflow:hidden;display:flex;flex-direction:column}.team-sidebar .team-panel{flex:1;min-height:0;display:grid!important;grid-template-rows:auto minmax(0,1fr);gap:.55rem}.team-sidebar .team-display{grid-auto-flow:row!important;grid-auto-columns:auto!important;overflow-x:hidden!important;overflow-y:auto!important;padding-bottom:.25rem;padding-right:.1rem}.center-view{min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr)}.center-view .map{--cell-size: clamp(32px, 3.5vw, 44px)}.action-sidebar{min-height:0;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;overflow:hidden}.map-panel,.camp-panel,.team-panel,.battle-visual-panel,.battle-command-panel,.battle-log-panel,.pokemon-grid-wrapper{min-height:0;border-radius:20px;border:2px solid rgba(110,168,220,.6);background:linear-gradient(175deg,#fcfffff7,#ecf6fcfa);box-shadow:var(--panel-shadow),inset 0 1px #fffc}.map-panel{border-top:4px solid var(--poke-green)}.camp-panel{border-top:4px solid #c07830}.team-panel{border-top:4px solid var(--sky-500)}.battle-visual-panel,.battle-command-panel{border-top:4px solid var(--poke-red)}.battle-log-panel{border-top:4px solid var(--poke-navy)}.map-panel,.camp-panel,.team-panel,.battle-visual-panel,.battle-command-panel,.battle-log-panel{padding:.75rem}.map-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:.6rem;overflow:hidden;width:100%}.map-frame{position:relative;min-height:0;display:grid;place-items:center;overflow:auto;padding:0;border-radius:18px;background:#e1edf7b3}.map-surface{--cell-size: clamp(30px, 2.35vw, 40px);position:relative;width:fit-content}.route-transition-shell{display:grid;position:relative;width:fit-content;overflow:hidden}.route-map-layer{grid-area:1 / 1;transition:transform .72s cubic-bezier(.2,.85,.2,1),opacity .72s ease}.route-map-layer.previous{transform:translate(0);opacity:1}.route-map-layer.next{transform:translate(108%);opacity:.92}.route-transition-shell.active .route-map-layer.previous{transform:translate(-108%);opacity:.72}.route-transition-shell.active .route-map-layer.next{transform:translate(0);opacity:1}.map{display:grid;grid-template-columns:repeat(10,var(--cell-size));grid-auto-rows:var(--cell-size);justify-content:center;gap:4px;padding:.8rem;border-radius:16px;background:linear-gradient(155deg,#0c2234,#18384e 55%,#0e2c40);box-shadow:inset 0 2px 14px #00000080}.map-legend{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center;align-items:center;color:var(--ink-800);font-weight:800}.map-legend span{display:inline-flex;align-items:center;gap:.45rem}.route-title{margin:0}.route-title.route-title-advance{animation:route-title-advance .9s cubic-bezier(.2,.9,.2,1)}.legend-player-icon,.map-player-token{width:32px;height:32px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.4))}.map-player-overlay{position:absolute;top:0;left:0;z-index:4;pointer-events:none;transform:translate(-50%,-50%);transition:left .11s linear,top .11s linear;will-change:left,top}.map-player-inline{position:relative;z-index:4}.map-dead-token{width:clamp(22px,2.6vw,34px);height:clamp(22px,2.6vw,34px);opacity:.82;position:relative;z-index:2;pointer-events:none;transform:translate(calc(var(--cell-size) * var(--body-offset-x, 0)),calc(var(--cell-size) * var(--body-offset-y, 0))) rotate(var(--body-rotation, 82deg)) scale(var(--body-scale, .86));filter:grayscale(1) brightness(.82) drop-shadow(0 2px 3px rgba(0,0,0,.38))}.route-status-pill.transitioning{animation:route-pill-advance .9s ease}.legend-dot,.map-token{width:.9rem;height:.9rem;display:inline-block;border-radius:999px}.legend-dot.wild,.map-token.wild{background:radial-gradient(circle at 30% 30%,#fff4a6,#ffc531 65%,#c77c12);box-shadow:0 0 0 2px #fff9,0 0 10px #ffc53161}.map-cell{display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid rgba(10,30,44,.55);background:linear-gradient(145deg,#3aaa4e,#288038 55%,#1a6025);box-shadow:inset 0 1px #ffffff24}.map-cell.pokemon{background:linear-gradient(145deg,#f8d040,#c89018 55%,#9a6008);border-color:#be820abf;box-shadow:inset 0 1px #fff3,0 0 8px #daa51e59;animation:wild-pulse 2s ease-in-out infinite}@keyframes wild-pulse{0%,to{box-shadow:inset 0 1px #fff3,0 0 6px #daa51e4d}50%{box-shadow:inset 0 1px #fff3,0 0 16px #f8c82899}}.map-cell[data-player=true]{border-color:#50a0fff2;box-shadow:0 0 0 2px #78beff4d,inset 0 0 0 1px #ffffff8c}.route-footer-copy{margin:0;padding:.45rem .75rem;border-radius:10px;background:#0e1c2ee0;color:#c3dcffeb;font-size:.84rem;font-weight:700;text-align:center}.camp-panel{display:grid;gap:.65rem;overflow:auto}.instruction-card-list{display:grid;gap:.65rem}.instruction-card{padding:.55rem .7rem .55rem .85rem;border-radius:12px;background:#daeaf8d9;border:1px solid rgba(90,138,188,.28);border-left:3px solid var(--sky-500)}.instruction-card strong{display:block;margin-bottom:.25rem;color:var(--ink-800)}.instruction-card p{margin:0;color:var(--ink-700);font-weight:700}.team-panel{display:grid;gap:.55rem;overflow:hidden}.team-display{display:grid;grid-auto-flow:row;gap:.45rem;overflow-x:hidden;overflow-y:auto;padding-right:.2rem}.team-pokemon{display:flex;gap:.45rem;align-items:flex-start;min-width:0;padding:.6rem;border-radius:14px;border:2px solid rgba(110,150,195,.32);border-top:3px solid rgba(80,140,210,.55);background:linear-gradient(172deg,#fffffff7,#eef8fff2);cursor:pointer;transition:border-color .18s ease,transform .15s ease,box-shadow .18s ease;box-shadow:0 2px 8px #19376414}.team-pokemon:hover{transform:translateY(-2px);border-color:#3782e194;box-shadow:0 6px 16px #1950aa24}.team-pokemon.active{border-color:var(--poke-gold-dark);border-top-color:var(--poke-gold);background:linear-gradient(172deg,#fffadcfa,#fcf0b2f2);box-shadow:0 0 0 3px #f8d43a33,0 4px 12px #aa780024}.team-pokemon.switch-target{border-color:#5f4fdab8;box-shadow:0 0 0 3px #5f4fda29}.team-pokemon.fainted{opacity:.64;filter:grayscale(1)}.team-pokemon img{width:44px;height:44px;flex-shrink:0}.pokemon-info{min-width:0;flex:1;display:grid;gap:.45rem}.team-card-header,.move-card-header,.hud-meta,.team-card-stats,.move-stats-row{display:flex;gap:.45rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.pokemon-name{color:var(--ink-900);font-weight:900;text-transform:capitalize}.move-name{display:inline-flex;align-items:center;gap:.32rem;padding:.25rem .5rem;border-radius:7px;background:var(--type-bg, #dce7f6);color:var(--type-text, #1e3951);border:1px solid var(--type-border, #8aa3c4);font-weight:900;font-size:.82rem;line-height:1.2;text-transform:capitalize;width:100%;box-sizing:border-box}.move-type-icon{width:.82rem;height:.82rem;flex-shrink:0;display:block}.team-state-badge{padding:.22rem .5rem;border-radius:999px;font-size:.72rem;font-weight:900;text-transform:uppercase}.team-state-badge.active{background:#f4cb5842;color:#8c6400}.team-state-badge.ready{background:#6db97d38;color:#27663a}.team-state-badge.fainted{background:#d6747438;color:#842727}.team-card-stats p,.combat-hud p,.idle-summary p,.move-power,.move-type{margin:0;color:var(--ink-700);font-weight:800;font-size:.84rem}.team-card-actions{display:flex;justify-content:flex-end}.kill-pokemon-button{border:none;border-radius:10px;width:40px;min-width:40px;min-height:40px;padding:0;background:linear-gradient(180deg,#3e3e3e,#171717);border-bottom:3px solid #060606;display:inline-grid;place-items:center;cursor:pointer}.kill-pokemon-button .button-icon{width:16px;height:16px}.kill-pokemon-button:hover{transform:translateY(-1px)}.kill-pokemon-button:disabled{opacity:.45;cursor:not-allowed}.hp-bar{width:100%;height:14px;overflow:hidden;border-radius:999px;background:#3d5365;border:2px solid rgba(21,50,71,.85)}.hp-bar.battle{height:18px}.hp-fill{height:100%;background-color:#28cc50;border-radius:inherit;transition:width .35s ease,background-color .45s ease}.hp-fill.mid{background-color:#d8c000}.hp-fill.low{background-color:#d83020}.type-badge-row{display:flex;flex-wrap:wrap;gap:.45rem}.type-badge-row.compact .type-badge{padding:.28rem .45rem}.type-badge{--type-bg: #dce7f6;--type-border: #8aa3c4;--type-text: #1e3951;display:inline-flex;align-items:center;gap:.32rem;padding:.32rem .55rem;border-radius:999px;border:1px solid var(--type-border);background:var(--type-bg);color:var(--type-text);font-size:.72rem;font-weight:900;text-transform:uppercase}.type-badge svg{width:.9rem;height:.9rem;flex-shrink:0;display:block}.type-icon-sprite-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.type-badge.type-normal{--type-bg: #e2ddd0;--type-border: #b8af95;--type-text: #5a5445}.type-badge.type-fire{--type-bg: #ffd8cf;--type-border: #ea8f74;--type-text: #943d1f}.type-badge.type-water{--type-bg: #d5e8ff;--type-border: #7ea9e6;--type-text: #24548d}.type-badge.type-electric{--type-bg: #fff1b8;--type-border: #d8b94e;--type-text: #8a6910}.type-badge.type-grass{--type-bg: #d9f0c8;--type-border: #8ab26b;--type-text: #2f6d28}.type-badge.type-ice{--type-bg: #d7f7f7;--type-border: #84c9ce;--type-text: #2b7681}.type-badge.type-fighting{--type-bg: #f1d1c8;--type-border: #c88367;--type-text: #7d3423}.type-badge.type-poison{--type-bg: #e7d2f7;--type-border: #a67cc8;--type-text: #633e8d}.type-badge.type-ground{--type-bg: #ead7b8;--type-border: #bd9b5e;--type-text: #785623}.type-badge.type-flying{--type-bg: #dde3ff;--type-border: #9aa5eb;--type-text: #4450a1}.type-badge.type-psychic{--type-bg: #ffd8eb;--type-border: #e58fb4;--type-text: #9d3568}.type-badge.type-bug{--type-bg: #e1f0bb;--type-border: #9cb85a;--type-text: #51691e}.type-badge.type-rock{--type-bg: #ece1cc;--type-border: #b8a17a;--type-text: #6d5731}.type-badge.type-ghost{--type-bg: #ddd8f3;--type-border: #8e84be;--type-text: #4d4377}.type-badge.type-dragon{--type-bg: #d7dbff;--type-border: #7d88d8;--type-text: #2e3f92}.type-badge.type-dark{--type-bg: #d7d7e1;--type-border: #8f8f9f;--type-text: #373747}.type-badge.type-steel{--type-bg: #dde4ea;--type-border: #93a5b4;--type-text: #485b69}.type-badge.type-fairy{--type-bg: #ffe0f5;--type-border: #de95c5;--type-text: #9a4178}.battle-visual-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:0;overflow:hidden;height:100%}.battle-visual-panel .combat-hud{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .65rem;padding:.6rem .9rem;background:#fffffff7;border-radius:0;border:none;border-bottom:2px solid rgba(110,168,220,.3);box-shadow:none}.battle-visual-panel .combat-hud>div:first-child{flex:1 1 100px}.battle-visual-panel .combat-hud h3{margin:0;font-size:1.1rem;font-weight:800}.battle-visual-panel .combat-hud .hud-meta{flex:0 0 auto;font-size:.84rem}.battle-visual-panel .combat-hud .type-badge-row{flex:0 0 auto}.battle-visual-panel .combat-hud .hp-bar{width:100%;order:5;height:10px;margin-top:.3rem}.battle-visual-panel .combat-hud>p{width:100%;order:6;margin:.2rem 0 0;font-size:.78rem;font-weight:700;color:var(--ink-700)}.battle-visual-panel .combat-hud.enemy{border-top:4px solid var(--poke-red);border-radius:18px 18px 0 0;background:linear-gradient(180deg,#dc282821,#ffcdcdb3 60%,#ffe6e6e6);box-shadow:inset 0 -1px #c81e1e1f;text-align:right}.battle-visual-panel .combat-hud.enemy .hud-meta{order:-1}.battle-visual-panel .combat-hud.enemy .type-badge-row{order:-2;justify-content:flex-start}.battle-visual-panel .combat-hud.player{border-top:4px solid var(--sky-500);border-bottom:none;border-radius:0 0 18px 18px;background:linear-gradient(180deg,#cde6ffcc,#bedcffa6 60%,#e6f5ffe0);box-shadow:inset 0 1px #1e78c81f;order:1}.battle-visual-panel .battlefield{min-height:0;height:100%}.battle-command-panel{display:grid;gap:.55rem;overflow:auto}.field-status-header,.field-avatar-badge,.idle-summary,.battle-stage-header,.battle-scene-shell,.battle-command-deck,.combat-hud{display:grid;gap:.75rem}.field-status-header,.battle-stage-header{grid-template-columns:minmax(0,1fr) auto;align-items:start}.field-status-header p,.battle-phase-copy{margin:0;color:var(--ink-700);font-weight:700}.field-avatar-badge{grid-auto-flow:column;align-items:center;gap:.6rem;padding:.7rem .85rem;border-radius:16px;background:#e2eef7d1;border:1px solid rgba(106,147,181,.24)}.field-avatar-badge img{width:24px;height:24px}.field-avatar-badge strong,.trainer-sprite-card span{color:var(--ink-900)}.field-avatar-badge span{display:block;color:var(--ink-700);font-size:.82rem;font-weight:800}.idle-scene-grid{display:grid;grid-template-columns:1.2fr .9fr;gap:.65rem}.idle-summary-card,.combat-hud,.battle-command-deck{padding:.65rem;border-radius:16px;border:1px solid rgba(106,147,181,.25);background:#ffffffdb}.idle-summary{grid-template-columns:auto minmax(0,1fr);align-items:center}.idle-summary img{width:76px;height:76px}.summary-stat-list{display:grid;gap:.65rem}.summary-stat-list div{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .6rem;border-radius:14px;background:#e2eef7b8}.summary-stat-list span{color:var(--ink-700);font-weight:800}.summary-stat-list strong{color:var(--ink-900)}.battle-scene-shell{grid-template-columns:minmax(200px,.8fr) minmax(0,1.35fr) minmax(200px,.8fr);align-items:stretch;gap:.55rem}.combat-hud{align-content:start}.hud-meta{color:var(--ink-700);font-weight:900}.battlefield{position:relative;min-height:252px;border-radius:18px;overflow:hidden;background-color:#1a1a2e;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:36px 36px;animation:grid-scroll 7s linear infinite;border:2px solid rgba(255,255,255,.1);box-shadow:0 4px 24px #0006,inset 0 1px #ffffff14}@keyframes grid-scroll{0%{background-position:0 0,0 0}to{background-position:18px 36px,36px 12px}}.battle-platform{position:absolute;border-radius:50%;background:radial-gradient(ellipse at center,rgba(120,180,255,.18) 0%,rgba(80,140,255,.08) 55%,transparent 100%);border:1px solid rgba(120,180,255,.15);filter:blur(1px);z-index:0}.enemy-platform{right:30px;top:calc(8% + 108px);width:130px;height:26px}.player-platform{left:90px;bottom:calc(16% - 10px);width:150px;height:30px}.battle-mon{position:absolute;width:128px;height:128px;image-rendering:pixelated;image-rendering:crisp-edges;z-index:1;filter:drop-shadow(0 8px 8px rgba(0,0,0,.22))}.battle-mon.enemy{right:36px;top:8%;animation:enemy-float 14s ease-in-out infinite}.battle-mon.player{left:108px;bottom:16%;transform:scaleX(-1);animation:player-float 16s ease-in-out infinite}.trainer-sprite-card{position:absolute;left:8px;bottom:16%;padding:0;background:none;border:none;z-index:2;display:grid;place-items:end center;filter:drop-shadow(0 6px 12px rgba(16,35,49,.4));animation:trainer-float 18s ease-in-out infinite}.trainer-sprite-card img{grid-area:1 / 1}.trainer-portrait{width:72px;height:192px;display:block;image-rendering:pixelated;image-rendering:crisp-edges}.trainer-ghost-duplicate{opacity:.45;transform:translate(7px,-3px) scale(1.04);mix-blend-mode:screen}.battle-mon.enemy.is-attacking{animation:enemy-attack .32s ease-in-out}.battle-mon.player.is-attacking{animation:player-attack .32s ease-in-out}.battle-mon.enemy.is-hit{animation:enemy-hit .42s steps(2,end)}.battle-mon.player.is-hit{animation:player-hit .42s steps(2,end)}.battle-mon.enemy.is-dead{animation:enemy-death .9s ease forwards}.battle-mon.player.is-dead{animation:player-death .9s ease forwards}.trainer-sprite-card.is-dead{animation:trainer-death 1s cubic-bezier(.2,.82,.2,1) forwards}.trainer-sprite-card.is-glitching{animation:trainer-glitch .12s steps(2,end) 2}.battle-visual-panel.intro .combat-hud.enemy{animation:hud-drop-in .72s cubic-bezier(.2,.9,.2,1)}.battle-visual-panel.intro .combat-hud.player{animation:hud-rise-in .72s cubic-bezier(.2,.9,.2,1)}.battle-visual-panel.intro .battle-mon.enemy{animation:enemy-entry .78s cubic-bezier(.12,.9,.2,1) forwards}.battle-visual-panel.intro .battle-mon.player{animation:player-entry .78s cubic-bezier(.12,.9,.2,1) forwards}.battle-visual-panel.intro .trainer-sprite-card{animation:trainer-entry .82s cubic-bezier(.12,.9,.2,1) forwards}.battle-visual-panel.outro-victory .battlefield,.battle-visual-panel.outro-catch .battlefield,.battle-visual-panel.outro-loss .battlefield{animation:battlefield-outro .78s ease forwards}.battle-visual-panel.outro-victory .combat-hud,.battle-visual-panel.outro-catch .combat-hud,.battle-visual-panel.outro-loss .combat-hud{animation:hud-fade-out .65s ease forwards}.move-button:disabled{opacity:.58;cursor:not-allowed;transform:none}.battle-command-deck{gap:.65rem}.matchup-chip{align-self:start;padding:.4rem .6rem;border-radius:999px;font-size:.7rem;font-weight:900;border:1px solid transparent}.matchup-chip.super,.move-matchup.super{color:#216b3c;background:#53be7a26;border-color:#53be7a3d}.matchup-chip.resisted,.move-matchup.resisted{color:#8b6110;background:#edbc5a2e;border-color:#edbc5a47}.matchup-chip.immune,.move-matchup.immune{color:#6a3a8e;background:#a56fd329;border-color:#a56fd342}.matchup-chip.neutral,.move-matchup.neutral{color:#225581;background:#82b8e624;border-color:#82b8e642}.moves-section{display:grid;gap:.6rem}.moves-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.move-button{display:grid;gap:.45rem;align-content:start;padding:.65rem .7rem;border-radius:12px;border:2px solid rgba(100,142,192,.3);border-bottom:3px solid rgba(60,100,155,.25);background:linear-gradient(175deg,#fffffffa,#eaf4fcf5);color:var(--ink-900);text-align:left;cursor:pointer;font-family:inherit;transition:border-color .15s,transform .1s,box-shadow .15s}.move-button:hover{border-color:#3782e18c;transform:translateY(-1px);box-shadow:0 4px 12px #2364c81f}.move-button.selected{background:linear-gradient(175deg,#daf8e0fa,#c6eed0fa);box-shadow:0 0 0 3px #ffffffd9,0 0 0 5px #28b45f38}.move-button.effectiveness-super{border-color:#53be7a8c;border-bottom-color:#3a945c80}.move-button.effectiveness-resisted{border-color:#edbc5a8c;border-bottom-color:#c4912c80}.move-button.effectiveness-immune{border-color:#a56fd394;border-bottom-color:#794baa85}.move-button.effectiveness-neutral{border-color:#82b8e680;border-bottom-color:#5284b675}.type-move-normal{--type-bg: #e2ddd0;--type-border: #b8af95;--type-text: #5a5445}.type-move-fire{--type-bg: #ffd8cf;--type-border: #ea8f74;--type-text: #943d1f}.type-move-water{--type-bg: #d5e8ff;--type-border: #7ea9e6;--type-text: #24548d}.type-move-electric{--type-bg: #fff1b8;--type-border: #d8b94e;--type-text: #8a6910}.type-move-grass{--type-bg: #d9f0c8;--type-border: #8ab26b;--type-text: #2f6d28}.type-move-ice{--type-bg: #d7f7f7;--type-border: #84c9ce;--type-text: #2b7681}.type-move-fighting{--type-bg: #f1d1c8;--type-border: #c88367;--type-text: #7d3423}.type-move-poison{--type-bg: #e7d2f7;--type-border: #a67cc8;--type-text: #633e8d}.type-move-ground{--type-bg: #ead7b8;--type-border: #bd9b5e;--type-text: #785623}.type-move-flying{--type-bg: #dde3ff;--type-border: #9aa5eb;--type-text: #4450a1}.type-move-psychic{--type-bg: #ffd8eb;--type-border: #e58fb4;--type-text: #9d3568}.type-move-bug{--type-bg: #e1f0bb;--type-border: #9cb85a;--type-text: #51691e}.type-move-rock{--type-bg: #ece1cc;--type-border: #b8a17a;--type-text: #6d5731}.type-move-ghost{--type-bg: #ddd8f3;--type-border: #8e84be;--type-text: #4d4377}.type-move-dragon{--type-bg: #d7dbff;--type-border: #7d88d8;--type-text: #2e3f92}.type-move-dark{--type-bg: #d7d7e1;--type-border: #8f8f9f;--type-text: #373747}.type-move-steel{--type-bg: #dde4ea;--type-border: #93a5b4;--type-text: #485b69}.type-move-fairy{--type-bg: #ffe0f5;--type-border: #de95c5;--type-text: #9a4178}.move-matchup-chip{align-self:stretch;display:flex;align-items:center;justify-content:center;text-align:center;min-height:38px;padding:.35rem .6rem;box-sizing:border-box;white-space:nowrap}.matchup-chip.empty{color:transparent;background:#fffffff5;border-color:#6a93b53d}.move-matchup{padding:.35rem .45rem;border-radius:10px;font-size:.72rem;font-weight:900}.battle-log-panel{display:grid;grid-template-rows:auto minmax(0,1fr);overflow:auto;padding:.7rem;background:linear-gradient(168deg,#101c34f7,#081222fc)}.battle-log-panel ul{margin:0;padding-left:1.15rem;display:grid;gap:.4rem;overflow:auto;min-height:0}.battle-log-panel li{color:#c3dcffe6;font-weight:700;font-size:.85rem}.battle-log-panel .section-kicker{color:var(--poke-gold)}.battle-log-panel .section-kicker:before{background:var(--poke-gold)}.battle-log-panel h3{color:#fff}.pokemon-grid-wrapper{overflow:auto;padding:1rem}.pokemon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:.85rem}.pokemon-card{padding:.85rem;border-radius:16px;border:2px solid rgba(130,186,240,.58);border-top:3px solid var(--sky-500);background:linear-gradient(172deg,#fffffff7,#e4f4fff2);box-shadow:0 4px 12px #1234641a;text-align:center;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.pokemon-card:hover{transform:translateY(-3px);box-shadow:0 8px 22px #1234642e}.pokemon-card img{width:88px;height:88px}.pokemon-card p{margin:.5rem 0 0;text-transform:capitalize;font-weight:800;color:var(--ink-900)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;display:flex;align-items:center;justify-content:center;padding:1rem;background:#10233173}.modal-content{width:min(520px,100%);max-height:min(88vh,760px);overflow:auto;padding:1.25rem;border-radius:22px;border:2px solid rgba(159,208,255,.82);background:linear-gradient(180deg,#fffffff7,#f2f8fcfa),var(--ui-texture-panel);background-size:100% 100%,100% 100%;background-repeat:no-repeat,no-repeat;box-shadow:0 24px 48px #10233140}.close{float:right;color:var(--ink-700);font-size:1.7rem;font-weight:900;cursor:pointer}.modal img{width:150px;height:150px}.modal ul{padding-left:1.15rem}.cemetery-content{width:min(720px,100%)}.cemetery-list{display:grid;gap:.8rem}.cemetery-entry{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.75rem;border-radius:16px;background:linear-gradient(180deg,#eff3f7f5,#e0e7ecf5);border:1px solid rgba(120,132,143,.32)}.cemetery-entry img{width:52px;height:52px;filter:grayscale(1) brightness(.8)}.cemetery-entry p{margin:0;color:var(--ink-800);font-weight:800}.cemetery-entry-copy{display:grid;gap:.15rem}.cemetery-entry-custom-name{margin:0;color:var(--ink-900);font-size:1rem;font-weight:900}.cemetery-entry-real-name{margin:0;color:#2d3a4aad;font-size:.82rem;font-weight:700;letter-spacing:.03em}.cemetery-entry-details{margin:.12rem 0 0;color:var(--ink-800);font-weight:800}.mourn-button{border:none;border-radius:10px;padding:.55rem .8rem;background:linear-gradient(180deg,#3b3b3b,#111);border-bottom:3px solid #000;color:#f4f7fa;font-weight:900;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.cemetery-memorial-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10002;display:grid;place-items:center;padding:1.2rem;background:#000;opacity:0;transition:opacity 1s ease}.cemetery-memorial-overlay.revealed{opacity:1}.cemetery-memorial-content{display:grid;justify-items:center;gap:.95rem;width:min(580px,100%);text-align:center;color:#f7f7f7}.cemetery-memorial-sprite{width:clamp(160px,30vw,260px);height:clamp(160px,30vw,260px);opacity:0;transform:scale(.8);filter:grayscale(1) saturate(.08) brightness(.82) drop-shadow(0 0 18px rgba(255,255,255,.12));transition:opacity 3.2s ease,transform 6.2s ease,filter 4.4s ease}.cemetery-memorial-overlay.revealed .cemetery-memorial-sprite{opacity:1;transform:scale(1.08);filter:grayscale(1) saturate(.02) brightness(1.02) drop-shadow(0 0 28px rgba(255,255,255,.2))}.cemetery-memorial-copy{max-width:520px;opacity:0;transform:translateY(16px);transition:opacity 1.2s ease 1s,transform 1.2s ease 1s}.cemetery-memorial-overlay.revealed .cemetery-memorial-copy{opacity:1;transform:translateY(0)}.cemetery-memorial-heading{margin:0;color:#ffffffd1;font-weight:800;text-transform:uppercase;letter-spacing:.15em;font-size:.78rem}.cemetery-memorial-copy h2{margin:.3rem 0 0;font-size:clamp(1.5rem,3.8vw,2.7rem);letter-spacing:.05em;color:#fff}.cemetery-memorial-actual-name{margin:.28rem 0 0;color:#ffffff8a;font-size:.84rem;font-weight:700;letter-spacing:.04em}.cemetery-memorial-lifetime{margin:.45rem 0 0;color:#ffffffc2;font-weight:700}.cemetery-memorial-age{margin:.24rem 0 0;color:#ffffffc2;font-weight:700}.cemetery-memorial-quote{margin:.65rem 0 0;color:#ffffffe6;font-size:1.02rem;line-height:1.45;font-style:italic}.cemetery-memorial-close{border:none;border-radius:12px;padding:.72rem 1.15rem;background:linear-gradient(180deg,#a7afbe,#727b8d);border-bottom:3px solid #4f5768;color:#f7f9ff;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.pokemon-death-scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;display:grid;place-items:center;background:#000;pointer-events:auto}.pokemon-death-scene-sprite{width:192px;height:192px;filter:grayscale(0) saturate(1.1) brightness(1.02) drop-shadow(0 0 18px rgba(255,255,255,.12));opacity:1;transform:scale(1);will-change:opacity,filter,transform}.pokemon-death-scene-sprite.impact{animation:pokemon-death-impact .22s cubic-bezier(.24,.82,.25,1) 1}.pokemon-death-scene-sprite.fading{transition:opacity 3s ease,filter 3s ease,transform 3s ease;opacity:0;filter:grayscale(1) saturate(.08) brightness(.32) drop-shadow(0 0 28px rgba(255,255,255,.08));transform:scale(.93)}@keyframes pokemon-death-impact{0%{transform:translate(0) scale(1)}20%{transform:translate(-5px,2px) scale(1.05)}45%{transform:translate(5px,-3px) scale(.97)}70%{transform:translate(-3px,2px) scale(1.02)}to{transform:translate(0) scale(1)}}@media (max-width: 900px){.menu-actions,.trainer-name-card{grid-template-columns:1fr}.start-adventure-button{width:100%;min-width:0}.menu-sort-panel{justify-self:stretch}.menu-sort-buttons{flex-direction:row;flex-wrap:wrap}.menu-sort-buttons button{flex:1 1 180px}}.team-sidebar h2,.action-sidebar h2{font-size:1.1rem}.action-sidebar .idle-summary img{width:56px;height:56px}.action-sidebar .idle-summary{gap:.55rem}.action-sidebar .idle-summary h3{margin:0;font-size:.95rem}.action-sidebar .idle-summary p{margin:.15rem 0 0;font-size:.78rem}.death-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:auto;overflow:hidden}.death-overlay-red,.death-overlay-black{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0}.death-overlay-red{background:#af0000e0;mix-blend-mode:multiply;opacity:1;transform:translateY(-112%)}.death-overlay-red.active{animation:death-red-sweep 1.15s linear forwards}.death-overlay-black{background:#000;transition:opacity 3s ease}.death-overlay-black.active{opacity:1}.death-overlay-bodies{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity 1.1s ease .25s;pointer-events:auto;z-index:0}.death-overlay-bodies.active{opacity:1}.death-overlay-body-wrap{position:absolute;width:clamp(42px,6vw,84px);height:clamp(42px,6vw,84px)}.death-overlay-body-hit{position:relative;width:100%;height:100%;padding:0;border:none;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;opacity:.64;transition:opacity .18s ease}.death-overlay-body-wrap:hover .death-overlay-body-hit,.death-overlay-body-wrap.selected .death-overlay-body-hit{opacity:.94}.death-overlay-body-hit:focus-visible{outline:none}.death-overlay-body{width:100%;height:100%;opacity:.66;filter:grayscale(1) brightness(.38) contrast(1.08) drop-shadow(0 6px 10px rgba(0,0,0,.5));transform-origin:center center;transition:transform .18s ease,filter .18s ease}.death-overlay-body-wrap:hover .death-overlay-body,.death-overlay-body-wrap.selected .death-overlay-body{transform:translateY(-2px) scale(1.11);filter:grayscale(1) brightness(.56) contrast(1.08) drop-shadow(0 8px 14px rgba(0,0,0,.6))}.death-overlay-body-label{position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);display:grid;gap:.1rem;color:#fff;text-align:left;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.9);opacity:0;pointer-events:none;transition:opacity .14s ease}.death-overlay-body-wrap.label-left .death-overlay-body-label{left:auto;right:calc(100% + 10px);text-align:right}.death-overlay-body-wrap:hover .death-overlay-body-label,.death-overlay-body-wrap.selected .death-overlay-body-label{opacity:1}.death-overlay-body-name{color:#fff;font-size:1.02rem;font-weight:900;letter-spacing:.01em}.death-overlay-body-lifetime{color:#ffffffeb;font-size:.86rem;font-weight:700}.death-message{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:.75rem;padding:1.5rem;text-align:center;color:#f2f2f2;opacity:0;transition:opacity 1s ease;z-index:1;pointer-events:none}.death-message.visible{opacity:1}.death-message .section-kicker{color:#ff6d6d}.death-message .section-kicker:before{background:currentColor}.death-message h2{margin:0;color:#fff;font-size:clamp(2rem,4vw,3.4rem);letter-spacing:.08em;text-transform:uppercase}.death-message p{margin:0;color:#ffffffc7;font-size:1rem;font-weight:700}.death-message-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:.2rem;pointer-events:auto}.death-message button{margin-top:.6rem;border:none;border-radius:12px;padding:.78rem 1.25rem;background:linear-gradient(180deg,#e86040,#bc3020);border-bottom:4px solid #7e1512;color:#fff;font:inherit;font-weight:900;cursor:pointer}.death-message .death-cemetery-button{margin-top:.6rem;position:relative;display:inline-flex;align-items:center;gap:.55rem;padding:.78rem 1.2rem;background:linear-gradient(180deg,#3b3b3b,#111);border-bottom:4px solid #000;color:#f5f7fb}.death-cemetery-count{position:static;min-width:22px;margin-left:.1rem}@keyframes death-red-sweep{0%{transform:translateY(-112%)}to{transform:translateY(0)}}@keyframes screen-shake{0%{transform:translate(0)}20%{transform:translate(-3px,2px)}40%{transform:translate(3px,-2px)}60%{transform:translate(-2px,-3px)}80%{transform:translate(2px,3px)}to{transform:translate(0)}}@keyframes route-title-advance{0%{transform:scale(1);color:var(--ink-900)}35%{transform:scale(1.16);color:var(--poke-red)}to{transform:scale(1);color:var(--ink-900)}}@keyframes route-pill-advance{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes enemy-float{0%,to{transform:translate(0)}25%{transform:translate(-1px,-3px)}50%{transform:translate(2px,-1px)}75%{transform:translateY(2px)}}@keyframes player-float{0%,to{transform:scaleX(-1) translate(0)}25%{transform:scaleX(-1) translate(-2px,-2px)}50%{transform:scaleX(-1) translate(1px,-1px)}75%{transform:scaleX(-1) translateY(2px)}}@keyframes trainer-float{0%,to{transform:translate(0)}33%{transform:translate(1px,-2px)}66%{transform:translate(-1px,1px)}}@keyframes enemy-attack{0%{transform:translate(0) scale(1)}55%{transform:translate(-28px,12px) scale(1.05)}to{transform:translate(0) scale(1)}}@keyframes player-attack{0%{transform:scaleX(-1) translate(0) scale(1)}55%{transform:scaleX(-1) translate(28px,-12px) scale(1.06)}to{transform:scaleX(-1) translate(0) scale(1)}}@keyframes enemy-hit{0%,to{transform:translate(0);filter:brightness(1.1) drop-shadow(0 8px 8px rgba(0,0,0,.22))}20%{transform:translate(-6px);filter:brightness(2.2) drop-shadow(0 0 16px rgba(255,255,255,.7))}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes player-hit{0%,to{transform:scaleX(-1) translate(0);filter:brightness(1.1) drop-shadow(0 8px 8px rgba(0,0,0,.22))}20%{transform:scaleX(-1) translate(-6px);filter:brightness(2.2) drop-shadow(0 0 16px rgba(255,255,255,.7))}40%{transform:scaleX(-1) translate(6px)}60%{transform:scaleX(-1) translate(-4px)}80%{transform:scaleX(-1) translate(4px)}}@keyframes enemy-death{0%{transform:translate(0) scale(1);opacity:1;filter:saturate(1) brightness(1)}65%{transform:translateY(26px) scale(.88) rotate(8deg);opacity:.55;filter:grayscale(1) brightness(.85)}to{transform:translateY(42px) scale(.76) rotate(14deg);opacity:.12;filter:grayscale(1) brightness(.5)}}@keyframes player-death{0%{transform:scaleX(-1) translate(0) rotate(0);opacity:1;filter:saturate(1) brightness(1)}65%{transform:scaleX(-1) translateY(30px) rotate(-36deg) scale(.9);opacity:.55;filter:grayscale(1) brightness(.85)}to{transform:scaleX(-1) translateY(44px) rotate(-82deg) scale(.78);opacity:.12;filter:grayscale(1) brightness(.5)}}@keyframes trainer-death{0%{transform:translate(0) rotate(0);opacity:1}55%{transform:translate(8px,22px) rotate(34deg);opacity:1}to{transform:translate(18px,42px) rotate(88deg);opacity:.35}}@keyframes trainer-glitch{0%{transform:translate(0) scale(1);opacity:1}25%{transform:translate(-6px,2px) scale(1.16);opacity:.15}50%{transform:translate(7px,-3px) scale(.92);opacity:1}75%{transform:translate(-4px,-4px) scale(1.08);opacity:.3}to{transform:translate(0) scale(1);opacity:1}}@keyframes hud-drop-in{0%{transform:translateY(-28px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes hud-rise-in{0%{transform:translateY(28px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes enemy-entry{0%{transform:translate(60px,-38px) scale(.6);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes player-entry{0%{transform:scaleX(-1) translate(-60px,42px) scale(.6);opacity:0}to{transform:scaleX(-1) translate(0) scale(1);opacity:1}}@keyframes trainer-entry{0%{transform:translate(-24px,48px) scale(.82);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes battlefield-outro{0%{transform:scale(1);opacity:1;filter:saturate(1)}to{transform:scale(1.045);opacity:.15;filter:saturate(.2) brightness(.8)}}@keyframes hud-fade-out{0%{opacity:1}to{opacity:0;transform:translateY(8px)}}@media (max-width: 1240px){.game-main{grid-template-columns:220px minmax(0,1fr) 290px}}@media (max-width: 980px){.game-container,.menu-screen{height:auto;min-height:calc(100vh - 24px)}#root{overflow:auto}.game-shell-header{flex-direction:column}.adventure-metrics{width:100%;min-width:0}.game-main{grid-template-columns:200px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.team-sidebar{grid-column:1;grid-row:1 / 3}.center-view{grid-column:2;grid-row:1}.action-sidebar{grid-column:2;grid-row:2;grid-template-rows:auto auto;max-height:340px}.battle-mon{width:96px;height:96px}.trainer-sprite-card{bottom:-66px}.moves-grid{grid-template-columns:1fr 1fr}}@media (max-width: 640px){#root{padding:6px;overflow:hidden}.game-shell-header{flex-shrink:0;flex-direction:row;padding:.38rem .75rem;gap:.5rem;align-items:center}.game-shell-header h1{font-size:1.05rem;letter-spacing:.04em}.shell-copy,.game-shell-header .section-kicker{display:none}.adventure-metrics{display:flex;flex-wrap:nowrap;gap:.35rem;min-width:0}.metric-chip{flex:1;min-width:0;padding:.3rem .4rem;border-radius:10px;gap:0}.metric-chip span{font-size:.56rem;letter-spacing:.07em}.metric-chip strong{font-size:.92rem}.game-container[data-battle=true] .game-shell-header{display:none}.game-container{height:calc(100vh - 68px);height:calc(100dvh - 68px);min-height:0;display:flex;flex-direction:column}.game-main{flex:1;min-height:0;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}.team-sidebar,.center-view,.action-sidebar{grid-column:1;grid-row:1;min-height:0;height:100%;max-height:none;display:none}.game-main[data-mobile-tab=team] .team-sidebar{display:flex;flex-direction:column}.game-main[data-mobile-tab=center] .center-view{display:grid;grid-template-rows:1fr}.center-view{overflow:hidden}.game-main[data-mobile-tab=camp] .action-sidebar{position:static;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.5rem;min-height:0;height:100%;overflow:hidden;padding-bottom:0}.game-main[data-mobile-tab=camp] .camp-panel{min-height:0;overflow:visible}.game-main[data-mobile-tab=camp] .battle-log-panel{min-height:0;height:100%}.game-container[data-battle=true] .game-main[data-mobile-tab=center]{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.game-container[data-battle=true] .game-main[data-mobile-tab=center] .center-view{display:grid;grid-row:1;height:auto}.game-container[data-battle=true] .game-main[data-mobile-tab=center] .action-sidebar{display:grid;grid-row:2;grid-template-rows:minmax(0,1fr);overflow:hidden;height:100%}.game-container[data-battle=true] .game-main[data-mobile-tab=center] .battle-log-panel{display:none}.game-container[data-battle=true] .game-main[data-mobile-tab=camp] .action-sidebar{display:block;height:100%;overflow:hidden;padding-bottom:0}.game-container[data-battle=true] .game-main[data-mobile-tab=camp] .battle-command-panel{display:none}.team-sidebar .team-display{grid-auto-flow:row!important;overflow-y:auto!important;overflow-x:hidden!important}.map-panel{gap:.32rem;padding:.5rem;grid-template-rows:auto auto auto minmax(0,1fr) auto}.map-panel .panel-heading{gap:.45rem;align-items:center}.map-panel .panel-heading h2{font-size:.95rem}.route-status-pill{padding:.42rem .56rem;border-radius:10px}.map-legend,.route-footer-copy{display:none}.center-status-banner{width:100%;padding:.45rem .65rem;font-size:.78rem;line-height:1.25}.map-frame{overflow:hidden;padding:0}.map-surface{max-width:100%}.center-view .map{--cell-size: 24px;gap:3px;padding:.5rem}.battle-stage-header{display:none}.battle-visual-panel .combat-hud{gap:.15rem .4rem;padding:.3rem .55rem}.battle-visual-panel .combat-hud .section-kicker{display:none}.battle-visual-panel .combat-hud h3{font-size:1rem}.battle-visual-panel .combat-hud .type-badge{padding:.22rem .42rem;font-size:.66rem}.battle-visual-panel .combat-hud>p{font-size:.72rem;margin-top:.1rem}.battle-command-panel{gap:.3rem;padding:.38rem .5rem .4rem;overflow:auto}.moves-section{gap:.24rem}.moves-grid{gap:.32rem}.move-button{gap:.3rem;padding:.46rem .52rem}.move-name{font-size:.82rem}.move-power{font-size:.78rem}.move-matchup-chip{text-align:center;border-radius:10px;margin-top:.1rem;margin-bottom:.1rem;min-height:34px;font-size:.68rem}.battle-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.32rem;padding-top:.05rem}.battle-actions button{width:100%;min-width:0;padding:.52rem .4rem;font-size:.8rem}.battle-log-panel{min-height:0;height:100%}.battle-log-panel ul{flex:1 1 auto;min-height:0;padding-bottom:calc(env(safe-area-inset-bottom) + .2rem)}.battle-status-banner{top:.3rem;width:min(calc(100% - 1rem),560px);padding:.4rem .7rem;font-size:.8rem;border-radius:10px;border-left-width:4px}.enemy-platform{top:30px;right:10px;width:114px;height:42px}.player-platform{left:8px;bottom:18px;width:136px;height:48px}.battle-mon{width:88px;height:88px}.battle-mon.enemy{right:6px;top:13%}.battle-mon.player{left:42px;bottom:15%}.trainer-portrait{width:32px;height:86px}.trainer-sprite-card{left:8px;bottom:-44px}}.map-dpad{display:none}@media (max-width: 640px){.first-person-view{min-height:250px}.fps-mobile-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-top:.25rem}.fps-mobile-controls .dpad-btn{width:100%}.map-dpad{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:.2rem 0 0;flex-shrink:0}.dpad-middle-row{display:flex;align-items:center;gap:4px}.dpad-btn{width:40px;height:40px;border:none;border-radius:10px;background:linear-gradient(180deg,#2a3f5c,#18294a);border-bottom:3px solid #0c1a30;color:#b4d2ffe6;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;transition:transform .07s ease,border-bottom-width .07s ease}.dpad-btn:active{transform:translateY(2px);border-bottom-width:1px}.dpad-center-dot{width:40px;height:40px;background:#1420348c;border-radius:4px}}.mobile-tab-bar{display:none}@media (max-width: 640px){.mobile-tab-bar{position:fixed;bottom:0;left:0;right:0;z-index:400;display:flex;height:calc(56px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#1a1a2e,#0d0d1e);border-top:2px solid rgba(80,110,190,.32);box-shadow:0 -4px 20px #00001473;padding:0 .25rem env(safe-area-inset-bottom);gap:0}.mobile-tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;border:none;border-top:3px solid transparent;border-radius:12px 12px 0 0;background:transparent;color:#96afe68c;font-family:inherit;font-size:.78rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color .14s,border-color .14s,background-color .14s,box-shadow .14s;padding:0 .5rem}.mobile-tab-btn.active{color:#fff;border-top-color:var(--poke-red);background:linear-gradient(180deg,#cc1a1af2,#7a0808f2);box-shadow:inset 0 1px #ffffff2e,0 0 0 2px #5ca0ffe6}.mobile-tab-label{display:block;line-height:1}}
