:root{--ink:#253d38;--paper:#f6f4e9;--muted:#7b897b;--accent:#efc847;--line:#dce1d0;--mono:ui-monospace,'Cascadia Code',Consolas,monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #397865;outline-offset:3px}button:disabled{opacity:.45;cursor:default}button{color:inherit}button:hover:not(:disabled){filter:brightness(.96)}[hidden]{display:none!important}.topbar{height:98px;border-bottom:1px solid var(--line);max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 5%}.brand{text-decoration:none;color:var(--ink);display:flex;gap:13px;align-items:center;font-size:19px;font-weight:900;letter-spacing:-.7px}.brand b{font-size:11px;letter-spacing:1px;background:var(--accent);padding:4px 6px;vertical-align:3px;border-radius:3px}.brand small{display:block;font:9px var(--mono);letter-spacing:3.2px;margin-top:6px}.brandball{width:30px;height:30px;border:3px solid var(--ink);border-radius:50%;position:relative;background:linear-gradient(var(--accent) 46%,var(--ink) 46%,var(--ink) 57%,transparent 57%)}.brandball:after{content:'';position:absolute;border:2px solid var(--ink);background:var(--paper);width:8px;height:8px;border-radius:50%;left:6px;top:7px}.top-actions{display:flex;gap:12px;align-items:center}.edition{font:10px var(--mono);letter-spacing:2px;margin-right:16px}.icon-btn{background:transparent;border:1px solid var(--line);height:36px;min-width:38px;border-radius:50px;font-size:21px}.icon-btn span{font:8px var(--mono);margin:0 5px}.layout{max-width:1180px;margin:40px auto 30px;padding:0 28px;display:grid;grid-template-columns:minmax(0,680px) minmax(250px,310px);gap:64px;align-items:start;justify-content:center}.game-heading{display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:1.4px;margin-bottom:16px;padding:0 3px}.game-heading>span:first-child{display:flex;align-items:center;gap:8px}.live-dot{width:6px;height:6px;display:inline-block;background:#6c9867;border-radius:50%}.game-heading>span:last-child{color:var(--muted);font-size:8px}.console{background:#edc149;padding:24px 25px 17px;border:1px solid #c7a037;border-radius:18px 18px 64px 18px;box-shadow:0 6px 0 #d5ac3b,0 9px 0 #ae8f36,0 23px 40px #5c644119,inset 0 2px 0 #ffe897;position:relative}.screen-bezel{background:#3e4e47;border-radius:9px 9px 28px 9px;padding:12px 18px 7px;box-shadow:inset 0 2px 5px #182e3190}.bezel-label,.bezel-bottom{display:flex;justify-content:space-between;font:6px var(--mono);color:#adb8a3;letter-spacing:.7px;padding-bottom:9px}.bezel-label i{display:inline-block;border-radius:50%;width:4px;height:4px;background:#cfe279;box-shadow:0 0 5px #dbff85;margin-right:4px}.bezel-bottom{padding:7px 0 0;align-items:center;font-size:5px;letter-spacing:1px}.bezel-bottom i{font-size:14px;color:#e6d78b}.screen{aspect-ratio:240/216;background:#e8edbd;position:relative;overflow:hidden;box-shadow:0 0 0 3px #283e36;isolation:isolate;container-type:inline-size}canvas{width:100%;height:100%;display:block;image-rendering:pixelated}#zone-toast{position:absolute;top:10px;left:50%;transform:translate(-50%,-30px);opacity:0;transition:.3s;white-space:nowrap;background:#f5f3dbed;border:2px solid #354940;padding:8px 13px;box-shadow:3px 3px #35494040;font:700 11px var(--mono);z-index:5;pointer-events:none}#zone-toast.show{opacity:1;transform:translate(-50%,0)}.console-controls{display:flex;justify-content:space-between;align-items:center;padding:19px 6px 4px;user-select:none}.dpad{width:104px;height:104px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);filter:drop-shadow(0 3px 0 #6c633a)}.dpad button,.dpad span{background:#35483f;border:0;color:#9ba88c;font-size:15px;padding:0;box-shadow:inset 0 1px #627262}.dpad button:active{background:#243a32;color:#fff}.dpad button:nth-child(1){grid-area:1/2;border-radius:5px 5px 0 0}.dpad button:nth-child(2){grid-area:2/1;border-radius:5px 0 0 5px}.dpad span{grid-area:2/2;box-shadow:none;background:radial-gradient(circle,#2a3e36 0 32%,#35483f 34%)}.dpad button:nth-child(4){grid-area:2/3;border-radius:0 5px 5px 0}.dpad button:nth-child(5){grid-area:3/2;border-radius:0 0 5px 5px}.system-buttons{display:flex;gap:9px;align-self:end;padding-bottom:17px}.system-buttons button{font:bold 8px var(--mono);border:0;border-radius:12px;background:#b6973c;padding:6px 11px;box-shadow:0 2px #8c7330;color:#403e2b}.ab-buttons{display:flex;gap:13px;transform:rotate(-18deg);margin-top:-11px}.ab-buttons button{border:1px solid #7e5833;background:#9d6147;width:47px;height:47px;border-radius:50%;font:bold 18px var(--mono);color:#eacb91;box-shadow:0 4px #75503a,inset 0 2px #c3845f}.ab-buttons button:active{transform:translateY(3px);box-shadow:0 1px #75503a}.console-name{font:bold italic 16px Arial;margin-top:-4px;letter-spacing:-.6px;color:#6e622f;display:flex;justify-content:space-between;align-items:center;padding-right:20px}.console-name span{font:6px var(--mono);letter-spacing:1.4px;color:#8c7937}.keyboard-hints{display:flex;justify-content:center;flex-wrap:wrap;gap:15px;margin-top:27px;font:9px var(--mono);color:var(--muted)}kbd{font:9px var(--mono);border:1px solid var(--line);border-bottom:2px solid #cdd3c2;border-radius:3px;padding:3px 5px;color:var(--ink)}.sidebar{padding-top:0}.chapter-label{display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1.5px;color:#7d8b78;border-bottom:1px solid var(--line);padding-bottom:17px}.sidebar h2{font-size:36px;line-height:1.12;letter-spacing:-1.7px;margin:24px 0 17px;font-weight:800}.sidebar h2 span{color:#81976d}.sidebar-intro{font-size:13px;line-height:1.7;color:#7b8576;margin-bottom:27px}.objective-card{background:#e9ecdd;padding:18px;border:1px solid #d9dfcb;border-radius:7px}.eyebrow{display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1.6px;color:#687c60}.objective-card h3{font-size:16px;line-height:1.3;margin:15px 0 7px}.objective-card p{font-size:12px;line-height:1.6;color:#73816b;margin:0}.milestones{display:flex;gap:5px;margin-top:18px}.milestones i{height:4px;flex:1;background:#d1d9c4;border-radius:4px}.milestones i.done{background:#8b9e66}.section-label{display:flex;justify-content:space-between;align-items:center;margin:27px 0 12px}.section-label h3{font:9px var(--mono);letter-spacing:1.5px;margin:0}.section-label button{border:0;background:none;font:9px var(--mono);color:#718468;padding:0}.empty-team{font-size:12px;color:#909a89;border:1px dashed #d4dbc7;border-radius:6px;padding:20px;line-height:1.6}.mini-team{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.mini-mon{background:#ecefe2;border:1px solid #e1e5d5;border-radius:6px;padding:6px;text-align:center;font:8px var(--mono)}.mini-mon img{image-rendering:pixelated;display:block;width:38px;height:38px;object-fit:contain;margin:0 auto 4px}.mini-mon small{color:#849276;font-size:7px}.quick-links{margin-top:18px}.quick-links button{display:flex;align-items:center;width:100%;padding:13px 2px;border:0;border-top:1px solid var(--line);background:none;font-size:11px;text-align:left;gap:12px}.quick-links button>span{font:16px var(--mono);width:17px;color:#80936e}.quick-links b{margin-left:auto;font:8px var(--mono);color:#839775}.badge-card{display:flex;align-items:center;gap:12px;border:1px solid #dedfce;border-radius:6px;padding:15px 12px;margin-top:20px;color:#9ca28a}.badge-glyph{font-size:31px}.badge-card b{display:block;font:8px var(--mono);letter-spacing:1px}.badge-card small{font-size:9px;display:block;margin-top:5px}.badge-card>span:last-child{font:6px var(--mono);margin-left:auto}.badge-card.won{background:#f3e4a3;color:#6b622f;border-color:#dfcb7b}.save-note{font:8px/1.8 var(--mono);color:#9aa28f;margin-top:17px}footer{max-width:1180px;margin:44px auto 0;padding:20px 28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1px;color:#8a9780}footer button{border:0;background:none;font:9px var(--mono);color:#7a8b70}#notice{opacity:0;transition:.2s;pointer-events:none}#notice.show{opacity:1}
/* In-game UI */
#title-screen{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 48%,#f4e9a4 0,#e6e8b3 60%);text-align:center;display:flex;align-items:center;flex-direction:column;color:#2e463d;font-family:var(--mono);padding:6% 5% 3%;z-index:10}.title-stars{font-size:2.2cqw;letter-spacing:1.6px;color:#879164}.title-stars span{font-size:1.7cqw;margin:0 8px}h1{font:bold 8.5cqw/.95 Arial;letter-spacing:-2px;margin:5% 0 0;text-shadow:2px 2px #b9c37d}h1 em{display:block;font:bold italic 6cqw Arial;letter-spacing:5px;margin-top:3%;color:#b58a2c;text-shadow:none}.title-sub{font-size:1.7cqw;letter-spacing:3px;margin:3% 0 0}.title-pikachu{width:26%;aspect-ratio:1;margin:3% 0 1%;position:relative}.title-pikachu:after{content:'';position:absolute;width:85%;height:11%;border-radius:50%;background:#7b8f682b;bottom:-3%;left:7%;z-index:-1}.title-pikachu img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;animation:bob 2s ease-in-out infinite}.title-copy{font-size:2.1cqw;line-height:1.7;margin:3% 0}#title-actions{width:68%;display:grid;gap:7px}.title-foot{font-size:1.45cqw;letter-spacing:1px;margin-top:auto;padding-top:3%}.pixel-btn{background:#f5f2d8;border:2px solid #344a3e;box-shadow:2px 2px #344a3e40;padding:9px 8px;font:bold 2.4cqw var(--mono);border-radius:2px;min-height:34px}.pixel-btn.primary{background:#344e40;color:#f3efcf}.pixel-btn.subtle{border-color:#9aab81;background:#e6e7b1;font-size:2cqw}.pixel-btn:active{transform:translate(1px,1px);box-shadow:1px 1px #344a3e40}#dialog{position:absolute;bottom:3%;left:3%;right:3%;background:#faf4da;border:3px double #2b4439;padding:3.2% 4%;z-index:30;min-height:24%;font:2.7cqw/1.65 var(--mono);box-shadow:2px 2px #253d3850}#dialog .speaker{font-size:2cqw;font-weight:bold;letter-spacing:1px;color:#8a7d47;margin-bottom:3px}#dialog .continue{font:1.7cqw var(--mono);text-align:right;margin-top:3%;opacity:.6}.dialog-next{position:absolute;inset:0;background:transparent;border:0;width:100%;height:100%;cursor:pointer}.dialog-options{display:flex;gap:8px;margin-top:8px;position:relative;z-index:2}.dialog-options button{flex:1}#panel{position:absolute;inset:3%;background:#f2efd7;border:3px double #334b3c;z-index:25;display:flex;flex-direction:column;font:2.5cqw var(--mono);box-shadow:3px 3px #253d3850}.panel-head{padding:3% 4%;background:#dde2b9;border-bottom:2px solid #6b7f5d;display:flex;justify-content:space-between;align-items:center;gap:5px}.panel-head h3{margin:0;font:bold 2.8cqw var(--mono)}.panel-head button{border:0;background:none;font:3cqw var(--mono)}.panel-body{overflow:auto;flex:1;padding:4%;scrollbar-width:thin;overscroll-behavior:contain}.panel-body p{line-height:1.65;margin:0 0 4%}.panel-body h4{font-size:2.5cqw;margin:5% 0 3%}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.menu-grid button{min-height:49px;font-size:2.6cqw}.panel-foot{border-top:1px solid #b2bd93;font:1.9cqw/1.5 var(--mono);padding:2% 4%;color:#788364}.pokemon-row{display:flex;align-items:center;gap:3%;border:1px solid #b9c59d;padding:2%;margin-bottom:2%;width:100%;background:#e7e9c7;text-align:left}.pokemon-row img{height:10cqw;width:11cqw;object-fit:contain;image-rendering:pixelated}.pokemon-row .mon-info{flex:1;min-width:0}.pokemon-row strong{font:bold 2.4cqw var(--mono)}.pokemon-row small{display:block;font:2cqw var(--mono);margin-top:5px;color:#6b7e60}.pokemon-row .level{font:2cqw var(--mono)}.hpbar{background:#b7bc9c;height:5px;border:1px solid #6c7e60;border-radius:3px;overflow:hidden;margin-top:5px;width:100%}.hpbar i{display:block;background:#729a5c;height:100%;transition:width .35s}.hpbar.low i{background:#c38555}.hpbar.danger i{background:#b9534f}.type{font:1.7cqw var(--mono);background:#d9dfbb;border:1px solid #abb88c;padding:3px 4px;display:inline-block;margin:2px;color:#56694f;border-radius:2px}.item-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #cbd3af;padding:3% 0;gap:6px}.item-row strong{font-size:2.5cqw}.item-row small{display:block;font-size:1.9cqw;line-height:1.5;color:#788465;margin-top:4px}.item-row button{font:2cqw var(--mono);padding:6px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.stat-grid span{background:#e1e6c2;padding:7px;text-align:center;font-size:2cqw}.stat-grid b{display:block;margin-top:5px;font-size:2.8cqw}.detail-mon{text-align:center}.detail-mon img{width:24cqw;height:22cqw;object-fit:contain;image-rendering:pixelated}.detail-mon h4{margin:2%}.moves-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:3% 0}.move-detail{border:1px solid #bdc89f;padding:8px;font:2cqw/1.7 var(--mono);background:#e4e8c8}.move-detail b{font-size:2.2cqw}.info-line{font:2cqw/1.8 var(--mono);color:#6e7d5c}.dex-tabs{display:flex;gap:5px;margin-bottom:10px}.dex-tabs button{font:2cqw var(--mono);padding:6px}.dex-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.dex-entry{border:1px solid #bdc69f;background:#e5e8c8;padding:5px;text-align:center;font:1.8cqw var(--mono)}.dex-entry img{width:13cqw;height:11cqw;object-fit:contain;image-rendering:pixelated;display:block;margin:auto}.dex-entry.unknown img{filter:brightness(0);opacity:.18}.map-path{display:flex;align-items:center;flex-direction:column;gap:5px;margin:10px 0}.map-node{background:#e0e6bc;border:2px solid #9aaa7c;padding:9px;width:75%;text-align:center;font:2.3cqw var(--mono)}.map-node.current{background:#f1d66b;border-color:#776b3c}.map-connector{height:12px;border-left:3px dotted #a0b17d}.map-west{font:2cqw var(--mono);padding:5px;color:#7e8c69}.form-line{display:flex;gap:5px;margin:8px 0}.form-line input,.form-line select,.form-input{min-width:0;flex:1;padding:8px;border:1px solid #9eae80;background:#faf5dc;font:2.6cqw var(--mono);width:100%}.help-controls{font-size:2.3cqw;line-height:1.9}.danger-button{color:#9b4b3b}.check-line{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:12px 0}#fx{position:absolute;inset:0;pointer-events:none;z-index:35;background:#f2e6a8;opacity:0}#fx.flash{animation:flash .45s steps(3)}
/* Battle screen */
#battle{position:absolute;inset:0;background:#f1edcc;z-index:15;font-family:var(--mono)}.battle-scene{position:relative;height:70%;overflow:hidden;background:linear-gradient(#e8ebce 0 49%,#e1e5c0 50%,#f0edce 51%)}.battle-scene:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(transparent 0 3px,#5b704203 3px 4px);pointer-events:none}.battle-scene.gym{background:linear-gradient(#d8ddca,#f0edce)}.battle-scene.forest{background:linear-gradient(#b3c89c,#f0edce)}.battle-shadow{position:absolute;background:#99ae7c45;border-radius:50%;height:9%;width:33%}.battle-shadow.enemy{top:40%;right:5%}.battle-shadow.ally{bottom:2%;left:2%;width:43%}.battle-mon{position:absolute;object-fit:contain;image-rendering:pixelated;transform-origin:50% 90%}.battle-mon.enemy{width:29%;height:41%;right:8%;top:6%;animation:enter-right .5s}.battle-mon.ally{width:40%;height:48%;left:1%;bottom:-1%;animation:enter-left .5s}.battle-mon.idle{animation:battle-idle 2s ease-in-out infinite}.battle-mon.hit{animation:hit .45s steps(2)}.battle-mon.attack{animation:attack .35s}.battle-mon.fainted{transform:translateY(80px);opacity:0;transition:.45s}.battle-stats{position:absolute;width:48%;padding:3%;border-bottom:3px solid #647956;border-right:3px solid #647956;border-radius:0 0 10px;background:#f3f0d3d9;z-index:2}.battle-stats.enemy{top:5%;left:4%}.battle-stats.ally{bottom:6%;right:3%}.battle-stats .stat-top{display:flex;justify-content:space-between;font:bold 2.8cqw var(--mono);gap:3px}.battle-stats .level{font:2.2cqw var(--mono)}.battle-stats .hp-label{font:bold 1.7cqw var(--mono);margin-top:5px;display:flex;gap:5px;align-items:center}.battle-stats .hpbar{flex:1;height:6px;margin:0}.hp-value{text-align:right;font:2.3cqw var(--mono);padding-top:4px}.xp-bar{height:3px;background:#c5c7aa;margin-top:5px}.xp-bar i{height:100%;display:block;background:#5b9f9a}.pokeball-count{font:2.5cqw var(--mono);margin-bottom:3px;letter-spacing:2px;color:#b0914d}.battle-bottom{position:absolute;bottom:2%;left:2%;right:2%;height:27%;border:3px double #344b3d;background:#faf3da;display:flex;align-items:stretch;z-index:5}.battle-prompt{width:45%;padding:5% 4%;font:2.8cqw/1.6 var(--mono)}.battle-options{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:2px;border-left:2px solid #849573;padding:2%}.battle-options button{font:bold 2.6cqw var(--mono);border:0;background:#e8e8c5;text-align:left;padding:5px}.battle-options button:hover{background:#d4deae}.battle-options.moves button{font-size:2.1cqw;padding:5px 4px}.battle-options.moves button small{font:1.6cqw var(--mono);display:block;margin-top:4px;color:#7f8866}.battle-options.moves{padding:1%;width:100%;border:0}.battle-narration{padding:4% 5%;font:2.8cqw/1.7 var(--mono);width:100%;display:flex;align-items:center}.battle-label{position:absolute;top:1%;width:100%;text-align:center;font:1.5cqw var(--mono);color:#8a9676;letter-spacing:1px}.capture-ball{position:absolute;right:19%;top:32%;width:7%;aspect-ratio:1;image-rendering:pixelated;animation:shake .6s infinite}.trainer-reveal{position:absolute;right:9%;top:6%;width:31%;height:48%;object-fit:contain;image-rendering:pixelated}.end-medal{font-size:16cqw;color:#a99545;text-align:center;animation:bob 2s infinite}.completion{text-align:center}.completion h4{font-size:4cqw}.completion p{font-size:2.5cqw}.storage-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:2cqw}.storage-title button{font-size:2cqw}.shakes{animation:shake .4s}@keyframes bob{50%{transform:translateY(-6px)}}@keyframes battle-idle{50%{transform:translateY(-2px)}}@keyframes enter-right{from{transform:translateX(100px);opacity:0}}@keyframes enter-left{from{transform:translateX(-100px);opacity:0}}@keyframes hit{0%,40%,80%{opacity:.1}20%,60%,100%{opacity:1}}@keyframes attack{50%{transform:translate(10px,-6px)}}@keyframes shake{25%{transform:rotate(-14deg)}75%{transform:rotate(14deg)}}@keyframes flash{0%,70%{opacity:.9}30%,100%{opacity:0}}
@media(min-width:1450px){.layout{margin-top:55px}}@media(max-width:1000px){.layout{gap:30px;padding:0 23px;grid-template-columns:minmax(0,590px) 250px}.sidebar h2{font-size:30px}.console{padding:19px}.screen-bezel{padding:12px 13px 7px}.edition{display:none}}@media(max-width:760px){.topbar{height:74px;padding:0 20px}.brand{font-size:17px}.brand small{font-size:7px}.top-actions{gap:6px}.icon-btn{height:31px;min-width:32px}.layout{display:flex;flex-direction:column;margin:21px auto 0;padding:0 15px;gap:30px;max-width:560px}.play-column{width:100%}.console{padding:16px 16px 12px;border-radius:13px 13px 45px 13px}.screen-bezel{padding:10px 12px 6px;border-radius:6px 6px 20px 6px}.game-heading{font-size:8px;margin-bottom:12px}.game-heading>span:last-child{font-size:6px}.bezel-label{font-size:5px;padding-bottom:8px}.bezel-bottom{font-size:4px;padding-top:5px}.console-controls{padding:15px 4px 0}.dpad{width:99px;height:99px}.ab-buttons button{width:46px;height:46px}.system-buttons{padding-bottom:10px}.console-name{font-size:14px}.keyboard-hints{display:none}.sidebar{width:100%;padding:5px 6px 0}.sidebar h2,.sidebar-intro,.chapter-label{display:none}.objective-card{padding:16px}.objective-card h3{font-size:15px;margin-top:10px}.team-card{margin-top:22px}.section-label{margin-top:0}.mini-team{grid-template-columns:repeat(6,1fr)}.mini-mon{font-size:7px}.mini-mon img{width:32px;height:32px}.mini-mon small{font-size:6px}.save-note{font-size:8px}footer{margin-top:25px;padding:16px 20px;font-size:6px}.panel-body .pixel-btn{min-height:34px}.pixel-btn{min-height:31px}.battle-stats{padding:2.5%}}@media(max-width:360px){.console{padding:11px}.screen-bezel{padding:9px}.dpad{width:87px;height:87px}.ab-buttons button{width:40px;height:40px}.ab-buttons{gap:10px}.brand b{display:none}.mini-team{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Keep pixel art crisp while translating it at sub-tile precision. */
#asset-loading{position:absolute;inset:0;z-index:45;background:#e8edbd;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8%;text-align:center;font:2.8cqw/1.7 var(--mono)}#asset-loading p{font-size:2.2cqw;color:#74825d}#loading-progress{font:bold 4cqw var(--mono);margin-top:5%}.loading-pikachu img{width:20cqw;height:20cqw;image-rendering:pixelated;object-fit:contain;margin-bottom:12%}.battle-mon{will-change:transform,opacity;backface-visibility:hidden}

.journal-gym{display:flex;align-items:center;gap:5%;padding:5%;margin:3% 0;border:1px solid #bec79b;background:#e5e9c9}.journal-gym>span{font-size:10cqw;color:#a8b190}.journal-gym.earned{background:#f1df98;border-color:#b4a565}.journal-gym.earned>span{color:#a28a32}.journal-gym h4{margin:0 0 5px;font-size:3cqw}.journal-gym p{font-size:2.3cqw;margin:0 0 5px}.journal-gym small{font-size:1.8cqw;color:#7a855f}.quest-row{display:flex;gap:4%;border-bottom:1px solid #c5cfaa;padding:4% 0}.quest-row>span{font-size:4cqw;color:#809153}.quest-row b{font-size:2.6cqw}.quest-row p{font-size:2.1cqw;color:#7b8864;margin:5px 0 0}.region-map{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.region-node{border:1px solid #a8b88b;padding:7px;background:#e1e7c3;font-size:2cqw}.region-node.current{background:#efd66d;border-color:#9a874b;font-weight:bold}.region-arrow{color:#93a47a;font-size:2.5cqw}
#trainer-quote{position:absolute;z-index:12;bottom:3%;left:3%;right:3%;padding:4% 5%;background:#faf4da;border:3px double #344e40;box-shadow:2px 3px #253d3830;font:2.7cqw/1.55 var(--mono);pointer-events:none}#trainer-quote b{display:block;font:bold 2cqw var(--mono);color:#8c773f;margin-bottom:2%;letter-spacing:.04em}#trainer-quote span{display:block}.trainer-transition{position:absolute;inset:0;z-index:14;pointer-events:none;overflow:hidden}.trainer-transition:before,.trainer-transition:after{content:'';position:absolute;inset:0;background:#30473d;animation:trainer-shutter calc(.28s * var(--encounter-speed,1)) ease-in both}.trainer-transition:before{clip-path:polygon(0 0,100% 0,100% 16.7%,0 16.7%,0 33.3%,100% 33.3%,100% 50%,0 50%,0 66.7%,100% 66.7%,100% 83.3%,0 83.3%)}.trainer-transition:after{clip-path:polygon(0 16.7%,100% 16.7%,100% 33.3%,0 33.3%,0 50%,100% 50%,100% 66.7%,0 66.7%,0 83.3%,100% 83.3%,100% 100%,0 100%);animation-name:trainer-shutter-reverse}@keyframes trainer-shutter{from{translate:-100% 0}to{translate:0 0}}@keyframes trainer-shutter-reverse{from{translate:100% 0}to{translate:0 0}}@media(prefers-reduced-motion:reduce){.trainer-transition:before,.trainer-transition:after{animation:none!important;translate:0 0}}
/* Party dossiers and progression screens fit the game display without scrolling. */
.profile-panel .panel-body,.learn-panel .panel-body{padding:2.5%;overflow:hidden;display:flex;flex-direction:column;gap:1.4cqw;min-height:0}
.profile-top{display:flex;align-items:center;gap:3%;min-height:14cqw}.profile-top>img{width:16cqw;height:14cqw;object-fit:contain;image-rendering:pixelated}.profile-top>div{flex:1}.profile-top strong{font-size:3cqw}.profile-top small{display:block;font-size:1.8cqw;line-height:1.7}.profile-top .type{padding:1px 4px}.profile-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.profile-panel .pixel-btn{min-height:6cqw;padding:1.5cqw 1cqw;font-size:2cqw}.profile-content{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}.profile-content .stat-grid{gap:1cqw}.profile-content .stat-grid span{padding:1cqw;font-size:1.8cqw}.profile-content .stat-grid b{font-size:2.5cqw;margin-top:.6cqw}.xp-label{display:flex;justify-content:space-between;font-size:1.65cqw;margin:1.7cqw 0 1cqw}.xp-track{height:1cqw;background:#c6caa5;border-radius:2px;overflow:hidden}.xp-track i{display:block;height:100%;background:#588e9c}.profile-moves{display:grid;grid-template-columns:1fr 1fr;gap:1cqw}.move-card{text-align:left;min-width:0;padding:1.6cqw;background:#e5e8c9;border:1px solid #aab891;line-height:1.45}.move-card b{display:block;font-size:2.2cqw}.move-card span{display:block;font-size:1.65cqw;margin:.7cqw 0;color:#50664f}.move-card small{display:block;font-size:1.65cqw;font-weight:normal;color:#657455;line-height:1.4}.party-order{padding-top:1.5cqw;border-top:1px solid #b3bf97}.party-order>b{font-size:1.8cqw;letter-spacing:.4px}.party-order p{font-size:1.7cqw;margin:.7cqw 0!important}.party-slots{display:grid;grid-template-columns:repeat(6,1fr);gap:1cqw}.party-slots .pixel-btn{padding:.3cqw;position:relative;display:flex;align-items:center;justify-content:center;height:8cqw;min-height:0}.party-slots img{width:7cqw;height:7cqw;object-fit:contain;image-rendering:pixelated}.party-slots span{position:absolute;top:0;left:.7cqw;font-size:1.8cqw}.party-slots button:disabled{opacity:1;border-color:#967a32;box-shadow:inset 0 0 0 1px #d4b55b}
.purchase-card{text-align:center}.purchase-icon{font-size:5cqw;color:#8c793e}.purchase-card h4{margin:1cqw 0!important;font-size:3cqw}.purchase-card p{font-size:2cqw;margin:1.5cqw 0 3cqw}.purchase-facts,.purchase-total{display:flex;justify-content:space-around;gap:2cqw;padding:2cqw;background:#e0e5c2;font-size:2cqw;margin-bottom:3cqw}.purchase-facts b,.purchase-total b{display:block;margin-top:1cqw}.quantity-stepper{display:grid;grid-template-columns:1fr 2fr 1fr;gap:2cqw;align-items:center;margin:2cqw 0}.quantity-stepper button{font-size:5cqw;min-height:10cqw}.quantity-stepper output{font:bold 6cqw var(--mono);font-variant-numeric:tabular-nums}.quantity-shortcuts{display:flex;gap:2cqw;margin-bottom:3cqw}.quantity-shortcuts button{flex:1}.purchase-total{padding:3cqw 1cqw;margin-bottom:2cqw}.purchase-total b{font-size:3cqw}#shop-confirm,#shop-cancel{width:100%;margin-top:1.5cqw;min-height:7cqw}
.learn-new{padding:2cqw 2.5cqw;background:#dce4b7;border:1px solid #99aa79;box-shadow:inset 3px 0 #9c823c}.learn-new>small{font-size:1.8cqw;letter-spacing:.3px}.learn-panel .learn-new h4{font-size:3cqw;margin:1cqw 0}.learn-new>span{font-size:1.9cqw}.learn-panel .learn-new p{font-size:1.9cqw;line-height:1.5;margin:1cqw 0 0}.learn-caption{font-size:1.9cqw;line-height:1.5}.learn-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2cqw;flex:1;min-height:0}.learn-panel .move-card{padding:1.4cqw;min-height:10cqw}.learn-panel .move-card b{font-size:2.15cqw}.learn-panel .pixel-btn{min-height:6.5cqw}.learn-panel .panel-foot{font-size:1.7cqw}#review-moves{font-size:1.65cqw;padding:1cqw;border-style:dashed;background:transparent;box-shadow:none}#keep-moves{font-size:2cqw;padding:1.2cqw}
.evolution-scene{position:absolute;inset:0;z-index:34;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(circle at 50% 47%,#fcf6cd,#d5dfad 60%,#819a73);font-family:var(--mono);text-align:center;padding:6%;overflow:hidden}.evolution-heading{font-size:1.8cqw;letter-spacing:2px;color:#586c4e}.evolution-scene h3{font-size:3cqw;line-height:1.5;margin:3cqw 0}.evolution-stage{height:43cqw;width:43cqw;position:relative;display:grid;place-items:center}.evolution-stage img{position:absolute;width:27cqw;height:27cqw;object-fit:contain;image-rendering:pixelated}.evolution-old{animation:evolve-old var(--evolution-time,2.7s) ease-in-out forwards}.evolution-new{animation:evolve-new var(--evolution-time,2.7s) ease-in-out forwards}.evolution-ring{position:absolute;inset:2cqw;border:2px solid #eff7c8;border-radius:50%;box-shadow:0 0 5cqw #fff7bc,inset 0 0 5cqw #fff7bc;animation:evolve-ring 1.1s ease-in-out infinite alternate}.evolution-orbit{position:absolute;inset:0;border:2px dashed #7c9870;border-radius:50%;animation:spin 5s linear infinite}.evolution-scene p{font-size:2cqw;margin-top:3cqw}.evolution-progress{width:60%;height:1cqw;background:#b3bf96;overflow:hidden;margin-top:3cqw}.evolution-progress i{display:block;height:100%;background:#506d4b;animation:evolve-progress var(--evolution-time,2.7s) linear forwards}.evolution-scene.complete .evolution-new{opacity:1;filter:none;transform:scale(1.12)}.evolution-scene.complete .evolution-old{opacity:0}.evolution-scene.complete .evolution-ring{border-color:#b8953e}
@keyframes evolve-old{0%,14%{opacity:1;filter:none}25%,45%,65%{opacity:1;filter:brightness(0) invert(1);transform:scale(.9)}35%,55%,75%,100%{opacity:0;transform:scale(1.12)}}@keyframes evolve-new{0%,25%,45%,65%{opacity:0;transform:scale(.85);filter:brightness(0) invert(1)}35%,55%,75%{opacity:1;transform:scale(1.05);filter:brightness(0) invert(1)}100%{opacity:1;transform:scale(1);filter:none}}@keyframes evolve-ring{to{transform:scale(.85);opacity:.5}}@keyframes evolve-progress{from{width:0}to{width:100%}}@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.evolution-old{opacity:0}.evolution-new{opacity:1}.evolution-progress i{width:100%}}
#panel.profile-panel .panel-head,#panel.learn-panel .panel-head{padding:2cqw 3cqw;min-height:7cqw}#panel.profile-panel .panel-head h3,#panel.learn-panel .panel-head h3{font-size:2.7cqw}#panel.profile-panel .panel-head button,#panel.learn-panel .panel-head button{width:5cqw;height:5cqw;font-size:3.3cqw}#panel.profile-panel .panel-body,#panel.learn-panel .panel-body{padding:2.5%;overflow:hidden}#panel.profile-panel .panel-foot,#panel.learn-panel .panel-foot{padding:1.4cqw 3cqw;font-size:1.7cqw}#panel.between-panel .panel-body{display:flex;flex-direction:column;gap:1.5cqw}#panel.between-panel .team-roster{height:auto;flex:1}#between-cancel{flex:0 0 auto;font-size:2cqw;padding:1cqw;min-height:6cqw}
#panel .pixel-btn:focus,#dialog .pixel-btn:focus{outline:2px solid #397865;outline-offset:-4px;background-color:#dbe5b9}#panel .pixel-btn.primary:focus,#dialog .pixel-btn.primary:focus{color:#fff9da;background-color:#405d45;outline-color:#e1c367}
/* A bounded viewport is required for keyboard scrolling inside the console. */
#panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;min-width:0}
#panel>.panel-body{min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;scroll-behavior:auto;scroll-padding:8px}
#panel>.panel-body:focus{outline:none}
#panel.profile-panel>.panel-body,#panel.learn-panel>.panel-body{overflow:hidden}
.profile-top,.profile-tabs,.party-order{flex-shrink:0}
.profile-content{justify-content:flex-start}
.profile-moves-panel .profile-top{min-height:10cqw}
.profile-moves-panel .profile-top>img{width:12cqw;height:10cqw}
.profile-moves-panel .profile-top .hpbar{display:none}
.profile-moves-panel .profile-content{flex:1;min-height:0}
.profile-moves-panel .profile-moves{height:100%;grid-template-rows:repeat(2,minmax(0,1fr));align-content:start}
.profile-moves-panel .move-card{display:flex;flex-direction:column;gap:.6cqw;padding:1.4cqw;overflow-wrap:anywhere;min-height:0}
.profile-moves-panel .move-card b{display:flex;justify-content:space-between;align-items:center;gap:1cqw;font-size:2.2cqw}
.profile-moves-panel .move-card em{white-space:nowrap;font:normal 1.65cqw var(--mono)}
.profile-moves-panel .move-card>span{margin:0;font-size:1.7cqw;line-height:1.5}
.profile-moves-panel .move-card>small{font-size:1.8cqw;line-height:1.5}
#panel.profile-moves-panel .field-move{margin-top:auto;width:100%;min-height:5cqw;padding:.6cqw;font-size:1.8cqw;background:#d6dfb4}
/* Feedback is part of the game screen, including errors in open menus. */
#notice{position:absolute;left:3%;right:3%;bottom:3%;max-width:none;transform:translateY(8px);padding:2.5% 3%;font:2.3cqw/1.55 var(--mono);border:3px double #344e40;border-radius:0;background:#faf4da;color:#253d38;box-shadow:2px 3px #253d3830;z-index:40;text-align:left}
#notice.show{transform:translateY(0)}
/* The panel title already identifies the Pokémon; reserve this tab for its four moves. */
.profile-moves-panel .profile-top{display:none}
/* Hall of Fame: full six-member roster remains visible on small screens. */
.hall-ceremony{text-align:center;color:#f5f5df}
.hall-emblem{font-size:40px;color:#f3d578;text-shadow:0 0 18px #e6ba58;animation:hall-glow 1.8s ease-in-out infinite alternate}
.hall-ceremony h4{font-size:19px;margin:5px 0 4px;color:#fff7d7}
.hall-ceremony>p{font-size:12px;line-height:1.55}
.hall-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:14px 0}
.hall-mon{min-width:0;border:1px solid #c4a872;background:linear-gradient(160deg,#314856,#253746);border-radius:8px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:2px}
.hall-mon img{width:48px;height:48px;object-fit:contain;image-rendering:pixelated}
.hall-mon b{max-width:100%;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hall-mon small,.hall-number{font-size:10px;color:#f6d882}
.hall-ceremony .primary{width:100%;margin-top:10px}
.trade-choice{display:block;width:100%;margin:7px 0;text-align:left}
@keyframes hall-glow{from{transform:scale(.94);opacity:.7}to{transform:scale(1.08);opacity:1}}
@media(max-width:460px){.hall-roster{gap:4px}.hall-mon img{width:40px;height:40px}.hall-mon b{font-size:9px}}
