:root{--ink:#253332;--muted:#6c7773;--paper:#edf1eb;--orange:#ef6339;--line:rgba(37,51,50,.16);font-family:Inter,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:5px}button:disabled{cursor:wait}button:active{transform:translateY(1px)}button svg{width:22px;height:22px;flex:none}button{touch-action:manipulation}#app{position:relative;min-height:760px;height:100svh;overflow:hidden}#scene{position:absolute;inset:0;cursor:grab;touch-action:none}#scene:active{cursor:grabbing}#scene canvas{display:block;width:100%;height:100%}.masthead{position:absolute;inset:24px 36px auto;display:flex;justify-content:space-between;align-items:center;z-index:3}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:13px;font-weight:800;letter-spacing:2px;line-height:1.35}.brand b{font-size:12px;font-weight:500;letter-spacing:1px}.brand-mark{font-size:37px;line-height:39px;letter-spacing:-5px;font-weight:900;border:2px solid var(--ink);padding:0 8px 0 4px;border-radius:50%;width:43px;height:43px;position:relative}.brand-mark span{position:absolute;font-size:16px;letter-spacing:0;right:-5px;top:-8px;background:var(--paper);line-height:14px}.header-right{display:flex;align-items:center;gap:8px}.edition{font:12px "Courier New",monospace;letter-spacing:1.4px;margin-right:18px}.icon-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);background:transparent;border-radius:50%;color:var(--ink);transition:background .2s}.icon-btn:hover{background:#fff9}.scene-title{position:absolute;left:38px;top:119px;pointer-events:none}.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:1px}.tag{background:var(--orange);color:white;font-size:12px;font-weight:700;padding:5px 8px;letter-spacing:1px}.scene-title h1{margin:15px 0 9px;font-size:54px;font-weight:900;letter-spacing:-3px;line-height:1.1}.scene-title h1 span{font-weight:400;margin-left:5px;letter-spacing:-2px}.scene-title i{font-style:normal;font:15px sans-serif;vertical-align:top;margin-left:8px;letter-spacing:0}.scene-title p{font-size:15px;color:var(--muted);letter-spacing:1.5px;margin:13px 0}.vehicle-label{position:absolute;right:38px;top:126px;text-align:right;pointer-events:none}.micro{font:12px "Courier New",monospace;letter-spacing:1.5px;color:var(--muted)}.vehicle-label h2{font-size:29px;font-weight:500;letter-spacing:-1px;margin:8px 0 13px}.vehicle-label>div{font-size:13px;display:flex;justify-content:flex-end;align-items:center;gap:8px}.small-line{height:1px;width:20px;background:var(--ink)}.rank{border:1px solid var(--line);font-size:12px;padding:2px 4px;color:var(--muted)}.speech{position:absolute;top:38%;left:58%;z-index:2;max-width:240px;background:#fffdf6;color:var(--ink);border:1px solid #c7cdc4;border-radius:14px 14px 14px 2px;padding:13px 18px;box-shadow:0 4px 0 #26362b09;font-size:14px;transform:translate(-50%,-100%);opacity:0;transition:opacity .25s,margin-top .25s;pointer-events:none;white-space:nowrap}.speech.visible{opacity:1;margin-top:-7px}.view-hint{position:absolute;bottom:183px;left:38px;display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px;pointer-events:none}.view-hint svg{width:20px;height:24px}.view-hint b{font-weight:400;margin:0 5px}.field-number{position:absolute;right:32px;bottom:153px;font-size:94px;font-weight:200;letter-spacing:-5px;color:#25333214;line-height:1;pointer-events:none}.cockpit{position:absolute;bottom:48px;left:30px;right:30px;z-index:3;background:#253332;color:#e9eee7;border-radius:14px;padding:22px 25px;display:flex;align-items:center;gap:27px;box-shadow:0 12px 30px #23352a1a}.drive-control{display:flex;align-items:center;gap:24px}.drive-button{border:0;background:#e9eee7;color:#253332;border-radius:7px;padding:14px 17px;display:flex;align-items:center;gap:8px;font-weight:650;font-size:14px;white-space:nowrap;min-width:133px;justify-content:center}.drive-button:hover{background:white}.drive-button[aria-pressed=true]{background:#cbd6bc}.drive-button svg{width:18px;height:18px}.speed{display:flex;gap:7px;align-items:center;min-width:100px}.speed>span:first-child{font:44px/1 "Courier New",monospace;letter-spacing:-4px;min-width:54px}.speed-unit{font:12px/1.65 "Courier New",monospace;color:#bcc9c2}.speed-unit b{font-size:12px;font-weight:400;white-space:nowrap}.controls-divider{width:1px;height:48px;background:#fff2}.control-label{font-size:12px;display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;color:#dce5df;gap:15px}.control-label small{font:12px "Courier New",monospace;letter-spacing:1px;color:#8eaaa0}.button-row{display:flex;gap:5px}.key-button{width:30px;height:30px;border:1px solid #ffffff30;background:#ffffff07;border-radius:5px;color:#e9eee7;font-size:18px;line-height:1}.key-button:hover,.key-button.pressed{background:#e9eee7;color:#253332}.turret-control{flex:1;min-width:130px;max-width:220px}.control-label output{font:12px "Courier New",monospace;color:#c3cec8}.turret-control input{margin:0;width:100%;height:18px;accent-color:#ed714c;cursor:ew-resize}.range-labels{display:flex;justify-content:space-between;font:12px "Courier New",monospace;color:#a4b7ae;margin-top:1px}.honk-button{border:0;background:transparent;color:#e9eee7;padding:4px 3px;display:flex;align-items:center;flex-direction:column;gap:5px;white-space:nowrap}.honk-button>span{font-weight:600;font-size:23px}.honk-button small{font-size:12px;color:#afc0b7}.honk-button:hover{color:#ffad68}.fire-button{display:flex;align-items:center;justify-content:center;gap:10px;border:0;background:var(--orange);color:white;border-radius:8px;height:59px;padding:0 24px;font-size:15px;font-weight:700;min-width:165px;white-space:nowrap}.fire-button:hover{background:#fa7748}.fire-button:disabled{background:#a15d44}.fire-button kbd{font:12px "Courier New",monospace;border:1px solid #ffffff60;border-radius:3px;padding:3px 4px}.fire-button svg{width:23px;height:23px}footer{position:absolute;left:36px;right:36px;bottom:18px;display:flex;justify-content:space-between;color:#76807a;font:12px "Courier New",monospace;letter-spacing:1px;z-index:2}.footer-dash{margin:0 7px}.loading{position:absolute;inset:0;background:var(--paper);display:grid;align-content:center;justify-items:center;gap:14px;z-index:5;transition:opacity .3s}.loading span{width:30px;height:30px;border:2px solid #ccd3c9;border-top-color:var(--orange);border-radius:50%;animation:spin 1s linear infinite}.loading p{font-size:14px;color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.loading.done{opacity:0;pointer-events:none}.error{position:absolute;inset:0;background:var(--paper);padding:30px;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:6;text-align:center}.error[hidden]{display:none}.error p{font-size:16px;line-height:1.7}.error button{background:var(--orange);border:0;padding:14px 24px;border-radius:8px;color:white;font-size:16px}.error h2{font-size:24px}.pulse{animation:pulse .24s ease-in-out}@keyframes pulse{50%{transform:scale(.95)}}
@media(min-width:1600px){.cockpit{max-width:1330px;left:50%;right:auto;transform:translateX(-50%);width:calc(100% - 100px);justify-content:space-between}.scene-title{top:140px;left:55px}.scene-title h1{font-size:66px}.masthead{left:55px;right:55px}.vehicle-label{right:55px;top:147px}}
@media(max-width:1150px){.cockpit{gap:17px;padding:20px}.drive-control{gap:15px}.speed{min-width:82px}.drive-button{min-width:110px;padding:14px 12px}.controls-divider{display:none}.fire-button{min-width:130px;padding:0 17px}.fire-button kbd{display:none}.honk-button{margin-left:3px}.scene-title h1{font-size:48px}}
@media(max-width:900px){.cockpit{gap:16px;flex-wrap:wrap;justify-content:space-between;bottom:43px;left:20px;right:20px;padding:18px 20px}.drive-control{flex:1;gap:20px}.turret-control{max-width:none;min-width:165px;flex:1}.steering{order:4;width:140px}.turret-control{order:5;width:35%;flex:none}.honk-button{order:6;width:75px}.fire-button{order:3;min-width:145px}.view-hint{bottom:245px;left:25px}.field-number{bottom:232px}.scene-title{left:26px;top:110px}.vehicle-label{right:26px;top:116px}.masthead{left:25px;right:25px}.speech{top:40%}.vehicle-label h2{font-size:23px}}
@media(max-width:600px){#app{min-height:740px}.masthead{inset:20px 20px auto}.brand{font-size:12px;letter-spacing:1.3px;gap:8px}.brand b{font-size:12px}.brand-mark{transform:scale(.85);transform-origin:left center;margin-right:-4px}.edition{display:none}.icon-btn{width:35px;height:35px}.icon-btn svg{width:18px;height:18px}.scene-title{top:100px;left:23px}.eyebrow{font-size:12px;gap:9px;letter-spacing:.5px}.tag{font-size:12px;padding:4px 6px}.scene-title h1{font-size:37px;letter-spacing:-2px;margin-top:13px}.scene-title h1 span{letter-spacing:-1px}.scene-title h1 i{font-size:12px;margin-left:5px}.scene-title p{font-size:12px;letter-spacing:.7px;margin-top:11px}.vehicle-label{top:220px;left:24px;right:auto;text-align:left}.vehicle-label h2{font-size:17px;margin:5px 0}.vehicle-label>div{display:none}.vehicle-label .micro{font-size:12px;letter-spacing:1px}.cockpit{left:14px;right:14px;padding:15px 14px;gap:16px 10px;bottom:44px;border-radius:12px}.drive-control{gap:12px}.drive-button{min-width:115px;padding:13px 11px;font-size:13px}.drive-button svg{width:15px;height:15px}.speed{min-width:72px;gap:5px}.speed>span:first-child{font-size:32px;min-width:36px;letter-spacing:-3px}.speed-unit{font-size:12px}.speed-unit b{font-size:12px}.fire-button{min-width:97px;height:45px;padding:0 12px;font-size:13px;gap:7px}.fire-button svg{width:17px;height:17px}.steering{width:132px}.control-label{font-size:12px;gap:8px}.control-label small{font-size:12px;letter-spacing:.5px}.key-button{width:29px;height:31px}.turret-control{min-width:90px;width:calc(100% - 206px)}.honk-button{width:53px;gap:6px}.honk-button>span{font-size:21px}.honk-button small{font-size:12px}.range-labels{font-size:12px}.view-hint{bottom:250px;left:24px;font-size:12px;gap:6px}.view-hint svg{width:16px;height:20px}.field-number{right:20px;bottom:245px;font-size:61px}.speech{left:58%;top:40%;font-size:12px;padding:10px 12px;max-width:190px}footer{left:22px;right:22px;bottom:18px;font-size:12px;letter-spacing:.6px}.footer-dash{margin:0 3px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

@media(max-width:380px){.drive-button{min-width:96px;font-size:12px;padding:13px 7px;gap:5px}.drive-control{gap:8px}.speed{min-width:76px}.fire-button{min-width:90px;padding:0 10px}.honk-button small{font-size:12px;white-space:normal;text-align:center}.turret-control{width:calc(100% - 196px);min-width:75px}.cockpit{gap:14px 8px}.steering{width:129px}.control-label small{display:none}.footer-dash{display:none}footer{font-size:10px}}
