:root{color-scheme:light;--bg: #f2f3f5;--panel: #ffffff;--panel-2: #e9eaee;--line: #d5d7dd;--line-strong: #b4b7c0;--text: #1b1c20;--muted: #64656e;--accent: #3b6fd4;--danger: #c0392b;--logo: #111111;--pick-mark: #ff7a00;--align-guide: #ff2d95;--kind-sheet: #5b8fe6;--kind-lookdev: #45ab70;--ruler-outside: rgba(0, 0, 0, .12);--checker-a: #e9eaef;--checker-b: #dadbe2;--shadow-1: rgba(0, 0, 0, .14);--shadow-2: rgba(0, 0, 0, .2);--overlay: rgba(0, 0, 0, .35);--glass: rgba(255, 255, 255, .72);--glass-edge: rgba(255, 255, 255, .9)}:root{--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--shadow-sm: 0 1px 2px var(--shadow-1);--shadow-md: 0 4px 14px var(--shadow-1), 0 1px 3px var(--shadow-1);--shadow-lg: 0 14px 40px var(--shadow-2), 0 2px 8px var(--shadow-1);--dur-press: 90ms;--dur-state: .15s;--dur-surface: .22s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.4, .5, 1)}:root[data-theme=dark]{--ruler-outside: rgba(0, 0, 0, .3);color-scheme:dark;--bg: #0b0b0d;--panel: #131316;--panel-2: #1a1a1f;--line: #26262c;--line-strong: #3d3d46;--text: #e8e8ec;--muted: #9a9aa5;--accent: #5b8def;--danger: #e06868;--logo: #ffffff;--checker-a: #17171a;--checker-b: #101014;--shadow-1: rgba(0, 0, 0, .5);--shadow-2: rgba(0, 0, 0, .6);--overlay: rgba(0, 0, 0, .5);--glass: rgba(24, 24, 29, .74);--glass-edge: rgba(255, 255, 255, .08)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;font-family:system-ui,-apple-system,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,Roboto,sans-serif;color:var(--text);background:var(--bg);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line);border-radius:var(--r-xs)}::-webkit-scrollbar-thumb:hover{background:var(--muted)}::-webkit-scrollbar-corner{background:transparent}button,input,select,textarea{font-family:inherit}button{transition:background-color var(--dur-state) var(--ease-out),border-color var(--dur-state) var(--ease-out),color var(--dur-state) var(--ease-out),box-shadow var(--dur-state) var(--ease-out),opacity var(--dur-state) var(--ease-out),transform var(--dur-press) var(--ease-out)}button:not(:disabled):active{transform:scale(.96)}input,select{transition:background-color var(--dur-state) var(--ease-out),border-color var(--dur-state) var(--ease-out),box-shadow var(--dur-state) var(--ease-out)}:where(button,input,select,textarea,a,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-splash h1,.auth-card h1,.dash-title-row h1,.empty-hint h2{letter-spacing:-.02em;line-height:1.2}.dash-crumb,.panel-head h3{letter-spacing:-.01em}.small,.dash-card-meta,.account-email,.folder-count,.card-menu-hint,.save-name-label{letter-spacing:.01em}@keyframes surface-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.app{display:flex;flex-direction:column;height:100%}.file-actions{position:relative}.toolbar .file-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:1px;width:36px;height:34px;padding:0;color:var(--text)}.toolbar .file-export .file-btn{width:46px}.file-sep{width:1px;height:20px;margin:0 3px;background:var(--line)}.file-export{position:relative;display:flex}.file-export-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:120;min-width:150px;padding:5px;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-edge);transform-origin:top left;animation:surface-in var(--dur-surface) var(--ease-out)}.toolbar .file-export-row{display:block;width:100%;padding:8px 10px;background:transparent;color:var(--text);border:none;border-radius:var(--r-sm);font-size:13px;text-align:left;white-space:nowrap;cursor:pointer}.toolbar .file-export-row:hover{background:var(--accent);color:#fff}.toolbar{display:flex;align-items:center;gap:14px;padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}.toolbar button.toolbar-logo{display:flex;align-items:center;padding:0;border:none;background:transparent;color:var(--logo);transition:opacity var(--dur-state) var(--ease-out)}.toolbar button.toolbar-logo:hover:not(:disabled){background:transparent;border-color:transparent;opacity:.65}.group{display:flex;align-items:center;gap:6px}.group.right{margin-left:auto}.toolbar button{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--text);border:1px solid transparent;border-radius:var(--r-md);padding:6px 10px;font-size:13px;cursor:pointer}.tool-icon{display:block;flex:none}.zoom-icon{display:inline-flex;align-items:center;color:var(--muted)}.toolbar button:hover:not(:disabled){background:var(--panel-2);border-color:var(--line)}.toolbar button:disabled{opacity:.35;cursor:default}.toolbar button.active{background:var(--accent);border-color:var(--accent);color:#fff}.zoom-label{min-width:46px;text-align:center;font-variant-numeric:tabular-nums;color:var(--muted)}.draw-palette{gap:10px;padding-left:12px;border-left:1px solid var(--line)}.draw-label{font-size:12px;color:var(--muted)}.draw-color{display:flex;align-items:center}.draw-color input[type=color]{width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--panel-2);cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.draw-color input[type=color]:hover{border-color:var(--accent)}.draw-color input[type=color]::-webkit-color-swatch-wrapper{padding:0}.draw-color input[type=color]::-webkit-color-swatch{border:none;border-radius:50%}.draw-color input[type=color]::-moz-color-swatch{border:none;border-radius:50%}.draw-brush{display:flex;gap:3px}.brush-line{display:block}.toolbar .brush-btn{min-width:38px;justify-content:center;padding:3px 4px}.bucket-panel{gap:6px;padding-left:12px;border-left:1px solid var(--line)}.toolbar .bridge-swatch{width:20px;height:20px;padding:0;border:2px solid var(--line);border-radius:50%;opacity:.35;cursor:pointer}.toolbar .bridge-swatch.active{opacity:1;border-color:var(--text);box-shadow:0 0 0 2px var(--accent)}.bridge-custom{position:relative;display:inline-flex}.toolbar .bridge-custom .bridge-swatch{border-radius:var(--r-xs)}.toolbar .bridge-picker{position:absolute;left:0;bottom:0;width:1px;height:1px;padding:0;border:none;opacity:0;pointer-events:none}.toolrail{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 7px;background:var(--panel);border-right:1px solid var(--line);z-index:50}.rail-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:var(--r-md);cursor:pointer}.rail-btn:hover:not(:disabled){background:var(--panel-2);color:var(--text);border-color:var(--line)}.rail-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.rail-btn:disabled{opacity:.35;cursor:default}.rail-emoji{font-size:20px;line-height:1}.rail-sep{width:26px;height:1px;margin:4px 0;background:var(--line)}.body{flex:1;display:flex;min-height:0}.stage{position:relative;flex:1;overflow:hidden;background:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%) 0 / 24px 24px;cursor:crosshair}.stage.tool-select,.stage.space-pan{cursor:grab}.stage.panning,.stage.panning *{cursor:grabbing!important}.stage.space-pan *{cursor:grab!important}.stage.space-pan .palette-box,.stage.space-pan .connectors .conn-hit,.stage.space-pan .connectors .conn-vertex,.stage.space-pan .connectors .conn-handle,.stage.tool-pen .palette-box,.stage.tool-pen .connectors .conn-hit,.stage.tool-pen .connectors .conn-vertex,.stage.tool-pen .connectors .conn-handle,.stage.tool-pixelEraser .palette-box,.stage.tool-pixelEraser .connectors .conn-hit,.stage.tool-pixelEraser .connectors .conn-vertex,.stage.tool-pixelEraser .connectors .conn-handle,.stage.tool-bucket .connectors .conn-hit,.stage.tool-bucket .connectors .conn-vertex,.stage.tool-bucket .connectors .conn-handle,.stage.tool-eraser .connectors .conn-hit,.stage.tool-eraser .connectors .conn-vertex,.stage.tool-eraser .connectors .conn-handle{pointer-events:none}.stage.empty{display:grid;place-items:center;cursor:default}.stage.file-drag{outline:2px dashed var(--accent);outline-offset:-8px;background-color:color-mix(in srgb,var(--accent) 8%,transparent)}.empty-hint{text-align:center;color:var(--muted)}.empty-hint h2{color:var(--text);margin:0 0 28px}.world{position:absolute;top:0;left:0;transform-origin:0 0}canvas.bitmap{position:absolute;top:0;left:0;image-rendering:pixelated;background:#fff}.connectors{position:absolute;top:0;left:0;pointer-events:none}.connectors .conn-hit{pointer-events:stroke;cursor:move}.connectors .conn-hit.lr{cursor:ew-resize}.connectors .conn-hit.ud{cursor:ns-resize}.connectors .conn-line{pointer-events:none}.connectors .conn-vertex{pointer-events:all;cursor:move}.connectors .conn-handle{pointer-events:all;cursor:crosshair}.opt-corners{display:flex;gap:4px}.opt-corner{display:grid;place-items:center;width:30px;height:30px;padding:0;font-size:15px;line-height:1;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);cursor:pointer;transition:border-color var(--dur-state) var(--ease-out),color var(--dur-state) var(--ease-out)}.opt-corner.on{border-color:var(--accent);color:var(--accent)}.opt-name-row{display:flex;gap:6px;align-items:center}.opt-name-row .auth-input{flex:1;min-width:0}.opt-color{width:30px;height:30px;padding:0;border:none;background:none;cursor:pointer}.opt-name-row{--opt-name-h: 38px}.opt-name-row .auth-input{height:var(--opt-name-h)}.opt-name-row .opt-color{flex:none;width:var(--opt-name-h);height:var(--opt-name-h)}.opt-color::-webkit-color-swatch-wrapper{padding:0}.opt-color::-webkit-color-swatch{border:none}.opt-color::-moz-color-swatch{border:none}.align-guide{position:absolute;background:var(--align-guide);pointer-events:none;z-index:6}.toast{position:fixed;left:50%;bottom:44px;transform:translate(-50%);z-index:40;padding:10px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel);color:var(--text);box-shadow:var(--shadow-md);font-size:13px;font-weight:600;pointer-events:none;animation:toast-in var(--dur-surface) var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.group-box-wrap{position:absolute;pointer-events:none}.group-box{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.stage.tool-select .group-box{pointer-events:auto;cursor:move}.group-name-label{position:absolute;display:flex;align-items:center;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:700;line-height:1;white-space:nowrap}.group-corner{position:absolute;width:18px;height:18px;border:0 solid var(--pick-mark);opacity:0;pointer-events:none;transition:opacity var(--dur-state) var(--ease-out)}.group-corner.g-tl{border-top-width:3px;border-left-width:3px}.group-corner.g-tr{border-top-width:3px;border-right-width:3px;transform:translate(-100%)}.group-corner.g-bl{border-bottom-width:3px;border-left-width:3px;transform:translateY(-100%)}.group-corner.g-br{border-bottom-width:3px;border-right-width:3px;transform:translate(-100%,-100%)}.group-corner.tl,.group-corner.br{cursor:nwse-resize}.group-corner.tr,.group-corner.bl{cursor:nesw-resize}.stage.tool-select .group-corner,.stage.tool-group .group-corner{pointer-events:auto}.stage.tool-select .group-corner:hover,.stage.tool-group .group-corner:hover,.group-corner.dragging{opacity:1}.group-marquee{position:absolute;border:1px dashed var(--pick-mark);background:#ff7a0014;pointer-events:none}.stage.tool-group .connectors .conn-hit,.stage.tool-group .connectors .conn-vertex,.stage.tool-group .connectors .conn-handle{pointer-events:none}.stage.tool-group .palette-box.anchor:hover .pull-handle{opacity:0;pointer-events:none}.stage.tool-group{cursor:crosshair}.palette-box{position:absolute;border:3px solid #000;border-radius:0;cursor:move;transition:box-shadow var(--dur-state) var(--ease-out),border-color var(--dur-state) var(--ease-out)}.palette-box.selected{z-index:3;box-shadow:inset 0 0 0 2px var(--accent)}.cell-hi-label{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;font-weight:700;letter-spacing:.5px;-webkit-user-select:none;user-select:none}.palette-name-label{position:absolute;display:flex;align-items:center;justify-content:flex-end;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:700;line-height:1;white-space:nowrap}.cell-x{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.pull-handle{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #00000073;opacity:0;pointer-events:none;cursor:crosshair;transition:opacity var(--dur-state) var(--ease-out)}.palette-box.anchor:hover .pull-handle,.pull-handle.creating{opacity:1;pointer-events:auto}.panel.nodes-panel{width:280px;flex:none;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}.panel-head h3{margin:0;font-size:14px}.panel-head button{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);width:28px;height:28px;cursor:pointer;font-size:16px}.node-list{flex:1;overflow-y:auto;padding:6px;min-height:80px}.node-row{display:flex;flex-direction:column;gap:6px;padding:8px;margin-bottom:6px;border-radius:var(--r-md);border:1px solid transparent;background:var(--panel-2);cursor:pointer;transition:border-color var(--dur-state) var(--ease-out),box-shadow var(--dur-state) var(--ease-out),opacity var(--dur-state) var(--ease-out)}.node-row.selected{border-color:var(--accent)}.node-row-head{display:flex;align-items:center;gap:8px}.label-pos-btn{flex:none;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:var(--r-xs);font-size:11px;cursor:pointer}.label-pos-btn:hover{color:var(--text);border-color:var(--line)}.node-name{flex:1;background:transparent;color:var(--text);border:1px solid transparent;border-radius:var(--r-xs);padding:3px 6px;font-size:13px}.node-name:hover,.node-name:focus{background:var(--bg);border-color:var(--line)}.del-btn{font-size:14px}.del-btn:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.panel-head-btns button:disabled{opacity:.4;cursor:default}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:1px}.icon-btn .tool-icon{display:block}.icon-btn-text{display:grid;place-items:center;min-width:18px;height:18px;font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1}.color-import{display:flex;flex-direction:column;gap:10px;width:460px;max-width:100%}.color-import-note,.color-import-error{margin:0;font-size:12px;color:var(--muted)}.color-import-error{color:var(--danger)}.color-import-projects,.color-import-sheets{list-style:none;margin:0;padding:0;max-height:46vh;overflow:auto}.color-import-projects{display:flex;flex-direction:column;gap:6px}.color-import-sheets{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.color-import-project,.color-import-sheet{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);text-align:left;cursor:pointer}.color-import-project{display:flex;align-items:center;gap:10px;padding:6px}.color-import-sheet{display:flex;flex-direction:column;gap:6px;padding:6px}.color-import-project:hover,.color-import-sheet:hover:not(:disabled){border-color:var(--line-strong)}.color-import-sheet.selected{border-color:var(--muted);box-shadow:inset 0 0 0 1px var(--muted)}.color-import .btn-primary:disabled{opacity:.45;cursor:default}.color-import-sheet:disabled{opacity:.55;cursor:default}.color-import-thumb{flex:none;width:44px;height:44px;background:var(--panel);overflow:hidden}.color-import-image{display:block;height:90px;background:var(--panel);overflow:hidden}.color-import-thumb img,.color-import-image img{width:100%;height:100%;object-fit:contain;display:block}.color-import-thumb img{object-fit:cover}.color-import-text{display:flex;flex-direction:column;min-width:0}.color-import-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.color-import-path{font-size:11px;color:var(--muted)}.color-import-crumb{display:flex;align-items:center;gap:10px;min-width:0}.color-import-back{flex:none;padding:4px 10px;font-size:12px}.color-import-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:16px}.color-import-set{display:inline-flex;align-items:flex-end}.color-import-chip{width:12px;height:12px;border:1px solid var(--line)}.color-import-chip+.color-import-chip{margin-left:-1px}.color-import-chip.base{width:16px;height:16px}.panel-head-btns{display:flex;gap:6px}.panel-head-btns button{width:auto;min-width:28px;padding:0 8px;font-size:13px}.folder-section{margin-bottom:8px}.folder-head{display:flex;align-items:center;gap:6px;padding:4px;margin-bottom:4px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;transition:border-color var(--dur-state) var(--ease-out)}.folder-caret{flex:none;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:16px}.folder-caret:hover{color:var(--text)}.folder-head .tool-icon{flex:none;color:var(--muted)}.folder-name{flex:1;background:transparent;color:var(--text);border:1px solid transparent;border-radius:var(--r-xs);padding:3px 6px;font-size:13px;font-weight:600}.folder-name:hover,.folder-name:focus{background:var(--bg);border-color:var(--line)}.folder-count{flex:none;min-width:16px;text-align:center;color:var(--muted);font-size:11px}.folder-head.selected{border-color:var(--accent)}.folder-body{padding-left:10px}.palette-mark{flex:none;display:inline-flex;align-items:center;padding:0 2px;color:var(--muted);-webkit-user-select:none;user-select:none}.drag-handle{cursor:grab}.drag-handle:active{cursor:grabbing}.node-row.dragging{opacity:.5}.node-row.drop-before{box-shadow:0 -2px 0 0 var(--accent)}.node-row.drop-after{box-shadow:0 2px 0 0 var(--accent)}.folder-section.drag-over{outline:2px dashed var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.node-list.drag-over-uncat{outline:2px dashed var(--accent);outline-offset:-4px;border-radius:var(--r-sm)}.node-cells{display:flex;align-items:stretch;gap:4px;flex-wrap:wrap}.node-cell{width:30px;height:24px;border:1px solid var(--line);border-radius:var(--r-xs);padding:0;cursor:pointer}.node-cell.empty{background:var(--bg);background-image:linear-gradient(to top right,transparent calc(50% - 1px),var(--muted) calc(50% - 1px),var(--muted) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(to bottom right,transparent calc(50% - 1px),var(--muted) calc(50% - 1px),var(--muted) calc(50% + 1px),transparent calc(50% + 1px))}.node-cell.selected{outline:2px solid var(--accent);outline-offset:1px}.node-cell-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:var(--r-xs);cursor:pointer;font-size:13px;line-height:1}.node-cell-btn:hover{border-color:var(--accent)}.corner-toggles{display:flex;gap:4px;margin-top:4px}.corner-toggle{width:30px;height:18px;background:var(--bg);color:var(--muted);border:1px solid var(--line);border-radius:var(--r-xs);cursor:pointer;font-size:11px;line-height:1}.corner-toggle.on{background:var(--accent);border-color:var(--accent);color:#fff}.panel-foot{padding:8px 12px;border-top:1px solid var(--line);margin:0}.color-row{display:flex;align-items:center;gap:10px}.color-row input[type=color]{width:48px;height:36px;background:none;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}.hex-label{font-variant-numeric:tabular-nums;color:var(--muted)}.cell-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300}.cell-popup{position:fixed;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-edge);padding:16px;transform-origin:top left;animation:surface-in var(--dur-surface) var(--ease-out)}.cell-popup-row{display:flex;align-items:center;gap:12px}.cell-popup-swatch{width:64px;height:56px;flex:none;background:none;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}.hex-input{flex:1;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;font-size:15px;font-variant-numeric:tabular-nums;text-transform:uppercase}.hex-input:focus{border-color:var(--accent);outline:none}.cell-popup-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.cell-popup-actions button{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 10px;font-size:12px;cursor:pointer}.cell-popup-actions button:hover:not(:disabled){border-color:var(--accent)}.cell-popup-actions button:disabled{opacity:.4;cursor:default}.muted{color:var(--muted)}.small{font-size:11px}.statusbar{padding:5px 12px;background:var(--panel);border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:200;animation:overlay-in var(--dur-surface) var(--ease-out)}.modal{min-width:360px;max-width:520px;max-height:80vh;overflow:auto;background:var(--glass);-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);border:1px solid var(--line);--r-xs: 0;--r-sm: 0;--r-md: 0;--r-lg: 0;--r-xl: 0;border-radius:0;box-shadow:var(--shadow-lg),inset 0 1px 0 var(--glass-edge);animation:surface-in var(--dur-surface) var(--ease-spring)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.modal-head.bare{padding-bottom:0;border-bottom:none}.modal-head h3{margin:0;font-size:15px;letter-spacing:-.01em}.modal-close{display:grid;place-items:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:var(--r-sm);color:var(--muted);font-size:15px;cursor:pointer}.modal-close:hover{background:var(--panel-2);color:var(--text)}.modal-body{padding:16px;font-size:13px;line-height:1.7}.settings-form{display:flex;flex-direction:column;gap:12px}.settings-row{display:flex;align-items:center;gap:10px}.settings-row select{margin-left:auto;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 8px;font-size:13px}.size-buttons{margin-left:auto;display:flex;gap:6px}.size-button{width:30px;height:30px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);font-size:13px;cursor:pointer}.size-button:hover{border-color:var(--accent)}.size-button.active{background:var(--accent);border-color:var(--accent);color:#fff}.size-button.orient{width:auto;padding:0 12px}.settings-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.settings-color{margin-left:auto;width:48px;height:30px;padding:0;background:none;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}.help-body ol{margin:8px 0;padding-left:20px}.help-body li{margin-bottom:6px}.confirm-body p{margin:0 0 18px;line-height:1.6}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.btn-ghost,.btn-primary,.btn-danger{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 16px;font-size:13px;cursor:pointer}.btn-ghost{background:var(--panel-2);color:var(--text)}.btn-ghost:hover{border-color:var(--muted)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,#fff);border-color:color-mix(in srgb,var(--accent) 88%,#fff)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 86%,#fff);border-color:color-mix(in srgb,var(--danger) 86%,#fff)}.app-logo{display:block;color:var(--logo)}.empty-hint .app-logo{margin:0 auto -10px}.auth-screen{height:100%;display:grid;place-items:center;background:var(--bg);color:var(--text)}.auth-splash{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted)}.auth-splash h1,.auth-card h1{margin:4px 0 0;color:var(--text);font-size:22px}.auth-spinner{width:26px;height:26px;margin-top:6px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-card{width:320px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 26px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);animation:surface-in var(--dur-surface) var(--ease-out)}.auth-card .muted{margin:0}.auth-input{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);padding:9px 11px;font-size:14px}.auth-input:focus{border-color:var(--accent);outline:none}.auth-input:disabled{opacity:.5}.auth-group{width:100%;margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:8px}.auth-field{width:100%;display:flex;flex-direction:column;gap:6px}.auth-field-label{font-size:12px;letter-spacing:.01em;color:var(--muted)}.auth-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) calc(50% + 1px),calc(100% - 12px) calc(50% + 1px);background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}.auth-select:disabled{cursor:default}.auth-subfields{display:flex;flex-direction:column;gap:8px}.profile-page{display:flex;flex-direction:column;height:100%}.profile-card{max-width:460px;margin:0 auto;display:flex;flex-direction:column;gap:18px;padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg)}.profile-title{margin:0;font-size:18px;letter-spacing:-.02em}.profile-row{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0}.profile-label{padding:0;font-size:12px;letter-spacing:.01em;color:var(--muted)}.profile-static{font-size:14px;color:var(--text)}.profile-actions{display:flex;justify-content:flex-end;gap:8px}.auth-error{width:100%;margin:0;color:var(--danger);font-size:12px}.auth-submit{width:100%;margin-top:4px;background:var(--accent);color:#fff;border:none;border-radius:var(--r-md);padding:10px;font-size:14px;font-weight:600;cursor:pointer}.auth-submit:disabled{opacity:.5;cursor:default}.auth-hint{margin:2px 0 0;text-align:center;line-height:1.4}.auth-notice{width:100%;margin:0;color:var(--accent);font-size:12px;line-height:1.4}.auth-switch{width:100%;margin-top:2px;background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:underline}.auth-switch:disabled{opacity:.5;cursor:default}.theme-toggle{display:grid;place-items:center}.auth-theme{position:fixed;top:14px;right:16px;width:34px;height:34px;display:grid;place-items:center;padding:0;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer}.auth-theme:hover{border-color:var(--accent)}.dash{display:flex;flex-direction:column;height:100%;background:var(--bg)}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.dash-brand{display:flex;align-items:center;gap:8px;padding:5px 9px;margin-left:-9px;background:transparent;border:1px solid transparent;border-radius:var(--r-md);font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--text);cursor:pointer}.dash-brand:hover{opacity:.65}.dash-brand .app-logo{color:var(--logo)}.dash-actions{display:flex;align-items:center;gap:8px}.dash-main{flex:1;overflow:auto;padding:24px 28px 40px}.dash-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:18px}.dash-title-row h1{margin:0;font-size:20px;color:var(--text)}.dash-buttons{display:flex;gap:8px;flex-wrap:wrap}.dash-primary{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--r-md);padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer}.dash-primary:hover{filter:brightness(1.08)}.dash-buttons .btn-ghost{padding:8px 14px}.dash-notice{margin:0 0 16px;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-sm);font-size:13px;line-height:1.5;color:var(--muted)}.dash-error{border-left-color:var(--danger)}.dash-empty{line-height:1.6}.dash-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.dash-card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color var(--dur-state) var(--ease-out),box-shadow var(--dur-state) var(--ease-out),transform var(--dur-state) var(--ease-out),opacity var(--dur-state) var(--ease-out)}.dash-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.dash-card-open{display:block;width:100%;padding:0 0 10px;background:transparent;border:none;text-align:left;cursor:pointer;color:var(--text)}.dash-card .dash-card-open:active{transform:none}.dash-card:has(.dash-card-open:active){transform:scale(.985)}.dash-thumb{display:block;position:relative;height:130px;background:var(--panel-2);border-bottom:1px solid var(--line)}.dash-band{display:block;height:22px;padding:0 10px;color:#fff;font-size:11px;font-weight:600;letter-spacing:.02em;line-height:22px}.dash-band.sheet{background:var(--kind-sheet)}.dash-band.lookdev{background:var(--kind-lookdev)}.dash-card.has-band .dash-thumb{height:108px}.dash-card.has-band .dash-card-del{top:30px}.kind-pick{display:flex;gap:8px;margin-bottom:12px}.kind-option{flex:1;display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 10px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);cursor:pointer}.kind-option span{font-size:11px;color:var(--muted);line-height:1.4}.kind-option.on{border-color:var(--accent)}.kind-option.on b{color:var(--accent)}.lookdev-stage{flex:1;min-width:0;position:relative;overflow:hidden;background:var(--bg);cursor:grab;touch-action:none}.lookdev-stage.grabbing{cursor:grabbing}.lookdev-stage.dropping{outline:2px dashed var(--accent);outline-offset:-6px;background:color-mix(in srgb,var(--accent) 6%,var(--bg))}.lookdev-stage .world{position:absolute;left:0;top:0;transform-origin:0 0}.look-ruler{position:absolute;left:0;right:0;top:0;z-index:5;background:var(--panel);border-bottom:1px solid var(--line);cursor:ns-resize;overflow:hidden;-webkit-user-select:none;user-select:none}.ruler-tick{position:absolute;top:0;bottom:0;padding-left:4px;border-left:1px solid var(--line-strong);color:var(--muted);font-size:10px;line-height:21px;font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap}.ruler-outside{position:absolute;top:0;bottom:0;background:var(--ruler-outside);pointer-events:none}.ruler-center{position:absolute;bottom:0;width:0;height:0;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid var(--accent);pointer-events:none}.ruler-tick.minor{top:auto;height:6px;padding:0;border-left-color:var(--line)}.look-guide{position:absolute;left:0;right:0;z-index:4;height:0;border-top:1.5px solid color-mix(in srgb,var(--align-guide) 55%,transparent);cursor:ns-resize}.look-guide:before{content:"";position:absolute;left:0;right:0;top:-5px;height:11px}.look-margin{position:absolute;background:var(--panel-2)}.look-board{position:absolute;background:#fff;box-shadow:var(--shadow-md)}.look-sheet{position:absolute;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.look-sheet img{position:absolute;display:block;-webkit-user-drag:none}.look-sheet.selected{outline-style:solid;outline-color:var(--pick-mark)}.look-cropghost{position:absolute;opacity:.28;pointer-events:none;-webkit-user-drag:none}.look-crophandles{position:absolute;outline-style:solid;outline-color:var(--pick-mark);pointer-events:none}.crop-handle{position:absolute;width:var(--crop-h);height:var(--crop-h);border:var(--crop-b) solid var(--pick-mark)}.crop-handle.nw{left:calc(-1 * var(--crop-b));top:calc(-1 * var(--crop-b));border-right:none;border-bottom:none}.crop-handle.ne{right:calc(-1 * var(--crop-b));top:calc(-1 * var(--crop-b));border-left:none;border-bottom:none}.crop-handle.se{right:calc(-1 * var(--crop-b));bottom:calc(-1 * var(--crop-b));border-left:none;border-top:none}.crop-handle.sw{left:calc(-1 * var(--crop-b));bottom:calc(-1 * var(--crop-b));border-right:none;border-top:none}.lookdev-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;pointer-events:none;max-width:420px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.lookdev-empty h2{margin:0;font-size:18px;letter-spacing:-.02em}.lookdev-empty p{margin:0;color:var(--muted);font-size:13px;line-height:1.7;word-break:keep-all}.panel.look-panel{width:280px;flex:none;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.look-empty-hint{margin:8px 4px;color:var(--muted);font-size:12px}.look-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin-bottom:6px;border-radius:var(--r-md);border:1px solid transparent;background:var(--panel-2);color:var(--text);font-size:12px;text-align:left;cursor:pointer;transition:border-color var(--dur-state) var(--ease-out)}.look-row:hover{border-color:var(--line-strong)}.look-row.selected{border-color:var(--accent)}.look-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.look-row-size{flex:none;color:var(--muted);font-variant-numeric:tabular-nums}.look-foot-board{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}.panel-foot{display:flex;align-items:center;gap:8px}.board-set{display:flex;flex-direction:column;gap:12px;min-width:300px}.board-row{display:flex;align-items:flex-end;gap:8px}.board-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.board-row input{width:100px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);padding:7px 9px;font-size:13px;font-variant-numeric:tabular-nums}.board-x,.board-unit{color:var(--muted);font-size:12px;padding-bottom:9px}.board-presets{display:flex;gap:6px}.board-presets button{background:var(--panel-2);color:var(--text);border:1px solid var(--line);padding:5px 10px;font-size:12px;cursor:pointer}.board-presets button:hover:not(:disabled){border-color:var(--line-strong)}.board-presets button:disabled{opacity:.4;cursor:default}.board-orient{align-self:center;color:var(--muted);font-size:12px}.board-note{margin:0;color:var(--muted);font-size:12px;line-height:1.6;word-break:keep-all}.look-paint{position:absolute;display:block;pointer-events:none}.look-tabs{display:flex;border-bottom:1px solid var(--line)}.look-tabs button{flex:1;display:grid;place-items:center;padding:8px 0;border:none;border-bottom:2px solid transparent;background:none;color:var(--muted);cursor:pointer;transition:color var(--dur-state) var(--ease-out),border-color var(--dur-state) var(--ease-out)}.look-tabs button:hover{color:var(--text)}.look-tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.look-pal-head{padding:8px 12px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.look-pal-name{color:var(--text);font-weight:600}.look-pal-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border:1px solid transparent;border-radius:var(--r-sm)}.look-pal-row.selected{border-color:var(--muted)}.look-pal-chip{flex:none;width:26px;height:26px;padding:0;border:1px solid var(--line);border-radius:var(--r-xs);cursor:pointer}.look-pal-hex{flex:1;min-width:0;font-size:12px;font-variant-numeric:tabular-nums}.look-pal-share{flex:none;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.look-pal-del{flex:none;display:grid;place-items:center;width:24px;height:24px;padding:0;border:none;background:none;color:var(--muted);cursor:pointer;opacity:0;transition:opacity var(--dur-state) var(--ease-out)}.look-pal-row:hover .look-pal-del,.look-pal-del:focus-visible{opacity:1}.look-pal-del:hover{color:var(--danger)}.look-set.grouped{margin:2px 0 6px;border-left:2px solid var(--line-strong)}.look-pal-row[draggable=true]{cursor:grab}.look-pal-row.dragging{opacity:.4}.look-pal-row.child{padding-left:14px}.look-pal-role{flex:none;min-width:38px;color:var(--muted);font-size:11px}.look-pal-unlink{flex:none;padding:2px 6px;border:1px solid var(--line);border-radius:var(--r-xs);background:var(--panel-2);color:var(--muted);font-size:11px;cursor:pointer;opacity:0}.look-pal-row:hover .look-pal-unlink,.look-pal-unlink:focus-visible{opacity:1}.look-pal-unlink:hover{color:var(--text)}.look-link-zones{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:2px 6px 4px}.look-link-zone{padding:5px 0;border:1px dashed var(--line-strong);border-radius:var(--r-xs);color:var(--muted);font-size:11px;text-align:center}.look-link-zone.over{border-style:solid;border-color:var(--accent);color:var(--accent)}.cpick{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.cpick-square{position:relative;height:108px;border:1px solid var(--line);border-radius:var(--r-xs);cursor:crosshair;touch-action:none;background-image:linear-gradient(to top,#000,#0000),linear-gradient(to right,#fff,#fff0)}.cpick-strip{position:relative;height:14px;border:1px solid var(--line);border-radius:var(--r-xs);cursor:ew-resize;touch-action:none;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.cpick-dot,.cpick-slider{position:absolute;border:2px solid #fff;box-shadow:0 0 0 1px #0006;pointer-events:none}.cpick-dot{width:12px;height:12px;margin:-7px 0 0 -7px;border-radius:50%}.cpick-slider{top:-2px;bottom:-2px;width:6px;margin-left:-3px;border-radius:2px}.cpick-row{display:flex;align-items:center;gap:8px}.cpick-now{flex:none;width:28px;height:28px;border:1px solid var(--line);border-radius:var(--r-xs)}.cpick-hex{flex:1;min-width:0;height:28px;padding:0 8px;border:1px solid var(--line);border-radius:var(--r-xs);background:var(--panel-2);color:var(--text);font:inherit;font-size:12px;font-variant-numeric:tabular-nums}.cpick-value{color:var(--muted);font-size:11px;letter-spacing:.01em;font-variant-numeric:tabular-nums}.toolbar button.file-btn.on,.toolbar button.file-btn.on:hover{background:var(--muted);border-color:var(--muted);color:var(--panel)}.look-export{display:flex;flex-direction:column;gap:10px;width:470px;max-width:100%}.look-export-stage{position:relative;display:grid;place-items:center;min-height:140px;padding:12px;background:var(--panel-2);border:1px solid var(--line)}.look-export-preview{display:block;max-width:100%;outline:1px solid var(--line);box-shadow:var(--shadow-sm)}.look-export-stage:not(.ready) .look-export-preview{display:none}.look-export-wait{margin:0;color:var(--muted);font-size:12px}.look-export-format{flex:none;margin-right:auto;height:30px;padding:0 8px;border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;font-size:12px}.look-export-actions{display:flex;align-items:center;gap:8px;margin-top:4px}.dash-thumb img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.dash-thumb-empty{display:grid;place-items:center;height:100%;color:var(--muted)}.dash-card-name{display:block;padding:10px 12px 2px;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-card-meta{display:block;padding:0 12px;font-size:11px;color:var(--muted)}.dash-card-del{position:absolute;top:8px;right:8px;width:28px;height:28px;display:grid;place-items:center;background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:var(--r-sm);font-size:13px;cursor:pointer;opacity:0}.dash-card:hover .dash-card-del,.dash-card-del:focus-visible{opacity:1}.dash-card-del:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.save-name-form{display:flex;flex-direction:column;gap:8px}.save-name-label{font-size:12px;color:var(--muted)}.save-name-form .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.save-name-submit{width:auto;margin-top:0;padding:7px 16px}.auth-input.invalid{color:var(--danger);border-color:var(--danger)}.auth-input.invalid:focus{border-color:var(--danger)}.save-name-error{color:var(--danger)}.dash-card.selected{border-color:var(--muted)}.dash-card-open{-webkit-user-select:none;user-select:none}.dash-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:2px}.dash-crumb-item{display:inline-flex;align-items:center;gap:2px}.dash-crumb-sep{color:var(--muted);font-size:13px}.dash-crumb{background:transparent;border:1px solid transparent;border-radius:var(--r-sm);padding:4px 8px;font-size:18px;font-weight:700;color:var(--muted);cursor:pointer}.dash-crumb:hover{color:var(--text);background:var(--panel-2)}.dash-crumb.current{color:var(--text);cursor:default}.dash-crumb.drag-over{border-color:var(--muted);border-style:dashed;color:var(--text)}.dash-folder-thumb{display:grid;place-items:center;background:var(--panel-2);color:var(--muted)}.dash-card:hover .dash-folder-thumb,.dash-card.selected .dash-folder-thumb{color:var(--text)}.dash-card.drag-over{border-color:var(--muted);border-style:dashed}.dash-card.dragging{opacity:.45}.dash-card[draggable=true] .dash-card-open{cursor:grab}.dash-hint{margin:14px 2px 0}.delete-message{margin:0 0 4px;line-height:1.5}.delete-target{color:var(--danger);word-break:break-all}.delete-confirm .btn-danger:disabled{opacity:.45;cursor:default}.account{position:relative}.account-avatar{display:grid;place-items:center;width:34px;height:34px;padding:0;border:none;border-radius:50%;overflow:hidden;color:#fff;font-size:14px;font-weight:700;line-height:1;cursor:pointer}.account-avatar:hover,.account-avatar[aria-expanded=true]{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--accent)}.account-avatar img{width:100%;height:100%;object-fit:cover;display:block}.account-avatar.small{width:38px;height:38px;font-size:15px;box-shadow:none;cursor:default}.account-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:230px;padding:6px;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-edge);z-index:120;transform-origin:top right;animation:surface-in var(--dur-surface) var(--ease-out)}.account-who{display:flex;align-items:center;gap:10px;padding:8px 10px 10px}.account-who-text{display:flex;flex-direction:column;gap:2px;min-width:0}.account-who-text b{font-size:13px}.account-email{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.account-sep{height:1px;margin:2px 6px 4px;background:var(--line)}.account-menu .account-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:9px 10px;background:transparent;color:var(--text);border:none;border-radius:var(--r-sm);font-size:13px;text-align:left;cursor:pointer}.account-menu .account-item:hover{background:var(--panel-2);border-color:transparent}.account-item-icon{display:flex;align-items:center;font-size:13px;color:var(--muted)}.account-menu .account-item.danger:hover{color:var(--danger)}.toolbar button.account-avatar{display:grid;place-items:center;width:30px;height:30px;padding:0;border:none;border-radius:50%;font-size:13px}.dash-icon-btn{display:grid;place-items:center;width:38px;height:38px;padding:0;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer}.dash-icon-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.dash-icon-btn:disabled{opacity:.45;cursor:default}.dash-icon-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.dash-icon-btn.primary:hover:not(:disabled){filter:brightness(1.08);color:#fff}.dash-retry{margin-left:10px;padding:4px 10px;font-size:12px}.dash-sort{position:relative}.dash-sort-btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;font-size:13px}.dash-sort-caret{font-size:10px;color:var(--muted)}.dash-sort-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:140px;padding:5px;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-edge);z-index:120;transform-origin:top right;animation:surface-in var(--dur-surface) var(--ease-out)}.dash-sort-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 10px;background:transparent;color:var(--text);border:none;border-radius:var(--r-sm);font-size:13px;text-align:left;cursor:pointer}.dash-sort-item:hover{background:var(--panel-2)}.dash-sort-item.on{color:var(--accent);font-weight:600}.card-menu{position:fixed;min-width:150px;padding:5px;background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md),inset 0 1px 0 var(--glass-edge);z-index:200;transform-origin:top left;animation:surface-in var(--dur-surface) var(--ease-out)}.card-menu-item{display:block;width:100%;padding:9px 10px;background:transparent;color:var(--text);border:none;border-radius:var(--r-sm);font-size:13px;text-align:left;cursor:pointer}.card-menu-item:hover:not(:disabled){background:var(--panel-2)}.card-menu-item:disabled{color:var(--muted);opacity:.6;cursor:default}.card-menu-item.danger{color:var(--danger)}.card-menu-hint{margin:2px 6px 4px;font-size:11px;line-height:1.4;color:var(--muted);max-width:190px}.landing{--ink: #f3f3f1;--ink-2: #e8e8e4;--wire: #0000ff;--wire-hover: #0000cc;--wire-soft: rgba(0, 0, 255, .4);--fg: #16171a;--fg-soft: #4b4e55;--fg-dim: #74777e;--hair-rule: rgba(0, 0, 0, .12);--grid-line: rgba(0, 0, 0, .045);--hatch: rgba(0, 0, 0, .035);--mark: rgba(0, 0, 0, .28);height:100%;overflow-y:auto;overflow-x:hidden;background:var(--ink);color:var(--fg);color-scheme:light}:root[data-theme=dark] .landing{--ink: #0b0c0e;--ink-2: #101216;--wire: #4d6bff;--wire-hover: #6480ff;--wire-soft: rgba(77, 107, 255, .5);--fg: #eceef2;--fg-soft: #b9bcc4;--fg-dim: #80838d;--hair-rule: rgba(255, 255, 255, .14);--grid-line: rgba(255, 255, 255, .028);--hatch: rgba(255, 255, 255, .016);--mark: rgba(255, 255, 255, .35);color-scheme:dark}.landing h1,.landing h2,.landing p,.landing li{word-break:keep-all;overflow-wrap:anywhere}.ln-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}.ln-dim{color:var(--fg-dim)}.ln-rule{flex:1;height:1px;background:var(--hair-rule)}.ln-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.ln-brand{display:flex;align-items:center;gap:8px;height:40px;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.ln-brand .app-logo{color:var(--logo)}.ln-nav-actions{display:flex;align-items:center;gap:8px}.ln-signin{padding:8px 16px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r-md);font-size:13px;font-weight:600;cursor:pointer}.ln-signin:hover{border-color:var(--line-strong)}.ln-hero{position:relative;min-height:calc(100vh - 59px);display:flex;align-items:stretch;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:44px 44px}.ln-hero-grid{width:100%;display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);align-items:stretch;gap:0}.ln-hero-type{position:relative;align-self:center;padding:clamp(80px,12vh,140px) 0 clamp(80px,12vh,140px) clamp(20px,5vw,84px)}.ln-lede{max-width:34ch}.ln-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 clamp(16px,3vh,28px);color:var(--fg-dim)}.ln-live{width:6px;height:6px;background:var(--wire);animation:ln-blink 2.4s steps(1,end) infinite}@keyframes ln-blink{0%,55%{opacity:1}56%,to{opacity:.25}}.ln-h1{margin:0;font-size:clamp(40px,6.8vw,118px);line-height:.92;letter-spacing:-.045em;font-weight:800;text-transform:uppercase;color:var(--fg)}.ln-h1 span{display:block;white-space:nowrap}.ln-lede{margin:clamp(18px,3vh,30px) 0 0;font-size:clamp(14px,1.1vw,16px);line-height:1.75;color:var(--fg-soft)}.ln-legend{display:flex;flex-direction:column;gap:5px;margin-top:clamp(28px,5vh,52px);padding-top:14px;border-top:1px solid var(--hair-rule);max-width:34ch}.ln-legend-ko{font-size:12.5px;color:var(--fg-dim)}.ln-actions{display:flex;align-items:center;gap:18px;margin-top:clamp(20px,3.5vh,34px);flex-wrap:wrap}.ln-cta{padding:12px 22px;background:var(--wire);color:#fff;border:none;border-radius:0;font-size:13px;font-weight:700;letter-spacing:.02em;cursor:pointer}.ln-cta:hover{background:var(--wire-hover)}.ln-link{color:var(--fg-dim);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px}.ln-link:hover{color:var(--fg);border-bottom-color:var(--wire)}.ln-hero-media{min-width:0}.ln-hero-foot{position:absolute;left:clamp(20px,5vw,84px);right:59%;bottom:26px;display:flex;align-items:center;gap:14px}.ln-media{margin:0}.ln-media-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;color:var(--fg-dim)}.ln-media-index{color:var(--wire)}.ln-media-frame{position:relative;display:grid;place-items:center;overflow:hidden}.ln-media.is-fill{position:relative;height:100%}.ln-media.is-fill .ln-media-frame{height:100%}.ln-media.is-fill .ln-media-frame.is-empty{border:none;border-left:1px dashed var(--wire-soft)}.ln-media-frame.is-empty{border:1px dashed var(--wire-soft);background:repeating-linear-gradient(-45deg,var(--hatch) 0 10px,transparent 10px 20px)}.ln-media-frame.is-filled{border:none;background:transparent}.ln-media-video{width:100%;height:100%;object-fit:cover;display:block}.ln-media-fade{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(to right,var(--ink) 0,transparent 16%),linear-gradient(to left,var(--ink) 0,transparent 14%),linear-gradient(to bottom,var(--ink) 0,transparent 11%),linear-gradient(to top,var(--ink) 0,transparent 11%)}.ln-media.is-fill .ln-media-fade{background:linear-gradient(to right,var(--ink) 0,transparent 22%)}.ln-media-mark{position:absolute;width:14px;height:14px;border:0 solid var(--mark)}.ln-media-mark.tl{top:8px;left:8px;border-top-width:1px;border-left-width:1px}.ln-media-mark.tr{top:8px;right:8px;border-top-width:1px;border-right-width:1px}.ln-media-mark.bl{bottom:8px;left:8px;border-bottom-width:1px;border-left-width:1px}.ln-media-mark.br{bottom:8px;right:8px;border-bottom-width:1px;border-right-width:1px}.ln-media-empty{display:grid;justify-items:center;gap:12px;color:var(--fg-dim)}.ln-media-empty p{margin:0}.ln-media-note{font-size:12px;letter-spacing:.02em;color:var(--fg-dim)}.ln-media-cap{margin-top:10px;font-size:12px;color:var(--fg-dim)}.ln-contents{padding:clamp(60px,12vh,140px) clamp(20px,5vw,84px) clamp(60px,10vh,120px);border-top:1px solid var(--hair-rule)}.ln-contents-title{margin:0 0 clamp(20px,4vh,40px)}.ln-contents-list{list-style:none;margin:0;padding:0;max-width:1100px}.ln-contents-list li{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,.8fr);align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid var(--hair-rule)}.ln-contents-en{font-size:clamp(18px,2.4vw,34px);font-weight:700;letter-spacing:-.03em;text-transform:uppercase}.ln-contents-ko{font-size:13px;color:var(--fg-dim)}.ln-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px clamp(20px,5vw,84px);border-top:1px solid var(--hair-rule)}.ln-foot-links{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.ln-foot-link{padding:6px 10px;background:transparent;color:var(--fg-dim);border:1px solid transparent;border-radius:0;font-size:12.5px;cursor:pointer}.ln-foot-link:hover{color:var(--fg);border-color:var(--hair-rule)}.landing .modal{border-radius:0;background:var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--hair-rule);color:var(--fg)}.landing .modal-head{border-bottom-color:var(--hair-rule)}.landing .modal-close{color:var(--fg-dim)}.ln-legal-table{margin:0;display:grid;gap:10px}.ln-legal-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;font-size:13px;line-height:1.6}.ln-legal-row dt{color:var(--fg-dim)}.ln-legal-row dd{margin:0}.ln-legal-doc section{margin-bottom:18px}.ln-legal-doc h4{margin:0 0 6px;font-size:13px}.ln-legal-doc p{margin:0;font-size:13px;line-height:1.75;color:var(--fg-soft);white-space:pre-line}.ln-legal-date{color:var(--fg-dim);font-size:12px}.ln-legal-empty{margin:0;font-size:13px;color:var(--fg-dim)}@media (min-width: 1700px){.ln-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,.95fr)}.ln-hero-type{padding-left:clamp(84px,8vw,240px)}.ln-hero-foot{left:clamp(84px,8vw,240px);right:49%}}@media (max-width: 1080px){.ln-hero-grid{grid-template-columns:minmax(0,1fr) minmax(200px,.55fr);padding-right:0}.ln-hero-grid{grid-template-columns:minmax(0,1fr)}.ln-hero-type{padding:clamp(40px,7vh,72px) clamp(20px,5vw,84px)}.ln-media.is-fill,.ln-media.is-fill .ln-media-frame{height:auto}.ln-media.is-fill .ln-media-frame{aspect-ratio:16 / 9}.ln-h1 span{white-space:normal}}@media (max-width: 760px){.ln-hero-media .ln-media-frame{margin-right:0}.ln-hero{min-height:0;padding-bottom:64px}.ln-hero-grid{grid-template-columns:minmax(0,1fr);padding-right:clamp(20px,5vw,84px)}.ln-hero-foot{display:none}.ln-contents-list li{grid-template-columns:34px minmax(0,1fr)}.ln-contents-ko{grid-column:2}}.auth-back{position:fixed;top:14px;left:16px;padding:7px 12px;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:var(--r-md);font-size:13px;cursor:pointer}.auth-back:hover:not(:disabled){background:var(--panel-2);border-color:var(--line);color:var(--text)}.auth-back:disabled{opacity:.5;cursor:default}.panel.nodes-panel,.panel.look-panel{--r-xs: 0;--r-sm: 0;--r-md: 0;--r-lg: 0;--r-xl: 0}.panel.nodes-panel .panel-head,.panel.look-panel .panel-head{align-items:stretch;min-height:40px;padding:0 0 0 12px}.panel.nodes-panel .panel-head h3,.panel.look-panel .panel-head h3{align-self:center;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.panel.look-panel .panel-head .cpick-value{align-self:center;padding-right:12px}.panel.nodes-panel .panel-head-btns,.panel.look-panel .panel-head-btns{gap:0}.panel.nodes-panel .panel-head-btns button,.panel.look-panel .panel-head-btns button{width:40px;min-width:40px;height:auto;padding:0;border:none;border-left:1px solid var(--line);background:transparent}.panel.nodes-panel .panel-head-btns button:hover:not(:disabled),.panel.look-panel .panel-head-btns button:hover:not(:disabled){background:var(--panel-2)}.panel.nodes-panel .panel-head-btns .del-btn:hover:not(:disabled){border-color:var(--line)}.panel-index,.panel-count,.panel.look-panel .look-row-size,.panel.look-panel .look-pal-hex,.panel.look-panel .look-pal-share,.panel.look-panel .look-pal-role,.panel.look-panel .cpick-value,.panel.look-panel .cpick-hex,.panel.nodes-panel .folder-count{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-variant-numeric:tabular-nums}.panel-index,.panel-count{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}.panel-index{flex:none;min-width:18px;color:var(--muted)}.panel-count{color:var(--muted)}.panel.nodes-panel .node-list,.panel.look-panel .node-list{padding:0}.panel.nodes-panel .node-row,.panel.look-panel .look-row{margin:0;padding:8px 12px;border:none;border-bottom:1px solid var(--line);background:transparent}.panel.look-panel .look-row{justify-content:flex-start}.panel.look-panel .look-row-name{flex:1;min-width:0}.panel.nodes-panel .node-row:hover,.panel.look-panel .look-row:hover{background:color-mix(in srgb,var(--panel-2) 55%,transparent)}.panel.nodes-panel .node-row.selected,.panel.look-panel .look-row.selected{background:var(--panel-2);box-shadow:inset 2px 0 0 var(--accent)}.panel.nodes-panel .node-row.selected .panel-index,.panel.look-panel .look-row.selected .panel-index{color:var(--accent)}.panel.nodes-panel .node-cells{gap:0}.panel.nodes-panel .node-cell+.node-cell{margin-left:-1px}.panel.nodes-panel .node-cell.selected{position:relative;z-index:1;outline-offset:0}.panel.nodes-panel .node-cell+.node-cell-btn{margin-left:6px}.panel.nodes-panel .node-cell-btn+.node-cell-btn{margin-left:-1px}.panel.nodes-panel .corner-toggles{gap:0}.panel.nodes-panel .corner-toggle+.corner-toggle{margin-left:-1px}.panel.nodes-panel .folder-section{margin:0}.panel.nodes-panel .folder-head{margin:0;padding:4px 8px;border:none;border-bottom:1px solid var(--line);background:var(--panel-2)}.panel.nodes-panel .folder-head.selected{box-shadow:inset 2px 0 0 var(--accent)}.panel.nodes-panel .folder-body{padding-left:0}.panel.nodes-panel .folder-body .node-row{padding-left:24px}.panel.look-panel .look-tabs button+button{border-left:1px solid var(--line)}.panel.look-panel .look-tabs button.on{background:var(--panel-2)}.panel.look-panel .look-pal-head{padding:8px 12px}.panel.look-panel .look-empty-hint{margin:8px 12px}.panel.look-panel .look-pal-row{padding:6px 12px;border:none;border-bottom:1px solid var(--line)}.panel.look-panel .look-pal-row.selected{background:var(--panel-2);box-shadow:inset 2px 0 0 var(--accent)}.panel.look-panel .look-set{border-left:2px solid transparent}.panel.look-panel .look-set.grouped{margin:0;border-left-color:var(--line-strong)}.panel.look-panel .look-pal-row.child{padding-left:22px}.panel.look-panel .look-link-zones{margin:4px 12px}.panel.look-panel .look-pal-share{min-width:34px;text-align:right}.panel.look-panel .look-pal-unlink,.panel.look-panel .look-pal-unlink-space{flex:none;width:38px;text-align:center}.panel.nodes-panel .panel-foot,.panel.look-panel .panel-foot{min-height:32px;padding:8px 12px}.panel-foot-stack{display:flex;flex-direction:column;align-items:flex-start;gap:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:1ms!important;scroll-behavior:auto!important}button:not(:disabled):active{transform:none}.dash-card:hover{transform:none}.auth-spinner{animation-duration:1.4s!important;animation-iteration-count:infinite!important}}@media (prefers-reduced-transparency: reduce){.modal,.modal-overlay,.cell-popup,.account-menu,.dash-sort-menu,.card-menu,.file-export-menu,.ln-nav{-webkit-backdrop-filter:none;backdrop-filter:none}.modal,.cell-popup,.account-menu,.dash-sort-menu,.card-menu,.file-export-menu,.ln-nav{background:var(--panel)}}@media (prefers-contrast: more){:root{--line: #8d939d;--line-strong: #5a5f6a;--muted: #42434b}:root[data-theme=dark]{--line: #5c5d68;--line-strong: #8b8c99;--muted: #c6c7d2}.modal,.cell-popup,.account-menu,.dash-sort-menu,.card-menu,.file-export-menu,.ln-nav{background:var(--panel);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--text)}.toolbar button:hover:not(:disabled){border-color:var(--text)}}.palette-options{display:flex;flex-direction:column;gap:4px}.opt-field{display:flex;flex-direction:column;gap:6px;padding-bottom:14px}.opt-label{font-size:12px;letter-spacing:.01em;color:var(--muted)}.opt-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line)}.opt-row-text{display:flex;flex-direction:column;gap:3px;min-width:0}.opt-row-text b{font-size:13px;font-weight:600;letter-spacing:-.01em}.opt-row-text span{font-size:11px;letter-spacing:.01em;color:var(--muted)}.opt-switch{flex:none;position:relative;width:44px;height:26px;padding:0;border:1px solid var(--line);background:var(--panel-2);cursor:pointer;transition:background-color var(--dur-state) var(--ease-out),border-color var(--dur-state) var(--ease-out)}.opt-switch.on{background:var(--accent);border-color:var(--accent)}.opt-switch:disabled{opacity:.45;cursor:default}.opt-switch-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--dur-state) var(--ease-out)}.opt-switch.on .opt-switch-knob{transform:translate(18px)}.opt-stepper{flex:none;display:flex;align-items:center;height:32px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2);overflow:hidden}.opt-stepper button{width:32px;height:100%;padding:0;border:none;background:transparent;color:var(--text);font-size:16px;line-height:1;cursor:pointer;transition:background-color var(--dur-state) var(--ease-out)}.opt-stepper button:hover:not(:disabled){background:var(--panel)}.opt-stepper button:disabled{color:var(--muted);opacity:.5;cursor:default}.opt-stepper-value{min-width:28px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums;border-left:1px solid var(--line);border-right:1px solid var(--line);line-height:30px}
