:root{color-scheme:light dark;--bg: light-dark(#e6e1fb, #17132f);--ink: light-dark(#221a4d, #0c0920);--panel: light-dark(#faf8ff, #262052);--panel-hi: light-dark(#d9d2fb, #342c6b);--panel-lo: light-dark(#ece8fc, #1c173f);--line: light-dark(#b9b0ea, #453c8a);--text: light-dark(#1d163f, #f3f0ff);--muted: light-dark(#554d87, #b2abdc);--gold: #ffd34d;--gold-text: light-dark(#8a5a00, #ffd34d);--gold-lo: #b98a12;--shade: light-dark(#221a4d26, #0000003d);--rarity: #9aa3b5;--pixel: "Pixelify Sans", "DotGothic16", ui-monospace, "Cascadia Mono", Menlo, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--s1: .25rem;--s2: .5rem;--s3: .75rem;--s4: 1rem;--s5: 1.5rem;--s6: 2rem;--s7: 3rem;--fs-2xs: .6875rem;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-md: .9375rem;--fs-lg: 1.125rem;--fs-xl: 1.5rem;--fs-2xl: 1.875rem;--fs-3xl: 2.25rem;--edge: 3px;--radius: 4px}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}html{scrollbar-gutter:stable}[hidden]{display:none!important}body{margin:0;min-height:100dvh;color:var(--text);font:500 1rem/1.5 var(--pixel);background-color:var(--bg);background-image:linear-gradient(color-mix(in srgb,var(--text) 4%,transparent) 2px,transparent 2px),linear-gradient(90deg,color-mix(in srgb,var(--text) 4%,transparent) 2px,transparent 2px);background-size:2rem 2rem}.app{max-width:65rem;margin:0 auto;padding:max(var(--s4),env(safe-area-inset-top)) max(var(--s4),env(safe-area-inset-right)) var(--s7) max(var(--s4),env(safe-area-inset-left))}.block{background:var(--panel);border:var(--edge) solid var(--ink);border-radius:var(--radius);box-shadow:inset 0 3px #ffffff1c,inset 0 -4px 0 var(--shade),0 6px 0 var(--ink)}.label{font-size:var(--fs-sm);letter-spacing:.3px;color:var(--muted)}.chip{display:inline-block;padding:var(--s1) var(--s2);font-size:var(--fs-sm);letter-spacing:.3px;color:var(--text);background:var(--panel-lo);border:2px solid var(--ink);border-radius:3px}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.btn{padding:var(--s2) var(--s3);font-size:var(--fs-md);color:var(--text);background:var(--panel-hi);border:var(--edge) solid var(--ink);border-radius:var(--radius);box-shadow:inset 0 2px #ffffff24,inset 0 -3px 0 var(--shade),0 4px 0 var(--ink);transition:transform .05s,box-shadow .05s}.btn:hover{filter:brightness(1.15)}.btn:active{transform:translateY(3px);box-shadow:inset 0 2px #ffffff24,inset 0 -3px 0 var(--shade),0 1px 0 var(--ink)}.btn:disabled{opacity:.4;cursor:default;filter:none}.ic{inline-size:1.25em;block-size:1.25em;vertical-align:-.2em}.btn.has-icon{display:inline-flex;align-items:center;gap:var(--s2)}.btn.icon{inline-size:2.875rem;padding-inline:0;display:grid;place-items:center}.btn.icon .ic{inline-size:1.375rem;block-size:1.375rem}.btn.icon[aria-pressed=false]{color:var(--muted);text-decoration:line-through}.btn.square{padding:var(--s1) var(--s2);display:grid;place-items:center}.btn.square .ic{inline-size:1.25rem;block-size:1.25rem}.btn.primary{padding:var(--s3) var(--s7);font-size:var(--fs-xl);font-weight:700;color:#2a1d00;background:var(--gold);box-shadow:inset 0 3px #fff3b8,inset 0 -5px 0 var(--gold-lo),0 6px 0 var(--ink);animation:nudge 2.4s ease-in-out infinite}.btn.primary:active{transform:translateY(5px);box-shadow:inset 0 3px #fff3b8,inset 0 -5px 0 var(--gold-lo),0 1px 0 var(--ink);animation:none}@keyframes nudge{0%,86%,to{transform:translateY(0)}92%{transform:translateY(-5px)}}.top{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s5)}.logo{display:flex;align-items:center;gap:var(--s3)}.logo h1{margin:0;font:700 var(--fs-2xl)/1 var(--pixel);color:var(--gold-text);text-shadow:0 3px 0 var(--ink);letter-spacing:.5px}.logo p{margin:var(--s1) 0 0;font-size:var(--fs-sm);color:var(--muted)}.actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--s2)}.actions .btn{white-space:nowrap}@media(max-width:800px){.actions{flex:1 0 100%;justify-content:space-between}}@media(max-width:640px){#saveBtn{flex:0 0 auto;inline-size:2.875rem;padding-inline:0;justify-content:center}#saveBtn .btn-label{display:none}}.hud{display:grid;grid-template-columns:1fr 2fr 1fr 1fr;gap:var(--s3);margin-bottom:var(--s5)}.stat{padding:var(--s2);display:grid;align-content:center;gap:var(--s1);text-align:center}.stat b{display:block;font:700 var(--fs-2xl)/1.1 var(--pixel);font-variant-numeric:tabular-nums}.stat span{display:block;font-size:var(--fs-xs);color:var(--muted);letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat.streak b{color:var(--gold-text)}.week{display:flex;align-items:center;justify-content:space-evenly;padding:var(--s2)}.week div{display:grid;justify-items:center;gap:var(--s1);font-size:var(--fs-2xs);color:var(--muted)}.week i{width:1.375rem;height:1.375rem;background:var(--panel-lo);border:2px solid var(--ink);border-radius:2px;box-shadow:inset 0 -3px 0 var(--shade)}.week .on i{background:var(--gold);box-shadow:inset 0 2px #fff3b8,inset 0 -3px 0 var(--gold-lo)}.week .today i{border-color:var(--gold);animation:blink 1.2s steps(2) infinite}.week .off i{opacity:.35}@keyframes blink{50%{background:color-mix(in srgb,var(--gold) 45%,var(--panel-lo))}}.layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--s5);align-items:stretch}.stage{padding:var(--s3);position:relative;overflow:hidden}.viewport{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1;overflow:hidden;container-type:inline-size;border:var(--edge) solid var(--ink);border-radius:3px;background:linear-gradient(180deg,var(--sky1, #2b2560),var(--sky2, #4a3c96));box-shadow:inset 0 4px #00000030}#pet{image-rendering:pixelated;cursor:grab;touch-action:pan-y}#pet:active{cursor:grabbing}.viewport .chip{position:absolute}.tag{left:var(--s2);top:var(--s2)}.event{left:var(--s2);top:2.5rem;color:var(--ink);background:var(--gold);font-weight:700}.hint{right:var(--s2);bottom:var(--s2);color:var(--muted);transition:opacity .4s;pointer-events:none}.terrain{right:var(--s2);top:var(--s2);min-height:0;display:inline-flex;align-items:center;gap:var(--s1)}.terrain #terrainIcon{display:inline-flex}.terrain .ic{display:block;inline-size:1.05em;block-size:1.05em}.terrain[aria-pressed=false]{color:var(--muted)}.hint.gone{opacity:0}.viewport.shiny:before,.viewport.shiny:after{content:"";position:absolute;left:0;top:0;width:4px;height:4px;pointer-events:none;color:#fff7c2;box-shadow:18cqw 22cqw,78cqw 16cqw,30cqw 70cqw,86cqw 58cqw,55cqw 9cqw,9cqw 48cqw;animation:twinkle 1.6s steps(2) infinite}.viewport.shiny:after{box-shadow:68cqw 34cqw,12cqw 80cqw,44cqw 28cqw,90cqw 82cqw,24cqw 40cqw,62cqw 76cqw;animation-delay:.8s}@keyframes twinkle{50%{opacity:0}}.chip.shiny{color:var(--ink);background:linear-gradient(90deg,#ffe27a,#ff9ad5,#8fd8ff);font-weight:700}.tile.shiny:after{content:"\2605";position:absolute;right:5px;top:0;font-size:var(--fs-sm);color:var(--gold-text);text-shadow:0 2px 0 var(--ink)}.cta{display:grid;justify-items:center;gap:var(--s3);padding:var(--s4) 0 var(--s1)}.cta .row{display:flex;justify-content:center;gap:var(--s2);min-height:2.75rem}.cta .btn{white-space:nowrap}.status{margin:0;min-height:2lh;text-wrap:balance;font-size:var(--fs-md);color:var(--muted);font-variant-numeric:tabular-nums;text-align:center}.stage.flash:after{content:"";position:absolute;inset:0;background:#fff;pointer-events:none;animation:flash .7s ease-out forwards}@keyframes flash{0%{opacity:.95}to{opacity:0}}.confetti{position:absolute;top:40%;left:50%;width:10px;height:10px;border:2px solid var(--ink);pointer-events:none;animation:confetti 1.5s cubic-bezier(.1,.7,.3,1) forwards}@keyframes confetti{to{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}.dex{padding:var(--s4)}.dex-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}.nav{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-md);color:var(--muted);font-variant-numeric:tabular-nums}.dex h2{margin:var(--s3) 0 var(--s2);font:700 var(--fs-3xl)/1.05 var(--pixel);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 3px 0 var(--ink)}.badges{display:flex;flex-wrap:wrap;gap:var(--s2);min-height:1.75rem}.rarity{color:var(--ink);background:var(--rarity);font-weight:700}.gender{font-weight:700;padding-inline:var(--s2)}.gender.male{color:light-dark(#1d5fb0,#8fc4ff)}.gender.female{color:light-dark(#b0338a,#ff9ad5)}.flavor{margin:var(--s3) 0;padding:var(--s3);block-size:calc(4lh + var(--s5));overflow:hidden;text-wrap:pretty;color:var(--text);font:var(--fs-md)/1.5 var(--sans);background:var(--panel-lo);border:2px solid var(--ink);border-radius:3px}.stats{display:grid;gap:var(--s2);margin-bottom:var(--s4)}.stats div{display:grid;grid-template-columns:4.875rem 1fr 1.375rem;align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--muted)}.stats .bar{display:grid;grid-template-columns:repeat(10,1fr);gap:2px}.stats .bar i{height:.75rem;background:color-mix(in srgb,var(--text) 9%,transparent);border:2px solid var(--line);border-radius:1px}.stats .bar i.on{background:var(--rarity);border-color:var(--ink);box-shadow:inset 0 2px #fff6,inset 0 -2px #0003}.stats b{color:var(--text);text-align:right;font-variant-numeric:tabular-nums}.facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2) var(--s3);margin:0 0 var(--s4)}.facts div{min-width:0}.facts dt{font-size:var(--fs-xs);letter-spacing:.3px;color:var(--muted)}.facts dt,.facts dd{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.facts dd{margin:0;font-size:var(--fs-md)}.facts dd:first-letter{text-transform:uppercase}.traits{list-style:none;display:flex;flex-wrap:wrap;align-content:start;gap:var(--s2);margin:0;padding:0;min-height:3.625rem}.traits li{font-size:var(--fs-xs);padding:1px var(--s2);background:var(--panel-lo);border:2px solid var(--ink);border-radius:3px;color:var(--muted)}.traits li b{color:var(--text);font-weight:500}.moves-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s2)}.move-btn{padding:var(--s2) var(--s3);font-size:var(--fs-sm)}.move-btn.teach{color:var(--gold-text);border-style:dashed}.tile.missed.revivable{opacity:.8;cursor:pointer;border-style:dashed;border-color:var(--gold);color:var(--gold-text)}.tile.missed.revivable:hover{opacity:1;background:var(--panel-hi)}.collection{margin-top:var(--s6);padding:var(--s4)}.collection-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s3)}.collection h2{margin:0;font:700 var(--fs-xl)/1 var(--pixel)}.collection h3{margin:var(--s5) 0 var(--s3);font-weight:500}.pager{display:flex;align-items:center;justify-content:center;gap:var(--s3);margin-top:var(--s4);font-size:var(--fs-md);color:var(--muted);font-variant-numeric:tabular-nums}.empty{color:var(--muted);font-size:var(--fs-md);margin:0 0 var(--s2)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));gap:var(--s2)}.tile{position:relative;width:100%;aspect-ratio:26 / 27;padding:0;display:grid;place-items:center;background:var(--panel-lo);border:var(--edge) solid var(--ink);border-radius:var(--radius);box-shadow:inset 0 -4px 0 var(--rarity),0 4px 0 var(--ink)}button.tile:hover,.tile.active{background:var(--panel-hi)}.tile.active{outline:3px solid var(--gold);outline-offset:1px}.tile canvas{width:92%;height:auto;image-rendering:pixelated}.tile span{position:absolute;left:5px;top:2px;font-size:var(--fs-xs);color:var(--muted)}.tile.mystery b{font:700 2.5rem/1 var(--pixel);color:var(--gold-text);animation:blink-text 1.2s steps(2) infinite}@keyframes blink-text{50%{opacity:.45}}.tile.missed{--rarity: var(--shade);opacity:.5;padding:var(--s4) var(--s2);color:var(--muted);font-size:var(--fs-xs);letter-spacing:.3px;text-align:center;text-wrap:balance}footer{margin-top:var(--s6);text-align:center;font-size:var(--fs-sm);color:var(--muted)}footer p{margin:0 0 var(--s1)}footer .ver{font-size:var(--fs-xs, .75rem);opacity:.6;letter-spacing:.5px}footer .ver:empty{display:none}dialog{width:min(28.75rem,calc(100vw - var(--s6)));padding:var(--s5);color:var(--text)}dialog::backdrop{background:light-dark(#221a4d99,#090716d9)}dialog h2{margin:0 0 var(--s2);font:700 var(--fs-xl)/1 var(--pixel)}dialog p,dialog label{font:var(--fs-md)/1.5 var(--sans);color:var(--muted)}dialog label{display:block;margin:var(--s5) 0 var(--s2)}.note{margin:var(--s3) 0;padding:var(--s3);font:500 var(--fs-md)/1.45 var(--sans);color:var(--text);background:color-mix(in srgb,var(--gold) 14%,var(--panel-lo));border:2px solid var(--gold);border-radius:3px;box-shadow:inset 0 2px #ffffff1c}.note:before{content:"\26a0";margin-right:var(--s2);color:var(--gold-text);font-weight:700}.code-row{display:flex;gap:var(--s2);align-items:stretch}#codeRow{flex-wrap:wrap}#codeRow code{flex:1 1 100%;white-space:nowrap;overflow-x:auto}#codeRow .btn{flex:1;justify-content:center}.code-row code.masked{letter-spacing:2px;color:var(--muted)}.code-row code,.code-row input{flex:1;min-width:0;padding:var(--s2) var(--s3);font:var(--fs-sm)/1.4 ui-monospace,Menlo,Consolas,monospace;color:var(--text);background:var(--panel-lo);border:var(--edge) solid var(--ink);border-radius:3px;overflow-wrap:anywhere}#closeDlg{margin-top:var(--s3)}#spinBtn{color:var(--gold-text);font-weight:700;font-variant-numeric:tabular-nums}.slot{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);margin:var(--s4) 0}.slot .reel{height:5rem;overflow:hidden;position:relative;background:var(--panel-lo);border:var(--edge) solid var(--ink);border-radius:var(--radius);box-shadow:inset 0 3px 0 var(--shade)}.strip{display:flex;flex-direction:column;will-change:transform}.sym{height:5rem;flex:none;display:grid;place-items:center}.sym .ic{inline-size:2.75rem;block-size:2.75rem}.sym.coins{color:var(--gold-text)}.sym.sparkles{color:#c58bff}.sym.snowflake{color:#5fb0ff}.sym.star{color:#ff7ac8}.sym.trophy{color:#6fd28a}.slot.win .reel{outline:3px solid var(--gold);outline-offset:-1px;animation:pop .4s ease-out}@keyframes pop{0%{transform:scale(.92)}60%{transform:scale(1.04)}to{transform:scale(1)}}.spin-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s4)}.balance{display:inline-flex;align-items:center;gap:var(--s2);font:700 var(--fs-xl)/1 var(--pixel);color:var(--gold-text)}.balance .ic{inline-size:1.5rem;block-size:1.5rem}.spin-help{margin:var(--s4) 0;display:grid;gap:var(--s3)}.spin-help>div{display:grid;grid-template-columns:1.5rem 1fr;gap:var(--s2);align-items:start}.spin-help .ic{inline-size:1.5rem;block-size:1.5rem;margin-top:2px}.spin-help dt{font-weight:700;color:var(--text)}.spin-help dd{margin:0;font-size:var(--fs-sm);color:var(--muted)}#closeSpin{display:block;margin-top:var(--s2)}@media(max-width:900px){.layout{gap:var(--s3)}.dex h2{font-size:var(--fs-2xl)}.stats div{grid-template-columns:4.375rem 1fr 1.125rem}}@media(max-width:680px){.layout{grid-template-columns:minmax(0,1fr)}.hud{grid-template-columns:repeat(3,1fr)}.week{grid-column:1 / -1;grid-row:2}.app{display:flex;flex-direction:column}.top{order:0}.layout{order:1}.hud{order:2;margin:var(--s5) 0 0}.collection{order:3}footer{order:4}}@media(max-width:480px){.app{padding-left:max(var(--s3),env(safe-area-inset-left));padding-right:max(var(--s3),env(safe-area-inset-right))}.top{margin-bottom:var(--s3)}.logo h1{font-size:var(--fs-xl)}.logo p{font-size:var(--fs-xs)}.flavor{block-size:calc(5lh + var(--s5))}.hud{gap:var(--s2)}.stage{padding:var(--s2)}.btn.primary{padding:var(--s3) var(--s5);width:100%}.grid{grid-template-columns:repeat(auto-fill,minmax(5.25rem,1fr))}}@media(pointer:coarse){.btn{min-height:2.75rem}.btn.square{min-width:2.75rem}}@media(prefers-reduced-motion:reduce){.stage.flash:after,.confetti{animation:none;display:none}.btn.primary,.week .today i,.tile.mystery b,.viewport.shiny:before,.viewport.shiny:after{animation:none}}
