:root{color-scheme:dark;--bg:#10251f;--surface:#18372c;--surface2:#1c4033;--line:#456c56;--gold:#edcb83;--ivory:#f8f5e9;--muted:#b3c4b6;--track:#558a60;font-family:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-width:0;min-height:100%;background:radial-gradient(ellipse at 50% -12%,#2b513b 0%,var(--bg) 65%);color:var(--ivory);overflow-x:hidden}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #f6e2ab;outline-offset:3px}.hidden{display:none!important}.app{width:min(100%,520px);min-height:100svh;margin:0 auto;padding:0 12px 22px}.masthead{padding:15px 4px 10px;border-bottom:1px solid #52715d}.series,.eyebrow{font-size:10px;font-weight:800;letter-spacing:.15em;color:var(--gold)}.series span{color:var(--ivory)}.brand{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand h1{font-family:Georgia,"Yu Mincho",serif;font-size:42px;letter-spacing:.13em;font-weight:900;line-height:1.19;margin:4px 0}.brand-right{text-align:right;display:flex;flex-direction:column;gap:2px}.brand-right strong{font-size:15px;letter-spacing:.16em}.brand-right span{font-size:8px;letter-spacing:.1em;color:var(--muted)}.screen{padding-top:13px}.entry-top{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}.entry-top h2,.result-heading h2{margin:2px 0 0;font-size:22px;letter-spacing:.05em}.race-mark{font-size:11px;border:1px solid var(--line);border-radius:4px;padding:6px 10px;flex-shrink:0}.entry-help{font-size:12px;line-height:1.65;color:#ccd4c7;margin:9px 0 12px}.entry-list,.result-list{display:grid;gap:7px}.entry-card{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;min-height:65px;padding:8px 9px;background:linear-gradient(110deg,#214433,#173126);border:1px solid #3c654e;border-radius:7px}.entry-card.yours{border-color:var(--gold);background:linear-gradient(120deg,#4c4730,#27372c)}.gate-badge{width:27px;height:29px;display:grid;place-items:center;border-radius:3px;font-size:14px;font-weight:900;text-shadow:0 1px 2px #3338;border:1px solid #ffffff48}.gate-1{background:#fafafa;color:#141414;text-shadow:none}.gate-2{background:#1b2223;color:white}.gate-3{background:#d44337;color:white}.gate-4{background:#2761c3;color:white}.gate-5{background:#e4c131;color:#171717;text-shadow:none}.gate-6{background:#208550;color:white}.gate-7{background:#e27d34;color:white}.gate-8{background:#e489a9;color:#24121a;text-shadow:none}.entry-name{font-size:15px;font-weight:850;letter-spacing:.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.horse-meta{font-size:10px;color:#c5d7c5;margin-top:2px}.rank-strip{display:flex;gap:5px 9px;flex-wrap:wrap;margin-top:5px}.rank-strip span{font-size:9px;color:#becbbf;white-space:nowrap}.rank-strip b{font-size:11px;color:#f6e4ab;margin-left:2px}.select-panel{margin-top:13px;padding:12px;background:#142f25;border:1px solid #a68d57;border-radius:8px}.select-line{display:flex;align-items:center;gap:8px;justify-content:space-between;margin:6px 0}.select-line strong{font-size:clamp(14px,4.4vw,19px);letter-spacing:.025em;overflow-wrap:anywhere;line-height:1.45}.random-button{padding:9px 10px;border:1px solid #b8ab87;border-radius:5px;background:#36482e;color:#fff6df;font-size:12px;font-weight:800;flex-shrink:0}.pick-summary{font-size:11px;color:#e7e8cf;margin-bottom:10px;min-height:20px}.primary-button,.secondary-button{width:100%;padding:14px 10px;border-radius:6px;font-weight:850;letter-spacing:.08em}.primary-button{background:var(--gold);color:#222d21;border:0;box-shadow:0 4px 0 #937645}.primary-button:active{transform:translateY(3px);box-shadow:0 1px 0 #937645}.primary-button span{margin-left:5px}.secondary-button{background:#224133;color:white;border:1px solid #6f8877}.entry-footnote{font-size:10px;line-height:1.6;color:#9cb09f;text-align:center;margin:12px auto}.race-screen{padding-top:9px}.race-title{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 8px}.live-tag{font-weight:900;letter-spacing:.12em;color:#f9d899;border:1px solid #8f8761;border-radius:3px;padding:4px 7px;font-size:10px}.track-holder{position:relative;background:#1b5036;border-radius:7px;overflow:hidden;border:1px solid #638c67}.track-holder canvas{display:block;width:100%;height:auto;aspect-ratio:840/820}.overlay-text{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);background:#0d261edc;color:#ffe7a8;border:1px solid #d5b477;padding:11px 17px;border-radius:5px;max-width:90%;width:max-content;font-size:15px;font-weight:850;letter-spacing:.08em;box-shadow:0 8px 26px #0c161b70;text-align:center;pointer-events:none}.commentary{display:flex;align-items:center;gap:8px;margin-top:7px;border:1px solid #668869;background:#1e4030;min-height:44px;border-radius:5px;padding:6px 9px}.commentary-label{font-size:11px;font-weight:900;color:var(--gold);border-right:1px solid #8c9c85;padding-right:8px;flex:none}.commentary span:last-child{font-size:clamp(10px,2.7vw,13px);line-height:1.5;min-width:0;font-weight:700}.race-controls{position:sticky;bottom:0;padding:8px 2px max(8px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#10251fef,#10251f 18%);z-index:3}.meters{display:grid;gap:8px;margin:4px 0 12px}.meter-line{display:grid;grid-template-columns:65px 1fr;align-items:center;gap:9px}.meter-line>span{font-size:11px;color:#d7e0d1;font-weight:800}.meter{height:11px;border-radius:30px;background:#0a1a16;border:1px solid #567360;overflow:hidden}.fill{width:100%;height:100%;transition:width .09s linear}.stamina-fill{background:linear-gradient(90deg,#a59f44,#e2ce72)}.health-fill{background:linear-gradient(90deg,#b64d3f,#e59d75)}.whip-button{width:100%;min-height:66px;display:flex;justify-content:center;align-items:center;gap:12px;background:linear-gradient(180deg,#f5d58b,#d4a954);color:#302412;border:2px solid #ffe6a5;border-radius:10px;font-weight:950;font-size:25px;box-shadow:0 5px 0 #886b3a;touch-action:manipulation;user-select:none}.whip-button span{font-size:25px}.whip-button small{font-size:10px;font-weight:750;letter-spacing:0}.whip-button:active,.whip-button.pressed{transform:translateY(3px);box-shadow:0 2px 0 #886b3a}.whip-button:disabled{opacity:.45;cursor:default}.result-heading{text-align:center;padding:9px 0 12px}.result-heading h2{font-size:29px;margin:3px 0}.result-heading p{font-size:12px;color:#d9dfd4;margin:8px 0 0}.result-row{display:grid;grid-template-columns:25px 25px minmax(0,1fr);align-items:start;gap:6px;padding:9px 7px;background:#1a372b;border:1px solid #4b6952;border-radius:6px}.result-row.player{background:#4a442d;border-color:#e3bd71}.placement{font-size:20px;color:#f5d38b;font-weight:900;line-height:1.4;text-align:center}.result-name{font-size:13px;font-weight:850;overflow-wrap:anywhere}.result-remaining{font-size:11px;color:#cfd4c9;margin-top:3px;overflow-wrap:anywhere}.result-remaining b{color:#ffe1a0}.result-meters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.result-meter{height:5px;border-radius:9px;background:#0e201b;overflow:hidden}.result-meter i{display:block;height:100%;background:#d3bf6d}.result-meter.health i{background:#d57a65}.player-pill{display:inline-block;color:#201d13;background:#f4d58b;font-size:9px;border-radius:3px;padding:1px 5px;vertical-align:2px;margin-left:6px}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.results .primary-button,.results .secondary-button{padding:13px 2px;font-size:12px}.results .primary-button{box-shadow:none}footer{font-size:9px;color:#84a38e;text-align:center;margin:23px 0 0;letter-spacing:.06em}footer span{margin:0 4px}
@media (max-width:359px){.app{padding:0 8px 16px}.brand h1{font-size:35px}.entry-card{padding:7px;gap:6px;grid-template-columns:27px minmax(0,1fr)}.rank-strip{gap:4px 6px}.rank-strip span{font-size:8px}.entry-name{font-size:14px}.race-controls{padding-bottom:max(6px,env(safe-area-inset-bottom))}.whip-button{min-height:61px}}
@media(min-width:470px){.entry-list{grid-template-columns:1fr 1fr}.entry-card{grid-template-columns:28px minmax(0,1fr)}.entry-name{font-size:13px}.rank-strip{gap:5px}.race-title{margin-top:6px}}
@media(prefers-reduced-motion:reduce){.fill{transition:none}}

.results.champion .result-heading h2{color:#ffdfa0;text-shadow:0 0 24px #ffd77a55}
