@font-face {font-family:EmeraldPixel;src:url('/assets/ui/PressStart2P-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap;}
body:has(#auth:not([hidden])) {display:block;background:#061e1b;}
#auth {--auth-gold:#ebd28b;--auth-cream:#fff7db;position:relative;isolation:isolate;display:flex;flex-direction:column;width:100%;min-height:100svh;margin:0;padding:28px clamp(24px,5vw,88px) 22px;border:0;border-radius:0;box-shadow:none;overflow:hidden;background:#092f26;color:var(--auth-cream);font:400 15px/1.55 Arial,sans-serif;}
#auth .auth-landscape,#auth .auth-atmosphere {position:absolute;inset:0;z-index:-2;pointer-events:none;}
#auth .auth-landscape {background:linear-gradient(90deg,#03251cce 0%,#042b1c35 54%,#061c22b8 100%),linear-gradient(0deg,#031e1ff5,transparent 58%,#062d267d),var(--auth-background) center 46%/cover no-repeat;animation:auth-reveal 1.2s ease-out both;}
#auth .auth-atmosphere {z-index:-1;background:radial-gradient(ellipse at 45% 35%,#f6e5a314,transparent 55%);}
#auth .auth-atmosphere i {position:absolute;left:var(--x);bottom:12%;width:3px;height:3px;background:#ffe5a5;box-shadow:0 0 12px 3px #efd89255;animation:auth-firefly 12s var(--delay) ease-in-out infinite;}
#auth .auth-topbar {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 0 24px;border-bottom:1px solid #d7e8bd28;color:inherit;}
#auth .auth-brand {display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--auth-cream);}
#auth .auth-emblem {width:38px;height:38px;border:2px solid var(--auth-gold);border-radius:50%;display:grid;place-items:center;color:var(--auth-gold);font-size:20px;box-shadow:inset 0 0 0 5px #143e33;}
#auth .auth-brand strong {display:block;font:400 14px/1.7 EmeraldPixel,monospace;letter-spacing:1px;}
#auth .auth-brand small {display:block;font:10px/1.5 Arial,sans-serif;letter-spacing:4px;color:#b7cfc2;}
#auth .auth-legal {margin:0;color:#fff7db;font-size:12px;font-weight:700;text-align:center;}
#auth .auth-tools {display:flex;gap:16px;align-items:center;}
#auth .auth-tools a {font-size:12px;color:#e6ecd6;text-decoration:none;border-bottom:1px solid #c6d6aa66;padding:8px 0;}
#auth button {font-family:Arial,sans-serif;touch-action:manipulation;}
#auth .auth-sound {width:40px;height:40px;padding:0;border:1px solid #bcd1b84d;border-radius:50%!important;background:#09292180;color:var(--auth-gold);text-align:center;font-size:18px;}
#auth .auth-sound[aria-pressed=true] {background:#315e46;box-shadow:0 0 14px #d2c78233;}
#auth .auth-layout {position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,410px);align-items:center;gap:clamp(40px,7vw,120px);width:100%;max-width:1440px;flex:1;margin:0 auto;padding:62px 0 58px;}
#auth .auth-story {max-width:650px;position:relative;}
#auth .auth-kicker {display:flex;align-items:center;gap:12px;font:400 10px/1.8 EmeraldPixel,monospace;color:var(--auth-gold);letter-spacing:1px;text-transform:uppercase;}
#auth .auth-kicker::before {content:'';width:28px;height:2px;background:var(--auth-gold);}
#auth .auth-story h1 {font:400 clamp(26px,3.2vw,46px)/1.5 EmeraldPixel,monospace;letter-spacing:-1.6px;margin:26px 0 24px;color:#fff7df;text-shadow:0 4px 0 #0b392f,0 8px 30px #001e20;}
#auth .auth-story h1 em {font-style:normal;color:#e5cd80;}
#auth .auth-intro {max-width:380px;font:17px/1.8 Arial,sans-serif;color:#e1ecdc;margin:0;text-shadow:0 2px 12px #001c1b;}
#auth .auth-tags {display:flex;flex-wrap:wrap;gap:20px;margin:25px 0 42px;color:#c9dece;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;}
#auth .auth-tags span::before {content:'◆';font-size:7px;color:var(--auth-gold);margin-right:8px;vertical-align:middle;}
#auth .auth-partners {display:flex;align-items:center;gap:14px;}
#auth .auth-partner-sprites {display:flex;align-items:end;}
#auth .auth-partner {display:block;width:58px;height:58px;background-position:top center;background-repeat:no-repeat;background-size:100% auto;image-rendering:pixelated;filter:drop-shadow(0 5px 2px #001d2299);}
#auth .auth-partner:nth-child(1) {background-image:var(--auth-treecko-art);animation:auth-bob 4s ease-in-out infinite;}
#auth .auth-partner:nth-child(2) {background-image:url('/assets/pokemon/torchic/front.png');animation:auth-bob 4s .6s ease-in-out infinite;}
#auth .auth-partner:nth-child(3) {background-image:url('/assets/pokemon/mudkip/front.png');animation:auth-bob 4s 1.2s ease-in-out infinite;}
#auth .auth-partners p {max-width:160px;margin:0;color:#d3e3d2;font-size:12px;line-height:1.7;}
#auth .auth-partners strong {color:var(--auth-gold);display:block;font-weight:600;}
#auth .auth-creature {position:absolute;pointer-events:none;z-index:-1;background-repeat:no-repeat;background-position:top center;background-size:100% auto;image-rendering:pixelated;filter:drop-shadow(0 12px 10px #001d2280);}
#auth .auth-creature--rayquaza {width:170px;height:170px;left:46%;top:15%;opacity:.8;background-image:var(--auth-rayquaza-art);animation:auth-bob 8s ease-in-out infinite;}
#auth .auth-creature--wingull {width:60px;height:60px;left:29%;top:18%;opacity:.8;background-image:var(--auth-wingull-art);animation:auth-glide 24s ease-in-out infinite;}
#auth .auth-card {width:100%;min-width:0;padding:32px;position:relative;color:var(--auth-cream);background:linear-gradient(140deg,#173f32e8,#071f22e8);border:1px solid #c5d5a457;border-top:2px solid #d4c78a;border-radius:18px;box-shadow:0 26px 70px #00161080,inset 0 1px #efffd911;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);animation:auth-card-in .8s ease-out both;}
#auth .auth-card::after {content:'';position:absolute;left:26px;right:26px;bottom:-6px;height:5px;border:1px solid #a8c09433;border-top:0;border-radius:0 0 12px 12px;pointer-events:none;}
#auth .auth-card .eyebrow {font:400 8px/1.8 EmeraldPixel,monospace;letter-spacing:1px;color:var(--auth-gold);}
#auth .auth-card h2 {font:600 27px/1.25 Arial,sans-serif;letter-spacing:-.7px;margin:12px 0 8px;}
#auth .auth-card-intro {font-size:13px;line-height:1.7;color:#c2d6c7;margin:0 0 24px;}
#auth .auth-tabs {display:flex;gap:0;border-bottom:1px solid #cae0c529;margin:0 0 25px;}
#auth .auth-tabs button {flex:1;text-align:center;padding:11px 6px;color:#aec4b9;font-size:13px;border-bottom:2px solid transparent;background:none;}
#auth .auth-tabs button[aria-pressed=true] {color:var(--auth-gold);border-bottom-color:var(--auth-gold);}
#auth label {display:grid;gap:8px;margin-bottom:16px;color:#e5ead8;font:600 12px/1.5 Arial,sans-serif;}
#auth input,#auth select {width:100%;min-width:0;min-height:48px;padding:12px 14px;border:1px solid #779e8666!important;border-radius:7px!important;background:#081f22a8!important;color:#fff7df!important;font:400 16px/1.4 Arial,sans-serif;box-shadow:inset 0 1px 4px #00151833;transition:border-color .2s,box-shadow .2s;}
#auth input::placeholder {color:#8ea99d;opacity:1;}
#auth input:focus {border-color:var(--auth-gold)!important;box-shadow:0 0 0 3px #ebd28b17;}
#auth input:-webkit-autofill {-webkit-text-fill-color:#fff7df;box-shadow:inset 0 0 0 100px #15372c;}
#auth .auth-password {display:flex;position:relative;}
#auth .auth-password input {padding-right:68px;}
#auth .auth-password button {position:absolute;right:5px;top:5px;height:38px;color:#c6d5bc;background:none;font-size:11px;padding:8px;}
#auth .auth-options {display:flex;justify-content:flex-end;margin:-5px 0 16px;}
#auth .auth-options button {padding:5px 0;color:#d6cd9e;font-size:12px;background:none;text-decoration:underline;text-underline-offset:4px;}
#auth .auth-submit {position:relative;isolation:isolate;overflow:hidden;width:100%;min-height:52px;border:1px solid #fff0b08c;border-radius:7px!important;background:linear-gradient(110deg,#d8b964,#f1dc97 65%,#d6b764);color:#14382b;font:700 14px/1.4 Arial,sans-serif;text-align:center;padding:14px 22px;margin-top:0;box-shadow:0 4px 0 #87703d,0 9px 25px #d9c0731c;transition:transform .18s,box-shadow .18s,filter .18s;}
#auth .auth-submit::after {content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff9d177 50%,transparent 70%);transform:translateX(-120%);transition:transform .65s;pointer-events:none;}
#auth .auth-submit:hover:not(:disabled) {transform:translateY(-2px);box-shadow:0 6px 0 #87703d,0 12px 30px #dfcd7144;filter:brightness(1.07);}
#auth .auth-submit:hover::after {transform:translateX(120%);}
#auth .auth-submit:active:not(:disabled) {transform:translateY(2px);box-shadow:0 2px 0 #87703d;}
#auth .auth-submit:disabled {opacity:.65;cursor:wait;}
#auth #auth-message {font:13px/1.6 Arial,sans-serif;color:#ffd3b7;margin:16px 0 0;overflow-wrap:anywhere;}
#auth #auth-message:empty {display:none;}
#auth .auth-foot {color:#b4c9bd;font:11px/1.7 Arial,sans-serif;text-align:center;margin:24px 0 0;}
#auth .auth-foot::before {content:'';display:block;margin:0 auto 15px;width:32px;height:1px;background:#d7cf9366;}
#auth .auth-bottom {display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 0 0;border-top:1px solid #c7ddac2b;color:#c9d8c3;font-size:11px;}
#auth .auth-bottom strong {font:400 9px/1.8 EmeraldPixel,monospace;color:var(--auth-gold);}
#auth .auth-bottom p {margin:0;}
#auth #recovery-result {inset:12px;z-index:5;padding:26px;background:#fff7db;color:#23483b;border:3px double #7b9876!important;border-radius:10px!important;box-shadow:0 8px 36px #001d2288;font:14px/1.7 Arial,sans-serif;overflow:auto;}
#auth #recovery-result h3 {font-size:20px;line-height:1.4;margin:0;}
#auth #recovery-result code {user-select:all;color:#153e2d;}
#auth #recovery-result button {background:#216649;color:#fff7db;text-align:center;border-radius:6px!important;min-height:48px;}
#auth :is(a,button,input,select):focus-visible {outline:2px solid #ffe59e!important;outline-offset:4px;}
@keyframes auth-reveal {from{opacity:0;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}
@keyframes auth-card-in {from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes auth-bob {50%{transform:translateY(-9px)}}
@keyframes auth-glide {50%{transform:translate(90px,-16px)}}
@keyframes auth-firefly {0%,100%{opacity:0;transform:translate(0,0)}30%,70%{opacity:.7}80%{transform:translate(35px,-250px)}}
@media(min-width:1500px){#auth .auth-layout{padding-block:90px}#auth .auth-creature--rayquaza{width:224px;height:224px;top:22%}}
@media(min-width:701px) and (max-height:820px){#auth{padding-block:20px}#auth .auth-layout{padding-block:20px}#auth .auth-card{padding:24px}#auth .auth-card h2{margin-top:8px}#auth .auth-card-intro{margin-bottom:16px}#auth .auth-tabs{margin-bottom:16px}#auth .auth-tabs button{padding-block:8px}#auth label{margin-bottom:12px;gap:6px}#auth input,#auth select{min-height:44px;padding-block:10px}#auth .auth-options{margin-bottom:10px}#auth .auth-submit{min-height:48px;padding-block:12px}#auth .auth-foot{margin-top:16px}#auth .auth-foot::before{display:none}}
@media(max-width:950px){#auth{padding:20px 28px}#auth .auth-layout{gap:32px;grid-template-columns:minmax(0,1fr) 350px}#auth .auth-story h1{font-size:26px;letter-spacing:-1px}#auth .auth-card{padding:25px}#auth .auth-legal{max-width:190px}#auth .auth-creature--rayquaza{left:34%;top:12%;width:120px;height:120px}#auth .auth-tags{gap:10px;font-size:10px}#auth .auth-tools a{display:none}}
@media(max-width:700px){#auth{padding:18px 20px 22px}#auth .auth-topbar{flex-wrap:wrap;gap:12px;padding-bottom:16px}#auth .auth-brand strong{font-size:12px}#auth .auth-brand small{font-size:8px}#auth .auth-legal{order:3;max-width:none;width:100%;font-size:11px}#auth .auth-layout{grid-template-columns:1fr;gap:28px;padding:30px 0;max-width:440px}#auth .auth-story h1{font-size:24px;margin:15px 0;line-height:1.5}#auth .auth-intro{font-size:14px;max-width:310px}#auth .auth-kicker{font-size:8px}#auth .auth-tags{margin:17px 0 0}#auth .auth-partners{display:none}#auth .auth-card{padding:25px}#auth .auth-card h2{font-size:25px}#auth .auth-creature--rayquaza{left:auto;right:-20px;top:170px;width:108px;height:108px;opacity:.35}#auth .auth-creature--wingull{display:none}#auth .auth-landscape{background-position:58% center}#auth .auth-bottom{align-items:flex-start;font-size:10px}#auth .auth-bottom p{max-width:150px}#auth .auth-bottom strong{font-size:8px}}
@media(max-height:600px) and (min-width:701px){#auth .auth-layout{padding:28px 0}#auth .auth-partners{display:none}#auth .auth-card{padding:22px}#auth .auth-card-intro{margin-bottom:14px}#auth .auth-tabs{margin-bottom:16px}}
@media(max-width:700px){#auth .auth-layout{padding-block:24px;gap:22px}#auth .auth-story h1{font-size:22px;line-height:1.4;margin:12px 0}#auth .auth-intro{line-height:1.6}#auth .auth-tags{display:none}#auth .auth-card{padding:22px}#auth .auth-card-intro{margin-bottom:16px}#auth .auth-tabs{margin-bottom:18px}#auth .auth-tabs button{padding-block:9px}#auth label{margin-bottom:12px}#auth .auth-foot{margin-top:18px}#auth .auth-foot::before{display:none}}
@media(prefers-reduced-motion:reduce){#auth *,#auth *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}

/* Beta landing: new landscape, flying Rayquaza and Android invitation. */
#auth .auth-landscape{background-image:linear-gradient(90deg,#03251ccc,#042b1c26 54%,#061c2280),linear-gradient(0deg,#031e1fea,transparent 68%,#062d2660),var(--auth-background)}
#auth .auth-version{padding:5px 8px;border:1px solid #e6cd8160;border-radius:5px;background:#073b2bc9;color:#f4da91;font:700 9px/1.4 Arial,sans-serif;letter-spacing:1px;white-space:nowrap}
#auth .auth-topbar{position:relative;z-index:1}#auth .auth-tools a{display:block;color:#f1db99;font-weight:700}
#auth .auth-tags{margin-bottom:24px}#auth .auth-partners{gap:24px;display:flex}#auth .auth-partner-region>span{font-size:9px;letter-spacing:2px;color:#c6dccb}#auth .auth-partner-region+.auth-partner-region{padding-left:18px;border-left:1px solid #f1dda735}#auth .auth-partner{width:48px;height:48px}
#auth .auth-partner-sprites--kanto .auth-partner:nth-child(1){background-image:url('/assets/pokemon/bulbasaur/front.png')}
#auth .auth-partner-sprites--kanto .auth-partner:nth-child(2){background-image:url('/assets/pokemon/charmander/front.png')}
#auth .auth-partner-sprites--kanto .auth-partner:nth-child(3){background-image:url('/assets/pokemon/squirtle/front.png')}
#auth .auth-creature--rayquaza{width:clamp(190px,24vw,350px);height:auto;aspect-ratio:1;left:27%;top:11%;right:auto;opacity:1;background-size:contain;image-rendering:auto;filter:drop-shadow(0 14px 18px #082a3866);animation:auth-rayquaza-flight 26s ease-in-out infinite;will-change:transform}
#auth .auth-creature--wingull{display:none}
@keyframes auth-rayquaza-flight{0%,100%{transform:translate(0,0) rotate(-9deg) scale(.9)}25%{transform:translate(11vw,-35px) rotate(6deg) scale(1.03)}50%{transform:translate(22vw,45px) rotate(13deg) scale(.82)}75%{transform:translate(7vw,80px) rotate(-5deg) scale(1)}}
#auth .auth-android-card{display:flex;align-items:center;gap:15px;max-width:380px;margin-top:23px;padding:14px 17px;text-decoration:none;color:#eef8df;background:linear-gradient(110deg,#15573ce8,#0a322ee8);border:1px solid #b1d8896b;border-radius:12px;box-shadow:0 8px 24px #001c2240;transition:transform .2s,border-color .2s}
#auth .auth-android-card:hover{transform:translateY(-3px);border-color:#e6d58f}#auth .auth-android-card small{display:block;color:#d5d98f;font-size:8px;letter-spacing:1.6px}#auth .auth-android-card strong{display:block;font:700 18px/1.7 Arial,sans-serif}#auth .auth-android-card span span{font-size:11px;color:#c3dbcd}#auth .auth-phone-icon{display:grid;place-items:center;flex:none;width:28px;height:44px;border:2px solid #dcd58e;border-radius:6px;font-size:23px;color:#e8d990}#auth .auth-android-arrow{margin-left:auto;color:#e8d990;font-size:24px}
#auth .auth-options{flex-wrap:wrap;align-items:center;justify-content:space-between;gap:9px 12px;margin-top:0}#auth .auth-remember{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:400;cursor:pointer}#auth .auth-remember input{appearance:auto;flex:none;width:17px;height:17px;min-height:17px;margin:0;padding:0;accent-color:#e5c877;border:1px solid #b8ce9e!important;border-radius:3px!important;box-shadow:none}#auth #remember-login-help{flex-basis:100%;color:#a7c2b3;font:10px/1.5 Arial,sans-serif;margin-bottom:4px}
@media(max-width:1100px){#auth .auth-brand{gap:9px}#auth .auth-version{font-size:8px;letter-spacing:.5px}#auth .auth-partners{gap:12px}#auth .auth-partner{width:42px;height:42px}#auth .auth-partner-region+.auth-partner-region{padding-left:10px}}
@media(max-width:700px){#auth .auth-tools{gap:10px;margin-left:auto}#auth .auth-tools a{font-size:10px}#auth .auth-brand{flex-wrap:wrap;max-width:200px}#auth .auth-version{margin-left:47px;margin-top:-4px}#auth .auth-partners{margin-top:20px;gap:22px}#auth .auth-partner{width:46px;height:46px}#auth .auth-android-card{max-width:none;margin-top:18px}#auth .auth-creature--rayquaza{left:auto;right:-30px;top:160px;width:190px;opacity:.85;animation:auth-rayquaza-mobile 18s ease-in-out infinite}#auth .auth-story{z-index:0}#auth .auth-story h1{font-size:23px}#auth .auth-intro{max-width:280px}#auth .auth-bottom strong{font-size:7px}}
@keyframes auth-rayquaza-mobile{0%,100%{transform:translate(0,0) rotate(-8deg)}50%{transform:translate(-45px,40px) rotate(8deg)}}
@media(max-width:380px){#auth .auth-tools a{max-width:80px;text-align:right}#auth .auth-sound{width:32px;height:32px}#auth .auth-brand{max-width:167px}#auth .auth-partner{width:40px;height:40px}}
#auth .auth-creature--rayquaza{left:40%;width:clamp(190px,22vw,320px)}
@media(max-width:700px){#auth .auth-brand{max-width:180px}#auth .auth-tools a{max-width:75px;text-align:right;line-height:1.5}#auth .auth-sound{width:32px;height:32px}#auth .auth-creature--rayquaza{left:auto;right:-55px;top:130px;width:145px}}
@media(max-width:700px){#auth .auth-brand{display:grid;grid-template-columns:38px 1fr;gap:6px 8px;max-width:190px;flex-shrink:0}#auth .auth-version{grid-column:2;justify-self:start;margin:0}}
