/* Title screen and account roster. Gameplay remains in its own HUD. */
.game-shell{min-height:560px;height:100dvh;background:#081619}
.nexus-art{background-image:url('../assets/ui/home-v3.7.png');background-position:center;background-size:cover}
.scene-vignette{background:linear-gradient(90deg,#0310149e,transparent 66%),linear-gradient(0deg,#06101590,transparent 20%,transparent 80%,#04121630)}
.scene-grain,.scene-rays,.corner-lines{display:none}
.scene canvas{opacity:.4;pointer-events:none}
.home-topbar{position:absolute;z-index:3;inset:28px 36px auto;display:flex;justify-content:space-between;align-items:center}
.home-mark{background:none;border:0;width:40px;height:48px;padding:0;color:#d8c799;opacity:.8}.home-mark :is(svg,img.art-icon){width:32px;height:40px}
.home-tools{display:flex;gap:8px}.home-tools .icon-button{width:40px;height:40px;background:#071c2470;border-color:#d6c69345;border-radius:50%}
.home-hero{position:absolute;z-index:2;left:7.5%;top:49%;width:44%;max-width:640px;transform:translateY(-50%);text-align:center}
.home-title .pokemon-label{display:block;font:500 19px var(--display);letter-spacing:.48em;color:#e4d7ac;margin:0 0 10px;padding-left:.48em;text-shadow:0 2px 8px #021414}
.home-title h1{font:600 clamp(46px,6.6vw,104px)/1.1 var(--display);letter-spacing:-.045em;margin:0;color:#f4e6bf;text-shadow:0 3px 0 #755335,0 7px 30px #041315,0 0 55px #e4d7ac20}
.home-rule{display:block;width:68%;height:1px;margin:29px auto 32px;background:linear-gradient(90deg,transparent,#cdb780,transparent)}
.home-menu{display:grid;justify-items:center;gap:8px}
.home-button{position:relative;isolation:isolate;width:min(350px,100%);height:82px;border:0;background:transparent;color:#f4e7c7;font:600 15px var(--display);letter-spacing:.2em;text-shadow:0 2px 5px #001016;transition:filter .2s,transform .2s;display:flex;align-items:center;justify-content:center;gap:30px;padding:0 30px}
.home-button:before{content:'';position:absolute;z-index:-1;inset:0;background-image:url('../assets/ui/home-buttons-v3.7.png');background-repeat:no-repeat;background-size:100% 200%;background-position:top;filter:drop-shadow(0 7px 10px #00111699)}
.home-button.home-secondary:before{background-position:bottom}.home-button.home-secondary{height:72px;font-size:12px;color:#c9d6cc}.home-button :is(svg,img.art-icon){width:13px;height:13px;position:absolute;right:56px}
.home-button:hover{filter:brightness(1.2);transform:translateY(-2px)}.home-button:active{transform:translateY(1px)}
.home-footer{position:absolute;inset:auto 36px 25px;z-index:2;display:flex;justify-content:space-between;align-items:center}
.home-footer button{border:0;background:none;color:#c4cebb;font:12px var(--ui);padding:8px;opacity:.7}.home-footer button:hover{opacity:1;color:#fff0c6}.home-footer :is(svg,img.art-icon){width:19px;height:19px}
.is-playing>.home-topbar,.is-playing>.home-hero,.is-playing>.home-footer{display:none}.has-overlay>.home-topbar,.has-overlay>.home-hero,.has-overlay>.home-footer{pointer-events:none}
.overlay-backdrop{background:#041217b0;backdrop-filter:blur(12px)}
.overlay .panel-container{width:min(920px,calc(100vw - 40px));max-height:calc(100dvh - 48px);padding:0 36px 28px;background:linear-gradient(135deg,#10292ef5,#071a23f8);border:1px solid #a98c584f;box-shadow:0 35px 100px #0008,inset 0 1px #f9d8a424;border-radius:8px}
.overlay .panel-container:before,.overlay .panel-container:after{display:none}
.overlay .panel-topbar{height:52px;border-bottom:0}.overlay .panel-marker{color:#bcaa7d}.overlay .panel-marker :is(svg,img.art-icon){width:19px;height:24px}
.overlay .close-button{border:0;background:transparent;width:32px;height:32px;color:#aebdb5}
.overlay .panel-heading{padding:0 0 18px}.overlay .panel-heading h2,.roster-heading h2{font:500 clamp(25px,3vw,34px) var(--display);color:#f3dfb1;margin:8px 0 0}
.overlay .panel-eyebrow{font:10px var(--ui);letter-spacing:.2em;color:#9dbdb3}.overlay .panel-heading p:empty,.overlay .heading-ornament{display:none}
.overlay .panel-action{position:relative;isolation:isolate;min-height:66px;min-width:260px;width:auto;max-width:100%;padding:0 38px;border:0;background:none;box-shadow:none;font:600 12px var(--display);color:#f6e7c1;letter-spacing:.1em;justify-content:center;clip-path:none;text-shadow:0 2px 4px #001018}
.overlay .panel-action:before{content:'';position:absolute;z-index:-1;inset:0;border:0;background:url('../assets/ui/home-buttons-v3.7.png') center top/100% 200% no-repeat}
.overlay .panel-action:hover{filter:brightness(1.2)}.overlay .panel-action:disabled{filter:grayscale(.8);opacity:.4}
.overlay .panel-action :is(svg,img.art-icon){width:13px;height:13px}.overlay .panel-bottom{margin:20px 0 0;padding:10px 0 0;border:0;display:flex;justify-content:space-between;align-items:center;gap:16px}
.roster-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 26px}.roster-heading>div>span{font:12px var(--ui);color:#9eb7ae;letter-spacing:.08em}.roster-heading>small{font:13px var(--display);color:#b5c8b7;letter-spacing:.15em}
.character-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.character-slot{--type:#8ac9a4;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;height:290px;padding:25px 12px 22px;border:1px solid #658b843d;border-radius:5px;background:radial-gradient(ellipse at 50% 40%,#589f7a26,transparent 70%),linear-gradient(150deg,#18363866,#0b202699);transition:transform .2s,border-color .2s,background .2s;overflow:hidden}
.character-slot.type-fire{--type:#e1aa80;background:radial-gradient(ellipse at 50% 40%,#c67e4529,transparent 70%),linear-gradient(150deg,#342d2866,#0b202699)}
.character-slot.type-water{--type:#8ccfe1;background:radial-gradient(ellipse at 50% 40%,#459cc629,transparent 70%),linear-gradient(150deg,#17354366,#0b202699)}
.character-slot img{width:100%;height:177px;object-fit:contain;filter:drop-shadow(0 14px 14px #001218aa);transition:transform .25s}.character-slot:hover img{transform:translateY(-4px)}
.character-slot strong{font:20px var(--display);font-weight:500;color:#e9dec2;margin-top:8px}.slot-level{font:10px var(--ui);letter-spacing:.15em;color:var(--type);margin-top:9px}.slot-number{position:absolute;top:12px;left:15px;color:#8da59a;font:11px var(--display);letter-spacing:.12em}
.character-slot:hover{border-color:#c6b17b99;transform:translateY(-3px)}.character-slot.is-selected{border-color:#d7b779;box-shadow:inset 0 0 0 3px #bd975716,0 0 22px #c8a95812}
.slot-check{position:absolute;right:12px;top:12px;color:#f5d391;opacity:0}.slot-check :is(svg,img.art-icon){width:17px;height:17px}.is-selected .slot-check{opacity:1}
.empty-slot{background:#0b22234d;border:1px dashed #86a69b45}.slot-plus{font:200 48px var(--ui);color:#92b6a9;margin-bottom:20px}.empty-slot strong{font:14px var(--ui);color:#9db8ab}
.roster-actions{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:25px;flex-wrap:wrap}.roster-link,.roster-footer button{border:0;background:none;color:#b8c5ae;font:11px var(--ui);letter-spacing:.08em;padding:12px 0}.roster-link:hover,.roster-footer button:hover{color:#ffe2ab}
.roster-footer{display:flex;justify-content:flex-end;margin-top:18px}.roster-footer button{font-size:11px;color:#8aa69a}.roster-history{margin-top:20px;font:12px var(--ui);color:#8fa99e}.roster-history summary{cursor:pointer;padding:8px 0}.roster-history ol{list-style:none;padding:0;margin:6px 0}.roster-history li{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #78988b22;color:#c1c9b9}
.game-shell[data-panel=account]:not(.is-playing) .panel-container{width:min(920px,calc(100vw - 40px))}
.game-shell[data-panel=account]:not(.is-playing) .panel-container:has(.account-form){width:min(440px,calc(100vw - 32px))}
.overlay .account-tabs{display:flex;margin:0 0 20px;border-bottom:1px solid #77988b35}.account-tabs button{flex:1;border:0;border-bottom:2px solid transparent;background:none;padding:12px 4px;font:10px var(--ui);letter-spacing:.12em;color:#819f96}.account-tabs button[aria-pressed=true]{color:#f5ddb1;border-bottom-color:#cdb67e}
.overlay .account-form{display:grid;gap:18px;max-width:360px;margin:0 auto}.overlay .account-form label{display:grid;gap:8px;font:12px var(--ui);color:#adc3b8}.overlay .account-form input{width:100%;padding:14px 12px;border:1px solid #789f8e50;border-radius:4px;background:#06191f;color:#f4e4c3;font:15px var(--ui)}.overlay .account-form .panel-action{margin-top:5px;width:100%}.account-error{padding:10px 12px;background:#7c302b33;border:1px solid #cf826b55;color:#f2b4a0;font:13px var(--ui);border-radius:3px}
.overlay .account-loading{width:30px;height:30px;border:1px solid #78988840;border-top-color:#ecd6a1;border-radius:50%;margin:50px auto;animation:home-spin 1s linear infinite}.overlay #panelTitle:has(+.account-loading){text-align:center;font:25px var(--display);color:#eedab2}
.overlay .starter-grid{gap:18px;margin:10px auto 0;max-width:none}.overlay .starter-card{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:5px;padding:22px 12px;min-height:290px;background-color:#0b2429;box-shadow:none;border-color:#78998c40}
.overlay .starter-card:before,.overlay .sprite-stage:before{display:none}.overlay .sprite-stage{width:100%;height:170px}.overlay .sprite-stage img{width:100%;height:170px;object-fit:contain}.overlay .starter-name{font:21px var(--display);margin:15px 0 10px}.overlay .type-pill{font:9px var(--ui);letter-spacing:.12em;background:none;border:0;padding:0}.overlay .type-pill :is(svg,img.art-icon){width:12px;height:12px}.overlay .selected-stamp{border:0;margin:18px 0 0;font:10px var(--ui);color:#9ab6a8}.overlay .starter-card.is-selected{border-color:#dfbf7f;background-color:#24403e}.overlay .starter-card.is-selected .selected-stamp{color:#f5dda9}
.creation-note{display:block;text-align:right;margin:7px 25px 0;color:#8da89c;font:10px var(--ui)}.final-actions{display:grid;justify-items:center;gap:12px}.overlay .final-companion{display:block;margin:5px auto 20px;width:220px;height:220px}
@keyframes home-spin{to{transform:rotate(360deg)}}
@media(min-width:1700px){.home-hero{left:10%;width:40%}}
@media(max-width:900px){.home-hero{left:5%;width:49%}.home-title h1{font-size:clamp(40px,7.2vw,70px)}.home-title .pokemon-label{font-size:15px}.home-button{width:300px}}
@media(max-width:600px){.game-shell{min-height:540px}.home-topbar{inset:18px 20px auto}.home-mark{width:30px}.home-mark :is(svg,img.art-icon){width:26px}.home-tools .icon-button{width:35px;height:35px}.nexus-art{background-position:64% center}.scene-vignette{background:linear-gradient(0deg,#021719e8 3%,#041d1c50 55%,#031a1d20)}.home-hero{left:5%;width:90%;max-width:none;top:auto;bottom:12%;transform:none}.home-title h1{font-size:clamp(40px,12vw,70px)}.home-title .pokemon-label{font-size:15px;margin-bottom:6px}.home-rule{margin:19px auto 18px;width:65%}.home-menu{gap:0}.home-button{width:290px;height:74px;font-size:14px}.home-button.home-secondary{height:64px;font-size:11px}.home-footer{inset:auto 18px 15px}.home-footer button{font-size:11px}.overlay .panel-container{width:calc(100vw - 24px);padding:0 16px 20px;max-height:calc(100dvh - 24px)}.overlay .panel-topbar{height:43px}.overlay .panel-heading h2,.roster-heading h2{font-size:24px}.roster-heading{margin-bottom:20px}.character-roster{gap:8px}.character-slot{height:195px;padding:22px 4px 13px}.character-slot img{height:105px}.character-slot strong{font-size:12px}.slot-level{font-size:8px;letter-spacing:.03em}.slot-number{font-size:9px;left:9px;top:10px}.slot-check{right:7px;top:8px}.slot-check :is(svg,img.art-icon){width:12px}.empty-slot strong{font-size:11px}.slot-plus{font-size:36px;margin-bottom:15px}.roster-actions{gap:12px;margin-top:20px}.overlay .panel-action{min-width:225px;min-height:64px;font-size:11px}.overlay .starter-grid{display:grid;grid-template-columns:1fr;gap:9px}.overlay .starter-card{display:grid;grid-template-columns:110px 1fr;grid-template-rows:32px 26px 22px;min-height:130px;padding:12px;column-gap:16px;justify-items:start}.overlay .sprite-stage{grid-row:1/4;grid-column:1;height:110px}.overlay .sprite-stage img{height:110px}.overlay .starter-name{grid-column:2;grid-row:1;font-size:19px;margin:0}.overlay .type-pill{grid-column:2;grid-row:2}.overlay .selected-stamp{grid-column:2;grid-row:3;margin:0;font-size:9px}.overlay .panel-bottom{flex-direction:row;gap:10px}.overlay .panel-bottom .panel-action{min-width:180px}.creation-note{text-align:right;margin-right:20px}.overlay .panel-heading{padding-bottom:12px}}
@media(max-height:650px) and (min-width:601px){.home-hero{top:50%}.home-title h1{font-size:62px}.home-rule{margin:18px auto}.home-button{height:70px}.home-button.home-secondary{height:62px}.character-slot{height:220px}.character-slot img{height:120px}.overlay .starter-card{min-height:220px}.overlay .sprite-stage,.overlay .sprite-stage img{height:120px}.roster-heading{margin-bottom:15px}.overlay .panel-topbar{height:40px}}
@media(prefers-reduced-motion:reduce){.home-button,.character-slot,.character-slot img{transition:none}.account-loading{animation:none!important}}
