@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2) format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff")}:root,[data-theme=light]{color-scheme:light;--surface-100: #ffffff;--surface-200: #f2f4f7;--line: #dde2e9;--ink: #17202b;--ink-muted: #5a6270;--navy: #1e3a5f;--on-navy: #ffffff;--orange: #db661c;--orange-text: #a94c15;--danger: #c4302b;--on-danger: #ffffff;--success: #2f7d4f;--northframe-control-border: #8b93a1;--northframe-warn-bg: #fbeee4;--northframe-success-bg: #e5f3ea;--northframe-shadow: 0 6px 24px rgba(23, 32, 43, .14), 0 1px 3px rgba(23, 32, 43, .1);--northframe-scrim: rgba(23, 32, 43, .45);--northframe-canvas-filter: none}[data-theme=dark]{color-scheme:dark;--surface-100: #121820;--surface-200: #1b2430;--line: #2c3848;--ink: #f2efe8;--ink-muted: #a3abb6;--navy: #8fb3e0;--on-navy: #121820;--orange: #f08a45;--orange-text: #f5a06b;--danger: #ef6a62;--on-danger: #1b0b0a;--success: #7cc79a;--northframe-control-border: #6b7686;--northframe-warn-bg: #3a2417;--northframe-success-bg: #17301f;--northframe-shadow: 0 6px 24px rgba(0, 0, 0, .5), 0 1px 3px rgba(0, 0, 0, .4);--northframe-scrim: rgba(0, 0, 0, .6);--northframe-canvas-filter: invert(.93) hue-rotate(180deg)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--surface-100: #121820;--surface-200: #1b2430;--line: #2c3848;--ink: #f2efe8;--ink-muted: #a3abb6;--navy: #8fb3e0;--on-navy: #121820;--orange: #f08a45;--orange-text: #f5a06b;--danger: #ef6a62;--on-danger: #1b0b0a;--success: #7cc79a;--northframe-control-border: #6b7686;--northframe-warn-bg: #3a2417;--northframe-success-bg: #17301f;--northframe-shadow: 0 6px 24px rgba(0, 0, 0, .5), 0 1px 3px rgba(0, 0, 0, .4);--northframe-scrim: rgba(0, 0, 0, .6);--northframe-canvas-filter: invert(.93) hue-rotate(180deg)}}:root{--space-1: 4px;--space-2: 8px;--space-4: 16px;--space-6: 24px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 22px;--font-display: "Space Grotesk", "Avenir Next", "Segoe UI", system-ui, sans-serif;--font-sans: "Inter Variable", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--text-body: 400 14px/20px var(--font-sans);--text-body-strong: 600 14px/20px var(--font-sans);--text-caption: 400 13px/18px var(--font-sans);--text-label: 600 12px/16px var(--font-sans);--text-title: 600 16px/22px var(--font-display);--control-size: 36px;--northframe-z-canvas-ui: 10;--northframe-z-menu: 40;--northframe-z-modal: 60;--northframe-z-toast: 80}html,body,#root{height:100%;margin:0}body{font:var(--text-body);color:var(--ink);background:var(--surface-100);overflow:hidden;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--navy);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.northframe-app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--surface-100)}.northframe-main{position:absolute;top:0;right:0;bottom:0;left:0}.northframe-canvas-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.northframe-canvas-container canvas{filter:var(--northframe-canvas-filter);display:block;touch-action:none}.northframe-text-editor{filter:var(--northframe-canvas-filter);position:absolute;border:0;outline:1px dashed var(--navy);outline-offset:0;white-space:pre;background:transparent;resize:none;padding:0;margin:0;min-width:0;min-height:0;line-height:1.25;overflow:hidden}.northframe-icon{display:block;flex:0 0 auto}.northframe-library-actions button,.northframe-library-delete,.northframe-modal-actions button,.northframe-modal-section button,.northframe-share-link button,.northframe-share-add button,.northframe-share-members button,.northframe-fontsize button,.northframe-props-toggle{height:32px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--surface-200);color:var(--ink);font:var(--text-body-strong);font-size:13px;cursor:pointer}.northframe-library-actions button:hover:not(:disabled),.northframe-library-delete:hover:not(:disabled),.northframe-modal-actions button:hover:not(:disabled),.northframe-modal-section button:hover:not(:disabled),.northframe-share-link button:hover:not(:disabled),.northframe-share-add button:hover:not(:disabled),.northframe-share-members button:hover:not(:disabled),.northframe-fontsize button:hover:not(:disabled),.northframe-props-toggle:hover{background:var(--line)}.northframe-library-actions button:disabled,.northframe-library-delete:disabled,.northframe-modal-actions button:disabled,.northframe-modal-section button:disabled,.northframe-share-link button:disabled,.northframe-share-add button:disabled,.northframe-share-members button:disabled,.northframe-fontsize button:disabled{opacity:.45;cursor:default}.northframe-modal-actions button.primary,.northframe-revisions-detail .primary{border-color:var(--navy);background:var(--navy);color:var(--on-navy)}.northframe-modal-actions button.primary:hover:not(:disabled),.northframe-revisions-detail .primary:hover:not(:disabled){background:var(--navy);filter:brightness(1.12)}.northframe-revisions-detail .primary{height:36px;border-radius:var(--radius-md);cursor:pointer;font:var(--text-body-strong)}.northframe-revisions-detail .primary:disabled{opacity:.5;cursor:default}input,select{height:34px;padding:0 10px;border:1px solid var(--northframe-control-border);border-radius:var(--radius-md);background:var(--surface-100);color:var(--ink);font:var(--text-body)}input::placeholder{color:var(--ink-muted)}input[type=color],input[type=number]{padding:0}.northframe-toolbar-wrap{position:absolute;top:var(--space-2);left:0;right:0;z-index:var(--northframe-z-menu);display:flex;justify-content:center;padding:0 var(--space-2);pointer-events:none}.northframe-toolbar{pointer-events:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-1);max-width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-100);box-shadow:var(--northframe-shadow)}.northframe-toolbar-group{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px;max-width:100%}.northframe-sep{flex:0 0 auto;width:1px;height:22px;margin:0 var(--space-1);background:var(--line)}.northframe-tool{display:inline-flex;align-items:center;justify-content:center;width:var(--control-size);height:var(--control-size);padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink);cursor:pointer}.northframe-tool:hover:not(:disabled){background:var(--surface-200)}.northframe-tool.active,.northframe-tool[aria-expanded=true]{background:var(--navy);color:var(--on-navy)}.northframe-tool.active .fillable{fill:currentColor}.northframe-tool:disabled{opacity:.35;cursor:default}.northframe-toolbar.read-only .edit-group{opacity:.4}.northframe-identity-chip{display:inline-flex;align-items:center;gap:var(--space-2);height:var(--control-size);max-width:200px;padding:0 var(--space-4) 0 var(--space-2);border:0;border-radius:18px;background:var(--surface-200);color:var(--ink);font:var(--text-body-strong);cursor:pointer}.northframe-identity-chip:hover,.northframe-identity-chip[aria-expanded=true]{background:var(--line)}.northframe-identity-dot{flex:0 0 auto;width:12px;height:12px;border-radius:50%}.northframe-identity-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.northframe-dropdown{position:relative}.northframe-menu{position:absolute;top:calc(100% + var(--space-2));z-index:var(--northframe-z-menu);min-width:270px;max-height:calc(100vh - 80px);overflow-y:auto;padding:var(--space-1);border:1px solid var(--line);border-radius:14px;background:var(--surface-100);box-shadow:var(--northframe-shadow)}.northframe-menu.left{left:0}.northframe-menu.right{right:0}.northframe-menu-section+.northframe-menu-section{margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--line)}.northframe-menu-title{padding:var(--space-2) var(--space-2) var(--space-1);color:var(--ink-muted);font:var(--text-label);letter-spacing:.04em;text-transform:uppercase}.northframe-menu-item{display:flex;align-items:center;gap:var(--space-2);width:100%;height:var(--control-size);padding:0 var(--space-2);border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink);font:var(--text-body);text-align:left;cursor:pointer}.northframe-menu-item:hover:not(:disabled),.northframe-menu-item:focus-visible{background:var(--surface-200)}.northframe-menu-item:disabled{opacity:.4;cursor:default}.northframe-menu-label{flex:1 1 auto}.northframe-menu-hint{color:var(--ink-muted);font:var(--text-caption)}.northframe-menu-check{color:var(--navy)}.northframe-menu-header{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-2) var(--space-2);border-bottom:1px solid var(--line)}.northframe-menu-header strong{font:var(--text-title);font-size:15px}.northframe-menu-header span{color:var(--ink-muted);font:var(--text-caption)}.northframe-presence{display:inline-flex;align-items:center;gap:var(--space-2);padding:0 var(--space-1)}.northframe-collab-status{display:inline-flex;align-items:center;gap:6px;color:var(--ink-muted);font:var(--text-caption)}.northframe-collab-status-text{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.northframe-collab-dot{width:9px;height:9px;border-radius:50%;background:var(--ink-muted)}.northframe-collab-status.online .northframe-collab-dot{background:var(--success)}.northframe-collab-status.connecting .northframe-collab-dot,.northframe-collab-status.syncing .northframe-collab-dot{background:var(--orange)}.northframe-collab-status.offline .northframe-collab-dot{background:var(--orange-text)}.northframe-collab-peers{display:inline-flex}.northframe-collab-peer{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-left:-6px;border:2px solid var(--surface-100);border-radius:50%;color:#fff;font:var(--text-label)}.northframe-collab-peer:first-child{margin-left:0}.northframe-role-badge{padding:2px 10px;border-radius:var(--radius-sm);background:var(--surface-200);color:var(--ink);font:var(--text-label)}.northframe-role-badge.owner{color:var(--navy)}.northframe-role-badge.viewer,.northframe-role-badge.open{background:var(--northframe-warn-bg);color:var(--orange-text)}.northframe-readonly-banner{position:absolute;top:64px;left:50%;z-index:var(--northframe-z-canvas-ui);transform:translate(-50%);max-width:calc(100% - 32px);padding:var(--space-1) var(--space-4);border-radius:var(--radius-lg);background:var(--northframe-warn-bg);color:var(--orange-text);font:var(--text-caption);box-shadow:var(--northframe-shadow);pointer-events:none}.northframe-props{position:absolute;top:64px;z-index:var(--northframe-z-canvas-ui);display:flex;flex-direction:column;max-height:calc(100% - 80px);overflow-y:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface-100);box-shadow:var(--northframe-shadow)}.northframe-props{left:var(--space-2);width:240px}.northframe-props.collapsed{width:auto;padding:var(--space-1);border-radius:var(--radius-md)}.northframe-props-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);padding:var(--space-4) var(--space-4) var(--space-2)}.northframe-props-header strong{display:block;font:var(--text-title)}.northframe-props-sub{color:var(--ink-muted);font:var(--text-caption)}.northframe-props-toggle{width:28px;height:28px;padding:0;line-height:1}.northframe-props-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-2) var(--space-4) var(--space-4)}.northframe-props-empty,.northframe-library-empty,.northframe-revisions-empty{margin:0;color:var(--ink-muted);font:var(--text-caption)}.northframe-props-section{display:flex;flex-direction:column;gap:6px}.northframe-props-label{color:var(--ink-muted);font:var(--text-label);letter-spacing:.04em;text-transform:uppercase}.northframe-slider-row{display:flex;align-items:center;gap:10px}.northframe-slider-row input[type=range]{flex:1;min-width:0}.northframe-slider-value{min-width:3.2em;text-align:right;color:var(--ink-muted);font-variant-numeric:tabular-nums}.northframe-swatches{display:flex;flex-wrap:wrap;gap:6px}.northframe-swatch{width:24px;height:24px;padding:0;border:1px solid var(--northframe-control-border);border-radius:var(--radius-sm);cursor:pointer}.northframe-swatch.transparent{background:linear-gradient(45deg,var(--line) 25%,transparent 25%,transparent 75%,var(--line) 75%),linear-gradient(45deg,var(--line) 25%,var(--surface-100) 25%,var(--surface-100) 75%,var(--line) 75%);background-size:8px 8px;background-position:0 0,4px 4px}.northframe-swatch.active{outline:2px solid var(--navy);outline-offset:2px}.northframe-color-input{width:28px;height:28px;padding:0;border-radius:var(--radius-sm);cursor:pointer}.northframe-segmented{display:flex}.northframe-segmented button{flex:1 1 0;min-width:0;height:30px;padding:0 4px;border:1px solid var(--northframe-control-border);background:var(--surface-100);color:var(--ink);font:var(--text-label);cursor:pointer}.northframe-segmented button+button{margin-left:-1px}.northframe-segmented button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.northframe-segmented button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.northframe-segmented button:hover:not(.active){background:var(--surface-200)}.northframe-segmented.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.northframe-segmented.grid button,.northframe-segmented.grid button:first-child,.northframe-segmented.grid button:last-child{margin:0;border-radius:var(--radius-sm)}.northframe-segmented button.active{position:relative;border-color:var(--navy);background:var(--navy);color:var(--on-navy)}.northframe-fontsize{display:flex;gap:4px}.northframe-fontsize button{width:36px;padding:0}.northframe-fontsize input{flex:1 1 auto;min-width:0;text-align:center}.northframe-library-actions{display:flex;flex-wrap:wrap;gap:var(--space-1)}.northframe-library-delete{padding:0 10px}.northframe-library-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.northframe-library-item{display:flex;align-items:stretch;gap:var(--space-1)}.northframe-library-insert{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-100);color:var(--ink);font:var(--text-caption);cursor:pointer}.northframe-library-insert:hover{background:var(--surface-200)}.northframe-library-thumb{max-width:100%;max-height:90px;object-fit:contain}.northframe-revisions-error{margin:0;padding:var(--space-2) var(--space-2);border-radius:var(--radius-md);background:var(--northframe-warn-bg);color:var(--orange-text);font:var(--text-caption)}.northframe-revision-item{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-100);color:var(--ink);font:var(--text-caption);text-align:left;cursor:pointer}.northframe-revision-item:hover{background:var(--surface-200)}.northframe-revision-item.selected{border-color:var(--navy);background:var(--surface-200)}.northframe-revision-kind{color:var(--ink-muted);font:var(--text-label);letter-spacing:.04em;text-transform:uppercase}.northframe-revision-kind.named,.northframe-revision-kind.owner{color:var(--navy)}.northframe-revision-kind.restore,.northframe-revision-kind.restore-point,.northframe-revision-kind.viewer{color:var(--orange-text)}.northframe-revision-name{font:var(--text-body-strong);word-break:break-word}.northframe-revision-meta{color:var(--ink-muted);font:var(--text-caption)}.northframe-revisions-detail{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--line)}.northframe-revisions-preview{max-width:100%;max-height:160px;object-fit:contain;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}.northframe-scene-item{display:flex;align-items:stretch;gap:var(--space-1)}.northframe-scene-item .northframe-revision-item{flex:1 1 auto;min-width:0}.northframe-scene-actions{display:flex;flex-direction:column;gap:var(--space-1)}.northframe-scene-actions button{flex:1 1 auto;padding:0 8px}.northframe-scenes-heading{color:var(--ink-muted);font:var(--text-label);letter-spacing:.04em;text-transform:uppercase}.northframe-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--northframe-z-modal);display:flex;align-items:center;justify-content:center;background:var(--northframe-scrim)}.northframe-modal{display:flex;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 48px);flex-direction:column;gap:var(--space-2);padding:var(--space-6);overflow-y:auto;border:1px solid var(--line);border-radius:18px;background:var(--surface-100);box-shadow:var(--northframe-shadow)}.northframe-modal h2{margin:0;font:var(--text-title);font-size:20px}.northframe-modal p{margin:0 0 var(--space-1);color:var(--ink-muted);font:var(--text-caption)}.northframe-modal label{font:var(--text-label)}.northframe-modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.northframe-modal-section{display:flex;flex-direction:column;gap:6px;padding-top:var(--space-2);border-top:1px solid var(--line)}.northframe-modal-section button{align-self:flex-start}.northframe-modal-section button.danger{border-color:var(--danger);background:transparent;color:var(--danger)}.northframe-modal-ok{margin:0;padding:var(--space-2);border-radius:var(--radius-md);background:var(--northframe-success-bg);color:var(--success);font:var(--text-caption)}.northframe-share{width:min(580px,calc(100vw - 32px))}.northframe-share-link{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md)}.northframe-share-link-title{font:var(--text-body-strong)}.northframe-share-hint{color:var(--ink-muted);font:var(--text-caption)}.northframe-share-buttons{display:flex;flex-wrap:wrap;gap:6px}.northframe-share-members{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.northframe-share-members li{display:flex;align-items:center;gap:var(--space-2)}.northframe-share-member-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--text-body)}.northframe-share-add{display:flex;gap:6px}.northframe-share-add input{flex:1 1 auto;min-width:0}.northframe-toasts{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:var(--northframe-z-toast);display:flex;width:min(380px,calc(100vw - 32px));flex-direction:column;gap:var(--space-2);pointer-events:none}.northframe-toast{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-100);color:var(--ink);box-shadow:var(--northframe-shadow);font:var(--text-body);pointer-events:auto;animation:northframe-toast-in .16s ease-out}.northframe-toast-icon{box-sizing:content-box;padding:5px;border-radius:50%;background:var(--surface-200);color:var(--navy)}.northframe-toast.success .northframe-toast-icon{background:var(--northframe-success-bg);color:var(--success)}.northframe-toast.error .northframe-toast-icon{background:var(--northframe-warn-bg);color:var(--orange-text)}.northframe-toast-text{flex:1 1 auto;padding-top:5px;word-break:break-word}.northframe-toast-close{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);cursor:pointer}.northframe-toast-close:hover{background:var(--surface-200);color:var(--ink)}@keyframes northframe-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.northframe-toast{animation:none}}.northframe-remote-cursors{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.northframe-remote-cursor{position:absolute;left:0;top:0;will-change:transform;transition:transform 60ms linear}.northframe-remote-cursor svg{display:block}.northframe-remote-cursor-label{position:absolute;left:12px;top:16px;padding:1px 6px;border-radius:var(--radius-sm);color:#fff;font:var(--text-label);white-space:nowrap}.northframe-presentation{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#111}.northframe-presentation canvas{display:block;cursor:pointer}.northframe-presentation-hud{position:absolute;right:var(--space-4);bottom:12px;display:flex;align-items:center;gap:10px;padding:4px 12px;border-radius:var(--radius-md);background:#0000008c;color:#fff;font:var(--text-caption);opacity:.6}.northframe-presentation-hud:hover{opacity:1}.northframe-presentation-hud button{border:none;background:transparent;color:#fff;cursor:pointer;font-size:14px}.northframe-view{position:absolute;left:var(--space-2);bottom:var(--space-2);z-index:var(--northframe-z-canvas-ui);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);pointer-events:none}.northframe-view>*{pointer-events:auto}.northframe-view-bar{display:flex;align-items:center;gap:2px;padding:var(--space-1);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-100);box-shadow:var(--northframe-shadow)}.northframe-view-sep{width:1px;height:20px;margin:0 var(--space-1);background:var(--line)}.northframe-zoom-value{min-width:56px;height:var(--control-size);padding:0 var(--space-1);border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink);font:var(--text-body-strong);font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer}.northframe-zoom-value:hover{background:var(--surface-200)}.northframe-view .northframe-tool:disabled{opacity:.4;cursor:default}.northframe-save-status{margin:0 var(--space-2) 0 var(--space-1);color:var(--ink-muted);font-size:12px;white-space:nowrap}.northframe-save-status.error{color:var(--orange-text);font-weight:600}.northframe-minimap{display:block;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-100);box-shadow:var(--northframe-shadow);cursor:pointer;touch-action:none}.northframe-shortcuts{width:min(520px,calc(100vw - 32px))}.northframe-shortcuts h3{margin:var(--space-2) 0 var(--space-1);font:var(--text-body-strong);font-size:13px;color:var(--ink-muted)}.northframe-shortcuts dl{display:grid;margin:0;gap:2px}.northframe-shortcuts dl>div{display:grid;grid-template-columns:minmax(160px,1fr) 1.4fr;align-items:center;gap:var(--space-2);padding:3px 0}.northframe-shortcuts dt{display:flex;flex-wrap:wrap;align-items:center;gap:4px;color:var(--ink-muted);font-size:12px}.northframe-shortcuts dd{margin:0;color:var(--ink);font-size:14px}.northframe-shortcuts kbd{min-width:22px;padding:2px 6px;border:1px solid var(--northframe-control-border);border-bottom-width:2px;border-radius:6px;background:var(--surface-200);color:var(--ink);font:inherit;font-size:12px;font-weight:600;text-align:center}.northframe-layers-list,.northframe-layers-children{margin:0;padding:0;list-style:none}.northframe-layers-children{padding:0 0 0 var(--space-4);overflow:visible}.northframe-layers-item{position:relative}.northframe-layers-item.dragging{opacity:.45}.northframe-layers-item.drop-before:before,.northframe-layers-item.drop-after:after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--northframe-selection, #1e3a5f)}.northframe-layers-item.drop-before:before{top:-1px}.northframe-layers-item.drop-after:after{bottom:-1px}.northframe-layers-row{display:flex;align-items:center;gap:var(--space-1);min-height:32px;padding:0 var(--space-1) 0 var(--space-2);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none}.northframe-layers-row:hover{background:var(--surface-200, rgba(0, 0, 0, .05))}.northframe-layers-row.selected{background:#4f6bff24}.northframe-layers-row.locked .northframe-layers-label{color:var(--ink-muted)}.northframe-layers-row.hidden .northframe-layers-label,.northframe-layers-row.hidden .northframe-layers-thumb{opacity:.45}.northframe-layers-label{flex:1;margin-left:var(--space-1);min-width:0;overflow:hidden;font:var(--text-body);text-overflow:ellipsis;white-space:nowrap}.northframe-layers-thumb{flex:none;border:1px solid var(--line);border-radius:4px}.northframe-layers-icon{flex:none;color:var(--ink-muted)}.northframe-layers-twist,.northframe-layers-lock,.northframe-layers-eye{display:grid;flex:none;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink-muted);cursor:pointer}.northframe-layers-twist .northframe-icon{transition:transform .12s}.northframe-layers-twist .northframe-icon.open{transform:rotate(90deg)}.northframe-layers-lock:hover:not(:disabled),.northframe-layers-eye:hover:not(:disabled),.northframe-layers-twist:hover{background:#00000014}.northframe-layers-lock:disabled,.northframe-layers-eye:disabled{opacity:.4;cursor:default}.northframe-side-actions .northframe-tool[aria-pressed=true]{background:#4f6bff2e}.northframe-layers-hint{margin:0;padding:0;color:var(--ink-muted);font:var(--text-caption)}.northframe-layers-row:focus-visible{outline:2px solid var(--northframe-selection, #1e3a5f);outline-offset:-2px}.northframe-layers-move{display:none;flex:none;gap:0}.northframe-layers-row:hover .northframe-layers-move,.northframe-layers-row:focus-within .northframe-layers-move{display:flex}.northframe-layers-move button{display:grid;place-items:center;width:20px;height:24px;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink-muted);cursor:pointer}.northframe-layers-move button:hover:not(:disabled){background:#00000014}.northframe-layers-move button:disabled{opacity:.3;cursor:default}.northframe-layers-move .northframe-icon.up{transform:rotate(-90deg)}.northframe-layers-move .northframe-icon.down{transform:rotate(90deg)}.northframe-modal.northframe-mermaid{width:min(680px,calc(100vw - 32px))}.northframe-mermaid-source{min-height:220px;padding:var(--space-2);border:1px solid var(--northframe-control-border);border-radius:var(--radius-md);background:var(--surface-100);color:var(--ink);font:13px/1.5 ui-monospace,Cascadia Code,Consolas,monospace;resize:vertical;-moz-tab-size:2;tab-size:2}.northframe-mermaid-options{display:flex;flex-direction:column;gap:4px;margin:var(--space-1) 0 0;padding:0;border:0}.northframe-mermaid-options legend{padding:0;font:var(--text-label)}.northframe-mermaid-options label{font:var(--text-caption)}.northframe-mermaid-error{padding:var(--space-2);border-radius:var(--radius-md);background:var(--northframe-error-bg, rgba(224, 49, 49, .1));color:var(--orange-text)}.northframe-context-menu{position:fixed;top:0;left:0;min-width:250px;outline:none}.northframe-context-menu .northframe-menu-item{min-height:36px}@media (pointer: coarse){.northframe-context-menu .northframe-menu-item{min-height:46px}}canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.northframe-library-scroll{display:contents}.northframe-library-group-title{margin-top:var(--space-2);color:var(--ink-muted);font:var(--text-label);letter-spacing:.04em;text-transform:uppercase}.northframe-library-own summary,.northframe-library-builtin summary{display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:0 var(--space-1);border-radius:var(--radius-md);font:var(--text-body-strong);cursor:pointer}.northframe-library-own summary:hover,.northframe-library-builtin summary:hover{background:var(--surface-200)}.northframe-library-own summary span,.northframe-library-builtin summary span{color:var(--ink-muted);font:var(--text-caption)}.northframe-library-builtin .northframe-library-list{display:grid;grid-template-columns:1fr 1fr;margin-top:var(--space-1)}.northframe-library-builtin .northframe-library-insert{height:100%;justify-content:center}.northframe-library-own>:not(summary){margin-top:var(--space-1)}.northframe-right{position:absolute;top:64px;right:var(--space-2);z-index:var(--northframe-z-canvas-ui);display:flex;flex-direction:column;width:320px;max-height:calc(100% - 64px - var(--space-2));overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface-100);box-shadow:var(--northframe-shadow)}.northframe-side-section{display:flex;flex:0 1 auto;flex-direction:column;min-height:0}.northframe-side-section+.northframe-side-section{border-top:1px solid var(--line)}.northframe-side-header{display:flex;flex:0 0 auto;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4)}.northframe-side-toggle{display:flex;flex:1 1 auto;align-items:center;gap:var(--space-2);min-width:0;height:36px;padding:0;border:0;background:transparent;color:var(--ink);font:var(--text-title);text-align:left;cursor:pointer}.northframe-side-toggle .northframe-icon{color:var(--ink-muted);transition:transform .15s ease}.northframe-side-toggle .northframe-icon.open{transform:rotate(90deg)}.northframe-side-meta{color:var(--ink-muted);font:var(--text-caption)}.northframe-side-actions{display:flex;flex:0 0 auto;gap:var(--space-1)}.northframe-side-body{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-2);min-height:0;padding:0 var(--space-4) var(--space-4);overflow-y:auto}@media (prefers-reduced-motion: reduce){.northframe-side-toggle .northframe-icon{transition:none}}html,body{overscroll-behavior:none;touch-action:manipulation}.northframe-props{top:var(--northframe-top, 64px);box-sizing:border-box;max-height:calc(100% - var(--northframe-top, 64px) - var(--northframe-view-h, 56px) - var(--space-2))}.northframe-right{top:var(--northframe-top, 64px);max-height:calc(100% - var(--northframe-top, 64px) - var(--space-2));max-width:calc(100% - 2 * var(--space-2))}@supports (padding: env(safe-area-inset-top)){.northframe-toolbar-wrap{padding-left:max(var(--space-2),env(safe-area-inset-left));padding-right:max(var(--space-2),env(safe-area-inset-right))}.northframe-view{left:max(var(--space-2),env(safe-area-inset-left));bottom:max(var(--space-2),env(safe-area-inset-bottom))}.northframe-right{right:max(var(--space-2),env(safe-area-inset-right))}}@media (max-width: 800px){.northframe-main:has(.northframe-right .northframe-library) .northframe-props{display:none}.northframe-main:has(.northframe-props:not(.collapsed)):not(:has(.northframe-right .northframe-library)) .northframe-right{display:none}.northframe-sep,.northframe-identity-name,.northframe-save-status{display:none}}.northframe-teams{max-height:86vh;overflow-y:auto}.northframe-teams-tabs{display:flex;flex-wrap:wrap;gap:6px}.northframe-teams-tabs button.selected{background:var(--navy);color:var(--on-navy)}.northframe-teams-tag{margin-left:6px;padding:0 6px;border-radius:var(--radius-md);background:var(--surface-100);color:var(--ink);font-size:11px}.northframe-invite-link{flex:1 1 8em;min-width:0}.northframe-ask-input:focus-visible{border-color:var(--navy);outline:2px solid var(--navy);outline-offset:-1px}.northframe-ask-error{margin:0;color:var(--danger);font:var(--text-caption)}.northframe-ask-message{white-space:pre-line;color:var(--ink)}.northframe-ask-input{width:100%}.northframe-modal-actions button.danger{border-color:var(--danger);background:var(--danger);color:var(--on-danger)}.northframe-modal-actions button.danger:hover:not(:disabled){filter:brightness(1.1)}.northframe-manage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;background:var(--surface-200);color:var(--ink)}.northframe-manage-header{display:flex;flex:0 0 auto;align-items:center;gap:var(--space-4);padding:10px var(--space-4);border-bottom:1px solid var(--line);background:var(--surface-100)}.northframe-manage-header h1{margin:0;font:var(--text-title);font-size:18px}.northframe-manage-body{display:flex;min-height:0;flex:1 1 auto}.northframe-manage-nav{display:flex;flex:0 0 256px;flex-direction:column;gap:2px;padding:var(--space-3);overflow-y:auto;border-right:1px solid var(--line);background:var(--surface-100)}.northframe-manage-nav button{display:flex;min-height:34px;align-items:center;justify-content:space-between;gap:6px;padding:0 10px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink);font:var(--text-body-strong);font-size:14px;text-align:left;cursor:pointer}.northframe-manage-nav button>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.northframe-manage-nav button:hover{background:var(--surface-200)}.northframe-manage-nav button.selected{background:var(--navy);color:var(--on-navy)}.northframe-manage-nav .child{padding-left:26px;font-weight:500;font-size:13.5px}.northframe-manage-nav .group{margin-top:var(--space-3);padding:0 10px 2px;color:var(--ink-muted);font:var(--text-label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}.northframe-manage-nav .badge{flex:0 0 auto;min-width:20px;padding:0 6px;border-radius:10px;background:var(--danger);color:var(--on-danger);font-size:11.5px;line-height:20px;text-align:center}.northframe-manage-nav .spacer{flex:1 1 auto;min-height:var(--space-3)}.northframe-manage-nav .found{border:1px dashed var(--northframe-control-border);color:var(--ink-muted)}.northframe-manage-content{min-width:0;flex:1 1 auto;overflow-y:auto;padding:var(--space-6)}.northframe-manage-page{display:flex;width:100%;max-width:1080px;flex-direction:column;gap:var(--space-4)}.northframe-manage-page>h2{margin:0;font:var(--text-title);font-size:22px}.northframe-manage-panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.northframe-manage-panel-head h2,.northframe-manage-panel-head h3{margin:0;font:var(--text-title);font-size:18px}.northframe-manage-stack{display:flex;flex-direction:column;gap:var(--space-3)}.northframe-manage-block{display:flex;flex-direction:column;gap:8px;padding:var(--space-4);border:1px solid var(--line);border-radius:14px;background:var(--surface-100)}.northframe-manage-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.northframe-manage-inline input{min-width:0;flex:1 1 14em}.northframe-manage-create{display:flex;flex:1 1 18em;gap:8px}.northframe-manage-create input{min-width:0;flex:1 1 auto}.northframe-table{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:var(--surface-100);overflow:hidden}.northframe-table-head,.northframe-table-row{display:grid;align-items:center;gap:8px;padding:8px 14px}.northframe-table-head{border-bottom:1px solid var(--line);color:var(--ink-muted);font:var(--text-label);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase}.northframe-table-row+.northframe-table-row{border-top:1px solid var(--line)}.northframe-table-row.current{background:var(--surface-200)}.northframe-table .name{min-width:0;overflow:hidden;font:var(--text-body-strong);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.northframe-table .muted{min-width:0;overflow:hidden;color:var(--ink-muted);font:var(--text-caption);text-overflow:ellipsis;white-space:nowrap}.northframe-table.scenes .northframe-table-head,.northframe-table.scenes .northframe-table-row{grid-template-columns:minmax(0,2.4fr) minmax(0,1.4fr) 92px 110px 440px}.northframe-table .actions{display:grid;grid-template-columns:76px 112px 150px 84px;gap:8px}.northframe-table .actions>*{min-width:0}.northframe-table .actions select,.northframe-table .actions button{width:100%}.northframe-table.history .northframe-table-row{grid-template-columns:minmax(0,2.4fr) minmax(0,1.4fr) 76px 44px}.northframe-table.teams .northframe-table-head,.northframe-table.teams .northframe-table-row{grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) 120px}.northframe-table.teams button.northframe-table-row{width:100%;border:0;border-radius:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.northframe-table.teams button.northframe-table-row:hover{background:var(--surface-200)}.northframe-table.teams button.northframe-table-row.selected{background:var(--navy);color:var(--on-navy)}.northframe-table.teams button.northframe-table-row.selected .muted{color:inherit;opacity:.85}.northframe-table-scroll{min-height:0;overflow-y:auto}.northframe-manage-block button,.northframe-manage-header .northframe-manage-back,.northframe-table .actions button,.northframe-table .actions select,.northframe-table-row>button,.northframe-manage-create button,.northframe-manage-page>button,.northframe-manage-panel-head button{height:32px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--surface-200);color:var(--ink);font:var(--text-body-strong);font-size:13px;cursor:pointer}.northframe-table .actions select{border-color:var(--northframe-control-border);background:var(--surface-100);font-weight:500}.northframe-manage-block button:hover:not(:disabled),.northframe-manage-header .northframe-manage-back:hover,.northframe-table .actions button:hover:not(:disabled),.northframe-table-row>button:hover:not(:disabled){background:var(--line)}.northframe-manage-block button:disabled,.northframe-table .actions button:disabled{opacity:.5;cursor:default}.northframe-manage-block button.danger,.northframe-table .actions button.danger,.northframe-manage-page button.danger{border-color:var(--danger);background:transparent;color:var(--danger)}.northframe-manage-block button.danger:hover:not(:disabled),.northframe-table .actions button.danger:hover:not(:disabled){background:var(--danger);color:var(--on-danger)}.northframe-manage-block button.primary,.northframe-manage-page button.primary{border-color:var(--navy);background:var(--navy);color:var(--on-navy)}.northframe-manage-header .northframe-manage-back{display:inline-flex;align-items:center;gap:6px}.northframe-manage-block .northframe-share-members button{align-self:auto}.northframe-manage-block .northframe-share-buttons{display:flex;flex-wrap:wrap;gap:8px}.northframe-tag{display:inline-block;margin-left:6px;padding:0 7px;border-radius:10px;background:var(--surface-200);color:var(--ink-muted);font-size:11.5px;line-height:18px;white-space:nowrap}.northframe-table button.selected .northframe-tag{background:#fff3;color:inherit}.northframe-manage-invite{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:10px 0}.northframe-manage-invite+.northframe-manage-invite{border-top:1px solid var(--line)}.northframe-manage-invite .text{display:flex;min-width:0;flex:1 1 22em;flex-direction:column}.northframe-manage-invite .buttons{display:flex;gap:8px}@media (max-width: 860px){.northframe-manage-body{flex-direction:column}.northframe-manage-nav{flex:0 0 auto;max-height:38%;border-right:0;border-bottom:1px solid var(--line)}.northframe-manage-content{padding:var(--space-4)}.northframe-table.scenes .northframe-table-head{display:none}.northframe-table.scenes .northframe-table-row,.northframe-table.history .northframe-table-row{display:flex;flex-wrap:wrap;gap:2px 8px}.northframe-table.scenes .northframe-table-row .name,.northframe-table.history .northframe-table-row .name{flex:1 0 100%}.northframe-table .actions{display:flex;flex:1 0 100%;flex-wrap:wrap;margin-top:6px}.northframe-table .actions>*{width:auto}.northframe-table.teams .northframe-table-head{display:none}.northframe-table.teams .northframe-table-row{display:flex;flex-wrap:wrap;gap:2px 10px}.northframe-table.teams .northframe-table-row .name{flex:1 0 100%}}.northframe-manage-page>button:not(.primary):not(.danger){align-self:flex-start}.northframe-manage-create{flex:0 1 auto}.northframe-manage-inline>.northframe-manage-create{flex:1 1 18em}.northframe-manage-block p{margin:0}.northframe-manage-create button,.northframe-manage-panel-head button,.northframe-manage-page>button:not(.primary):not(.danger),.northframe-manage-inline>button{border-color:var(--line)}@media (max-width: 860px){.northframe-manage-nav{flex:0 0 auto;max-height:none;flex-direction:row;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;padding:8px var(--space-3)}.northframe-manage-nav button{flex:0 0 auto;min-height:32px;border:1px solid var(--line)}.northframe-manage-nav button.selected{border-color:var(--navy)}.northframe-manage-nav .child{padding-left:10px}.northframe-manage-nav .group{flex:0 0 auto;margin:0 2px 0 8px;padding:0}.northframe-manage-nav .spacer{display:none}.northframe-table.scenes .northframe-table-row .muted+.muted:before{content:"· "}}@media (max-width: 860px){.northframe-table .actions button,.northframe-table .actions select{width:auto}.northframe-table .actions>span{display:none}}.northframe-manage-nav .add{color:var(--ink-muted);font-weight:500}.northframe-manage-stack>.northframe-manage-panel-head{margin-bottom:4px}.northframe-props-brand select{width:100%}.northframe-props-hint{color:var(--ink-muted);font:var(--text-caption)}.northframe-props-outdated{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px;border-radius:var(--radius-md);background:var(--northframe-warn-bg);font:var(--text-caption)}.northframe-props-outdated button{height:28px;padding:0 10px;border:1px solid var(--orange-text);border-radius:var(--radius-md);background:transparent;color:var(--ink);font:var(--text-body-strong);font-size:12px;cursor:pointer}.northframe-swatch.branded{box-shadow:0 0 0 1px var(--navy)}.northframe-table.brandings .northframe-table-head,.northframe-table.brandings .northframe-table-row{grid-template-columns:minmax(0,2fr) minmax(0,1fr) 140px}.northframe-table.brandings button.northframe-table-row{width:100%;border:0;border-radius:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.northframe-table.brandings button.northframe-table-row:hover{background:var(--surface-200)}.northframe-brand-preview svg{display:block;width:100%;max-width:460px;height:auto;border:1px solid var(--line);border-radius:10px}.northframe-brand-slots{display:flex;flex-direction:column;gap:6px}.northframe-brand-slot{display:grid;grid-template-columns:22px auto minmax(0,1fr) auto;align-items:center;gap:8px}.northframe-color-field{display:inline-flex;align-items:center;gap:4px}.northframe-color-field input[type=color]{width:44px;height:32px;padding:2px}.northframe-color-field input:not([type=color]){height:32px;box-sizing:border-box;text-align:center}.northframe-color-hex{width:92px;font-family:ui-monospace,Menlo,Consolas,monospace}.northframe-color-channel{width:44px}.northframe-color-field[data-default=true] input:not([type=color]){color:var(--ink-muted)}.northframe-color-field input[aria-invalid=true]{border-color:var(--danger);outline-color:var(--danger)}.northframe-color-import,.northframe-color-import-preview,.northframe-color-import-actions{display:flex;gap:8px}.northframe-color-import{flex-direction:column;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md)}.northframe-color-import textarea{width:100%;min-width:260px;font-family:ui-monospace,Menlo,Consolas,monospace}.northframe-color-import-preview{flex-wrap:wrap}.northframe-color-chip{display:inline-flex;align-items:center;gap:4px;font:var(--text-caption)}.northframe-color-chip i{width:18px;height:18px;border:1px solid var(--line);border-radius:4px}.northframe-brand-slot-no{color:var(--ink-muted);font:var(--text-caption);text-align:right}.northframe-brand-logo{display:block;max-width:240px;max-height:120px;object-fit:contain;border:1px solid var(--line);border-radius:var(--radius-md);background:repeating-conic-gradient(var(--surface-200) 0% 25%,transparent 0% 50%) 50% / 16px 16px}.northframe-brand-logo-small{width:18px;height:18px;margin-right:6px;object-fit:contain;vertical-align:-3px}.northframe-brand-head-actions{display:inline-flex;gap:8px}.northframe-props-select-row{display:flex;align-items:center;gap:6px}.northframe-props-select-row select{flex:1 1 auto;min-width:0}.northframe-brand-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 16px}.northframe-brand-field{display:flex;flex-direction:column;gap:4px;font:var(--text-label)}.northframe-brand-field select,.northframe-brand-field input:not([type=checkbox]):not([type=color]){width:100%}.northframe-brand-actions{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-100);box-shadow:var(--northframe-shadow)}.northframe-brand-actions button{height:32px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--surface-200);color:var(--ink);font:var(--text-body-strong);font-size:13px;cursor:pointer}.northframe-brand-actions button.primary{border-color:var(--navy);background:var(--navy);color:var(--on-navy)}.northframe-brand-actions button.danger{border-color:var(--danger);background:transparent;color:var(--danger)}.northframe-brand-actions button:disabled{opacity:.5;cursor:default}.northframe-brand-spacer{flex:1 1 auto}.northframe-policy{display:flex;flex-direction:column;gap:6px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md)}.northframe-policy legend{padding:0 6px;font:var(--text-label)}.northframe-policy-row{display:flex;align-items:center;gap:8px;font:var(--text-body)}.northframe-policy-row.nested{padding-left:24px}@media (max-width: 860px){.northframe-brand-slot{grid-template-columns:22px minmax(0,1fr)}.northframe-brand-slot .northframe-color-field{flex-wrap:wrap}.northframe-brand-slot .northframe-brand-slot-name,.northframe-brand-slot button{grid-column:2}}.northframe-brand-bg{display:flex;align-items:center;gap:10px}.northframe-layers-anim{display:grid;flex:none;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink-muted);cursor:pointer}.northframe-layers-anim:hover:not(:disabled){background:var(--surface-200);color:var(--ink)}.northframe-layers-anim.on{color:var(--orange-text)}.northframe-layers-anim.on svg .fillable{fill:currentColor}.northframe-anim-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--northframe-z-modal);pointer-events:none}.northframe-anim{position:absolute;top:72px;right:16px;width:min(380px,calc(100vw - 32px));max-height:calc(100vh - 96px);overflow:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:12px;pointer-events:auto}.northframe-anim h2{margin:0;font:var(--text-title)}.northframe-anim-row{display:flex;align-items:center;gap:8px}.northframe-anim-label{font:var(--text-label);color:var(--ink-muted)}.northframe-anim-value,.northframe-anim-grow{flex:1 1 auto;min-width:0}.northframe-anim-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.northframe-anim-grid label{display:flex;flex-direction:column;gap:4px;font:var(--text-label)}.northframe-anim-grid select,.northframe-anim-grid input{width:100%;box-sizing:border-box}.northframe-anim-checks{display:flex;flex-direction:column;gap:6px;font:var(--text-body)}.northframe-anim-copy{display:flex;flex-direction:column;gap:8px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md)}.northframe-anim-copy legend{padding:0 6px;font:var(--text-label)}.northframe-anim-sub{font:var(--text-label);color:var(--ink-muted)}.northframe-anim-list{list-style:none;margin:0;padding:0;max-height:120px;overflow:auto;font:var(--text-body)}.northframe-anim-effects{display:flex;flex-direction:column;gap:8px}.northframe-fx{display:flex;flex-direction:column;gap:8px;margin:0;padding:8px 12px 10px;border:1px solid var(--line);border-radius:var(--radius-md)}.northframe-fx legend{display:flex;align-items:center;gap:6px;padding:0 6px;font:var(--text-label)}.northframe-fx-remove{display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);cursor:pointer}.northframe-fx-remove:hover{background:var(--surface-200);color:var(--danger)}.northframe-fx-color{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.northframe-fx .northframe-color-field{flex-wrap:wrap}.northframe-pick-hint{position:fixed;top:72px;left:50%;transform:translate(-50%);z-index:var(--northframe-z-toast);display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--navy);border-radius:var(--radius-md);background:var(--surface-100);box-shadow:var(--northframe-shadow);font:var(--text-body-strong)}body.northframe-picking canvas{cursor:crosshair!important}.northframe-gif{display:flex;flex-direction:column;gap:12px;width:min(420px,calc(100vw - 32px))}.northframe-gif progress{width:100%}
