:host,:root{color-scheme:light;--brand-h:150;--brand-s:100%;--brand-l:34%;--brand:hsl(var(--brand-h) var(--brand-s) var(--brand-l));--brand-hover:hsl(var(--brand-h) calc(var(--brand-s) + 3%) calc(var(--brand-l) - 4%));--brand-active:hsl(var(--brand-h) calc(var(--brand-s) + 2%) calc(var(--brand-l) - 8%));--brand-subtle:hsl(var(--brand-h) calc(var(--brand-s) + 6%) calc(var(--brand-l) + 14%)/0.14);--brand-border:hsl(var(--brand-h) calc(var(--brand-s) + 8%) calc(var(--brand-l) + 8%)/0.34);--brand-fg:hsl(0 0% 100%);--brand-ring:hsl(var(--brand-h) calc(var(--brand-s) + 12%) calc(var(--brand-l) + 10%)/0.22);--font-sans:"Pretendard",-apple-system,BlinkMacSystemFont,system-ui,Roboto,"Helvetica Neue","Segoe UI","Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol",sans-serif;--font-display:var(--font-sans);--font-mono:var(--font-sans);--surface-0:0 0% 99%;--surface-1:0 0% 100%;--surface-2:144 8% 96%;--surface-3:144 6% 93%;--surface-inset:144 6% 95%;--overlay-backdrop:hsl(0 0% 0%/0.24);--overlay-backdrop-strong:hsl(0 0% 0%/0.48);--text-primary:150 10% 12%;--text-secondary:148 6% 36%;--text-tertiary:145 5% 42%;--text-disabled:145 4% 70%;--text-inverse:0 0% 100%;--border-subtle:144 8% 91%;--border-default:144 6% 85%;--border-strong:144 5% 72%;--border-focus:var(--brand-h) var(--brand-s) var(--brand-l);--success:150 30% 32%;--success-subtle:150 30% 32%/0.14;--warning:34 82% 52%;--warning-subtle:34 82% 52%/0.14;--danger:3 68% 56%;--danger-subtle:3 68% 56%/0.12;--info:202 52% 44%;--info-subtle:202 52% 44%/0.12;--accent-terra:13 52% 47%;--accent-terra-subtle:13 52% 47%/0.1;--accent-terra-deep:13 48% 44%;--accent-blue:213 86% 56%;--accent-blue-subtle:213 92% 56%/0.12;--accent-blue-deep:216 78% 40%;--accent-blue-border:213 86% 62%/0.36;--accent-cream:38 52% 88%;--accent-cream-warm:40 56% 95%;--accent-cream-deep:38 48% 82%;--accent-highlight:55 96% 70%;--accent-ink:32 13% 11%;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-pill:9999px;--shadow-xs:0 1px 2px 0 hsl(0 0% 0%/0.04);--shadow-sm:0 1px 3px 0 hsl(0 0% 0%/0.06),0 1px 2px -1px hsl(0 0% 0%/0.06);--shadow-md:0 4px 6px -1px hsl(0 0% 0%/0.06),0 2px 4px -2px hsl(0 0% 0%/0.04);--shadow-lg:0 10px 15px -3px hsl(0 0% 0%/0.06),0 4px 6px -4px hsl(0 0% 0%/0.04);--shadow-xl:0 20px 25px -5px hsl(0 0% 0%/0.06),0 8px 10px -6px hsl(0 0% 0%/0.04);--shadow-focus:0 0 0 3px var(--brand-ring);--shadow-inset:inset 0 1px 2px 0 hsl(0 0% 0%/0.04);--duration-instant:90ms;--duration-fast:160ms;--duration-base:260ms;--duration-out:180ms;--duration-slow:360ms;--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.45,0,0.15,1);--ease-spring:cubic-bezier(0.18,0.94,0.32,1.08);--grid-line:0 0% 92%}.dark,:host(.dark){color-scheme:dark;--brand-l:34%;--brand-fg:hsl(0 0% 100%);--surface-0:150 8% 7%;--surface-1:150 6% 10%;--surface-2:150 5% 14%;--surface-3:150 4% 18%;--surface-inset:150 6% 6%;--overlay-backdrop:hsl(0 0% 0%/0.56);--overlay-backdrop-strong:hsl(0 0% 0%/0.8);--text-primary:40 16% 93%;--text-secondary:36 8% 68%;--text-tertiary:34 6% 50%;--text-disabled:30 5% 34%;--text-inverse:150 8% 10%;--border-subtle:150 6% 16%;--border-default:150 5% 22%;--border-strong:150 4% 34%;--success:148 32% 52%;--warning:34 82% 62%;--danger:2 70% 64%;--info:202 54% 62%;--accent-terra:13 56% 62%;--accent-terra-subtle:13 56% 62%/0.14;--accent-terra-deep:13 52% 56%;--accent-blue:210 92% 68%;--accent-blue-subtle:210 92% 68%/0.18;--accent-blue-deep:209 100% 78%;--accent-blue-border:210 92% 72%/0.44;--accent-cream:38 30% 26%;--accent-cream-warm:38 22% 18%;--accent-cream-deep:38 26% 32%;--accent-highlight:55 96% 70%;--accent-ink:32 13% 8%;--shadow-xs:0 1px 2px 0 hsl(0 0% 0%/0.2);--shadow-sm:0 1px 3px 0 hsl(0 0% 0%/0.3),0 1px 2px -1px hsl(0 0% 0%/0.24);--shadow-md:0 4px 6px -1px hsl(0 0% 0%/0.34),0 2px 4px -2px hsl(0 0% 0%/0.2);--shadow-lg:0 10px 15px -3px hsl(0 0% 0%/0.38),0 4px 6px -4px hsl(0 0% 0%/0.24);--shadow-xl:0 20px 25px -5px hsl(0 0% 0%/0.44),0 8px 10px -6px hsl(0 0% 0%/0.28);--shadow-inset:inset 0 1px 2px 0 hsl(0 0% 0%/0.16);--grid-line:150 6% 14%}*{border-color:hsl(var(--border-default))}html{font-family:var(--font-sans),ui-sans-serif,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01","ss03"}body,html{background-color:hsl(var(--surface-0))}body{margin:0;min-height:100vh;color:hsl(var(--text-primary))}::-moz-selection{background-color:hsl(var(--brand-h) calc(var(--brand-s) + 6%) calc(var(--brand-l) + 16%)/.22);color:hsl(var(--text-primary))}::selection{background-color:hsl(var(--brand-h) calc(var(--brand-s) + 6%) calc(var(--brand-l) + 16%)/.22);color:hsl(var(--text-primary))}code,kbd,pre,samp{font-family:var(--font-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-feature-settings:"ss01","ss02","cv11"}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsl(var(--border-strong)/.52);border-radius:var(--radius-pill);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:hsl(var(--border-strong)/.9);background-clip:padding-box;border:2px solid transparent}.app-canvas,.grid-canvas{background-color:hsl(var(--surface-0))}.panel-shell,.surface-shell{border:1px solid hsl(var(--border-subtle));border-radius:var(--radius-xl);background:hsl(var(--surface-1));box-shadow:var(--shadow-sm)}.panel-shell-muted,.surface-shell-muted{background:hsl(var(--surface-2));box-shadow:var(--shadow-xs)}.panel-shell-subtle{border:1px solid hsl(var(--border-subtle));border-radius:var(--radius-lg);background:hsl(var(--surface-1));box-shadow:var(--shadow-xs)}.panel-shell-elevated{border:1px solid hsl(var(--border-default));border-radius:var(--radius-xl);background:hsl(var(--surface-1));box-shadow:var(--shadow-md)}.floating-chip,.utility-chip{display:inline-flex;align-items:center;gap:.5rem;border:1px solid hsl(var(--border-default));border-radius:var(--radius-pill);background:hsl(var(--surface-1));box-shadow:var(--shadow-xs)}.hairline{border-bottom:1px solid hsl(var(--border-subtle))}.mono-label{font-family:var(--font-mono),ui-monospace,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:hsl(var(--text-tertiary))}