@font-face{font-family:Pixel;src:url('./assets/pixel-heading.ttf') format('truetype');font-display:swap}@font-face{font-family:Terminal;src:url('./assets/pixel-body.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--bg:#101017;--surface:#171720;--panel:#1c1c28;--line:#373642;--muted:#96939f;--text:#eeece4;--gold:#f4c54b;--green:#88d4a5;--pixel:Pixel,monospace;--body:Terminal,monospace}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:20px;line-height:1.2}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #fff;outline-offset:4px}button{touch-action:manipulation}h1,h2,p{margin:0}button{border-radius:0}h1,h2{font-family:var(--pixel);font-weight:400}h1{font-size:14px;line-height:1.6}h2{font-size:12px;line-height:1.6}[hidden]{display:none!important}.shell{max-width:1180px;margin:auto;padding:0 16px 100px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:27px 0 21px}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;min-width:0}.brand-horse{width:46px;height:44px;object-fit:contain;image-rendering:pixelated;filter:brightness(0) saturate(100%) invert(84%) sepia(62%) saturate(934%) hue-rotate(332deg) brightness(102%)}.brand strong{font-family:var(--pixel);font-size:16px;white-space:nowrap;line-height:1.5;letter-spacing:-.5px}.brand small{display:block;font-size:15px;white-space:nowrap;color:#b8b5b6;margin-top:4px}.wallet{display:flex;align-items:center;gap:8px;min-height:44px;border:2px solid #9a7c39;background:#1a1819;padding:8px 9px;color:var(--gold);font-family:var(--pixel);font-size:12px;box-shadow:3px 3px 0 #050508}.coin{display:inline-block;flex-shrink:0;width:12px;height:17px;background:#f6c746;border:3px solid #b58624;border-top-color:#ffe38a;border-left-color:#ffe38a;box-shadow:2px 0 #6e531b,-2px 0 #e0a329;vertical-align:middle}.account-line{border-top:1px solid #2b2a36;padding:12px 0 15px;display:flex;justify-content:space-between;gap:8px;color:#b4b1bd;font-size:15px;letter-spacing:.6px}.account-line>span:first-child{color:var(--green)}.status-dot{display:inline-block;width:5px;height:5px;margin-right:5px;background:var(--green)}.demo-tag{display:inline-block;font-size:12px;color:#a29eac;background:#292733;padding:3px 5px;margin-left:5px;letter-spacing:1px}.panel{border:2px solid var(--line);background:var(--surface);box-shadow:0 3px 0 #08080e}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:16px 12px;border-bottom:2px solid var(--line);background:#1e1e29}.badge{font-size:14px;letter-spacing:1.3px;border:1px solid #395b49;padding:6px 7px;color:var(--green);white-space:nowrap;background:#1a2924}.race-stage{position:relative;background:#68744a;overflow:hidden;aspect-ratio:1.5}.race-stage canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.scene-top{position:absolute;top:9px;left:9px;right:9px;display:flex;justify-content:space-between;gap:4px;pointer-events:none;font-size:14px;color:#f4f0d9;text-shadow:1px 1px #131922;background:#152522;padding:4px 6px}.scene-top>span{background:none;padding:0}.scene-muted{color:#d5d1c6}.weather{font-size:14px}.minimap{position:absolute;right:9px;bottom:9px;width:95px;background:#17151ac9;border:1px solid #81776580;padding:4px 5px}.minimap>span{display:block;font-size:14px;color:#c7c1b3}.minimap svg{display:block;width:100%;height:30px}.race-clock{border-top:2px solid var(--line);display:flex;align-items:center;gap:12px;padding:14px 11px}.race-clock>span:first-child{font-size:14px;letter-spacing:1px}.race-clock strong{font-family:var(--pixel);font-size:23px;color:var(--gold);font-weight:400;letter-spacing:1px;text-shadow:2px 3px #030308}.watching{font-size:14px;display:flex;align-items:center;gap:4px;margin-left:auto;color:var(--muted);border-left:1px solid var(--line);padding-left:9px;white-space:nowrap}.watching svg{width:17px;fill:currentColor;stroke:currentColor;stroke-width:1.5}.race-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 1px 16px;font-size:14px;color:var(--muted)}.text-button{min-height:44px;background:none;border:0;color:var(--gold);font-size:14px;padding:3px 0}.picks-panel>.panel-heading{background:none;border-bottom:0;padding-bottom:12px}.secondary{color:var(--muted);font-size:16px}.horse-list{display:grid;gap:8px;padding:0 9px}.horse-row{display:flex;align-items:center;width:100%;text-align:left;gap:9px;position:relative;border:2px solid #35343f;background:#1b1b25;padding:7px 9px;min-height:73px;transition:background .12s,border-color .12s}.horse-row:hover{background:#26232b}.horse-row[aria-checked=true]{border-color:var(--gold);background:linear-gradient(110deg,#3d3420,#29241e 75%);box-shadow:inset 0 0 0 1px #8d713d}.horse-number{display:grid;place-items:center;background:#161620;border:2px solid var(--horse-color);width:29px;height:34px;flex-shrink:0;font-family:var(--pixel);font-size:15px;color:#fff;text-shadow:1px 2px #0005}.horse-portrait{width:57px;height:52px;object-fit:contain;image-rendering:pixelated;flex-shrink:0}.horse-details{min-width:0;display:flex;flex-direction:column;gap:5px}.horse-name{font-size:21px;white-space:nowrap}.horse-trait{font-size:15px;color:#aaa6a9}.horse-odds{font-family:var(--pixel);font-size:17px;margin-left:auto;color:var(--gold);padding-left:3px;display:flex;flex-direction:column;align-items:flex-end;gap:3px}.horse-odds .odds{color:var(--gold)}.horse-odds .line{font-family:var(--body);font-size:14px;color:var(--muted);letter-spacing:0}.bet-area{padding:15px 10px 0}.bet-amount{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.bet-amount>label{font-size:17px;letter-spacing:1.3px}.stepper{display:flex;border:2px solid #474554;background:#20202c;height:48px}.stepper button{border:0;background:none;width:42px;min-height:44px;font:28px var(--body);color:#c8c4ca}.stepper button:hover{background:#363342}.stake-wrap{display:flex;align-items:center;justify-content:center;gap:7px;border-left:2px solid #474554;border-right:2px solid #474554;padding:0 9px}.stake-wrap input{background:none;border:0;appearance:textfield;-moz-appearance:textfield;color:var(--gold);font-family:var(--pixel);font-size:16px;width:40px;height:44px;text-align:center;padding:0}.stake-wrap input::-webkit-inner-spin-button,.stake-wrap input::-webkit-outer-spin-button{-webkit-appearance:none}.gold-button{min-height:51px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;border:2px solid #ffe292;border-bottom-color:#bf912d;background:var(--gold);box-shadow:3px 4px #8e6828;color:#1a1614;font-family:var(--pixel);font-size:13px;line-height:1.7;padding:12px}.gold-button:hover:not(:disabled){background:#ffda65}.gold-button:active:not(:disabled){transform:translateY(2px);box-shadow:1px 2px #8e6828}.button-separator{padding:0 2px}.bet-help{text-align:center;color:#a9a4af;font-size:15px;padding:14px 3px;min-height:46px}.below-race{display:flex;justify-content:center;gap:15px;padding:27px 0 20px;color:#a9a5b4;font-size:14px;letter-spacing:2px}.pixel-star{color:#c8a94e}.desktop-note{display:none}.site-footer{display:flex;justify-content:space-between;padding:14px 0;border-top:1px solid #2d2b37;font-size:14px;letter-spacing:1px;color:#a5a2b0}.site-footer>span{color:#8f8c99}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#14141ded;border-top:2px solid #43404e;z-index:20;padding:0 0 env(safe-area-inset-bottom);backdrop-filter:blur(10px)}.bottom-nav>div{display:grid;grid-template-columns:repeat(4,1fr);max-width:700px;margin:auto}.nav-item{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;min-height:72px;border:0;border-right:1px solid #33313e;background:none;color:#d4cfd3;font-size:17px;letter-spacing:1px}.nav-item:last-child{border-right:0}.nav-item svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:2;stroke-linejoin:miter}.nav-item.active{background:var(--gold);color:#201c19;box-shadow:inset 0 3px #ffe697}.nav-item:hover:not(.active){background:#292632}.view{display:none}.view.active{display:block}.page-heading{padding:18px 0 26px}.page-heading h1{font-size:20px;margin:14px 0}.eyebrow{font-size:14px;letter-spacing:1.5px;color:var(--gold)}.page-heading p{color:#b7b2bd;font-size:20px}.stable-grid{display:grid;gap:14px}.stable-card{padding:16px;display:grid;grid-template-columns:100px 1fr;gap:18px}.stable-card img{width:100%;height:110px;object-fit:contain;image-rendering:pixelated;background:#242325;border:1px solid #49404b}.stable-card h2{font:25px var(--body);margin-bottom:5px}.stable-card .badge{font-size:14px;display:inline-block;margin-top:12px}.promise-state{display:inline-block;margin-top:10px;font-size:14px;color:var(--green);letter-spacing:1px}.enter-race{display:block;width:100%;margin-top:12px;min-height:44px;border:2px solid #474554;background:#20202c;color:#c8c4ca;font-family:var(--body);font-size:15px;cursor:pointer}.enter-race:hover:not(:disabled){background:#363342}.enter-race:disabled{cursor:default;opacity:.6}.stat-line{display:grid;grid-template-columns:60px 1fr 15px;gap:7px;align-items:center;font-size:14px;margin-top:8px}.stat-bar{height:7px;background:#35333c}.stat-fill{height:100%;background:var(--gold)}.stat-fill.green{background:var(--green)}.crate-panel{text-align:center;padding:28px 20px;max-width:500px;margin:0 auto}.crate-symbol{display:block;color:var(--gold);font-size:100px;line-height:1.2}.crate-panel h2{margin-bottom:15px}.crate-panel p{margin:16px 0;color:#aaa5b1}.crate-panel .gold-button{margin:24px 0 18px}.purse{display:flex;align-items:center;flex-direction:column;padding:28px;gap:18px}.purse strong{display:flex;align-items:center;gap:18px;font:35px var(--pixel);color:var(--gold)}.purse .coin{width:22px;height:30px}.ledger{margin-top:20px}.transaction{display:flex;justify-content:space-between;gap:15px;padding:17px 15px;border-bottom:1px solid var(--line)}.transaction span{font-size:18px}.transaction strong{font-weight:400;color:var(--gold)}.transaction:last-child{border:0}.race-call{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);white-space:nowrap;background:#16131ded;border:2px solid var(--gold);padding:14px 16px;color:var(--gold);font:14px var(--pixel);text-shadow:2px 2px #000;z-index:2}.results{margin-bottom:16px;padding:17px}.results h2{color:var(--gold);margin-bottom:13px}.result-row{display:flex;gap:12px;align-items:center;padding:7px 0;border-top:1px solid #34303f}.result-row span:last-child{margin-left:auto;color:var(--muted)}.toast{position:fixed;bottom:calc(88px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;z-index:40;background:#282433;border:1px solid #806b3b;padding:13px 18px;color:#f1db9a;box-shadow:3px 4px #0006;font-size:18px;text-align:center}
@media(min-width:700px){.shell{padding:0 28px 120px}.masthead{padding:32px 0}.brand-horse{width:64px;height:54px}.brand strong{font-size:25px;letter-spacing:0}.brand small{font-size:20px;margin-top:8px}.wallet{font-size:17px;padding:13px 18px;gap:12px}.account-line{font-size:16px;padding:15px 0 20px}.race-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,1fr);gap:22px;align-items:start}.panel-heading{padding:19px 15px}h1{font-size:15px}.race-clock{flex-wrap:wrap;padding:17px 13px;gap:10px}.race-clock strong{font-size:25px}.race-tools{font-size:15px}.horse-row{min-height:78px}.horse-name{font-size:22px}.desktop-note{display:block;padding:35px 5px}.mini-kicker{font-family:var(--pixel);font-size:11px;line-height:1.8;color:#746c53}.desktop-note p{color:#716b7c;font-size:21px;margin-top:13px}.bottom-nav>div{max-width:620px}.nav-item{min-height:76px}.stable-grid{grid-template-columns:repeat(2,1fr)}.page-heading{padding:30px 0}.purse,.ledger{max-width:650px;margin-left:auto;margin-right:auto}.site-footer{font-size:15px}.below-race{padding:38px 0}}
@media(min-width:1050px){.race-layout{grid-template-columns:minmax(0,1.6fr) minmax(330px,1fr)}.horse-row{min-height:80px}.race-clock strong{font-size:30px}.race-clock>span:first-child{font-size:17px}.watching{font-size:16px}.scene-top{font-size:16px}.weather{font-size:14px}.minimap{width:130px}.minimap svg{height:40px}.stable-grid{grid-template-columns:repeat(3,1fr)}.stable-card{grid-template-columns:90px 1fr;gap:12px}}
@media(max-width:370px){.shell{padding-left:10px;padding-right:10px}.brand strong{font-size:13px}.brand small{font-size:13px}.brand-horse{width:37px}.wallet{font-size:11px;padding:7px}.panel-heading h1{font-size:12px}.badge{font-size:12px}.race-clock{gap:8px}.race-clock strong{font-size:20px}.watching{font-size:12px;padding-left:6px}.horse-portrait{width:47px}.horse-name{font-size:19px}.horse-odds{font-size:15px}.horse-row{gap:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* ---- live app: auth + small additions (kept outside the reference block) ---- */
.auth-view{max-width:520px;margin:0 auto;padding:24px 16px 120px}
.auth-panel{max-width:460px;margin:0 auto}
.auth-panel .panel-heading{justify-content:center}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:2px solid var(--line)}
.auth-tab{min-height:48px;background:none;border:0;color:var(--muted);font-family:var(--pixel);font-size:13px;letter-spacing:1px;cursor:pointer}
.auth-tab.active{background:#1e1e29;color:var(--gold);box-shadow:inset 0 -3px var(--gold)}
.auth-form{display:flex;flex-direction:column;gap:12px;padding:20px}
.auth-form label{font-size:15px;letter-spacing:1.2px;color:var(--muted)}
.auth-form input{background:#20202c;border:2px solid #474554;color:var(--text);font-family:var(--body);font-size:18px;padding:13px;border-radius:0;width:100%}
.auth-form input:focus{outline:3px solid #fff;outline-offset:2px;border-color:var(--gold)}
.auth-form .gold-button{margin-top:8px}
.auth-note{min-height:20px;color:#e07a6a;font-size:15px;text-align:center;margin:0}
.auth-help{color:#aaa5b1;font-size:15px;padding:2px 20px 22px;line-height:1.5;text-align:center}
.empty{padding:28px 20px;text-align:center;color:var(--muted);font-size:17px}

.purchase-form,.inventory-panel{margin-bottom:20px;padding:16px}.purchase-form{display:grid;gap:12px}.purchase-form input,.equip-form select{width:100%;min-height:44px;background:#20202c;border:2px solid #474554;color:var(--text);font:20px var(--body);padding:10px}.purchase-form .secondary{line-height:1.4}.inventory-panel{margin-top:20px}.equip-form{padding:16px 0;border-bottom:2px solid var(--line)}.equip-form p{margin:8px 0;line-height:1.4}.equip-form label{display:block;margin:12px 0 6px}.equipped-items{margin-top:10px;line-height:1.4}.commentary-panel{margin-bottom:16px}#commentary-feed{list-style:none;padding:12px;margin:0;max-height:300px;overflow:auto}#commentary-feed li{padding:10px 0;border-bottom:1px solid var(--line);line-height:1.4}#commentary-feed time{color:var(--muted)}.strange-event{border-left:3px solid var(--gold);padding-left:10px!important}.strange-event strong{color:var(--gold)}.death-event{color:#f2b5b5}.horse-name{white-space:normal;overflow-wrap:anywhere}.horse-odds{font-size:13px}.horse-row{min-width:0}

#race-canvas,.horse-portrait,.stable-card img{image-rendering:pixelated}.stat-line{grid-template-columns:60px 1fr minmax(24px,max-content)}

.test-race-actions{display:flex;gap:12px;flex-wrap:wrap}.race-tools{flex-wrap:wrap;gap:10px}.text-button:disabled{opacity:.5;cursor:default}
.race-stage{aspect-ratio:auto;min-height:560px}.horse-portrait{width:72px;height:64px}
@media(max-width:420px){.horse-portrait{width:64px;height:58px}}

/* Race information stays with the action; watching and betting are separate. */
.watch-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 10px;background:#191923;border-bottom:1px solid var(--line);font-size:15px}
.watch-controls label{color:var(--muted)}.watch-controls select{min-width:0;flex:1;max-width:310px;min-height:44px;padding:7px;background:#25232f;border:1px solid #63523b;color:var(--text);font:17px var(--body)}
#distance-left{color:var(--gold);margin-left:auto;white-space:nowrap}.race-now{position:absolute;top:43px;left:9px;right:9px;background:#15171de0;padding:5px 7px;pointer-events:none;z-index:1}
#live-position{display:block;color:var(--gold);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#latest-commentary{font-size:16px;line-height:1.15;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin-top:3px}
.standings-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 10px 8px}.standings-heading h2{font-size:10px}.standings-heading .secondary{font-size:12px;text-align:right}
#standings-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 8px;padding:0 8px 8px;margin:0}
#standings-list li{min-width:0;border-left:3px solid var(--horse-color)}#standings-list button{display:flex;align-items:center;gap:5px;min-height:44px;width:100%;padding:5px;border:1px solid #36333f;background:#20202b;text-align:left}
#standings-list .is-followed button{border-color:var(--gold);background:#342e21}.standing-rank{font-size:16px;width:13px;color:var(--muted);flex-shrink:0}.standing-bib{font-size:16px;font-weight:bold;color:var(--horse-color);flex-shrink:0}.standing-name{flex:1;min-width:0;font-size:17px;line-height:1.05;overflow-wrap:anywhere}.standing-name small{display:block;color:var(--gold);font-size:10px;line-height:1.1}.standing-gap{font-size:13px;white-space:nowrap;color:var(--green)}
.standings-toggle{display:none;width:100%;min-height:44px;border:0;border-top:1px solid var(--line);color:var(--gold);background:#1b1b25;font:16px var(--body)}
.winner-name{font-size:29px;color:var(--gold);margin-bottom:6px;overflow-wrap:anywhere}.finish-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:18px}.finish-table caption{text-align:left;color:var(--muted);font-size:15px;padding-bottom:6px}.finish-table th,.finish-table td{text-align:left;border-top:1px solid var(--line);padding:8px 3px;vertical-align:top}.finish-table th{font-weight:normal;overflow-wrap:anywhere}.finish-table thead th{font-size:14px;color:var(--muted)}.finish-table td:last-child{text-align:right;white-space:nowrap;color:var(--green)}.finish-table small{display:block;font-size:12px;color:var(--gold)}
.recap-details,.build-details{margin-top:14px;font-size:17px}.recap-details summary,.build-details summary{min-height:44px;cursor:pointer;display:list-item;padding:12px 0;color:var(--gold)}.recap-details ol{padding-left:20px;margin:0}.recap-details li{padding:8px 0;line-height:1.3}.recap-details time{color:var(--muted)}.build-details p{margin:9px 0;line-height:1.35}.horse-identity{margin-top:8px}.stable-card .stat-line{grid-template-columns:65px 1fr minmax(24px,max-content)}.stable-card{min-width:0}.stable-card>div{min-width:0}.stable-card h2{overflow-wrap:anywhere}
.race-call{top:auto;bottom:70px;max-width:calc(100% - 24px);white-space:normal;text-align:center;line-height:1.6;font-size:12px;transform:translateX(-50%);pointer-events:none}
@media(max-width:699px){.race-stage{min-height:460px}.scene-top{font-size:12px}.scene-top .weather{font-size:12px}#live-position{font-size:13px}#latest-commentary{font-size:15px;-webkit-line-clamp:2}.race-now{top:37px}.watch-controls{gap:5px}.watch-controls label{font-size:13px}.watch-controls select{font-size:16px;max-width:calc(100% - 65px)}#distance-left{width:100%;text-align:right;font-size:15px}.standings-heading{padding-top:8px}#standings-list{grid-template-columns:1fr}#standings-list li:nth-child(n+4){display:none}.live-standings.expanded #standings-list li{display:block}.standings-toggle{display:block}.stable-card{grid-template-columns:75px minmax(0,1fr);gap:10px;padding:12px}.race-tools{padding-bottom:8px}.results{padding:12px}.finish-table{font-size:17px}}

.race-movers{margin-top:10px;line-height:1.35}

/* Keep information outside the horse silhouettes, including the first lane. */
.race-now{position:sticky;top:0;left:auto;right:auto;background:#191923;padding:8px 10px;border-bottom:1px solid var(--line);z-index:3}.live-standings .minimap{position:static;flex-shrink:0;width:80px;margin:0;border:0;padding:0;background:none}.live-standings .minimap>span{font-size:11px}.live-standings .minimap svg{height:24px}.standings-heading .secondary{max-width:140px}
@media(min-width:700px){.race-now{position:static}.live-standings .minimap{width:95px}}
@media(max-width:369px){.standings-heading .secondary{font-size:10px;max-width:80px}}

/* Player progression tools share the game's pixel palette and phone layout. */
.player-panel{padding:20px;margin:18px 0;overflow-wrap:anywhere}
.player-panel h2{font-family:var(--pixel);font-size:13px;line-height:1.7;margin:0 0 14px;color:var(--gold)}
.player-panel h3{font-size:19px;margin:24px 0 12px}
.player-panel p{line-height:1.45;margin:10px 0}
.player-panel form{display:grid;gap:10px;margin:16px 0}
.player-panel input:not([type=checkbox]),.player-panel select{width:100%;min-width:0;background:#20202c;border:2px solid #474554;color:var(--text);padding:12px;font:inherit}
.player-panel button{white-space:normal;min-height:44px}
.goal-row,.equipment-row,.loadout-row{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}
.goal-row>div,.equipment-row>div{min-width:0;flex:1}
.goal-row button,.equipment-row button{flex:0 0 100px}
.goal-row p,.equipment-row p{font-size:17px;color:var(--muted)}
.loadout-row{flex-wrap:wrap}.loadout-row strong{flex:1;min-width:100px}
.player-panel table{border-collapse:collapse;width:100%;margin:16px 0;text-align:left}
.player-panel th,.player-panel td{padding:10px 6px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.player-panel caption{text-align:left;color:var(--muted);padding:8px 0}
.reuse-scenario{display:flex;gap:10px;align-items:center}.reuse-scenario input{width:20px;height:20px}
#weekly-board ol{list-style:none;padding:0}#weekly-board li{padding:12px 0;border-bottom:1px solid var(--line)}
#weekly-board li>span{display:block;color:var(--muted);margin-top:8px}
#paddock-panel details article{padding:12px 0;border-bottom:1px solid var(--line)}
.risk-note{color:#efbb9c}.earned-titles{color:var(--gold)}
#career-dialog{background:#171720;color:var(--text);border:2px solid var(--gold);width:min(780px,calc(100vw - 24px));max-height:85vh;padding:20px;overflow:auto;overflow-wrap:anywhere}
#career-dialog::backdrop{background:#080810c9}#career-dialog h2{line-height:1.6;font-size:22px}
#career-dialog p{line-height:1.5}#career-close{display:block;margin-left:auto;min-height:44px}
.career-table{overflow-x:auto}.career-table table{width:100%;border-collapse:collapse;font-size:16px;text-align:left}
.career-table td,.career-table th{padding:10px 6px;border-bottom:1px solid var(--line)}
.career-table small{display:block;color:var(--muted);font-size:13px;min-width:100px}
@media(max-width:420px){.player-panel{padding:14px}.goal-row,.equipment-row{gap:8px}.goal-row button,.equipment-row button{flex-basis:88px;font-size:13px}.player-panel td,.player-panel th{padding:8px 4px}}
#workshop-goals{display:block;margin-bottom:14px}
#horse-workshop>label{display:block;margin:12px 0}

/* Stable activities use pixel scenery and never recolor race silks. */
#stable-activities details {border-top:2px solid var(--border,#57462f);padding:18px 0;}
#stable-activities summary,#scouting-panel summary {cursor:pointer;color:#f4cb67;line-height:1.6;}
#stable-activities label {display:block;margin:14px 0 7px;}
#stable-activities select,#stable-activities input:not([type=checkbox]) {width:100%;max-width:100%;min-height:44px;}
#stable-activities button {margin:12px 8px 0 0;max-width:100%;white-space:normal;line-height:1.5;}
#stable-activities .reuse-scenario {display:flex;gap:10px;align-items:center;}
.stable-banner {position:relative;overflow:hidden;background:linear-gradient(#394d63 0 65%,#39583d 65%);border:4px solid #99865a;padding:30px 18px 20px;image-rendering:pixelated;}
[data-theme=sunset] .stable-banner {background:linear-gradient(#8b4a55 0 65%,#604539 65%);}
[data-theme=midnight] .stable-banner {background:linear-gradient(#1b234b 0 65%,#28333e 65%);}
.stable-banner h2,.stable-banner p,.stable-trophies {position:relative;text-shadow:2px 2px #191811;}
.stable-sun {position:absolute;right:20px;top:20px;width:40px;height:40px;background:#ebc574;box-shadow:8px 0 #ebc574,-8px 0 #ebc574,0 8px #ebc574,0 -8px #ebc574;opacity:.65;}
[data-theme=midnight] .stable-sun {background:#d1d3dd;box-shadow:8px 0 #d1d3dd,-8px 0 #d1d3dd,0 8px #d1d3dd,0 -8px #d1d3dd;}
.stable-trophies {display:flex;flex-wrap:wrap;gap:18px;color:#ffdc83;}
.fatigue-meter progress {width:100%;height:18px;accent-color:#e4ae5d;}
.nursery-foal,.challenge-row,#scouting-panel article {border-top:1px solid #665839;padding:16px 0;}
#training-animation canvas {display:block;width:100%;max-width:640px;image-rendering:pixelated;margin-top:18px;}
@media(max-width:480px){#stable-activities .gold-button {font-size:9px;}#stable-activities details p {overflow-wrap:anywhere;} .stable-banner {padding:24px 12px 16px;}}

/* Stable opens as a roster; one tool expands at a time. */
#stable-view .page-heading {padding:20px 0 16px;}
#stable-view .page-heading .eyebrow,#stable-view .page-heading>p {display:none;}
#stable-view>.stable-tool {margin-top:12px;}
.stable-tool>summary,.horse-full-details>summary,.entry-terms>summary {cursor:pointer;min-height:48px;display:list-item;padding:14px 16px;color:var(--gold);font-size:18px;}
.stable-tool>summary:focus-visible,#stable-activities summary:focus-visible {outline:3px solid white;outline-offset:-4px;}
.stable-tool>section,.stable-tool>form {border:0;box-shadow:none;}
.stable-card {align-items:start;}
.stable-card>img {width:80px;height:80px;object-fit:contain;}
.stable-card h2 {overflow-wrap:anywhere;}
.stable-quick-stats {color:var(--green);font-size:17px;margin:10px 0;line-height:1.4;}
.horse-full-details>summary,.entry-terms>summary {padding:10px 0;font-size:16px;}
.horse-full-details>p,.entry-terms>p {line-height:1.5;margin:10px 0;}
#stable-activities {margin-top:12px;}
#stable-activities .stable-banner {padding:16px 14px;border-width:2px;}
#stable-activities .stable-banner>p {margin:4px 0;font-size:17px;}
#stable-activities .stable-trophies {font-size:16px;}
#stable-activities details {padding:0;}
#stable-activities details>summary {min-height:52px;padding:14px 0;}
#stable-activities details[open] {padding-bottom:16px;}
#stable-activities #training-rules {margin-top:12px;border-top:1px solid var(--line);}
#stable-equipment .inventory-panel {margin-top:0;}
@media(max-width:600px){
  .stable-grid {grid-template-columns:1fr;}
  .stable-card {grid-template-columns:64px minmax(0,1fr);gap:10px;padding:14px 12px;}
  .stable-card>img {width:64px;height:64px;}
  .stable-card h2 {font-size:22px;line-height:1.3;}
  .stable-card .enter-race {font-size:17px;line-height:1.7;padding:12px 8px;min-height:48px;}
  .stable-quick-stats {font-size:16px;}
  .stable-card .secondary {font-size:16px;}
  #stable-activities .stable-sun {width:24px;height:24px;opacity:.3;}
}
#stable-title {overflow-wrap:anywhere;}

/* Keep the race visible before its supporting controls in every viewport. */
.race-panel>.panel-heading{border-top:2px solid var(--line)}
.race-now{position:static}

.memorial-panel{display:flex;align-items:center;gap:12px;margin-top:18px;padding:12px 16px;border-color:#504856}
.memorial-panel[hidden]{display:none}.memorial-panel img{flex:0 0 88px;image-rendering:pixelated;object-fit:contain;opacity:.8}
.memorial-panel>div{min-width:0}.memorial-panel h2{font-size:11px;letter-spacing:1px;color:var(--muted);margin:0 0 8px}
.memorial-name{display:block;font-size:22px;overflow-wrap:anywhere}.memorial-panel p{color:var(--muted);font-size:15px;margin:5px 0 0}
@media(max-width:370px){.memorial-panel{padding:10px;gap:8px}.memorial-panel img{width:64px;height:64px;flex-basis:64px}.memorial-name{font-size:20px}}

/* One expanding barn and one selected build replace the wall of horse cards. */
.stable-scene-panel{margin-bottom:16px;overflow:hidden}.stable-scene-panel .panel-heading{padding:12px 14px}.stable-scene-panel h2{font-size:12px;line-height:1.6}.stable-scene-panel h2 span{display:block;font-family:var(--body);font-size:14px}
.stable-pan-controls{display:flex;gap:8px}.stable-pan-controls button{min-width:44px;min-height:44px;font-size:25px;border:1px solid var(--line)}
.stable-camera{overflow-x:auto;overflow-y:hidden;cursor:grab;overscroll-behavior-x:contain;scrollbar-color:#a8894b #24202a;scrollbar-width:thin;touch-action:pan-x pan-y;user-select:none}.stable-camera:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.stable-camera.dragging{cursor:grabbing}
.stable-bays{display:flex;width:max-content;min-width:0;margin-inline:auto;background:#37251b}.stable-bay{position:relative;flex:0 0 320px;width:320px;height:320px;background:#38281b url('/static/assets/stable-bay-pixel-v51.png') center/320px 320px no-repeat;image-rendering:pixelated;border:0;padding:0;cursor:pointer;color:#fff0c8;scroll-margin-inline:12px}
.stable-bay img{position:absolute;width:260px;height:260px;left:30px;bottom:18px;object-fit:contain;image-rendering:pixelated;pointer-events:none;filter:drop-shadow(0 5px 0 #251b1766)}
.stable-nameplate{position:absolute;top:24px;left:34px;right:34px;z-index:1;padding:8px 6px;border:2px solid #8b6b39;background:#201b16ed;font-size:18px;line-height:1.15;overflow-wrap:anywhere;box-shadow:0 3px #130f0c88}
.stable-bay.selected .stable-nameplate{color:#ffe38b;border-color:#e2b950;box-shadow:0 0 0 2px #302116,0 4px #130f0c88}.stable-bay:focus-visible{outline:3px solid #ffe38b;outline-offset:-6px}.stable-bay.empty-bay{cursor:default}
#stable-camera-note{margin:0;padding:10px 14px;font-size:15px}.stable-selection{display:grid;gap:14px;margin-bottom:16px;scroll-margin-top:12px}.stable-selection[hidden]{display:none}.stable-selection .stable-card{margin:0;grid-template-columns:72px minmax(0,1fr);padding:14px;gap:10px}.stable-selection .stable-card>img{width:72px;image-rendering:pixelated}.selected-inventory{min-width:0}.selected-inventory .panel-heading{padding:12px;gap:8px;flex-wrap:wrap}.selected-inventory .panel-heading h2{font-size:12px}.selected-inventory>h3,.selected-inventory>#selected-equipment,.selected-inventory>#item-inventory{margin:0;padding:12px}.selected-inventory h3{font-size:15px;color:var(--muted);margin:0 0 10px}.selected-inventory .equipment-row{padding:10px 0;border-bottom:1px solid var(--line);gap:12px}.selected-inventory .equip-form{padding:12px 0}.selected-inventory .equip-form strong{font-size:19px}.selected-inventory .equip-form p{margin:5px 0 10px}.selected-inventory button{min-height:44px}.stable-selection .horse-full-details{margin-top:12px}.stable-selection .stable-card h2{font-size:22px}.stable-selection .entry-terms{margin-top:8px}
#stable-archive label,#stable-archive select,#stable-archive>p{display:block;margin:12px;width:calc(100% - 24px)}#stable-archive select{font-size:17px;padding:12px;min-height:44px;background:#24202c;color:var(--text);border:1px solid var(--line)}
@media(min-width:900px){.stable-selection{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.stable-selection .stable-card{grid-template-columns:96px minmax(0,1fr)}.stable-selection .stable-card>img{width:96px}}

.stable-selection .stable-card:not([data-status=ALIVE]) .entry-terms,.stable-selection .stable-card:not([data-status=ALIVE]) [data-enter]{display:none}

.selected-inventory #item-inventory{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px}.selected-inventory #item-inventory .equip-form{padding:12px;border:1px solid var(--line);background:#23212c;display:flex;flex-direction:column;align-items:stretch}.selected-inventory .equip-form button{margin-top:auto}

.stable-selection-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;grid-column:1/-1;min-height:44px}.stable-pane-controls{display:flex;gap:8px}.stable-pane{padding:10px 16px;min-height:44px;border:1px solid var(--line)}.stable-pane[aria-pressed=true]{background:#302b21;border-color:var(--gold);color:var(--gold)}#selected-career{min-height:44px;font-size:15px}.selected-inventory .panel-heading>span{overflow-wrap:anywhere}
@media(max-width:899px){.stable-selection[data-pane=stats]>#selected-inventory,.stable-selection[data-pane=items]>#stable-list{display:none}}
@media(min-width:900px){.stable-pane-controls{display:none}.stable-selection-controls{justify-content:flex-end}}
.race-sidebar{display:grid;gap:18px;min-width:0}.bet-winners-panel{margin-top:18px}.race-sidebar .bet-winners-panel{margin-top:0}#bet-winners-feed{padding:12px}#bet-winners-feed>p{margin-bottom:10px}.bet-winners-list{list-style:none;margin:0;padding:0}.bet-winners-list li{display:grid;grid-template-columns:20px minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.bet-winners-list li:last-child{border-bottom:0}.bet-winner-rank{color:var(--muted)}.bet-winner-name{overflow-wrap:anywhere}.bet-winner-payout{text-align:right;color:var(--gold)}.bet-winner-payout small{display:block;color:var(--muted);font-size:14px;margin-top:4px}
.crate-art{display:block;margin:auto;object-fit:contain;image-rendering:pixelated}.item-icon{display:inline-block;width:64px;height:64px;flex:0 0 64px;background-image:url('/static/assets/item-icons-pixel-v58.png');background-size:600% 600%;image-rendering:pixelated}.equip-form .item-icon{display:block;margin-bottom:8px}.horse-tier{display:block;color:var(--gold);font-size:16px;margin:8px 0}#purchase-reveal{width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:0;background:var(--surface);color:var(--text);border:3px solid var(--gold)}#purchase-reveal::backdrop{background:#080810dc}.purchase-stage{padding:22px;text-align:center;--reveal-color:#b9c4bc}.purchase-stage h2{font-size:12px;line-height:1.8}.purchase-box{display:block;width:180px;height:180px;object-fit:contain;margin:28px auto;image-rendering:pixelated;animation:crate-rattle .65s ease-in-out infinite}.purchase-stage[data-phase=glowing] .purchase-box{filter:drop-shadow(0 0 14px var(--reveal-color));animation:crate-burst 1.1s ease-in-out both}.purchase-stage[data-phase=revealed] .purchase-box,.purchase-stage[data-phase=revealed] .purchase-opening-note{display:none}.purchase-result{padding:16px 0 22px}.purchase-result>.item-icon{width:160px;height:160px;margin:18px auto;filter:drop-shadow(0 0 9px var(--reveal-color))}.reveal-horse{display:block;width:200px;height:200px;object-fit:contain;image-rendering:pixelated;margin:auto}.reveal-tier{color:var(--reveal-color);font-family:var(--pixel);font-size:12px}.purchase-result h3{font-size:28px;margin:10px 0}.purchase-result h4{font-size:15px;margin:16px 0 8px;color:var(--muted)}.purchase-result p{margin:12px 0;line-height:1.35}.reveal-stats{list-style:none;padding:0;margin:12px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;font-size:18px}.reveal-stats li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:6px}.reveal-stats strong{color:var(--reveal-color);font-weight:400}@keyframes crate-rattle{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes crate-burst{0%{transform:scale(1)}40%{transform:scale(1.12) rotate(-3deg)}70%{transform:scale(1.18) rotate(3deg)}100%{transform:scale(.9);opacity:.2}}@media(prefers-reduced-motion:reduce){.purchase-box,.purchase-stage[data-phase=glowing] .purchase-box{animation:none}}
.selected-inventory .equipment-row .item-icon{width:48px;height:48px;flex-basis:48px}.selected-inventory .equipment-row strong,.selected-inventory .equipment-row p{overflow-wrap:anywhere}

/* Dedicated training grounds keep games and decisions out of the stable inventory. */
.training-profile{display:flex;align-items:center;gap:20px;margin-bottom:24px}.training-profile img{width:120px;height:120px;object-fit:contain;image-rendering:pixelated}.training-profile h2{overflow-wrap:anywhere}.activity-points{color:var(--gold);font-size:26px;letter-spacing:4px}.activity-points span{display:block;font-size:17px;letter-spacing:0}.training-disciplines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.training-disciplines .panel{display:flex;flex-direction:column;gap:15px;padding:24px}.training-disciplines h3{font-size:13px;line-height:1.7}.training-disciplines .gold-button{margin-top:auto}.training-disciplines details{font-size:17px}.training-status{padding:14px;border-left:3px solid var(--gold);background:#181c26;margin-bottom:24px}.training-resume{border:1px solid var(--gold);padding:20px;margin-bottom:20px}.open-training{margin-bottom:12px}.training-game-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.training-game-heading h2{overflow-wrap:anywhere;font-size:16px;line-height:1.6}.training-game-heading #training-score{color:var(--gold);font-size:20px}.training-stage{border:3px solid #485067;border-radius:8px;overflow:hidden;background:#131a29}.training-stage>canvas{display:block;width:100%;height:auto;image-rendering:pixelated;touch-action:manipulation}.training-stage>canvas:focus-visible{outline:3px solid var(--gold);outline-offset:-4px}.training-controls{display:flex;gap:16px;justify-content:center;align-items:center;flex-wrap:wrap;margin:18px 0}.training-controls button{min-height:52px;touch-action:none}.simon-pad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px}.simon-symbol{font-family:monospace;background:#1c293c;border:3px solid #68758a;color:#d5ddea;min-height:74px;font-size:40px;border-radius:8px;transition:background .08s}.simon-symbol span{display:block;font-size:14px}.simon-symbol.lit{background:#f4c54b;color:#191f2d;border-color:#fff0bc;box-shadow:inset 0 0 0 5px #d9982e}.simon-symbol:disabled{opacity:.7}.simon-symbol.lit:disabled{opacity:1}#training-game-status{min-height:52px;font-size:20px;text-align:center;padding:14px 0}.training-result{max-width:720px;margin:auto;text-align:center;background:#1a2332;padding:28px;border:2px solid #627080;border-radius:12px}.training-result img{display:block;width:160px;height:160px;object-fit:contain;image-rendering:pixelated;margin:14px auto}.training-result h2{overflow-wrap:anywhere;line-height:1.7;font-size:17px}.training-result p{margin:14px 0}.training-result-tier{font-size:40px;color:var(--gold)}.training-permanent{color:#aee18a}.training-result button{margin:8px}.training-preparation{color:var(--gold);margin-top:18px}
@media(max-width:850px){.training-disciplines{grid-template-columns:1fr}.training-disciplines .panel{padding:20px}.training-profile{gap:12px}.training-profile img{width:96px;height:96px}.training-profile h2{font-size:15px;line-height:1.7}.activity-points{font-size:23px}.simon-pad{gap:6px;padding:10px}.simon-symbol{min-height:65px;font-size:32px}.training-game-heading h2{font-size:14px}.training-result{padding:18px}.training-game-heading #training-score{font-size:18px}}
@media(prefers-reduced-motion:reduce){.simon-symbol{transition:none}}

#training-back {display:block;margin-bottom:18px;}
@media(max-width:600px){#training-view .page-heading{margin-bottom:18px;}#training-title{font-size:26px;}#training-back{margin-bottom:12px;}}

@media(max-width:600px){.stable-selection .stable-card{display:block;}.stable-selection .stable-card>img{float:right;width:64px;height:64px;margin-left:10px;}.stable-selection .horse-full-details{clear:both;}.stable-card .open-training{font-size:15px;min-height:44px;padding:8px 12px;}}

.stable-selection .horse-full-details>summary,.stable-selection .entry-terms>summary{min-height:44px;padding:8px 0;}.stable-selection .horse-full-details{margin-top:8px;}
.training-discipline-art{display:block;width:calc(100% + 48px);max-width:none;height:140px;margin:-24px -24px 6px;object-fit:cover;image-rendering:pixelated;}
.training-play-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;color:var(--muted);min-height:44px;margin-bottom:10px;}
.training-stage{border-radius:0;}.training-stage,.training-controls,.simon-pad{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;}
.training-controls button,.simon-symbol{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;}
.training-controls button:focus:not(:focus-visible),.simon-symbol:focus:not(:focus-visible){outline:none;}
#training-view[data-game=physical] .training-stage>canvas{touch-action:none;cursor:pointer;}
.dream-stick{position:relative;flex:0 0 128px;width:128px;height:128px;border-radius:50%;border:3px solid #7c759d;background:radial-gradient(circle,#352e58 0 40%,#191728 72%);touch-action:none;cursor:grab;box-shadow:inset 0 0 0 9px #242039,0 4px #090912;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}
.dream-stick.held{border-color:#bd9de4;cursor:grabbing;}.dream-stick-arrows{position:absolute;inset:0;display:grid;place-items:center;color:#726b96;font-size:104px;pointer-events:none;}.dream-stick-knob{position:absolute;left:calc(50% - 27px);top:calc(50% - 27px);width:54px;height:54px;background:#b9a5dd;border:4px solid #dbd1ed;border-radius:50%;box-shadow:0 5px #61537c;pointer-events:none;}.dream-action{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:160px;}.dream-action button{width:92px;min-height:72px;font-size:15px;}.dream-action span{font-size:14px;color:var(--muted);text-align:center;}
.training-controls{gap:24px;}.training-controls #finish-training{flex-basis:100%;min-height:44px;margin-top:0;}.signal-icon{display:block;width:48px;height:48px;margin:0 auto;image-rendering:pixelated;}.simon-symbol{min-height:82px;padding:8px;}.simon-symbol span{margin-top:4px;}.simon-symbol.lit{background:#5b486d;border-color:#ffecb2;box-shadow:inset 0 0 0 3px #b68e55;}
@media(max-width:850px){.training-discipline-art{width:calc(100% + 40px);margin:-20px -20px 6px;height:150px;}}
@media(max-width:900px){body.training-playing .masthead,body.training-playing .account-line,body.training-playing .bottom-nav,body.training-playing .site-footer,body.training-playing #training-view>.page-heading{display:none;}body.training-playing .shell{padding:8px 12px max(16px,env(safe-area-inset-bottom));}body.training-playing .training-game-heading{margin-bottom:8px;}body.training-playing .training-game-heading h2{font-size:12px;}body.training-playing #training-game-status{font-size:16px;min-height:0;padding:10px 0;}body.training-playing .training-controls{margin:8px 0 10px;gap:14px 24px;}body.training-playing .training-controls>.gold-button{width:min(100%,360px);min-height:64px;}body.training-playing #training-content>.secondary{font-size:14px;line-height:1.4;}body.training-playing .training-play-toolbar{margin-bottom:4px;}body.training-playing .training-play-toolbar span{font-size:12px;}body.training-playing .training-controls #finish-training{flex-basis:auto;margin-left:8px;}}
@media(max-width:360px){.dream-stick{width:116px;height:116px;flex-basis:116px;}.dream-action{max-width:140px;}.training-controls{gap:16px;}}
@media(max-width:1000px) and (max-height:700px) and (orientation:landscape){body.training-playing .masthead,body.training-playing .account-line,body.training-playing .bottom-nav,body.training-playing .site-footer,body.training-playing #training-view>.page-heading{display:none;}body.training-playing .shell{padding:4px 10px 8px;}body.training-playing #training-content{display:grid;grid-template-columns:minmax(0,1fr) 186px;gap:4px 14px;}body.training-playing .training-play-toolbar{grid-column:1/-1;margin:0;}body.training-playing .training-game-heading{grid-column:1;grid-row:2;margin:0;}body.training-playing .training-game-heading h2{font-size:11px;}body.training-playing .training-game-heading #training-score{font-size:16px;}body.training-playing .training-stage{grid-column:1;grid-row:3;height:calc(100dvh - 105px);}body.training-playing .training-stage>canvas{height:100%;width:100%;object-fit:contain;}body.training-playing #training-game-status{grid-column:2;grid-row:2;font-size:13px;padding:0;}body.training-playing .training-controls{grid-column:2;grid-row:3;align-content:center;margin:0;gap:8px;}body.training-playing .training-controls>.gold-button{min-height:64px;}body.training-playing .dream-stick{width:112px;height:112px;flex-basis:112px;}body.training-playing .dream-action{flex-direction:row;max-width:180px;}body.training-playing .dream-action button{width:72px;min-height:48px;}body.training-playing .dream-action span{font-size:11px;}body.training-playing .training-controls #finish-training{margin:0;font-size:12px;}body.training-playing #training-content>.secondary{display:none;}body.training-playing #training-view[data-game=mental] .training-stage>canvas{height:calc(100% - 76px);}body.training-playing .simon-pad{padding:6px;gap:6px;}body.training-playing .simon-symbol{min-height:60px;padding:4px;}body.training-playing .signal-icon{width:36px;height:36px;}body.training-playing .simon-symbol span{font-size:12px;}}

/* Give accordion and comparison controls a full touch target. */
summary{min-height:44px;padding-block:10px;}
.reuse-scenario input{width:44px;height:44px;flex-shrink:0;accent-color:var(--gold);}
.standing-bib,.standing-rank{color:var(--text);}
.standing-name small,.live-standings .minimap>span,.watch-controls label{font-size:14px;}
.scene-top,.scene-top .weather{font-size:14px;}
.goal-row button,.equipment-row button{font-size:14px;}
.standings-heading .secondary,#live-position{font-size:14px;}
.standing-gap{font-size:14px;}

/* Race presentation on the testing branch. */
.commentary-panel .panel-heading{gap:12px;flex-wrap:wrap}.commentary-panel .panel-heading button{min-height:44px;font-size:14px}#commentary-feed{max-height:140px;overscroll-behavior:contain}.commentary-panel.expanded #commentary-feed{max-height:min(65vh,560px)}.personal-event{margin:0;padding:12px;background:#263a37;border-bottom:2px solid #86cbbc;color:#e5fff1;line-height:1.4}.personal-event[hidden]{display:none}.dismiss-winners{position:absolute;right:12px;bottom:12px;z-index:3;background:#151a23;padding:12px;border:1px solid var(--gold);min-height:44px}.dismiss-winners[hidden]{display:none}

.stable-camera[data-theme="sunset"] .stable-bay{filter:sepia(.25);background-color:#653b32}.stable-camera[data-theme="midnight"] .stable-bay{background-image:linear-gradient(#10243c99,#17213e99),url('/static/assets/stable-bay-pixel-v51.png')}.stable-camera[data-theme="modern"] .stable-bay{background-image:url('/static/assets/stable-modern-v66.png')}.stable-camera[data-theme="high-tech"] .stable-bay{background-image:url('/static/assets/stable-high-tech-v66.png')}.stable-camera[data-theme="horror"] .stable-bay{background-image:url('/static/assets/stable-horror-v66.png')}.stable-camera[data-theme="hearts"] .stable-bay{background-image:url('/static/assets/stable-hearts-v66.png')}.stable-camera:is([data-theme="modern"],[data-theme="high-tech"],[data-theme="horror"],[data-theme="hearts"]) .stable-bay{height:400px;background-size:320px 480px;background-position:center bottom}.stable-camera[data-accessory="ribbon"] .stable-nameplate:after{content:' ◆';color:#97cfff}.stable-camera[data-accessory="laurel"] .stable-nameplate:after{content:' ★';color:#ffdc79}.stable-style-shop{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.stable-style-option{padding:12px;background:#1a202c;border:1px solid var(--line);min-width:0}.stable-style-option img{width:100%;height:190px;object-fit:cover;object-position:center;image-rendering:pixelated}.stable-style-option h3{font-size:13px;line-height:1.5}.stable-style-option p{line-height:1.4}.stable-style-option button{min-height:44px;width:100%}@media(max-width:420px){.stable-style-shop{grid-template-columns:1fr}}

.race-call{bottom:12px;font-size:10px;padding:8px 12px}.watch-controls #follow-mine{min-height:44px;font-size:14px}


.stable-style-option.is-selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.stable-style-option button[aria-pressed="true"]{color:var(--gold)}
.stable-camera[data-theme="lunar"] .stable-bay{background-image:url('/static/assets/stable-lunar-v68.png');height:400px;background-size:320px 480px;background-position:center bottom}
.stable-camera[data-theme="atlantis"] .stable-bay{background-image:url('/static/assets/stable-atlantis-v68.png');height:400px;background-size:320px 480px;background-position:center bottom}
.stable-camera[data-theme="disco"] .stable-bay{background-image:url('/static/assets/stable-disco-v68.png');height:400px;background-size:320px 480px;background-position:center bottom}
.stable-camera[data-theme="candy"] .stable-bay{background-image:url('/static/assets/stable-candy-v68.png');height:400px;background-size:320px 480px;background-position:center bottom}
.stable-camera[data-theme="dragon"] .stable-bay{background-image:url('/static/assets/stable-dragon-v68.png');height:400px;background-size:320px 480px;background-position:center bottom}

/* Keep commentary in the same viewport as the race, before the controls. */
.race-panel>.commentary-panel{margin:0;border:0;border-top:2px solid var(--line);background:#191923}.race-panel>.commentary-panel .panel-heading{padding:0 10px;min-height:44px;gap:8px}.race-panel>.commentary-panel h2{font-size:10px}.race-panel>.commentary-panel #commentary-toggle{font-size:14px;min-height:44px;padding:4px 0}.race-panel>.commentary-panel #latest-commentary{margin:0;padding:4px 10px 8px;font-size:17px;line-height:1.25;-webkit-line-clamp:2}.race-panel>.commentary-panel #personal-event{padding:6px 10px;font-size:15px;line-height:1.2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.race-panel>.commentary-panel:not(.expanded) #commentary-feed{display:none}.race-panel>.commentary-panel.expanded #commentary-feed{display:block;max-height:min(45vh,360px);font-size:17px}.race-panel>.commentary-panel.expanded #latest-commentary,.race-panel>.commentary-panel.expanded #personal-event{-webkit-line-clamp:unset}.race-now{padding:6px 10px}

.hat-icon{object-fit:contain;image-rendering:pixelated;flex-shrink:0}.purchase-result .hat-icon{width:160px;height:160px}.crate-panel + .crate-panel{margin-top:20px}

.hat-catalog-row{display:flex;align-items:center;gap:12px;text-align:left;padding:12px 0;border-top:1px solid var(--border)}.hat-catalog-row div{min-width:0}.hat-catalog-row p{margin:6px 0}.hat-catalog-row .hat-icon{width:64px;height:64px}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.horse-name-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:10px 0}.horse-name-form input,#new-username{min-width:0;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);background:#17171f;color:var(--text);font:16px var(--body)}.horse-name-form button{min-width:88px}.horse-name-form input::placeholder{color:var(--muted)}#username-dialog{width:min(440px,calc(100vw - 24px));padding:20px;background:var(--surface);color:var(--text);border:2px solid var(--gold)}#username-dialog::backdrop{background:#080810dc}#username-dialog form{display:grid;gap:12px}#username-dialog h2{font:14px/1.8 var(--pixel);color:var(--gold)}#username-dialog label{font-size:17px}.username-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center}.username-actions button{min-height:48px}#change-username{margin-inline:8px}

.horse-owner{display:block;color:var(--muted);font-size:10px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.contender-equipment{list-style:none;padding:0;display:grid;gap:8px}
.contender-equipment li{display:grid;gap:3px}
.memorial-cause{font-size:12px;line-height:1.5}
.race-podium{display:flex;align-items:flex-end;justify-content:center;gap:8px;list-style:none;padding:0;margin:12px 0 0}
.podium-place{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px}
.podium-place img{image-rendering:pixelated;width:100%;max-width:100px;height:auto;aspect-ratio:1;object-fit:contain;margin-bottom:-14px}
.podium-place strong{font-size:11px;overflow-wrap:anywhere;line-height:1.4}
.podium-place small{font-size:9px;color:var(--muted);overflow-wrap:anywhere;line-height:1.5}
.podium-plinth{display:flex;align-items:center;justify-content:center;width:100%;height:42px;background:#61524b;color:#fff6e8;border:1px solid #af8d68;font:700 22px monospace;box-shadow:inset 0 -6px #0003}
.podium-place-1{order:2}.podium-place-1 .podium-plinth{height:70px;background:#a77a27;border-color:#e2ba63}
.podium-place-2{order:1}.podium-place-2 .podium-plinth{height:52px;background:#65707d;border-color:#b6c5d3}
.podium-place-3{order:3}

/* The release button stays beside the balance without crowding the brand. */
.masthead-actions{display:grid;justify-items:end;gap:2px;flex-shrink:0}
.version-button{min-width:44px;min-height:32px;padding:4px 6px;font-size:14px;line-height:1;color:var(--muted)}
#changelog-dialog{width:min(620px,calc(100vw - 24px));max-height:85vh;padding:20px;background:var(--surface);color:var(--text);border:2px solid var(--gold);overflow:auto;overflow-wrap:anywhere}
#changelog-dialog::backdrop{background:#080810dc}
.changelog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
#changelog-title{font:14px/1.8 var(--pixel);color:var(--gold)}
.changelog-entries h3{font:12px/1.8 var(--pixel);color:var(--gold);margin:20px 0 10px}
.changelog-entries ul{padding-left:20px;margin:0}
.changelog-entries li{font-size:19px;line-height:1.45;margin:8px 0}
.horse-insurance{margin:12px 0}
.horse-insurance summary{cursor:pointer}

.next-race-time{color:var(--gold);font-size:18px;line-height:1.4;margin:8px 0 12px;overflow-wrap:anywhere}
.horse-enrollment-status{line-height:1.4;margin:10px 0 0}
.race-panel>.commentary-panel #personal-event[hidden],.race-panel>.commentary-panel #latest-commentary[hidden],.race-panel>.commentary-panel.expanded #latest-commentary{display:none}

/* The reel is presentation only; its final card is the item already awarded. */
#purchase-reveal:has(.purchase-stage[data-kind=item]){width:min(760px,calc(100vw - 24px));border-color:#665a42;background:#13131d;box-shadow:0 24px 100px #000b}
#purchase-reveal::backdrop{backdrop-filter:blur(6px)}
.purchase-stage{position:relative;isolation:isolate;overflow:hidden}
.purchase-stage[data-kind=item]{padding:28px 24px 20px;background:radial-gradient(ellipse at 50% 10%,#3d324255,transparent 65%)}
.purchase-stage[data-kind=item] h2{letter-spacing:2px;color:#f2dfb6;font-size:14px}
.purchase-stage[data-kind=item] .purchase-opening-note{min-height:24px;color:#bdb3c4;margin:10px 0 20px}
.purchase-stage[data-kind=item] .purchase-box{width:144px;height:144px;margin:20px auto}
.purchase-stage[data-kind=item][data-phase=glowing] .purchase-box{animation:crate-unlatch .38s ease-in both}
.purchase-stage[data-phase=spinning] .purchase-box,.purchase-stage[data-phase=landed] .purchase-box{display:none}
.purchase-reel{position:relative;overflow:hidden;height:222px;margin:12px -24px 22px;background:#090a12;border-block:2px solid #60533e;contain:layout paint}
.reel-track{position:relative;display:flex;gap:12px;width:max-content;height:100%;align-items:center;will-change:transform}
.reel-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 144px;width:144px;height:182px;padding:12px 9px;border:1px solid #36313e;border-bottom:4px solid var(--card-color);background:radial-gradient(ellipse at 50% 65%,color-mix(in srgb,var(--card-color) 17%,transparent),transparent 80%),#1e1c29;opacity:.65;transition:opacity .12s;overflow:hidden}
.reel-card.is-centered{opacity:1;border-top-color:#897b65}
.reel-card>.item-icon,.reel-card>.hat-icon{width:88px;height:88px;flex:0 0 88px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 4px 0 #0005)}
.reel-tier{align-self:flex-start;color:var(--card-color);font-size:12px;letter-spacing:1px}
.reel-name{font-size:17px;line-height:1.1;min-height:36px;margin-top:8px;display:flex;align-items:center;justify-content:center;overflow-wrap:anywhere}
.reel-marker{position:absolute;z-index:3;inset:0 auto 0 50%;width:2px;background:#ffe4a48c;pointer-events:none;transform:translateX(-50%);box-shadow:0 0 15px #e8ba5866}
.reel-marker:before,.reel-marker:after{content:'';position:absolute;left:-6px;width:14px;height:10px;background:#ffdb86;clip-path:polygon(0 0,100% 0,100% 40%,70% 40%,70% 70%,50% 100%,30% 70%,30% 40%,0 40%)}
.reel-marker:before{top:0}.reel-marker:after{bottom:0;rotate:180deg}
.reel-shade{position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,#090a12 0%,#090a1200 20% 80%,#090a12 100%);pointer-events:none}
.purchase-stage[data-phase=landed] .reel-track{transition:transform .26s cubic-bezier(.2,.8,.2,1)}
.reel-card.is-winner{border:2px solid var(--card-color);border-bottom-width:4px;box-shadow:0 0 32px color-mix(in srgb,var(--card-color) 35%,transparent);opacity:1}
.purchase-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:2}
.purchase-actions .text-button{font-size:14px;letter-spacing:1px;min-height:44px;padding:6px 10px}
.purchase-sound{color:#a9a0b0}.purchase-sound[aria-pressed=true]{color:#dbcca9}
.purchase-close{flex:1 0 100%}
.purchase-stage:not([data-phase=revealed]) .purchase-close{display:none}
.purchase-stage[data-phase=revealed] .purchase-result{position:relative;z-index:1;animation:loot-arrive .48s cubic-bezier(.15,.85,.25,1) both;padding-bottom:16px}
.purchase-stage[data-kind=item][data-phase=revealed]{background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--reveal-color) 16%,transparent),transparent 65%),#13131d}
.purchase-result>.hat-icon{display:block;width:160px;height:160px;object-fit:contain;image-rendering:pixelated;margin:18px auto;filter:drop-shadow(0 0 16px color-mix(in srgb,var(--reveal-color) 40%,transparent))}
.purchase-result>.item-icon{display:block;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--reveal-color) 40%,transparent))}
.purchase-result h3{color:#fff0d8;font-size:32px;line-height:1.1;overflow-wrap:anywhere}
.purchase-result>p{max-width:520px;margin:16px auto;color:#c5bbc9}
.reveal-tier{display:block;letter-spacing:2px}
.reveal-sparks{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.reveal-sparks>span{position:absolute;top:38%;left:50%;width:5px;height:8px;background:var(--reveal-color);opacity:0;box-shadow:0 0 8px var(--reveal-color)}
.reveal-impact .reveal-sparks>span{animation:loot-spark .8s cubic-bezier(.12,.7,.25,1) both}
.bottom-nav .pixel-nav-icon{width:30px;height:30px;stroke:none;fill:currentColor;shape-rendering:crispEdges}.pixel-icon-detail{opacity:.45}
@keyframes crate-unlatch{0%{transform:scale(1)}45%{transform:scale(1.1) rotate(-3deg);filter:drop-shadow(0 0 15px #ffd48488)}100%{transform:scale(.85) translateY(-14px);opacity:0}}
@keyframes loot-arrive{0%{opacity:0;transform:translateY(12px) scale(.91)}65%{opacity:1;transform:translateY(-3px) scale(1.025)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes loot-spark{0%{opacity:0;transform:translate(0,0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) rotate(var(--spark-turn))}}
@media(max-width:480px){.purchase-stage[data-kind=item]{padding:24px 16px 16px}.purchase-reel{margin-inline:-16px;height:204px}.reel-card{flex-basis:120px;width:120px;height:166px;padding:10px 7px}.reel-card>.item-icon,.reel-card>.hat-icon{width:76px;height:76px;flex-basis:76px}.reel-name{font-size:16px}.purchase-result h3{font-size:28px}.purchase-stage[data-kind=item] h2{font-size:12px;letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){.purchase-stage .purchase-box,.purchase-stage .purchase-result,.reveal-impact .reveal-sparks>span{animation:none!important}.reel-track,.reel-card{transition:none!important}#purchase-reveal::backdrop{backdrop-filter:none}}

/* Loose inventory lives in the tack room as well as beside the selected horse. */
.item-exchange{max-width:760px;margin:24px auto 0;padding:20px;line-height:1.4}.item-exchange>h2{color:var(--gold);margin-bottom:12px}.item-exchange>p{margin:10px 0}.item-exchange>label{display:block;color:var(--gold);margin:20px 0 8px;font-size:15px;letter-spacing:1px}
.item-exchange select{width:100%;min-height:48px;background:#24202c;color:var(--text);border:1px solid #5b4f60;padding:10px;font-size:18px}
.exchange-sales{margin:20px 0;border-block:1px solid var(--line)}.exchange-sales>summary{padding:14px 0;min-height:48px;color:var(--gold);cursor:pointer}
.exchange-sale-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;border-top:1px solid var(--line);padding:12px 0}.exchange-sale-row .item-icon,.exchange-sale-row .hat-icon,.trade-copy-row>.item-icon,.trade-copy-row>.hat-icon{width:40px;height:40px;flex-basis:40px;object-fit:contain;image-rendering:pixelated}.exchange-sale-row strong,.exchange-sale-row span,.trade-copy-row label strong,.trade-copy-row label span{display:block}.exchange-sale-row span,.trade-copy-row label span{color:var(--muted);font-size:14px;margin-top:4px}.exchange-sale-row button{font-size:14px;min-height:44px;max-width:112px;padding:8px;line-height:1.3}
.trade-selection-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;padding:10px 0}.trade-selection-count{font-size:16px;color:var(--gold);font-weight:400}.trade-selection-heading button{font-size:14px;min-height:44px}.trade-copy-list{max-height:420px;overflow:auto;overscroll-behavior:contain}.trade-copy-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.trade-copy-row label{min-width:0;overflow-wrap:anywhere;font-size:18px}.trade-stepper{display:flex;align-items:center;border:1px solid #5b4f60;background:#201d2a}.trade-stepper button{width:44px;min-height:46px;border:0;background:none;color:var(--gold);font-size:24px}.trade-stepper input{width:40px;min-height:46px;appearance:textfield;-moz-appearance:textfield;border:0;border-inline:1px solid #5b4f60;border-radius:0;text-align:center;background:none;color:var(--text);font-size:18px;padding:0}.trade-stepper input::-webkit-inner-spin-button,.trade-stepper input::-webkit-outer-spin-button{-webkit-appearance:none}.item-exchange>.gold-button{margin-top:18px}
#item-exchange-confirm,#permanent-equipment-confirm{width:min(500px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;border:2px solid var(--gold);background:#191722;color:var(--text);padding:22px;line-height:1.4}#item-exchange-confirm::backdrop,#permanent-equipment-confirm::backdrop{background:#080810d9;backdrop-filter:blur(4px)}#item-exchange-confirm h2,#permanent-equipment-confirm h2{font-size:13px;line-height:1.8;color:var(--gold)}#item-exchange-confirm p,#permanent-equipment-confirm p{margin:16px 0}#item-exchange-confirm ul{padding-left:22px}.exchange-confirm-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:20px}.exchange-confirm-actions>.gold-button{flex:1 1 200px;width:auto}.exchange-cancel,.cancel-permanent{min-width:72px;min-height:48px}
.daily-bonus-panel{margin:20px 0;padding:20px;border-color:#6f5c35;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:linear-gradient(110deg,#30291c,#1b1923)}.daily-bonus-panel h2{font-size:13px;color:var(--gold);line-height:1.8;margin:8px 0}.daily-bonus-panel p{font-size:16px;color:var(--muted);line-height:1.4}.daily-bonus-panel>.gold-button{width:auto;min-width:170px}.sell-inventory-item{border-top:1px solid var(--line);margin-top:10px;min-height:44px;font-size:14px}
@media(max-width:480px){.item-exchange{padding:14px}.trade-copy-row{grid-template-columns:32px minmax(0,1fr) auto;gap:7px}.trade-copy-row>.item-icon,.trade-copy-row>.hat-icon{width:30px;height:30px}.trade-copy-row label{font-size:16px}.trade-stepper button{width:44px}.trade-stepper input{width:32px}.exchange-sale-row{grid-template-columns:32px minmax(0,1fr) auto;gap:7px}.exchange-sale-row>.item-icon,.exchange-sale-row>.hat-icon{width:30px;height:30px}.exchange-sale-row strong{font-size:17px}.exchange-sale-row button{max-width:82px;font-size:13px}.daily-bonus-panel{padding:16px}.daily-bonus-panel h2{font-size:12px}}

#resume-racing-dialog{width:min(500px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;background:#191722;color:var(--text);border:2px solid var(--gold);padding:22px;line-height:1.4}#resume-racing-dialog::backdrop{background:#080810d9;backdrop-filter:blur(4px)}#resume-racing-dialog h2{color:var(--gold);font-size:13px;line-height:1.8}#resume-racing-dialog p{margin:16px 0}.resume-racing-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.resume-racing-actions>.text-button{min-height:48px;flex:1 0 100%}.resume-racing-actions>.gold-button{flex:1 0 100%}

/* The ticket is pixel art; the coating scratches continuously at device resolution. */
.scratch-panel{max-width:760px;margin:24px auto 0;padding:22px;background:radial-gradient(ellipse at 50% 40%,#302038,#191722 75%);border-color:#68513c;line-height:1.5}
.scratch-heading{text-align:center;margin-bottom:18px}.scratch-heading h2{font-size:14px;line-height:1.8;color:var(--gold);margin:8px 0}.scratch-heading p{font-size:18px;color:var(--muted);max-width:430px;margin:auto}
.scratch-ticket{position:relative;width:100%;max-width:660px;margin:auto;isolation:isolate;filter:drop-shadow(0 10px 12px #08051088)}.scratch-ticket>img{display:block;width:100%;height:auto;image-rendering:pixelated;user-select:none;-webkit-user-drag:none}
.scratch-well{position:absolute;left:7%;top:43%;width:86%;height:43%;border:2px solid #b99757;overflow:hidden;border-radius:3px;background:#261a39}
.scratch-prizes{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;padding:8px;gap:6px}
.scratch-prize{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:linear-gradient(#392249,#251b35);border:1px solid #a6854e;min-width:0;box-shadow:inset 0 0 0 3px #241831}
.scratch-horseshoe{color:#d6ac5e;font-size:clamp(24px,5vw,50px);line-height:1}.scratch-prize strong{color:#ffde9b;font-family:var(--body);font-weight:400;font-size:clamp(22px,5vw,42px);line-height:1.1;text-shadow:2px 2px #150e20}.scratch-prize small{color:#bc9b70;font-size:clamp(10px,2vw,15px);letter-spacing:1px}
.scratch-foil{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:1;transition:opacity .4s ease;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.scratch-foil.scratch-enabled{pointer-events:auto;cursor:crosshair;touch-action:none}
.scratch-ticket[data-phase=revealing] .scratch-foil,.scratch-ticket[data-phase=revealed] .scratch-foil{opacity:0;pointer-events:none}
.scratch-result{color:var(--gold);font-size:21px;min-height:3em;margin:18px 0 4px;text-align:center;text-wrap:balance;line-height:1.4}
.scratch-reveal{display:block;margin:0 auto 12px;min-height:44px;font-size:14px;text-decoration:underline;text-underline-offset:4px}
.scratch-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.scratch-actions>button{flex:1 1 220px;min-height:52px;width:auto;padding:12px;font-size:14px;line-height:1.5}.scratch-actions>.scratch-buy{border:1px solid #8f754e;color:#ebcd88;background:#2a2230}
.scratch-panel button:disabled{opacity:.45;cursor:default}.scratch-panel>.secondary{text-align:center;font-size:15px;line-height:1.5;margin-top:12px}.scratch-rules{border-top:1px solid var(--line);margin-top:20px;font-size:17px;color:var(--muted)}.scratch-rules summary{cursor:pointer;color:var(--gold);font-size:14px;padding:16px 0;min-height:48px}.scratch-rules p{margin:12px 0}
.scratch-odds-table{overflow:auto}.scratch-odds-table table{width:100%;border-collapse:collapse;font-size:17px}.scratch-odds-table th,.scratch-odds-table td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}.scratch-odds-table th{font-weight:400;color:var(--gold)}.scratch-retry{display:block;min-height:48px;margin:12px auto}
.scratch-celebrate .scratch-prize{animation:scratch-prize-pop .65s ease-out both;border-color:#f6d278;box-shadow:inset 0 0 0 3px #70522a,0 0 16px #e3b95644}.scratch-celebrate .scratch-prize:nth-child(2){animation-delay:.1s}.scratch-celebrate .scratch-prize:nth-child(3){animation-delay:.2s}
@keyframes scratch-prize-pop{0%{transform:scale(.9);filter:brightness(1)}40%{transform:scale(1.03);filter:brightness(1.7)}100%{transform:scale(1);filter:brightness(1)}}
@media(max-width:480px){.scratch-panel{padding:14px}.scratch-heading h2{font-size:12px}.scratch-heading .eyebrow{font-size:11px}.scratch-heading p{font-size:16px}.scratch-prizes{padding:4px;gap:4px}.scratch-prize{gap:2px}.scratch-horseshoe{font-size:25px}.scratch-prize strong{font-size:24px}.scratch-prize small{font-size:11px}.scratch-well{border-width:1px}.scratch-result{font-size:19px}.scratch-actions>button{font-size:13px}.scratch-odds-table td,.scratch-odds-table th{padding:8px 4px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.scratch-celebrate .scratch-prize{animation:none!important}.scratch-foil{transition:none}}

/* A rare second life, layered with the actual returned horse's pixel sprite. */
.revival-dialog {width:min(600px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;padding:20px;border:2px solid #a2bf65;background:#151c22;color:#f3eedf;box-shadow:0 0 40px #99cf4733;}
.revival-dialog::backdrop {background:#060b13dd;}
.revival-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;}
.revival-heading .eyebrow {color:#b9dc7d;}
.revival-dialog h2 {margin:12px 0 16px;font-size:clamp(20px,5vw,30px);}
.revival-scene {position:relative;aspect-ratio:3/2;margin:0;overflow:hidden;background:#071b28;border:1px solid #596445;isolation:isolate;}
.revival-backdrop,.revival-foreground {position:absolute;inset:0;width:100%;height:100%;object-fit:fill;image-rendering:pixelated;pointer-events:none;}
.revival-horse-window {position:absolute;inset:0;overflow:hidden;clip-path:inset(0 0 25% 0);}
.revival-horse {position:absolute;left:13%;bottom:17%;width:74%;height:auto;max-width:none;image-rendering:pixelated;transform-origin:35% 75%;animation:grave-return 3.8s ease-out both;filter:drop-shadow(0 0 7px #a1cc6b66);}
.revival-foreground {clip-path:inset(74% 0 0 0);}
.revival-name {margin:16px 0 10px;color:#c4e68b;font-size:22px;overflow-wrap:anywhere;}
.revival-dialog p {line-height:1.5;}
.revival-dialog .revival-stable {width:100%;min-height:48px;}
.revival-error:empty {display:none;}
.revival-error {color:#ffb3a0;}
@keyframes grave-return {0% {transform:translateY(75%) rotate(13deg);}35% {transform:translateY(45%) rotate(-9deg);}70% {transform:translateY(10%) rotate(3deg);}100% {transform:translateY(0) rotate(0);}}
@media (prefers-reduced-motion:reduce) {.revival-horse {animation:none;}}
@media (max-width:480px) {.revival-dialog {padding:14px;}.revival-name {font-size:20px;}}

.daily-quests progress{display:block;width:min(100%,280px);height:8px;accent-color:var(--gold);margin:8px 0}.quest-progress{color:var(--gold);font-size:16px}.lifetime-goals{margin-top:24px}.lifetime-goals>summary{min-height:44px;cursor:pointer;color:var(--muted);padding:12px 0}

/* Results and the return action take their own space, outside the painted podium. */
.race-outcome{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px;background:#17251f;border-top:2px solid #907442}
.race-outcome .race-call{position:static;inset:auto;transform:none;flex:1 1 230px;max-width:none;margin:0;padding:10px 12px;white-space:normal;overflow-wrap:anywhere;border:2px solid #9f824c;background:#17201e;color:#ffe1a0;font:12px/1.65 var(--pixel);text-shadow:2px 2px #101915;box-shadow:inset 0 0 0 2px #26382b}
.race-outcome .race-call::before{content:'OFFICIAL RESULT';display:block;margin-bottom:4px;color:#b4cdb7;font:14px var(--body);letter-spacing:1px}
.race-outcome .dismiss-winners{position:static;flex:0 0 auto;min-height:44px;border:2px solid #a1854f;box-shadow:3px 3px #0c1512;color:#f5d990;background:#23372c;padding:10px 14px;font:16px var(--body)}
@media(max-width:699px){.race-outcome{gap:10px;padding:10px}.race-outcome .race-call{font-size:10px}.race-outcome .dismiss-winners{width:100%}}

/* Keep the selected horse's next decision above optional detail. */
.stable-primary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 3px 16px 0}
.stable-card .stable-primary-actions>button{display:flex;align-items:center;justify-content:center;min-width:0;width:100%;min-height:60px;margin:0;padding:12px 10px;border:2px solid #b8a16b;border-top-color:#e3ce91;border-bottom-color:#77623b;border-radius:0;background:linear-gradient(#2a372c,#1d2922);box-shadow:inset 0 0 0 2px #ffffff08,3px 3px 0 #0c1510;color:#f1d99b;font:18px/1.2 var(--body);letter-spacing:.6px;text-align:center;text-wrap:balance;white-space:normal;cursor:pointer;touch-action:manipulation}
.stable-card .stable-primary-actions>button:hover:not(:disabled){background:linear-gradient(#384733,#27372a);border-color:#f0d68d;color:#fff0c8}
.stable-card .stable-primary-actions>button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 0 0 2px #ffffff08,1px 1px 0 #0c1510}
.stable-card .stable-primary-actions>button:focus-visible{outline:3px solid #ffe29b;outline-offset:4px}
.stable-card .stable-primary-actions>button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.horse-lock-help,.equipment-lock-help{padding:10px;border-left:3px solid var(--gold);line-height:1.35;margin:8px 0}
.stable-card details>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;gap:8px}
.stable-card details>summary::before{content:'+';color:var(--gold)}
.stable-card details[open]>summary::before{content:'−'}
.version-button{min-width:44px;min-height:44px}
@media(max-width:699px){
 .stable-card>img{display:none}
 .stable-card{display:block;padding:12px}
 .stable-card h2{font-size:20px;line-height:1.4;overflow-wrap:anywhere}
 .stable-card .horse-enrollment-status,.stable-card .next-race-time{font-size:15px;margin:8px 0}
 .stable-card .stable-quick-stats{font-size:15px;line-height:1.4}
 .stable-primary-actions{position:relative;margin:10px 0}
 .stable-card .horse-name-form{flex-wrap:wrap}
 .stable-card .horse-name-form input{min-width:0;width:100%}
}
.measured-recap{margin:14px 0;padding:12px;border:1px solid var(--line);background:#171d20}
.measured-recap h3{margin:0;font:16px var(--body);color:var(--gold)}
.measured-recap ul{margin:8px 0;padding-left:20px;line-height:1.4;font-size:17px}
.measured-recap li+li{margin-top:7px}

/* Terminal's small capitals need at least fourteen CSS pixels on a phone. */
@media(max-width:699px){
 .horse-owner,.standing-name small,.standing-gap,.standings-heading .secondary,
 .live-standings .minimap>span,.podium-place strong,.podium-place small,
 .finish-table small,.career-table small,.scratch-heading .eyebrow,.scratch-prize small,
 .watch-controls label,.watch-controls #follow-mine,.scratch-actions>.text-button,
 .race-panel>.commentary-panel #commentary-toggle,.exchange-sale-row button,.brand small{font-size:14px}
}

/* The racing build stays small while the collection can grow. */
.selected-inventory{padding:24px;background:radial-gradient(ellipse at top left,#28312b66,transparent 60%),#161b1a;border-color:#596044}
.selected-inventory>.panel-heading{padding-bottom:18px;border-bottom:1px solid #ffffff18;gap:12px;flex-wrap:wrap}
.loadout-heading,.collection-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:24px 0 12px;flex-wrap:wrap}
.loadout-heading h3,.collection-heading h3{margin:8px 0 0;font-size:18px;color:#f5eddb}
.loadout-heading .eyebrow,.collection-heading .eyebrow{color:#b1bb9a;font-size:9px;letter-spacing:1.6px}
.loadout-count{font-family:var(--body);font-size:24px;color:#f5cf76;background:#0d1311;padding:9px 13px;border:1px solid #706341;border-radius:6px;white-space:nowrap}
.loadout-count small{font-size:13px;color:#bdc6b7}
.loadout-help{color:#bdc6b7;line-height:1.5}
.loadout-warning,.equipment-lock-help{padding:14px 16px;background:#312c1b;border:1px solid #8f783e;border-left:4px solid #e3bf68;color:#f5dfaa;font-size:17px;line-height:1.45;border-radius:4px}
.loadout-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:18px}
.loadout-slot{position:relative;min-width:0;background:linear-gradient(155deg,#2b332e,#19201c);border:1px solid #5e6853;border-top:3px solid var(--rarity-color,#afb6a6);border-radius:8px;padding:12px;display:flex;align-items:center;flex-direction:column;gap:10px;box-shadow:0 5px 0 #090f0b80}
.slot-topline{display:flex;justify-content:space-between;width:100%;gap:4px;align-items:center}.slot-index{color:#abb6a2;font-size:12px;letter-spacing:1px}
.inventory-tier{font-size:11px;color:var(--rarity-color,#bbc6b5);letter-spacing:1px;line-height:1.5}
.loadout-slot>.item-icon,.loadout-slot>.hat-icon{width:64px;height:64px;flex-shrink:0;image-rendering:pixelated}
.loadout-slot>strong{font-size:18px;line-height:1.2;text-align:center;color:#f4ead4;overflow-wrap:anywhere}
.loadout-slot>p{font-size:16px;color:#bcc6ba;line-height:1.3;margin:0;text-align:center}
.loadout-slot>button{margin-top:auto;min-height:44px;width:100%;font-size:14px}
.loadout-slot-empty{border:1px dashed #59694e;box-shadow:none;background:#121a1580;justify-content:center;min-height:245px;color:#9aab91;text-align:center}.loadout-slot-empty>strong{font-size:16px;color:#b6c1ac}.loadout-slot-empty>span:last-child{font-size:15px}.slot-empty-icon{font-size:38px;color:#6f8860}
.inventory-browser{border-top:1px solid #ffffff18;margin-top:28px;padding-top:2px}
.inventory-toolbar{display:flex;gap:12px;align-items:end}.inventory-toolbar label{display:grid;gap:7px;min-width:0;color:#adb9a5;font-size:12px;letter-spacing:1px}.inventory-search{flex:1}.inventory-toolbar input,.inventory-toolbar select{min-height:46px;border:1px solid #58694d;background:#0f1612;color:#f5eddb;border-radius:6px;width:100%;padding:10px 12px;font:18px var(--body);letter-spacing:0}.inventory-toolbar input:focus,.inventory-toolbar select:focus{outline:2px solid #e6c36a;outline-offset:2px}
.inventory-tabs{display:flex;gap:8px;margin:14px 0 18px}.inventory-tabs button{min-height:44px;min-width:72px;border:1px solid #4e6047;border-radius:5px;color:#b5c1ac;padding:8px 14px}.inventory-tabs [aria-pressed=true]{background:#e2c379;color:#1a211b;border-color:#f5d694}
#item-inventory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
#item-inventory>.inventory-card{display:flex;flex-direction:column;min-width:0;padding:0;gap:0;background:#202923;border:1px solid #4a5d46;border-top:3px solid var(--rarity-color,#bbc6b5);border-radius:8px;overflow:hidden;box-shadow:0 4px 0 #0b100d}
.inventory-card-art{position:relative;display:grid;place-items:center;min-height:108px;background:radial-gradient(ellipse,#8da27528,transparent 65%),repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 4px),#141d17;border-bottom:1px solid #ffffff0c}
.inventory-card-art .item-icon,.inventory-card-art .hat-icon{width:72px;height:72px;image-rendering:pixelated}.inventory-quantity{position:absolute;right:12px;bottom:10px;background:#0a100ccc;border:1px solid #59674e;color:#efdfb2;padding:3px 7px;border-radius:4px;font-size:17px}
.inventory-card-copy{padding:14px 14px 0;display:flex;flex-direction:column;gap:7px;flex:1}.inventory-card-copy strong{color:#f5ead2;font-size:21px;line-height:1.2;overflow-wrap:anywhere}.inventory-card-copy p{font-size:17px;line-height:1.4;color:#c0cabb;margin:0 0 14px}.inventory-card-actions{display:grid;gap:6px;padding:0 14px 12px}.inventory-card-actions button{width:100%;min-height:44px;font-size:14px;white-space:normal}.inventory-card-actions .enter-race{border:1px solid #cfb96e;background:#debf70;color:#1b251c;border-radius:4px;padding:9px 7px}.inventory-card-actions button:disabled{opacity:.5;cursor:not-allowed}.inventory-card-actions .sell-inventory-item{color:#b2bea9;font-size:13px}
.inventory-empty{grid-column:1/-1;text-align:center;padding:36px 15px;color:#b8c5ac;background:#10191288;border:1px dashed #4c6044;border-radius:8px}.inventory-empty>span{font-size:45px;color:#d1bd7b}.inventory-empty h3{font-size:22px;margin:12px 0}.inventory-empty p{font-size:18px;line-height:1.4}
[data-tier=TACK]{--rarity-color:#c2c8b6}[data-tier=VICE]{--rarity-color:#89c888}[data-tier=OMEN]{--rarity-color:#80bce6}[data-tier=ANOMALY]{--rarity-color:#cba0ed}[data-tier=DUST]{--rarity-color:#eaa08a}[data-tier=RELIC]{--rarity-color:#edcb76}
@media(max-width:900px){.loadout-slots{grid-template-columns:repeat(3,minmax(0,1fr))}#item-inventory{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.selected-inventory{padding:14px}.loadout-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.loadout-slot{padding:10px}.loadout-slot:last-child{grid-column:1/-1;min-height:130px}.loadout-slot-empty{min-height:165px}.loadout-slot>p{font-size:16px}.inventory-toolbar{align-items:stretch;flex-direction:column}.inventory-toolbar label{font-size:12px}.inventory-toolbar select{font-size:17px}.collection-heading{align-items:start}#inventory-result-count{font-size:14px}#item-inventory{grid-template-columns:1fr}.inventory-card-art{min-height:100px}.inventory-card-copy strong{font-size:23px}.inventory-card-copy p{font-size:18px}.inventory-card-actions{grid-template-columns:1fr 1fr}.inventory-card-actions button{font-size:13px}.loadout-count{font-size:21px}}
.training-growth-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.training-growth-card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid #657d59;border-radius:8px;background:linear-gradient(135deg,#253c29,#15231b);text-align:left}.training-growth-card>span{font-size:12px;color:#c2d5b7;letter-spacing:1px}.training-growth-card>strong{color:#efdc96;font-size:26px}.training-growth-card small{font-size:12px;color:#c8d8bf;line-height:1.5}.training-growth-card progress{appearance:none;-webkit-appearance:none;height:10px;border:1px solid #77916b;border-radius:3px;background:#0b170e;width:100%;overflow:hidden}.training-growth-card progress::-webkit-progress-bar{background:#0b170e}.training-growth-card progress::-webkit-progress-value{background:linear-gradient(90deg,#6dc58b,#f1db89)}.training-growth-card progress::-moz-progress-bar{background:#a5d79b}.training-gain-burst{display:flex;flex-direction:column;gap:12px;padding:24px;margin:16px 0;border:2px solid #ebd389;border-radius:8px;background:radial-gradient(ellipse,#547745,#203327 75%);box-shadow:0 5px 0 #0a150e}.training-gain-burst>span{font-size:18px;color:#fff3ce;letter-spacing:2px}.training-gain-burst>strong{font-size:64px;color:#fff1a3;line-height:1;text-shadow:3px 3px #4b6b35}.training-gain-burst>small{font-size:12px;color:#d9ecc7;letter-spacing:1px}.training-result .training-permanent{color:#fff4b8;background:#435b31;padding:16px;border:1px solid #d7cf86;border-radius:5px}.training-result>.training-growth-card p{margin:0;font-size:16px}@media(prefers-reduced-motion:no-preference){.training-gain-burst{animation:training-result-pop .45s ease-out}@keyframes training-result-pop{from{transform:translateY(10px) scale(.95);opacity:.4}to{transform:translateY(0) scale(1);opacity:1}}}@media(max-width:600px){.training-growth-grid{grid-template-columns:1fr}.training-gain-burst>strong{font-size:52px}}
.horse-age{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:10px 12px;margin:12px 0;background:#141f19;border:1px solid #526246;border-radius:5px;color:#c4cfb9;font-size:16px}.horse-age strong{color:#f5dc99;font-size:20px}.horse-age>span:nth-child(2){margin-left:auto;font-size:12px;letter-spacing:1px}.horse-age>small{flex-basis:100%;font-size:12px;line-height:1.45;color:#b8c9ae}
.training-growth-card .training-grade{font-family:var(--pixel);font-size:40px;line-height:1.2;text-shadow:2px 2px #0c190c;color:#c0c8bb}.training-grade[data-grade=S],[data-grade=S]{color:#ffe08b}.training-grade[data-grade=A],[data-grade=A]{color:#e0b0f5}.training-grade[data-grade=B],[data-grade=B]{color:#92c9ee}.training-grade[data-grade=C],[data-grade=C]{color:#9ad39a}.training-potential{font-size:17px;letter-spacing:1px;color:#e4d19b}.stable-training-grades{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.stable-training-grades>span{display:flex;gap:10px;align-items:center;padding:6px 10px;border:1px solid #4c6046;background:#17221a;border-radius:4px;color:#bdcbb5;font-size:12px}.stable-training-grades strong{font-size:21px}.training-result .training-growth-card{align-items:center}
.selected-inventory{container-type:inline-size;min-width:0}.loadout-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.loadout-slot:last-child{grid-column:1/-1}.loadout-slot>strong{overflow-wrap:normal;word-break:normal}.loadout-slot>p{font-size:18px}.loadout-slot .slot-effect{width:100%;margin:0;font-size:16px;color:#c4cfb9}.slot-effect summary{font-size:12px;min-height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer}.slot-effect p{margin:8px 0 0;line-height:1.35}#item-inventory{grid-template-columns:repeat(2,minmax(0,1fr))}@container(min-width:460px){.loadout-slots{grid-template-columns:repeat(3,minmax(0,1fr))}.loadout-slot:last-child{grid-column:span 2}}@container(min-width:860px){.loadout-slots{grid-template-columns:repeat(5,minmax(0,1fr))}.loadout-slot:last-child{grid-column:auto}#item-inventory{grid-template-columns:repeat(3,minmax(0,1fr))}}@container(max-width:400px){#item-inventory{grid-template-columns:1fr}.loadout-slot>.item-icon,.loadout-slot>.hat-icon{width:48px;height:48px}.loadout-slot>p{font-size:16px}.loadout-slot{gap:7px}.loadout-slot-empty{min-height:170px}}
@media(max-width:600px){.stable-training-grades{flex-wrap:nowrap;gap:6px;margin:8px 0}.stable-training-grades>span{flex:1;justify-content:space-between;padding:5px 7px;gap:5px;font-size:12px}.horse-age{padding:7px 10px;margin:8px 0;gap:3px 8px}.horse-age>small{font-size:11px}.horse-lock-help{font-size:15px!important;padding:7px 9px;margin:6px 0}.horse-age>span:nth-child(2){font-size:11px}}
.stable-card[data-enrolled=false] .horse-enrollment-status{display:none}
.training-result{background:radial-gradient(ellipse at top,#354a32,#15221b 70%);border-color:#b4a366;border-radius:8px;scroll-margin-top:16px}.training-result img{width:104px;height:104px;margin:8px auto}.training-result .training-gain-burst{padding:16px;margin:12px 0;gap:9px}.training-result .training-gain-burst>strong{font-size:46px}.training-result .training-growth-card{gap:8px;padding:12px}.training-result p{margin:10px 0}.training-result .training-permanent{padding:10px}.training-result button{min-height:44px}.slot-effect summary:focus-visible{outline:2px solid #ebd389;outline-offset:2px}@media(max-width:600px){.training-growth-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.training-growth-grid .training-growth-card{padding:12px 7px;gap:8px;min-width:0;overflow-wrap:anywhere}.training-growth-grid .training-growth-card>span,.training-growth-grid .training-growth-card small{font-size:11px;letter-spacing:0}.training-growth-grid .training-grade{font-size:32px}.training-result{padding:16px}.training-result h2{font-size:15px}.training-result .training-gain-burst>strong{font-size:40px}}

/* Equipment remake: three disciplines and the five-rarity ladder. */
.equipment-icon{object-fit:contain;image-rendering:pixelated;background:none;flex-shrink:0}
[data-tier=COMMON]{--rarity-color:#b9c4bc}[data-tier=UNCOMMON]{--rarity-color:#74c77b}[data-tier=RARE]{--rarity-color:#65b5ef}[data-tier=EPIC]{--rarity-color:#bd82fa}[data-tier=LEGENDARY]{--rarity-color:#f3c651}

.stable-card[data-artifact=gold_statue]>img{display:block;width:128px;height:128px;float:right}

#permanent-equipment-confirm{width:min(92vw,480px);padding:24px;}
#permanent-equipment-confirm::backdrop{background:#10151bd9;}

.crate-buy-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.crate-buy-actions button{flex:1 1 200px;min-height:48px}.batch-reveal-note{margin-bottom:16px;color:var(--muted)}.batch-reveal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.batch-reveal-card{min-width:0;padding:12px 8px;border:2px solid var(--item-color);background:#1b1b25;overflow-wrap:anywhere}.batch-reveal-card .item-icon{display:block;margin:8px auto}.batch-reveal-card h3{font-size:18px;line-height:1.25;margin:8px 0}.batch-reveal-card p{font-size:15px;color:var(--muted);line-height:1.25}.batch-reveal-card .reveal-tier{font-size:13px;color:var(--item-color)}
@media(min-width:700px){.batch-reveal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
#purchase-reveal:has(.batch-reveal-grid) .purchase-stage{display:flex;flex-direction:column;max-height:calc(85dvh - 4px)}#purchase-reveal:has(.batch-reveal-grid) .purchase-result{min-height:0;overflow-y:auto;overscroll-behavior:contain}#purchase-reveal:has(.batch-reveal-grid) .purchase-actions{flex-shrink:0}

/* Let the page reflow when a fold or rotation changes the safe content area. */
.shell{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:calc(100px + env(safe-area-inset-bottom))}
.bottom-nav{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.masthead{padding-top:max(27px,env(safe-area-inset-top))}
@media(min-width:700px){.shell{padding-left:max(28px,env(safe-area-inset-left));padding-right:max(28px,env(safe-area-inset-right));padding-bottom:calc(120px + env(safe-area-inset-bottom))}.masthead{padding-top:max(32px,env(safe-area-inset-top))}}
@media(max-width:900px){body.training-playing .shell{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}
@media(max-width:900px) and (orientation:portrait){
 body.training-playing #training-canvas{max-height:calc(100dvh - 320px - env(safe-area-inset-top) - env(safe-area-inset-bottom));object-fit:contain}
 body.training-playing #training-view[data-game=metaphysical] #training-canvas{max-height:calc(100dvh - 365px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
}
/* A wide phone window still needs room for the controls beside the game. */
@media(max-width:1000px) and (max-height:700px) and (orientation:landscape){
 body.training-playing .shell{padding:max(4px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
 body.training-playing #training-content{height:calc(100dvh - max(4px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom)));grid-template-rows:44px auto minmax(0,1fr)}
 body.training-playing .training-stage{height:auto;min-height:0;display:flex;flex-direction:column}
 body.training-playing #training-canvas{min-height:0;height:0;flex:1;object-fit:contain}
 body.training-playing .simon-pad{flex-shrink:0}
 body.training-playing .training-controls{min-height:0}
}
