*{box-sizing:border-box}body{color:#f8f8f8;-webkit-font-smoothing:none;background:#1a1c2c;margin:0;font-family:"Press Start 2P",Courier New,monospace;line-height:1.5}.stage{place-items:center;width:100%;min-height:100dvh;display:grid;overflow:hidden}.stage--away{visibility:hidden;width:0;height:0;min-height:0;position:absolute;overflow:hidden}.frame{background:var(--screen);color:var(--ink);flex-direction:column;display:flex;position:relative;overflow:hidden}.badge-art{display:block}.badge-art__outline,.badge-art__flask{fill:var(--ink)}.badge-art__light{fill:color-mix(in srgb, var(--hp-mid) 55%, var(--screen))}.badge-art__mid{fill:var(--hp-mid)}.badge-art__dark{fill:color-mix(in srgb, var(--hp-mid) 60%, var(--ink))}.badge-art__bracket{fill:var(--focus)}.badge-art__glass{fill:var(--panel)}.badge-art__liquid{fill:var(--hp-high)}.badge-art__shine{fill:var(--panel);opacity:.8;animation:.8s linear .3s both badge-shine;transform:translate(-3px)}@keyframes badge-shine{0%{transform:translate(-3px)}to{transform:translate(47px)}}@media (prefers-reduced-motion:reduce){.badge-art__shine{display:none}}.bag-art{display:block}.bag-art__outline{fill:var(--ink)}.bag-art__light{fill:color-mix(in srgb, var(--hp-low) 55%, var(--screen))}.bag-art__mid{fill:var(--hp-low)}.bag-art__dark{fill:color-mix(in srgb, var(--hp-low) 60%, var(--ink))}.bag-art__flap{fill:color-mix(in srgb, var(--hp-low) 80%, var(--ink))}.bag-art__buckle,.bag-art__gold{fill:var(--hp-mid)}.bag-art__gold-dark{fill:color-mix(in srgb, var(--hp-mid) 60%, var(--ink))}.bag-art__pocket{fill:color-mix(in srgb, var(--hp-low) 30%, var(--screen))}.bag-art__zipper{fill:color-mix(in srgb, var(--hp-low) 40%, var(--ink))}.bag-art__paper{fill:var(--panel)}.bag-art__text{fill:var(--hp-track)}.bag-art__blue{fill:var(--focus)}.bag-art__grey{fill:color-mix(in srgb, var(--sprite-bg) 60%, var(--ink))}:root{--bg:#1a1c2c;--screen:#f4f1de;--ink:#1a1c2c;--panel:#f8f8f8;--border:#1a1c2c;--hp-high:#38b764;--hp-mid:#f4c430;--hp-low:#e03c3c;--hp-track:#5d5d6e;--focus:#3b5dc9;--selected-bg:#dbe6ff;--sprite-bg:#b8b5a2;--grass-light:color-mix(in srgb, var(--hp-high) 45%, var(--screen));--grass-mid:color-mix(in srgb, var(--hp-high) 65%, var(--screen));--grass-dark:color-mix(in srgb, var(--hp-high) 75%, var(--ink));--grass-rim:color-mix(in srgb, var(--sprite-bg) 55%, var(--ink))}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.battle,.party,.bag,.badge,.summary{flex-direction:column;flex:1;gap:.5em;min-height:0;padding:.5em;display:flex}.field{background:var(--screen);border:.25em solid var(--border);min-height:0;color:var(--ink);--opponent-size:min(40cqh, 28cqw);--player-size:min(55cqh, 34cqw);--player-left:8%;--professor-size:min(60cqh, 36cqw);flex:1;position:relative;container-type:size}.field--away{visibility:hidden;border:0;flex:none;width:0;height:0;position:absolute;overflow:hidden}.sprite{aspect-ratio:1;width:min(40cqh,28cqw);position:absolute}.sprite--opponent{width:var(--opponent-size);top:8%;right:8%}.sprite--professor{width:var(--professor-size);top:50%;left:50%;translate:-50% -50%}.sprite--player{bottom:calc(3cqh + var(--player-size) * .15);left:var(--player-left);width:var(--player-size)}.platform{width:calc(var(--pad-size) * 1.2);height:calc(var(--pad-size) * .3);pointer-events:none;display:block;position:absolute}.platform__light{fill:var(--grass-light)}.platform__mid{fill:var(--grass-mid)}.platform__dark{fill:var(--grass-dark)}.platform__rim{fill:var(--grass-rim)}.platform--opponent{--pad-size:var(--opponent-size);top:calc(8% + var(--opponent-size) * .85);right:calc(8% - var(--opponent-size) * .1)}.platform--professor{--pad-size:var(--professor-size);top:calc(50% + var(--professor-size) * .35);left:50%;translate:-50%}.platform--player{--pad-size:var(--player-size);bottom:3cqh;left:calc(var(--player-left) - var(--player-size) * .1)}.sprite__body{width:100%;height:100%}.sprite__body img,.sprite__placeholder{width:100%;height:100%;image-rendering:pixelated;object-fit:contain}.sprite--player .sprite__body img,.sprite--opponent .sprite__body img,.sprite--professor .sprite__body img{object-position:bottom}.sprite .sprite__ball{width:35%;height:35%;image-rendering:pixelated;opacity:0;pointer-events:none;position:absolute;top:50%;left:50%;translate:-50% -50%}.sprite[data-fx=recall] .sprite__body{animation:.8s linear forwards recall}.sprite[data-fx=recall] .sprite__ball{animation:.8s linear forwards ball-in}.sprite[data-fx=faint] .sprite__body{animation:.7s linear forwards faint}.sprite[data-fx=sendout] .sprite__body{animation:1s linear forwards grow}.sprite[data-fx=sendout] .sprite__ball{animation:1s linear forwards ball-out}@keyframes faint{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(60%)}}@keyframes recall{0%,30%{filter:brightness()}15%,45%{filter:brightness(8)}60%{filter:brightness(8);opacity:1;transform:scale(1)}to{filter:brightness(8);opacity:0;transform:scale(0)}}@keyframes ball-in{0%,60%{opacity:0;transform:scale(.5)}70%,85%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}@keyframes grow{0%,45%{filter:brightness(8);transform:scale(0)}70%{filter:brightness(8);transform:scale(.7)}to{filter:brightness();transform:scale(1)}}@keyframes ball-out{0%{opacity:1;transform:translateY(-60%)scale(.6)}25%{opacity:1;transform:translateY(0)scale(1)}40%{opacity:1;transform:translateY(0)scale(1.3)}50%,to{opacity:0;transform:translateY(0)scale(1.8)}}.sprite__placeholder{background:var(--sprite-bg);border:.25em dashed var(--border)}.status{background:var(--panel);border:.25em solid var(--border);width:46%;padding:.5em .75em;position:absolute}.status--opponent{top:6%;left:4%}.status--player{bottom:6%;right:4%}.status__row{overflow-wrap:anywhere;justify-content:space-between;display:flex}.hp{align-items:center;gap:.5em;margin-top:.5em;display:flex}.hp__track{background:var(--hp-track);border:.125em solid var(--border);flex:1;height:1em}.hp__fill{height:100%;transition:width .6s linear,background-color .6s linear}.hp__fill--high{background:var(--hp-high)}.hp__fill--mid{background:var(--hp-mid)}.hp__fill--low{background:var(--hp-low)}.hp__numbers{white-space:nowrap}.panel{background:var(--panel);border:.25em solid var(--border);height:10.5em;color:var(--ink);grid-template-columns:1fr 22em;display:grid}.panel--full{grid-template-columns:1fr}.panel--full .text-box{border-right:0}.text-box{border-right:.25em solid var(--border);min-height:0;display:flex}.text-box__body{flex:1;margin:0;padding:.75em}.text-box__button{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;align-content:start;display:grid;position:relative}.text-box__button:focus-visible{outline:.25em solid var(--focus);outline-offset:-.25em}.text-box__more{animation:.8s step-end infinite blink;position:absolute;bottom:.5em;right:.75em}@keyframes blink{50%{opacity:0}}.menu{grid-template-columns:auto auto;place-content:center;gap:0 .25em;padding:.5em;display:grid}.menu__option{overflow-wrap:anywhere;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:.25em solid #0000;border-radius:0;align-items:center;gap:.25em;padding:.25em;display:flex}.menu__option:hover{border-color:var(--hp-track)}.menu__option:focus-visible{outline:.25em solid var(--focus);outline-offset:0}.menu__cursor{width:1em;display:inline-block}.intro__skip{background:var(--panel);border:.25em solid var(--border);color:var(--ink);font:inherit;cursor:pointer;border-radius:0;padding:.25em .75em;position:absolute;top:1em;right:1em}.intro__skip:hover{border-color:var(--focus)}.intro__skip:focus-visible{outline:.25em solid var(--focus);outline-offset:.125em}.party__grid{flex:1;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(2,1fr);gap:.5em;min-height:0;display:grid}.party__card{background:var(--panel);border:.25em solid var(--border);min-width:0;min-height:0;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:0;align-items:center;gap:.75em;padding:.5em .75em;display:flex}.party__card:hover{border-color:var(--focus)}.party__card--fainted{background:#dcdcdc}.party__card--selected,.party__card--selected:hover{background:var(--selected-bg);border-color:var(--focus);box-shadow:inset 0 0 0 .25em var(--focus)}.party__card:focus-visible,.summary__menu .menu__option:focus-visible{outline:.25em solid var(--focus);outline-offset:.125em}.party{position:relative}.party__options{background:var(--panel);border:.25em solid var(--border);min-width:13em;color:var(--ink);flex-direction:column;padding:.5em;display:flex;position:absolute;bottom:5.5em;right:.5em}.party__info{flex-direction:column;flex:1;gap:.5em;min-width:0;display:flex}.party__top{flex-wrap:wrap;align-items:center;column-gap:.5em;display:flex}.party__name{overflow-wrap:anywhere}.party__level{flex-basis:100%;padding-left:1.5em}.party__info .hp{margin-top:0}.screen__footer{background:var(--panel);border:.25em solid var(--border);grid-template-columns:1fr auto;height:4.5em;display:grid}.screen__footer--tall{height:7.5em}.screen__footer .text-box{border-right:.25em solid var(--border)}.screen__footer .text-box:only-child{border-right:0}.screen__cancel{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;align-items:center;gap:.25em;padding:0 1em;display:flex}.screen__cancel--selected{background:var(--selected-bg);box-shadow:inset 0 0 0 .25em var(--focus)}.screen__cancel:focus-visible{outline:.25em solid var(--focus);outline-offset:-.25em}.sprite--party{flex:none;width:4em;position:static}.badge__body{background:var(--screen);border:.25em solid var(--border);min-height:0;color:var(--ink);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1em;display:flex}.badge__image{width:8em;height:8em}.bag__body{flex:1;grid-template-columns:14em 1fr;gap:.5em;min-height:0;display:grid}.bag__pocket{background:var(--screen);border:.25em solid var(--border);min-height:0;color:var(--ink);flex-direction:column;justify-content:center;align-items:center;gap:.75em;display:flex}.bag__art{aspect-ratio:1;width:50%}.bag__icon{flex:none;width:2em;height:2em}.bag__list{background:var(--panel);border:.25em solid var(--border);min-height:0;color:var(--ink);flex-direction:column;gap:.5em;margin:0;padding:.5em;list-style:none;display:flex}.bag__list li{flex:1;min-height:0}.bag__item{width:100%;height:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:.25em solid #0000;border-radius:0;align-items:center;gap:.25em;padding:0 .75em;text-decoration:none;display:flex}.bag__item:hover{border-color:var(--focus)}.bag__item--selected,.bag__item--selected:hover{background:var(--selected-bg);border-color:var(--focus);box-shadow:inset 0 0 0 .25em var(--focus)}.bag__item:focus-visible{outline:.25em solid var(--focus);outline-offset:.125em}.summary__header{align-items:center;gap:.75em;display:flex}.summary__header .sprite--party{width:5em}.summary__name{margin:0;font-size:1em}.summary__type{background:var(--ink);color:var(--panel);margin-top:.5em;padding:0 .5em;display:inline-block}.summary .hp{margin-top:0}.summary__details{background:var(--panel);border:.25em solid var(--border);gap:.5em;margin:0;padding:.75em;display:grid}.summary__detail{grid-template-columns:11em 1fr;gap:.5em;display:grid}.summary__detail dt{color:var(--hp-track)}.summary__detail dd{overflow-wrap:anywhere;margin:0}.summary__description{background:var(--panel);border:.25em solid var(--border);margin:0;padding:.75em}.summary__menu{margin-top:auto;display:flex}.frame[data-orientation=portrait] .panel{grid-template-rows:7em 1fr;grid-template-columns:1fr;height:16em}.frame[data-orientation=portrait] .panel--full{grid-template-rows:1fr}.frame[data-orientation=portrait] .text-box{border-right:0;border-bottom:.25em solid var(--border)}.frame[data-orientation=portrait] .panel--full .text-box{border-bottom:0}.frame[data-orientation=portrait] .field{--player-size:min(55cqh, 30cqw);--player-left:4%}.frame[data-orientation=portrait] .status{width:56%}.frame[data-orientation=portrait] .party__grid{grid-template-rows:repeat(6,1fr);grid-template-columns:1fr}.frame[data-orientation=portrait] .party__card{gap:.5em}.frame[data-orientation=portrait] .sprite--party{width:3.5em}.frame[data-orientation=portrait] .party__top{flex-wrap:nowrap}.frame[data-orientation=portrait] .party__level{flex-basis:auto;margin-left:auto;padding-left:0}.frame[data-orientation=portrait] .screen__footer .text-box{border-bottom:0}.frame[data-orientation=portrait] .bag__body{grid-template-rows:9em 1fr;grid-template-columns:1fr}.frame[data-orientation=portrait] .bag__pocket{flex-direction:row}.frame[data-orientation=portrait] .bag__art{width:auto;height:50%}.frame[data-orientation=portrait] .summary__detail{grid-template-columns:1fr;gap:0}.transition{background:0 0;flex:1;position:relative;overflow:hidden}.transition__layers,.transition__flash{position:absolute;inset:0}.transition__bar{left:0;right:0;top:calc(var(--index) * 100% / var(--bars));height:calc(100% / var(--bars) + 1px);animation:bar-in calc(var(--duration) * .4) steps(8, end) forwards;animation-delay:calc(var(--index) * var(--duration) * .07);background:#000;position:absolute;transform:translate(-100%)}.transition__bar:nth-child(2n){transform:translate(100%)}.transition__flash{opacity:0;animation:flash calc(var(--duration) * .25) steps(2, end) calc(var(--duration) * .75) forwards;background:#fff}.transition[data-kind=fade] .transition__flash{animation:fade-black var(--duration) ease-in forwards;background:#000}@keyframes bar-in{to{transform:translate(0)}}@keyframes flash{0%,to{opacity:0}40%,60%{opacity:1}}@keyframes fade-black{to{opacity:1}}@media (prefers-reduced-motion:reduce){.text-box__more,.sprite__body,.sprite__ball{animation:none!important}.sprite .sprite__ball{display:none}.sprite[data-fx=faint] .sprite__body{opacity:0}.hp__fill{transition:none}}body.body--light{background:var(--screen)}.portfolio{background:var(--screen);min-height:100dvh;color:var(--ink);-webkit-font-smoothing:antialiased;padding:1.5rem 1rem 4rem;font-family:Atkinson Hyperlegible,system-ui,-apple-system,Segoe UI,sans-serif;font-size:1.125rem;line-height:1.6}.portfolio__header,.portfolio__main{max-width:46rem;margin:0 auto}.portfolio h1,.portfolio h2{overflow-wrap:break-word;font-family:"Press Start 2P",Courier New,monospace;font-weight:400;line-height:1.4}.portfolio h1{margin:1.5rem 0 .5rem;font-size:clamp(1.125rem,5vw,1.75rem)}.portfolio h1:focus{outline:none}.portfolio h2{border-bottom:.25rem solid var(--border);margin:2.5rem 0 1rem;padding-bottom:.5rem;font-size:1rem}.portfolio h3{margin:0 0 .25rem;font-size:1.25rem;line-height:1.3}.portfolio p{margin:0 0 1rem}.portfolio__tagline{margin:0;font-size:1.25rem;font-weight:700}.portfolio__back{background:var(--panel);border:.25rem solid var(--border);min-height:2.75rem;color:var(--ink);cursor:pointer;border-radius:0;padding:.5rem 1rem;font-family:"Press Start 2P",Courier New,monospace;font-size:.75rem}.portfolio__back:hover{border-color:var(--focus)}.portfolio a:focus-visible,.portfolio__back:focus-visible{outline:.25rem solid var(--focus);outline-offset:.125rem}.portfolio__cards,.portfolio__skills,.portfolio__links{margin:0;padding:0;list-style:none}.portfolio__cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem;display:grid}.portfolio__cards>li{display:flex}.portfolio__card,.portfolio__link-item{background:var(--panel);border:.25rem solid var(--border);width:100%;padding:1rem}.portfolio__type{background:var(--ink);color:var(--panel);margin-bottom:.5rem;padding:0 .5rem;font-size:.875rem;display:inline-block}.portfolio__meta{font-weight:700}.portfolio__tag{color:var(--hp-track);margin:0;font-size:.875rem}.portfolio__skills{flex-wrap:wrap;gap:.75rem;display:flex}.portfolio__skills li{background:var(--ink);color:var(--panel);padding:.25rem 1rem;font-weight:700}.portfolio__links{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:1rem;display:grid}.portfolio__link-item p{margin:.25rem 0 0}.portfolio__link-name{font-family:"Press Start 2P",Courier New,monospace;font-size:.875rem}.portfolio a{color:var(--focus);text-underline-offset:.25em;text-decoration:underline}.portfolio a:hover{color:var(--ink)}.portfolio__link-item p{overflow-wrap:break-word}
