/* Ryvexio Stadium: shared visual layer. No layout state or game logic. */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Inter:wght@400;500;600;700;800&display=swap');
html.sport-theme{
 color-scheme:dark;--bg:#09090b;--panel:#17171c;--panel2:#222228;--border:#414149;--white:#f4f4f6;--muted:#f4f4f6;
 --lime:#f4f4f6;--blue:#f4f4f6;--accent:#ff6268;--good:#74dfb2;--ry-red:#fa4a58;--ry-red-bright:#ff6268;
 --sport-accent:var(--league-accent,#ff6268);--sport-heading:'Barlow Condensed','Arial Narrow',Impact,sans-serif;
 background:var(--bg);scroll-padding-top:24px;
}
html.sport-theme *{box-sizing:border-box}
html.sport-theme body{
 margin:0;color:var(--white);font-family:Inter,Arial,sans-serif;line-height:1.6;
 background-color:var(--bg);background-image:linear-gradient(125deg,#09090be8,#09090bf7 75%),url('/app/stadium-lines.svg');
 background-size:auto,1440px 960px;background-position:center top;background-attachment:scroll;
}
.sport-theme :where(h1,h2,h3,h4){font-family:var(--sport-heading);font-weight:800;letter-spacing:.015em;line-height:1.08;text-wrap:balance}
.sport-theme :where(h1){font-size:clamp(2.8rem,6vw,5.5rem);text-transform:uppercase}
.sport-theme :where(h2){font-size:clamp(1.7rem,3vw,2.45rem)}
.sport-theme :where(h3){font-size:1.45rem}
.sport-theme :where(h1 em,h1>span){color:var(--accent);font-style:normal}
.sport-theme :where(.eyebrow,.kicker,.page-kicker,.section-label){color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.sport-theme :where(p,.intro,.subtle,.hint,.muted,.note){color:var(--muted)}
.sport-theme :where(a){color:#f4f4f6;text-underline-offset:4px}
.sport-theme :where(button,input,select,textarea){font-family:Inter,Arial,sans-serif;max-width:100%;border-radius:5px}
.sport-theme :where(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=color]){
 color:var(--white);background-color:#101013;border:1px solid #66666f;border-radius:5px;min-height:44px;
}
.sport-theme :where(input[type=checkbox],input[type=radio]){accent-color:var(--accent);width:auto;flex:none}
.sport-theme :where(button,.button,.btn){min-height:44px;font-weight:700;transition:border-color .15s ease,background-color .15s ease}
.sport-theme :where(button):not(:disabled):hover{border-color:var(--accent)}
.sport-theme :where(button,a,input,select,textarea,summary):focus-visible{
 outline:3px solid #ffdd85!important;outline-offset:4px;box-shadow:none;
}
.sport-theme :where(button):disabled{cursor:not-allowed}
.sport-theme :where(.primary,.button.primary,.btn:not(.alt),.action:not(.secondary)){
 background:#ff6268;border-color:#ff6268;color:#101013;letter-spacing:.035em;border-radius:5px;font-weight:800;
}
.sport-theme :where(.primary,.button.primary,.btn:not(.alt),.action:not(.secondary)):hover{background:#ff7f83;border-color:#ff7f83;color:#101013}
.sport-theme :where(.btn.alt,.secondary){border-color:#b2b2ba;color:#f4f4f6;background:#17171c}
.sport-theme :where(.panel,.card,.account-card,.records,.draft,.lineup-panel,.note){
 background:linear-gradient(135deg,#17171c,#17171c);border-color:var(--border);border-radius:8px;box-shadow:inset 0 1px #ffffff0a;
}
.sport-theme :where(table){font-variant-numeric:tabular-nums}
.sport-theme :where(th){font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.sport-theme :where(td){font-variant-numeric:tabular-nums}
.sport-theme :where(.stat strong,.metrics strong,.scoreboard,.score,.price,.ry-summary-card strong){
 font-family:var(--sport-heading);font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.015em;
}
.sport-theme :where(progress){accent-color:var(--lime)}
.sport-theme :where(footer){border-top-color:var(--border);color:#b2b2ba}
.sport-theme ::selection{background:#ff6268;color:#101013}
/* Public front door: a sports masthead and illustrated arena. */
.sport-theme[data-sport-page=marketing] header{background:#101013e8;border-bottom:1px solid #66666f;border-top:4px solid #fa4a58}
.sport-theme[data-sport-page=marketing] .brand{font-size:32px;letter-spacing:.08em}
.sport-theme[data-sport-page=marketing] .brand span{color:var(--accent)}
.sport-theme[data-sport-page=marketing] .hero{padding:76px 0 84px;border-bottom:1px solid #66666f;background:linear-gradient(115deg,#101013 35%,#101013e0),url('/app/stadium-lines.svg') center/cover}
.sport-theme[data-sport-page=marketing] .hero>.wrap{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.75fr);gap:38px;align-items:center;max-width:1240px}
.sport-theme[data-sport-page=marketing] .hero h1{font-size:clamp(62px,7vw,104px);line-height:.92;letter-spacing:.005em;margin:22px 0;max-width:800px}
.sport-theme[data-sport-page=marketing] .hero h1 span{color:#ff6268}
.sport-theme[data-sport-page=marketing] .hero p{font-size:16px;max-width:530px}
.sport-theme[data-sport-page=marketing] .hero .eyebrow{display:flex;align-items:center;gap:12px}
.sport-theme[data-sport-page=marketing] .hero .eyebrow:before{content:"";width:27px;height:4px;background:var(--accent);transform:skew(-25deg)}
.sport-theme .sport-hero-art{position:relative;aspect-ratio:1;min-width:0;border:1px solid #414149;border-radius:50%;background:radial-gradient(circle,#303038 0,#17171c 68%);padding:22px;box-shadow:0 0 0 15px #17171c,0 0 0 16px #414149}
.sport-theme .sport-hero-art img{display:block;width:100%;height:100%;object-fit:contain}
.sport-theme .sport-hero-art:after{content:"";position:absolute;inset:15%;border:1px dashed #b2b2ba66;border-radius:50%;pointer-events:none}
.sport-theme[data-sport-page=marketing] .section{padding-top:66px;padding-bottom:66px}
.sport-theme[data-sport-page=marketing] .card{border-top:3px solid #fa4a58;border-radius:5px;padding:26px}
.sport-theme[data-sport-page=marketing] .card h3{font-size:28px;text-transform:uppercase}
.sport-theme[data-sport-page=marketing] .card .icon{display:grid;place-items:center;width:52px;height:52px;border:1px solid #66666f;background:#101013;border-radius:5px;font-size:26px;margin-bottom:20px}
.sport-theme[data-sport-page=marketing] .band{background:#17171c;border-color:#414149}
.sport-theme[data-sport-page=marketing] .price{font-size:60px;line-height:1.1}
.sport-theme[data-sport-page=marketing] .plan-state{border-radius:4px;color:#f4f4f6;background:#222228}
/* Workspace: restore athletic contrast above the neutral legacy layer. */
html.sport-theme #shell .sidebar{background:#101013!important;border-right:1px solid #414149!important}
html.sport-theme #shell .brand-symbol,html.sport-theme .login-brand .brand-symbol{background:#222228!important;border-color:#66666f!important;border-radius:5px}
html.sport-theme .brand-symbol img{filter:none!important}
html.sport-theme #shell .brand b{font:800 26px/1 var(--sport-heading);letter-spacing:.08em}
html.sport-theme #shell .brand small{color:#f4f4f6}
html.sport-theme #nav .ry-nav-item{border-radius:4px;border-left:3px solid transparent}
html.sport-theme #nav .ry-nav-item.active{background:#222228;border-color:#66666f;border-left-color:var(--sport-accent)}
html.sport-theme #nav .ry-nav-icon{color:var(--sport-accent)}
html.sport-theme #nav .ry-nav-item button{font-weight:650;font-size:12px}
html.sport-theme #nav .ry-nav-item button:hover{background:#303038!important}
html.sport-theme #shell .topbar{background:#17171c;border-bottom:1px solid #414149}
html.sport-theme #shell .season{font-size:10px;letter-spacing:.12em;color:#f4f4f6}
html.sport-theme #shell .content{background:transparent}
html.sport-theme #shell :is(h1,h2,h3,h4){font-family:var(--sport-heading);font-weight:800;letter-spacing:.02em}
html.sport-theme #shell h1{font-size:clamp(36px,4vw,56px);line-height:1;text-transform:uppercase}
html.sport-theme #shell h1 em{color:var(--accent)}
html.sport-theme #shell :is(.hero,.page-hero,.v34-hero,.v35-hero,.v33-hero,.v39-hero){
 background:linear-gradient(115deg,#17171c,#101013)!important;border:1px solid #66666f!important;border-left:4px solid var(--sport-accent)!important;border-radius:6px;
}
html.sport-theme #shell :is(.panel,.card,.v34-panel,.v35-panel,.v33-panel,.ry-panel,.ry-card){
 background:#17171c!important;border-color:#414149!important;border-radius:6px;
}
html.sport-theme #shell :is(.stats>div,.stat,.tile){background:#222228!important;border-color:#414149!important}
html.sport-theme #shell :is(.primary,.v34-primary,.v35-primary,.v33-primary){
 background:#ff6268!important;border-color:#ff6268!important;color:#101013!important;border-radius:5px;font-weight:800;
}
html.sport-theme #shell :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=color]){background:#101013;border-color:#66666f;color:#f4f4f6}
html.sport-theme #shell th{background:#222228;color:#f4f4f6}
html.sport-theme #shell td{border-color:#414149}
html.sport-theme #shell .ry-arena-hero{position:relative;overflow:hidden;min-height:190px;padding:30px;border:1px solid #66666f;border-left:4px solid var(--sport-accent);border-radius:6px;background:linear-gradient(100deg,#17171ce8,#17171cbd),url('/app/stadium-lines.svg') 70% 50%/cover}
html.sport-theme #shell .ry-clean-welcome{position:relative;z-index:1;min-width:0}
html.sport-theme #shell .ry-clean-welcome h1{font-size:clamp(40px,4.8vw,66px);margin-bottom:12px;letter-spacing:.01em}
html.sport-theme #shell .ry-clean-welcome small{color:#ff8d91;font-weight:800;letter-spacing:.14em}
html.sport-theme #shell .ry-clean-welcome p{color:#f4f4f6;font-size:13px}
html.sport-theme #shell .ry-arena-team{background:#17171c;border:1px solid #66666f;border-radius:5px}
html.sport-theme #shell .ry-summary-card{background:#17171c;border-color:#414149;border-top:3px solid var(--sport-accent);border-radius:5px}
html.sport-theme #shell .ry-summary-card strong{font:800 38px/1 var(--sport-heading);color:#f4f4f6}
html.sport-theme #shell .ry-summary-card small{font-size:10px;letter-spacing:.08em;text-transform:uppercase}
html.sport-theme #shell .ry-feature{background:#17171c;border:1px solid #414149;border-radius:5px;min-height:94px}
html.sport-theme #shell .ry-feature:hover{background:#303038;border-color:var(--sport-accent)}
html.sport-theme #shell .ry-feature-icon{color:var(--sport-accent)}
html.sport-theme #shell .ry-feature-text strong{font:700 18px/1.1 var(--sport-heading);letter-spacing:.025em;text-transform:uppercase}
html.sport-theme #shell .ry-feature-text small{font-size:10px;color:#f4f4f6}
html.sport-theme #shell .ry-broadcast-panel{border-radius:5px;background:#17171c;border-color:#414149}
html.sport-theme #shell .ry-broadcast-panel>header{border-top:3px solid var(--sport-accent);border-bottom:1px solid #414149;background:#222228}
html.sport-theme #shell .ry-broadcast-panel h2{font:700 19px/1.1 var(--sport-heading);letter-spacing:.025em;text-transform:uppercase;color:#f4f4f6}
html.sport-theme .login-panel h1{font-family:var(--sport-heading);letter-spacing:.015em;font-weight:800}
html.sport-theme .login-panel h1 em{color:var(--accent)}
html.sport-theme .login-art{background:radial-gradient(circle,#a4203550,transparent 70%),url('/app/stadium-lines.svg') center/cover}
/* Standalone play: maintain answer/result state colors. */
.sport-theme[data-sport-page=arcade] :is(main,.game){max-width:1200px}
.sport-theme[data-sport-page=arcade] :is(header,.top){padding-bottom:18px;border-bottom:1px solid #414149}
.sport-theme[data-sport-page=arcade] .hero{padding-top:46px;padding-bottom:30px}
.sport-theme[data-sport-page=arcade] .hero h1{font:800 clamp(62px,8vw,102px)/.88 var(--sport-heading);letter-spacing:.015em;text-transform:uppercase}
.sport-theme[data-sport-page=arcade] .hero h1 span{color:var(--accent)}
.sport-theme[data-sport-page=arcade] .sport-art{transform:rotate(8deg);right:5%;top:55px}
.sport-theme[data-sport-page=arcade] .sport-art span{border-radius:6px;border-color:#66666f;background:#222228;box-shadow:4px 4px 0 #09090b}
.sport-theme[data-sport-page=arcade] .panel{border-top:3px solid var(--accent);border-radius:6px}
.sport-theme[data-sport-page=arcade] .panel h2{font:700 32px/1.1 var(--sport-heading);text-transform:uppercase}
.sport-theme[data-sport-page=arcade] .target{transform:rotate(-3deg);border-radius:6px;border:1px solid #66666f;border-bottom:4px solid var(--lime);background:#222228}
.sport-theme[data-sport-page=arcade] .target strong{font-family:var(--sport-heading);letter-spacing:0;color:var(--lime)}
.sport-theme[data-sport-page=arcade] .metrics>div{border-radius:5px;background:#17171c;border-color:#414149}
.sport-theme[data-sport-page=arcade] .metrics strong{font-size:36px}
.sport-theme[data-sport-page=arcade] .sports button[aria-pressed=true]{background:var(--lime);border-color:var(--lime);color:#101013}
.sport-theme[data-sport-page=arcade] .game:not(main){background:#222228;border-color:#66666f;border-radius:6px;border-top:3px solid #b2b2ba}
.sport-theme[data-sport-page=arcade] .game h3{font-family:var(--sport-heading);font-size:28px}
.sport-theme[data-sport-page=arcade] .badge{color:var(--lime)}
.sport-theme[data-sport-page=arcade] .records{border-top:3px solid var(--accent);border-radius:6px}
.sport-theme[data-sport-page=arcade] h1 em{color:var(--accent)}
/* Setup, account and league directory. Preserve tables, dialogs and hidden states. */
.sport-theme[data-sport-page=utility] h1{font-size:clamp(32px,4.6vw,54px);margin-block:24px}
.sport-theme[data-sport-page=utility] main>section{background:#17171c;border-color:#66666f;border-radius:6px;border-left:3px solid var(--accent)}
.sport-theme[data-sport-page=utility] .quick-save{background:#17171c;padding:10px;border:1px solid #66666f;border-radius:5px}
.sport-theme[data-sport-page=account] .account-card{border-top:4px solid var(--accent);border-radius:6px}
.sport-theme[data-sport-page=account] .brand{font:800 30px/1 var(--sport-heading);letter-spacing:.1em;color:#ff858b}
.sport-theme[data-sport-page=account] h1{font-size:46px;letter-spacing:.015em}
.sport-theme[data-sport-page=directory] h1{border-bottom:1px solid #414149;padding-bottom:24px;font-size:clamp(48px,7vw,78px)}
.sport-theme[data-sport-page=directory] .card{border-top:3px solid var(--sport-accent);border-radius:6px}
.sport-theme[data-sport-page=wheel] h1{font-family:var(--sport-heading);text-transform:uppercase;letter-spacing:.03em}
@media(max-width:850px){
 .sport-theme[data-sport-page=marketing] .hero>.wrap{grid-template-columns:minmax(0,1fr) 230px;gap:28px}
 .sport-theme[data-sport-page=marketing] .hero h1{font-size:clamp(52px,8vw,72px)}
 html.sport-theme #shell .ry-arena-hero{padding:22px}
}
@media(max-width:650px){
 .sport-theme[data-sport-page=marketing] .hero{padding:44px 0 50px}
 .sport-theme[data-sport-page=marketing] .hero>.wrap{grid-template-columns:minmax(0,1fr);gap:36px}
 .sport-theme[data-sport-page=marketing] .sport-hero-art{max-width:240px;width:70%;justify-self:center;margin:10px}
 .sport-theme[data-sport-page=marketing] .hero h1{font-size:clamp(58px,15vw,78px)}
 .sport-theme[data-sport-page=marketing] .links{gap:12px}
 .sport-theme[data-sport-page=marketing] nav{align-items:flex-start;flex-direction:column;padding-block:18px}
 .sport-theme[data-sport-page=marketing] .cards{grid-template-columns:minmax(0,1fr)}
 .sport-theme[data-sport-page=marketing] .section{padding-block:44px}
 .sport-theme :where(h1,h2,h3){overflow-wrap:anywhere}
 .sport-theme :where(button,.button,.btn){min-height:44px}
 .sport-theme[data-sport-page=arcade] :is(main,.game){padding:20px 16px}
 .sport-theme[data-sport-page=arcade] .hero h1{font-size:clamp(54px,14vw,74px);max-width:100%}
 .sport-theme[data-sport-page=arcade] .sport-art{display:none}
 .sport-theme[data-sport-page=arcade] .panel{padding:22px 18px}
 .sport-theme[data-sport-page=arcade] .hero{padding-block:30px 20px}
 html.sport-theme #shell .ry-arena-hero{flex-direction:column;align-items:stretch;padding:20px;gap:20px}
 html.sport-theme #shell .ry-clean-welcome h1{font-size:42px}
 html.sport-theme #shell .ry-arena-team{min-width:0;position:static}
 html.sport-theme #shell .ry-feature-text strong{font-size:17px}
 .sport-theme[data-sport-page=utility] main{padding:18px 14px}
 .sport-theme[data-sport-page=account] .account-card{margin-inline:14px}
}
@media(prefers-reduced-motion:reduce){.sport-theme :where(button,.button,.btn){transition:none}}
@media(forced-colors:active){
 html.sport-theme body{background:Canvas;color:CanvasText}
 .sport-theme :where(button,a,input,select,textarea):focus-visible{outline-color:Highlight!important}
 .sport-theme .sport-hero-art{box-shadow:none}
}

/* Current league-home and workspace components. */
html.sport-theme{--ry-bg:#09090b;--ry-surface:#17171c;--ry-raised:#222228;--ry-line:#414149;--ry-text:#f4f4f6;--ry-muted:#f4f4f6;--ry-subtle:#b2b2ba;--ry-accent:#ff6268;--workspace-accent:#ff6268;--workspace-radius:6px}
html.sport-theme body{background-color:#09090b!important;background-image:linear-gradient(125deg,#09090bee,#09090bfa 75%),url('/app/stadium-lines.svg')!important}
html.sport-theme #shell .main{background:transparent!important}
html.sport-theme #shell .topbar{background:#17171c!important}
html.sport-theme #shell .lh-header{padding:28px;border:1px solid #66666f;border-left:4px solid var(--sport-accent);border-radius:6px;background:linear-gradient(105deg,#222228f0,#222228d4),url('/app/stadium-lines.svg') center/cover}
html.sport-theme #shell .lh-header h1{font:800 clamp(42px,5vw,68px)/.95 var(--sport-heading);letter-spacing:.015em;margin:10px 0 16px}
html.sport-theme #shell .lh-header>div>small{color:#ff969b;letter-spacing:.16em;font-weight:800}
html.sport-theme #shell :is(.lh-card,.lh-commissioner,.rw-panel,.gc-page .rxpanel){background:#17171c;border-color:#414149;border-radius:6px}
html.sport-theme #shell .lh-grid>.lh-card{border-top:3px solid var(--sport-accent)}
html.sport-theme #shell .lh-card>small{color:#f4f4f6;letter-spacing:.13em;font-size:11px}
html.sport-theme #shell :is(.lh-card,.lh-commissioner,.rw-panel,.gc-page .rxpanel) :is(h2,h3){font:700 28px/1.1 var(--sport-heading);letter-spacing:.02em}
html.sport-theme #shell .lh-team{font:700 32px/1.05 var(--sport-heading);letter-spacing:.015em}
html.sport-theme #shell :is(.league-home,.rw-page,.gc-page) :is(button,.lh-button){border-radius:5px;min-height:44px;font-weight:700}
html.sport-theme #shell :is(.lh-primary,.rw-red,.gc-primary){background:#ff6268!important;border-color:#ff6268!important;color:#17171c!important}
html.sport-theme #shell :is(.lh-primary,.rw-red,.gc-primary):hover:not(:disabled){background:#ff8589!important;border-color:#ff8589!important}
html.sport-theme #shell .lh-tools{border-bottom:1px solid #66666f;padding-block:8px 22px}
html.sport-theme #shell .lh-tools h2{font:700 18px/1.1 var(--sport-heading);text-transform:uppercase;letter-spacing:.06em;color:#f4f4f6}
html.sport-theme #shell .lh-tools .lh-button{background:#222228;border-color:#66666f}
html.sport-theme #shell .lh-tools .lh-button:hover{border-color:var(--sport-accent)}
html.sport-theme #shell .lh-commissioner{background:#222228;border-color:#685064;border-left-color:var(--sport-accent)}
html.sport-theme #shell .lh-progress{border-radius:5px}
@media(max-width:650px){
 html.sport-theme #shell .lh-header{padding:20px;flex-direction:column;gap:18px;align-items:stretch}
 html.sport-theme #shell .lh-header h1{font-size:44px}
 html.sport-theme #shell .lh-header>.lh-button{align-self:flex-start;max-width:100%}
 html.sport-theme #shell .lh-tools>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 html.sport-theme #shell .lh-tools .lh-button{text-align:center;display:flex;align-items:center;justify-content:center}
}

.sport-theme body{--sport-accent:var(--league-accent,#ff6268)}
.sport-theme :where(code){overflow-wrap:anywhere}
.sport-theme :where(pre){max-width:100%;overflow-x:auto}
.sport-theme[data-sport-page=utility] table{display:block;max-width:100%;overflow-x:auto}
.sport-theme[data-sport-page=utility] button:not(.primary):not(.danger):not(.warn){background:#253b50;border-color:#5c728a;color:#f5f6f2}
.sport-theme[data-sport-page=utility] :is(#save-all,#save-all-top){background:#ff6268;border-color:#ff6268;color:#17171c}

.sport-theme[data-sport-page=arcade] .scoreboard{font:600 13px/1.5 Inter,Arial,sans-serif}
.sport-theme[data-sport-page=arcade] .scoreboard>strong{font:800 25px/1.1 var(--sport-heading)}

html.sport-theme #nav .ry-nav-item .ry-nav-main{font:700 18px/1.2 var(--sport-heading)!important;letter-spacing:.03em;text-transform:uppercase}

html.sport-theme #shell #nav .ry-nav-item .ry-nav-main{font:700 17px/1.2 var(--sport-heading)!important;padding:10px 8px!important;gap:8px;min-width:0;flex:1}
html.sport-theme #shell #nav .ry-nav-main>span:not(.ry-nav-icon){font:inherit!important;white-space:nowrap;letter-spacing:.025em}

