.math-keyboard{position:fixed;z-index:28;right:0;bottom:0;left:0;height:var(--keyboard-dock-height);padding:9px 18px 12px calc(var(--panel-width) + 18px);border-top:1px solid var(--keyboard-key-border);background:var(--keyboard-surface);box-shadow:0 -6px 18px color-mix(in srgb,var(--text) 8%,transparent);user-select:none;-webkit-user-select:none;transform-origin:bottom center}.math-keyboard.is-open{animation:keyboard-dock-enter var(--motion-panel) cubic-bezier(.22,1,.36,1) both}.math-keyboard.is-closing{pointer-events:none;animation:keyboard-dock-exit var(--motion-panel) cubic-bezier(.22,1,.36,1) both}@keyframes keyboard-dock-enter{0%{transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.keyboard-frame{width:min(100%,900px);margin:0 auto}.keyboard-header{display:flex;align-items:center;gap:8px;min-height:32px;margin-bottom:7px}.keyboard-title{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;color:var(--text-secondary);font-size:10px;font-weight:750;letter-spacing:.065em;text-transform:uppercase}.keyboard-tabs{display:flex;align-self:center;gap:2px;padding:2px;border:1px solid color-mix(in srgb,var(--keyboard-key-border) 72%,transparent);border-radius:6px;background:var(--keyboard-key-muted)}.keyboard-close,.keyboard-tabs button{position:relative;height:30px;padding:0 10px;color:var(--text-secondary);font-size:11.5px;font-weight:700;border:1px solid transparent;border-radius:4px;background:transparent;cursor:pointer}.keyboard-tabs button[aria-pressed=true]{color:var(--primary);border-color:var(--keyboard-key-border);background:var(--keyboard-key);box-shadow:0 1px 2px color-mix(in srgb,var(--text) 8%,transparent)}.keyboard-tabs button[aria-pressed=true]:after{content:none}.keyboard-close{display:flex;width:auto;height:32px;align-items:center;justify-content:center;gap:5px;margin-left:auto;padding:0 8px;border-color:var(--keyboard-key-border);border-radius:6px;background:var(--keyboard-key)}.keyboard-close span,.keyboard-close svg{display:block;flex:0 0 auto}.keyboard-close span{line-height:15px}.keyboard-close:hover{color:var(--text);background:var(--surface-hover)}.keyboard-content{display:grid;grid-template-columns:minmax(0,1fr) 224px;gap:16px}.keyboard-key-panel{min-width:0}.keyboard-basic-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.keyboard-key-group{display:grid;min-width:0;gap:5px}.keyboard-group-label{color:var(--text-secondary);font-size:10px;font-weight:750;letter-spacing:.09em;line-height:12px;text-transform:uppercase}.keyboard-command-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-content:start}.keyboard-command-label{grid-column:1/-1}.keyboard-edit-tools,.keyboard-navigation{display:grid;grid-column:1/-1;gap:6px}.keyboard-edit-tools{grid-template-columns:repeat(3,minmax(0,1fr))}.keyboard-navigation{grid-template-columns:repeat(4,minmax(0,1fr))}.keyboard-command-row .keyboard-edit-tools button,.keyboard-command-row .keyboard-navigation button{color:color-mix(in srgb,var(--text) 22%,var(--text-secondary))}.keyboard-command-row .keyboard-edit-tools svg,.keyboard-command-row .keyboard-navigation svg{width:16px;height:16px;stroke-width:2.15}.keyboard-command-row button,.keyboard-grid button{display:grid;min-width:0;height:36px;place-items:center;padding:0 7px;color:var(--text);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1;border:1px solid color-mix(in srgb,var(--keyboard-key-border) 58%,transparent);border-radius:6px;background:var(--keyboard-key);box-shadow:none;cursor:pointer;touch-action:manipulation;transition:color .1s ease,border-color .1s ease,background-color .1s ease,box-shadow .1s ease,transform 80ms ease}.keyboard-command-row button{color:var(--text-secondary);border-color:transparent;background:color-mix(in srgb,var(--surface-raised) 48%,transparent);box-shadow:none}.keyboard-command-row .keyboard-delete,.keyboard-command-row .keyboard-submit{grid-column:auto}.keyboard-command-row .keyboard-functions-button{display:flex;grid-column:1/-1;align-items:center;justify-content:center;gap:6px;color:color-mix(in srgb,var(--text) 20%,var(--text-secondary));border-color:color-mix(in srgb,var(--primary) 12%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 24%,var(--keyboard-key))}.keyboard-functions-button svg{flex:0 0 auto;color:var(--brand)}.keyboard-command-row .keyboard-functions-button[aria-expanded=true]{color:color-mix(in srgb,var(--primary) 84%,var(--text));border-color:color-mix(in srgb,var(--primary) 36%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 66%,var(--keyboard-key))}.keyboard-functions-button[aria-expanded=true] svg{color:var(--primary)}.keyboard-command-row .keyboard-delete{display:flex;align-items:center;justify-content:center;gap:5px;color:color-mix(in srgb,var(--text) 20%,var(--text-secondary));font-size:12px;font-weight:720;line-height:1;border-color:color-mix(in srgb,var(--keyboard-key-border) 62%,transparent);background:var(--keyboard-key)}.keyboard-command-row .keyboard-delete svg{width:16px;height:16px;flex:0 0 auto;stroke-width:2}.keyboard-subtract-glyph{display:block;width:13px;height:2px;border-radius:999px;background:currentColor}.keyboard-grid button.is-operator{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 16%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 62%,var(--keyboard-key))}.keyboard-number-grid button:not(.is-operator){font-weight:750;background:color-mix(in srgb,var(--keyboard-key) 92%,var(--keyboard-surface))}.keyboard-number-grid button.is-operator{background:color-mix(in srgb,var(--primary-soft) 62%,var(--keyboard-key))}.keyboard-grid button.is-constant,.keyboard-grid button.is-function,.keyboard-grid button.is-operator,.keyboard-grid button.is-variable{font-family:Cambria Math,STIX Two Math,Georgia,serif}.keyboard-grid button.is-operator{font-size:17px}.keyboard-grid button.is-variable{color:var(--text-secondary);font-style:italic}@media (hover:hover){.keyboard-grid button:hover{color:var(--text);border-color:color-mix(in srgb,var(--primary) 24%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 30%,var(--keyboard-key));box-shadow:0 3px 8px color-mix(in srgb,var(--text) 8%,transparent);transform:translateY(-1px)}.keyboard-grid button.is-operator:hover{color:var(--primary-hover);border-color:color-mix(in srgb,var(--primary) 28%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 78%,var(--keyboard-key))}.keyboard-command-row button:hover{color:var(--text);border-color:transparent;background:var(--surface-hover);box-shadow:none}.keyboard-command-row .keyboard-functions-button:hover{color:var(--text);border-color:color-mix(in srgb,var(--primary) 26%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 48%,var(--keyboard-key));box-shadow:0 3px 8px color-mix(in srgb,var(--text) 7%,transparent);transform:translateY(-1px)}.keyboard-command-row .keyboard-functions-button[aria-expanded=true]:hover{color:var(--primary-hover);border-color:color-mix(in srgb,var(--primary) 44%,var(--keyboard-key-border));background:color-mix(in srgb,var(--primary-soft) 78%,var(--keyboard-key))}.keyboard-command-row .keyboard-delete:hover{color:var(--text);border-color:color-mix(in srgb,var(--primary) 18%,var(--keyboard-key-border));background:color-mix(in srgb,var(--surface-hover) 62%,var(--keyboard-key));box-shadow:0 3px 8px color-mix(in srgb,var(--text) 7%,transparent);transform:translateY(-1px)}.keyboard-command-row .keyboard-submit:hover{color:var(--canvas);border-color:var(--brand-hover);background:var(--brand-hover);box-shadow:0 3px 9px color-mix(in srgb,var(--brand) 22%,transparent);transform:translateY(-1px)}}.keyboard-command-row button:active,.keyboard-grid button:active{transform:translateY(1px);box-shadow:none}.keyboard-close:focus-visible,.keyboard-command-row button:focus-visible,.keyboard-grid button:focus-visible,.keyboard-tabs button:focus-visible{position:relative;z-index:1;outline:2px solid var(--primary);outline-offset:2px}.keyboard-command-row .keyboard-submit{color:var(--canvas);font-size:12px;font-weight:750;border-color:var(--brand);background:var(--brand);box-shadow:0 2px 6px color-mix(in srgb,var(--brand) 20%,transparent)}.keyboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-height:162px;align-content:start}.keyboard-symbol-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.keyboard-grid-functions,.keyboard-grid-trig{grid-template-columns:repeat(4,minmax(0,1fr))}.keyboard-grid-functions button,.keyboard-grid-trig button{font-family:Cambria Math,STIX Two Math,Georgia,serif;font-size:15px}.math-keyboard.is-functions{height:min(360px,calc(100dvh - var(--topbar-height) - 18px))}.keyboard-key-panel-functions{min-width:0;min-height:0}.sponsored-rail,.sponsored-rail-reopen,.sponsored-rail-toggle{display:none}@media (min-width:1500px) and (min-height:720px){.sponsored-rail{position:relative;z-index:8;display:flex;min-width:0;align-items:center;flex-direction:column;padding:12px 13px;border-left:1px solid var(--border-strong);background:color-mix(in srgb,var(--surface-raised) 44%,var(--surface));transition:opacity .14s ease,transform .21s cubic-bezier(.22,1,.36,1),padding-inline .21s cubic-bezier(.22,1,.36,1)}.sponsored-rail-heading{display:flex;width:160px;align-items:center;margin-bottom:7px;color:var(--text-tertiary);font-size:7.5px;font-weight:700;letter-spacing:.09em;line-height:1;text-transform:uppercase}.sponsored-card{position:relative;display:block;width:160px;height:600px;flex:0 0 600px;padding:0;border:0;background:transparent}.sponsored-card-preview{display:flex;width:100%;height:100%;flex-direction:column;overflow:hidden;padding:14px 13px 12px;color:var(--text);border:1px solid color-mix(in srgb,var(--border) 78%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-raised) 62%,var(--surface));pointer-events:none}.sponsored-card:after,.sponsored-card:before{content:none}.sponsored-brand{position:relative;z-index:1;display:flex;align-items:center;gap:6px;color:var(--text-tertiary);font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.sponsored-brand-mark{display:grid;width:22px;height:22px;place-items:center;color:var(--primary);font-family:Georgia,serif;font-size:14px;font-weight:700;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.sponsored-art{position:relative;z-index:1;width:118px;height:184px;margin:24px auto 20px}.sponsored-art svg{display:block;width:118px;height:164px;opacity:.68}.sponsored-grid-line{fill:none;stroke:var(--border);stroke-width:1}.sponsored-axis-line{fill:none;stroke:var(--text-tertiary);opacity:.55;stroke-width:1}.sponsored-curve-line{fill:none;stroke:var(--primary);stroke-linecap:round;stroke-width:2.5}.sponsored-curve-point{fill:var(--primary)}.sponsored-formula{position:absolute;right:0;bottom:0;padding:4px 6px;color:var(--text-secondary);font:italic 9px Georgia,serif;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.sponsored-copy{position:relative;z-index:1}.sponsored-copy>span{color:var(--text-tertiary);font-size:7.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.sponsored-copy strong{display:block;margin-top:7px;font-size:16.5px;font-weight:650;line-height:1.14;letter-spacing:-.025em}.sponsored-copy p{margin:9px 0 0;color:var(--text-tertiary);font-size:9.5px;line-height:1.55}.sponsored-cta{position:relative;z-index:1;display:flex;height:34px;align-items:center;justify-content:space-between;margin-top:auto;padding:0 4px;color:var(--text-tertiary);font-size:8.5px;font-weight:650;border-top:1px solid var(--border)}.sponsor-collapsed .sponsored-rail{width:0;max-width:0;padding-inline:0;overflow:hidden;visibility:hidden;opacity:0;border-left-color:transparent;transform:translateX(14px);pointer-events:none}.sponsored-rail-toggle{display:grid;width:22px;height:22px;place-items:center;margin:-7px -3px -7px auto;padding:0;color:var(--text-tertiary);border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer}.sponsored-rail-toggle:focus-visible,.sponsored-rail-toggle:hover{color:var(--text);border-color:var(--border);background:var(--surface)}.sponsor-collapsed .sponsored-rail-reopen{position:absolute;z-index:18;top:50%;right:0;display:grid;width:27px;height:48px;place-items:center;padding:0;color:var(--text-secondary);border:1px solid var(--border-strong);border-right:0;border-radius:8px 0 0 8px;background:var(--surface);box-shadow:-2px 2px 8px color-mix(in srgb,var(--text) 7%,transparent);transform:translateY(-50%);cursor:pointer}.sponsor-collapsed .sponsored-rail-reopen:focus-visible,.sponsor-collapsed .sponsored-rail-reopen:hover{color:var(--primary);background:var(--primary-soft)}}.surface-app{--panel-width:360px;display:grid;height:100dvh;min-height:620px;grid-template-rows:var(--topbar-height) minmax(0,1fr);overflow:hidden;color:var(--text);background:var(--app-bg)}.surface-topbar{z-index:40;min-width:0;gap:0;padding:0 12px 0 14px;border-bottom:1px solid var(--border-strong);background:var(--surface)}.surface-brand,.surface-topbar{position:relative;display:flex;align-items:center}.surface-brand{align-self:stretch;gap:7px;flex:0 0 auto;padding-right:14px;margin-right:10px;color:var(--text);text-decoration:none}.surface-brand:after{position:absolute;top:50%;right:0;width:1px;height:24px;content:"";background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--border) 68%,transparent) 28%,color-mix(in srgb,var(--border) 68%,transparent) 72%,transparent);transform:translateY(-50%)}.surface-brand:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.surface-brand-mark{display:grid;width:30px;height:30px;place-items:center;overflow:hidden;border-radius:var(--radius-sm);background:transparent}.surface-brand-mark img{width:27px;height:27px;object-fit:contain}.surface-brand strong{font-size:14px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.surface-brand strong span{color:var(--brand);font-weight:720}.surface-brand strong small{color:color-mix(in srgb,var(--brand) 78%,var(--text-secondary));font-size:inherit;font-weight:680}.surface-project-context{display:flex;min-width:0;align-items:center;gap:8px}.surface-project-title{max-width:min(28vw,260px);overflow:hidden;padding:0 8px;color:var(--text);font-size:13px;font-weight:680;text-overflow:ellipsis;white-space:nowrap}.surface-save-status{display:inline-flex;min-height:24px;align-items:center;gap:5px;padding:0 8px 0 6px;color:var(--text-tertiary);border:1px solid color-mix(in srgb,var(--border) 72%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface-raised) 76%,transparent);font-size:10px;font-weight:620;white-space:nowrap}.surface-save-status svg{color:var(--success)}.surface-save-status.is-error,.surface-save-status.is-error svg,.surface-save-status.is-unavailable,.surface-save-status.is-unavailable svg{color:var(--danger)}.surface-save-status.is-loading svg,.surface-save-status.is-saving svg{color:var(--primary)}.surface-topbar-actions{display:flex;align-items:center;gap:7px;margin-left:auto}.surface-mobile-context{display:none}.surface-action-group{display:flex;align-items:center;gap:1px}.surface-details>summary:focus-visible,.surface-history-controls button:focus-visible,.surface-menu-panel button:focus-visible,.surface-menu-trigger:focus-visible,.surface-mode-group a:focus-visible,.surface-panel-reopen:focus-visible,.surface-row-menu>summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.surface-mode-group a{display:inline-flex;height:34px;align-items:center;gap:5px;padding:0 10px;color:var(--text-secondary);border-radius:var(--radius-sm);font-size:11.5px;font-weight:650;text-decoration:none}.surface-mode-group a:hover,.surface-mode-group a[aria-current=page]{color:var(--brand);background:var(--surface-hover)}.surface-project-menu{position:relative}.surface-menu-trigger{display:grid;width:34px;height:34px;place-items:center;padding:0;color:var(--text-secondary);border:0;border-radius:var(--radius-sm);background:transparent;cursor:pointer}.surface-menu-trigger:hover,.surface-menu-trigger[aria-expanded=true]{color:var(--brand);background:var(--surface-hover)}.surface-menu-panel{position:absolute;top:calc(100% + 10px);right:0;width:260px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:0 12px 32px rgb(15 23 42/12%),0 2px 6px rgb(15 23 42/5%)}.surface-menu-label{display:block;padding:8px 10px 6px;color:var(--text-tertiary);font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.surface-menu-panel button{display:flex;width:100%;min-height:40px;align-items:center;gap:10px;padding:8px 10px;color:var(--text-secondary);border:0;border-radius:6px;background:transparent;font-size:12px;text-align:left;cursor:pointer}.surface-menu-panel button:hover{color:var(--brand);background:var(--surface-hover)}.surface-menu-panel button small{margin-left:auto;color:var(--text-tertiary);font-size:10px}.surface-topbar-actions svg{stroke-width:1.8;flex-shrink:0}.surface-status{display:flex;align-items:center;gap:6px;margin:6px 4px 0;padding:12px 6px 6px;color:var(--text-tertiary);border-top:1px solid var(--border);font-size:11px;white-space:nowrap}.surface-ready-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 2px color-mix(in srgb,var(--success) 12%,transparent)}.surface-history-controls{display:inline-flex;gap:1px;padding-inline:6px;margin-inline:2px;border-right:1px solid var(--border);border-left:1px solid var(--border)}.surface-history-controls button{display:grid;width:34px;height:34px;place-items:center;padding:0;color:var(--text-secondary);border:0;border-radius:var(--radius-sm);background:transparent;cursor:pointer}.surface-history-controls button:not(:disabled):hover{color:var(--brand);background:var(--surface-hover)}.surface-history-controls button:disabled{opacity:.4;cursor:not-allowed}.is-spinning{animation:surface-spin .85s linear infinite}@keyframes surface-spin{to{transform:rotate(1turn)}}.surface-workspace{display:grid;min-height:0;grid-template-columns:var(--panel-width) minmax(0,1fr);transition:grid-template-columns var(--motion-panel) cubic-bezier(.22,1,.36,1)}.surface-workspace.panel-collapsed{grid-template-columns:0 minmax(0,1fr)}.surface-panel{position:relative;z-index:20;display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 16px 28px;border-right:1px solid var(--border-strong);background:var(--surface);scrollbar-gutter:stable;scrollbar-width:none;transition:opacity var(--motion-fast) ease}.surface-panel::-webkit-scrollbar{width:0;height:0}.panel-collapsed .surface-panel{overflow:hidden;opacity:0;pointer-events:none}.surface-panel>header{position:sticky;z-index:5;top:0;display:flex;min-height:52px;align-items:center;justify-content:space-between;padding:7px 16px;margin:0 -16px;border-bottom:1px solid var(--border-strong);background:var(--surface)}.surface-panel>header span{display:none}.surface-panel h1{margin:0;font-size:15px;font-weight:740;letter-spacing:-.02em}.surface-panel-actions{display:flex;align-items:center;gap:2px}.surface-panel>header button,.surface-zoom-controls>button{display:grid;width:32px;height:32px;place-items:center;padding:0;color:var(--text-secondary);border:0;border-radius:8px;background:transparent;cursor:pointer}.surface-panel>header button:hover{color:var(--text);background:var(--surface-hover)}.surface-mode{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;margin-bottom:0;border:0;border-radius:0;background:var(--surface)}.surface-storage{order:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;margin:-3px 0 10px;color:var(--text-tertiary);border:1px solid var(--border);border-radius:7px;background:var(--surface-raised);font-size:9px;line-height:1.4}.surface-storage.is-error{color:#b42318;border-color:color-mix(in srgb,#d92d20 24%,var(--border))}.surface-storage.is-recovered{color:#9a6700}.surface-storage button{flex:0 0 auto;padding:4px 6px;color:inherit;border:1px solid;border-radius:5px;background:transparent;font-size:9px;cursor:pointer}.surface-add-button{display:inline-flex;width:100%;min-height:44px;align-items:center;justify-content:flex-start;padding-left:34px;gap:5px;color:var(--text-secondary);border:0;border-radius:0;background:var(--surface);font-size:12px;font-weight:600;cursor:pointer}.surface-list{order:2;padding:0 0 12px;margin:0 -16px}.surface-list>.surface-section-heading{display:none}.surface-section-heading{display:flex;align-items:center;justify-content:space-between}.surface-section-heading h2{margin-bottom:7px}.surface-section-heading>span{color:var(--text-tertiary);font-size:9px}.surface-list ol{display:grid;gap:0;padding:0;margin:0 0 8px;list-style:none}.surface-list li{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr) 36px 36px;align-items:stretch;min-width:0;border-bottom:1px solid var(--border);background:var(--surface);--row-color:#0d9488}.surface-list li[data-color-map=viridis]{--row-color:#7a9e28}.surface-list li[data-color-map=sunset]{--row-color:#d95f59}.surface-list li[data-color-map=mono]{--row-color:#687386}.surface-list li.is-active{box-shadow:inset 3px 0 var(--row-color)}.surface-row-number{padding-top:16px;color:var(--text-tertiary);font-size:10px;text-align:center}.surface-list li>button{display:grid;min-width:0;place-items:center;padding:0;color:var(--text-secondary);border:0;background:transparent;cursor:pointer}.surface-list li>button:hover{color:var(--text);background:var(--surface-hover)}.surface-list li>button:disabled{opacity:.3;cursor:not-allowed}.surface-list li>button:not(.surface-select){align-self:start;height:44px;color:var(--row-color)}.surface-list li>.surface-select{display:grid;justify-items:start;gap:4px;padding:13px 4px 12px;text-align:left}.surface-row-heading{display:flex;min-width:0;width:100%;min-height:18px;align-items:center;gap:8px}.surface-row-heading small{max-width:90px}.surface-row-heading small,.surface-select strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.surface-select strong{max-width:100%;color:var(--text-secondary);font-size:11px;font-weight:500}.surface-select .surface-select-equation{display:grid;gap:5px;min-width:0;width:100%;overflow:hidden;color:var(--text);font-size:19px;text-transform:none}.surface-select-equation>span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.surface-select small{color:var(--text-tertiary);font-size:10px}.surface-row-menu{position:relative;min-width:0;align-self:start}.surface-row-menu>summary{display:grid;width:100%;height:44px;place-items:center;color:var(--text-secondary);cursor:pointer;list-style:none}.surface-row-menu>summary::-webkit-details-marker{display:none}.surface-row-menu>summary:hover,.surface-row-menu[open]>summary{color:var(--text);background:var(--surface-hover)}.surface-row-menu>div{position:absolute;z-index:35;top:calc(100% + 5px);right:0;display:grid;width:154px;padding:5px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);box-shadow:0 10px 26px color-mix(in srgb,var(--text) 13%,transparent)}.surface-row-menu>div button{display:flex;min-height:32px;align-items:center;gap:8px;padding:0 9px;color:var(--text-secondary);border:0;border-radius:5px;background:transparent;font-size:10.5px;font-weight:650;text-align:left;cursor:pointer}.surface-row-menu>div button:hover:not(:disabled){color:var(--text);background:var(--surface-hover)}.surface-row-menu>div button.is-danger{color:var(--danger)}.surface-row-menu>div button:disabled{opacity:.38;cursor:not-allowed}.surface-add-button:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 34%,var(--border));background:var(--primary-soft)}.surface-add-button:disabled{opacity:.4;cursor:not-allowed}.surface-list:has(.surface-row-menu[open]){z-index:30}.surface-error{order:3}.surface-details-domain{order:4}.surface-details-examples{order:5}.surface-details-appearance{order:6}.surface-tools-toggle{order:7}.surface-details-parameters{order:8}.surface-details-objects{order:9}.surface-details-scene{order:10}.surface-details-output{order:11}.surface-details-objects,.surface-details-output,.surface-details-parameters,.surface-details-scene{display:none}.surface-panel.tools-open .surface-details-objects,.surface-panel.tools-open .surface-details-output,.surface-panel.tools-open .surface-details-parameters,.surface-panel.tools-open .surface-details-scene{display:block}.surface-tools-toggle{display:flex;width:100%;min-height:44px;align-items:center;gap:8px;padding:0;color:var(--text-secondary);border:0;border-top:1px solid var(--border);background:transparent;font-size:11px;font-weight:730;text-align:left;cursor:pointer}.surface-tools-toggle:hover{color:var(--text)}.surface-tools-toggle>svg:first-child{color:var(--text-tertiary)}.surface-tools-toggle small{margin-left:auto;color:var(--text-tertiary);font-size:9px;font-weight:600}.surface-tools-toggle>svg:last-child{color:var(--text-tertiary);transition:transform var(--motion-fast) ease}.surface-tools-toggle[aria-expanded=true]>svg:last-child{transform:rotate(90deg)}.surface-details{width:100%;border-top:1px solid var(--border)}.surface-details>summary{display:flex;min-height:42px;align-items:center;gap:8px;color:var(--text-secondary);cursor:pointer;list-style:none;font-size:11px;font-weight:700}.surface-details>summary::-webkit-details-marker{display:none}.surface-details>summary:hover{color:var(--text)}.surface-details>summary small{margin-left:auto;color:var(--text-tertiary);font-size:9px;font-weight:600;text-transform:capitalize}.surface-details>summary svg{flex:0 0 auto;color:var(--text-tertiary);transition:transform var(--motion-fast) ease}.surface-details[open]>summary svg{transform:rotate(90deg)}.surface-details-content{padding:0 0 14px}.surface-details .surface-advanced,.surface-details .surface-appearance,.surface-details .surface-bookmarks,.surface-details .surface-examples,.surface-details .surface-export,.surface-details .surface-integrated,.surface-details .surface-typed-objects{padding-top:0;margin-top:0;border-top:0}.surface-details-appearance .surface-appearance>h2,.surface-details-examples .surface-examples>h2{display:none}.surface-details-output .surface-export,.surface-details-scene .surface-advanced+.surface-advanced{padding-top:13px;margin-top:13px;border-top:1px solid var(--border)}.surface-integrated,.surface-typed-objects{display:grid;gap:8px;padding:14px 0;margin-top:14px;border-top:1px solid var(--border)}.surface-integrated p{margin:-3px 0 2px;color:var(--text-tertiary);font-size:10px;line-height:1.45}.surface-bookmark-actions button,.surface-object-add button,.surface-section-heading button{display:inline-flex;min-height:28px;align-items:center;justify-content:center;gap:4px;padding:4px 7px;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;background:var(--surface);font-size:9px;font-weight:700;text-transform:capitalize;cursor:pointer}.surface-bookmark-actions button:disabled,.surface-object-add button:disabled,.surface-section-heading button:disabled{opacity:.45;cursor:not-allowed}.surface-sliders{display:grid;gap:6px}.surface-slider-row{display:grid;grid-template-columns:minmax(0,1fr) 48px 28px;align-items:end;gap:5px}.surface-slider-row label{display:grid;min-width:0;gap:3px;color:var(--text-secondary);font-size:9px}.surface-slider-row input{width:100%;accent-color:var(--primary)}.surface-slider-row output{padding-bottom:4px;color:var(--text-tertiary);font:9px/1 ui-monospace,monospace;text-align:right}.surface-bookmarks li>button:not(.surface-bookmark-restore),.surface-definition-row button,.surface-slider-row button,.surface-typed-objects li>button:not(.surface-object-select){display:grid;width:28px;height:28px;place-items:center;padding:0;color:var(--text-tertiary);border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer}.surface-definition-row{display:grid;grid-template-columns:18px minmax(0,1fr) 28px;align-items:center;gap:5px}.surface-definition-row>input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary)}.surface-definition-row>input:not([type=checkbox]),.surface-object-editor input:not([type=color]):not([type=range]),.surface-object-editor textarea{width:100%;padding:7px 8px;color:var(--text);border:1px solid var(--border-strong);border-radius:6px;outline:none;background:var(--surface);font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.surface-bookmarks ol,.surface-typed-objects ol{display:grid;gap:5px;padding:0;margin:0;list-style:none}.surface-bookmarks li,.surface-typed-objects li{display:grid;grid-template-columns:minmax(0,1fr) 28px 28px;gap:4px}.surface-typed-objects li.is-active .surface-object-select{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:var(--primary-soft)}.surface-bookmark-restore,.surface-object-select{display:grid;min-width:0;justify-items:start;padding:6px 8px;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;background:var(--surface);text-align:left;cursor:pointer}.surface-object-select strong{overflow:hidden;max-width:100%;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.surface-object-select span{color:var(--text-secondary);font-size:9px;text-transform:capitalize}.surface-object-add{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.surface-object-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;border:1px solid var(--border);border-radius:7px;background:var(--surface-raised)}.surface-object-editor label{display:grid;min-width:0;gap:4px;color:var(--text-tertiary);font-size:9px;font-weight:700}.surface-object-editor label.is-wide{grid-column:1/-1}.surface-object-editor textarea{min-height:54px;resize:vertical}.surface-object-editor input[type=color]{width:100%;height:31px;padding:2px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface)}.surface-object-editor input[type=range]{width:100%;accent-color:var(--primary)}.surface-name{display:grid;gap:5px;color:var(--text-tertiary);font-size:10px;font-weight:700}.surface-name input{width:100%;height:34px;padding:0 9px;color:var(--text);border:1px solid var(--border-strong);border-radius:7px;outline:none;background:var(--surface);font:600 12px/1.4 ui-sans-serif,system-ui,sans-serif}.surface-inline-editor{display:grid;grid-column:2/-1;min-width:0;gap:8px;padding:0 16px 12px 0;background:transparent}.surface-editor-toolbar{display:flex;min-width:0;align-items:center;gap:4px}.surface-type-picker{position:relative}.surface-settings-toggle,.surface-type-picker>summary{display:inline-flex;min-height:32px;align-items:center;gap:5px;padding:0 6px;color:var(--text-secondary);border:0;border-radius:5px;background:transparent;font-size:11px;font-weight:500;cursor:pointer;list-style:none;text-transform:capitalize}.surface-type-picker>summary::-webkit-details-marker{display:none}.surface-type-picker>summary svg{transform:rotate(90deg)}.surface-type-picker>.surface-mode{position:absolute;top:100%;left:0;z-index:40;width:155px;grid-template-columns:1fr;padding:5px;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgb(15 23 42/12%)}.surface-mode button{min-height:36px;padding:0 10px;color:var(--text-secondary);border:0;border-radius:4px;background:transparent;font-size:12px;text-align:left;cursor:pointer}.surface-mode button[aria-pressed=true],.surface-settings-toggle:hover,.surface-settings-toggle[aria-expanded=true],.surface-type-picker>summary:hover{color:var(--brand);background:var(--surface-hover)}.surface-expression-settings{min-width:0;padding:0 4px}.surface-list :is(button,summary):focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.surface-inline-editor .surface-error{order:0}.surface-appearance label,.surface-domains label,.surface-expression,.surface-object-fields label,.surface-object-source,.surface-parametric label,.surface-single-field{display:grid;gap:5px;color:var(--text-tertiary);font-size:10px;font-weight:700}.surface-input-keyboard{display:inline-flex;height:32px;align-items:center;gap:5px;padding:0 7px;color:var(--text-secondary);border:0;border-radius:5px;background:transparent;font-size:11px;font-weight:500;margin-left:auto;cursor:pointer}.surface-input-keyboard:hover,.surface-input-keyboard[aria-pressed=true]{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 34%,var(--border));background:var(--primary-soft)}.surface-input-keyboard:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.surface-math-expression>.math-field-autocomplete-host,.surface-math-parametric label>.math-field-autocomplete-host{width:100%;min-width:0;padding:2px 4px;border:0;border-radius:3px;background:transparent}.surface-math-expression>.math-field-autocomplete-host:focus-within,.surface-math-parametric label>.math-field-autocomplete-host:focus-within{box-shadow:inset 0 -2px var(--focus-ring)}.surface-math-expression .math-field-host,.surface-math-expression .math-field-host math-field{min-height:44px}.surface-math-expression .math-field-host math-field{display:flex;align-items:center;font-size:23px}.surface-math-parametric .math-field-host,.surface-math-parametric .math-field-host math-field{min-height:32px}.surface-math-parametric .math-field-host math-field{padding-block:0;font-size:21px}.surface-math-parametric label{grid-template-columns:30px minmax(0,1fr);align-items:center;gap:4px}.surface-math-parametric label>span{color:var(--text-secondary);font:italic 19px Georgia,serif;white-space:nowrap}.surface-math-parametric{min-width:0}.surface-math-expression math-field,.surface-math-parametric label,.surface-select-equation{font-weight:400}.surface-appearance select,.surface-domains input,.surface-object-fields input,.surface-object-source textarea,.surface-single-field input{width:100%;color:var(--text);border:1px solid var(--border-strong);border-radius:7px;outline:none;background:var(--surface);font:500 13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.surface-appearance select:focus,.surface-domains input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.surface-parametric{display:grid;gap:8px}.surface-appearance select,.surface-domains input,.surface-object-fields input,.surface-single-field input{height:35px;padding:0 9px}.surface-error{display:flex;gap:8px;padding:9px;margin-top:10px;color:#b42318;border:1px solid color-mix(in srgb,#d92d20 24%,var(--border));border-radius:7px;background:color-mix(in srgb,#d92d20 7%,var(--surface));font-size:10px;line-height:1.45}.surface-error svg{flex:0 0 auto}.surface-error div{display:grid;gap:2px}.surface-error span{color:var(--text-secondary)}.surface-domains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0;margin:0;border:0}.surface-domains legend,.surface-panel h2{width:100%;padding:0;margin:0 0 8px;color:var(--text-secondary);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.surface-domains legend{grid-column:1/-1}.surface-advanced,.surface-appearance,.surface-bookmarks,.surface-examples,.surface-export{padding-top:15px;margin-top:15px;border-top:1px solid var(--border)}.surface-examples>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}.surface-appearance>button,.surface-cross-toggle,.surface-examples button{display:flex;min-height:33px;align-items:center;justify-content:space-between;padding:6px 9px;color:var(--text-secondary);border:1px solid var(--border);border-radius:7px;background:var(--surface);font-size:10px;font-weight:650;cursor:pointer}.surface-appearance>button:hover,.surface-cross-toggle:hover,.surface-examples button:hover{color:var(--primary);background:var(--surface-hover)}.surface-appearance{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.surface-appearance h2{grid-column:1/-1;margin-bottom:0}.surface-appearance .surface-name{grid-column:1/-1}.surface-appearance>button[aria-pressed=true]{color:var(--primary);background:var(--primary-soft)}.surface-cross-toggle{width:100%;margin-top:15px}.surface-cross-toggle[aria-expanded=true] svg{transform:rotate(90deg)}.surface-cross-panel{padding:8px 0 0}.surface-cross-panel p{color:var(--text-tertiary);font-size:11px}.surface-advanced,.surface-bookmarks,.surface-export{display:grid;gap:7px}.surface-advanced h2,.surface-bookmarks h2,.surface-export h2{margin-bottom:1px}.surface-object-toggle{display:flex;min-height:34px;align-items:center;gap:8px;padding:6px 9px;color:var(--text-secondary);border:1px solid var(--border);border-radius:7px;background:var(--surface);font-size:10px;font-weight:700;cursor:pointer}.surface-object-toggle input{width:15px;height:15px;accent-color:var(--primary)}.surface-object-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:4px 0 7px}.surface-object-fields label:nth-child(-n+3){grid-column:1/-1}.surface-object-source textarea{min-height:58px;padding:8px;resize:vertical}.surface-single-field{padding:2px 0 6px}.surface-bookmark-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.surface-bookmarks li{grid-template-columns:minmax(0,1fr) 28px}.surface-bookmark-restore{width:100%;font-size:10px;font-weight:650}.surface-export{grid-template-columns:1fr 1fr}.surface-export h2{grid-column:1/-1}.surface-export button{display:inline-flex;min-height:34px;align-items:center;justify-content:center;gap:6px;color:var(--text-secondary);border:1px solid var(--border);border-radius:7px;background:var(--surface);font-size:10px;font-weight:700;cursor:pointer}.surface-export button:hover:not(:disabled){color:var(--primary);background:var(--surface-hover)}.surface-export button:disabled{opacity:.5;cursor:not-allowed}.surface-cross-section{display:block;width:100%;border:1px solid var(--border);border-radius:7px;background:var(--surface-raised)}.surface-cross-grid{fill:none;stroke:var(--border-strong);stroke-width:1}.surface-cross-path{fill:none;stroke:var(--primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.surface-canvas,.surface-canvas-wrap,.surface-stage{position:relative;min-width:0;min-height:0;width:100%;height:100%}.surface-stage{isolation:isolate;overflow:hidden;background:#fff}.surface-canvas-wrap{position:absolute;inset:0}.surface-canvas{display:block;touch-action:none;cursor:grab;outline:none}.surface-canvas:active{cursor:grabbing}.surface-canvas:focus-visible{box-shadow:inset 0 0 0 3px var(--primary)}.surface-panel-reopen{position:absolute;z-index:18;top:12px;left:12px;display:inline-flex;height:34px;align-items:center;gap:6px;padding:0 10px;color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:8px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 2px 8px color-mix(in srgb,var(--text) 7%,transparent);font-size:11px;font-weight:700;cursor:pointer}.surface-panel-reopen:hover{color:var(--primary);background:var(--surface)}.surface-camera-controls{position:absolute;z-index:14;top:14px;right:14px;display:flex;align-items:flex-start;gap:7px}.surface-view-menu{position:relative}.surface-view-menu>summary{display:inline-flex;height:38px;align-items:center;gap:7px;padding:0 11px;color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:9px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 2px 8px color-mix(in srgb,var(--text) 5%,transparent);cursor:pointer;list-style:none;font-size:10px;font-weight:750;backdrop-filter:blur(10px)}.surface-view-menu>summary::-webkit-details-marker{display:none}.surface-view-menu>summary:hover,.surface-view-menu[open]>summary{color:var(--primary);background:var(--surface)}.surface-view-menu>div{position:absolute;z-index:2;top:calc(100% + 7px);right:0;display:grid;width:148px;padding:5px;border:1px solid var(--border-strong);border-radius:9px;background:var(--surface);box-shadow:0 12px 30px color-mix(in srgb,var(--text) 14%,transparent)}.surface-view-menu>div button{display:flex;min-height:34px;align-items:center;gap:9px;padding:0 9px;color:var(--text-secondary);border:0;border-radius:6px;background:transparent;font-size:10.5px;font-weight:650;cursor:pointer}.surface-view-menu>div button:hover{color:var(--primary);background:var(--surface-hover)}.surface-zoom-controls{display:grid;padding:3px;border:1px solid var(--border-strong);border-radius:9px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 2px 8px color-mix(in srgb,var(--text) 5%,transparent);backdrop-filter:blur(10px)}.surface-zoom-controls>button+button{border-top:1px solid var(--border);border-radius:0}.surface-zoom-controls>button:hover{color:var(--primary);background:var(--surface-hover)}.surface-axis-key{position:absolute;z-index:12;right:18px;bottom:18px;display:grid;gap:5px;padding:7px;border:1px solid color-mix(in srgb,var(--border-strong) 72%,transparent);border-radius:10px;background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 2px 8px color-mix(in srgb,var(--text) 5%,transparent);backdrop-filter:blur(10px);pointer-events:none;font:750 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.surface-axis-key span{display:inline-flex;min-width:92px;align-items:center;gap:7px}.surface-axis-key b{display:grid;width:22px;height:22px;flex:0 0 22px;place-items:center;color:var(--text-secondary);border-radius:3px;font-size:10px}.surface-axis-key small{color:var(--text-secondary);font:650 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.surface-axis-key .is-x b{color:#a6474f;background:transparent}.surface-axis-key .is-y b{color:#2e785c;background:transparent}.surface-axis-key .is-z b{color:#4d66a8;background:transparent}.surface-axis-labels{position:absolute;z-index:11;inset:0;overflow:hidden;pointer-events:none}.surface-axis-labels span{position:absolute;display:grid;width:24px;height:24px;place-items:center;border:0;border-radius:4px;background:color-mix(in srgb,var(--surface) 88%,transparent);font:italic 20px/1 Georgia,serif;text-transform:lowercase;transform:translate(-50%,-50%)}.surface-axis-labels .is-x{color:#a6474f}.surface-axis-labels .is-y{color:#2e785c}.surface-axis-labels .is-z{color:#4d66a8}.surface-canvas-wrap:fullscreen{width:100%;height:100%;background:var(--surface)}.surface-fullscreen-error{position:absolute;z-index:15;right:14px;top:180px;max-width:220px;padding:10px;background:var(--surface);color:var(--text);font-size:12px}.surface-camera-controls :is(button,summary):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.surface-viewport-card{position:absolute;z-index:12;top:14px;left:14px;display:grid;max-width:min(330px,calc(100% - 100px));min-width:210px;grid-template-columns:4px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px 9px 8px;color:var(--text);border:1px solid color-mix(in srgb,var(--border-strong) 72%,transparent);border-radius:10px;background:color-mix(in srgb,var(--surface) 89%,transparent);box-shadow:0 8px 24px color-mix(in srgb,var(--text) 9%,transparent);backdrop-filter:blur(12px);transition:left var(--motion-panel) cubic-bezier(.22,1,.36,1)}.panel-collapsed .surface-viewport-card{left:116px}.surface-viewport-swatch{width:4px;height:32px;border-radius:999px;background:#0d9488}.surface-viewport-swatch[data-color-map=viridis]{background:linear-gradient(#fde725,#21918c,#440154)}.surface-viewport-swatch[data-color-map=sunset]{background:linear-gradient(#ffb51b,#e42f4f,#3f0b58)}.surface-viewport-swatch[data-color-map=mono]{background:linear-gradient(#eceff4,#3d4654)}.surface-viewport-swatch[data-color-map=ocean]{background:linear-gradient(#84f2c6,#08a6b8,#063b78)}.surface-viewport-card>div{min-width:0}.surface-viewport-card code,.surface-viewport-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.surface-viewport-card strong{margin-bottom:3px;font-size:11px;font-weight:760}.surface-viewport-card code{color:var(--text-secondary);font:10.5px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace}.surface-viewport-mode{padding:4px 6px;color:var(--text-tertiary);border:1px solid var(--border);border-radius:6px;background:color-mix(in srgb,var(--surface-raised) 72%,transparent);font-size:8.5px;font-weight:780;text-transform:uppercase}.surface-scene-legend{position:absolute;z-index:12;top:76px;left:14px;display:flex;max-width:min(430px,calc(100% - 100px));flex-wrap:wrap;gap:5px;transition:left var(--motion-panel) cubic-bezier(.22,1,.36,1)}.panel-collapsed .surface-scene-legend{left:116px}.surface-scene-legend span{display:inline-flex;min-height:25px;align-items:center;gap:6px;padding:0 8px;color:var(--text-secondary);border:1px solid color-mix(in srgb,var(--border-strong) 70%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface) 87%,transparent);box-shadow:0 4px 12px color-mix(in srgb,var(--text) 7%,transparent);backdrop-filter:blur(10px);font-size:9px;font-weight:720}.surface-scene-legend i{width:14px;height:3px;border-radius:999px;background:#ef5a22}.surface-scene-legend .is-level i{background:#eab308}.surface-scene-legend .is-points i{width:7px;height:7px;border-radius:50%;background:#7c3aed}.surface-scene-legend .is-vectors i{background:#df294f}.surface-hint{position:absolute;z-index:12;bottom:17px;left:50%;padding:7px 11px;color:var(--text-secondary);border:1px solid rgba(110,122,143,.22);border-radius:999px;background:color-mix(in srgb,var(--surface) 84%,transparent);box-shadow:0 4px 14px rgba(19,28,42,.08);backdrop-filter:blur(10px);font-size:9.5px;font-weight:650;pointer-events:none;transform:translateX(-50%);animation:surface-hint-dismiss .5s ease 5s forwards}@keyframes surface-hint-dismiss{to{opacity:0;transform:translate(-50%,4px)}}.surface-budget-note{position:absolute;top:16px;left:50%;padding:7px 11px;color:#9a6700;border:1px solid rgba(217,119,6,.28);border-radius:999px;background:rgba(255,251,235,.92);box-shadow:0 4px 14px rgba(19,28,42,.08);font-size:10px;font-weight:700;transform:translateX(-50%)}.surface-fallback{position:absolute;z-index:30;top:50%;left:50%;display:grid;width:min(430px,calc(100% - 32px));justify-items:center;padding:28px;color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:14px;background:var(--surface);box-shadow:0 18px 48px rgba(19,28,42,.16);text-align:center;transform:translate(-50%,-50%)}.surface-fallback h2{margin:10px 0 6px;color:var(--text);font-size:18px}.surface-fallback p{margin:0 0 16px;font-size:12px;line-height:1.55}.surface-fallback a{padding:8px 12px;color:white;border-radius:7px;background:var(--primary);font-size:11px;font-weight:750;text-decoration:none}.surface-loading{display:grid;min-height:100dvh;place-content:center;justify-items:center;gap:12px;color:var(--text-secondary);background:var(--app-bg);font-size:12px}.surface-loading span{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:surface-spin .85s linear infinite}@media (min-width:781px) and (max-width:1100px){.surface-project-title{max-width:160px}.surface-save-status{width:28px;justify-content:center;padding:0}.surface-save-status span{display:none}}@media (min-width:781px){.surface-app .math-keyboard{right:0;left:var(--panel-width);padding:8px 16px 11px}.surface-app:has(.surface-workspace.panel-collapsed) .math-keyboard{left:0}}@media (min-width:1500px) and (min-height:720px){.surface-workspace{grid-template-columns:var(--panel-width) minmax(0,1fr) 186px}.surface-workspace.panel-collapsed{grid-template-columns:0 minmax(0,1fr) 186px}.surface-workspace.sponsor-collapsed{grid-template-columns:var(--panel-width) minmax(0,1fr) 0}.surface-workspace.panel-collapsed.sponsor-collapsed{grid-template-columns:0 minmax(0,1fr) 0}.surface-app .math-keyboard{right:186px}.surface-app.sponsor-collapsed .math-keyboard{right:0}}@media (min-width:781px) and (max-width:1050px){.surface-mode-group a{padding-inline:7px}.surface-project-title{max-width:90px}}@media (max-width:780px),(max-width:940px) and (max-height:500px){.surface-app{--surface-mobile-sheet-height:min(346px,50dvh);--surface-mobile-keyboard-height:min(318px,48dvh);min-height:100dvh;overflow:hidden;grid-template-rows:var(--topbar-height) minmax(0,1fr)}.surface-topbar{padding:0 max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left))}.surface-brand strong{display:none}.surface-brand{padding-right:8px;margin-right:4px}.surface-mode-group a:first-child,.surface-project-menu,.surface-project-title,.surface-save-status span,.surface-status{display:none}.surface-save-status{width:28px;justify-content:center;padding:0}.surface-topbar-actions{gap:0}.surface-mode-group a{width:34px;justify-content:center;padding:0}.surface-mode-group a span{display:none}.surface-history-controls{padding-inline:3px;margin-inline:0;border-right:0}.surface-workspace,.surface-workspace.panel-collapsed{position:relative;display:block;min-height:0}.surface-app.keyboard-open .surface-workspace,.surface-app.keyboard-open .surface-workspace.panel-collapsed{margin-bottom:var(--surface-mobile-keyboard-height)}.panel-collapsed .surface-panel{display:block;overflow-y:auto;opacity:1;pointer-events:auto}.surface-stage{position:absolute;inset:0 0 var(--surface-mobile-sheet-height);height:auto}.surface-panel{position:absolute;z-index:20;right:0;bottom:0;left:0;height:var(--surface-mobile-sheet-height);max-height:none;overflow-y:auto;border:0;border-top:1px solid var(--border-strong);border-radius:15px 15px 0 0;background:var(--surface);box-shadow:0 -10px 30px color-mix(in srgb,var(--text) 10%,transparent)}.surface-app.keyboard-open .surface-stage{bottom:132px}.surface-app.keyboard-open .surface-panel{height:132px;border-radius:12px 12px 0 0}.surface-app.keyboard-open.surface-input-parametric .surface-stage{bottom:214px}.surface-app.keyboard-open.surface-input-parametric .surface-panel{height:214px}.surface-hint,.surface-panel-actions button:last-child,.surface-panel-reopen{display:none}.surface-camera-controls{top:10px;right:10px}.panel-collapsed .surface-scene-legend,.panel-collapsed .surface-viewport-card{left:10px}.surface-viewport-card{top:10px;left:10px;max-width:calc(100% - 100px);min-width:0}.surface-scene-legend{top:72px;left:10px;max-width:calc(100% - 20px)}.surface-axis-key{right:10px;bottom:10px;display:flex;gap:4px;padding:5px}.surface-axis-key span{min-width:0;gap:4px}.surface-axis-key small{display:none}.surface-app>.math-keyboard{position:fixed;z-index:50;inset:auto 0 0;width:100%;height:var(--surface-mobile-keyboard-height);padding:0 8px max(8px,env(safe-area-inset-bottom));overflow:hidden}.surface-app>.math-keyboard .keyboard-frame{width:100%;max-width:none}.surface-app>.math-keyboard .keyboard-header{min-height:34px;margin-bottom:5px}.surface-app>.math-keyboard .keyboard-title{display:none}.surface-app>.math-keyboard .keyboard-tabs{min-width:0;flex:1}.surface-app>.math-keyboard .keyboard-tabs button{min-width:0;height:34px;flex:1;padding-inline:4px;font-size:10.5px}.surface-app>.math-keyboard .keyboard-close{width:34px;height:34px;flex:0 0 34px;padding:0}.surface-app>.math-keyboard .keyboard-close span{display:none}.surface-app>.math-keyboard .keyboard-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px}.surface-app>.math-keyboard .keyboard-content.is-greek-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.surface-app>.math-keyboard .keyboard-basic-groups{display:contents}.surface-app>.math-keyboard :is(.keyboard-grid,.keyboard-symbol-grid){grid-template-columns:repeat(4,minmax(0,1fr));min-height:0;max-height:none;gap:4px;overflow:visible}.surface-app>.math-keyboard .keyboard-content.is-greek-layout .keyboard-symbol-grid.is-greek-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.surface-app>.math-keyboard :is(.keyboard-grid,.keyboard-command-row) button{height:39px;padding-inline:2px}.surface-app>.math-keyboard .keyboard-group-label{display:none}.surface-app>.math-keyboard .keyboard-command-row{position:relative;grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.surface-app>.math-keyboard :is(.keyboard-edit-tools,.keyboard-navigation){display:contents}.surface-app>.math-keyboard .keyboard-edit-tools button:first-child{grid-area:1/1}.surface-app>.math-keyboard .keyboard-edit-tools button:nth-child(2){grid-area:1/2}.surface-app>.math-keyboard .keyboard-edit-tools button:nth-child(3){grid-area:1/3}.surface-app>.math-keyboard .keyboard-command-row .keyboard-functions-button{grid-area:1/4/auto/span 2}.surface-app>.math-keyboard .keyboard-command-row .keyboard-delete{grid-area:1/6}.surface-app>.math-keyboard .keyboard-navigation button:first-child{grid-area:2/1}.surface-app>.math-keyboard .keyboard-navigation button:nth-child(2){grid-area:2/2}.surface-app>.math-keyboard .keyboard-navigation button:nth-child(3){grid-area:2/3}.surface-app>.math-keyboard .keyboard-navigation button:nth-child(4){grid-area:2/4}.surface-app>.math-keyboard .keyboard-command-row .keyboard-submit{grid-area:2/5/auto/span 2}.surface-app>.math-keyboard .keyboard-command-row .keyboard-delete span{display:none}.surface-app>.math-keyboard.is-function-library-open{padding:6px 8px max(8px,env(safe-area-inset-bottom))}.surface-app>.math-keyboard.is-function-library-open .keyboard-command-row>:not(.keyboard-function-popover),.surface-app>.math-keyboard.is-function-library-open :is(.keyboard-header,.keyboard-basic-groups){display:none}.surface-app>.math-keyboard.is-function-library-open :is(.keyboard-frame,.keyboard-content,.keyboard-command-row){display:block;height:100%;min-height:0}.surface-app>.math-keyboard.is-function-library-open .keyboard-command-row{padding:0;border:0}.surface-app>.math-keyboard.is-function-library-open .keyboard-function-popover{position:relative;inset:auto;display:grid;width:100%;height:100%;min-height:0;grid-template-rows:40px minmax(0,1fr);overflow:hidden;padding:0 9px 9px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);box-shadow:none;transform:none}}@media (max-width:560px){.surface-app{--topbar-height:52px}.surface-topbar{gap:2px;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}.surface-brand{padding-right:5px;margin-right:2px}.surface-brand:after{display:none}.surface-brand-mark{width:34px;height:34px}.surface-brand strong{display:block;font-size:clamp(11px,3vw,12px);letter-spacing:-.035em}.surface-mobile-context{display:none;min-width:0;align-items:center;gap:5px;color:var(--text-secondary);font-size:12px;white-space:nowrap}.surface-mobile-context svg{color:var(--brand)}.surface-mobile-context strong{color:var(--text);font-weight:720}.surface-project-context{gap:2px}.surface-save-status{width:34px;min-height:34px;border:0;background:transparent}.surface-mode-group{display:none}.surface-topbar-actions{margin-left:auto}.surface-history-controls{padding:0}.surface-history-controls button{width:40px;height:44px}.surface-topbar .surface-mobile-navigation{margin-left:0}.surface-panel{padding:0 12px 24px}.surface-panel>header{min-height:46px;padding:9px 12px 5px;margin:0 -12px 9px;border-bottom-color:color-mix(in srgb,var(--border) 76%,transparent)}.surface-panel>header:before{position:absolute;top:5px;left:50%;width:38px;height:4px;border-radius:999px;background:color-mix(in srgb,var(--text-tertiary) 46%,var(--border));content:"";transform:translateX(-50%)}.surface-panel h1{font-size:14px}.surface-list{margin-inline:-12px}.surface-list ol{gap:0}.surface-list li{grid-template-columns:28px minmax(0,1fr) 44px 44px}.surface-list li>.surface-select{min-height:48px;padding:7px 10px}.surface-row-menu>summary{min-height:48px}.surface-inline-editor{gap:8px;padding:0 12px 10px 0}.surface-settings-toggle,.surface-type-picker>summary{min-height:44px}.surface-editor-toolbar{min-width:0}.surface-mode button{min-height:44px;font-size:11px}.surface-input-keyboard{width:44px;height:44px;justify-content:center;padding:0;font-size:0}.surface-input-keyboard svg{width:17px;height:17px}.surface-math-expression .math-field-host,.surface-math-expression .math-field-host math-field{min-height:48px}.surface-app.keyboard-open .surface-panel{padding:0 10px 8px;overflow:hidden}.surface-app.keyboard-open .surface-list li>:not(.surface-inline-editor),.surface-app.keyboard-open .surface-list>.surface-add-button,.surface-app.keyboard-open .surface-list>.surface-section-heading,.surface-app.keyboard-open .surface-panel>:not(.surface-list),.surface-app.keyboard-open .surface-panel>header{display:none}.surface-app.keyboard-open .surface-panel:has(.surface-error){overflow-y:auto}.surface-app.keyboard-open .surface-list{margin-inline:0;padding:8px 0 0}.surface-app.keyboard-open .surface-expression-settings{display:none}.surface-app.keyboard-open .surface-list ol{margin:0}.surface-app.keyboard-open .surface-list li:not(.is-active){display:none}.surface-app.keyboard-open .surface-list li.is-active{display:block;border:0;box-shadow:none}.surface-app.keyboard-open .surface-inline-editor{padding:0;border:0;background:transparent}.surface-app.keyboard-open .surface-editor-toolbar{order:2}.surface-app.keyboard-open .surface-math-expression{order:1}.surface-app.keyboard-open .surface-math-parametric{order:1;gap:4px}.surface-app.keyboard-open .surface-math-parametric label{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:6px}.surface-app.keyboard-open .surface-math-parametric label>span{text-align:right}.surface-app.keyboard-open .surface-math-parametric .math-field-host,.surface-app.keyboard-open .surface-math-parametric .math-field-host math-field{min-height:40px}}@media (max-width:350px){.surface-brand strong{display:none}.surface-mobile-context{display:inline-flex}}@media (max-width:560px) and (max-height:740px){.surface-app{--surface-mobile-sheet-height:316px;--surface-mobile-keyboard-height:310px}}@media (prefers-color-scheme:dark){html:not([data-theme]) .surface-stage,html[data-theme=system] .surface-stage{background:#0d1118}}html[data-theme=contrast] .surface-stage,html[data-theme=dark] .surface-stage{background:#0d1118}@media (prefers-reduced-motion:reduce){.is-spinning,.surface-loading span{animation:none}}@media (prefers-color-scheme:dark){html:not([data-theme]) .surface-axis-key b,html:not([data-theme]) .surface-axis-labels span,html[data-theme=system] .surface-axis-key b,html[data-theme=system] .surface-axis-labels span{color:var(--text)}}html[data-theme=contrast] .surface-axis-key b,html[data-theme=contrast] .surface-axis-labels span,html[data-theme=dark] .surface-axis-key b,html[data-theme=dark] .surface-axis-labels span{color:var(--text)}.surface-workspace{position:relative}.surface-panel-resizer{position:absolute;z-index:30;top:0;bottom:0;left:calc(var(--panel-width) - 4px);width:8px;cursor:col-resize;touch-action:none}.surface-panel-resizer:focus-visible,.surface-panel-resizer:hover{background:color-mix(in srgb,var(--primary) 35%,transparent);outline:2px solid var(--primary);outline-offset:-2px}.panel-collapsed .surface-panel-resizer{display:none}.panel-collapsed .surface-panel{visibility:hidden}@media (max-width:780px),(max-width:940px) and (max-height:500px){.surface-panel-resizer{display:none}.surface-panel-actions button:last-child,.surface-panel-reopen{display:inline-flex}.surface-workspace.panel-collapsed .surface-stage{bottom:0}.surface-workspace.panel-collapsed .surface-panel{visibility:hidden;pointer-events:none}}@media (pointer:coarse){.surface-add-button,.surface-editor-toolbar button,.surface-history-controls button,.surface-list li>button,.surface-panel-actions button,.surface-panel-reopen,.surface-row-menu>summary,.surface-type-picker>summary,.surface-view-menu>summary,.surface-zoom-controls button{min-width:44px;min-height:44px}}@media (max-width:940px) and (max-height:500px) and (orientation:landscape){.surface-app{min-height:0;--topbar-height:52px}.surface-app .surface-workspace,.surface-app.keyboard-open .surface-workspace{margin-bottom:0}.surface-app .surface-panel,.surface-app.keyboard-open .surface-panel{inset:0 auto 0 0;width:42%;height:100%;padding:0 10px 12px;overflow-y:auto;border-radius:0;border-right:1px solid var(--border);box-shadow:none}.surface-app .surface-stage,.surface-app.keyboard-open .surface-stage{inset:0 0 0 42%;width:auto}.surface-app .panel-collapsed .surface-stage{left:0}.surface-app.keyboard-open .surface-stage{visibility:hidden}.surface-app.keyboard-open>.math-keyboard{inset:var(--topbar-height) 0 0 42%;width:58%;height:auto;overflow-y:auto}.surface-app.keyboard-open .surface-list li:not(.is-active),.surface-app.keyboard-open .surface-list>.surface-add-button,.surface-app.keyboard-open .surface-panel>:not(.surface-list){display:none}}@media (prefers-reduced-motion:reduce){.surface-app *,.surface-app :after,.surface-app :before{transition:none!important;animation:none!important;scroll-behavior:auto!important}}@media (pointer:coarse){.surface-app>.math-keyboard .keyboard-close,.surface-app>.math-keyboard .keyboard-command-row .keyboard-submit{min-width:44px;min-height:44px}.surface-app>.math-keyboard{overflow-y:auto}}@media (max-width:940px) and (max-height:500px) and (orientation:landscape){.surface-type-picker>.surface-mode{top:auto;bottom:calc(100% + 4px)}.surface-app.keyboard-open.surface-input-parametric .surface-panel{height:100%}}.surface-tick-labels{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:10}.surface-tick-labels>span{position:absolute;transform:translate(-50%,-50%);padding:2px 4px;border-radius:3px;background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--text-secondary);font:500 11px/1.2 ui-monospace,monospace}.surface-tick-labels .surface-probe-marker{color:var(--text);font-size:26px;padding:0;background:var(--surface);border-radius:50%}.surface-axis-labels span{font-size:22px;font-weight:700}.surface-reading-guide{position:absolute;z-index:15;top:14px;left:16px;width:224px;max-height:calc(100% - 100px);overflow:auto;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface) 96%,transparent);color:var(--text);box-shadow:0 3px 12px #00000008}.surface-reading-guide>summary{padding:12px;cursor:pointer;font-size:12px;font-weight:650}.surface-reading-content{padding:0 12px 12px}.surface-reading-surfaces{display:grid;gap:3px;max-height:150px;overflow:auto}.surface-reading-surfaces button{display:flex;gap:8px;align-items:center;min-height:36px;padding:6px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text-secondary);text-align:left;font-size:11px;cursor:pointer}.surface-reading-surfaces button[aria-pressed=true]{border-color:var(--border-strong);background:var(--surface-hover);color:var(--text)}.surface-reading-surfaces .surface-viewport-swatch{position:static;display:block;width:10px;height:24px;flex:0 0 10px;border-radius:3px}.surface-height-scale{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:11px}.surface-height-scale>i{display:block;position:static;width:100%;height:8px;margin:8px 0 4px;border-radius:4px;transform:none}.surface-height-scale>i[data-color-map=ocean]{background:linear-gradient(90deg,#05296b,#049eb8 58%,#85f5c4)}.surface-height-scale>i[data-color-map=sunset]{background:linear-gradient(90deg,#330a57,#e82e4f 56%,#ffb829)}.surface-height-scale>i[data-color-map=viridis]{background:linear-gradient(90deg,#400354,#149182 64%,#fce824)}.surface-height-scale>i[data-color-map=mono]{background:linear-gradient(90deg,#1f1f1f,#f0f0f0)}.surface-height-scale>div{display:flex;justify-content:space-between;font:11px ui-monospace,monospace}.surface-height-scale small,.surface-reading-content>p{display:block;margin:8px 0 0;color:var(--text-secondary);font-size:11px;line-height:1.5}.surface-extra-key{display:grid;gap:6px;margin-top:10px;font-size:11px}.surface-extra-key span{display:flex;gap:7px;align-items:center}.surface-extra-key i{width:16px;height:3px;border-radius:2px}.surface-overlap-note{grid-column:1/-1;margin:0;padding:8px 16px 8px 34px;color:var(--text-secondary);font-size:11px;line-height:1.5;background:var(--surface-hover)}.surface-inspect-toggle{display:flex;align-items:center;gap:6px;padding:10px;height:38px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text-secondary);font-size:11px;cursor:pointer}.surface-inspect-toggle[aria-pressed=true]{color:var(--primary);border-color:var(--primary)}.surface-canvas.is-inspecting{cursor:crosshair}.surface-inspection{position:absolute;z-index:16;bottom:20px;left:50%;transform:translateX(-50%);display:grid;gap:5px;width:max-content;max-width:calc(100% - 32px);padding:12px 16px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);color:var(--text);font:12px/1.5 ui-monospace,monospace}.surface-inspection small{font:11px/1.5 system-ui,sans-serif;color:var(--text-secondary)}.panel-collapsed .surface-reading-guide{top:60px}@media (max-width:780px),(max-width:940px) and (max-height:500px){.surface-reading-guide{top:8px;left:8px;width:132px;max-height:calc(100% - 20px)}.surface-reading-guide>summary{padding:10px}.surface-camera-controls{gap:4px}.surface-inspect-toggle{font-size:0;padding:8px}.surface-inspection{bottom:8px;font-size:11px}.surface-tick-labels>span{font-size:10px}}@media (pointer:coarse){.surface-inspect-toggle,.surface-reading-guide>summary,.surface-reading-surfaces button{min-height:44px}}.surface-axis-labels span{width:34px;height:34px;border-radius:7px;background:var(--surface);font:750 26px/1 system-ui,sans-serif;text-transform:none;box-shadow:0 1px 5px #00000012}.surface-reading-guide{width:248px}.surface-reading-guide>summary{font-size:14px;padding:14px}.surface-reading-content{padding:0 14px 14px}.surface-reading-surfaces button{min-height:40px;font-size:14px;line-height:1.4;padding:8px}.surface-height-scale{font-size:14px;margin-top:10px}.surface-height-scale>div{font:13px/1.5 system-ui,sans-serif}.surface-extra-key{font-size:13px;line-height:1.5;gap:8px}.surface-extra-key:empty{display:none}.surface-axis-key b{font-size:14px}.surface-axis-key small{font:500 13px/1.4 system-ui,sans-serif}.surface-tick-labels>span{padding:2px 5px;font:500 12px/1.4 system-ui,sans-serif}.surface-axis-values-toggle{display:flex;align-items:center;gap:9px;padding:12px;font-size:14px;cursor:pointer;border-bottom:1px solid var(--border)}.surface-axis-values-toggle input{width:16px;height:16px;accent-color:var(--primary)}@media (max-width:780px),(max-width:940px) and (max-height:500px){.surface-reading-guide{width:132px}.surface-reading-guide[open]{width:min(248px,calc(100% - 72px))}.surface-reading-guide>summary{font-size:13px;padding:10px}.surface-axis-labels span{width:30px;height:30px;font-size:23px}}