@font-face{font-family:DeskSerif;src:local("Georgia")}@font-face{font-family:DeskUI;src:local("Microsoft YaHei UI"),local("Microsoft YaHei")}.position-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.position-inputs label{font-size:10px;color:var(--cyan)}.position-inputs input{display:block;width:100%;min-width:0;margin-top:6px;border:1px solid #454951;border-radius:4px;padding:6px;color:#d5d7db;background:#13161a;font-variant-numeric:tabular-nums}.position-controls h3{margin-top:14px}#language{max-width:102px;font-size:11px}.canvas-area{touch-action:none}html[lang=en] .two-col{grid-template-columns:1fr}html[lang=en] .slider-row{grid-template-columns:108px minmax(0,1fr) 37px}html[lang=en] .edition{letter-spacing:.7px}@media(max-width:650px){.topbar{flex-wrap:wrap;height:auto!important;min-height:94px;padding-block:10px!important;gap:8px}.top-actions{flex-wrap:wrap}.canvas-help span{line-height:1.6}.views{flex-wrap:wrap}html[lang=en] .slider-row{grid-template-columns:120px minmax(0,1fr) 44px}}:root{font-family:DeskUI,PingFang SC,sans-serif;color:#d5d7db;background:#131518;font-synthesis:none;--muted:#858b94;--border:#2b2e34;--accent:#f5bd69;--cyan:#97d5d1;--panel:#1b1e23}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;background:#25292f;color:#d5d7db;border:1px solid #363b43;border-radius:5px;padding:8px 12px;transition:background .12s,border-color .12s}button:hover{background:#323740;border-color:#646b76}button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}button:disabled{opacity:.35;cursor:not-allowed}button.primary{background:var(--accent);color:#282016;border-color:var(--accent);font-weight:700}button.primary:hover{background:#ffce84}button.quiet{background:transparent;border-color:transparent;color:#a6acb5}button.accent-outline{border-color:#6b5a3e;color:#ebc488;background:#302b23}h1,h2,h3,p{margin:0}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:0 28px;background:#181a1e}.brand{display:flex;gap:13px;align-items:center}.brand-icon{font-size:42px;color:var(--accent);line-height:1}.brand h1{font-family:DeskSerif,serif;font-size:27px;font-weight:400;letter-spacing:.3px;color:#f2ede2}.brand h1 em{font-style:italic;color:#dccdb8}.edition{display:block;font-size:9px;letter-spacing:1.8px;color:#898e97;margin-top:6px}.top-actions{display:flex;gap:9px;font-size:12px}.top-actions .primary{margin-left:12px;min-width:125px}.primary span{margin-left:20px}main{display:grid;grid-template-columns:minmax(0,1fr) 336px;height:calc(100dvh - 86px)}.workspace{display:flex;flex-direction:column;min-width:0;min-height:0;background:#111316}.views{display:flex;justify-content:center;align-items:center;gap:3px;padding:17px 10px 10px}.views button{background:transparent;border:0;font-size:12px;padding:7px 15px;color:#838a95}.views button.active{background:#30343b;color:#f0e5d2;box-shadow:0 1px 4px #0004}.canvas-area{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background-image:radial-gradient(#363a4045 .65px,transparent .65px);background-size:12px 12px}.canvas-caption{position:absolute;top:6px;left:26px;right:26px;display:flex;justify-content:space-between;gap:10px;color:#949aa3;font-size:10px;letter-spacing:.3px;z-index:2;pointer-events:none}.canvas-caption span:last-child{color:#626b78}.paper{position:relative;flex-shrink:0;box-shadow:0 15px 60px #0007;touch-action:none;background:repeating-conic-gradient(#30343a 0% 25%,#25292e 0% 50%) 50%/16px 16px;outline:1px solid #42464c}.paper canvas{display:block;width:100%;height:100%}.corner-label{position:absolute;left:12px;bottom:12px;pointer-events:none;color:#ffffff80;font-size:8px;letter-spacing:2px;text-shadow:0 1px 3px #000}.zoom-tools{position:absolute;bottom:12px;right:22px;display:flex;align-items:center;gap:3px;padding:3px;border-radius:6px;border:1px solid #33383e;background:#1c1f24e8;z-index:2}.zoom-tools button{border:0;background:transparent;padding:4px 9px;font-size:12px}.zoom-tools span{font-size:10px;width:37px;text-align:center;color:#aab0b9}.canvas-help{display:flex;justify-content:space-between;align-items:center;padding:6px 24px;font-size:10px;color:#697481;gap:8px}.canvas-help b{font-weight:400;margin:0 7px;color:#414a56}.canvas-help button{font-size:10px;border:none;background:transparent;padding:8px;color:#8e969f}.cyan-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--cyan);margin-right:6px}footer{border-top:1px solid var(--border);padding:10px 22px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#8b949e;background:#17191d}#stats{white-space:nowrap;color:#b0b8c0;font-variant-numeric:tabular-nums}aside{background:var(--panel);border-left:1px solid var(--border);overflow:auto;scrollbar-width:thin;scrollbar-color:#41464e transparent}.panel-section{padding:20px 22px;border-bottom:1px solid var(--border)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}h2{font-size:12px;font-weight:500;letter-spacing:1.5px;color:#e2e0dc}.section-number{font-family:DeskSerif,serif;font-size:13px;color:#646c77}.subtle{color:#838b97;font-size:10px;line-height:1.8;margin:8px 0 12px}.two-col{display:grid;grid-template-columns:1.5fr 1fr;gap:7px}.two-col button,.two-col select{font-size:10px;padding:8px 6px}select{background:#22262c;color:#bfc5cf;border:1px solid #373d46;border-radius:4px;padding:6px;min-width:0}details{margin-top:14px}summary{font-size:11px;cursor:pointer;color:#a8b0bc;padding:6px 0;-webkit-user-select:none;user-select:none}summary span{float:right}.channel-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.channel-grid button{font-size:10px;padding:8px 5px}fieldset{border:0;margin:0;padding:0;min-width:0}fieldset:disabled{opacity:.45}.light-list{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 12px}.light-chip{border-radius:16px;display:flex;align-items:center;gap:7px;font-size:10px;padding:5px 10px}.light-chip i{width:9px;height:9px;border-radius:50%}.light-chip.active{border-color:var(--cyan);background:#263337;color:#d3e7e5}.off{opacity:.42}.light-actions{display:flex;align-items:center;gap:5px}.light-actions button{font-size:10px;padding:5px 8px}#light-count{margin-left:auto;font-size:10px;color:#73808c}.check{font-size:10px;color:#b6bec8;display:flex;align-items:center;gap:7px;margin:12px 0;cursor:pointer}.check input{accent-color:var(--accent);margin:0;width:13px;height:13px}.check span{margin-left:auto;font-size:9px;color:#78838f}.slider-row{display:grid;grid-template-columns:100px minmax(0,1fr) 37px;align-items:center;gap:6px;margin:12px 0;font-size:10px;color:#aeb7c2}.slider-row input{width:100%;min-width:0;accent-color:var(--accent);height:12px;cursor:pointer}.slider-row output{color:#969fab;font-size:10px;text-align:right;font-variant-numeric:tabular-nums}.control-row{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#aeb7c2;margin:13px 0}input[type=color]{width:156px;height:24px;padding:2px 3px;border:1px solid #454951;background:#292d34;border-radius:4px;cursor:pointer}input[type=color]::-webkit-color-swatch-wrapper{padding:1px}input[type=color]::-webkit-color-swatch{border:0;border-radius:2px}h3{font-size:10px;color:#8a95a4;font-weight:400;margin:20px 0 10px;letter-spacing:1px}.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.preset-grid button{font-size:10px;padding:8px 3px;background:#24282f}.preset-grid button:hover{border-color:var(--accent);color:var(--accent)}.segmented{display:flex;background:#13161a;border:1px solid #2c3138;border-radius:5px;padding:3px;margin-bottom:15px}.segmented button{flex:1;border:0;background:transparent;color:#6f7b89;font-size:11px;padding:7px}.segmented button.active{background:#343942;color:#e9dcc9}.shadow-check{padding-top:10px;border-top:1px solid #30343a}.select-row{display:flex;flex-direction:column;gap:8px;color:#929dab;font-size:10px}.select-row select{font-size:11px}.axis-checks{display:flex;justify-content:space-between}.range-inputs{display:flex;gap:8px}.range-inputs label{color:#8793a1;font-size:10px;flex:1;min-width:0}.range-inputs input{width:100%;margin-top:6px;color:#c1c9d3;background:#13161a;border:1px solid #373e47;padding:5px;font-size:11px}.full-width{width:100%;margin-top:12px;font-size:10px}.privacy{font-size:9px;color:#77938f;text-align:center;margin-top:14px;letter-spacing:.3px}.light-marker{position:absolute;transform:translate(-50%,-50%);width:25px;height:25px;border-radius:50%;padding:0;background:var(--light-color);border:2px solid #91dfdf;color:#172e34;font-size:10px;box-shadow:0 0 0 6px #9ce0e019,0 1px 8px #0004;cursor:move}.light-marker.selected:after{content:"";position:absolute;inset:-15px;border:1px dashed #ffffff65;border-radius:50%;pointer-events:none}.light-marker:hover{background:var(--light-color)}#compare-line{position:absolute;top:0;bottom:0;width:1px;background:#fff9;box-shadow:0 0 2px #0008}#compare-line button{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);border-radius:50%;height:28px;width:28px;padding:0;background:#f5ede0;color:#1b2026;cursor:ew-resize}#compare-line[hidden],#light-markers[hidden]{display:none}#empty-hint{position:absolute;bottom:60px;left:20px;right:20px;text-align:center;font-size:12px;background:#1c222ceb;color:#e2c9a2;padding:12px;border:1px solid #6b5b3f;border-radius:6px}#toast{position:fixed;bottom:45px;left:24px;max-width:min(700px,80vw);z-index:30;background:#3a2826;color:#ffdbca;padding:16px 20px;border:1px solid #845646;box-shadow:0 8px 35px #0006;border-radius:7px;font-size:12px;overflow-wrap:anywhere}#progress{margin-top:12px;font-size:10px;color:#debd8b}#progress>div{display:flex;align-items:center;justify-content:space-between;gap:6px}#progress button{font-size:9px;padding:3px 6px}progress{width:100%;height:5px;accent-color:var(--accent);margin-top:10px}dialog{background:#20242a;color:#c0c7d0;border:1px solid #464e59;border-radius:12px;max-width:580px;padding:35px;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}dialog .close-dialog{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:20px}dialog .eyebrow{font-size:9px;letter-spacing:2px;color:#e9bb76}dialog h2{font-size:24px;margin:16px 0 20px;letter-spacing:0}dialog p{font-size:12px;line-height:1.9;margin-bottom:13px}dialog h3{color:#edcf9e;font-size:13px}button,input,summary{touch-action:manipulation}[hidden]{display:none!important}@media(max-width:900px){main{grid-template-columns:minmax(0,1fr) 290px}.panel-section{padding:16px}.topbar{padding:0 18px}.canvas-caption{left:15px;right:15px;flex-direction:column;gap:3px}.canvas-help span{font-size:9px}.canvas-help b{margin:0 3px}.slider-row{grid-template-columns:91px minmax(0,1fr) 34px}.views button{padding:7px 9px}}@media(max-width:650px){body{overflow:auto}.topbar{height:72px;padding:0 14px}.brand h1{font-size:21px}.brand-icon{font-size:32px}.edition{font-size:7px}.top-actions{gap:3px}.top-actions button{font-size:10px;padding:7px}.top-actions .primary{min-width:0;margin:0}.primary span{margin-left:2px}#demo{display:none}main{display:flex;flex-direction:column;height:auto}.workspace{height:76dvh;min-height:500px}aside{border-left:0;overflow:visible}.views{padding:13px 4px}.views button{padding:7px 10px;font-size:10px}.canvas-help{padding:5px 12px}.canvas-help span{font-size:8px}footer{padding:9px 12px;font-size:9px}#status{max-width:57%}.panel-section{padding:20px}.slider-row{grid-template-columns:120px minmax(0,1fr) 44px}.canvas-caption{flex-direction:row}.top-actions .quiet{display:none}}.normal-controls{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.normal-controls .position-inputs{margin:12px 0}.normal-controls input[type=number]{background:#13161a;color:#d5d7db;border:1px solid #454951;border-radius:4px;padding:6px;min-width:0;width:100%}.normal-controls .check{line-height:1.5}.normal-controls #normal-calibrate{width:100%;margin-top:10px}.normal-controls #calibration-result{margin-top:10px;color:var(--cyan)}
