@font-face{font-family:"Pokemon Gen 4";src:url(/fonts/pokemon-gen-4-regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--sky: #4d5ed0;--sky-line: rgba(255, 255, 255, .1);--panel: #ffffff;--panel-soft: #eef3f8;--panel-line: #dfe8f0;--panel-border: #8e9aac;--panel-inner: #e2e8f0;--navy: #3b4578;--navy-deep: #2a3158;--navy-line: #1d2240;--text: #3c3c3c;--text-soft: #69707e;--text-shadow: #d6dde6;--red: #e8443a;--red-light: #f2685b;--red-dark: #b22a22;--orange: #f0973c;--orange-light: #f7b160;--orange-dark: #c06f1a;--teal: #45b3a6;--teal-light: #6cc9be;--teal-dark: #2e857b;--green: #58b85e;--green-light: #7bcd80;--green-dark: #3c8c42;--blue: #4a8fd9;--blue-light: #6fa9e6;--blue-dark: #2f67ab;--gold: #e8b830;--gold-light: #f2cc5c;--gold-dark: #b3881a;--chip-yellow: #f8d048;--chip-yellow-text: #5f4d08;--hp-green: #3fd64a;--hp-amber: #f5c842;--hp-red: #ee5542;--edge-cream: #f1f5f9;--font-pixel: "Pokemon Gen 4", "Hiragino Kaku Gothic ProN", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-pixel);font-weight:400;font-size:18px;color:var(--text);background-color:var(--sky);background-image:repeating-linear-gradient(-45deg,var(--sky-line) 0px,var(--sky-line) 2px,transparent 2px,transparent 14px),linear-gradient(180deg,#5b6ddf,#4d5ed0 40%,#3f50bd);background-attachment:fixed;text-rendering:optimizeSpeed}b,strong,h1,h2,h3{font-weight:400}.pokeball-img{image-rendering:pixelated;object-fit:contain}img.sprite{image-rendering:pixelated}button{font-family:inherit;cursor:pointer}.app{min-height:100vh;display:flex;flex-direction:column}.page{width:100%;max-width:1120px;margin:0 auto;padding:16px 16px 40px;flex:1}.play-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px;align-items:start}@media(max-width:900px){.play-grid{grid-template-columns:1fr}}.topbar{background:linear-gradient(#fde584,#f5cf4a);border-bottom:4px solid var(--navy);box-shadow:0 2px #0000001f;position:sticky;top:0;z-index:50}.topbar-inner{max-width:1120px;margin:0 auto;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar-title{display:flex;align-items:center;gap:10px;background:none;border:none;padding:4px 6px;border-radius:10px;transition:transform .12s ease}.topbar-title:hover{transform:scale(1.03)}.topbar-title:active{transform:scale(.97)}.topbar-title h1{margin:0;font-size:26px;letter-spacing:1px;color:var(--navy-deep);text-shadow:2px 2px 0 #fdeca8;white-space:nowrap}.topbar-title h1 .accent{color:var(--red)}.score-chips{display:flex;align-items:center;gap:8px}.score-chip{display:flex;align-items:center;gap:8px;background:linear-gradient(var(--red-light),var(--red));border:2px solid var(--red-dark);border-radius:999px;padding:4px 12px 4px 10px;box-shadow:inset 0 2px #ffffff4d,0 2px #00000026}.score-chip .label{color:#ffe0dc;font-size:14px;letter-spacing:.5px}.score-chip .value{color:#fff;font-size:19px;min-width:2ch;text-align:right;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.score-chip .value.is-red{color:#ffe79a}@media(max-width:560px){.score-chip .label{font-size:12px}.topbar-title h1{font-size:21px}}.panel{background:var(--panel);border:3px solid var(--panel-border);border-radius:14px;box-shadow:0 0 0 3px #fff,0 0 0 5px #00000014,0 6px 14px #282d5024;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:linear-gradient(var(--navy),var(--navy-deep));border-bottom:3px solid var(--navy-line);color:#fff}.panel-header .title{font-size:18px;letter-spacing:1px;text-shadow:1px 1px 0 rgba(0,0,0,.4)}.name-chip{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(var(--green-light),var(--green));border:2px solid var(--green-dark);border-radius:999px;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.35);font-size:16px;padding:3px 12px;box-shadow:inset 0 2px #ffffff59}.dialog{background:#fff;border:3px solid #6b7384;border-radius:10px;box-shadow:inset 0 0 0 3px var(--panel-inner);padding:14px 16px;font-size:19px;line-height:1.55;color:var(--text);text-shadow:1px 1px 0 var(--text-shadow)}.dialog .em{color:var(--red)}.dialog .em-blue{color:var(--blue-dark)}.dialog-arrow{display:inline-block;margin-left:6px;color:var(--red);animation:arrow-bob .9s steps(2,jump-none) infinite}@keyframes arrow-bob{0%{transform:translateY(0)}to{transform:translateY(3px)}}.touch-btn{--hue: var(--red);--hue-light: var(--red-light);--hue-dark: var(--red-dark);position:relative;border:3px solid var(--hue-dark);border-radius:14px;background:linear-gradient(var(--hue-light) 0%,var(--hue) 55%,var(--hue) 100%);color:#fff;text-shadow:1px 2px 0 rgba(0,0,0,.35);box-shadow:0 0 0 3px var(--edge-cream),0 0 0 4px #0000002e,0 4px 0 3px #00000038,inset 0 3px #fff6,inset 0 -8px #00000024;transition:transform .08s ease,box-shadow .08s ease,filter .15s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.touch-btn:hover:not(:disabled){filter:brightness(1.07)}.touch-btn:active:not(:disabled),.touch-btn.is-pressed{transform:translateY(3px);box-shadow:0 0 0 3px var(--edge-cream),0 0 0 4px #0000002e,0 1px 0 2px #00000038,inset 0 3px #0000001f}.touch-btn:focus-visible{outline:3px dashed var(--navy);outline-offset:4px}.touch-btn:disabled{cursor:default}.touch-btn.hue-red{--hue: var(--red);--hue-light: var(--red-light);--hue-dark: var(--red-dark)}.touch-btn.hue-orange{--hue: var(--orange);--hue-light: var(--orange-light);--hue-dark: var(--orange-dark)}.touch-btn.hue-teal{--hue: var(--teal);--hue-light: var(--teal-light);--hue-dark: var(--teal-dark)}.touch-btn.hue-green{--hue: var(--green);--hue-light: var(--green-light);--hue-dark: var(--green-dark)}.touch-btn.hue-blue{--hue: var(--blue);--hue-light: var(--blue-light);--hue-dark: var(--blue-dark)}.touch-btn.hue-gold{--hue: var(--gold);--hue-light: var(--gold-light);--hue-dark: var(--gold-dark)}.btn-big{font-size:26px;letter-spacing:2px;padding:18px 48px;border-radius:18px}.btn-medium{font-size:18px;letter-spacing:1px;padding:12px 24px}.btn-small{font-size:16px;padding:8px 14px;border-radius:10px;box-shadow:0 0 0 2px var(--edge-cream),0 0 0 3px #0000002e,0 3px 0 2px #00000038,inset 0 2px #fff6,inset 0 -5px #00000024}.battle-screen{position:relative;border:3px solid var(--navy-line);border-radius:14px;box-shadow:0 0 0 3px #fff,0 0 0 5px #00000014,0 6px 14px #282d502e;background:linear-gradient(180deg,#9fd4f2,#b8e0f5 34%,#d8f0c8 48%,#8ec96a 60%,#7abc55 78%,#5fa843);overflow:hidden;min-height:320px;display:flex;flex-direction:column}.battle-screen:before{content:"";position:absolute;left:-10%;right:-10%;top:26%;height:24%;background:radial-gradient(55% 100% at 25% 100%,#a5d98a 0 60%,transparent 61%),radial-gradient(65% 110% at 75% 100%,#97d07a 0 60%,transparent 61%);pointer-events:none}.battle-stage{position:relative;flex:none;height:300px;display:flex;align-items:flex-end;justify-content:center;padding:64px 16px 18px}.grass-platform{position:absolute;bottom:16px;left:50%;transform:translate(-50%);width:min(320px,78%);height:58px;border-radius:50%;background:radial-gradient(ellipse at 50% 38%,#8ed468,#62ad42 70%,#4f9636);box-shadow:inset 0 -5px #0000001f,0 3px 6px #0000002e}.battle-sprite{position:relative;width:160px;height:160px;margin-bottom:18px;z-index:2;image-rendering:pixelated;filter:drop-shadow(0 6px 2px rgba(0,0,0,.25));animation:sprite-enter .45s cubic-bezier(.2,1.4,.4,1)}@keyframes sprite-enter{0%{transform:translate(60px) scale(.4);opacity:0}60%{opacity:1}to{transform:translate(0) scale(1);opacity:1}}.wild-plate{position:absolute;top:14px;left:14px;z-index:3;background:linear-gradient(#545e96,var(--navy));border:3px solid var(--navy-line);border-radius:10px 10px 10px 2px;padding:7px 14px 8px;color:#fff;box-shadow:inset 0 2px #ffffff40,0 3px #0003;max-width:70%}.wild-plate .wild-label{display:block;font-size:12px;letter-spacing:1.5px;color:#b9c3ea}.wild-plate .wild-name{font-size:20px;letter-spacing:1px;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.45);word-break:break-word}.round-plate{position:absolute;top:14px;right:14px;z-index:3;background:linear-gradient(#545e96,var(--navy));border:3px solid var(--navy-line);border-radius:10px 10px 2px;padding:7px 12px 8px;color:#fff;font-size:16px;box-shadow:inset 0 2px #ffffff40,0 3px #0003}.battle-dialog{position:relative;z-index:4;margin:0 10px 10px}.battle-dialog .dialog{min-height:86px}.loading-stage{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:26px;z-index:2}.loading-ball{width:56px;height:56px;animation:ball-wobble .8s ease-in-out infinite}@keyframes ball-wobble{0%,to{transform:rotate(-14deg)}50%{transform:rotate(14deg)}}.loading-text{color:#fff;font-size:17px;text-shadow:1px 1px 0 rgba(0,0,0,.4);letter-spacing:1px;animation:blink 1.2s steps(2,jump-none) infinite}@keyframes blink{0%{opacity:1}to{opacity:.45}}.ball-chain{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 0 2px}.ball-chain .ball{width:34px;height:34px;transition:transform .2s ease}.ball-chain .ball.is-current{animation:ball-bounce .9s ease-in-out infinite}.ball-chain .ball.is-done{animation:ball-pop .3s cubic-bezier(.2,1.8,.4,1)}.ball-chain .ball.is-empty{opacity:.85}@keyframes ball-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes ball-pop{0%{transform:scale(.4)}70%{transform:scale(1.25)}to{transform:scale(1)}}.stat-pad{background:var(--panel-soft);background-image:linear-gradient(var(--panel-line) 1px,transparent 1px),linear-gradient(90deg,var(--panel-line) 1px,transparent 1px);background-size:20px 20px;border:3px solid var(--panel-border);border-radius:14px;box-shadow:0 0 0 3px #fff,0 0 0 5px #00000014,0 6px 14px #282d5024;padding:14px}.stat-pad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:560px){.stat-pad-grid{grid-template-columns:repeat(2,1fr)}}.stat-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:76px;padding:10px 6px}.stat-btn .stat-name{font-size:19px;letter-spacing:1px}.stat-btn .stat-hint{font-size:12px;opacity:.85;letter-spacing:1px}.stat-btn.is-used{background:linear-gradient(#e4e8ee,#d0d6de);border-color:#9aa4b2;color:var(--text);text-shadow:1px 1px 0 #eef1f5;box-shadow:0 0 0 3px var(--edge-cream),0 0 0 4px #0000001f,inset 0 3px 5px #00000026;transform:translateY(2px)}.stat-btn.is-used .stat-value{font-size:22px;color:var(--navy-deep);animation:value-reveal .35s cubic-bezier(.2,1.6,.4,1)}@keyframes value-reveal{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.stat-btn .stat-owner{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-soft);text-transform:uppercase;letter-spacing:.5px}.stat-btn .stat-owner img{width:26px;height:26px;image-rendering:pixelated;margin:-6px 0}.summary-body{padding:12px}.stat-rows{display:flex;flex-direction:column}.stat-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:8px}.stat-row:nth-child(2n){background:var(--panel-soft)}.stat-row .chip{background:linear-gradient(#fbdf72,var(--chip-yellow));border:2px solid #d4ab28;color:var(--chip-yellow-text);border-radius:999px;font-size:14px;letter-spacing:.5px;padding:2px 10px;min-width:88px;text-align:center;box-shadow:inset 0 1px #fff9;white-space:nowrap}.stat-row .row-value{font-size:20px;color:var(--navy-deep);min-width:3ch;text-align:right}.stat-row .row-value.is-empty{color:#c0bfae}.stat-row .row-value.is-new{animation:value-reveal .35s cubic-bezier(.2,1.6,.4,1)}.stat-row .row-from{display:flex;align-items:center;margin-left:auto}.stat-row .row-from img{width:30px;height:30px;image-rendering:pixelated;margin:-8px 0}.bst-section{margin-top:10px;padding:10px;background:var(--panel-soft);border:2px solid var(--panel-inner);border-radius:10px}.bst-line{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.bst-line .chip{background:linear-gradient(#fbdf72,var(--chip-yellow));border:2px solid #d4ab28;color:var(--chip-yellow-text);border-radius:999px;font-size:14px;padding:2px 12px;box-shadow:inset 0 1px #fff9}.bst-line .bst-value{font-size:28px;color:var(--navy-deep)}.bst-line .bst-goal{font-size:13px;color:var(--text-soft)}.hp-bar{position:relative;height:16px;background:var(--navy-deep);border:2px solid var(--navy-line);border-radius:999px;overflow:hidden;box-shadow:inset 0 2px 2px #0006}.hp-bar .fill{height:100%;border-radius:999px;background:linear-gradient(#8df593,var(--hp-green) 45%,#2faf39);transition:width .5s cubic-bezier(.3,1,.4,1),background .3s ease}.hp-bar .fill.tier-mid{background:linear-gradient(#fce088,var(--hp-amber) 45%,#d9a51d)}.hp-bar .fill.tier-low{background:linear-gradient(#f8978a,var(--hp-red) 45%,#c43425)}.hp-bar .goal-marker{position:absolute;top:-2px;bottom:-2px;width:3px;background:#fff;box-shadow:0 0 0 1px #00000059}.history-body{max-height:420px;overflow-y:auto;padding:8px 10px;scrollbar-width:thin}.history-empty{color:var(--text-soft);font-size:16px;text-align:center;padding:18px 8px;text-shadow:1px 1px 0 var(--text-shadow)}.history-entry{display:flex;gap:10px;align-items:flex-start;padding:8px 6px;border-bottom:2px dashed var(--panel-inner);animation:entry-in .3s ease}.history-entry:last-child{border-bottom:none}@keyframes entry-in{0%{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}.history-entry .entry-sprite{width:56px;height:56px;flex-shrink:0;image-rendering:pixelated}.history-entry .entry-name{font-size:16px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;color:var(--navy-deep)}.entry-stats{display:grid;grid-template-columns:repeat(3,auto);gap:2px 8px;font-size:13px}.entry-stat{display:flex;justify-content:space-between;gap:6px;padding:1px 5px;border-radius:5px;color:var(--text-soft)}.entry-stat .v{color:var(--text)}.entry-stat.is-taken{background:var(--chip-yellow);color:var(--chip-yellow-text)}.entry-stat.is-taken .v{color:var(--chip-yellow-text);font-weight:700}.entry-stat.is-max{color:var(--green-dark)}.entry-stat.is-max .v{color:var(--green-dark);font-weight:700}.start-hero{text-align:center;padding:26px 12px 10px}.start-logo{display:inline-flex;align-items:center;gap:14px;margin-bottom:8px}.start-logo .logo-ball{width:52px;height:52px;animation:ball-bounce 1.6s ease-in-out infinite}.start-logo h1{margin:0;font-size:clamp(38px,7.5vw,62px);letter-spacing:2px;color:#fff;text-shadow:3px 3px 0 var(--navy-deep),6px 6px 0 rgba(0,0,0,.25)}.start-logo h1 .accent{color:#ffd84a}.gen-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;padding:14px}.gen-btn{display:flex;align-items:center;justify-content:center;gap:7px;min-height:50px;font-size:17px}.gen-btn .gen-ball{width:22px;height:22px}.gen-btn.is-off{background:linear-gradient(#e4e8ee,#ccd3dc);border-color:#9aa4b2;color:#828a98;text-shadow:1px 1px 0 #eef1f5;box-shadow:0 0 0 3px var(--edge-cream),0 0 0 4px #0000001a,inset 0 3px 5px #00000021;transform:translateY(2px)}.gen-btn.is-off .gen-ball{filter:grayscale(1) opacity(.6)}.start-actions{text-align:center;padding:18px 0 28px}.result-stage{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:14px;z-index:2}.result-banner{font-size:36px;letter-spacing:2px;color:#fff;text-shadow:2px 2px 0 rgba(0,0,0,.45),0 0 18px rgba(255,255,255,.35);animation:banner-pop .5s cubic-bezier(.2,1.6,.4,1)}@keyframes banner-pop{0%{transform:scale(.3) rotate(-4deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.closest-card{display:flex;align-items:center;gap:12px;background:#ffffffeb;border:3px solid var(--panel-border);border-radius:12px;padding:8px 16px;box-shadow:0 4px #00000026;animation:entry-in .4s ease;max-width:92%}.closest-card img{width:64px;height:64px;image-rendering:pixelated}.closest-card .closest-text{font-size:16px;line-height:1.5;text-align:left}.closest-card .closest-name{color:var(--navy-deep);text-transform:uppercase}.end-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding:14px}.sparkle{position:absolute;font-size:18px;animation:sparkle-fall 1.6s ease-in infinite;pointer-events:none;z-index:1}@keyframes sparkle-fall{0%{transform:translateY(-30px) scale(.6) rotate(0);opacity:0}20%{opacity:1}to{transform:translateY(280px) scale(1.1) rotate(180deg);opacity:0}}.footer{border-top:4px solid var(--navy);background:linear-gradient(#f5cf4a,#fde584);padding:12px 16px}.footer-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.footer .credits{font-size:14px;color:#6b5a10;text-shadow:1px 1px 0 #fdeca8}.stack{display:flex;flex-direction:column;gap:16px;min-width:0}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:100;animation:entry-in .25s ease}
