/* Approved fire-menu system: real controls over reusable illustrated art. */
.fire-panel{position:relative;isolation:isolate;background:#032832 url('assets/tournament/fire-palms-v1.webp') center top/100% 100% no-repeat;color:#fff4d7;padding:18px 22px 28px;min-height:100dvh;overflow:hidden}
.fire-panel .panel-top,.fire-panel #panelContent{position:relative;z-index:2}.fire-panel .panel-top{margin-bottom:20px}.fire-panel .back-icon,.fire-panel .wordmark{color:#fff3d6}.fire-panel .wordmark{font-style:italic}.fire-panel h2{color:#fff4d7;font-size:clamp(34px,8.5vw,48px);line-height:1;margin:10px 0 18px;letter-spacing:-.8px}.fire-panel .eyebrow{color:#fff0d2;letter-spacing:2px;font-size:11px;font-weight:800;margin:0 0 8px}.fire-panel p{color:#f1ead3}.fire-panel .primary{background:linear-gradient(110deg,#d9fc53,#c7ef59);border:1px solid #edffa1;border-radius:35px;box-shadow:0 0 20px #c8ef4f15;color:#12343c;padding:15px 12px;font-size:26px;line-height:1.1}.fire-panel .secondary{border:1.5px solid #75c7bf;background:#082c35d9;border-radius:30px;color:#fff1d1;font-size:23px;padding:16px 12px;margin:12px 0 0}.fire-panel .panel-fields .setting,.fire-panel .panel-fields .audio-preferences,.fire-panel .panel-fields .effect-preferences,.fire-panel .panel-fields .character-picker{background:#13434dc9}.fire-panel label,.fire-panel .panel-fields small{color:#f3eacf}.fire-panel select{color:#103b45}.fire-panel .developer-link,.fire-panel .text-route{color:#bce4d7}.fire-panel .road-small,.fire-panel .road-save{color:#e5e6cd}.fire-panel .reward-unlocks>div{background:#0b3541d9;border-color:#749b8b}.fire-panel .reward-unlocks h3,.fire-panel .league-victory h3{color:#e0f884}
.menu-atmosphere{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.menu-atmosphere i{position:absolute;bottom:-12px;left:calc(4% + var(--edge)*88%);height:5px;width:2px;border-radius:50%;background:#ffc35c;box-shadow:0 0 8px #ff7e37;opacity:0;animation:menu-ember-rise calc(5s + var(--i)*.31s) linear infinite;animation-delay:calc(var(--i)*-.71s)}.menu-smoke{position:absolute;bottom:-30px;left:-15%;width:130%;height:230px;background:radial-gradient(ellipse at 15% 90%,#f7863c55,transparent 50%),radial-gradient(ellipse at 85% 100%,#c9573550,transparent 50%);filter:blur(12px);animation:menu-smoke-drift 12s ease-in-out infinite alternate;opacity:.5}.locker-screen>.menu-atmosphere{opacity:.33}.locker-screen>.menu-atmosphere .menu-smoke{height:120px;opacity:.2}.locker-screen> :not(.menu-atmosphere){position:relative;z-index:1}.screen[hidden] .menu-atmosphere>*{animation-play-state:paused}
@keyframes menu-ember-rise{0%{transform:translate3d(0,0,0) rotate(10deg);opacity:0}12%{opacity:.8}75%{opacity:.5}100%{transform:translate3d(calc((var(--i) - 7)*3px),-780px,0) rotate(160deg);opacity:0}}@keyframes menu-smoke-drift{from{transform:translate3d(-10px,5px,0) scale(1)}to{transform:translate3d(15px,-14px,0) scale(1.08)}}
.tour-menu[data-tour-view=leagues] #panelContent>.eyebrow,.tour-menu[data-tour-view=route] #panelContent>.eyebrow{display:none}.tour-subtitle{font-weight:800;font-size:11px!important;letter-spacing:1.5px;margin:-6px 0 17px!important}.tour-save{text-align:center;font-size:11px!important;margin:18px 0 0!important;color:#edf2d7!important;line-height:1.4!important}.tour-save::first-letter{color:#baf067}.tour-save.save-warning{color:#ffc296!important}
.road-hero{border:2px solid #ffe56d;border-radius:24px;padding:19px 16px 15px;overflow:hidden;background:radial-gradient(ellipse at 50% 82%,#d86b3477,transparent 60%),#032833ba;box-shadow:0 8px 24px #00191f55}.road-hero-copy{text-align:center;position:relative;z-index:2}.road-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:1.7px;color:#e8f7d7}.road-hero h3{font:900 italic clamp(32px,8vw,45px)/1 'Barlow Condensed',Impact,sans-serif;color:#dafa58;letter-spacing:-.4px;margin:15px -5px 8px}.road-hero-copy p{font-size:14px!important;margin:0!important}.hero-bosses{height:300px;position:relative;margin:0 -16px 10px;background:radial-gradient(ellipse at 50% 88%,#ffb65077,transparent 55%),url('assets/tournament/fire-palms-v1.webp') center bottom/100% 160% no-repeat}.boss-art{object-fit:contain;object-position:center bottom;user-select:none;pointer-events:none;filter:drop-shadow(0 0 8px #f4a04725)}.hero-bosses .boss-art{position:absolute;bottom:28px;height:230px;width:43%}.hero-bosses .hero-cuthbert{left:-1%;transform:rotate(-3deg)}.hero-bosses .hero-biglicks{right:-1%;transform:rotate(3deg)}.hero-bosses .hero-sam{height:272px;width:48%;left:26%;z-index:1}.hero-names{display:flex;position:absolute;bottom:3px;left:0;right:0;z-index:2;text-align:center;font:800 15px 'Barlow Condensed',Impact,sans-serif;color:#fff4d8;text-shadow:0 1px 3px #00222b}.hero-names span{width:33.33%}.road-hero .primary{position:relative;z-index:2}.tour-menu .road-quick{margin-top:17px}.tour-menu .road-practice{margin-top:12px}
.tour-menu .league-select{display:flex;flex-direction:column;gap:11px;margin:0 0 18px}.tour-menu .league-choice{display:block;position:relative;overflow:hidden;isolation:isolate;text-align:left;min-height:145px;padding:13px 14px;width:100%;border:1.5px solid #4f8490;border-radius:18px;background:radial-gradient(ellipse at 80% 70%,#548a7c88,transparent 70%),url('assets/tournament/fire-palms-v1.webp') center 23%/100% 200% no-repeat;color:#fff1d5;opacity:1}.tour-menu .league-choice::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#01262bd9,transparent 90%);z-index:-1}.tour-menu .league-choice.selected{border:3px solid #e0f767;box-shadow:0 0 15px #bdec5c24;padding:11px 12px}.league-copy{display:block;position:relative;z-index:2;width:65%}.league-tier{display:block;font:900 38px/.95 'Barlow Condensed',Impact,sans-serif;letter-spacing:-.6px}.league-name{display:block;font-size:12px;font-weight:900;letter-spacing:1.5px;color:#c9f164;margin-top:6px}.league-boss{display:block;font:700 15px/1.1 'Barlow Condensed',Impact,sans-serif;margin-top:4px}.league-status{display:block;font-size:10px;line-height:1.2;letter-spacing:.8px;margin-top:11px;color:#e0e4d0}.league-choice.open .league-status{display:inline-block;padding:5px 15px;border-radius:18px;background:#d3f65b;color:#0b3038;font-weight:900;letter-spacing:1px}.league-choice .boss-art{position:absolute;right:-4%;top:7%;height:180%;width:54%;object-position:center top;z-index:1}.league-normal{background-color:#124855!important}.league-hard{border-color:#f39549!important;background-position:center 60%!important;box-shadow:inset 0 -24px 35px #e86d2b22}.league-hard .league-name{color:#ffc566}.tour-menu .future-league{min-height:103px;background-color:#0a252b!important;border-color:#657b80;filter:saturate(.5)}.future-league .league-tier{font-size:31px}.future-league .league-name{font-size:11px;color:#99b4bc}.future-league .league-boss{font-size:12px}.future-league .league-status{margin-top:9px;font-size:9px}.future-boss{position:absolute;right:5%;bottom:-20px;width:115px;height:125px;background:#06141c;border:1px solid #9bb6b04d;border-radius:48% 48% 17% 17%;box-shadow:0 0 25px #8db3a530}.future-boss::after{content:'';position:absolute;left:20px;right:20px;top:-9px;height:60px;border-radius:45%;background:#06141c}.future-boss>span{position:absolute;left:46%;top:25px;font:bold 33px sans-serif;color:#6d8a94;z-index:1}.future-crown{position:absolute;top:-26px;left:30px;z-index:2;font-size:52px;color:#e1b85c}.league-legendary{filter:none!important;border-color:#ac985d!important}.league-legendary .league-tier,.league-legendary .league-name{color:#edc265}
.tour-league-pill{display:inline-block;border:1px solid #81cb8b;border-radius:16px;padding:5px 12px;color:#d9f673;font:800 14px 'Barlow Condensed',Impact,sans-serif;letter-spacing:.6px;margin:-6px 0 13px}.final-boss-hero{position:relative;min-height:160px;border:2px solid #f8cc5a;border-radius:19px;background:linear-gradient(90deg,#071f2b99,#c7783c55),url('assets/tournament/fire-palms-v1.webp') center 76%/100% 250%;overflow:hidden;padding:18px 14px;isolation:isolate}.final-boss-hero>div{position:relative;z-index:2;max-width:62%;text-shadow:0 2px 4px #00222b}.final-boss-hero span{font-size:10px;color:#ffc368;letter-spacing:2px;font-weight:800}.final-boss-hero h3{font:900 clamp(26px,7vw,38px)/.95 'Barlow Condensed',Impact,sans-serif;color:#fff0cc;margin:10px 0}.final-boss-hero b{display:block;font-size:10px;letter-spacing:1px;color:#f0e3c3}.final-boss-hero .boss-art{position:absolute;height:200%;top:4%;width:57%;right:-7%;object-position:center top}.tour-progress h3{font:900 29px 'Barlow Condensed',Impact,sans-serif;color:#fff0d0;margin:17px 0 10px}.route-nodes{display:flex;justify-content:space-between;align-items:center;position:relative;margin:0 12px 18px}.route-nodes::before{content:'';position:absolute;height:3px;left:12px;right:12px;background:#6d786b}.route-nodes span{display:flex;align-items:center;justify-content:center;position:relative;z-index:1;border:2px solid #9a9a7c;border-radius:50%;width:37px;height:37px;background:#032a32;color:#b8bda3;font-size:19px}.route-nodes .won{background:#d1f65e;border-color:#d1f65e;color:#062b34}.route-nodes .current{border-color:#ffdc5d;box-shadow:0 0 12px #ffdb6f65;color:#e6f688}
.tour-menu .opponent-route{display:flex;flex-direction:column;gap:7px;margin:0 0 15px}.tour-menu .rival-card{display:flex;position:relative;align-items:center;gap:10px;min-height:64px;padding:10px;border:1px solid #4f7878;border-radius:13px;background:#0b3038d9;overflow:hidden}.rival-card .route-number{font:700 15px 'Barlow Condensed',Impact,sans-serif;color:#abc3b9;width:24px;flex:none;background:none;border:0}.tour-menu .rival-copy{position:relative;z-index:2;flex:1;max-width:66%}.rival-copy h3{font:800 20px/.95 'Barlow Condensed',Impact,sans-serif;color:#fff0d5;margin:2px 0}.rival-copy b{font-size:10px;letter-spacing:1px;color:#a6dad0}.rival-copy p{font-size:10px!important;line-height:1.4!important;margin:7px 0 0!important}.rival-card .rival-portrait{position:absolute;right:25px;top:-2px;width:60px;height:70px;object-fit:contain;opacity:.65}.rival-card .boss-art{position:absolute;right:7%;top:0;width:75px;height:125px;object-position:top;opacity:.8}.rival-card .route-tick{position:absolute;right:11px;top:19px;font-size:16px;color:#09363c;background:#d7f764;border-radius:50%;width:25px;height:25px;text-align:center}.tour-menu .rival-card.current{min-height:126px;border:2px solid #f2da62;background:radial-gradient(ellipse at 90% 90%,#537b5d88,transparent 75%),#0a303b;padding:13px 10px}.rival-card.current .rival-portrait{right:-7px;top:12px;width:120px;height:138px;opacity:1}.rival-card.current .boss-art{width:140px;height:220px;right:-7px;top:3px;opacity:1}.rival-card.current .rival-copy{max-width:65%}.rival-card.current h3{font-size:28px}.up-next{display:block;color:#e2f86d;font-size:10px;font-weight:900;letter-spacing:1.2px;margin-bottom:6px}.final-label{display:block;color:#ffc16d;font-size:10px;font-weight:800;letter-spacing:1.7px}.tour-menu .boss-card:not(.current){min-height:72px;border-color:#caa452;background:#73512940}.route-crown{position:absolute;right:13px;color:#ffe172;font-size:30px}
.tour-rewards{position:relative;display:grid;grid-template-columns:72px 1fr;align-items:center;border:1px solid #789c91;border-radius:17px;background:#062a34d9;padding:11px 10px 26px;margin:17px 0 12px;gap:5px}.tour-rewards h3{font:900 20px/1 'Barlow Condensed',Impact,sans-serif;color:#fff0d3;margin:0}.tour-reward-items{display:flex;justify-content:space-around;align-items:flex-start;gap:4px}.tour-reward-items>div{flex:1;min-width:0;text-align:center}.tour-reward-items canvas{width:100%;height:66px;object-fit:contain}.tour-reward-items b{display:block;font:700 10px/1.1 'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;color:#fff3d5}.tour-rewards>small{position:absolute;bottom:8px;left:8px;right:8px;text-align:center;color:#c6d6c7;font-size:8px}.tour-menu .league-objectives{background:#052a32c9;border:1px solid #456b69;border-radius:13px;padding:13px;margin:12px 0;color:#ede8cd}.league-objectives summary{font-size:10px;font-weight:800;letter-spacing:.7px;cursor:pointer}.tour-menu .league-objectives>div{display:flex;gap:9px;padding:8px 0;border-bottom:1px solid #5c78613d}.tour-menu .league-objectives p{margin:0;font-size:11px}.league-objectives small{display:block;font-size:10px;color:#b9cec4}.league-objectives>p{font-size:10px!important;margin-top:9px!important}.victory-boss{height:190px;text-align:center;overflow:hidden}.victory-boss img{height:300px;width:100%;object-position:top}.tour-menu .league-victory{background:#163c3dd9;padding:16px;border-radius:17px}.fire-panel .champion-option{padding:15px;background:#12414bd9;border:1px solid #658783;border-radius:14px}.fire-panel .champion-option label{font-weight:800;font-size:12px}.fire-panel .champion-option p{font-size:12px}.fire-panel .route-reward{color:#d7edb0}.fire-panel .route-reward strong{display:block;color:#fff0cd}
body.reduced-menu .menu-atmosphere>*{animation:none!important;opacity:.12}body.reduced-menu .league-choice{transition:none!important}@media(prefers-reduced-motion:reduce){.menu-atmosphere>*{animation:none!important;opacity:.12}}@media(max-width:380px){.fire-panel{padding:15px}.fire-panel h2{font-size:34px}.hero-bosses{height:245px}.hero-bosses .boss-art{height:190px}.hero-bosses .hero-sam{height:220px}.league-tier{font-size:33px}.tour-menu .league-choice{min-height:133px}.league-boss{font-size:14px}.future-league .league-tier{font-size:28px}.tour-menu .future-league{min-height:100px}.final-boss-hero{min-height:145px}.rival-card.current h3{font-size:24px}}
/* Override the former route layout without changing other screens. */
.fire-panel#panelScreen:has(.opponent-route) .rival-card{min-height:64px}.fire-panel#panelScreen:has(.opponent-route) .rival-card.current{min-height:126px}.fire-panel#panelScreen:has(.opponent-route) .boss-card:not(.current){min-height:72px}.fire-panel#panelScreen:has(.opponent-route) .opponent-route{gap:7px;margin-top:0}.tour-menu .rival-card .route-number{position:static;transform:none;flex:none}.fire-panel .route-reward{background:#123e48ce}.fire-panel .reward-unlocks span{color:#d6f47a}.fire-panel .reward-unlocks small{color:#d5e1cf}.fire-panel .how-list h3{color:#def585}.locker-screen>.palm-backdrop{position:absolute;z-index:0}

/* Website edition: shared-rig Powerhouse portraits and honest smash scouting. */
.final-boss-hero>.rival-portrait{width:148px;height:166px;flex:none;object-fit:contain}.league-choice>.rival-portrait{width:120px;height:135px;object-fit:contain}.victory-boss>.rival-portrait{width:160px;height:180px}.boss-tactics{background:#092e37dc;border:1px solid #a0b77970;border-radius:13px;padding:12px;margin:8px 0 15px}.boss-tactics strong{color:#e1f58e;font-size:12px;letter-spacing:.8px}.boss-tactics p{font-size:12px;line-height:1.5;margin:5px 0 0}

/* Final roster: reference artwork uses image viewports; text stays live and accessible. */
.tour-menu .league-choice>.lineup-art{position:absolute;top:0;right:0;width:57%;height:100%;z-index:0;pointer-events:none;opacity:.96}
.tour-menu .league-choice::after{z-index:1;background:linear-gradient(90deg,#01262b 0%,#01262be8 38%,#01262b00 75%);pointer-events:none}
.tour-menu .league-copy{width:68%}.league-hint{display:block;font-size:10px;line-height:1.3;color:#e1e5d9;margin-top:5px;font-weight:500;max-width:92%}
.tour-menu .league-choice{min-height:162px}.tour-menu .league-status{margin-top:8px}.league-legendary{min-height:162px!important}
.final-boss-hero>.lineup-art{width:190px;height:160px;flex:none;border-radius:16px}.rival-card>.lineup-art{width:100px;height:100px;flex:none;border-radius:14px}.victory-boss>.lineup-art{width:240px;height:175px;border-radius:18px}
.hero-bosses>.lineup-art{height:180px;width:150px;object-fit:contain;border-radius:20px}.hero-bosses>.hero-sam{width:180px;height:190px}
@media(max-width:380px){.tour-menu .league-choice{min-height:153px}.league-hint{font-size:9px}.final-boss-hero>.lineup-art{width:140px}}

/* v1.8: independent portrait assets and consistent, contained player cards. */
.all-five-bosses.hero-bosses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;height:auto;min-height:0;background:none;margin:20px 0;padding:0}
.hero-boss-tile{margin:0;min-width:0;overflow:hidden;border:1px solid #42737a;border-radius:12px;background:#063840;display:flex;flex-direction:column;align-items:center}
.all-five-bosses .hero-boss-tile>.portrait-art{display:block;position:static!important;inset:auto!important;transform:none!important;width:100%!important;height:auto!important;aspect-ratio:2/1;object-fit:contain;filter:none;opacity:1}
.hero-boss-tile figcaption{width:100%;padding:8px 2px;background:#082c32;color:#fff1d5;font:800 12px 'Barlow Condensed',Impact,sans-serif;text-align:center;letter-spacing:.4px}
.tour-menu .league-choice{display:grid!important;grid-template-columns:52% 48%;align-items:center;min-height:174px!important;padding:13px 10px 13px 14px;gap:0;box-shadow:none!important}
.tour-menu .league-choice.selected{border-width:1.5px;box-shadow:0 0 0 2px #d9ef64!important}
.tour-menu .league-choice::after{display:none}.tour-menu .league-choice .league-copy{position:relative;z-index:1;max-width:none;min-width:0}
.tour-menu .league-choice>.portrait-art{position:static!important;inset:auto!important;width:100%!important;height:auto!important;max-height:148px;object-fit:contain;filter:none;opacity:1;border-radius:10px}
.tour-menu .league-boss{font-size:16px;overflow-wrap:break-word}.tour-menu .league-hint{font-size:10px;line-height:1.35;letter-spacing:.3px}.tour-menu .league-status{font-size:9px;line-height:1.3;letter-spacing:.2px;white-space:normal}
.final-boss-hero{display:grid;grid-template-columns:52% 48%;align-items:center;min-height:172px}.final-boss-hero>div{max-width:none}.final-boss-hero>.portrait-art{position:static!important;inset:auto!important;width:100%!important;height:auto!important;object-fit:contain;filter:none;border-radius:12px}
.tour-menu .opponent-route .rival-card{display:grid;grid-template-columns:28px minmax(0,1fr) 34%;gap:9px;align-items:center;min-height:112px!important;padding:12px!important}
.tour-menu .opponent-route .rival-card.current{min-height:156px!important}.tour-menu .opponent-route .rival-copy{position:relative;max-width:none!important;min-width:0;z-index:1}.tour-menu .opponent-route .rival-card h3{font-size:23px!important;overflow-wrap:break-word}
.tour-menu .opponent-route .rival-card>.portrait-art,.tour-menu .opponent-route .rival-card>.rival-portrait{position:static!important;inset:auto!important;width:100%!important;height:90px!important;object-fit:contain;opacity:1!important;filter:none;border-radius:10px}
.tour-menu .opponent-route .rival-card.current>.portrait-art,.tour-menu .opponent-route .rival-card.current>.rival-portrait{height:122px!important}
.tour-menu .route-number{position:static!important;transform:none!important}.rival-card .route-tick,.rival-card .route-crown{right:8px;top:auto;bottom:5px}.victory-boss>.portrait-art{width:100%;height:auto;max-height:250px;object-fit:contain}
@media(max-width:380px){.all-five-bosses.hero-bosses{gap:6px}.hero-boss-tile figcaption{font-size:10px}.tour-menu .league-choice{min-height:161px!important}.tour-menu .league-tier{font-size:30px}.tour-menu .league-boss{font-size:14px}.tour-menu .opponent-route .rival-card h3{font-size:20px!important}.tour-menu .opponent-route .rival-card{grid-template-columns:23px minmax(0,1fr) 32%;gap:7px}}
.tour-menu .league-choice .league-copy{width:100%!important}.tour-menu .opponent-route .rival-copy{width:100%!important}

/* Seasonal guests use the same live rig as the court. Keep them inside the portrait grid. */
.tour-menu .league-choice>canvas.rival-portrait,.final-boss-hero>canvas.rival-portrait{position:static!important;inset:auto!important;width:100%!important;height:148px!important;object-fit:contain;opacity:1;filter:none}
.hero-boss-tile>canvas.rival-portrait{display:block;position:static!important;inset:auto!important;width:100%!important;height:90px!important;object-fit:contain}
