:root{--bg:#0b0c0e;--glass:#131417cc;--glass-2:#212226eb;--well:#00000042;--line:#ffffff13;--line-2:#ffffff24;--text:#eeebe5;--text-2:#bdb9b1;--muted:#8a867e;--faint:#5b5853;--accent:#ffb020;--accent-2:#ffc95c;--accent-soft:#ffb02021;--accent-ink:#1d1403;--r:12px;--r-sm:7px;--gap:12px;--left-w:288px;--right-w:336px;--li:calc(var(--left-w) + var(--gap) * 2);--ri:calc(var(--right-w) + var(--gap) * 2);--mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--sans:"IBM Plex Sans KR", "Pretendard", "Malgun Gothic", "Apple SD Gothic Neo", system-ui, sans-serif;--ease:cubic-bezier(.2, .7, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 var(--sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;overflow:hidden}button{font:inherit;color:inherit}kbd{font:500 9.5px var(--mono);color:var(--faint);border:1px solid var(--line-2);vertical-align:1px;border-radius:3px;margin-left:5px;padding:0 3px}.mono{font-family:var(--mono)}.dim{color:var(--muted)}[hidden]{display:none!important}#viewport{position:fixed;inset:0}#viewport canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}#viewport canvas.light-mode{cursor:crosshair}.card{background:var(--glass);-webkit-backdrop-filter:blur(22px)saturate(140%);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 18px 50px #00000061,inset 0 1px #ffffff0b}.col{top:var(--gap);bottom:var(--gap);z-index:10;transition:transform .38s var(--ease), opacity .3s;animation:rise .6s var(--ease) both;flex-direction:column;gap:10px;display:flex;position:fixed}.col-left{left:var(--gap);width:var(--left-w)}.col-right{right:var(--gap);width:var(--right-w);animation-delay:80ms}body.left-collapsed .col-left{transform:translateX(calc(-100% - var(--gap) * 2));opacity:0;pointer-events:none}body.right-collapsed .col-right{transform:translateX(calc(100% + var(--gap) * 2));opacity:0;pointer-events:none}body.left-collapsed{--li:0px}body.right-collapsed{--ri:0px}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.titleblock{flex:none;overflow:hidden}.tb-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 12px 11px 14px;display:flex}.brand{font:600 12.5px var(--mono);letter-spacing:.16em;align-items:center;gap:8px;display:flex}.brand em{color:var(--muted);margin-left:-3px;font-style:normal;font-weight:400}.brand .mark{border:1.5px solid var(--accent);border-radius:2px;width:14px;height:14px;position:relative;box-shadow:0 0 14px #ffb02059}.brand .mark:after{content:"";background:var(--accent);width:4px;height:4px;position:absolute;inset:3px 3px auto auto}.tb-grid{grid-template-columns:1fr 1fr;display:grid}.tb-grid .cell{border-bottom:1px solid var(--line);flex-direction:column;gap:1px;min-width:0;padding:7px 14px 8px;display:flex}.tb-grid .cell:not(.wide):nth-child(odd){border-right:1px solid var(--line)}.tb-grid .cell.wide{grid-column:1/-1}.tb-grid .cell:last-child{border-bottom:0}.tb-grid .k{font:500 10px var(--sans);letter-spacing:.04em;color:var(--muted)}.tb-grid .v{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.tb-grid .v.mono{font-size:12.5px}.tree{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.tree-head{justify-content:space-between;align-items:center;padding:10px 8px 6px 14px;display:flex}.tree-head h2{letter-spacing:.02em;margin:0;font-size:12.5px;font-weight:600}.tree-actions{gap:2px;display:flex}.search{padding:0 10px 8px}.search input{background:var(--well);border:1px solid var(--line);width:100%;color:var(--text);font:inherit;border-radius:7px;outline:none;padding:6px 10px}.search input:focus{border-color:#ffb0208c}.tree-list{-webkit-user-select:none;user-select:none;flex:1;padding:2px 6px 10px;overflow:auto}.tree-list .row{--d:0;height:26px;padding-left:calc(var(--d) * 13px);cursor:pointer;color:var(--text-2);border-radius:6px;align-items:center;gap:2px;padding-right:6px;display:flex;position:relative}.tree-list .row:before{content:"";left:calc(var(--d) * 13px - 5px);border-left:1px solid var(--line);display:var(--guide,block);position:absolute;top:0;bottom:0}.tree-list .row[style*="--d: 0"]:before{display:none}.tree-list .row:hover{color:var(--text);background:#ffffff0b}.tree-list .row.selected{background:var(--accent-soft);color:var(--accent-2)}.tree-list .row.selected .name{font-weight:500}.tree-list .row.hidden-part .name{color:var(--faint);-webkit-text-decoration:line-through #fff3;text-decoration:line-through #fff3}.tree-list .row:not(.leaf) .name{color:var(--text)}.tree-list .name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.tree-list .name mark{color:var(--text);background:#ffb0204d;border-radius:2px}.tree-list .count{font:10.5px var(--mono);color:var(--faint)}.tree-list .caret,.tree-list .eye{cursor:pointer;width:20px;height:22px;color:var(--faint);background:0 0;border:0;border-radius:4px;flex:none;place-items:center;padding:0;display:grid}.tree-list .caret .ico{transition:transform .18s var(--ease)}.tree-list .caret.open .ico{transform:rotate(90deg)}.tree-list .caret.none{cursor:default}.tree-list .eye{opacity:.55}.tree-list .row:hover .eye{opacity:1}.tree-list .eye:hover,.tree-list .caret:hover{color:var(--text);background:#ffffff12}.tree-list .row.hidden-part .eye{opacity:1;color:var(--muted)}.tree-list .empty{color:var(--faint);text-align:center;padding:18px 10px}.inspector{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(6,1fr);padding:4px 4px 0;display:grid}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex-direction:column;align-items:center;gap:3px;margin-bottom:-1px;padding:9px 2px;font-size:11.5px;transition:color .15s;display:flex}.tabs button:hover{color:var(--text)}.tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.tab-body{overscroll-behavior:contain;flex:1;overflow:auto}.pane{animation:fade .25s var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(4px)}}.grp{border-bottom:1px solid var(--line);flex-direction:column;gap:9px;padding:14px 16px 12px;display:flex}.grp:last-child{border-bottom:0}.grp h3{color:var(--text-2);letter-spacing:.02em;align-items:center;gap:8px;margin:0 0 1px;font-size:11.5px;font-weight:600;display:flex}.grp h3 .idx{font:500 9.5px var(--mono);color:var(--accent);letter-spacing:.06em;border:1px solid #ffb02066;border-radius:3px;padding:0 4px}.note{color:var(--muted);margin:-2px 0 0;font-size:11.5px;line-height:1.5}.note kbd{color:var(--text-2)}.ctl{grid-template-columns:1fr auto;align-items:center;column-gap:8px;display:grid}.ctl>label{color:var(--text-2);align-items:center;gap:6px;font-size:12.5px;display:flex}.ctl>label small{color:var(--faint);font-size:10.5px;display:block}.ctl.toggle>label{flex-direction:column;align-items:flex-start;gap:0}.ctl.stacked{grid-template-columns:1fr;row-gap:6px}.ctl.disabled{opacity:.38;pointer-events:none}.slider>label{cursor:default}.slider>label[title]{cursor:help}.readout{align-items:baseline;gap:2px;display:flex}.readout .unit{font:10.5px var(--mono);color:var(--faint)}.num{text-align:right;width:62px;color:var(--text);font:500 12px var(--mono);-webkit-user-select:text;user-select:text;background:0 0;border:1px solid #0000;border-radius:5px;outline:none;padding:1px 4px}.num:hover{border-color:var(--line-2)}.num:focus{border-color:var(--accent);background:var(--well)}input[type=range]{--p:50%;appearance:none;cursor:pointer;background:repeating-linear-gradient(90deg,#ffffff21 0 1px,#0000 1px calc(10% - .1px)) 0 100%/calc(100% + 1px) 4px no-repeat;grid-column:1/-1;width:100%;height:18px;margin:1px 0 0}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) 0 var(--p), #ffffff1f var(--p) 100%);border-radius:2px;height:3px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--accent);background:#f6f2e9;border-radius:3px;width:11px;height:17px;margin-top:-7px;transition:transform .12s;box-shadow:0 2px 8px #00000080}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #ffb02059}input[type=range]::-moz-range-track{background:#ffffff1f;border-radius:2px;height:3px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:2px;height:3px}input[type=range]::-moz-range-thumb{border:2px solid var(--accent);background:#f6f2e9;border-radius:3px;width:8px;height:14px}.switch{border:1px solid var(--line-2);background:var(--well);cursor:pointer;border-radius:10px;width:32px;height:18px;padding:0;transition:background .2s,border-color .2s;position:relative}.switch i{background:var(--muted);width:12px;height:12px;transition:transform .22s var(--ease), background .2s;border-radius:50%;position:absolute;top:2px;left:2px}.switch[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.switch[aria-checked=true] i{background:var(--accent-ink);transform:translate(14px)}.seg{background:var(--well);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;gap:2px;padding:2px;display:flex}.seg button{min-width:max-content;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;flex:1 1 0;padding:5px 6px;font-size:12px;transition:color .15s,background .15s}.seg button:hover{color:var(--text)}.seg button[aria-checked=true]{background:var(--glass-2);color:var(--accent);box-shadow:inset 0 0 0 1px #ffb02059,0 1px 3px #0000004d}.lights-seg .seg button:before{content:"";vertical-align:1px;background:var(--c);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.lights-seg .seg button[data-value=key]{--c:#ffb020}.lights-seg .seg button[data-value=fill]{--c:#6cc4ff}.lights-seg .seg button[data-value=rim]{--c:#f4f1ea}.ctl.color input[type=color]{border:1px solid var(--line-2);cursor:pointer;background:0 0;border-radius:5px;width:44px;height:22px;padding:1px}.kswatch{border-radius:50%;width:10px;height:10px;box-shadow:0 0 8px,inset 0 0 0 1px #0006}.btn{border:1px solid var(--line-2);color:var(--text-2);cursor:pointer;background:#ffffff09;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:6px 10px;font-size:12px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn:hover{color:var(--text);background:#ffffff14}.btn:active{transform:translateY(1px)}.btn.accent{color:var(--accent);background:var(--accent-soft);border-color:#ffb02080}.btn.accent:hover{background:var(--accent);color:var(--accent-ink)}.btn.block{width:100%;padding:9px;font-weight:500}.btn.sm{padding:4px 8px;font-size:11.5px}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:#ffffff12}.btn.icon-only{padding:6px 8px}.btn kbd{margin-left:6px}.with-ico{align-items:center;gap:6px;display:inline-flex}.ico{place-items:center;line-height:0;display:inline-grid}.icon-btn{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.icon-btn:hover{color:var(--text);background:#ffffff12}.btn-row{grid-template-columns:1fr 1fr 1fr auto;gap:6px;display:grid}.views-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.views-grid .btn{padding:7px 4px}.linkish{color:var(--muted);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.linkish:hover{color:var(--text)}.presets{grid-template-columns:1fr 1fr;gap:6px;display:grid}.chip{border:1px solid var(--line);color:var(--text-2);cursor:pointer;text-align:left;background:#ffffff06;border-radius:8px;align-items:center;gap:9px;padding:6px 8px 6px 6px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.chip:hover{border-color:var(--line-2);color:var(--text);background:#ffffff0d}.chip.active{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.chip .sw{border-radius:4px;flex:none;width:30px;height:22px;box-shadow:inset 0 0 0 1px #ffffff1f}.dome-wrap{background:radial-gradient(circle at 50% 50%, #ffffff09, transparent 70%), var(--well);border:1px solid var(--line);border-radius:10px;padding:4px 0;position:relative}.dome{touch-action:none;cursor:crosshair;width:100%;max-width:256px;margin:0 auto;display:block}.d-below{fill:none;stroke:#ffffff21;stroke-dasharray:2 4}.d-horizon{stroke:#ffffff4d;stroke-width:1px}.d-ring{fill:none;stroke:#ffffff17}.d-tick{stroke:#ffffff38}.d-tick.major{stroke:#ffffff80}.d-cross{stroke:#ffffff0f}.d-lbl{font:8.5px var(--mono);fill:var(--faint)}.d-dir{font:10px var(--sans);fill:var(--muted)}.d-foot rect{fill:#ffffff0d;stroke:#ffffff52;stroke-width:1px}.d-foot .front{stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round}.d-cam path{fill:var(--text-2)}.d-cam text{font:9px var(--sans);fill:var(--muted)}.beam{stroke-width:1.2px;stroke-dasharray:1.5 3}.b-key{stroke:#ffb020}.b-fill{stroke:#6cc4ff}.b-rim{stroke:#f4f1ea}.d-light{cursor:grab;outline:none}.d-light:active{cursor:grabbing}.d-light .dot{stroke:#0000008c;stroke-width:1.5px;filter:drop-shadow(0 0 5px #ffdca073)}.d-light text{font:600 10px var(--mono);fill:#1b1407;pointer-events:none}.d-light .sel{fill:none;stroke:var(--accent);stroke-width:1.4px;stroke-dasharray:3 3.3;opacity:0;transform-box:fill-box;transform-origin:50%}.d-light.is-selected .sel{opacity:1;animation:8s linear infinite spin}.d-light:focus-visible .sel{opacity:1}.d-light.off .dot{filter:none;fill:#3a3935!important}.d-light.off text{fill:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.swatches{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.swatch{aspect-ratio:1.15;border:1px solid var(--line-2);cursor:pointer;border-radius:8px;align-items:flex-end;padding:0;display:flex;position:relative;overflow:hidden}.swatch span{width:100%;color:var(--text-2);text-align:center;white-space:nowrap;background:#0000008c;padding:2px 4px;font-size:10px;overflow:hidden}.swatch.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.swatch.custom{background:conic-gradient(from 90deg,#ff6b5a,#ffb020,#7bd88f,#6cc4ff,#b58cff,#ff6b5a)}.swatch.custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.overlay-area{top:var(--gap);bottom:var(--gap);left:var(--li);right:var(--ri);pointer-events:none;z-index:5;transition:left .38s var(--ease), right .38s var(--ease);position:fixed;container:stage/inline-size}.overlay-area>*{pointer-events:auto}.viewcube{width:92px;height:92px;position:absolute;top:4px;right:4px}.viewcube .stage{place-items:center;width:100%;height:100%;display:grid}.cube{--h:29px;width:58px;height:58px;transform-style:preserve-3d;position:relative}.face{font:500 11px var(--sans);color:var(--text-2);backface-visibility:hidden;cursor:pointer;background:#1a1b1fe0;border:1px solid #fff3;place-items:center;padding:0;transition:background .15s,color .15s;display:grid;position:absolute;inset:0}.face:hover{background:var(--accent);color:var(--accent-ink)}.face.f-front{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.face.f-front:hover{color:var(--accent-ink)}.toolbar{background:var(--glass);-webkit-backdrop-filter:blur(22px)saturate(140%);border:1px solid var(--line);width:max-content;max-width:100%;animation:rise .6s .16s var(--ease) both;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 4px;padding:5px;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 14px 40px #0006}.tb-group{gap:2px;display:flex}.tb-sep{background:var(--line-2);align-self:stretch;width:1px;margin:4px 3px}.tool{height:32px;color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;padding:0 9px;font-size:12.5px;transition:background .15s,color .15s;display:inline-flex}.tool:hover{color:var(--text);background:#ffffff12}.tool.icon{padding:0 8px}.tool .lbl{font-size:12px}.tool.on{background:var(--accent-soft);color:var(--accent)}.tool.accent{color:var(--accent)}.tool.accent:hover{background:var(--accent);color:var(--accent-ink)}.selcard{z-index:2;background:var(--glass);-webkit-backdrop-filter:blur(22px);width:300px;max-width:calc(100vw - 24px);animation:fade .2s var(--ease);border:1px solid #ffb02059;border-radius:10px;padding:10px 10px 10px 12px;position:absolute;top:4px;left:4px;box-shadow:0 12px 36px #0006}.sel-title{align-items:center;gap:8px;display:flex}.sel-title strong{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.sel-title .icon-btn{width:24px;height:24px;margin:-4px -2px -4px 0}.sel-title .dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 10px var(--accent);border-radius:2px;flex:none}.sel-path{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 6px 16px;font-size:11px;overflow:hidden}.sel-meta{color:var(--text-2);justify-content:space-between;margin:0 0 8px 16px;font-size:11.5px;display:flex}.sel-meta span{color:var(--faint)}.sel-actions{gap:6px;margin-left:16px;display:flex}.sel-actions .btn{white-space:nowrap}.hints{color:#eeebe58c;text-shadow:0 1px 3px #000c;pointer-events:auto;flex-wrap:wrap;justify-content:flex-end;gap:4px 12px;max-width:260px;font-size:11px;display:flex;position:absolute;bottom:56px;right:4px}.hints b{color:#eeebe5d9;font-weight:500}body.light-bg .hints,body.light-bg .hints .linkish{color:#18181a8c;text-shadow:none}body.light-bg .hints b{color:#18181ad9}.edge-toggle{z-index:11;border:1px solid var(--line);background:var(--glass);width:18px;height:44px;color:var(--muted);cursor:pointer;transition:left .38s var(--ease), right .38s var(--ease), color .15s;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);place-items:center;margin-top:-22px;padding:0;display:grid;position:fixed;top:50%}.edge-toggle:hover{color:var(--accent)}.edge-toggle .ico svg{width:12px;height:12px}.edge-toggle.left{left:calc(var(--li) - var(--gap) + 1px);border-left:0;border-radius:0 7px 7px 0}.edge-toggle.right{right:calc(var(--ri) - var(--gap) + 1px);border-right:0;border-radius:7px 0 0 7px}body.left-collapsed .edge-toggle.left{left:0}body.right-collapsed .edge-toggle.right{right:0}.loader{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:radial-gradient(circle at 50% 45%,#0b0c0e8c,#0b0c0ed9);place-items:center;display:grid;position:fixed;inset:0}.loader-box{text-align:center;width:min(360px,80vw)}.loader-title{letter-spacing:.01em;margin-bottom:14px;font-size:14px;font-weight:500}.loader .bar{background:#ffffff1a;border-radius:2px;height:2px;position:relative;overflow:hidden}.loader .bar i{background:var(--accent);width:0;box-shadow:0 0 12px var(--accent);transition:width .2s;position:absolute;inset:0 auto 0 0}.loader.indeterminate .bar i{animation:slide 1.1s var(--ease) infinite;width:30%!important}@keyframes slide{0%{left:-30%}to{left:100%}}.loader-sub{color:var(--muted);min-height:1.4em;margin-top:10px;font-size:11.5px}.dropzone{z-index:60;border:2px dashed var(--accent);pointer-events:none;background:#0b0c0eb8;border-radius:16px;place-items:center;animation:.15s fade;display:grid;position:fixed;inset:10px}.dropzone div{flex-direction:column;align-items:center;gap:6px;display:flex}.dropzone strong{font-size:18px;font-weight:600}.dropzone span{font:12px var(--mono);color:var(--muted);letter-spacing:.08em}.modal{z-index:70;background:#00000080;place-items:center;display:grid;position:fixed;inset:0}.modal-box{background:var(--glass-2);width:min(480px,100vw - 32px);padding:6px 20px 18px}.modal-box header{justify-content:space-between;align-items:center;padding:8px 0;display:flex}.modal-box h2{margin:0;font-size:15px;font-weight:600}.keys{grid-template-columns:auto 1fr;gap:8px 18px;margin:6px 0 0;font-size:12.5px;display:grid}.keys dt{font:500 11.5px var(--mono);color:var(--accent);white-space:nowrap}.keys dd{color:var(--text-2);margin:0}.toast{left:calc((100vw - var(--ri) + var(--li)) / 2);bottom:calc(var(--gap) + 58px);z-index:40;background:var(--glass-2);border:1px solid var(--line-2);color:var(--text);opacity:0;pointer-events:none;transition:opacity .2s, transform .2s var(--ease);white-space:nowrap;border-radius:8px;padding:7px 14px;font-size:12px;position:fixed;transform:translate(-50%,8px);box-shadow:0 10px 30px #0006}.toast.show{opacity:1;transform:translate(-50%)}.linkish-v{text-align:left;cursor:pointer;color:var(--text);font:inherit;background:0 0;border:0;padding:0;font-size:13px}.linkish-v:hover{color:var(--accent);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.pm{flex-direction:column;gap:10px;display:flex}.pm-info{background:var(--well);border:1px solid var(--line);border-radius:8px;align-items:center;min-height:32px;padding:6px 10px;font-size:12px;display:flex}.pm-info>span{align-items:center;gap:8px;min-width:0;display:flex}.pm-info strong{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.pm-info em{color:var(--muted);white-space:nowrap;font-style:normal}.pm-info .sw{border-radius:3px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #00000059}.pm:not(.empty) .pm-info{border-color:#ffb02066}.pm.empty .matgrid,.pm.empty .palette{opacity:.45}.matgrid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.mat{border:1px solid var(--line);color:var(--text-2);cursor:pointer;text-align:left;background:#ffffff06;border-radius:8px;align-items:center;gap:8px;padding:5px 8px 5px 5px;font-size:11.5px;transition:border-color .15s,background .15s;display:flex}.mat:hover{border-color:var(--line-2);color:var(--text);background:#ffffff0d}.mat.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.ball{border-radius:50%;flex:none;width:22px;height:22px;box-shadow:0 2px 5px #00000073}.ball-glossy{background:radial-gradient(circle at 32% 28%,#fff 0 9%,#e4e4e4 16%,#9a9a9a 55%,#555 82%,#7a7a7a)}.ball-matte{background:radial-gradient(circle at 35% 30%,#d6d6d6,#8c8c8c 60%,#5a5a5a)}.ball-rubber{background:radial-gradient(circle at 35% 30%,#58585a,#2a2a2b 60%,#111)}.ball-painted{background:radial-gradient(circle at 30% 26%,#fff 0 6%,#cad3dd 14%,#6c7988 60%,#36404a)}.ball-brushed{background:repeating-linear-gradient(0deg,#ffffff1a 0 1px,#0000 1px 2px),linear-gradient(120deg,#7f8388,#e8eaed 40%,#8d9196 60%,#d2d5d8 85%)}.ball-chrome{background:radial-gradient(circle at 32% 28%,#fff 0 10%,#d2d6db 20%,#5a5e64 44%,#f2f4f6 62%,#3b3e43 86%)}.ball-aluminum{background:radial-gradient(circle at 35% 30%,#eef0f2,#b3b7bb 50%,#7b7f84)}.ball-brass{background:radial-gradient(circle at 32% 28%,#fff3cc 0 8%,#e8c16a 25%,#9a6e22 65%,#5e4212)}.ball-glass{background:radial-gradient(circle at 32% 28%,#fffffff2 0 9%,#c8e1f04d 30%,#8caabe2e 70%,#dcf0ff8c);border:1px solid #ffffff59}.ball-smoke{background:radial-gradient(circle at 32% 28%,#fffc 0 7%,#5f646c8c 35%,#282c30cc);border:1px solid #ffffff2e}.palette{grid-template-columns:repeat(8,1fr);gap:5px;display:grid}.pc{aspect-ratio:1;cursor:pointer;border:1px solid #ffffff24;border-radius:6px;padding:0;transition:transform .12s;position:relative}.pc:hover{transform:scale(1.12)}.pc.active{box-shadow:0 0 0 2px var(--bg), 0 0 0 3.5px var(--accent)}.pc.custom{background:conic-gradient(from 90deg,#ff6b5a,#ffb020,#7bd88f,#6cc4ff,#b58cff,#ff6b5a);overflow:hidden}.pc.custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.ctl.stacked>label .btn{margin-left:auto}.btn.xs{border-radius:5px;padding:2px 7px;font-size:11px}.btn-pair{grid-template-columns:1fr 1fr;gap:6px;display:grid}.btn-pair .btn{padding:8px 6px}.tree-list .mdot{border-radius:2px;flex:none;width:8px;height:8px;margin-right:4px;box-shadow:inset 0 0 0 1px #0006}.open-box{flex-direction:column;gap:12px;width:min(560px,100vw - 32px);max-height:calc(100vh - 48px);padding-bottom:16px;display:flex}.open-box h3{color:var(--text-2);margin:0;font-size:12px;font-weight:600}.drop-target{background:radial-gradient(circle at 50% 0%, #ffb02014, transparent 70%), var(--well);cursor:pointer;text-align:center;border:1.5px dashed #ffb02073;border-radius:12px;flex-direction:column;align-items:center;gap:5px;padding:22px 16px;transition:border-color .15s,background .15s;display:flex}.drop-target:hover{border-color:var(--accent);background-color:#ffb0200f}.drop-target strong{font-size:13.5px;font-weight:600}.drop-target .mono{letter-spacing:.06em;font-size:11px}.dt-ico{color:var(--accent);margin-bottom:2px}.open-opts{grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.open-opts>:first-child{grid-column:1/-1}.open-opts .ctl.toggle{align-self:end}.engine{background:var(--well);color:var(--muted);border-radius:8px;align-items:flex-start;gap:8px;margin:0;padding:8px 10px;font-size:11.5px;line-height:1.5;display:flex}.engine b{color:var(--text-2);font-weight:600}.engine code{font:11px var(--mono);color:var(--accent-2)}.led{background:#8a867e;border-radius:50%;flex:none;width:8px;height:8px;margin-top:4px}.led.ok{background:#6fd48a;box-shadow:0 0 8px #6fd48ab3}.lib-head{justify-content:space-between;align-items:baseline;margin-top:2px;display:flex}.lib-head .dim{font-size:11px}.library{flex-direction:column;gap:4px;min-height:60px;max-height:260px;display:flex;overflow:auto}.library .empty{text-align:center;color:var(--faint);margin:0;padding:14px;font-size:12px}.lib-item{border:1px solid var(--line);background:#ffffff06;border-radius:8px;align-items:center;gap:4px;display:flex}.lib-item:hover{border-color:var(--line-2)}.lib-item.current{border-color:#ffb02073}.lib-open{cursor:pointer;text-align:left;min-width:0;color:var(--text-2);background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:8px 10px;display:flex}.lib-open:hover{color:var(--text)}.lib-text{flex-direction:column;min-width:0;display:flex}.lib-text strong{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:500;overflow:hidden}.lib-text .mono{white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.lib-item .tag{font:500 10px var(--mono);color:var(--accent);border:1px solid #ffb02066;border-radius:4px;margin-left:auto;padding:0 5px}.lib-item .icon-btn{margin-right:4px}.seg.cats button{flex:1 0 30%;padding:5px 2px;font-size:11.5px}.matlib{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.libmat{color:var(--text-2);cursor:grab;text-align:center;background:#ffffff06;border:1px solid #0000;border-radius:9px;flex-direction:column;align-items:center;gap:3px;padding:6px 2px 5px;font-size:10.5px;line-height:1.25;transition:border-color .15s,background .15s,transform .12s;display:flex}.libmat:hover{border-color:var(--line-2);color:var(--text);background:#ffffff0f}.libmat:active{cursor:grabbing;transform:scale(.96)}.libmat.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.libmat img{pointer-events:none;background:radial-gradient(circle at 35% 30%,#3a3b3f,#17181b);border-radius:50%;width:48px;height:48px}.libmat span{word-break:keep-all}.tree-list .row.drop{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.btn-quad{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.stack{flex-direction:column;gap:9px;display:flex}.envgrid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.env{border:1px solid var(--line);color:var(--text-2);cursor:pointer;background:#ffffff06;border-radius:9px;flex-direction:column;align-items:center;gap:4px;padding:7px 2px 6px;font-size:11px;transition:border-color .15s,background .15s;display:flex}.env:hover{border-color:var(--line-2);color:var(--text);background:#ffffff0d}.env.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.env img{background:#17181b;border-radius:50%;width:52px;height:52px}.views-list{flex-direction:column;gap:5px;display:flex}.view-item{border:1px solid var(--line);background:#ffffff06;border-radius:8px;align-items:center;gap:2px;padding-right:4px;display:flex}.view-item:hover{border-color:var(--line-2)}.view-open{cursor:pointer;min-width:0;color:var(--text-2);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:4px;display:flex}.view-open:hover{color:var(--text)}.view-open img,.view-open .noimg{object-fit:cover;background:var(--well);border-radius:5px;flex:none;width:60px;height:40px}.view-name{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.select{appearance:none;background:var(--well) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23999' stroke-width='1.3'/%3E%3C/svg%3E") no-repeat right 10px center;width:100%;color:var(--text);border:1px solid var(--line-2);font:inherit;cursor:pointer;border-radius:7px;outline:none;padding:7px 28px 7px 9px;font-size:12.5px}.select:focus{border-color:var(--accent)}.select option{background:#1c1d20}.size-inputs{align-items:center;gap:5px;display:flex}.size-inputs i{color:var(--faint);font-style:normal}.size-inputs em{font:10.5px var(--mono);color:var(--faint);font-style:normal}.numbox{background:var(--well);border:1px solid var(--line-2);width:68px;color:var(--text);font:500 12px var(--mono);text-align:right;-webkit-user-select:text;user-select:text;border-radius:6px;outline:none;padding:4px 6px}.numbox:focus{border-color:var(--accent)}.size-info{font-family:var(--mono);font-size:11px}.frame{z-index:4;pointer-events:none;border:1px solid var(--accent);border-radius:2px;position:fixed;box-shadow:0 0 0 9999px #08090b80}.frame:after{content:attr(data-label);font:500 10.5px var(--mono);color:var(--accent);letter-spacing:.04em;position:absolute;top:-19px;left:0}.ptchip{background:var(--glass);-webkit-backdrop-filter:blur(18px);min-width:190px;font:11.5px var(--mono);color:var(--text-2);border:1px solid #ffb02059;border-radius:9px;padding:7px 11px 8px;position:absolute;bottom:56px;left:4px}.ptchip .bar,.render-box .bar{background:#ffffff1a;border-radius:2px;height:2px;margin-top:6px;overflow:hidden}.ptchip .bar i,.render-box .bar i{background:var(--accent);width:0;height:100%;box-shadow:0 0 8px var(--accent);transition:width .25s;display:block}.render-box{flex-direction:column;gap:10px;width:min(760px,100vw - 32px);padding-bottom:14px;display:flex}.render-preview{background:repeating-conic-gradient(#2e2f33 0% 25%,#232427 0% 50%) 50%/20px 20px;border-radius:8px;place-items:center;min-height:220px;max-height:62vh;display:grid;overflow:hidden}.render-preview canvas{max-width:100%;max-height:62vh;display:block}.render-foot{color:var(--text-2);justify-content:space-between;align-items:center;gap:12px;font-size:11.5px;display:flex}body.locked .col,body.locked .overlay-area,body.locked .edge-toggle,body.locked .frame{visibility:hidden}.auth{z-index:90;-webkit-user-select:text;user-select:text;background:radial-gradient(60% 50% at 50% 34%,#ffb02017,#0000 72%),#090a0ce6;place-items:center;padding:20px 16px;display:grid;position:fixed;inset:0;overflow:auto}.auth-box{background:var(--glass-2);width:min(400px,100%);animation:rise .45s var(--ease) both;padding:26px 26px 22px}.auth-box .brand{margin-bottom:24px}.auth-box h1{letter-spacing:-.01em;margin:0 0 6px;font-size:20px;font-weight:600}.auth-lead{color:var(--muted);margin:0;font-size:12.5px;line-height:1.6}.auth-lead b{color:var(--text);word-break:break-all;font-weight:500}.auth-form{flex-direction:column;gap:12px;margin-top:18px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field-label{color:var(--text-2);font-size:11.5px}.field-hint{color:var(--faint);font-size:11px}.field input{background:var(--well);border:1px solid var(--line-2);width:100%;color:var(--text);font:inherit;border-radius:8px;outline:none;padding:9px 11px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:var(--faint)}.field input:focus{border-color:#ffb02099;box-shadow:0 0 0 3px #ffb02021}.field input.code-input{font:600 22px var(--mono);letter-spacing:.34em;text-align:center;padding:11px 6px 11px 14px}.field input.code-input::placeholder{color:#ffffff1a}.consent{color:var(--text-2);font-size:12px}.consent label{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.consent input{accent-color:var(--accent);margin:2px 0 0}.consent em{color:var(--accent);font-style:normal}.consent details{color:var(--muted);margin:6px 0 0 21px}.consent summary{cursor:pointer;text-underline-offset:3px;font-size:11.5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.consent dl{background:var(--well);border-radius:8px;grid-template-columns:auto 1fr;gap:4px 12px;margin:8px 0 0;padding:9px 11px;font-size:11.5px;line-height:1.5;display:grid}.consent dt{color:var(--text-2);white-space:nowrap}.consent dd{margin:0}.auth-error{color:#ffb9ad;background:#f0604e1f;border:1px solid #f0604e61;border-radius:8px;margin:0;padding:8px 11px;font-size:12px;line-height:1.5}.auth-form .btn.block{padding:10px;font-size:13px}.btn:disabled{opacity:.55;pointer-events:none}.auth-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:11.5px;display:flex}.auth-meta .warn{color:#ffb9ad}.linkish:disabled{color:var(--faint);cursor:default;text-decoration:none}.auth-foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 14px;margin-top:18px;padding-top:14px;font-size:12px;display:flex}.auth-foot .linkish{color:var(--text-2)}.auth-foot .linkish:hover{color:var(--accent)}.auth-dialog{-webkit-user-select:text;user-select:text;width:min(380px,100vw - 32px);padding-bottom:20px}.tb-actions{align-items:center;gap:4px;display:flex}.acct-pop{z-index:75;background:var(--glass-2);min-width:208px;max-width:280px;padding:6px;animation:.12s fade;position:fixed}.acct-who{border-bottom:1px solid var(--line);flex-direction:column;gap:1px;margin-bottom:4px;padding:6px 8px 9px;display:flex}.acct-who strong{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:500;overflow:hidden}.acct-who .mono{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.acct-item{width:100%;color:var(--text-2);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:7px 8px;font-size:12.5px;display:flex}.acct-item:hover{color:var(--text);background:#ffffff12}.acct-item.danger:hover{color:#ffb9ad;background:#f0604e24}.acct-who em{font:500 10px var(--mono);color:var(--accent);vertical-align:1px;border:1px solid #ffb02066;border-radius:4px;margin-left:6px;padding:0 5px;font-style:normal}.admin{z-index:80;-webkit-user-select:text;user-select:text;background:#0009;place-items:center;padding:20px 16px;display:grid;position:fixed;inset:0}.admin-box{width:min(1040px,100%);height:min(760px,100%);animation:rise .3s var(--ease) both;background:#1b1c1f;flex-direction:column;display:flex;overflow:hidden}.admin-box header{justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 14px 12px 20px;display:flex}.admin-box h2{margin:0;font-size:16px;font-weight:600}.admin-sum{font:11.5px var(--mono);color:var(--muted);margin:3px 0 0}.admin-tools{flex-wrap:wrap;gap:8px;padding:0 20px 12px;display:flex}.admin-tools .search{flex:240px;padding:0}.admin-tools .search input{padding:7px 10px}.admin-tools .select{flex:0 auto;width:auto;max-width:100%}.admin-head,.admin-row{grid-template-columns:minmax(0,1.5fr) minmax(0,1.2fr) 76px 132px auto;align-items:center;column-gap:14px;padding:0 20px;display:grid}.admin-head{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--well);color:var(--muted);letter-spacing:.03em;padding-top:7px;padding-bottom:7px;font-size:11px}.admin-head .num,.admin-row .num{text-align:right}.admin-list{scrollbar-width:thin;scrollbar-color:#ffffff24 transparent;flex:1;min-height:0;overflow:auto}.admin-row{border-bottom:1px solid var(--line);padding-top:9px;padding-bottom:9px;font-size:12.5px}.admin-row:hover{background:#ffffff08}.admin-row .a-model,.admin-row .a-member{flex-direction:column;gap:1px;min-width:0;display:flex}.admin-row strong,.admin-row .a-model .mono,.admin-row .a-member>*{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.admin-row strong{font-weight:500}.admin-row .a-model .mono,.admin-row .a-member .dim{font-size:11px}.admin-row .a-member .linkish{text-align:left;color:var(--text-2)}.admin-row .a-member .linkish:hover{color:var(--accent)}.admin-row .a-size,.admin-row .a-date{white-space:nowrap;font-size:11.5px}.admin-row .a-act{justify-content:flex-end;gap:6px;display:flex}.admin-row .a-act .btn{white-space:nowrap}.btn.danger{color:#ffb9ad;border-color:#f0604e61}.btn.danger:hover{color:#ffd3cb;background:#f0604e2e}.admin-empty{text-align:center;color:var(--faint);margin:0;padding:48px 20px}@media (width<=760px){.admin-head{display:none}.admin-row{grid-template-columns:minmax(0,1fr) auto;row-gap:6px}.admin-row .a-member{grid-column:1}.admin-row .a-size{grid-area:1/2}.admin-row .a-date{grid-area:2/2}.admin-row .a-act{grid-column:1/-1;justify-content:flex-start}}.tab-body,.tree-list{scrollbar-width:thin;scrollbar-color:#ffffff24 transparent}.tab-body::-webkit-scrollbar{width:8px}.tree-list::-webkit-scrollbar{width:8px}.tab-body::-webkit-scrollbar-thumb{background:#ffffff1f padding-box padding-box;border:2px solid #0000;border-radius:8px}.tree-list::-webkit-scrollbar-thumb{background:#ffffff1f padding-box padding-box;border:2px solid #0000;border-radius:8px}@container stage (width<=830px){.tool kbd{display:none}}@container stage (width<=660px){.tool .lbl,.hints{display:none}}@container stage (width<=560px){.ptchip{bottom:96px}}@container stage (width<=430px){.selcard{width:calc(100% - 100px)}}@media (width<=900px){:root{--left-w:min(288px, calc(100vw - 48px));--right-w:min(336px, calc(100vw - 48px));--li:0px;--ri:0px}.col{z-index:20}.hints{display:none}.edge-toggle.left{left:0}.edge-toggle.right{right:0}body:not(.left-collapsed) .edge-toggle.left{left:calc(var(--left-w) + var(--gap))}body:not(.right-collapsed) .edge-toggle.right{right:calc(var(--right-w) + var(--gap))}}@media (width<=640px){.tool kbd,.tool .lbl{display:none}.tool{padding:0 7px;font-size:12px}.viewcube{transform-origin:100% 0;transform:scale(.8)}.selcard{width:calc(100% - 90px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
