*{box-sizing:border-box}body{color:#1c1f23;background:#f5f6f7;margin:0;font:15px/1.6 Microsoft YaHei,PingFang SC,Noto Sans SC,sans-serif}main{max-width:1400px;margin:0 auto;padding:16px}main.narrow{max-width:720px}h1{margin:8px 0;font-size:22px}h2{margin:0 0 8px;font-size:16px}h3{margin:12px 0 4px;font-size:14px}.card{background:#fff;border:1px solid #dfe2e6;border-radius:6px;margin:12px 0;padding:12px 14px}label{margin:12px 0 4px;font-weight:600;display:block}textarea{width:100%;font:inherit;padding:8px}button{font:inherit;cursor:pointer;padding:4px 10px}button.primary{margin-top:16px;padding:8px 20px;font-weight:600;display:block}.preview img{max-width:100%;max-height:320px;margin:8px 0;display:block}.source-image{border:1px solid #dfe2e6;max-width:100%;max-height:480px;margin:8px 0;display:block}.error{color:#b42318}.status{font-weight:600}.note{color:#5b636d;font-size:13px}.formula{font-variant-numeric:tabular-nums;margin:4px 0}pre{white-space:pre-wrap;font-size:12px;overflow-x:auto}.player{grid-template-columns:minmax(0,1fr) 380px;gap:16px;margin:12px 0;display:grid}aside .card:first-child{margin-top:0}.stage{aspect-ratio:16/9;cursor:pointer;background:#10151c;position:relative;overflow:hidden}.stage video{width:100%;height:100%;display:block}.waiting{color:#c6ccd3;text-align:center;justify-content:center;align-items:center;height:100%;padding:16px;display:flex}.stage.waiting{height:auto}.hit{background:0 0;border:1px dashed #ffffff73;padding:0;position:absolute}.hit:hover,.hit:focus-visible{background:#ffffff1f}.hit.selected{background:#ff7a592e;border:2px solid #ff7a59}.phases{gap:2px;margin-top:8px;display:flex}.phases span{text-align:center;white-space:nowrap;background:#e6e8eb;flex:1 1 0;font-size:12px;overflow:hidden}input[type=range]{width:100%;margin:4px 0;display:block}.controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;border-top:1px solid #eceef0;padding:2px 4px}td.value{text-align:right;white-space:nowrap}.steps{max-height:360px;margin:0;padding:0;list-style:none;overflow-y:auto}.steps button{text-align:left;background:0 0;border:0;border-left:3px solid #0000;width:100%;padding:6px 8px;display:block}.steps button.active{background:#fff6d9;border-left-color:#e0a800}.steps small{color:#5b636d}@media (max-width:960px){.player{grid-template-columns:minmax(0,1fr)}}input:not([type]){width:100%;max-width:320px;font:inherit;padding:6px 8px}
