:root{color-scheme:dark;--bg:#101b27;--surface:#182634;--line:#2c4051;--ink:#f6f2df;--muted:#9aabb9;--gold:#ffd12d;--blue:#356bb4}
*{box-sizing:border-box}body{margin:0;min-width:300px;background:radial-gradient(ellipse at 50% 0,#203b55 0,transparent 600px),var(--bg);color:var(--ink);font:11px/1.9 var(--text-font)}
button,input,summary{font:inherit}button,summary,label.import-button{cursor:pointer;touch-action:manipulation}button{color:inherit}button:disabled{opacity:.4;cursor:wait}button:focus-visible,summary:focus-visible,input:focus-visible,.import-button:focus-within{outline:3px solid var(--gold);outline-offset:5px}button,summary{-webkit-tap-highlight-color:transparent}
.masthead{padding:42px 24px 36px;text-align:center}.brand-images{display:flex;justify-content:center;align-items:center;gap:24px}.pokeball-logo{width:74px;height:auto;filter:drop-shadow(0 5px 12px #0005)}.pokemon-logo{width:min(380px,65vw);height:auto;filter:drop-shadow(0 7px 12px #0004)}h1,h2,.game-name{font-family:var(--title-font);font-weight:400}h1{font-size:40px;line-height:1.25;letter-spacing:2px;color:var(--gold);margin:17px 0 0;text-shadow:2px 3px 0 #254e82}
main{max-width:1080px;margin:0 auto;padding:0 32px 64px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card{min-width:0}.game-button{display:block;width:100%;padding:16px 16px 12px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#1c2c3c,#15212e);box-shadow:0 7px 20px #0002;transition:transform .18s,border-color .18s,box-shadow .18s}.game-button:hover{transform:translateY(-5px);border-color:#ffd12d99;box-shadow:0 12px 28px #0004}.game-button img{width:100%;height:auto;display:block;aspect-ratio:1;object-fit:contain;border-radius:4px}.game-name{display:block;font-size:29px;line-height:1.4;letter-spacing:1px;margin-top:13px;color:var(--ink)}
dialog{width:min(1060px,96vw);max-height:96dvh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--bg);color:var(--ink)}dialog::backdrop{background:#020811df}.reader-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}h2{font-size:32px;line-height:1.25;margin:0;color:var(--gold);letter-spacing:1px}.icon-button{display:grid;place-items:center;flex:none;width:42px;height:42px;background:var(--surface);border:1px solid var(--line);border-radius:7px}.icon-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}#screen{height:min(65dvh,680px);min-height:320px;background:#080f17;border-radius:6px;overflow:hidden}#screen iframe{width:100%;height:100%;border:0}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--muted);gap:12px}.loading img{object-fit:contain}.reader-toolbar{display:flex;align-items:flex-start;gap:10px;margin-top:14px}.reader-toolbar>button,.import-button,summary,#reset-keys{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:10px 15px;font-size:10px;line-height:1.8}.reader-toolbar>button:hover,.import-button:hover,summary:hover{border-color:var(--gold)}#export{background:var(--gold);border-color:var(--gold);color:#12243b}.import-button{position:relative;display:block;overflow:hidden}.import-button[aria-disabled=true]{opacity:.4}.import-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.reader-toolbar>details{margin-left:auto;min-width:135px}summary{list-style:none;text-align:center}summary::-webkit-details-marker{display:none}summary::after{content:' +';color:var(--gold)}details[open] summary::after{content:' −'}.controls-content{border:1px solid var(--line);border-radius:6px;padding:16px;margin-top:10px;background:var(--surface);min-width:275px}.binding{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:4px 0;font-size:9px}.binding button{background:var(--bg);border:1px solid var(--line);padding:6px 10px;border-radius:4px;min-width:115px;font-size:9px}.touch-switch{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:10px}.touch-switch input{accent-color:var(--gold);width:17px;height:17px}#reset-keys{width:100%;margin-top:14px;padding:7px;font-size:8px}.save-note{color:var(--muted);font-size:8px;margin:14px 0 0}#status{font-size:9px;line-height:1.9;color:var(--gold);overflow-wrap:anywhere;margin:8px 0 0}#status:empty{display:none}
@media(max-width:700px){.masthead{padding:30px 18px 30px}.brand-images{gap:14px}.pokeball-logo{width:48px}.pokemon-logo{width:min(300px,66vw)}h1{font-size:32px;margin-top:13px}main{padding:0 16px 40px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.game-button{padding:10px 10px 7px;border-radius:8px}.game-name{font-size:24px;letter-spacing:.4px;margin-top:8px}dialog{padding:12px;width:98vw}h2{font-size:27px}.reader-toolbar{gap:7px;flex-wrap:wrap}.reader-toolbar>button,.import-button,summary{padding:9px 10px;font-size:8px}.reader-toolbar>details{min-width:120px}.controls-content{min-width:100%;width:100%}details[open]{width:100%;order:3}.reader-toolbar>details[open]{margin-left:0}#screen{height:57dvh;min-height:300px}.save-note{font-size:7px}}
@media(max-width:370px){.game-name{font-size:21px}.game-button{padding:8px}.grid{gap:10px}h1{font-size:29px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
