:root{--canvas:#141416;--surface:#1f1f22;--surface-2:#27272b;--surface-3:#313136;--line:#34343a;--line-strong:#45454d;--text:#ededf0;--muted:#a7a7b1;--faint:#8a8a94;--accent:#0d99ff;--accent-strong:#0a6fc2;--accent-press:#085ca1;--accent-soft:#0d99ff29;--accent-line:#0d99ff8c;--danger:#ff6170;--ok:#3ccf91;--r-sm:4px;--r:6px;--r-lg:10px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--ctl:26px;--ease:cubic-bezier(.2, .8, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:IBM Plex Sans,IBM Plex Sans KR,system-ui,sans-serif;font-size:12px;line-height:1.4}*{box-sizing:border-box}html,body{background:var(--canvas);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}::selection{background:var(--accent-soft);color:#fff}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;caret-color:var(--accent)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);background-clip:content-box;border:3px solid #0000;border-radius:10px}:focus{outline:none}:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px;border-radius:var(--r-sm)}.icon{flex:none;display:block}[hidden]{display:none!important}button{font:inherit;color:var(--text);border-radius:var(--r-sm);min-height:var(--ctl);padding:0 var(--s2);cursor:pointer;transition:background-color .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;display:inline-flex}button:hover{background:var(--surface-3)}button:active{background:var(--line-strong)}button:disabled{opacity:.45;cursor:default;background:0 0}button.on{background:var(--accent-soft);color:#fff}button.primary,.btn-primary{background:var(--accent-strong);color:#fff;padding:0 var(--s3);font-weight:600}button.primary:hover,.btn-primary:hover{background:var(--accent-press)}button.danger{color:var(--danger)}.btn-ghost{color:var(--muted)}.btn-ghost:hover{color:var(--text)}.icon-btn,button.mini{width:var(--ctl);color:var(--muted);padding:0}.icon-btn:hover,button.mini:hover{color:var(--text)}.icon-btn.sm,button.mini{width:22px;min-height:22px}.icon-btn.on{color:#fff}.btnrow{gap:var(--s1);padding:var(--s1) var(--s3);flex-wrap:wrap;display:flex}.btnrow button:not(.primary):not(.mini){border-color:var(--line);color:var(--muted)}.btnrow button:not(.primary):not(.mini):hover{color:var(--text);border-color:var(--line-strong)}.btnrow.icons{gap:2px}.btnrow.icons button{width:var(--ctl);padding:0}input,select,textarea{font:inherit;color:var(--text);background:var(--surface-2);border-radius:var(--r-sm);height:var(--ctl);padding:0 var(--s2);font-variant-numeric:tabular-nums;min-width:0;transition:border-color .15s var(--ease), background-color .15s var(--ease);border:1px solid #0000}textarea{height:auto;padding:6px var(--s2);line-height:1.5}input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}input:focus,select:focus,textarea:focus{border-color:var(--accent);background:var(--surface)}input::placeholder,textarea::placeholder{color:var(--faint)}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5.5 6.5L8 9l2.5-2.5' stroke='%23a7a7b1' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 4px center;background-repeat:no-repeat;background-size:16px;padding-right:22px}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{display:none}input[type=color]{appearance:none;border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:5px;flex:none;width:22px;height:22px;padding:0}input[type=color]::-webkit-color-swatch-wrapper{padding:2px}input[type=color]::-webkit-color-swatch{border:none;border-radius:3px}input[type=checkbox]{appearance:none;border:1px solid var(--line-strong);background:var(--surface-2);cursor:pointer;border-radius:3px;flex:none;place-content:center;width:14px;height:14px;padding:0;display:inline-grid}input[type=checkbox]:checked{background:var(--accent-strong);border-color:var(--accent-strong)}input[type=checkbox]:checked:after{content:"";border-top:0;border-bottom:1.5px solid #fff;border-left:1.5px solid #fff;border-right:0;width:7px;height:4px;transform:rotate(-45deg)translate(1px,-1px)}input[type=range]{appearance:none;height:var(--ctl);cursor:pointer;background:0 0;border:none;padding:0}input[type=range]::-webkit-slider-runnable-track{background:var(--line-strong);border-radius:2px;height:2px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--text);border:2px solid var(--surface);border-radius:50%;width:12px;height:12px;margin-top:-5px;box-shadow:0 1px 3px #0006}input[type=range]:hover::-webkit-slider-thumb{background:#fff}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent-line)}input[type=range]::-moz-range-track{background:var(--line-strong);height:2px}input[type=range]::-moz-range-thumb{background:var(--text);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px}input[type=range]:hover,input[type=range]:focus{background:0 0;border:none}#topbar{align-items:center;gap:var(--s3);height:48px;padding:0 var(--s2) 0 var(--s3);background:var(--surface);border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;display:grid}.bar-group{align-items:center;gap:var(--s1);min-width:0;display:flex}.bar-group.end{justify-content:flex-end}.bar-group.center{justify-content:center}.bar-sep{background:var(--line);width:1px;height:18px;margin:0 var(--s1);flex:none}.brand{margin-right:var(--s1);display:flex}.brand svg{display:block}.menu{display:flex}#doc-name{width:240px;color:var(--text);text-align:center;background:0 0;font-weight:600}#doc-name:hover{background:var(--surface-2);border-color:#0000}#doc-name:focus{background:var(--surface-2);border-color:var(--accent)}.zoom{font-variant-numeric:tabular-nums;gap:2px;min-width:60px}.zoom .caret{opacity:.7}#topbar .btn-primary{margin-left:var(--s1)}.seg{background:var(--surface-2);border-radius:var(--r);gap:2px;min-width:0;padding:2px;display:flex}.seg button{min-height:22px;padding:0 var(--s2);color:var(--muted);border-radius:var(--r-sm);white-space:nowrap;flex:1}.seg button:hover{color:var(--text);background:0 0}.seg button.on{background:var(--surface-3);color:#fff;box-shadow:0 1px 2px #00000059}#imposition button{min-height:26px}#main{display:flex;position:absolute;inset:48px 0 0}#left,#right{background:var(--surface);flex:none;overflow-y:auto}#left{border-right:1px solid var(--line);flex-direction:column;width:224px;display:flex}#right{border-left:1px solid var(--line);width:296px}@media (width<=1280px){#left{width:192px}#right{width:280px}#doc-name{width:150px}.menu .btn-ghost{padding:0 6px}}@media (width<=1080px){#left{width:168px}.menu{display:none}}.panel-title,.group h4{padding:0 var(--s3);height:32px;color:var(--muted);letter-spacing:.01em;justify-content:space-between;align-items:center;margin:0;font-size:11px;font-weight:600;display:flex}#left section{padding:var(--s1) 0 var(--s2);border-bottom:1px solid var(--line)}#left section.grow{border-bottom:none;flex:1;overflow-y:auto}#left ol{padding:0 var(--s1);margin:0;list-style:none}#left li{height:28px;padding:0 var(--s1) 0 var(--s2);border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:var(--s2);white-space:nowrap;color:var(--text);transition:background-color .12s var(--ease);display:flex}#left li>span:not(.tag),#left li{text-overflow:ellipsis;overflow:hidden}#left li:hover{background:var(--surface-2)}#left li.on{background:var(--accent-soft)}#left li .tag{color:var(--faint);font-variant-numeric:tabular-nums;flex:none;justify-content:center;width:16px;font-size:11px;display:inline-flex}#left li.on .tag{color:var(--accent)}#left li .name{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}#left li .x{opacity:0;flex:none}#left li .x+.x{margin-left:-6px}#left li:hover .x,#left li .x:focus-visible,#left li .x.set{opacity:1}#left li.hover:not(.on){box-shadow:inset 0 0 0 1px var(--accent-line)}#left li.dim .name,#left li.dim .tag{opacity:.45}#left li.empty{color:var(--faint);cursor:default;font-size:11px}#left li.empty:hover{background:0 0}#left li.drop-before{box-shadow:inset 0 2px 0 var(--accent)}#left li.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}#left li.bg{color:var(--muted)}#left li.bg .tag{color:var(--faint)}#left li.bg .bgmark{color:var(--faint);border:1px solid var(--line);border-radius:8px;flex:none;padding:0 5px;font-size:10px;line-height:15px}#left li.bg.base{cursor:default}#left li{position:relative}#left li .lacts{background:linear-gradient(90deg, transparent, var(--surface-2) 8px);align-items:center;padding-left:8px;display:none;position:absolute;top:50%;right:30px;transform:translateY(-50%)}#left li:hover .lacts,#left li .lacts:focus-within{display:inline-flex}#left li .lacts.has-set{background:0 0;padding:0;display:inline-flex;position:static;transform:none}#left li:hover .lacts.has-set{background:linear-gradient(90deg, transparent, var(--surface-2) 8px);padding-left:8px;position:absolute;transform:translateY(-50%)}#left li.on .lacts,#left li.on:hover .lacts.has-set{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 16%, var(--surface)) 8px)}#left li .lacts:not(.has-set) .x,#left li:hover .lacts .x{opacity:1}#left li .lacts.has-set .x:not(.set){display:none}#left li:hover .lacts.has-set .x:not(.set){display:inline-flex}#left li .lgrip{width:14px;color:var(--faint);cursor:grab;opacity:.55;flex:none;justify-content:center;margin-left:-4px;display:inline-flex}#left li .lgrip.none{cursor:default}#left li:hover .lgrip:not(.none){opacity:1}#left li .lgrip:active{cursor:grabbing}#left li.dragging{opacity:.45}#left li .x.set-btn{opacity:.7}#left li .x.set-btn:hover{opacity:1}#left li .x.del-btn:hover,#left li .x.del-btn:focus-visible{color:var(--danger)}#left li.bg.on{background:var(--accent-soft);color:var(--text)}#left li.bg.on .tag{color:var(--accent)}#left li .caret{width:16px;height:16px;color:var(--faint);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}#left li .caret svg{transition:transform .12s;transform:rotate(-90deg)}#left li .caret.open svg{transform:none}#left li .caret:hover{color:var(--text)}#left li.child{color:var(--muted);padding-left:22px;font-size:11.5px}#left li.child.on{color:var(--text)}#left li.child .lswatch-dot{border-radius:50%;width:9px;height:9px;box-shadow:inset 0 0 0 1px #ffffff40}#left li.addrow{color:var(--faint);gap:6px}#left li.addrow:hover{color:var(--text)}.page canvas.band{pointer-events:none;display:block;position:absolute}#left li input.rename{background:var(--surface);border-color:var(--accent);flex:1;height:22px;padding:0 4px}#viewport{background:var(--canvas);outline:none;flex:1;position:relative;overflow:hidden}#viewport.hand,#viewport.panning{cursor:grab}#viewport.panning{cursor:grabbing}#viewport.tool-text{cursor:text}#viewport.tool-rect{cursor:crosshair}#gl{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}#world{transform-origin:0 0;position:absolute;top:0;left:0}#overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}#overlay .handle{pointer-events:all;fill:#fff;stroke:var(--accent);stroke-width:1.25px}#overlay .ghandle{pointer-events:all}#overlay .glow-handles text{paint-order:stroke;stroke:#141416b3;stroke-width:3px;font-weight:500}.text-toolbar{z-index:5;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r);align-items:center;gap:2px;padding:4px;display:flex;position:absolute;top:0;left:0;box-shadow:0 6px 18px #0006}.text-toolbar .tt-size{text-align:center;width:46px;padding:0 4px}.text-toolbar select{width:96px}.text-toolbar input[type=color]{margin:0 4px}.text-toolbar .tt-sep{background:var(--line);width:1px;height:18px;margin:0 4px}.text-toolbar button.mini.on{background:var(--accent-soft);color:#fff}.text-toolbar .tt-done{min-height:24px;margin-left:2px}.content-row{padding:var(--s1) var(--s3) var(--s2)}.content-box{resize:vertical;width:100%;min-height:44px}#overlay text{font-variant-numeric:tabular-nums;font-family:IBM Plex Sans,IBM Plex Sans KR,sans-serif}.float-bar{left:50%;bottom:var(--s4);z-index:4;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);gap:2px;padding:4px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 4px 14px #00000059}.float-bar .icon-btn{border-radius:var(--r);width:34px;min-height:32px}.float-bar .icon-btn.on{background:var(--accent-strong);color:#fff}.float-round{right:var(--s4);bottom:var(--s4);z-index:4;background:var(--surface);border:1px solid var(--line-strong);width:32px;min-height:32px;color:var(--muted);border-radius:50%;padding:0;position:absolute;box-shadow:0 4px 14px #00000059}.float-round:hover{background:var(--surface-3);color:var(--text)}.menu-pop{z-index:30;border:1px solid var(--line-strong);border-radius:var(--r);background:#1b1b1e;flex-direction:column;min-width:220px;padding:4px;display:flex;position:fixed;top:0;left:0;box-shadow:0 8px 22px #00000080}.menu-pop button{justify-content:flex-start;gap:var(--s2);min-height:26px;padding:0 var(--s2) 0 4px;color:var(--text);width:100%}.menu-pop button:hover,.menu-pop button:focus-visible{background:var(--accent-strong);color:#fff;outline:none}.menu-pop button:hover .kbd kbd,.menu-pop button:focus-visible .kbd kbd{color:#fff}.menu-pop button:disabled{color:var(--faint);opacity:1}.menu-pop button:disabled:hover{color:var(--faint);background:0 0}.menu-pop button.danger:not(:hover):not(:focus-visible){color:var(--danger)}.menu-pop .menu-check{flex:none;width:14px;display:inline-flex}.menu-pop .menu-label{text-align:left;flex:1}.menu-sep{background:var(--line);height:1px;margin:4px 2px}.kbd{flex:none;gap:2px;margin-left:auto;display:inline-flex}.kbd kbd{font:inherit;color:var(--faint);text-align:center;min-width:12px;font-size:11px}.tooltip .kbd kbd,.sc-keys kbd,.welcome kbd{background:var(--surface-3);color:var(--text);border-radius:3px;min-width:18px;padding:0 5px;line-height:18px}.tooltip{z-index:40;pointer-events:none;align-items:center;gap:var(--s2);padding:4px var(--s2);color:#fff;border-radius:var(--r-sm);white-space:nowrap;background:#0c0c0e;font-size:11px;display:flex;position:fixed;top:0;left:0;box-shadow:0 2px 8px #0006}.tooltip .kbd{margin-left:0}.tooltip .kbd kbd{background:#2c2c31}#palette{z-index:25;background:#08080a59;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette-card{border:1px solid var(--line-strong);border-radius:var(--r-lg);background:#1b1b1e;width:min(560px,92vw);overflow:hidden;box-shadow:0 12px 32px #0000008c}.palette-card input{border:none;border-bottom:1px solid var(--line);width:100%;height:44px;padding:0 var(--s4);background:0 0;border-radius:0;font-size:14px}.palette-card input:focus{border-color:var(--line);background:0 0}.palette-list{max-height:50vh;padding:4px;overflow-y:auto}.palette-item{align-items:center;gap:var(--s3);height:32px;padding:0 var(--s3);border-radius:var(--r-sm);cursor:pointer;display:flex}.palette-item.on{background:var(--accent-strong)}.palette-item.on .kbd kbd,.palette-item.on .palette-group{color:#fff}.palette-item.off{opacity:.45;cursor:default}.palette-group{width:44px;color:var(--faint);flex:none;font-size:11px}.palette-label{flex:1}#modal .card.shortcuts{width:min(1080px,94vw)}.sc-head{align-items:baseline;gap:var(--s3);margin-bottom:var(--s3);display:flex}.sc-head h2{margin:0!important}.sc-grid{gap:var(--s2) var(--s5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid;overflow-y:auto}.sc-grid h3{color:var(--muted);margin:var(--s3) 0 var(--s1);font-size:11px;font-weight:600}.sc-row{align-items:center;gap:var(--s3);border-bottom:1px solid var(--line);min-height:26px;display:flex}.sc-row>span:first-child{flex:1}.sc-keys{gap:var(--s2);display:flex}.sc-keys .kbd{margin:0}.sc-mouse{color:var(--muted);font-size:11px}.welcome{left:var(--s4);bottom:var(--s4);z-index:5;width:340px;padding:var(--s3) var(--s4) var(--s4);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);position:absolute;box-shadow:0 10px 28px #00000073}.welcome header{justify-content:space-between;align-items:center;display:flex}.welcome h2{margin:0;font-size:14px;font-weight:600}.welcome ul{margin:var(--s3) 0;gap:var(--s2);padding:0;list-style:none;display:grid}.welcome li{gap:var(--s2);color:var(--muted);grid-template-columns:96px 1fr;align-items:start;line-height:1.5;display:grid}.welcome .w-keys{flex-wrap:wrap;gap:3px;display:flex}.welcome kbd{font:inherit;font-size:11px}.welcome footer{gap:var(--s1);justify-content:flex-end;display:flex}.welcome footer button:not(.primary){border-color:var(--line);color:var(--muted)}#hint{left:var(--s3);bottom:var(--s3);color:var(--faint);pointer-events:none;padding:3px var(--s2);border-radius:var(--r-sm);background:#141416b8;font-size:11px;position:absolute}#hint:empty{display:none}.page{outline:1px solid #ffffff0f;position:absolute}.page .stage{overflow:visible}.page .el{cursor:default}.page .el.editing{cursor:text;outline:none}.page .el.editing .text-body{outline:none}.page .el-text .text-body{min-height:1em}.stage a{color:inherit;text-decoration:none}.guides{pointer-events:none;position:absolute;inset:0}.tabs{gap:var(--s4);padding:0 var(--s3);border-bottom:1px solid var(--line);background:var(--surface);z-index:2;align-items:stretch;height:40px;display:flex;position:sticky;top:0}.tabs button{min-height:0;color:var(--muted);border-bottom:2px solid #0000;border-radius:0;flex:none;margin-bottom:-1px;padding:0;font-weight:500}.tabs button:hover{color:var(--text);background:0 0}.tabs button.on{color:#fff;border-bottom-color:var(--accent);background:0 0}.tabs .icon{width:14px;height:14px;color:var(--accent)}.group{border-bottom:1px solid var(--line);padding:var(--s1) 0 var(--s3)}.group h4{color:var(--text)}.row{align-items:center;gap:var(--s2);padding:2px var(--s3);grid-template-columns:76px minmax(0,1fr);min-height:30px;display:grid}.row>label{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.row .inline{gap:var(--s1);align-items:center;min-width:0;display:flex}.row .inline>*{flex:1 1 0;min-width:0}.row .inline>input[type=color],.row .inline>input[type=checkbox]{flex:none}.row .inline>label{color:var(--text);align-items:center;gap:6px;display:flex}.row.slider .inline input[type=number]{text-align:right;flex:0 0 52px;padding:0 6px}.grid2{gap:var(--s1) var(--s2);padding:var(--s1) var(--s3);grid-template-columns:1fr 1fr;display:grid}.grid2 .cell{align-items:center;min-width:0;display:flex;position:relative}.grid2 .cell b{width:24px;color:var(--faint);border-radius:var(--r-sm) 0 0 var(--r-sm);justify-content:center;align-items:center;font-size:11px;font-weight:500;display:flex;position:absolute;top:1px;bottom:1px;left:1px}.grid2 .cell b.scrub{cursor:ew-resize;-webkit-user-select:none;user-select:none}.grid2 .cell b.scrub:hover{color:var(--text)}body.scrubbing,body.scrubbing *{cursor:ew-resize!important}.grid2 .link{justify-self:start}.align-row{padding-bottom:0}.align-note{padding-top:0}.grid2 .cell input{width:100%;padding-left:26px}.card{background:var(--surface-2);border-radius:var(--r);margin:var(--s1) var(--s3) var(--s2);padding:var(--s1) 0 var(--s2)}.card .card{background:var(--surface-3)}.card.off{opacity:.5}.card header{padding:2px var(--s1) var(--s1) var(--s3);align-items:center;gap:2px;display:flex}.card header input[type=text]{padding:0 var(--s1);background:0 0;flex:1;font-weight:600}.card header input[type=text]:hover{background:var(--surface-3)}.card header select{flex:1}.card .row{padding:2px var(--s3);grid-template-columns:70px minmax(0,1fr)}.card .btnrow,.card .note{padding-left:var(--s3);padding-right:var(--s3)}.note{color:var(--faint);padding:2px var(--s3) var(--s1);margin:0;font-size:11px;line-height:1.5}.stop-list .stop{gap:var(--s1);padding:2px var(--s3);align-items:center;display:flex}.stop-list .stop input[type=number]{text-align:right;width:56px}details{padding:0}details>summary{cursor:pointer;padding:0 var(--s3);height:28px;color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;list-style:none;display:flex}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";width:5px;height:5px;transition:transform .15s var(--ease);border-bottom:1.5px solid;border-right:1.5px solid;margin-right:2px;transform:rotate(-45deg)}details[open]>summary:before{transform:rotate(45deg)}details>summary:hover{color:var(--text)}#modal{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#08080a9e;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#modal[hidden]{display:none}#modal .card{width:480px;max-height:82vh;padding:var(--s5);background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--line);margin:0;overflow:auto;box-shadow:0 8px 24px #00000073}#modal h2{margin:0 0 var(--s4);font-size:15px;font-weight:600}#modal .list{gap:var(--s1);display:grid}#modal .list button{text-align:left;border:1px solid var(--line);width:100%;padding:var(--s2) var(--s3);border-radius:var(--r);justify-items:start;gap:2px;min-height:0;display:grid}#modal .list button:hover{border-color:var(--line-strong);background:var(--surface-2)}#modal .list button small{color:var(--faint)}#modal .row{padding-left:0;padding-right:0}#modal ul{margin:var(--s2) 0;padding-left:var(--s4)}#modal li{margin:2px 0}#modal .progress{background:var(--surface-2);height:4px;margin:var(--s3) 0 var(--s2);border-radius:4px;overflow:hidden}#modal .progress div{background:var(--accent);width:0;height:100%}#modal a{color:var(--accent);text-underline-offset:2px}#modal h2.section{margin:var(--s5) 0 var(--s2)}#modal .card.licenses{width:min(560px,94vw)}#modal .lic-group h3{color:var(--muted);margin:var(--s4) 0 var(--s1);font-size:11px;font-weight:600}#modal .lic-group ul{gap:var(--s2);margin:0;padding:0;list-style:none;display:grid}#modal .lic-group li{padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r);gap:2px;margin:0;font-size:12px;display:grid}#modal .lic-head{align-items:baseline;gap:var(--s2);display:flex}#modal .lic-ver{color:var(--faint);font-variant-numeric:tabular-nums;font-size:11px}#modal .lic-badge{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:11px}#modal .lic-meta{color:var(--faint);font-size:11px;line-height:1.5}#modal .lic-group a{overflow-wrap:anywhere;font-size:11px}#modal .actions{justify-content:flex-end;gap:var(--s2);margin-top:var(--s4);display:flex}#modal .actions button:not(.primary){border-color:var(--line);color:var(--muted)}#modal .actions button:not(.primary):hover{color:var(--text)}#modal .note{padding-left:0;padding-right:0}.ai-panel{flex-direction:column;height:calc(100vh - 88px);display:flex}.ai-panel>details{border-bottom:1px solid var(--line);padding-bottom:var(--s2)}.ai-panel>details .note{margin-top:var(--s1)}.ai-log{padding:var(--s3);gap:var(--s2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.ai-log:empty:before{content:"디자인을 말로 고칠 수 있습니다. 아래 예시를 누르거나 직접 입력하세요. 결과는 한 번의 실행 취소로 되돌릴 수 있습니다.";color:var(--faint);margin:auto 0 0;font-size:11px;line-height:1.6}.ai-msg{border-radius:var(--r-lg);padding:var(--s2) var(--s3);white-space:pre-wrap;word-break:break-word;line-height:1.55}.ai-msg.user{background:var(--accent-soft);align-self:flex-end;max-width:90%}.ai-msg.assistant{background:var(--surface-2)}.ai-msg.assistant:empty:before{content:"…";color:var(--faint)}.ai-thinking{color:var(--faint);padding-left:var(--s2);max-height:6.5em;margin:2px 0;font-size:11px;font-style:italic;overflow:hidden}.ai-tool{color:var(--muted);align-items:center;gap:6px;margin:2px 0;font-size:11px;display:flex}.ai-tool .icon{width:12px;height:12px;color:var(--accent)}.ai-preview{border-radius:var(--r-sm);width:100%;margin:var(--s1) 0;border:1px solid var(--line)}.ai-error{color:var(--danger);margin-top:var(--s1)}.ai-examples{padding:0 var(--s2) var(--s2);gap:2px;display:grid}.ai-examples button{text-align:left;color:var(--muted);padding:5px var(--s2);justify-content:flex-start;min-height:0;font-size:11px;line-height:1.4}.ai-examples button:hover{color:var(--text)}.ai-composer{margin:0 var(--s3);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2);padding:var(--s1)}.ai-composer:focus-within{border-color:var(--accent)}.ai-input{resize:none;width:100%;min-height:56px;max-height:160px;padding:var(--s1) var(--s2);background:0 0;border:none;display:block}.ai-input:hover,.ai-input:focus{background:0 0;border:none}.ai-composer .btnrow{justify-content:space-between;padding:0}.ai-status{min-height:1.4em;padding:var(--s2) var(--s3)}#modal .card.wide{width:min(1240px,94vw);max-height:90vh;padding:var(--s4) var(--s5) var(--s3);flex-direction:column;display:flex}.gallery-head{align-items:center;gap:var(--s3);display:flex}.gallery-head h2{margin:0!important}.gallery-search{width:320px;margin-left:auto}.gallery-chips{gap:var(--s1);margin:var(--s3) 0;flex-wrap:wrap;display:flex}.gallery-chips button{border:1px solid var(--line);color:var(--muted);min-height:24px;padding:0 var(--s3);border-radius:999px;font-size:11px}.gallery-chips button.on{border-color:var(--accent);color:#fff}.gallery-grid{gap:var(--s3);flex:1;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));padding:2px 4px 2px 2px;display:grid;overflow-y:auto}.gallery-item{text-align:left;background:0 0;border:none;flex-direction:column;align-items:stretch;gap:6px;min-height:0;padding:0;display:flex}.gallery-item:hover{background:0 0}.gallery-item img,.gallery-missing{aspect-ratio:420/297;object-fit:cover;border-radius:var(--r);outline:1px solid var(--line);width:100%;transition:outline-color .15s var(--ease), transform .2s var(--ease);background:#0e0e10;display:block}.gallery-item:hover img,.gallery-item:focus-visible img{outline:2px solid var(--accent);transform:translateY(-1px)}.gallery-missing{color:var(--faint);justify-content:center;align-items:center;font-size:11px;display:flex}.gallery-item span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.gallery-item:hover span{color:var(--text)}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.card h4.sub{padding:var(--s2) var(--s3) 2px;color:var(--muted);margin:0;font-size:11px;font-weight:600}.layer-add{width:100%}.layer-list{padding:0 var(--s2);flex-direction:column;gap:1px;display:flex}.lrow{border-radius:var(--r-sm);cursor:default;align-items:center;gap:4px;min-height:30px;padding:0 2px;display:flex}.lrow:hover{background:var(--surface-2)}.lrow.sel{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.lrow.off .lname,.lrow.off .lkind{opacity:.45}.lrow.off .vis{color:var(--faint)}.lrow.child{min-height:26px;padding-left:22px}.lrow .mini-gap{flex:none;width:22px}.lkind{min-width:34px;color:var(--faint);text-transform:uppercase;letter-spacing:.02em;flex:none;font-size:10px}.lrow.child .lkind{display:none}.lname{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);background:0 0;border-color:#0000;flex:1;padding:0 4px;overflow:hidden}input.lname:hover{background:var(--surface-3)}.lmat{flex:0 0 78px;height:22px;min-height:22px;padding:0 4px;font-size:11px}.lswatch{border-radius:50%;flex:none;height:20px;padding:0;width:20px!important}.lgrad{outline:1px solid var(--line);border-radius:3px;flex:0 0 64px;height:12px}.lrow .lacts{opacity:0;transition:opacity .12s var(--ease);gap:0;display:flex}.lrow:hover .lacts,.lrow:focus-within .lacts{opacity:1}.lrow .set{color:var(--text)}.lrow .set:hover{background:var(--accent-soft)}.lrow.addrow{min-height:26px}.linkbtn{color:var(--muted);background:0 0;border:none;align-items:center;gap:4px;min-height:22px;padding:0 4px;display:inline-flex}.linkbtn:hover{color:var(--text)}.float-panel{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);flex-direction:column;width:520px;max-width:calc(100vw - 16px);max-height:calc(100vh - 80px);display:flex;position:fixed;box-shadow:0 18px 50px #00000080,0 2px 8px #0006}.float-panel.flash{animation:fp-flash .5s var(--ease)}@keyframes fp-flash{0%{box-shadow:0 0 0 2px var(--accent), 0 18px 50px #00000080}to{box-shadow:0 18px 50px #00000080,0 2px 8px #0006}}.fp-head{border-bottom:1px solid var(--line);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;align-items:center;gap:6px;padding:6px 6px 6px 12px;display:flex}.fp-head:active{cursor:grabbing}.fp-head b{font-weight:600}.fp-body{padding:6px 0 12px;overflow-y:auto}.fp-sub{margin:10px var(--s3) 2px;color:var(--muted);font-size:11px;font-weight:600}.cols{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:4px;display:grid}.cols .row.slider{grid-template-columns:1fr;gap:0;padding-top:3px;padding-bottom:3px}.cols .row.slider>label{font-size:11px}@media (prefers-reduced-motion:reduce){.float-panel.flash{animation:none}.lacts{transition:none}}#overlay .shandle{pointer-events:all}#overlay .shape-handles text{paint-order:stroke;stroke:#141416b3;stroke-width:3px;font-weight:500}.lrow .lock{opacity:0;color:var(--faint)}.lrow:hover .lock,.lrow .lock:focus-visible,.lrow .lock.on{opacity:1}.lrow .lock.on{color:var(--text)}.lrow .lock:disabled{opacity:.55;cursor:not-allowed}.lrow.locked .lname,.lrow.locked .lkind{color:var(--muted)}.lrow.locked select:disabled,.lrow.locked input:disabled{opacity:.5;cursor:not-allowed}.fp-locked{color:var(--muted);align-items:center;gap:4px;display:flex}.fp-lockset{border:0;min-width:0;margin:0;padding:0}.fp-lockset:disabled{opacity:.55}.float-panel.locked .fp-head b:after{content:" · 잠김";color:var(--faint);font-weight:400}@media (prefers-reduced-motion:no-preference){.lrow .lock{transition:opacity .12s var(--ease)}}.ldrag{width:14px;height:22px;color:var(--faint);cursor:grab;touch-action:none;border-radius:3px;flex:none;place-items:center;display:grid}.ldrag .icon{width:14px;height:14px}.ldrag:hover{color:var(--text);background:var(--surface-3)}.ldrag:active{cursor:grabbing}.ldrag.none{cursor:default;visibility:hidden}.lrow.dragging{opacity:.55}.lrow.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.lrow.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.lrow.child{padding-left:8px}.lrow{position:relative}.lrow .lacts{border-radius:var(--r-sm);background:var(--surface-2);pointer-events:none;padding:0 2px;position:absolute;top:50%;right:26px;transform:translateY(-50%)}.lrow:hover .lacts,.lrow:focus-within .lacts{pointer-events:auto}.lrow.sel .lacts{background:#23323f}.lrow .lacts .lock{opacity:1}.gallery-grid{grid-auto-rows:max-content;align-content:start}.gallery-item{min-height:auto}.pager{margin-top:var(--s3);justify-content:center;align-items:center;gap:4px;display:flex}.pager .pg{border:1px solid var(--line);min-width:28px;min-height:28px;color:var(--muted);padding:0 8px}.pager .pg.on{border-color:var(--accent);color:#fff;background:var(--accent-soft)}.pager .pg:disabled{opacity:.35;cursor:default}.pager .pg-gap{color:var(--faint);padding:0 2px}.pager .pg-info{margin-left:var(--s2)}.toolbox{padding:0 var(--s3)}.tool-head{justify-content:space-between;align-items:center;gap:var(--s2);margin:var(--s2) 0 var(--s1);color:var(--muted);font-size:11px;display:flex}.tool-mat{width:96px;height:24px;min-height:24px;font-size:11px}.tool-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.tool-tile{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);height:48px;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 0 3px;display:flex}.tool-tile span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;overflow:hidden}.tool-tile:hover{border-color:var(--line-strong);background:var(--surface-3)}.tool-tile:hover span{color:var(--text)}.tool-tile:active{transform:translateY(1px)}.tool-foot{padding:var(--s2) 0 0}.float-panel.has-thumb{width:720px}.fp-main{flex:1;min-height:0;display:flex}.fp-right{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.fp-right .fp-body{flex:1}.fp-thumb{border-radius:var(--r);outline:1px solid var(--line);background:#0e0e10;flex:0 0 196px;align-self:flex-start;margin:10px 0 10px 10px;position:relative;overflow:hidden}.fp-thumb img{width:100%;height:auto;display:block}.fp-thumb-ph{aspect-ratio:210/297;color:var(--faint);place-items:center;font-size:11px;display:grid}.fp-thumb.busy:after{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite fp-pulse;position:absolute;top:6px;right:6px}@keyframes fp-pulse{50%{opacity:.25}}.fp-tabs{padding:8px var(--s3) 0;border-bottom:1px solid var(--line);gap:2px;display:flex}.fp-tabs[hidden]{display:none}.fp-tabs button{color:var(--muted);border-radius:var(--r-sm) var(--r-sm) 0 0;background:0 0;border:none;min-height:28px;padding:0 12px;box-shadow:inset 0 -2px #0000}.fp-tabs button:hover{color:var(--text);background:var(--surface-2)}.fp-tabs button.on{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.gz-row{gap:var(--s3);padding:8px var(--s3) 0;align-items:flex-start;display:flex}.gz-side{flex:1;min-width:0}.gz-side .row{padding-left:0;padding-right:0}.gz-side .btnrow{padding-left:0}.gizmo{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:0 0 156px;width:156px;height:156px}.gizmo:active{cursor:grabbing}.gizmo text{font-family:IBM Plex Sans,sans-serif}@media (prefers-reduced-motion:reduce){.fp-thumb.busy:after{animation:none}}.view-bar{top:var(--s3);z-index:6;align-items:center;bottom:auto}.view-bar button{color:var(--muted);border-radius:var(--r);background:0 0;border:none;min-height:28px;padding:0 12px}.view-bar button:hover{color:var(--text);background:var(--surface-2)}.view-bar button.on{color:#fff;background:var(--accent-strong)}.view-bar #page-nav{align-items:center;gap:2px;display:inline-flex}.view-bar #page-nav[hidden]{display:none}.view-bar #page-nav button{padding:0 8px;font-size:15px}#page-nav-label{text-align:center;min-width:46px;color:var(--text);font-variant-numeric:tabular-nums}.mockup-layer{z-index:5;background:radial-gradient(120% 90% at 50% 35%,#f4f4f6 0%,#d9d9de 70%,#c4c4ca 100%);position:absolute;inset:0}.mockup-layer canvas{touch-action:none;cursor:grab;outline:none;width:100%;height:100%;display:block}.mockup-layer canvas:active{cursor:grabbing}.mockup-layer canvas.panning{cursor:move}.mockup-status{color:#555;font-size:12px;position:absolute;top:56px;left:50%;transform:translate(-50%)}#viewport.mockup #tools{display:none}.mockup-layer{background:radial-gradient(120% 95% at 50% 35%,#f6f6f8 0%,#dedee2 62%,#b9b9c0 100%)}.mockup-layer.dark .mockup-status{color:#ffffff8c}.mockup-light .gizmo{margin:2px auto 4px;display:block}.mockup-tip{padding:var(--s2) var(--s3);margin:0}.side-mockup .mq-label{min-width:34px;color:var(--text);font-size:11px}.side-mockup .ml-room:empty{display:none}#left-mockup .row{grid-template-columns:52px minmax(0,1fr)}.side-mockup .btnrow{padding:var(--s1) var(--s3);justify-content:flex-end}.mockup-export{right:var(--s4);bottom:var(--s4);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);width:300px;color:var(--text);z-index:2;padding:12px 0 8px;position:absolute;box-shadow:0 10px 30px #0006}.mockup-export>b{padding:0 var(--s3) 6px;display:block}.mockup-export .note{padding:0 var(--s3)}.mockup-export .btnrow{justify-content:flex-end}.mockup-busy{z-index:3;cursor:progress;background:#0000002e;place-items:center;display:grid;position:absolute;inset:0}.mockup-busy .mb-box{width:320px;padding:14px var(--s3) 8px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);color:var(--text);cursor:default;box-shadow:0 10px 30px #0006}.mockup-busy p{color:var(--muted);font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:12px}.mockup-busy .progress{background:var(--surface-2);height:4px;margin:var(--s3) 0 var(--s2);border-radius:4px;overflow:hidden}.mockup-busy .progress div{background:var(--accent);width:0;height:100%;transition:width .15s}.mockup-busy .btnrow{justify-content:flex-end}.ruler,.ruler-corner{z-index:4;display:none;position:absolute}body.rulers-on .ruler,body.rulers-on .ruler-corner{display:block}.ruler-x{cursor:ns-resize;width:calc(100% - 20px);height:20px;top:0;left:20px}.ruler-y{cursor:ew-resize;width:20px;height:calc(100% - 20px);top:20px;left:0}.ruler-corner{background:var(--surface);width:20px;height:20px;min-height:0;color:var(--faint);letter-spacing:-.2px;border:none;border-radius:0;padding:0;font-size:8px;top:0;left:0;box-shadow:inset -1px -1px #ffffff1f}.ruler-corner:hover{color:var(--text);background:var(--surface-3)}body.rulers-on .view-bar{top:calc(20px + var(--s3))}body.rulers-on #hint{left:calc(20px + var(--s3))}#viewport.mockup .ruler,#viewport.mockup .ruler-corner{display:none}#viewport.tool-measure{cursor:crosshair}#overlay .guide-hit{pointer-events:stroke}#overlay .measure-pill{pointer-events:none}#overlay .measure-pill text{font-variant-numeric:tabular-nums}#sides{margin-left:6px}#sides[hidden],#face-nav[hidden]{display:none}.view-bar #face-nav{align-items:center;gap:2px;display:inline-flex}#left li.face-head{min-height:24px;color:var(--faint);letter-spacing:.3px;gap:8px;margin-top:6px;padding-top:2px;font-size:10.5px;font-weight:600}#left li.face-head:first-child{margin-top:0}#left li.face-head.on{color:var(--accent);background:0 0}#left li.face-head:hover{color:var(--text)}.face-dot{border-radius:2px;flex:none;width:8px;height:8px;margin-left:4px}.face-dot.outside{background:#8d8d96}.face-dot.inside{background:0 0;box-shadow:inset 0 0 0 1.5px #8d8d96}#left li.add-back{color:var(--faint);border:1px dashed var(--line-strong);gap:6px;margin-top:4px}#left li.add-back:hover{color:var(--text);border-color:var(--accent-line);background:var(--accent-soft)}.asset-library .asset-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.asset-library .gallery-item img,.asset-library .gallery-missing{aspect-ratio:1;object-fit:cover}.asset-library.dropping{outline:2px dashed var(--accent);outline-offset:-6px}.asset-cell{position:relative}.asset-cell>.gallery-item{width:100%}.asset-cell .asset-del{opacity:0;background:#141416cc;position:absolute;top:6px;right:6px}.asset-cell:hover .asset-del,.asset-cell .asset-del:focus-visible{opacity:1}.asset-upload-box{aspect-ratio:1;border:1.5px dashed var(--line-strong);border-radius:var(--r);color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.asset-upload:hover .asset-upload-box{border-color:var(--accent);color:var(--text)}.asset-upload-box small{color:var(--faint);font-size:10px}.asset-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);flex:1;overflow:hidden}#overlay .bhandle{pointer-events:all}#overlay .bg-handles text,#overlay .pen-path text{paint-order:stroke;stroke:#141416b3;stroke-width:3px;font-weight:500}#viewport.tool-pen{cursor:crosshair}.dice-row{align-items:center}.dice-label{align-items:center;gap:var(--s1);color:var(--faint);margin-right:var(--s1);font-size:11px;display:inline-flex}.gallery-chips.sub{margin-top:-4px}.gallery-chips.sub[hidden]{display:none}.gallery-chips.sub button{font-size:11px}.asset-library .asset-more{grid-column:1/-1;min-height:34px}.side-mockup,body.mode-mockup #left>section,body.mode-mockup #tabs,body.mode-mockup #inspector{display:none}body.mode-mockup .side-mockup{display:block}@keyframes side-in-l{0%{opacity:0;transform:translate(-10px)}}@keyframes side-in-r{0%{opacity:0;transform:translate(10px)}}#left>section,#left-mockup{animation:side-in-l .26s var(--ease) both}#tabs,#inspector,#right-mockup{animation:side-in-r .26s var(--ease) both}#left>section+section{animation-delay:40ms}#inspector.swap{animation:none}#inspector.swap>*{animation:side-in-r .22s var(--ease) both}#inspector.swap>:nth-child(2){animation-delay:30ms}#inspector.swap>:nth-child(n+3){animation-delay:60ms}#left li.removing{pointer-events:none;animation:.16s ease-in forwards row-out}@keyframes row-out{to{opacity:0;transform:translate(-12px)}}@media (prefers-reduced-motion:reduce){#left>section,#left-mockup,#tabs,#inspector,#right-mockup,#inspector.swap>*,#left li.removing{animation:none}}body.auth-pending>:not(#auth-gate):not(script),body.auth-required>:not(#auth-gate):not(script){display:none!important}body.authenticated #auth-gate{display:none}#auth-gate{background:radial-gradient(circle at 85% 12%,#19304a 0,#0000 35%),#141416;place-items:center;min-height:100vh;padding:28px;display:grid;overflow:auto}.auth-card{background:#1f1f22;border:1px solid #34343a;border-radius:14px;width:min(100%,440px);padding:40px;box-shadow:0 24px 80px #0004}.auth-home{color:#a7a7b1;font-size:12px;text-decoration:none}.auth-home:hover{color:#ededf0}.auth-mark{background:#0a6fc2;border-radius:10px;place-items:center;width:38px;height:38px;margin-top:36px;font-size:20px;font-weight:700;display:grid}.auth-eyebrow{color:#8a8a94;letter-spacing:.11em;margin:24px 0 8px;font-size:11px;font-weight:700}.auth-card h1{letter-spacing:-.035em;margin:0;font-size:clamp(27px,6vw,36px);line-height:1.2}.auth-description{color:#a7a7b1;margin:16px 0 28px;font-size:13px;line-height:1.6}#email-form label{color:#ededf0;margin-bottom:8px;font-weight:600;display:block}.auth-email-row{gap:8px;display:flex}.auth-email-row input{border:1px solid #45454d;flex:1;min-height:42px;padding:0 12px;font-size:13px}.auth-email-row button{color:#fff;background:#0a6fc2;flex:none;min-height:42px;padding:0 14px;font-weight:600}.auth-email-row button:hover{background:#085ca1}#auth-message{color:#a7a7b1;min-height:20px;margin:16px 0 0;line-height:1.5}#social-auth{margin-top:26px}#social-auth>p{color:#8a8a94}#social-buttons{gap:8px;display:flex}#social-buttons button{border:1px solid #45454d;flex:1;min-height:38px}.auth-note{color:#8a8a94;border-top:1px solid #34343a;margin:26px 0 0;padding-top:18px;font-size:11px;line-height:1.6}@media (width<=500px){.auth-card{padding:25px}.auth-email-row{flex-direction:column}.auth-email-row button{width:100%}}
