:root{color:#20343b;font-synthesis:none;-webkit-font-smoothing:antialiased;--orange:#dc5127;--ink:#20343b;--muted:#576970;--line:#d4dee2;background:#edf2f4;font-family:ui-rounded,SF Pro Rounded,-apple-system,BlinkMacSystemFont,PingFang TC,Noto Sans TC,sans-serif;font-weight:500}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,input:focus-visible{outline-offset:4px;outline:3px solid #176b91}button{touch-action:manipulation}button:active:not(:disabled){transform:scale(.98)}[hidden]{display:none!important}#app{width:min(1280px,100%);margin:auto;padding:36px 36px 20px}.page-head{justify-content:space-between;align-items:center;gap:28px;margin-bottom:28px;display:flex}.title-lockup{align-items:center;gap:17px;display:flex}.brand-mark{background:#f17b51;border-radius:16px;place-items:center;width:62px;height:70px;display:grid;transform:rotate(-7deg)}.brand-mark svg{fill:none;stroke:#fff;stroke-width:2.2px;stroke-linejoin:round;width:36px}.eyebrow{letter-spacing:.13em;color:var(--muted);margin:0 0 7px;font-size:12px;font-weight:650}h1{letter-spacing:-.05em;margin:0;font-size:38px;font-weight:900;line-height:1.12}h1 span{color:var(--orange)}.mission{color:var(--muted);margin:0;font-size:15px;line-height:1.7}.game-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:stretch;gap:28px;display:grid}.stage{isolation:isolate;background:#dfe9ed;border:1px solid #d3dfe4;border-radius:22px;min-width:0;min-height:600px;position:relative;overflow:hidden}#scene{position:absolute;inset:0}#scene canvas{outline:none;width:100%;height:100%;display:block}.stage-hud{z-index:2;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:23px;left:24px;right:24px}.milk-hud{align-items:center;gap:10px;display:flex}.milk-hud>svg{fill:#f9fcfd;stroke:#20343b;stroke-width:1.5px;width:25px;height:30px}.milk-hud div>span{color:#526971;letter-spacing:.05em;font-size:11px;display:block}.milk-hud strong{letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:850;line-height:1.2}.milk-hud strong span{margin-left:2px;font-size:15px}.run-badge{letter-spacing:.03em;color:#415d67;background:#ecf3f5;border:1px solid #b5c8d0;border-radius:20px;padding:8px 13px;font-size:12px}.run-badge.running{color:#fff;background:#203e47;border-color:#203e47}.run-badge.failed{color:#9e391b;background:#fff1e9;border-color:#d9987c}.run-badge.passed{color:#226344;background:#e4f2e9;border-color:#92b7a0}.scene-message{text-align:center;z-index:4;background:#dfe9ed;flex-direction:column;justify-content:center;align-items:center;padding:28px;display:flex;position:absolute;inset:0}.scene-message strong{font-size:20px}.scene-message p{color:var(--muted);font-size:14px;line-height:1.7}.scene-message button{background:var(--ink);color:#fff;border:0;border-radius:12px;min-height:44px;padding:14px 28px}.live-message{z-index:2;text-align:center;pointer-events:none;letter-spacing:-.02em;color:#ac3d1e;text-shadow:0 2px 10px #edf2f4;font-size:20px;font-weight:850;position:absolute;bottom:62px;left:16px;right:16px}.route{letter-spacing:.04em;color:#4c656e;pointer-events:none;justify-content:space-between;gap:12px;padding-top:12px;font-size:11px;display:flex;position:absolute;bottom:23px;left:26px;right:26px}.route-line{background:#b4c8cf;border-radius:3px;height:3px;position:absolute;top:0;left:0;right:0;overflow:hidden}.route-line i{transform-origin:0;background:#d64f26;width:100%;height:100%;display:block;transform:scaleX(0)}.route span:nth-of-type(2){position:absolute;left:38%;transform:translate(-50%)}.tuning{flex-direction:column;min-width:0;padding:8px 0 0;display:flex}.tuning-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tuning-head h2{letter-spacing:-.04em;margin:0;font-size:22px}.tuning-head>span{color:var(--muted);letter-spacing:.09em;font-size:11px}.tuning-intro{color:var(--muted);margin:10px 0 23px;font-size:13px;line-height:1.6}.run-options{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px;display:grid}.choice-row{background:#e1e9ec;border-radius:12px;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:9px;padding:3px;display:grid}.choice-row label{display:block;position:relative}.choice-row input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.choice-row span{color:#4d656e;border-radius:9px;place-items:center;min-height:44px;font-size:14px;font-weight:700;transition:background .15s ease-out,color .15s ease-out;display:grid}.choice-row input:checked+span{color:var(--ink);background:#fff;box-shadow:0 1px 3px #20343b1f}.choice-row input:focus-visible+span{outline-offset:2px;outline:2px solid #d65b33}.axles{gap:22px;display:grid}fieldset{border:0;border-top:1px solid var(--line);min-width:0;margin:0;padding:17px 0 0}legend{align-items:center;gap:7px;padding:0 8px 0 0;font-size:14px;font-weight:750;display:flex}.axle-icon{color:#b84625;font-size:17px;line-height:1}.axle-icon.rear{transform:rotate(180deg)}.setting+.setting{margin-top:11px}.setting label{color:#3e555f;justify-content:space-between;align-items:center;font-size:13px;display:flex}.setting output{font-variant-numeric:tabular-nums;color:var(--ink);text-align:right;min-width:26px;font-size:16px;font-weight:750}.setting input{appearance:none;cursor:pointer;touch-action:pan-y;background:0 0;width:100%;height:44px;margin:0;display:block}.setting input::-webkit-slider-runnable-track{background:var(--line);border-radius:8px;height:5px}.setting input::-moz-range-track{background:var(--line);border-radius:8px;height:5px}.setting input::-moz-range-progress{background:#d9643d;border-radius:8px;height:5px}.setting input::-webkit-slider-thumb{appearance:none;background:#edf2f4;border:6px solid #d65b33;border-radius:50%;width:23px;height:23px;margin-top:-9px;box-shadow:0 2px 3px #20343b16}.setting input::-moz-range-thumb{background:#edf2f4;border:6px solid #d65b33;border-radius:50%;width:12px;height:12px;box-shadow:0 2px 3px #20343b16}.range-ends{color:var(--muted);pointer-events:none;justify-content:space-between;margin-top:-6px;font-size:11px;display:flex}fieldset:disabled{opacity:.5}.actions{margin-top:auto;padding-top:25px}.start-button{color:#fff;background:#203e47;border:0;border-radius:13px;justify-content:center;align-items:center;gap:15px;width:100%;min-height:56px;font-size:17px;font-weight:750;transition:background .15s ease-out,transform .14s ease-out;display:flex}.start-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:21px}.start-button:disabled{background:#70868c}.reset-button{color:#4d656e;text-underline-offset:4px;background:0 0;border:0;min-height:44px;margin:6px auto 0;font-size:12px;text-decoration:underline;display:block}.reset-button:disabled{opacity:.45}.rule-note{color:var(--muted);text-align:center;margin:3px 0 0;font-size:11px}.result{border-top:1px solid var(--line);gap:11px;margin-top:20px;padding:15px 0;display:flex}.result h3{margin:0 0 6px;font-size:17px}.result p{color:#52666f;margin:0;font-size:13px;line-height:1.6}.result-mark{color:#9f381c;background:#e8d3c8;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.share-button{min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #b5c8d0;border-radius:12px;margin-top:12px;padding:0 18px;font-size:14px;font-weight:750}.share-links{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.share-links a,.share-links button{border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;background:#f6f9fa;border-radius:10px;place-items:center;padding:0 14px;font-size:13px;font-weight:700;text-decoration:none;display:inline-grid}@media (hover:hover) and (pointer:fine){.share-button:hover,.share-links a:hover,.share-links button:hover{color:#b84625;border-color:#d65b33}}.result.success .result-mark{color:#226344;background:#d3e8dc}.result.success h3{color:#226344}footer{color:#63757b;justify-content:space-between;gap:20px;margin-top:20px;font-size:11px;line-height:1.7;display:flex}@media (hover:hover) and (pointer:fine){.start-button:hover:not(:disabled){background:#2e5964}.reset-button:hover:not(:disabled){color:var(--orange)}}@media (min-width:1400px){#app{padding-top:50px}.stage{min-height:650px}.game-layout{grid-template-columns:minmax(0,1fr) 350px;gap:36px}.tuning{padding:16px 0}.axles{gap:28px}}@media (max-width:900px){#app{padding:24px 24px 18px}.game-layout{grid-template-columns:1fr;gap:24px}.stage{height:470px;min-height:0}.page-head{margin-bottom:22px}.tuning{padding:0}.axles{grid-template-columns:1fr 1fr;gap:30px}.tuning-intro{margin-bottom:18px}.actions{padding-top:22px}.start-button{min-height:54px}.tuning-head h2{font-size:21px}.reset-button{margin-top:3px}.result{margin-top:20px}.rule-note{margin-top:0}}@media (max-width:520px){#app{padding:19px 16px calc(16px + env(safe-area-inset-bottom))}.page-head{align-items:flex-end;gap:8px;margin-bottom:18px}.title-lockup{gap:10px}.brand-mark{border-radius:11px;width:41px;height:48px}.brand-mark svg{width:28px}h1{font-size:29px}.eyebrow{letter-spacing:.07em;margin-bottom:6px;font-size:10px}.mission{max-width:117px;margin-bottom:2px;font-size:11px;line-height:1.65}.desktop-break{display:none}.stage{border-radius:16px;height:360px}.stage-hud{top:16px;left:17px;right:16px}.milk-hud strong{font-size:26px}.milk-hud div>span{font-size:10px}.milk-hud>svg{width:22px}.run-badge{padding:7px 10px;font-size:11px}.route{font-size:10px;bottom:17px;left:20px;right:20px}.live-message{font-size:17px;bottom:58px}.game-layout{gap:20px}.tuning-head h2{font-size:20px}.tuning-intro{margin:8px 0 18px;font-size:12px}.axles{gap:24px}fieldset{padding-top:12px}legend{font-size:13px}.setting+.setting{margin-top:10px}.setting label{font-size:12px}.setting output{font-size:15px}.actions{padding-top:21px}.start-button{min-height:54px;font-size:16px}footer{gap:8px;margin-top:17px;font-size:10px}footer span:first-child{max-width:240px}}@media (max-width:374px){#app{padding-left:12px;padding-right:12px}.mission{max-width:105px;font-size:10px}.brand-mark{display:none}.stage{height:330px}.axles{gap:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}button:active:not(:disabled){transform:none}}
