:root{color-scheme:dark;--bg:#09131d;--surface:#101f2c;--line:#294252;--ink:#e5eef3;--muted:#9ab0bf;--accent:#86d3ce;font:15px/1.7 "Microsoft YaHei","PingFang SC",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}.masthead{height:76px;max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);font-size:13px}.brand{font-weight:750;color:var(--accent);letter-spacing:.08em;font-size:25px}.brand span{font-size:15px;color:var(--ink)}main{max-width:1440px;margin:auto;padding:36px 32px}.intro{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-bottom:26px}.eyebrow{font:11px/1.6 ui-monospace,Consolas,monospace;letter-spacing:.18em;color:var(--accent);margin:0 0 8px}h1{font-size:32px;line-height:1.4;margin:0 0 12px;letter-spacing:.03em}h1 span{font-size:20px;color:var(--muted);margin-left:18px;font-weight:400}.intro p:last-child{color:var(--muted);max-width:740px;font-size:14px;margin:0}.download{flex-shrink:0;padding:12px 20px;border:1px solid var(--line);border-radius:7px;color:var(--accent);font-size:14px}.download small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.player{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#071018}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;background:var(--surface);font-size:12px}.provenance{font-weight:600;white-space:nowrap}.provenance b{display:inline-block;margin-left:10px;color:var(--accent);font-size:11px;font-weight:500;border-left:1px solid var(--line);padding-left:10px}.tools{display:flex;align-items:center;gap:12px;color:var(--muted)}.tools label{display:flex;align-items:center;gap:8px}.tools button,.tools select{border:1px solid #355060;border-radius:5px;background:#152937;color:var(--ink);padding:5px 10px;font-size:12px}.tools button:hover{border-color:var(--accent)}.stage{aspect-ratio:16/10;position:relative;width:100%;background:#050c13;overflow:hidden}.stage canvas{width:100%;height:100%;display:block;outline:none}.cover,.loading,.error{position:absolute;inset:0}.cover img{width:100%;height:100%;object-fit:cover;opacity:.76}.cover:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,14,23,.97),rgba(5,14,23,.15) 75%);pointer-events:none}.cover-copy{position:absolute;bottom:8%;left:6%;right:6%;z-index:1}.tag{color:#afd5df;font:11px ui-monospace,Consolas,monospace;letter-spacing:.14em}.cover h2{font-size:clamp(20px,2.6vw,38px);font-weight:600;line-height:1.4;margin:14px 0 12px}.cover p{font-size:13px;color:#bfd0da}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;border:0;border-radius:5px;background:var(--accent);color:#0c282c;padding:13px 22px;font-size:15px;font-weight:700}.primary:hover{background:#abe5df}.mobile-note{display:none}.loading,.error{background:#0c1925;display:flex;justify-content:center;flex-direction:column;padding:10%;z-index:3}.loading h2,.error h2{font-size:clamp(20px,2.5vw,30px);font-weight:500}.progress-row{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:13px}.progress-row strong{color:var(--accent);font:25px ui-monospace,monospace}progress{width:100%;height:7px;border:0;background:#203441;accent-color:var(--accent);margin:20px 0}progress::-webkit-progress-bar{background:#203441;border-radius:9px}progress::-webkit-progress-value{background:var(--accent);border-radius:9px}progress::-moz-progress-bar{background:var(--accent);border-radius:9px}.loading p,.error p{color:var(--muted);font-size:13px}.error div{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.status-line{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:11px;padding:9px 18px;border-top:1px solid var(--line)}.guide{border-bottom:1px solid var(--line);padding:14px 0;font-size:12px;color:var(--muted)}.guide p{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.guide strong{color:var(--ink);margin-right:6px}.guide span{display:inline-flex;gap:6px;align-items:center}kbd{display:inline-block;font:11px ui-monospace,monospace;min-width:21px;text-align:center;padding:1px 5px;border:1px solid var(--line);border-radius:4px;color:var(--ink)}footer{font-size:11px;color:var(--muted);padding:22px 0}footer a{color:var(--accent)}.player:fullscreen{border:0;border-radius:0;width:100%;height:100%;display:flex;flex-direction:column;background:#050c13}.player:fullscreen .toolbar{flex-shrink:0}.player:fullscreen .stage{flex:1;min-height:0;aspect-ratio:auto;display:flex;justify-content:center;align-items:center}.player:fullscreen canvas{width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:16/10;object-fit:contain}.player:fullscreen .status-line{flex-shrink:0}@media(min-aspect-ratio:16/10){.player:fullscreen canvas{height:100%;width:auto}}@media(max-width:720px){main{padding:24px 14px}.masthead{height:64px;padding:0 16px}.intro{display:block}h1{font-size:27px}h1 span{font-size:15px;margin-left:12px}.download{display:inline-block;margin-top:18px;padding:8px 14px}.download small{display:inline;margin-left:10px}.toolbar{padding:10px;flex-wrap:wrap}.tools{gap:8px;width:100%;justify-content:space-between}.cover-copy{bottom:7%;left:6%;right:6%}.cover h2{font-size:21px;margin:8px 0}.cover p{font-size:11px;line-height:1.5;margin:8px 0}.primary{font-size:13px;padding:10px 16px}.tag{font-size:9px}.mobile-note{display:block}.status-line{font-size:10px;padding:8px 10px}.status-line span:last-child{display:none}.stage{min-height:280px}.stage canvas{object-fit:contain}.loading,.error{padding:7%}.loading h2{font-size:20px;margin:8px 0}.progress-row{font-size:11px}.guide p{gap:10px}footer{line-height:1.9}.player:fullscreen .tools{width:auto}.player:fullscreen .toolbar{flex-wrap:nowrap}.player:fullscreen .provenance{font-size:10px}.player:fullscreen .provenance b{display:none}}
.stage canvas{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.stage.is-running{min-height:0}
