:root{font-family:Arial,Helvetica,sans-serif;color:#09243e;background:#eef3f6;font-synthesis:none;font-size:16px;--navy:#08233f;--teal:#00b9b8;--border:#d7e2e8}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--border);border-radius:9px;padding:10px 13px;background:#fff;color:var(--navy);font-size:14px;min-height:42px;font-weight:600}button:hover:not(:disabled){background:#eefafa;border-color:#67c8ce}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--teal);color:#052c39;border-color:var(--teal)}.primary:hover:not(:disabled){background:#37d2cf}.dark{background:var(--navy);color:#fff}a{color:#086b83}header{background:var(--navy);color:#fff;padding:18px 26px;display:flex;align-items:center;justify-content:space-between;gap:16px}header .brand{font-size:24px;font-weight:800;letter-spacing:-1px}header .brand span{color:#29d1d0}header small{display:block;color:#c0d4e0;margin-top:5px;font-size:14px}header nav{display:flex;gap:12px;align-items:center;font-size:14px}header a{color:#d7f4f4}.private{border:1px solid #5b788e;border-radius:30px;padding:6px 12px;font-size:13px}.workspace{max-width:1700px;margin:auto;padding:20px 24px}.notice{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px;padding:12px 16px;border-left:3px solid #149eb0;background:#e0f2f6;font-size:14px;line-height:1.5}.layout{display:grid;grid-template-columns:minmax(0,1fr) 355px;gap:18px}.stage{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.stage-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;gap:12px}.stage h1{font-size:18px;margin:0}.stage-head small{font-size:13px;color:#4c6779}.canvas-wrap{position:relative;height:clamp(320px,53vh,610px);background:#eaf0f3}.canvas-wrap canvas{width:100%;height:100%;display:block;touch-action:none}.scene-label{position:absolute;top:14px;left:14px;background:#ffffffeb;border:1px solid var(--border);border-radius:7px;padding:7px 10px;font-size:13px;pointer-events:none}.fps{position:absolute;right:14px;top:14px;background:#08233fde;color:#fff;border-radius:7px;padding:7px 10px;font-size:13px;pointer-events:none}.split-labels{position:absolute;left:0;right:0;bottom:15px;display:flex;justify-content:space-around;pointer-events:none}.split-labels span{background:#08233fe8;color:#fff;padding:6px 12px;border-radius:20px;font-size:13px}.toolbar{display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:12px 16px;border-top:1px solid var(--border)}.toolbar button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}.toolbar .spacer{flex:1}.help{font-size:13px;color:#486477;padding:0 16px 14px;line-height:1.5}.dpad{position:absolute;bottom:20px;left:14px;display:grid;grid-template-columns:42px 42px 42px;gap:4px}.dpad button{padding:0;background:#ffffffed;touch-action:none}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1}.dpad button:nth-child(4){grid-column:3}.sidebar{display:flex;flex-direction:column;gap:12px}.panel{background:#fff;border:1px solid var(--border);border-radius:13px;padding:17px}.panel h2{font-size:16px;margin:0 0 12px;display:flex;gap:9px;align-items:center}.step{display:inline-grid;place-items:center;border-radius:50%;width:27px;height:27px;background:var(--navy);color:#fff;font-size:14px}.panel p{font-size:14px;line-height:1.5;margin:8px 0;color:#476073}.panel label{display:block;font-size:14px;font-weight:600;margin:12px 0 6px}.panel input:not([type=checkbox]),.panel select,.panel textarea{width:100%;border:1px solid #bdcdd7;border-radius:7px;padding:10px;color:var(--navy);background:#fff;font-size:14px}.panel input[type=file]{padding:8px;font-size:13px}.row{display:flex;gap:8px;flex-wrap:wrap}.full{width:100%;margin-top:10px}.source-preview{display:flex;gap:12px;margin-top:10px;align-items:center}.source-preview img{width:58px;height:58px;border-radius:7px;object-fit:cover;border:1px solid var(--border)}.source-preview span{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.pill{border-radius:20px;padding:5px 9px;background:#e7f3f4;color:#086775;display:inline-block;font-size:12px}.muted{color:#61798a}.hint{font-size:13px!important}.hidden,[hidden]{display:none!important}progress{width:100%;height:14px;accent-color:var(--teal);margin:10px 0}.progress-label{font-size:14px;line-height:1.5}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 18px;border-top:1px solid var(--border)}.metric{background:#f3f7f9;padding:12px;border-radius:9px}.metric h3{font-size:13px;font-weight:400;margin:0 0 6px;color:#456273}.metric strong{font-size:20px}.metric small{display:block;font-size:12px;margin-top:5px;color:#536f81}.history{margin-top:18px}.history-title{display:flex;align-items:center;justify-content:space-between}.history h2{font-size:18px;margin:0 0 12px}.history-list{display:flex;gap:10px;overflow:auto;padding-bottom:4px}.proposal{min-width:205px;text-align:left;border-radius:11px;padding:14px;background:#fff}.proposal strong,.proposal small{display:block}.proposal small{font-size:13px;font-weight:400;margin-top:7px;color:#536b7c}.proposal.selected{border:2px solid #00a4a7;padding:13px}.empty{padding:18px;border:1px dashed #bfced8;border-radius:12px;font-size:14px;color:#5b7182;background:#fff}.gate{max-width:600px;margin:12vh auto;padding:32px;border:1px solid var(--border);background:#fff;border-radius:16px;line-height:1.6}.gate h1{font-size:25px}.gate a{display:inline-block;padding:12px 16px;border-radius:8px;background:var(--navy);color:#fff;text-decoration:none}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);max-width:min(620px,90vw);padding:14px 20px;border-radius:10px;background:var(--navy);color:#fff;box-shadow:0 5px 30px #001b3840;z-index:10;font-size:14px;line-height:1.5}.toast.error{background:#922e38}.team{margin-top:18px}.team summary{font-size:15px;cursor:pointer;font-weight:600}.team details{line-height:1.6}.code{font-family:monospace;font-size:13px;overflow-wrap:anywhere}.footer{margin:20px 0 0;font-size:13px;color:#597487;line-height:1.6}.danger-text{color:#963939}#measure-result{font-size:14px;line-height:1.5;margin:0 18px 14px}.webgl-error{padding:30px;line-height:1.6}.busy{pointer-events:none;opacity:.6}@media (max-width:1000px){.layout{grid-template-columns:minmax(0,1fr) 315px}.workspace{padding:15px}.toolbar button{padding:8px 10px}.stage-head{align-items:flex-start;flex-direction:column}.private{display:none}}@media (max-width:750px){header{padding:16px;align-items:flex-start}header .brand{font-size:21px}header small{font-size:12px}header nav{flex-direction:column;align-items:flex-end;gap:7px;font-size:12px}.layout{display:flex;flex-direction:column}.canvas-wrap{height:370px}.workspace{padding:12px}.notice{font-size:13px}.sidebar{display:grid;grid-template-columns:1fr}.toolbar{padding:10px;gap:5px}.toolbar button{font-size:13px}.metrics{padding:10px}.gate{margin:30px 12px;padding:22px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}:root{scroll-behavior:smooth}.test-guide{background:#fff;border:1px solid var(--border);border-radius:13px;padding:14px 18px;margin-bottom:18px}.step-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:11px}.step-chip{font-size:13px;color:#607888;border-radius:20px;padding:5px 11px;background:#edf2f5}.step-chip.current{background:var(--navy);color:#fff}.guide-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.guide-content strong{font-size:17px}.guide-content p{font-size:14px;color:#4d6779;line-height:1.45;margin:5px 0 0}.sample-source{display:flex;align-items:center;gap:12px;text-align:left}.sample-source img{width:49px;height:49px;border-radius:7px;object-fit:cover}.sample-source small{display:block;font-size:12px;color:#507282;margin-top:5px;font-weight:400}.setup-steps{padding-left:19px;font-size:14px;color:#476073;line-height:1.55}.setup-steps li{margin-bottom:8px}.task-feedback{background:#edf8f9;border-left:3px solid #05a6ac;padding:12px;margin-top:12px;border-radius:5px}.task-feedback strong{font-size:14px}.task-feedback p{font-size:13px;margin:6px 0}.local-job{margin:10px 0;background:#f4f7f9;border-radius:8px;padding:11px;display:grid;gap:7px}.local-job strong{font-size:14px}.local-job span{font-size:13px;color:#506b7c}.local-job button{width:100%;font-size:13px}.panel summary{cursor:pointer}#pair-state{margin-bottom:9px}@media (max-width:750px){.test-guide{padding:12px}.guide-content{align-items:flex-start}.guide-content strong{font-size:16px}.guide-content p{font-size:13px}.step-chip{font-size:12px}.guide-content button{flex-shrink:0;padding:9px}.canvas-wrap{height:330px}}#target{min-width:150px;min-height:42px;padding:8px 12px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--navy);font-size:16px;font-weight:600}.test-badge{border-radius:30px;padding:8px 12px;color:#20283a;background:#ffb83e;font-size:12px;font-weight:800;white-space:nowrap}.notice strong{display:block}.scene-label{max-width:calc(100% - 130px)}.webgl-error{position:relative;background:#eaf0f3;padding-top:80px;max-width:600px}.panel #measure-result{margin:10px 0}.source-preview span{min-width:0}.sidebar .full{min-height:44px}@media (max-width:750px){header{flex-wrap:wrap}header nav{flex-direction:row;flex-wrap:wrap;align-items:center;width:100%;gap:12px}.test-badge,.scene-label,.fps{font-size:11px}}
