/* Compact game menus. Pixel titles carry personality; prose stays readable. */
.poke-ui:not(.screen-event){--ui-navy:#193448;--ui-paper:#fffaf0;--ui-muted:#536a72;--ui-gold:#ffda78;--ink:#193448;--paper:#fffaf0;--muted:#536a72;--font:FestivalTitle,sans-serif;--body:Festival,sans-serif;color:var(--ink);font:16px/1.45 var(--body)}
.poke-ui.app-shell{max-width:none;min-height:100dvh;padding:0;display:flex;flex-direction:column;background:#f1f2e9}
.poke-ui.app-shell .main{width:min(100%,1240px);margin:auto;padding:28px clamp(16px,3vw,40px) 36px;flex:1}
.poke-ui:not(.screen-event) :is(.site-header,.game-top){min-height:60px;padding:7px clamp(16px,3vw,40px);gap:16px;display:flex;align-items:center;justify-content:space-between;background:#193448;color:#fffaf0;border:0;border-bottom:3px solid #ffda78}
.poke-ui:not(.screen-event) :is(.brand,.game-brand){font:30px/1 FestivalTitle,sans-serif;letter-spacing:.3px;color:#fffaf0;min-height:44px;flex-shrink:0}
.poke-ui .brand small{display:none}
.poke-ui .brand-ball{width:27px;height:27px;border-color:#fffaf0;background:linear-gradient(#ec7565 0 43%,#193448 43% 57%,#fffaf0 57%)}
.poke-ui .brand-ball:after{width:9px;height:9px;border-width:2px}
.poke-ui:not(.screen-event) :is(.header-nav,.game-top nav){display:flex;gap:4px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.poke-ui:not(.screen-event) :is(.nav-button,.game-top nav button){font:600 13px/1.2 var(--body);color:#e2eeeb;border:0;border-radius:4px;padding:10px 12px;min-height:44px;background:transparent;text-transform:none}
.poke-ui:not(.screen-event) :is(.nav-button:hover,.nav-button.active,.game-top nav button:hover){background:#365568;color:#fffaf0}
.poke-ui .header-nav .nav-button[data-action=help]{width:auto;min-width:44px;white-space:nowrap}
.poke-ui .header-nav .nav-button[data-action=help]:after{content:none}
.poke-ui .portrait-nav img{width:29px;height:33px}
.poke-ui:not(.screen-event) :is(.game-footer,.site-footer){margin:0;padding:8px max(16px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom));background:#193448;border:0;color:#c8dadc;font:12px/1.4 var(--body);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 18px}
.poke-ui:not(.screen-event) :is(.game-footer button,.site-footer .text-button){min-height:44px;font:600 12px var(--body);color:#fffaf0}
.poke-ui:not(.screen-event) :is(button,a,input,summary):focus-visible{outline:3px solid #b9443b;outline-offset:3px}
.poke-ui:not(.screen-event) :is(.game-top,.site-header,.finish-celebration) :is(button,a,summary):focus-visible{outline-color:#ffda78}
.poke-ui:not(.screen-event) .btn{font:700 16px/1.25 var(--body);min-height:48px;padding:11px 16px;border:2px solid #91a6a8;border-radius:5px;background:#fffaf0;color:#193448;text-transform:none;transition:background-color .12s,border-color .12s,transform .12s}
.poke-ui:not(.screen-event) .btn:hover{background:#fff0bd;border-color:#193448;transform:translateY(-1px)}
.poke-ui:not(.screen-event) .btn:active{transform:translateY(1px)}
.poke-ui:not(.screen-event) .btn-primary{background:#ffda78;border-color:#c2983c;color:#193448}
.poke-ui:not(.screen-event) .btn-primary:hover{background:#ffe6a2;border-color:#193448}
.poke-ui:not(.screen-event) .btn-dark{background:#36596d;color:#fffaf0;border-color:#88abb8}
.poke-ui:not(.screen-event) .btn:disabled{opacity:.48;cursor:not-allowed;transform:none}
.poke-ui:not(.screen-event) .text-button{font-family:var(--body);min-height:44px}
.poke-ui:not(.screen-event) .frame{border:1px solid #9aafad;border-radius:6px;background:#fffaf0;overflow:hidden}
.poke-ui:not(.screen-event) .frame-head{background:#e2e9df;color:#385562;border-bottom:1px solid #bacbc2;font:600 13px var(--body);padding:10px 15px}
.poke-ui:not(.screen-event) .page-heading{align-items:center;gap:18px;margin:0 0 22px}
.poke-ui:not(.screen-event) .page-heading h1{font:clamp(35px,4vw,49px)/1.05 FestivalTitle,sans-serif;letter-spacing:0}
.poke-ui:not(.screen-event) .page-heading p{font:16px/1.5 var(--body);color:#536a72;max-width:650px;margin-top:7px}
.poke-ui:not(.screen-event) .section-eyebrow{font:700 12px var(--body);color:#8b433a;letter-spacing:.5px;margin-bottom:7px}
.poke-ui:not(.screen-event) .section-eyebrow:before{content:none}
.poke-ui:not(.screen-event) .status-label{border:0;border-radius:4px;padding:8px 12px;background:#dfe9df;color:#365b50;font:700 13px var(--body);white-space:nowrap}
.poke-ui:not(.screen-event) .season-switch{display:flex;border:1px solid #a5b9b4;border-radius:5px;background:#e8ede4;padding:3px;gap:3px}
.poke-ui:not(.screen-event) .season-switch button{flex:1;min-height:44px;border:0;border-radius:3px;padding:9px 12px;background:transparent;color:#536a72;font:700 14px var(--body);text-transform:none}
.poke-ui:not(.screen-event) .season-switch button.active{background:#193448;color:#fffaf0}
.poke-ui:not(.screen-event) .season-switch button[data-season=winter].active{background:#2d657d;color:#fffaf0}
.poke-ui:not(.screen-event) .season-switch button:focus-visible{outline-offset:-3px}

/* Home: actual gameplay beside a compact menu, without nested title boxes. */
.poke-ui.screen-home{background-color:#193448}
.poke-ui.screen-home:before{background:#193448c7}
.poke-ui.screen-home .game-main{display:flex;align-items:center;padding:30px clamp(16px,4vw,56px)}
.poke-ui .game-lobby{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:32px;max-width:1160px;min-height:0;width:100%;align-items:center}
.poke-ui .lobby-scene{min-height:0;min-width:0;display:flex;flex-direction:column;align-self:center;gap:20px}
.poke-ui .lobby-title{text-align:left;padding:0}
.poke-ui .lobby-title>span{font:600 13px var(--body);letter-spacing:1px;background:none;border:0;padding:0;color:#b7d1d6}
.poke-ui .lobby-title h1{font:clamp(60px,7.7vw,100px)/.95 FestivalTitle,sans-serif;color:#ffda78;letter-spacing:1px;background:none;border:0;padding:0;margin:9px 0 6px;-webkit-text-stroke:0}
.poke-ui .lobby-title p{display:block;background:none;color:#fffaf0;font:17px/1.4 var(--body);margin:12px 0 0;padding:0}
.poke-ui .lobby-title .studio-credit{display:block;margin:0;padding:0;font:12px/1.4 var(--body);color:#cadcde}
.poke-ui.screen-home .lobby-reel{width:100%;max-width:none;margin:0;border:2px solid #8faeb8;border-radius:6px;overflow:hidden;background:#193448}
.poke-ui.screen-home .lobby-reel-caption{min-height:48px;background:#193448;padding:3px 10px;border:0}
.poke-ui.screen-home .lobby-reel-caption button{font:600 13px var(--body);min-height:44px;color:#fffaf0}
.poke-ui.screen-home .lobby-reel-caption .reel-play svg{width:22px;height:22px}
.poke-ui.screen-home .lobby-reel-caption .reel-pause{color:#c1d8da;font-size:12px}
.poke-ui .lobby-menu{display:flex;flex-direction:column;align-self:center;background:#fffaf0;color:#193448;border:0;border-top:5px solid #ffda78;border-radius:7px;padding:22px;gap:12px;width:100%;max-width:none}
.poke-ui .trainer-row{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:3px;border-bottom:1px solid #cfdbd3}
.poke-ui .trainer-row>img{width:49px;height:60px;object-fit:contain;image-rendering:pixelated;flex:0 0 49px}
.poke-ui .trainer-row-copy{min-width:0;flex:1}
.poke-ui .trainer-row-copy b{display:block;font:700 19px/1.2 var(--body);overflow-wrap:anywhere}
.poke-ui .trainer-row-copy :is(small,span){display:block;margin-top:5px;font:13px var(--body);color:#536a72}
.poke-ui .trainer-edit{flex:0 0 auto;background:none;color:#335c6d;border:0;border-radius:4px;padding:8px;min-height:44px;font:600 12px var(--body);cursor:pointer}
.poke-ui .trainer-edit:hover{background:#e5eee5}
.poke-ui .lobby-menu .season-switch{margin:0}
.poke-ui .lobby-menu .btn{display:flex;align-items:center;text-align:left;justify-content:space-between;gap:10px}
.poke-ui .lobby-menu .menu-play{min-height:70px;padding:14px 16px;font:700 21px/1.2 var(--body);background:#ffda78;color:#193448;border:2px solid #d3ad51}
.poke-ui .menu-action-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
.poke-ui .menu-action-copy strong{font:inherit}
.poke-ui .menu-action-copy small{font:13px/1.3 var(--body);color:#4b5e57}
.poke-ui .menu-action-icon{display:grid;place-items:center;flex:0 0 28px}
.poke-ui .menu-action-icon svg{width:27px;height:27px}
.poke-ui .menu-action-arrow{font-size:22px;flex:0 0 auto}
.poke-ui .menu-action-detail{font:600 13px var(--body);color:#677b7d}
.poke-ui .lobby-menu .menu-secondary{background:transparent;color:#193448;border:0;border-bottom:1px solid #d6dfd6;border-radius:0;min-height:52px;padding:10px 4px;font:600 16px var(--body)}
.poke-ui .lobby-menu .menu-secondary:hover{background:#ebf0e4;transform:none}
.poke-ui .lobby-menu .menu-new{min-height:44px;justify-content:center;border:0;background:transparent;font-size:13px;color:#496775;padding:6px}
.poke-ui .lobby-options{display:grid;gap:0}
.poke-ui .lobby-options .btn{width:100%;margin:0}
.poke-ui .lobby-options .menu-action-copy{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}
.poke-ui .lobby-options .menu-action-detail{font-size:12px;color:#627777}
.poke-ui .lobby-footer{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:0 10px;padding-top:2px}
.poke-ui .support-link{display:inline-flex;gap:4px;align-items:center;min-height:44px;font:600 12px var(--body);color:#8b433a;text-decoration:none}
.poke-ui .support-link:hover{text-decoration:underline}
.poke-ui .lobby-note{margin:0;font:12px/1.4 var(--body);color:#627777;text-align:left}

/* Practice: sixteen choices, without repeated metadata. */
.poke-ui .catalogue-controls{margin-bottom:20px;align-items:center;gap:20px}
.poke-ui .catalogue-controls .season-switch{min-width:290px}
.poke-ui .catalogue-count{color:#536a72;font:13px var(--body)}
.poke-ui .catalogue-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.poke-ui .catalogue-card{min-width:0;border:1px solid #a4b7b0;transition:border-color .12s,transform .12s}
.poke-ui .catalogue-card:hover,.poke-ui .catalogue-card:focus-within{border-color:#b9443b;transform:translateY(-2px)}
.poke-ui .catalogue-card .frame-head{justify-content:flex-end;background:transparent;border:0;padding:10px 13px 0;min-height:25px;font:12px var(--body);color:#536a72}
.poke-ui .catalogue-card[data-team=pair] .frame-head{color:#8b433a}
.poke-ui .catalogue-card .frame-body{padding:12px 14px 14px;gap:0}
.poke-ui .catalogue-title{display:flex;flex-direction:row;align-items:center;gap:12px;min-height:60px;margin:0 0 12px}
.poke-ui .catalogue-title h2{font:30px/1 FestivalTitle,sans-serif;margin:0;min-height:0;overflow-wrap:break-word}
.poke-ui .catalogue-event-name{min-width:0}
.poke-ui .catalogue-icon-well{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border:0;border-radius:7px;background:#e3ebd9}
.poke-ui .catalogue-icon-well svg{width:35px;height:35px}
.poke-ui .catalogue-card[data-kind=swim] .catalogue-icon-well{background:#d1e9ed}
.poke-ui .catalogue-card[data-kind=throw] .catalogue-icon-well,.poke-ui .catalogue-card[data-kind=boxing] .catalogue-icon-well{background:#f3dbcb}
.poke-ui .catalogue-card[data-season=winter] .catalogue-icon-well{background:#dbe8f1}
.poke-ui .catalogue-card .btn{min-height:44px;padding:9px 12px;margin-top:auto;font-size:14px;border:1px solid #b0c0b6;background:#edf1e7;justify-content:space-between}

/* Team setup. */
.poke-ui .steps{border:0;border-radius:0;background:none;margin-bottom:25px;gap:8px}
.poke-ui .step{display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-bottom:2px solid #c7d3ca;padding:8px;font:600 13px var(--body);color:#6a7d7e}
.poke-ui .step.active{background:none;color:#193448;border-bottom-color:#b9443b;padding-bottom:8px}
.poke-ui .step.complete{background:none;color:#38765f;border-bottom-color:#74a48a}
.poke-ui .step-number{display:grid;place-items:center;min-width:22px;height:22px;border:0;background:#e2e9df;font:700 12px var(--body);border-radius:50%}
.poke-ui .step.active .step-number{background:#193448;color:#fffaf0}
.poke-ui .identity-panel{max-width:730px}
.poke-ui .identity-panel .frame-body{padding:24px}
.poke-ui .identity-trainer-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;align-items:center}
.poke-ui .identity-name-field{min-width:0}
.poke-ui .identity-name-field p{font:13px/1.45 var(--body);color:#536a72;margin:7px 0 0}
.poke-ui .identity-portrait{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;width:100%;padding:9px;margin:0;background:#e4ecdf;border:1px solid #9cb6aa;border-radius:5px;color:#193448;min-height:120px}
.poke-ui .identity-portrait img{width:78px;height:78px}
.poke-ui .identity-portrait span{display:block;font:600 12px var(--body)}
.poke-ui .trainer-name-label{display:block;font:700 15px var(--body);margin-bottom:8px}
.poke-ui .identity-panel input{min-width:0;width:100%;border:2px solid #829eaa;border-radius:4px;background:white;font:19px var(--body);padding:12px;min-height:50px}
.poke-ui .identity-team-card{margin-top:22px;padding-top:18px;border-top:1px solid #d1ddd2}
.poke-ui .identity-section-label,.poke-ui .name-row-label{display:block;color:#536a72;font:600 13px var(--body);margin:0 0 8px}
.poke-ui .team-name-preview{border:0;background:#e8eee2;color:#193448;border-radius:4px;font:38px/1.1 FestivalTitle,sans-serif;padding:14px;margin:10px 0 18px;overflow-wrap:anywhere}
.poke-ui .name-row{margin-top:12px}
.poke-ui .name-parts{gap:8px}
.poke-ui .name-parts .btn{font:600 15px var(--body);min-height:46px;padding:9px 5px;background:#fffaf0;border:1px solid #b1c2b7}
.poke-ui .name-parts .btn[aria-pressed=true]{background:#ffda78;border:2px solid #193448}
.poke-ui .identity-panel .btn-full{margin-top:23px}
.poke-ui .pokemon-card{border:1px solid #9aafad;border-radius:6px;background:#fffaf0;overflow:hidden}
.poke-ui .pokemon-card-header{background:#e2e9df;color:#536a72;font:12px var(--body);min-height:36px;padding:7px 12px;border:0}
.poke-ui .pokemon-portrait{height:155px;background:#eaf0e3;border:0}
.poke-ui .pokemon-portrait:before{background:#f7f9ed;border:1px solid #c0d2bf;width:116px;height:116px;left:calc(50% - 58px);top:19px}
.poke-ui .pokemon-portrait:after{display:none}
.poke-ui .pokemon-portrait img{width:140px;height:140px}
.poke-ui .pokemon-info{padding:16px}
.poke-ui .pokemon-title h2{font:34px/1 FestivalTitle,sans-serif;overflow-wrap:anywhere}
.poke-ui .type-badge{border-width:1px;border-radius:3px;padding:3px 6px;font:700 11px var(--body)}
.poke-ui .type-label{font:12px var(--body)}
.poke-ui .sport-summary{font:15px var(--body);color:#3b7562;margin:12px 0}
.poke-ui .stats{gap:6px}
.poke-ui .stat{font:14px var(--body);grid-template-columns:56px minmax(0,1fr) 29px}
.poke-ui .stat-label{font:12px var(--body);color:#536a72}
.poke-ui .stat-bar{height:6px;border:0;border-radius:2px;background:#e0e9dc}
.poke-ui .stat-bar span{background:#639e88}
.poke-ui .pokemon-card .btn{font-size:15px}
.poke-ui .legendary-card{border:2px solid #ac8135}
.poke-ui .legendary-card .pokemon-card-header{background:#f8df9d;color:#654416}
.poke-ui .legendary-card .pokemon-portrait{background:#faf0cc}
.poke-ui :is(.legend-badge,.shiny-badge){border:1px solid #a67e2e;border-radius:3px;background:#ffe29c;color:#62420d;font:700 11px/1.3 var(--body)}
.poke-ui .draft-foot{margin:18px 0;gap:15px}
.poke-ui .draft-foot p{font:13px var(--body)}
.poke-ui .section-label h2{font:27px FestivalTitle,sans-serif}
.poke-ui .roster-strip{background:#e4ebe0;border:1px solid #b4c6b9;border-radius:5px}
.poke-ui .roster-mini{background:transparent;border-color:#c1d1c5;padding:10px 7px}
.poke-ui .roster-mini strong{font:23px/1.1 FestivalTitle,sans-serif;overflow-wrap:anywhere}
.poke-ui .roster-mini small{font:11px var(--body)}
.poke-ui .roster-index{color:#6e8580}
.poke-ui .roster-pick{border:2px solid #b0c4b5;border-radius:5px;background:#fffaf0}
.poke-ui .roster-pick.selected{border:2px solid #b9443b;background:#fff0c0}
.poke-ui .roster-pick.assigned:not(.selected){border-color:#6c9a7e;background:#e1eedd}
.poke-ui .roster-pick b{font:25px/1.1 FestivalTitle,sans-serif}
.poke-ui .roster-pick small{font:12px var(--body)}
.poke-ui .dex-panel{background:#e6eee1;border:1px solid #b2c5b7;padding:16px}
.poke-ui .dex-heading h2{font:31px/1 FestivalTitle,sans-serif}
.poke-ui .dex-empty{font:23px FestivalTitle,sans-serif;min-height:100px}
.poke-ui .dex-empty small{font:14px var(--body)}
.poke-ui .assignment-card .frame-head{font:26px FestivalTitle,sans-serif;padding:10px 14px}
.poke-ui .assignment-card .frame-head>span:last-child{font:12px var(--body);color:#536a72}
.poke-ui .role-label{font:13px var(--body);color:#536a72}
.poke-ui .slot-target{background:#f0f4e9;border:2px dashed #99b0a2;border-radius:5px;min-height:96px}
.poke-ui .slot-target:hover{border-color:#b9443b;background:#fff0c8}
.poke-ui .slot-target.drop-ready{border:3px solid #b9443b;background:#ffe09a}
.poke-ui .slot-target b{font:26px FestivalTitle,sans-serif}
.poke-ui .slot-empty{color:#617b71;font:13px var(--body)}
.poke-ui .lineup-footer{gap:12px;align-items:center}
.poke-ui .lineup-footer p{font:13px var(--body)}
.poke-ui .lineup-footer .btn{min-width:165px}

/* Lessons and results: the next action comes before deeper analysis. */
.poke-ui.screen-briefing,.poke-ui.screen-results{color:#fffaf0}
.poke-ui.screen-briefing:before,.poke-ui.screen-results:before{background:#193448ce}
.poke-ui .sport-title{text-align:left;max-width:1280px;margin:0 auto 20px}
.poke-ui .sport-title>span{padding:0;background:none;color:#bed5d8;font:600 12px var(--body);letter-spacing:.5px}
.poke-ui .sport-title h1{color:#fffaf0;font:clamp(40px,4.8vw,62px)/1 FestivalTitle,sans-serif;-webkit-text-stroke:0;margin:7px 0}
.poke-ui .sport-title p{display:block;background:none;color:#d4e4df;padding:0;font:16px/1.45 var(--body)}
.poke-ui .brief-stage{max-width:1280px;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:22px}
.poke-ui .demo-window{border:2px solid #86a5b1;border-radius:5px;overflow:hidden;background:#193448}
.poke-ui .demo-loop{font:600 12px var(--body);background:#193448;border:0;border-radius:3px;color:#ffda78}
.poke-ui .sport-how{display:flex;flex-direction:column;gap:16px;background:#fffaf0;color:#193448;border:0;border-radius:6px;padding:18px}
.poke-ui .brief-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-self:stretch}
.poke-ui .brief-buttons .btn{min-height:48px;font:700 15px var(--body);padding:10px 8px}
.poke-ui .brief-buttons .btn-primary{background:#ffda78;border-color:#c2983c}
.poke-ui .brief-buttons .btn-dark{background:#e5ecdf;color:#355766;border-color:#a3b8ad}
.poke-ui .brief-buttons .btn:not(.btn-primary):not(.btn-dark){background:none;border:0;color:#536a72;font:600 12px var(--body);min-height:44px;padding:6px}
.poke-ui .brief-athlete{gap:12px;border:0;border-bottom:1px solid #d4ded2;padding:0 0 10px}
.poke-ui .brief-athlete :is(img,canvas){width:68px;height:68px;object-fit:contain}
.poke-ui .brief-athlete span{font:12px var(--body);color:#536a72}
.poke-ui .brief-athlete b{font:29px FestivalTitle,sans-serif;color:#193448}
.poke-ui .sport-how>div:not(.brief-buttons) :is(b,strong){color:#193448}
.poke-ui .sport-how>div:not(.brief-buttons) :is(span,small){color:#536a72}
.poke-ui .sport-how [class$="-athlete"]{border-color:#d4ded2}
.poke-ui .sport-how [class$="-athlete"] :is(img,canvas){max-width:85px;max-height:85px;object-fit:contain}
.poke-ui .sport-how .brief-buttons .btn:first-child{grid-column:auto}
.poke-ui .sport-how ol{margin:0;counter-reset:steps}
.poke-ui .sport-how li{font:14px/1.5 var(--body);color:#536a72;margin:0 0 14px;padding-left:31px}
.poke-ui .sport-how li:last-child{margin-bottom:0}
.poke-ui .sport-how li b{font:700 15px/1.35 var(--body);color:#193448;margin-bottom:3px}
.poke-ui .sport-how li:before{width:22px;height:22px;border:0;border-radius:50%;background:#e3ecde;color:#3c6957;font:700 12px/22px var(--body);text-align:center;top:0}
.poke-ui .event-rules{border-top:1px solid #d4ded2;padding-top:4px}
.poke-ui .event-rules summary{cursor:pointer;min-height:44px;padding:12px 0;color:#496775;font:600 13px var(--body)}
.poke-ui .event-rules p{color:#536a72;font:13px/1.5 var(--body)}
.poke-ui .finish-celebration{border:1px solid #86a5b1;border-top:5px solid #ffda78;border-radius:6px;background:#193448;padding:22px;color:#fffaf0}
.poke-ui .finish-celebration>span{background:none;color:#bed5d8;font:600 12px var(--body);letter-spacing:.5px}
.poke-ui .finish-celebration h1{color:#ffda78;font:49px/1 FestivalTitle,sans-serif;margin:12px 0}
.poke-ui .finish-celebration .finish-time{font:42px/1 FestivalTitle,sans-serif;color:#fffaf0}
.poke-ui .winner-athlete>b{border-radius:4px 4px 0 0;background:#36596d;border-bottom:4px solid #ffda78}
.poke-ui .run-stats{padding:12px 0;border-top:1px solid #486a7b;border-bottom:1px solid #486a7b}
.poke-ui .run-stats span{font:12px var(--body)}
.poke-ui .run-stats b{color:#fffaf0;font:32px FestivalTitle,sans-serif}
.poke-ui .reward-line{background:#2c4c60;color:#ffe09a;border:0;border-radius:4px;padding:10px;font:14px var(--body)}
.poke-ui .reward-line small{font:12px var(--body)}
.poke-ui .finish-celebration .result-actions{margin:16px 0;gap:8px}
.poke-ui .result-actions .btn:not(.btn-primary){border-color:#638495;background:transparent;color:#e2ece6}
.poke-ui .result-actions .btn-primary{border-color:#d3ad51}
.poke-ui .race-classification{border:1px solid #a8bfb8;border-radius:6px;overflow:hidden;background:#fffaf0;color:#193448}
.poke-ui .race-classification h2{font:28px FestivalTitle,sans-serif;background:#e2e9df;color:#193448;border-bottom:1px solid #b4c6b9;padding:12px 16px}
.poke-ui .result-table th{font:600 12px var(--body);background:#edf1e7;color:#536a72;border-bottom:1px solid #c6d3c6}
.poke-ui .result-table td{border-color:#d8e2d5}
.poke-ui .result-table .player-row{background:#ffecb3}
.poke-ui .result-table .trainer-cell{font:600 14px var(--body)}
.poke-ui .result-table .trainer-cell small{font:12px var(--body)}
.poke-ui .result-table .result-score{font:25px FestivalTitle,sans-serif}
.poke-ui .race-classification>p{font:12px/1.5 var(--body)}
.poke-ui .final-celebration{border:0;border-top:5px solid #ffda78;border-radius:6px;background:#193448;color:#fffaf0}
.poke-ui .final-celebration h1{color:#ffda78}
.poke-ui .final-celebration .section-eyebrow,.poke-ui .final-celebration>p{color:#d1e3df}
.poke-ui .final-grid .result-actions .btn:not(.btn-primary){color:#193448;border-color:#a7bdb0}
.poke-ui .podium-block{border-radius:3px 3px 0 0}

/* Dialogs live outside the shell. */
body:has(.poke-ui) #info-dialog{border:2px solid #193448;border-radius:7px;background:#fffaf0;color:#193448;width:660px;max-width:calc(100vw - 24px)}
body:has(.poke-ui) #info-dialog::backdrop{background:#102a40b8;backdrop-filter:none}
body:has(.poke-ui) .dialog-head{background:#193448;color:#fffaf0;border-bottom:3px solid #ffda78;padding:12px 18px}
body:has(.poke-ui) .dialog-head h2{font:31px/1 FestivalTitle,sans-serif}
body:has(.poke-ui) .dialog-close{background:#35566b;color:#fffaf0;min-height:44px;min-width:44px;border:1px solid #86a9b5;border-radius:4px}
body:has(.poke-ui) .dialog-body{font:15px/1.5 Festival,sans-serif;padding:20px}
body:has(.poke-ui) .dialog-body .btn{font:600 15px Festival,sans-serif;border-radius:4px;min-height:48px}
body:has(.poke-ui) .portrait-choice{background:#edf1e5;border:1px solid #b0c5b8;border-radius:4px}
body:has(.poke-ui) .portrait-choice[aria-pressed=true]{border:2px solid #193448;background:#ffda78}
body:has(.poke-ui) .passport-level{background:#e4ecdf;color:#193448;border:0;border-radius:5px;padding:14px}
body:has(.poke-ui) .passport-level b{font:30px FestivalTitle,sans-serif}
body:has(.poke-ui) .passport-level span{font:13px Festival,sans-serif}
body:has(.poke-ui) .passport-level progress{accent-color:#4d8c75;height:10px}
body:has(.poke-ui) .mission-streak{font:13px Festival,sans-serif;color:#536a72}
body:has(.poke-ui) .mission{border:1px solid #bdcebf;border-radius:5px;background:#f1f4e9;padding:14px}
body:has(.poke-ui) .mission.complete{background:#dfedda;border-color:#79a08a}
body:has(.poke-ui) .mission h3{font:28px FestivalTitle,sans-serif!important}
body:has(.poke-ui) .mission p{font:14px/1.45 Festival,sans-serif}
body:has(.poke-ui) .mission small{font:12px Festival,sans-serif}
body:has(.poke-ui) .dialog-body details{border-top:1px solid #c8d5c8;margin-top:10px}
body:has(.poke-ui) .dialog-body summary{min-height:44px;padding:12px 0;cursor:pointer;font-weight:700}
body:has(.poke-ui) #toast{border:1px solid #9bb6bf;border-left:4px solid #ffda78;border-radius:4px;background:#193448;color:#fffaf0;font:14px/1.4 Festival,sans-serif;padding:12px 16px}

@media(max-width:1000px){.poke-ui .game-lobby{grid-template-columns:minmax(0,1.3fr) minmax(290px,1fr);gap:22px}
.poke-ui .lobby-menu{padding:18px}
.poke-ui .brief-stage{grid-template-columns:minmax(0,1.3fr) minmax(290px,1fr)}
.poke-ui .lineup-footer{flex-wrap:wrap}
.poke-ui .lineup-footer p{flex-basis:100%}}
@media(max-width:900px){.poke-ui .catalogue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
.poke-ui:not(.screen-event) .header-nav{width:auto;flex-wrap:nowrap}
.poke-ui .lobby-title>span,.poke-ui .lobby-title p:not(.studio-credit){display:none}
.poke-ui:not(.screen-event) :is(.site-header,.game-top){min-height:56px;padding:5px 12px;gap:4px;flex-wrap:wrap}
.poke-ui:not(.screen-event) :is(.brand,.game-brand){font-size:26px}
.poke-ui:not(.screen-event) :is(.header-nav,.game-top nav){gap:0;flex-basis:auto}
.poke-ui:not(.screen-event) :is(.nav-button,.game-top nav button){padding:8px;font-size:12px;min-height:44px}
.poke-ui:not(.screen-event) .header-nav :is(.nav-home,[data-action=help],.portrait-nav){display:none}
.poke-ui:not(.screen-event) .game-top nav [data-action=missions]{display:none}
.poke-ui .brand-ball{display:none}
.poke-ui.app-shell .main{padding:20px 14px 28px}
.poke-ui:not(.screen-event) .page-heading{gap:10px;margin-bottom:18px}
.poke-ui:not(.screen-event) .page-heading h1{font-size:37px}
.poke-ui:not(.screen-event) .page-heading p{font-size:14px}
.poke-ui:not(.screen-event) .status-label{font-size:12px;padding:7px 9px;margin-top:6px}
.poke-ui:not(.screen-event) :is(.game-footer,.site-footer)>span{flex-basis:100%;text-align:center;font-size:10px}
.poke-ui.screen-home .game-main{display:block;padding:19px 14px}
.poke-ui .game-lobby{display:flex;flex-direction:column;gap:16px;max-width:520px}
.poke-ui .lobby-scene{width:100%;gap:13px}
.poke-ui .lobby-title{text-align:center}
.poke-ui .lobby-title>span{font-size:11px;letter-spacing:.5px}
.poke-ui .lobby-title h1{font-size:clamp(53px,12.5vw,76px);margin:5px 0}
.poke-ui .lobby-title .studio-credit{font-size:11px}
.poke-ui .lobby-title p:not(.studio-credit){font-size:14px;margin-top:8px}
.poke-ui.screen-home .lobby-reel{max-width:100%}
.poke-ui.screen-home .lobby-reel canvas{max-height:200px;object-fit:cover}
.poke-ui.screen-home .lobby-reel-caption{min-height:44px;padding:0 8px}
.poke-ui .lobby-menu{gap:8px;padding:15px 17px}
.poke-ui .trainer-row{padding-bottom:10px;gap:10px;margin-bottom:3px}
.poke-ui .trainer-row>img{width:38px;height:45px;flex-basis:38px}
.poke-ui .trainer-row-copy b{font-size:17px}
.poke-ui .trainer-row-copy small{font-size:12px;margin-top:3px}
.poke-ui .lobby-menu .menu-play{min-height:62px;font-size:20px;padding:11px 13px}
.poke-ui .lobby-menu .menu-secondary{min-height:48px;font-size:15px;padding:8px 3px}
.poke-ui .lobby-footer{padding-top:0}
.poke-ui .catalogue-controls{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:15px}
.poke-ui .catalogue-controls .season-switch{min-width:0;width:100%;margin:0}
.poke-ui .catalogue-grid{gap:10px}
.poke-ui .catalogue-card .frame-body{padding:10px 11px 12px}
.poke-ui .catalogue-title{flex-direction:column;align-items:flex-start;gap:10px;min-height:112px}
.poke-ui .catalogue-title h2{font-size:29px}
.poke-ui .catalogue-card .btn{font-size:13px;padding:8px}
.poke-ui .steps{gap:3px;margin-bottom:18px}
.poke-ui .step{gap:4px;padding:7px 3px;font-size:11px}
.poke-ui .step.active{padding-bottom:7px}
.poke-ui .step-number{min-width:18px;height:18px;font-size:10px}
.poke-ui .identity-panel .frame-body{padding:18px 14px}
.poke-ui .identity-trainer-card{grid-template-columns:95px minmax(0,1fr);gap:14px}
.poke-ui .identity-portrait{min-height:105px;padding:5px}
.poke-ui .identity-portrait img{width:65px;height:65px}
.poke-ui .identity-panel input{font-size:17px;padding:10px}
.poke-ui .identity-name-field p{font-size:12px}
.poke-ui .team-name-preview{font-size:34px;padding:12px}
.poke-ui .name-parts{gap:6px}
.poke-ui .name-parts .btn{font-size:13px}
.poke-ui .draft-choices{gap:14px}
.poke-ui .pokemon-card{grid-template-columns:105px minmax(0,1fr)}
.poke-ui .pokemon-portrait{height:100%;min-height:255px;border-right:1px solid #c8d7c5}
.poke-ui .pokemon-portrait img{width:103px;height:120px;margin-top:20px}
.poke-ui .pokemon-portrait:before{width:82px;height:82px;left:calc(50% - 41px);top:38px}
.poke-ui .pokemon-info{padding:12px}
.poke-ui .pokemon-title h2{font-size:30px}
.poke-ui .sport-summary{font-size:13px;margin:10px 0}
.poke-ui .stat{font-size:13px;grid-template-columns:46px minmax(0,1fr) 25px;gap:6px}
.poke-ui .stat-label{font-size:11px}
.poke-ui .pokemon-card .btn{font-size:14px;min-height:46px;padding:8px 6px}
.poke-ui :is(.legend-badge,.shiny-badge){font-size:10px}
.poke-ui .roster-mini strong{font-size:22px}
.poke-ui .roster-mini small{font-size:11px}
.poke-ui .lineup-footer{display:flex}
.poke-ui .lineup-footer .btn{min-width:0;width:100%;margin:0}
.poke-ui .sport-title{margin-bottom:15px}
.poke-ui .sport-title h1{font-size:45px}
.poke-ui .sport-title p{font-size:14px}
.poke-ui .brief-stage{display:flex;flex-direction:column;gap:14px}
.poke-ui .sport-how{display:flex;padding:16px;gap:15px;width:100%}
.poke-ui .brief-buttons{grid-template-columns:1fr 1fr}
.poke-ui .brief-buttons .btn{font-size:15px;min-height:48px}
.poke-ui .brief-buttons .btn:not(.btn-primary):not(.btn-dark){min-height:44px;font-size:12px}
.poke-ui .sport-how li{font-size:14px}
.poke-ui .finish-celebration{padding:18px 14px}
.poke-ui .finish-celebration h1{font-size:42px}
.poke-ui .result-table .trainer-cell{font-size:13px}
.poke-ui .result-table .trainer-cell small{font-size:11px}
.poke-ui .race-classification .result-table td{padding:9px 8px}
body:has(.poke-ui) .dialog-body{padding:17px 14px}
}
@media(max-width:640px){.poke-ui .lineup-desk{grid-template-columns:minmax(0,1fr);gap:14px}
.poke-ui .lineup-desk .assignment-roster{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.poke-ui .roster-pick{flex-direction:column;text-align:center;padding:8px 4px;gap:6px}
.poke-ui .roster-pick.selected{padding:8px 4px}
.poke-ui .roster-pick b{font-size:22px}
.poke-ui .roster-pick small{font-size:11px}
.poke-ui .roster-pick img{width:56px;height:56px}
.poke-ui .dex-panel{position:static;min-height:0;padding:14px}
.poke-ui .dex-heading{display:flex;text-align:left;gap:14px}
.poke-ui .dex-heading>img{width:70px;height:70px}
.poke-ui .dex-heading .type-row{justify-content:flex-start}
.poke-ui .dex-panel .stat{grid-template-columns:56px minmax(0,1fr) 25px}
.poke-ui .dex-empty{min-height:65px}}
@media(max-width:374px){.poke-ui:not(.screen-event) :is(.brand,.game-brand){font-size:23px}
.poke-ui:not(.screen-event) :is(.nav-button,.game-top nav button){font-size:11px;padding-inline:7px}
.poke-ui .lobby-menu{padding:14px}
.poke-ui .menu-action-icon{flex-basis:24px}
.poke-ui .menu-action-icon svg{width:24px;height:24px}
.poke-ui .lobby-menu .menu-play{font-size:19px;gap:8px;padding:10px}
.poke-ui .pokemon-card{grid-template-columns:85px minmax(0,1fr)}
.poke-ui .pokemon-portrait img{width:83px}
.poke-ui .pokemon-portrait:before{width:68px;height:68px;left:calc(50% - 34px)}
.poke-ui .pokemon-info{padding:11px 9px}
.poke-ui .step{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.poke-ui:not(.screen-event) *,.poke-ui:not(.screen-event) *:before,.poke-ui:not(.screen-event) *:after{animation:none!important;transition:none!important}
.poke-ui:not(.screen-event) .btn:hover,.poke-ui .catalogue-card:hover,.poke-ui .catalogue-card:focus-within{transform:none}}
