.play-page{padding-block:34px 60px;max-width:760px}.play-intro h1{font-size:34px;margin-top:10px}
.play-notice{margin-top:18px;padding:16px 20px;background:var(--white);border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:3px}.play-notice h2{font-size:16px;line-height:1.6;letter-spacing:0}.play-notice ol{margin:8px 0 0;padding-left:20px;font-size:14px;line-height:1.9;color:var(--body)}.play-notice li+li{margin-top:6px}.play-notice strong{font-weight:650;color:var(--ink)}
.racing{margin-top:26px;background:var(--white);border:1px solid var(--line);border-radius:4px;padding:20px 22px 22px;scroll-margin-top:100px}.racing-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px}.racing-head h2{font-size:21px}.racing-head span{font-size:12px;color:var(--muted);white-space:nowrap}
#racing-msg{margin-top:8px;min-height:84px;font-size:14px;line-height:1.85;color:var(--body)}#racing-canvas{display:block;width:100%;height:auto;margin-top:10px;border:1px solid var(--line);border-radius:3px;background:var(--paper);touch-action:none}
.racing-bar{height:6px;margin-top:10px;background:var(--soft);border-radius:3px;overflow:hidden}.racing-bar span{display:block;width:0;height:100%;background:var(--ink)}
.racing-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12px;color:var(--muted)}.racing-legend i{display:inline-block;width:12px;height:12px;margin-right:6px;border-radius:2px;vertical-align:-2px}#racing-status{margin-left:auto}
.racing-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:9px;margin-top:14px}.racing-controls button{min-height:54px;border:1px solid #b7c0b1;background:var(--white);border-radius:3px;font-size:14px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.racing-controls button:active{background:var(--soft)}.racing-controls #racing-next{background:var(--ink);border-color:var(--ink);color:var(--white)}
.racing-end{margin-top:22px;background:#e9ede3;border:1px solid #dce2d4;border-radius:4px;padding:22px;scroll-margin-top:100px}.racing-end h2{font-size:21px}.racing-end p{margin-top:10px;font-size:14px;line-height:1.9;color:var(--body)}.racing-end h3{margin-top:18px;font-size:14px}.racing-end ul{margin:8px 0 0;padding-left:20px;font-size:14px;line-height:2.1}.racing-end a{text-decoration:underline;text-underline-offset:4px}.racing-end a:hover{color:var(--orange)}.racing-end button{margin-top:18px;min-height:44px;padding:8px 18px;border:1px solid var(--ink);background:transparent;border-radius:3px;font-size:13px}
@media(max-width:620px){.play-page{padding-block:20px 40px}.play-intro h1{font-size:26px}.play-notice{margin-top:14px;padding:13px 14px}.play-notice ol{padding-left:18px}.racing{margin-top:16px;padding:14px 13px 15px;scroll-margin-top:125px}#racing-msg{min-height:112px}.racing-controls{grid-template-columns:1fr 1fr}.racing-controls button{min-height:60px}}
