:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas-bg:#101013;--canvas-dot:#9f9fa912;--surface-base:#18181b;--surface-elevated:#1f1f24;--surface-subtle:#2f2f37;--stroke-subtle:#1f1f24;--stroke-default:#2f2f37;--text-primary:#f6f6f6;--text-secondary:#f0f0f0;--text-tertiary:#9f9fa9;--text-disabled:#52525c;--brand:#3b82f6;--brand-hover:color-mix(in srgb, var(--brand) 82%, #fff);--brand-text:color-mix(in srgb, var(--brand) 70%, #fff);--blue-500:#3b82f6;--blue-alpha:#3b82f63d;--measure:#f24822;--status-good:#4ade80;--status-fair:#fbbf24;--status-poor:var(--danger);--shadow-xs:0 1px 2px #0a0d140d;--radius-panel:20px;--radius-lg:8px;--radius-input:4px;--icon-stroke:1.25;--float-inset:12px;--panel-width:280px;--toolbar-height:50px;--topbar-height:48px;--glass-tint:#18181bb8;--glass-tint-strong:#1f1f24d6;--glass-blur:blur(20px) saturate(160%) brightness(.85);--glass-edge:#ffffff14;--glass-edge-strong:#ffffff1c;--glass-rule:#ffffff0f;--glass-highlight:inset 0 1px 0 #ffffff0f;--glass-shadow:0 8px 32px #00000059;--glass-well:#00000038;--glass-control:#ffffff0f;--glass-hover:#ffffff1a;--glass-subtle:#ffffff24;--glass-line:#ffffff12;--glass-line-strong:#ffffff1f;--glass-tertiary:#bcbcc5;--glass-disabled:#74747e;--bg:var(--canvas-bg);--panel:var(--surface-base);--raised:var(--surface-elevated);--hover:#27272d;--line:var(--stroke-subtle);--line-strong:var(--stroke-default);--text:var(--text-primary);--muted:var(--text-tertiary);--faint:var(--text-disabled);--accent:var(--brand);--accent-strong:#93c5fd;--accent-soft:color-mix(in srgb, var(--brand) 16%, transparent);--canvas:var(--canvas-bg);--danger:#ff6b6b;--danger-soft:#ff6b6b1f;--radius:var(--radius-lg);--radius-sm:var(--radius-input);--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace}:root[data-panels=solid],.dialog-backdrop{--glass-tint:#18181b;--glass-tint-strong:#1f1f24;--glass-blur:none;--glass-edge:#1f1f24;--glass-edge-strong:#2f2f37;--glass-rule:transparent;--glass-highlight:0 0 #0000;--glass-shadow:0 0 #0000;--glass-well:#18181b;--glass-control:#1f1f24;--glass-hover:#27272d;--glass-subtle:#2f2f37;--glass-line:#1f1f24;--glass-line-strong:#2f2f37;--glass-tertiary:#9f9fa9;--glass-disabled:#52525c}@media (prefers-reduced-transparency:reduce){:root{--glass-tint:#18181b;--glass-tint-strong:#1f1f24;--glass-blur:none;--glass-edge:#1f1f24;--glass-edge-strong:#2f2f37;--glass-rule:transparent;--glass-highlight:0 0 #0000;--glass-shadow:0 0 #0000;--glass-well:#18181b;--glass-control:#1f1f24;--glass-hover:#27272d;--glass-subtle:#2f2f37;--glass-line:#1f1f24;--glass-line-strong:#2f2f37;--glass-tertiary:#9f9fa9;--glass-disabled:#52525c}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 var(--font);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased}h1{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:600}button{font:inherit;color:inherit}.muted{color:var(--muted);margin:0}.link{color:var(--muted);text-decoration:none}.link:hover{color:var(--text)}.checker{background-color:#1a1a1e;background-image:conic-gradient(#232328 25%, transparent 0 50%, #222226 0 75%, transparent 0);background-size:16px 16px}.alpha-checker{background-color:#fff;background-image:conic-gradient(#d4d4d8 25%, transparent 0 50%, #d4d4d8 0 75%, transparent 0);background-size:8px 8px}.fill{position:absolute;inset:0}.chip{color:var(--muted);border:1px solid var(--line-strong);border-radius:99px;padding:0 7px;font-size:11px;line-height:18px}.segmented{background:var(--raised);border-radius:var(--radius-sm);gap:2px;padding:2px;display:inline-flex}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:3px 10px}.segmented button.on{background:var(--surface-subtle);color:var(--text);box-shadow:var(--shadow-xs)}.text-label-m{font-size:12px;font-weight:500;line-height:16px}.text-label-xs{font-size:10px;font-weight:500;line-height:14px}.text-paragraph-s{font-size:12px;font-weight:400;line-height:16px}.text-paragraph-xs{font-size:11px;font-weight:400;line-height:14px}.pill-tabs{gap:4px;display:flex}.pill-tab{border-radius:var(--radius-lg);height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;line-height:16px;display:inline-flex}.pill-tab:hover:not(:disabled){color:var(--text-primary)}.pill-tab.on{background:var(--surface-subtle);color:var(--text-primary);box-shadow:var(--shadow-xs)}.pill-tab:disabled{color:var(--text-disabled);cursor:default}.gallery-card{cursor:pointer}.gallery-card:focus-visible{outline:none}.gallery-card:focus-visible .project-frame{outline:2px solid var(--brand);outline-offset:2px}.gallery-card:hover .project-frame{border-color:var(--stroke-default)}.gallery-thumb{position:relative}.gallery-meta{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card-errors{color:var(--danger);background:#0e0e10e0;flex-direction:column;justify-content:center;gap:6px;padding:12px;font-size:12px;display:flex;position:absolute;inset:0;overflow:auto}.card-errors code{font:11px/1.4 var(--mono);color:var(--text-primary)}.projects-page{min-height:100%}.projects{max-width:1400px;margin:0 auto;padding:28px 32px 48px}.projects-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.projects-title,.projects-nav{align-items:center;gap:16px;display:flex}.projects-title{gap:10px}.projects-error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);margin:0 0 16px;padding:8px 12px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;display:grid}.projects-empty{margin-top:20px}.project-card{min-width:0;color:inherit;font:inherit;text-align:left;background:0 0;border:0;flex-direction:column;gap:10px;padding:0;display:flex}.project-frame{aspect-ratio:5/3;border:1px solid var(--stroke-subtle);background:var(--surface-base);width:100%;color:var(--text-tertiary);cursor:pointer;border-radius:12px;place-items:center;padding:11px 24px;transition:border-color .12s;display:grid;overflow:hidden}.project-card:hover .project-frame,.project-card:focus-within .project-frame{border-color:var(--stroke-default)}.project-frame:focus-visible,.project-new:focus-visible .project-frame{outline:2px solid var(--brand);outline-offset:2px}.project-new:focus-visible{outline:none}.project-thumb{border-radius:10px;max-width:100%;max-height:100%;overflow:hidden}.project-thumb img{object-fit:cover;width:100%;height:100%;display:block}.project-body{align-items:flex-start;gap:8px;min-width:0;display:flex}.project-new .project-body{flex-direction:column}.project-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.project-text .subtle{color:var(--text-tertiary);font-size:12px}.project-name-text{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.project-body .menu-wrap .icon-button{opacity:0}.project-card:hover .project-body .icon-button,.project-body .icon-button:focus-visible,.project-body .icon-button[aria-expanded=true]{opacity:1}@media (hover:none){.project-body .menu-wrap .icon-button{opacity:1}}.project-rename{border:1px solid var(--brand);border-radius:var(--radius-sm);background:var(--surface-base);min-width:0;height:22px;color:var(--text-primary);font:inherit;margin:0 0 0 -5px;padding:0 4px;font-size:14px;font-weight:500}.project-rename:focus{outline:none}.project-new{cursor:pointer}.project-new-plus{color:var(--text-tertiary)}.project-new:hover .project-new-plus{color:var(--text-secondary)}@media (width<=600px){.projects{padding:20px 16px 40px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}}.shell{height:100%;padding:var(--float-inset);background:var(--canvas-bg);gap:12px;display:flex}.shell-side{border:1px solid var(--glass-edge);border-radius:var(--radius-panel);background:var(--glass-tint);width:250px;box-shadow:var(--glass-highlight), var(--glass-shadow);flex-direction:column;flex:none;gap:16px;padding:8px 16px 16px;display:flex}.shell-main{min-width:0;margin:calc(-1 * var(--float-inset)) calc(-1 * var(--float-inset)) calc(-1 * var(--float-inset)) 0;flex:1;overflow:auto}.shell-account{background:var(--surface-elevated);width:100%;height:36px;color:var(--text-primary);font:500 14px/1 var(--font);text-align:left;cursor:pointer;border:0;border-radius:12px;align-items:center;gap:10px;padding:0 10px 0 6px;display:flex}.shell-account:hover,.shell-account[aria-expanded=true]{background:var(--hover)}.shell-account:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.shell-side .menu-wrap{position:relative}.popover.menu.shell-menu{border-radius:var(--radius-lg);min-width:0;padding:6px}.shell-menu .menu-item{height:36px;font-size:14px}.menu-item.with-icon{align-items:center;gap:8px;display:flex}.menu-icon{color:var(--text-secondary);flex:none}.avatar{background:var(--surface-elevated);width:24px;height:24px;box-shadow:inset 0 0 0 1px var(--stroke-default);color:var(--text-primary);font:600 11px/1 var(--font);border-radius:50%;flex:none;place-items:center;display:grid}.shell-account-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.shell-account-chevron{color:var(--text-secondary);flex:none;transition:transform .12s;transform:rotate(90deg)}.plan-badge{border:1px solid var(--stroke-default);color:var(--text-secondary);border-radius:999px;flex:none;padding:3px 6px;font-size:11px;font-weight:500;line-height:1}.plan-badge.pro{border-color:var(--brand);background:var(--blue-alpha);color:var(--brand-text)}.shell-nav{flex-direction:column;gap:0;display:flex}.shell-nav-item{border-radius:var(--radius-lg);height:40px;color:var(--text-primary);align-items:center;gap:8px;padding:0 8px;font-size:14px;text-decoration:none;display:flex}.shell-nav-item .icon{color:var(--text-secondary)}.shell-nav-item:hover{background:var(--surface-subtle)}.shell-nav-item:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.shell-refer{background:var(--surface-elevated);color:var(--text-primary);font:12px/16px var(--font);text-align:left;cursor:pointer;border:0;border-radius:12px;align-items:flex-start;gap:12px;margin-top:auto;padding:12px;display:flex}.shell-refer:hover{background:var(--hover)}.shell-refer-icon{color:var(--brand);flex:none}.shell-refer-text{color:var(--text-tertiary);flex-direction:column;gap:4px;display:flex}.shell-refer-text strong{color:var(--text-primary);font-size:14px;font-weight:500;line-height:18px}.shell-page{max-width:1400px;padding:10px 20px 48px 47px}.shell-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:32px;margin-bottom:32px;display:flex}.shell-header h1{font-size:14px;font-weight:500}.shell-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.workspace-sort{background:var(--surface-elevated);border-color:#0000;gap:8px}.workspace-sort-chevron{transform:rotate(90deg)}.shell-tools .button{height:32px;padding:0 12px;font-size:14px}.workspace-search{border:1px solid var(--stroke-default);border-radius:var(--radius-lg);background:var(--surface-subtle);height:32px;color:var(--text-tertiary);align-items:center;gap:6px;padding:0 10px;display:flex}.workspace-search:focus-within{border-color:var(--brand)}.workspace-search input{width:180px;color:var(--text-primary);font:13px var(--font);background:0 0;border:0;outline:none}.project-new-key{border-radius:var(--radius-sm);background:var(--surface-elevated);color:var(--text-tertiary);font:10px/1 var(--mono);align-self:flex-start;padding:4px 8px}.shell-empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:64px 16px;display:flex}.shell-empty h2{font-size:15px;font-weight:600}.shell-empty .muted{max-width:380px}.coming-soon{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.coming-soon h2{margin:0;font-size:16px}.coming-soon p{margin:0}.coming-soon .dialog-actions{align-self:stretch}.coming-soon-icon{border-radius:var(--radius-lg);background:var(--blue-alpha);width:36px;height:36px;color:var(--brand-text);place-items:center;display:grid}.coming-soon-badge{color:var(--brand-text);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}@media (width<=720px){.shell{flex-direction:column}.shell-side{flex-flow:wrap;align-items:center;gap:4px 8px;width:auto;padding:8px 12px}.shell-main{margin:0 calc(-1 * var(--float-inset)) calc(-1 * var(--float-inset))}.shell-side>.menu-wrap{flex:1;min-width:0}.shell-nav{flex-direction:row;order:3;width:100%;overflow-x:auto}.shell-nav-item{flex:none;height:32px}.shell-refer{margin:0;padding:6px}.shell-refer-text{display:none}.shell-page{padding:20px 16px 40px}.workspace-search input{width:120px}}.account-modal{border:1px solid var(--stroke-default);border-radius:var(--radius-panel);background:var(--surface-base);width:min(1112px,100%);height:min(600px,100vh - 32px);display:flex;overflow:hidden;box-shadow:0 24px 64px #0009}.account-nav{border-right:1px solid var(--stroke-subtle);flex-direction:column;flex:none;gap:2px;width:240px;padding:20px 12px;display:flex}.account-nav h2{margin:0 0 12px;padding:0 12px;font-size:16px;font-weight:600}.account-nav-item{height:36px;color:var(--text-secondary);font:500 13px/1 var(--font);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:10px;padding:0 12px;display:flex}.account-nav-item:hover{background:var(--surface-subtle);color:var(--text-primary)}.account-nav-item[aria-current=page]{background:var(--surface-elevated);color:var(--text-primary)}.account-content{flex-direction:column;flex:1;min-width:0;display:flex}.account-head{justify-content:space-between;align-items:center;padding:20px 24px 12px;display:flex}.account-head h3{margin:0;font-size:16px;font-weight:600}.account-scroll{flex-direction:column;flex:1;gap:16px;padding:4px 24px 24px;display:flex;overflow-y:auto}.account-card{border:1px solid var(--stroke-subtle);border-radius:var(--radius-panel);background:var(--surface-elevated);flex-direction:column;gap:16px;padding:20px;display:flex}.account-card h4{margin:0;font-size:13px;font-weight:600}.account-row{align-items:center;gap:16px;display:flex}.account-row-text{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:13px;display:flex}.account-row-text strong{font-weight:500}.account-row-text span,.account-hint,.account-empty{color:var(--text-tertiary);font-size:12px;line-height:18px}.account-hint.bad{color:var(--danger)}.account-empty{margin:-8px 0 0}.avatar.large{width:48px;height:48px;font-size:20px}.account-field{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;font-weight:500;display:flex}.account-inline{gap:8px;display:flex}.account-inline input{flex:1}.account-card .button:not(.primary,.danger){border-color:var(--stroke-default);background:var(--surface-base)}.account-card .button:not(.primary,.danger):hover:not(:disabled){background:var(--hover)}.account-row>.button,.account-row>.tip-anchor{flex:none}.account-field input,.account-confirm{border:1px solid var(--stroke-default);border-radius:var(--radius-lg);background:var(--surface-base);min-width:0;height:36px;color:var(--text-primary);font:13px/1 var(--font);outline:none;padding:0 12px}.account-field input:read-only{color:var(--text-tertiary)}.account-field input:focus-visible,.account-confirm:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--blue-alpha)}.account-field input[aria-invalid=true]{border-color:var(--danger)}.account-confirm{width:100%;margin-top:12px}.account-plan{align-items:baseline;gap:10px;display:flex}.account-plan-name{font-size:20px;font-weight:600}.account-current{color:var(--text-tertiary);font-size:12px}.account-chips{flex-wrap:wrap;gap:8px;display:flex}.account-chip{border:1px solid var(--stroke-subtle);background:var(--surface-subtle);height:26px;color:var(--text-secondary);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.account-chip.used{color:var(--text-tertiary)}.account-upgrade,.account-subhead{border-top:1px solid var(--stroke-subtle);padding-top:16px}.account-soon{align-items:flex-start;gap:8px}.account-soon p{max-width:520px;color:var(--text-tertiary);margin:0;font-size:13px;line-height:20px}@media (width<=720px){.account-modal{flex-direction:column;height:calc(100vh - 32px)}.account-nav{border-right:0;border-bottom:1px solid var(--stroke-subtle);flex-flow:wrap;width:auto;padding:12px}.account-nav h2{width:100%;margin-bottom:4px}.account-head,.account-scroll{padding-left:16px;padding-right:16px}.account-row{flex-wrap:wrap}}.upgrade-page{flex-direction:column;gap:20px;display:flex}.upgrade-page .shell-header{margin-bottom:4px}.upgrade-page .shell-header .muted{margin:6px 0 0}.upgrade-interval{border:1px solid var(--stroke-subtle);background:var(--surface-base);border-radius:999px;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.upgrade-interval button{height:30px;color:var(--text-secondary);font:500 13px/1 var(--font);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.upgrade-interval button[aria-checked=true]{background:var(--surface-elevated);color:var(--text-primary)}.upgrade-save{color:var(--brand-text);font-size:11px}.upgrade-plans{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;max-width:760px;display:grid}.upgrade-plan{border:1px solid var(--stroke-subtle);border-radius:var(--radius-panel);background:var(--surface-elevated);flex-direction:column;gap:16px;padding:24px;display:flex}.upgrade-plan.pro{border-color:var(--brand)}.upgrade-plan h2{flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.upgrade-founding{background:var(--blue-alpha);color:var(--brand-text);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.upgrade-price{color:var(--text-tertiary);margin:0;font-size:13px}.upgrade-price strong{color:var(--text-primary);font-size:28px;font-weight:600}.upgrade-tax{color:var(--text-tertiary);margin:-8px 0 0;font-size:11px}.upgrade-features{color:var(--text-secondary);flex-direction:column;flex:1;gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.upgrade-features li{align-items:center;gap:8px;display:flex}.upgrade-features .icon{color:var(--brand-text)}.upgrade-plan .button{justify-content:center;height:36px}.upgrade-checkout-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.dev-checkout{color:#fde68a;border-style:dashed;border-color:#b45309}.test-build-banner{z-index:1000;border-radius:var(--radius-lg);color:#fde68a;font:12px/16px var(--font);pointer-events:none;background:#281806eb;border:1px dashed #b45309;flex-direction:column;gap:2px;padding:8px 12px;display:flex;position:fixed;bottom:12px;left:12px}.test-build-banner strong{font-weight:600}.signin-page{isolation:isolate;flex-direction:column;min-height:100%;display:flex;position:relative;overflow:hidden}.signin-bg{z-index:-1;background:var(--canvas-bg);position:fixed;inset:0;overflow:hidden}.signin-bg-art{aspect-ratio:1440/900;width:max(100vw,160vh);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.signin-bg-art img{position:absolute}.signin-bg-live{position:absolute;inset:0}.signin-main{flex:1;justify-content:center;align-items:center;padding:48px 16px 24px;display:flex}.signin-panel{border:1px solid var(--glass-edge);border-radius:var(--radius-panel);background:var(--glass-tint);width:100%;max-width:400px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-highlight), var(--glass-shadow);flex-direction:column;gap:16px;padding:32px;display:flex}.signin-brand{color:var(--text-primary);justify-content:center;display:flex}.signin-brand .logo{width:27px;height:30px}.signin-title{text-align:center}.signin-title h1{letter-spacing:-.02em;text-wrap:balance;font-size:22px;font-weight:600;line-height:28px}.signin-title p{color:var(--text-tertiary);overflow-wrap:anywhere;margin:8px 0 0;font-size:13px;line-height:20px}.signin-title strong{color:var(--text-primary);font-weight:500}.signin-form{flex-direction:column;gap:12px;display:flex}.signin-field{color:var(--text-tertiary);flex-direction:column;gap:6px;font-size:12px;font-weight:500;display:flex}.signin-field input,.signin-code input{border:1px solid var(--stroke-default);border-radius:var(--radius-lg);background:var(--glass-well);height:40px;color:var(--text-primary);font:16px/1 var(--font);outline:none;padding:0 12px;transition:border-color .12s,box-shadow .12s}.signin-field input::placeholder{color:var(--text-disabled)}.signin-field input:focus-visible,.signin-code input:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--blue-alpha)}.signin-field input[aria-invalid=true],.signin-code.invalid input{border-color:var(--danger)}.signin-code{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.signin-code input{text-align:center;font-variant-numeric:tabular-nums;min-width:0;height:52px;caret-color:var(--brand);padding:0;font-size:22px;font-weight:600}.signin-code input:disabled{opacity:.5}.signin-panel .button{justify-content:center;height:40px;font-size:13px}.signin-google{border-color:var(--stroke-default);background:var(--glass-control);width:100%}.signin-google-mark{flex:none}.signin-secondary{border-color:var(--stroke-default);background:var(--glass-control);width:100%;text-decoration:none}.signin-divider{color:var(--text-disabled);align-items:center;gap:12px;font-size:12px;display:flex}.signin-divider:before,.signin-divider:after{content:"";background:var(--glass-line-strong);flex:1;height:1px}.signin-error{color:var(--danger);margin:-4px 0 0;font-size:12px;line-height:16px}.signin-code+.signin-error{text-align:center;margin:0}.signin-resend,.signin-hint{text-align:center;color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin:0;font-size:12px;line-height:16px}.signin-hint{color:var(--text-disabled);margin-top:-4px}.signin-link{color:var(--brand-text);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.signin-link:hover{color:var(--text-primary);text-decoration:underline}.signin-switch{color:var(--text-tertiary);align-self:center}.signin-status-line{min-height:16px;margin:-4px 0 0;font-size:12px;line-height:16px}.signin-status{color:var(--text-tertiary);align-items:center;gap:4px;display:inline-flex}.signin-status.bad{color:var(--danger)}.signin-footer{padding:16px 16px max(24px, env(safe-area-inset-bottom));text-align:center;color:var(--text-tertiary);font-size:12px;line-height:18px}.signin-footer a{color:var(--text-secondary);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--glass-subtle);text-decoration-color:var(--glass-subtle)}.signin-footer a:hover{text-decoration-color:currentColor}.signin-panel.legal .signin-title p{text-align:left}@media (width<=480px){.signin-main{align-items:flex-start;padding-top:12vh}.signin-panel{padding:24px 20px}.signin-code{gap:6px}.signin-code input{height:48px}}.message-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100%;padding:24px 16px;display:flex}.message-page h1{font-size:20px}.message-page .button{margin-top:8px;text-decoration:none}.editor-loading{background:var(--canvas-bg);height:100%}.editor{background:var(--canvas-bg);grid-template:"top""workspace"minmax(0,1fr)/minmax(0,1fr);height:100%;display:grid;overflow:hidden}.editor.has-banner{grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"top""banner""workspace"}.storage-banner{border-bottom:1px solid var(--line);background:var(--danger-soft);color:var(--text);grid-area:banner;padding:8px 14px}.workspace{--under-topbar:0px;grid-area:workspace;min-width:0;min-height:0;display:flex;position:relative}.editor:not(.has-banner) .workspace{--under-topbar:var(--topbar-height);grid-row:1/-1}.panel{z-index:10;top:calc(var(--under-topbar) + var(--float-inset));width:var(--panel-width);max-height:calc(100% - var(--under-topbar) - 2 * var(--float-inset) - var(--toolbar-height) - var(--float-inset));border:1px solid var(--stroke-subtle);border-radius:var(--radius-panel);background:var(--surface-base);flex-direction:column;gap:12px;min-height:0;padding:8px 16px 16px;display:flex;position:absolute;overflow:hidden}.panel.left{left:var(--float-inset)}.inspector{right:var(--float-inset);max-height:calc(100% - var(--under-topbar) - 2 * var(--float-inset));gap:0;padding:8px 0 0}h2{margin:0;font-size:13px;font-weight:600}h3{margin:0;font-size:12px;font-weight:600}.subtle{color:var(--text-tertiary);font-size:10px;line-height:14px}.empty{color:var(--muted);margin:0;padding:16px}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.icon{stroke-width:calc(var(--icon-stroke) * var(--icon-scale,1));flex:none;display:block}.chevron{color:var(--faint);transition:transform .12s}.chevron.open{transform:rotate(90deg)}.button{border:1px solid var(--surface-elevated);border-radius:var(--radius-lg);background:var(--surface-elevated);height:32px;color:var(--text-primary);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;line-height:16px;display:inline-flex}.button:hover:not(:disabled){background:var(--hover)}.button:disabled{cursor:default;opacity:.5}.button.on{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.button.primary{border-color:var(--brand);background:var(--brand);color:var(--text-primary)}.button.primary:hover:not(:disabled){border-color:var(--brand-hover);background:var(--brand-hover)}.button.ghost{color:var(--muted);background:0 0;border-color:#0000}.icon-button{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button.small{width:22px;height:22px}.icon-button:hover:not(:disabled){background:var(--hover);color:var(--text)}.icon-button[aria-pressed=true]{color:var(--text)}.icon-button:disabled{opacity:.35;cursor:default}.segmented button{align-items:center;gap:6px;display:inline-flex}.topbar{z-index:20;height:var(--topbar-height);background:var(--surface-base);grid-area:top;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;min-width:0;padding:8px 12px;display:grid;position:relative}.topbar-side{align-items:center;gap:8px;min-width:0;display:flex}.topbar-side.end{justify-content:flex-end}.topbar-center{align-items:center;gap:8px;min-width:0;display:flex}.logo{color:var(--text);flex:none}.logo-button .logo-chevron{margin-left:-2px}.project-name{border-radius:var(--radius-lg);width:200px;min-width:0;height:28px;color:var(--text-primary);font:inherit;text-align:center;text-overflow:ellipsis;background:0 0;border:1px solid #0000;padding:0 8px;font-size:12px;font-weight:500;line-height:16px}.project-name:hover{border-color:var(--line-strong)}.project-name:focus{border-color:var(--accent);background:var(--surface-elevated);outline:none}.save-status-wrap{position:relative}.save-status{color:var(--text-tertiary);font:inherit;white-space:nowrap;background:0 0;border:0;flex:none;padding:0;font-size:10px;line-height:14px}.save-status.error{color:var(--danger)}button.save-status{cursor:pointer}button.save-status:hover{text-decoration:underline}.save-popover{width:260px;left:0;right:auto}.save-popover p{margin:0 0 8px}.link-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.toolbar{z-index:10;left:50%;bottom:var(--float-inset);height:var(--toolbar-height);border:1px solid var(--stroke-subtle);border-radius:var(--radius-panel);background:var(--surface-base);align-items:center;gap:24px;padding:8px;display:flex;position:absolute;transform:translate(-50%)}.toolbar-tools{align-items:center;gap:8px;display:flex}.tool-split{align-items:center;display:inline-flex}.tool{border-radius:var(--radius-lg);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.tool:hover:not(:disabled):not([aria-disabled=true]),.tool[aria-expanded=true]{background:var(--surface-elevated)}.tool.on{background:var(--brand);color:var(--text-primary)}.tool.on:hover{background:var(--brand)!important}.tool:disabled{opacity:.5;cursor:progress}.tool[aria-disabled=true]{color:var(--text-disabled);cursor:default}.tool.tool-more{width:16px;color:var(--text-tertiary);margin-left:-4px}span.tool.tool-more{color:var(--text-disabled)}.tool-chevron{transform:rotate(90deg)}.menu.toolbar-menu{min-width:140px}.toolbar-message{border:1px solid var(--stroke-default);border-radius:var(--radius-lg);background:var(--surface-elevated);width:max-content;max-width:360px;color:var(--text-primary);margin:0;padding:8px 10px;font-size:12px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.zoom{border-radius:var(--radius-lg);background:var(--surface-elevated);align-items:center;gap:2px;height:34px;padding:0 4px;display:flex}.zoom-step{width:26px;height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.zoom-value{min-width:44px;height:26px;color:var(--text-primary);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:6px;font-size:12px;line-height:16px}.zoom-step:hover,.zoom-value:hover{background:var(--hover)}.tip-anchor{display:inline-flex}.tooltip{z-index:100;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-elevated);max-width:240px;color:var(--text);pointer-events:none;padding:6px 9px;font-size:12px;line-height:1.4;position:fixed;box-shadow:0 6px 20px #00000073}.info{width:18px;height:18px;color:var(--faint);cursor:help;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.info:hover,.info:focus-visible{color:var(--text)}.layers{flex-direction:column;flex:1;min-height:0;display:flex}.panel-tabs{flex:none}.panel-tabs .pill-tab{white-space:nowrap}.layer-list{flex:1;min-height:0;margin:0 -8px;padding:0;list-style:none;position:relative;overflow-y:auto}.layer-list.dragging{cursor:grabbing}.layer{isolation:isolate;border-radius:var(--radius-lg);height:36px;color:var(--text-primary);cursor:default;-webkit-user-select:none;user-select:none;touch-action:none;align-items:center;gap:8px;padding:0 4px 0 8px;font-size:12px;font-weight:500;line-height:16px;display:flex;position:relative}.layer:before{content:"";z-index:-1;pointer-events:none;border-radius:6px;position:absolute;inset:4px 2px}.layer:hover:before{background:var(--surface-elevated)}.layer.on:before{background:var(--surface-subtle)}.layer:focus-visible{outline:none}.layer:focus-visible:before{box-shadow:inset 0 0 0 1.5px var(--accent)}.layer.below:not(.on):before{background:color-mix(in srgb, var(--blue-500) 8%, transparent)}.layer.below:not(.on):hover:before{background:color-mix(in srgb, var(--blue-500) 12%, var(--surface-elevated))}.layer.dragged{opacity:.4}.layer-list.denied{cursor:not-allowed}.layer.drop-inside:before{background:color-mix(in srgb, var(--accent) 14%, transparent);box-shadow:inset 0 0 0 1.5px var(--accent)}.layer.drop-denied:before{box-shadow:inset 0 0 0 1.5px var(--line-strong)}.layer-indent{flex:none;align-self:stretch;margin-right:-8px}.layer-twist{width:12px;height:20px;color:var(--text-tertiary);cursor:default;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin-right:-4px;padding:0;display:inline-flex}button.layer-twist:hover{color:var(--text)}.layer-twist .icon{transition:transform .12s}.layer-twist.open .icon{transform:rotate(90deg)}.layer.hidden .layer-thumb,.layer.hidden .layer-name{opacity:.4}.layer-thumb{object-fit:cover;outline:1px solid var(--stroke-default);outline-offset:-1px;background-size:6px 6px;border-radius:4px;flex:none;width:20px;height:20px;position:relative;overflow:hidden}.icon-thumb{color:var(--text-tertiary);background:0 0;outline:0;justify-content:center;align-items:center;display:flex}.layer.on .icon-thumb{color:var(--text-primary)}.effect-thumb{background:var(--blue-alpha);color:var(--brand-text);outline:1px dashed var(--blue-500);border-radius:50%;justify-content:center;align-items:center;display:flex}.layer.on .effect-thumb{outline-style:solid}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.layer-rename{border:1px solid var(--accent);background:var(--surface-elevated);min-width:0;height:24px;color:var(--text);font:inherit;border-radius:4px;outline:none;flex:1;padding:0 6px}.layer-eye{visibility:hidden;display:inline-flex}.layer:hover .layer-eye,.layer:focus-visible .layer-eye,.layer.hidden .layer-eye{visibility:visible}.layer-lock{color:var(--text-tertiary);display:inline-flex}.drop-indicator{background:var(--accent);pointer-events:none;border-radius:1px;height:2px;position:absolute;left:6px;right:6px}.drop-indicator:before{content:"";box-sizing:border-box;border:2px solid var(--accent);background:var(--surface-base);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-3px}.panel-footer{border-top:1px solid var(--stroke-subtle);justify-content:flex-end;gap:2px;margin:0 -8px -8px;padding-top:8px;display:flex}.empty-actions{gap:6px;margin-top:8px;display:flex}.add{flex-direction:column;flex:1;min-height:0;margin:0 -16px -16px;display:flex}.add-hint{color:var(--text-tertiary);margin:0;padding:0 16px 4px;font-size:12px}.add-hint strong{color:var(--text);font-weight:600}.add-error{border-radius:var(--radius-sm);background:var(--danger-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--danger) 40%, transparent);color:var(--text);margin:8px 12px 0;padding:8px 10px;font-size:12px}.card-thumb.source-icon{background:var(--raised);color:var(--muted);justify-content:center;align-items:center;display:flex}.card-main:disabled{cursor:progress;opacity:.6}.card-thumb.object-thumb{background:var(--raised)}.card-thumb.object-thumb img{object-fit:contain}.cards-heading{color:var(--text-tertiary);grid-column:1/-1;margin:4px 0 -4px;font-size:11px;font-weight:400}.cards-heading:first-child{margin-top:0}.categories{border-bottom:1px solid var(--stroke-subtle);flex-direction:column;padding:8px;display:flex}.category{border-radius:var(--radius-lg);height:30px;color:var(--text-tertiary);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0 8px;font-size:12px;font-weight:500;display:flex}.category span:first-of-type{flex:1}.category:hover{background:var(--surface-elevated);color:var(--text)}.category.on{background:var(--surface-subtle);color:var(--text)}.category.on .icon{color:var(--brand-text)}.cards{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;padding:12px 16px 16px;display:grid;position:relative;overflow-y:auto}.card{border-radius:var(--radius);position:relative}.card-main{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:6px;width:100%;padding:0;display:flex}.card-thumb{aspect-ratio:16/10;border-radius:var(--radius-lg);background-size:8px 8px;width:100%;display:block;position:relative;overflow:hidden}.card-thumb img{object-fit:cover;width:100%;height:100%;display:block}.card-main:focus-visible{outline:none}.card-main:focus-visible .card-thumb{outline:2px solid var(--accent);outline-offset:2px}.card-loading{background:linear-gradient(100deg, transparent 30%, #ffffff0d 50%, transparent 70%) var(--raised);background-size:200% 100%;animation:1.4s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.beta-badge{letter-spacing:.02em;color:#fff;background:#0009;border-radius:99px;padding:0 6px;font-size:10px;font-weight:600;line-height:16px;position:absolute;top:6px;left:6px}.card-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.card-live{z-index:1;border-radius:var(--radius-lg);pointer-events:none;visibility:hidden;position:absolute;overflow:hidden}.card-live.on{visibility:visible}@media (prefers-reduced-motion:reduce){.card-loading{animation:none}}.canvas{z-index:0;isolation:isolate;background-color:var(--canvas-bg);background-image:radial-gradient(circle, var(--canvas-dot) 1px, transparent 1.5px);background-size:16px 16px;flex-direction:column;flex:1;grid-area:canvas;min-width:0;min-height:0;display:flex;position:relative}.stage{scrollbar-width:none;min-height:0;padding:var(--under-topbar) calc(var(--float-inset) * 2 + var(--panel-width)) calc(var(--float-inset) * 2 + var(--toolbar-height));flex:1;place-items:safe center;display:grid;overflow:auto}.stage:not(.page)::-webkit-scrollbar{display:none}.stage.page{scrollbar-width:auto}.editor.previewing .stage{padding:calc(var(--under-topbar) + 36px) 24px 24px}.artboard-row{flex:none;position:relative}.artboard-wrap{position:absolute;top:0}.preview-frame{flex:none;position:relative}.artboard-label{white-space:nowrap;color:var(--text-tertiary);align-items:center;gap:8px;font-size:12px;font-weight:500;line-height:16px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;right:0}.artboard-label .subtle{font-size:12px;line-height:16px}.artboard-name{color:var(--text-tertiary);text-overflow:ellipsis;overflow:hidden}button.artboard-name{font:inherit;cursor:pointer;background:0 0;border:0;padding:0}button.artboard-name:hover,.artboard-label.active .artboard-name{color:var(--text-primary)}.artboard-name-tip{min-width:0}.artboard-size-tip{flex-shrink:1000;min-width:0}.artboard-size{text-overflow:ellipsis;flex-shrink:1000;min-width:0;overflow:hidden}.artboard-label.last{width:max-content;min-width:100%;right:auto}.icon-button.artboard-menu{flex:none;width:20px;height:20px;margin:-2px 0}.artboard-label .artboard-add{flex:none}.artboard-tool{margin-left:auto}.button.artboard-add{height:22px;color:var(--text-tertiary);gap:4px;margin:-3px -6px -3px 0;padding:0 6px}.button.artboard-add:hover:not(:disabled),.button.artboard-add[aria-expanded=true]{color:var(--text-primary)}.menu.artboard-add-list{min-width:240px}.perf-badge-tip{flex:none;margin-left:auto}.perf-badge-tip+.artboard-tool{margin-left:0}.perf-badge{border-radius:var(--radius-input);background:var(--surface-elevated);width:32px;height:20px;font:inherit;font-variant-numeric:tabular-nums;text-align:center;cursor:pointer;border:0;margin:-2px 0;padding:0;display:block}.perf-badge:hover,.perf-badge[aria-expanded=true]{background:var(--hover)}.perf-badge:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.perf-badge.good,.perf-fps.good{color:var(--status-good)}.perf-badge.fair,.perf-fps.fair{color:var(--status-fair)}.perf-badge.poor,.perf-fps.poor{color:var(--status-poor)}.perf-badge.idle,.perf-fps.idle{color:var(--text-tertiary)}.popover.perf-popover{width:280px;color:var(--text-primary);padding:10px 12px;font-size:12px;line-height:16px}.perf-popover p{margin:6px 0 0}.perf-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.perf-head{padding-bottom:10px}.perf-fps{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.perf-muted{color:var(--text-tertiary)}.perf-section{border-top:1px solid var(--stroke-default);padding:10px 0 2px}.perf-section+.perf-section{margin-top:8px}.perf-title{font-weight:500}.link-button.perf-measure{color:var(--brand-text);font-weight:500;text-decoration:none}.link-button.perf-measure:disabled{color:var(--text-disabled);cursor:default}.perf-layers{gap:2px;max-height:240px;margin:6px -6px 0;padding:0;list-style:none;display:grid;overflow-y:auto}.perf-layer{border-radius:var(--radius-input);width:100%;height:26px;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0 6px;display:flex;position:relative}.perf-layer:hover,.perf-layer:focus-visible{background:var(--hover);outline:none}.perf-layer.selected{background:var(--surface-subtle)}.perf-layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.perf-layer-ms{color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex:none}.perf-bar{background:var(--stroke-default);border-radius:1px;max-width:calc(100% - 12px);height:2px;position:absolute;bottom:3px;left:6px}.perf-layer.covered .perf-layer-name,.perf-layer.covered .perf-layer-ms{color:var(--text-disabled)}.perf-layer.heavy .perf-layer-name,.perf-layer.heavy .perf-layer-ms{color:var(--text-primary);font-weight:500}.perf-layer.heavy .perf-bar{background:var(--status-fair)}.perf-note{font-size:11px;line-height:14px}.perf-meter{background:var(--surface-subtle);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.perf-meter span{background:var(--status-good);height:100%;display:block}.perf-meter span.near{background:var(--status-fair)}.perf-meter span.over{background:var(--status-poor)}.button.perf-restore{height:28px;margin:8px 0 4px}.artboard{box-shadow:0 0 0 1px var(--stroke-subtle), 0 20px 50px #00000080;position:absolute;inset:0;overflow:hidden}.artboard.static{cursor:pointer}.artboard.static img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.artboard.preview-frame-inner{transform-origin:0 0;inset:0 auto auto 0}.preview-handle{cursor:ew-resize;touch-action:none;outline:none;place-items:center;width:16px;display:grid;position:absolute;top:0;bottom:0;left:100%}.preview-handle-grip{background:var(--text-tertiary);border-radius:2px;width:4px;height:40px}.preview-handle:hover .preview-handle-grip,.preview-handle:focus-visible .preview-handle-grip{background:var(--text-primary)}.preview-width{font-variant-numeric:tabular-nums}.canvas .error-panel{background:#1f1214;position:absolute;bottom:0;left:0;right:0}.editor:not(.previewing) .canvas .error-panel{left:calc(var(--float-inset) * 2 + var(--panel-width));right:calc(var(--float-inset) * 2 + var(--panel-width));bottom:calc(var(--float-inset) * 2 + var(--toolbar-height));border:1px solid var(--stroke-default);border-radius:var(--radius-lg)}.inspector-tabs{border-bottom:1px solid var(--stroke-subtle);flex:none;margin:0 16px;padding-bottom:12px}.pill-tab.hint{color:var(--brand-text);box-shadow:inset 0 0 0 1px var(--brand)}.pill-tab.unavailable{color:var(--text-disabled);cursor:default}.inspector-header{align-items:center;gap:8px;padding:12px 16px 4px;display:flex}.inspector-icon{border-radius:var(--radius-lg);background:var(--surface-elevated);width:32px;height:32px;color:var(--text-secondary);flex:none;justify-content:center;align-items:center;display:flex}.inspector-title{flex-direction:column;min-width:0;display:flex}.inspector-title h2{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-size:12px;font-weight:500;line-height:16px;overflow:hidden}.inspector-body{flex:1;min-height:0;padding-bottom:4px;overflow-y:auto}.inspector-hint{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:var(--radius-lg);background:var(--accent-soft);color:var(--text);align-items:flex-start;gap:8px;margin:12px 16px 0;padding:8px 10px;font-size:12px;line-height:1.45;display:flex}.inspector-hint .icon{color:var(--brand-text);flex:none;margin-top:1px}.inspector-description{color:var(--text-tertiary);margin:12px 16px 0;font-size:12px;line-height:16px}.inspector-presets{padding:12px 16px 0}.inspector-actions{border-bottom:1px solid var(--stroke-subtle);flex-wrap:wrap;gap:6px;padding:12px 16px;display:flex}.inspector-actions:last-child{border-bottom:0}.blend-scope{margin:-4px 0 0;font-size:11px}.empty-state{text-align:center;color:var(--faint);flex-direction:column;align-items:center;gap:8px;padding:48px 24px;display:flex}.empty-state h3{color:var(--text);font-size:13px}.empty-state p{color:var(--muted);margin:0}.section{border-bottom:1px solid var(--stroke-subtle)}.section:last-child{border-bottom:0}.section-heading button{width:100%;height:44px;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 16px;font-size:13px;font-weight:500;line-height:16px;display:flex}.section-heading button .chevron{opacity:0;order:1;margin-left:auto;transition:opacity .12s,transform .12s}.section-heading button:hover .chevron,.section-heading button:focus-visible .chevron,.section-heading button[aria-expanded=false] .chevron{opacity:1}.section-body{flex-direction:column;gap:12px;padding:0 16px 16px;display:flex}.row{flex-direction:column;align-items:stretch;gap:4px;min-width:0;display:flex}.row-label{min-width:0;min-height:14px;color:var(--text-tertiary);align-items:center;gap:2px;font-size:11px;line-height:14px;display:flex}.row-label .info{width:14px;height:14px}.row-label .info .icon{width:12px;height:12px}.row-label .info{opacity:0;transition:opacity .12s}.row:hover .row-label .info,.row:focus-within .row-label .info,.row-label .info:focus-visible{opacity:1}.row-pair{grid-template-columns:1fr 1fr;gap:6px;min-width:0;display:grid}.bar-icon{color:var(--text-tertiary);flex:none;margin-right:2px}.segmented.stretch{border-radius:var(--radius-input);background:var(--surface-elevated);grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;width:100%;height:28px;padding:2px;display:grid}.segmented.stretch .tip-anchor{min-width:0;display:flex}.segmented.stretch button{color:var(--text-tertiary);border-radius:4px;flex:1;justify-content:center;align-items:center;padding:0;display:flex}.segmented.stretch button:hover{color:var(--text-primary)}.segmented.stretch button.on{background:var(--surface-subtle);color:var(--text-primary)}.segmented.stretch button:focus-visible{outline:1px solid var(--accent)}.segmented.stretch.number-stepper{flex:none;width:64px}.segmented.stretch.number-stepper button[aria-disabled=true]{color:var(--text-disabled);cursor:default}.number-random{background:var(--surface-elevated);border-radius:var(--radius-input);flex:none}.combo{min-width:0;position:relative}.combo .bar{padding-right:24px}.combo-menu{opacity:0;appearance:none;cursor:pointer;width:24px;height:100%;position:absolute;top:0;right:0}.combo-chevron{pointer-events:none;margin-top:-7px;position:absolute;top:50%;right:6px}.combo:hover .combo-chevron{color:var(--text-primary)}.size-field{min-width:0;display:flex;position:relative}.size-field .bar-value{padding-right:22px}.size-field.has-mode .bar-value{padding-right:42px}.size-mode{display:flex;position:absolute;top:0;bottom:0;right:0}.size-mode .menu-wrap{display:flex}.size-mode-button{border-radius:var(--radius-input);height:100%;color:var(--text-disabled);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;padding:0 5px 0 4px;font-size:11px;display:flex}.size-mode-label{color:var(--text-tertiary)}.size-mode-button:hover,.size-mode-button[aria-expanded=true],.size-mode-button:hover .size-mode-label{color:var(--text-primary)}.size-mode-button:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.size-menu .menu-item.choice{gap:8px;padding-left:10px}.size-menu .menu-check{order:1}.row-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-body{align-items:center;gap:6px;min-width:0;display:flex}.row-stack .row-body{flex-direction:column;align-items:stretch}.control-message{color:var(--danger);margin:0;font-size:12px}.pair{flex:1;grid-template-columns:1fr 1fr;gap:6px;min-width:0;display:grid}.select,.hex-field,.bar-input{border:1px solid var(--surface-elevated);border-radius:var(--radius-input);background:var(--surface-elevated);min-width:0;height:28px;color:var(--text-primary);font:inherit;padding:4px 8px;font-size:12px;line-height:16px}.select:hover,.hex-field:hover{border-color:var(--stroke-default)}.select{cursor:pointer;flex:1}.select:focus,.hex-field:focus{border-color:var(--accent);outline:none}.bar{border-radius:var(--radius-input);background:var(--surface-elevated);cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none;flex:1;min-width:0;height:28px;font-size:12px;line-height:16px;position:relative;overflow:hidden}.bar:hover{background:var(--hover)}.bar.readonly,.bar.readonly:hover{box-shadow:inset 0 0 0 1px var(--stroke-default);color:var(--text-tertiary);cursor:default;background:0 0;display:block}.bar:focus-visible{outline-offset:0}.bar-fill{background:color-mix(in srgb, var(--brand) 16%, transparent);box-shadow:inset -1px 0 color-mix(in srgb, var(--brand) 80%, transparent);pointer-events:none;position:absolute;inset:0 auto 0 0}.bar-handle{display:none}.bar-value{height:100%;color:var(--text-primary);font-variant-numeric:tabular-nums;pointer-events:none;align-items:center;gap:4px;padding:0 8px;display:flex;position:relative}.bar-prefix{color:var(--text-disabled)}.bar-suffix{color:var(--text-tertiary)}.bar.editing{cursor:text;overflow:visible}.bar-input{border-color:var(--accent);font-variant-numeric:tabular-nums;outline:none;width:100%;position:absolute;inset:0}.number-field{color:var(--text-primary);font-variant-numeric:tabular-nums;cursor:text;-webkit-user-select:text;user-select:text;align-items:center;gap:4px;padding:0 8px;display:flex}.number-field:focus-within{box-shadow:inset 0 0 0 1px var(--accent)}.number-field.disabled{color:var(--text-disabled);cursor:default}.number-field-size{min-width:0;max-width:100%;display:inline-grid}.number-field-mirror,.number-field-input{min-width:1ch;font:inherit;white-space:pre;grid-area:1/1}.number-field-mirror{visibility:hidden;overflow:hidden}.number-field-input{width:100%;color:inherit;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;padding:0}.switch{background:var(--surface-subtle);cursor:pointer;border:0;border-radius:9px;width:30px;height:18px;padding:0;transition:background .12s;position:relative}.switch.on{background:var(--accent)}.switch-knob{background:var(--text-primary);width:14px;height:14px;box-shadow:var(--shadow-xs);border-radius:50%;transition:transform .12s;position:absolute;top:2px;left:2px}.switch.on .switch-knob{transform:translate(12px)}.color-editor{border:1px solid var(--surface-elevated);border-radius:var(--radius-input);background:var(--surface-elevated);flex:1;align-items:center;gap:0;min-width:0;height:28px;padding-left:4px;display:flex}.color-editor:hover{border-color:var(--stroke-default)}.color-editor:focus-within{border-color:var(--accent)}.color-editor .swatch{border-radius:4px;width:20px;height:20px}.color-editor .hex-field{background:0 0;border:0;height:26px}.color-editor .bar{border:0;border-left:1px solid var(--stroke-subtle);border-radius:0 var(--radius-input) var(--radius-input) 0;background:0 0;flex:none;width:64px;height:26px}.color-list{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.color-list-row{flex:none}.color-list>.tip-anchor{display:flex}.color-list-row.selectable{cursor:pointer}.color-list-row.selected{border-color:var(--stroke-default);background:var(--surface-subtle)}.color-list-row.drop{border-color:var(--accent)}.color-list-details{flex-direction:column;gap:12px;margin-top:8px;display:flex}.color-list-remove{width:26px;height:26px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.color-list-remove:hover{color:var(--text-primary)}.color-list-remove[aria-disabled=true]{color:var(--text-disabled);cursor:default}.color-list-add{width:100%;color:var(--text-tertiary);font:inherit;text-align:left;cursor:pointer;gap:8px;font-size:12px}.color-list-add .swatch{cursor:inherit;opacity:.6}.color-list-add[aria-disabled=true]{color:var(--text-disabled);cursor:default}.color-list-add[aria-disabled=true]:hover{border-color:var(--surface-elevated)}.swatch{border:1px solid var(--stroke-default);border-radius:var(--radius-input);cursor:pointer;background-size:8px 8px;flex:none;width:24px;height:24px;padding:0;overflow:hidden}.swatch span{width:100%;height:100%;display:block}.hex-field{width:0;font-family:var(--mono);flex:1;font-size:12px}.popover{z-index:10;background:var(--surface-elevated);border:1px solid var(--stroke-default);border-radius:var(--radius-lg);padding:10px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #00000080}.swatch.on{border-color:var(--accent)}.color-picker{z-index:100;background:var(--surface-elevated);border:1px solid var(--stroke-default);border-radius:var(--radius-lg);width:240px;box-shadow:0 12px 32px #00000080, var(--shadow-xs);font-size:12px;line-height:16px;position:fixed;overflow:hidden}.cp-square{cursor:crosshair;touch-action:none;background-image:linear-gradient(#0000,#000),linear-gradient(90deg,#fff,#0000);outline:none;height:200px;position:relative}.cp-thumb{pointer-events:none;border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000059,inset 0 0 0 1px #0003}.cp-square:focus-visible .cp-thumb,.cp-slider:focus-visible .cp-thumb{box-shadow:0 0 0 1px #00000059, 0 0 0 3px var(--accent)}.cp-body{flex-direction:column;gap:12px;padding:12px;display:flex}.cp-sliders-row{align-items:center;gap:8px;display:flex}.cp-eyedropper{flex:none}.cp-sliders{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.cp-slider{cursor:pointer;touch-action:none;border-radius:6px;outline:none;height:12px;position:relative;box-shadow:inset 0 0 0 1px #00000026}.cp-hue{background:linear-gradient(90deg,red 0%,#ff0 16.67%,#0f0 33.33%,#0ff 50%,#00f 66.67%,#f0f 83.33%,red 100%)}.cp-alpha{background-size:8px 8px}.cp-alpha-fill{border-radius:inherit;position:absolute;inset:0}.cp-alpha .cp-thumb{background:0 0}.cp-values{gap:4px;display:flex}.cp-format,.cp-field{border:1px solid var(--surface-subtle);border-radius:var(--radius-input);background:var(--surface-base);min-width:0;height:28px;color:var(--text-primary);font:inherit;padding:4px 6px}.cp-format{cursor:pointer;flex:none;width:56px;padding-right:2px}.cp-field{text-align:center;width:0;font-family:var(--mono);flex:1;font-size:11px}.cp-hex{text-align:left;flex:3}.cp-alpha-field{flex:none;width:46px}.cp-format:hover,.cp-field:hover{border-color:var(--stroke-default)}.cp-format:focus,.cp-field:focus{border-color:var(--accent);outline:none}.cp-swatches{border-top:1px solid var(--stroke-default);flex-direction:column;gap:6px;margin:0 -12px;padding:10px 12px 0;display:flex}.cp-swatches h3{color:var(--text-tertiary);margin:0}.cp-swatch-grid{grid-template-columns:repeat(8,20px);justify-content:space-between;row-gap:6px;display:grid}.cp-swatch{border-radius:var(--radius-input);cursor:pointer;background-size:8px 8px;border:0;width:20px;height:20px;padding:0;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1a}.cp-swatch span{width:100%;height:100%;display:block;box-shadow:inset 0 0 0 1px #00000026}.cp-swatch:hover,.cp-swatch:focus-visible{outline:2px solid var(--stroke-default);outline-offset:1px}.cp-swatch.on{outline:2px solid var(--accent);outline-offset:1px}.gradient-bar{border-radius:var(--radius-sm);outline:1px solid var(--line-strong);cursor:copy;touch-action:none;background-size:8px 8px;height:24px;margin:0 7px 10px;position:relative}.gradient-fill{border-radius:inherit;position:absolute;inset:0}.gradient-stop{border:1px solid var(--line-strong);background:var(--raised);cursor:grab;border-radius:3px;width:14px;height:20px;margin-left:-7px;padding:2px;position:absolute;top:14px}.gradient-stop.on{border-color:var(--text);box-shadow:0 0 0 1px var(--text);z-index:1}.gradient-stop>span{background-size:6px 6px;border-radius:1px;width:100%;height:100%;display:block;overflow:hidden}.gradient-stop>span>span{width:100%;height:100%;display:block}.stop-editor{gap:6px;margin-top:8px}.texture{align-items:flex-start;gap:10px;display:flex}.texture-thumb{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background-size:8px 8px;flex:none;justify-content:center;align-items:center;width:96px;height:60px;display:flex;overflow:hidden}.texture-thumb img,.texture-thumb video{object-fit:cover;width:100%;height:100%}.texture-actions{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.stop-editor{align-items:center;display:flex}.stop-label{width:60px;color:var(--faint);font-size:12px}.fill-editor .fill-name{color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;padding:0 6px;font-family:inherit}.fill-picker-top{border-bottom:1px solid var(--stroke-default);flex-direction:column;gap:10px;padding:12px 12px 10px;display:flex}.fill-tabs button{height:24px;font:inherit;font-weight:500}.fill-tabs button[aria-disabled=true]{color:var(--text-disabled);cursor:default}.fill-gradient-head{align-items:center;gap:2px;display:flex}.fill-gradient-head .menu-wrap{flex:1;min-width:0}.fill-type-button{border-radius:var(--radius-input);min-width:0;height:28px;color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:5px;padding:0 4px;display:flex}.fill-type-button span{text-align:left;flex:1}.fill-type-button:hover,.fill-type-button[aria-expanded=true]{background:var(--surface-elevated)}.fill-type-chevron{color:var(--text-tertiary)}.fill-angle{width:60px;color:var(--text-tertiary);align-items:center;gap:4px;display:flex}.fill-angle .cp-field{text-align:left}.fill-gradient-head .icon-button[aria-disabled=true]{color:var(--text-disabled);cursor:default}.fill-stop-track{touch-action:none;margin:0 9px;padding-top:24px;position:relative}.fill-stop-bar{border-radius:var(--radius-input);outline:1px solid var(--stroke-default);cursor:copy;background-size:8px 8px;height:16px;position:relative}.fill-stop-pin{border-radius:var(--radius-input);background:var(--text-tertiary);width:18px;height:18px;color:var(--text-tertiary);cursor:grab;border:0;margin-left:-9px;padding:2px;position:absolute;top:0}.fill-stop-pin:after{content:"";border:4px solid #0000;border-top-color:currentColor;border-bottom:0;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.fill-stop-pin.on{z-index:1;background:var(--brand);color:var(--brand)}.fill-stop-pin:focus-visible{outline:2px solid var(--accent-soft);outline-offset:1px}.fill-stop-pin>span{background-size:6px 6px;border-radius:2px;width:100%;height:100%;display:block;overflow:hidden}.fill-stop-pin>span>span{width:100%;height:100%;display:block}.fill-stops{flex-direction:column;gap:2px;display:flex}.fill-section-head{justify-content:space-between;align-items:center;display:flex}.fill-section-head h3{color:var(--text-tertiary);margin:0}.fill-stop-row{border-radius:var(--radius-input);align-items:center;gap:4px;margin:0 -4px;padding:2px 4px;display:flex}.fill-stop-row.on{background:var(--surface-subtle)}.fill-stop-row .fill-stop-position{text-align:left;flex:none;width:48px;height:26px}.fill-stop-color{height:26px}.fill-stop-color .swatch{cursor:pointer;background-size:6px 6px;border:0;border-radius:3px;flex:none;width:18px;height:18px;padding:0;overflow:hidden}.fill-stop-color .swatch span{width:100%;height:100%;display:block}.fill-stop-color .hex-field{height:24px;color:var(--text-primary);outline:none;padding:0 6px}.fill-stop-alpha{border:0;border-left:1px solid var(--stroke-subtle);width:46px;height:24px;color:var(--text-primary);font:inherit;background:0 0;outline:none;flex:none;padding:0 6px;font-size:11px}.fill-stop-row .icon-button[aria-disabled=true]{color:var(--text-disabled);cursor:default}.color-picker.compact .cp-square{height:132px}.cp-swatch-fold{border-top:1px solid var(--stroke-default);flex-direction:column;gap:8px;margin:0 -12px;padding:8px 12px 0;display:flex}.cp-swatch-fold .cp-swatches{border-top:0;margin:0;padding:0}.cp-fold-head{color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:flex}.cp-fold-head:hover{color:var(--text-primary)}.cp-swatch-fold.open .cp-fold-head .chevron{transform:rotate(90deg)}.error-panel{border-top:1px solid var(--line);background:var(--danger-soft);flex-direction:column;gap:10px;max-height:40%;padding:10px 16px;display:flex;overflow-y:auto}.error-panel h3{color:var(--danger);margin-bottom:4px}.error-panel ul{margin:0;padding:0;list-style:none}.error-row{text-align:left;cursor:pointer;width:100%;font-family:var(--mono);background:0 0;border:0;align-items:baseline;gap:10px;padding:3px 0;font-size:12px;display:flex}.error-row:disabled{cursor:default}.error-line{color:var(--danger);white-space:nowrap}.error-message{flex:1}.error-fix{font-family:var(--font);white-space:nowrap}.excerpt{background:var(--bg);border-radius:var(--radius-sm);font:12px/1.5 var(--mono);margin:4px 0 6px;padding:6px 0;overflow-x:auto}.excerpt div{white-space:pre;padding:0 10px 0 0}.excerpt .hit{background:var(--danger-soft);box-shadow:inset 2px 0 var(--danger)}.excerpt .ln{text-align:right;width:3.5em;color:var(--faint);-webkit-user-select:none;user-select:none;padding-right:1em;display:inline-block}.empty-state .button:not(.primary){color:var(--text)}.transform-overlay{touch-action:none;position:absolute;inset:0}.transform-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.selection-outline,.hover-outline{fill:none;stroke:var(--accent);stroke-width:1px;vector-effect:non-scaling-stroke}.hover-outline{stroke-opacity:.7}.member-outline{fill:none;stroke:var(--brand);stroke-width:1px;stroke-opacity:.6;vector-effect:non-scaling-stroke}.marquee{fill:color-mix(in srgb, var(--brand) 10%, transparent);stroke:var(--brand);stroke-width:1px;vector-effect:non-scaling-stroke}.rotate-zone,.move-zone{fill:#0000;stroke:none;pointer-events:fill}.edge-grab{stroke:#0000;pointer-events:stroke}.handle{fill:#fff;stroke:var(--accent);stroke-width:1px;pointer-events:all}.transform-overlay.dragging .hover-outline{display:none}.transform-overlay.creating{cursor:crosshair}.transform-overlay.creating.text{cursor:text}.transform-overlay.creating .transform-svg *{pointer-events:none}.transform-overlay.creating .handle,.transform-overlay.creating .point-handle{display:none}.trackball-handle{pointer-events:all}.trackball-hit{fill:#0000}.trackball-ball{fill:color-mix(in srgb, var(--accent) 15%, transparent);stroke:var(--accent);stroke-width:1px}.trackball-line{stroke:var(--accent);stroke-width:1px;stroke-opacity:.6;vector-effect:non-scaling-stroke}.transform-overlay.creating .trackball-handle{display:none}.size-tag{background:var(--accent);color:#fff;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums;border-radius:4px;padding:1px 6px;font-size:11px;line-height:16px;position:absolute;transform:translate(-50%)}.pair-tool{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.pair-tool>:first-child{flex:1;min-width:0}.align-buttons{justify-content:space-between;display:flex}.align-buttons .icon-button{width:24px}.row-note{color:var(--text-tertiary);margin:-6px 0 0;font-size:11px;line-height:1.4}.motion-add-tip{align-self:flex-start;margin:-6px 0 0 -6px}.button.motion-add{height:22px;color:var(--text-tertiary);gap:4px;padding:0 6px}.button.motion-add:hover:not([aria-disabled=true]){color:var(--text-primary)}.button.motion-add[aria-disabled=true]{color:var(--text-disabled);cursor:default;background:0 0}.segmented button:disabled{opacity:.4;cursor:default}.pair-tool .icon-button[aria-pressed=true]{background:var(--hover)}.snap-guide{stroke:var(--accent);stroke-width:1px;shape-rendering:crispedges}.measure-line,.measure-cap{stroke:var(--measure);stroke-width:1px;shape-rendering:crispedges}.measure-extension{stroke:var(--measure);stroke-width:1px;stroke-dasharray:3 3;shape-rendering:crispedges}.measure-tag{background:var(--measure);color:#fff;font-family:var(--font);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;border-radius:3px;padding:0 4px;font-size:11px;font-weight:500;line-height:16px;position:absolute}.desktop-only{padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));background-color:var(--canvas-bg);background-image:radial-gradient(circle, var(--canvas-dot) 1px, transparent 1.5px);background-size:16px 16px;place-items:center;display:grid;position:fixed;inset:0;overflow:auto}.desktop-only-card{text-align:center;flex-direction:column;align-items:center;max-width:360px;display:flex}.desktop-only-brand{color:var(--text-primary);align-items:center;gap:10px;margin-bottom:32px;font-size:15px;font-weight:600;display:flex}.desktop-only-brand .logo{width:25px;height:28px}.desktop-only h1{color:var(--text-primary);text-wrap:balance;margin:0 0 8px;font-size:22px;font-weight:600;line-height:28px}.desktop-only p{color:var(--text-tertiary);text-wrap:balance;margin:0 0 28px;font-size:14px;line-height:20px}.desktop-only-link{height:40px;padding:0 20px;font-size:14px;text-decoration:none}.desktop-only-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.desktop-only .desktop-only-hint{margin:20px 0 0;font-size:12px;line-height:16px}.narrow-banner{z-index:30;top:calc(var(--topbar-height) + var(--float-inset));width:max-content;max-width:calc(100vw - var(--float-inset) * 2);box-sizing:border-box;border:1px solid var(--glass-edge-strong);border-radius:var(--radius-lg);background:var(--glass-tint-strong);box-shadow:var(--glass-highlight), var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--text-primary);align-items:center;gap:8px;padding:6px 6px 6px 12px;font-size:12px;line-height:16px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.narrow-banner-close{border-radius:var(--radius-input);width:24px;height:24px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.narrow-banner-close:hover{background:var(--glass-hover);color:var(--text-primary)}.narrow-banner-close:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.menu-wrap{display:inline-flex;position:relative}.menu{flex-direction:column;min-width:180px;padding:4px;display:flex}.menu.left{left:0;right:auto}.menu-item{border-radius:var(--radius-sm);height:28px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;padding:0 10px}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--hover);outline:none}.menu-item:disabled{color:var(--faint);cursor:default}.menu-item.choice{align-items:center;gap:6px;padding-left:6px;display:flex}.menu-check{width:14px;color:var(--text-primary);display:inline-flex}.menu-label{flex:1}.menu-item.hinted{height:auto;min-height:28px;padding-top:5px;padding-bottom:5px}.menu-hint{color:var(--text-tertiary);font-size:11px;display:block}.menu-shortcut{font:inherit;color:var(--text-tertiary);font-size:11px}.menu-item.danger{color:var(--danger)}.menu-item.separated{margin-top:5px;position:relative}.menu-item.separated:before{content:"";border-top:1px solid var(--line);position:absolute;top:-3px;left:6px;right:6px}.context-menu-anchor{pointer-events:none;width:0;height:0;font-size:12px;font-weight:500;line-height:16px;position:fixed}.context-menu{min-width:220px}.context-menu .menu-item{align-items:center;gap:24px;display:flex}.context-menu .menu-item[aria-disabled=true]{color:var(--faint);cursor:default}.context-menu .menu-item[aria-disabled=true]:hover{background:0 0}.logo-button{border-radius:var(--radius-sm);height:28px;color:var(--text);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-left:-4px;padding:0 4px;display:inline-flex}.logo-button:hover,.logo-button[aria-expanded=true]{background:var(--hover)}.logo-chevron{color:var(--muted);transform:rotate(90deg)}.button.danger{background:var(--danger);color:#1a0b0b;border-color:#0000;font-weight:500}.button.danger:hover:not(:disabled){filter:brightness(1.1)}.dialog-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--raised);border:1px solid var(--line-strong);border-radius:var(--radius);width:min(380px,100%);padding:18px 18px 14px;box-shadow:0 20px 50px #0009}.dialog h2{overflow-wrap:anywhere;margin:0 0 6px;font-size:14px;font-weight:600}.dialog p{margin:0}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.dialog.export-dialog{flex-direction:column;width:min(1040px,100%);max-height:min(760px,100vh - 32px);padding:0;display:flex}.export-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 12px 12px 18px;display:flex}.export-head h2{margin:0}.export-status{text-align:center;padding:40px 18px}.export-error{color:var(--danger)}.export-body{flex:1;grid-template-columns:minmax(0,360px) minmax(0,1fr);min-height:0;display:grid}.export-side{border-right:1px solid var(--line);flex-direction:column;gap:10px;padding:16px 18px;display:flex;overflow-y:auto}.export-preview-area{flex:none;justify-content:center;display:flex}.export-preview{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--canvas);position:relative;overflow:hidden}.export-preview iframe{transform-origin:0 0;color-scheme:normal;border:0;display:block;position:absolute;top:0;left:0}.export-caption{font-size:12px}.export-optimize{gap:2px;margin-top:6px;display:grid}.export-optimize p{margin:0;font-size:12px}.export-check{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.export-check input{accent-color:var(--accent);margin:2px 0 0}.export-size{flex-direction:column;gap:8px;margin-top:6px;display:flex}.export-size-bar{background:var(--bg);border-radius:3px;gap:2px;height:6px;display:flex;overflow:hidden}.export-size-bar span{flex-basis:0;min-width:0}.export-size .part-runtime{background:var(--accent)}.export-size .part-effects{background:#d9a441}.export-size .part-document{background:#6f9bd8}.export-size .part-fonts{background:#c58fd6}.export-size .part-assets{background:#8fbf7a}.export-size-list{gap:3px;margin:0;display:grid}.export-size-list div{justify-content:space-between;gap:12px;display:flex}.export-size-list dt{color:var(--muted);align-items:center;gap:7px;display:inline-flex}.export-size-list dd{margin:0}.export-size .swatch{border-radius:2px;width:8px;height:8px}.export-size-list .export-size-total{border-top:1px solid var(--line);margin-top:3px;padding-top:5px}.export-size-total dt,.export-size-total dd{color:var(--text);font-weight:600}.export-warning{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#d9a4411f;border-color:#d9a44173;padding:9px 11px}.export-warning.strong{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 55%, transparent)}.export-warning p{margin:0 0 6px}.export-warning ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.export-warning li{justify-content:space-between;gap:12px;display:flex}.export-asset-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.export-report{color:var(--muted);gap:4px;margin:0;padding-left:16px;font-size:12px;display:grid}.export-main{flex-direction:column;gap:12px;min-width:0;min-height:0;padding:16px 18px;display:flex}.segmented.export-tabs{background:var(--bg);align-self:flex-start}.export-panel{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.export-notes,.export-steps{margin:0}.export-steps{gap:4px;padding-left:20px;display:grid}.export-notes code,.export-steps code{font:12px var(--mono);color:var(--text)}.export-media p{margin:0 0 6px}.export-media ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.export-media li{align-items:center;gap:10px;min-width:0;display:flex}.export-media li .muted{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.export-media li .button{flex:none;margin-left:auto}.export-file{align-items:center;gap:10px;display:flex}.export-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:12px var(--mono);overflow:hidden}.export-actions{gap:8px;margin-left:auto;display:flex}.export-code{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);min-height:180px;color:var(--muted);font:11.5px/1.5 var(--mono);tab-size:2;flex:1;margin:0;padding:10px 12px;overflow:auto}.export-code:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}@media (width<=760px){.export-body{grid-template-columns:minmax(0,1fr);overflow-y:auto}.export-side{border-right:0;border-bottom:1px solid var(--line);overflow:visible}.export-file{flex-wrap:wrap}}.notices{z-index:150;flex-direction:column;gap:8px;width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.notice{background:var(--raised);border:1px solid var(--line-strong);border-left:3px solid var(--muted);border-radius:var(--radius);align-items:flex-start;gap:8px;padding:10px 8px 10px 12px;font-size:12px;line-height:1.45;display:flex;box-shadow:0 12px 30px #00000080}.notice-warning{border-left-color:var(--accent)}.notice-error{border-left-color:var(--danger)}.notice-body{flex:1;min-width:0}.notice p{margin:0}.notice-action{color:var(--brand-text);margin-left:4px;font-weight:500}.notice ul{color:var(--muted);overflow-wrap:anywhere;max-height:160px;margin:6px 0 0;padding-left:16px;overflow-y:auto}.file-drop{z-index:200;border:2px dashed var(--accent);pointer-events:none;background:#0a0a0bb8;place-items:center;display:grid;position:fixed;inset:0}.file-drop-label{background:var(--raised);border:1px solid var(--line-strong);border-radius:var(--radius);padding:10px 18px;font-size:14px;font-weight:600}.interactions{flex-direction:column;gap:8px;padding:12px;display:flex}.interactions .empty-state{padding:32px 12px 16px}.interactions-add{align-items:center;gap:8px;display:flex}.binding-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);scroll-margin:12px}.binding-card.open{border-color:var(--line-strong)}.binding-head{align-items:center;gap:4px;padding:4px 6px 4px 4px;display:flex}.binding-title{border-radius:var(--radius-sm);min-width:0;color:var(--text);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:4px;display:flex}.binding-title:hover{background:var(--hover)}.binding-chevron{color:var(--faint);flex:none;transition:transform .12s}.binding-card.open .binding-chevron{transform:rotate(90deg)}.binding-text{flex-wrap:wrap;gap:0 5px;min-width:0;font-size:12px;display:flex}.binding-source{font-weight:600}.binding-arrow,.binding-summary{color:var(--muted)}.binding-card.off .binding-title{opacity:.5}.binding-body{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding:10px;display:flex}.binding-body .row{grid-template-columns:88px minmax(0,1fr)}.switch.small{flex:none;width:26px;height:16px}.switch.small .switch-knob{width:12px;height:12px}.switch.small.on .switch-knob{transform:translate(10px)}.curve-preview{flex:none}.curve-preview rect{fill:var(--panel);stroke:var(--line)}.curve-preview polyline{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.target-picker{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--raised);flex-direction:column;gap:8px;padding:10px;display:flex}.target-picker-head{align-items:center;gap:8px;display:flex}.target-picker-head span{flex:1}.target-picker-hint{margin:0;font-size:12px}.target-group{flex-wrap:wrap;gap:4px;display:flex}.target-group h4{color:var(--faint);text-transform:uppercase;letter-spacing:.04em;flex-basis:100%;margin:2px 0;font-size:11px;font-weight:600}.target-option{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);padding:4px 8px;font-size:12px}.target-option:hover,.target-option:focus-visible{border-color:var(--accent);background:var(--accent-soft)}.bound-tip{display:inline-flex}.bound-indicator{background:var(--accent-soft);width:18px;height:18px;color:var(--brand-text);border:0;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:0;display:inline-flex}.bound-indicator:hover{background:var(--accent);color:#fff}.override-dot{cursor:pointer;background:0 0;border:0;width:14px;height:18px;margin-left:2px;padding:0;position:relative}.override-dot:after{content:"";background:var(--brand);border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%}.override-dot:hover:after,.override-dot:focus-visible:after{box-shadow:0 0 0 3px var(--accent-soft)}.override-mark{background:var(--brand);border-radius:50%;flex:none;width:6px;height:6px}.breakpoint-note{flex-wrap:wrap;align-items:center}.combo .override-tip{position:absolute;top:-9px;right:-6px}.rotate-ball{cursor:grab;touch-action:none;display:inline-flex}.rotate-ball:active{cursor:grabbing}.rotate-ball-fill{fill:color-mix(in srgb, var(--text-tertiary) 14%, transparent);stroke:color-mix(in srgb, var(--text-tertiary) 60%, transparent);transition:fill .12s,stroke .12s}.rotate-ball-line{fill:none;stroke:color-mix(in srgb, var(--text-tertiary) 45%, transparent);transition:stroke .12s}.rotate-ball:hover .rotate-ball-fill{fill:color-mix(in srgb, var(--text-tertiary) 24%, transparent);stroke:color-mix(in srgb, var(--text-tertiary) 85%, transparent)}.rotate-ball:hover .rotate-ball-line{stroke:color-mix(in srgb, var(--text-tertiary) 70%, transparent)}.rotate-ball:active .rotate-ball-fill{stroke:var(--brand-text)}.rotate-ball:active .rotate-ball-line{stroke:color-mix(in srgb, var(--brand-text) 75%, transparent)}.rotate-ball:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:50%}.point-handle{pointer-events:all}.point-hit{fill:#0000}.point-dot{fill:var(--accent);stroke:#fff;stroke-width:2px;filter:drop-shadow(0 1px 2px #00000080)}.point-handle:hover .point-dot,.transform-overlay.point .point-dot{stroke-width:3px}.gradient-handles{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.gradient-line{stroke:#fff;stroke-width:1.5px;filter:drop-shadow(0 0 1px #0009)}.gradient-handle{fill:#fff;stroke:var(--brand);stroke-width:2px;filter:drop-shadow(0 1px 2px #00000080);pointer-events:all;cursor:grab}.gradient-handle.from{fill:var(--brand);stroke:#fff}.gradient-handle:hover,.gradient-handle:active{stroke-width:3px}.point-handle.picked .point-dot{stroke:var(--brand);stroke-width:3px}.scroll-scrub label{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.scroll-scrub input{width:90px;accent-color:var(--accent)}.scroll-scrub-value{font-variant-numeric:tabular-nums;min-width:3ch}.stage.page{align-content:start;place-items:start center}.page-filler{background:repeating-linear-gradient(to bottom, transparent 0 22px, var(--raised) 22px 30px, transparent 30px 44px);width:min(640px,100%);-webkit-mask:linear-gradient(90deg,#000 70%,#0000);mask:linear-gradient(90deg,#000 70%,#0000)}.preview-bar{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--raised);white-space:nowrap;align-items:center;gap:10px;padding:6px 10px 6px 6px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}.text-editor{transform-origin:50%;cursor:text;position:absolute}.text-editor textarea{color:#0000;overflow-wrap:anywhere;resize:none;font-kerning:normal;cursor:text;background:0 0;border:0;outline:none;margin:0;padding:0;position:absolute;top:0;overflow:hidden}.text-editor textarea::selection{background:color-mix(in srgb, var(--accent) 35%, transparent);color:#0000}.text-field{border:1px solid var(--surface-elevated);border-radius:var(--radius-input);background:var(--surface-elevated);width:100%;min-height:48px;color:var(--text-primary);font:inherit;resize:vertical;padding:6px 8px;font-size:12px;line-height:16px}.text-field:hover{border-color:var(--stroke-default)}.text-field:focus{border-color:var(--accent);outline:none}.font-button{text-align:left;justify-content:space-between;align-items:center;gap:6px;display:flex}.font-button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.font-button{width:100%}.font-button .chevron{flex:none}.font-button.on{border-color:var(--accent)}.row-note.error{color:var(--danger)}.font-picker{z-index:100;background:var(--surface-elevated);border:1px solid var(--stroke-default);border-radius:var(--radius-lg);width:260px;max-height:min(480px,100vh - 24px);box-shadow:0 12px 32px #00000080, var(--shadow-xs);flex-direction:column;font-size:12px;line-height:16px;display:flex;position:fixed;overflow:hidden}.fp-search{border:0;border-bottom:1px solid var(--stroke-default);height:36px;color:var(--text-primary);font:inherit;background:0 0;outline:none;flex:none;margin:0;padding:8px 12px}.fp-list{flex:1;min-height:0;padding:4px;overflow-y:auto}.fp-heading{color:var(--text-tertiary);padding:8px 8px 4px;font-size:11px}.fp-row{align-items:center;display:flex}.fp-option{border-radius:var(--radius-input);min-width:0;height:28px;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:0 8px;display:flex}.fp-option.active{background:var(--hover)}.fp-option:disabled{cursor:progress}.fp-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.fp-option .fp-name{font-size:13px;line-height:24px}.fp-detail{color:var(--text-tertiary);font-size:11px}.fp-option.on{color:var(--brand-text)}.fp-remove{flex:none}.fp-empty{color:var(--text-tertiary);margin:8px}.fp-foot{border-top:1px solid var(--stroke-default);flex-direction:column;flex:none;gap:8px;padding:10px 12px 12px;display:flex}.fp-upload{background:var(--surface-subtle);justify-content:center;height:28px}.fp-hint,.fp-status{color:var(--text-tertiary);margin:0;font-size:11px;line-height:1.4}.fp-status{color:var(--text-primary)}.fp-status.error{color:var(--danger)}.fp-note{color:var(--text-tertiary);margin-top:4px;display:block}.m3d-row{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.m3d-button{text-align:left;align-items:center;gap:8px;width:100%;min-width:0;padding-left:4px;display:flex}.m3d-button.on{border-color:var(--accent)}.m3d-button .chevron{flex:none}.m3d-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.m3d-swatch{border-radius:var(--radius-input);background:var(--surface-subtle);flex:none;width:20px;height:20px;position:relative;overflow:hidden}.m3d-swatch img,.m3d-thumb img{object-fit:cover;width:100%;height:100%;display:block}.m3d-settings{flex:none}.m3d-settings:hover,.m3d-settings.on{background:var(--surface-elevated);color:var(--text-primary)}.picker-3d{z-index:100;background:var(--surface-elevated);border:1px solid var(--stroke-default);border-radius:var(--radius-lg);width:260px;max-height:min(640px,100vh - 24px);box-shadow:0 12px 32px #00000080, var(--shadow-xs);flex-direction:column;padding-bottom:12px;font-size:12px;line-height:16px;display:flex;position:fixed;overflow-y:auto}.picker-3d.wide{width:296px}.picker-3d>.fp-heading,.m3d-head{padding:10px 12px 6px}.m3d-head{justify-content:space-between;align-items:center;min-height:34px;padding-top:6px;padding-bottom:2px;display:flex}.m3d-head .fp-heading{padding:0}.m3d-reset{border-radius:var(--radius-input);height:24px;color:var(--brand-text);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 8px;font-weight:500}.m3d-reset:hover{background:var(--hover)}.m3d-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;padding:2px 12px 0;display:grid}.m3d-section{color:var(--text-tertiary);padding:12px 12px 6px;font-size:11px}.m3d-card{min-width:0;color:var(--text-secondary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:4px;padding:0;font-size:11px;display:flex}.m3d-thumb{aspect-ratio:1;border-radius:var(--radius-lg);background:var(--surface-subtle);width:100%;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0000}.m3d-thumb:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #0000}.m3d-card:hover .m3d-thumb:after{box-shadow:inset 0 0 0 1px var(--stroke-default)}.m3d-card.on .m3d-thumb:after{box-shadow:inset 0 0 0 2px var(--brand)}.m3d-card:focus-visible{outline:none}.m3d-card:focus-visible .m3d-thumb{outline:2px solid var(--accent);outline-offset:2px}.m3d-card-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:14px;display:-webkit-box;overflow:hidden}.m3d-card.on .m3d-card-name{color:var(--brand-text)}.m3d-preview{border-radius:var(--radius-lg);flex:none;height:140px;margin:0 12px;overflow:hidden}.m3d-preview-canvas{width:100%;height:100%}.m3d-body{flex-direction:column;gap:12px;padding:12px 12px 0;display:flex}.panel,.toolbar,.topbar,.shell-side,.popover,.tooltip,.color-picker,.font-picker,.picker-3d,.dialog-backdrop{--surface-base:var(--glass-well);--panel:var(--surface-base);--surface-elevated:var(--glass-control);--raised:var(--surface-elevated);--hover:var(--glass-hover);--surface-subtle:var(--glass-subtle);--stroke-subtle:var(--glass-line);--line:var(--stroke-subtle);--stroke-default:var(--glass-line-strong);--line-strong:var(--stroke-default);--text-tertiary:var(--glass-tertiary);--muted:var(--text-tertiary);--text-disabled:var(--glass-disabled);--faint:var(--text-disabled)}.panel,.toolbar{border-color:var(--glass-edge);background:var(--glass-tint);box-shadow:var(--glass-highlight), var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.toast{z-index:20;left:50%;bottom:calc(var(--toolbar-height) + var(--float-inset) * 2);max-width:calc(100% - var(--panel-width) * 2 - var(--float-inset) * 4);border:1px solid var(--glass-edge-strong);border-radius:var(--radius-lg);background:var(--glass-tint-strong);box-shadow:var(--glass-highlight), var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--text-primary);align-items:center;gap:12px;padding:6px 6px 6px 12px;font-size:12px;line-height:16px;display:flex;position:absolute;transform:translate(-50%)}.toast-action{border-radius:var(--radius-input);height:24px;color:var(--brand-text);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0 8px;font-weight:500}.toast-action:hover{background:var(--glass-hover)}.toast-action:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.popover,.color-picker,.font-picker,.picker-3d,.tooltip{border-color:var(--glass-edge-strong);background:var(--glass-tint-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.popover{box-shadow:var(--glass-highlight), 0 10px 30px #00000080}.color-picker,.font-picker,.picker-3d{box-shadow:var(--glass-highlight), 0 12px 32px #00000080, var(--shadow-xs)}.tooltip{box-shadow:var(--glass-highlight), 0 6px 20px #00000073}.topbar{background:0 0}.topbar:before{content:"";z-index:-1;background:var(--glass-tint);box-shadow:inset 0 -1px 0 var(--glass-rule), var(--glass-shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);pointer-events:none;position:absolute;inset:0}.crash-screen{z-index:200;background:var(--canvas-bg);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.crash-card{border:1px solid var(--stroke-default);border-radius:var(--radius-panel);background:var(--surface-base);width:min(420px,100%);color:var(--text-primary);padding:24px}.crash-card h1{margin:0 0 8px;font-size:16px;font-weight:600;line-height:24px}.crash-card p{color:var(--text-tertiary);margin:0 0 16px;font-size:13px;line-height:20px}.crash-card details{color:var(--text-tertiary);margin-top:16px;font-size:12px}.crash-card summary{cursor:pointer}.crash-card code{border-radius:var(--radius-input);background:var(--surface-elevated);color:var(--text-secondary);word-break:break-word;white-space:pre-wrap;margin-top:8px;padding:8px;font-size:11px;display:block}.string-field{flex:1;width:100%}.export-free-note{border-radius:var(--radius-sm);background:var(--blue-alpha);color:var(--text-secondary);padding:8px 10px;font-size:12px;line-height:18px}
