:root{--bg: #f4f5f8;--surface: #ffffff;--ink: #1b1e28;--muted: #6b7180;--line: #e2e5ec;--accent: #4f5bd5;--danger: #c8324b;--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--slide-shadow: 0 1px 2px rgba(20, 22, 28, .08), 0 8px 28px rgba(20, 22, 28, .1)}@media (prefers-color-scheme: dark){:root{--bg: #14161c;--surface: #1c1f27;--ink: #e7e9f0;--muted: #9aa0b0;--line: #2a2e3a;--accent: #7c86f0;--danger: #e0576f;--slide-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 30px rgba(0, 0, 0, .45)}}:root[data-theme=light]{--bg: #f4f5f8;--surface: #ffffff;--ink: #1b1e28;--muted: #6b7180;--line: #e2e5ec;--accent: #4f5bd5;--danger: #c8324b;--slide-shadow: 0 1px 2px rgba(20, 22, 28, .08), 0 8px 28px rgba(20, 22, 28, .1)}:root[data-theme=dark]{--bg: #14161c;--surface: #1c1f27;--ink: #e7e9f0;--muted: #9aa0b0;--line: #2a2e3a;--accent: #7c86f0;--danger: #e0576f;--slide-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 30px rgba(0, 0, 0, .45)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}#app{display:grid;grid-template-rows:auto 1fr;height:100vh}.app-bar{display:flex;align-items:baseline;gap:.75rem;padding:.65rem 1rem;border-bottom:1px solid var(--line);background:var(--surface)}.app-name{font-weight:650;letter-spacing:-.01em}.app-doc{color:var(--muted);font-size:.9rem}.app-doc:before{content:"/ ";opacity:.5}.app-tag{margin-left:.75rem;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.tool-actions{margin-left:auto;display:inline-flex;gap:.4rem}.present-actions,.export-actions,.text-actions{margin-left:.4rem;display:inline-flex;gap:.4rem}.tool-actions button,.present-actions button,.export-actions button,.text-actions button,.text-actions select{border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:.74rem;padding:.24rem .66rem;cursor:pointer}.text-actions button{min-width:2rem;padding:.24rem .45rem}.tool-actions button:hover,.present-actions button:hover,.export-actions button:hover,.text-actions button:hover,.text-actions select:hover{border-color:var(--accent);color:var(--accent)}.tool-actions button.is-active,.text-actions button.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.tool-actions button:disabled,.present-actions button:disabled,.export-actions button:disabled,.text-actions button:disabled,.text-actions select:disabled{opacity:.4;cursor:default}.tool-actions button:focus-visible,.present-actions button:focus-visible,.export-actions button:focus-visible,.text-actions button:focus-visible,.text-actions select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.font-size-control{display:inline-flex;align-items:center;gap:.15rem}.font-size-control input{width:2.8rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:.74rem;padding:.24rem .3rem;text-align:center;-moz-appearance:textfield;appearance:textfield}.font-size-control input::-webkit-outer-spin-button,.font-size-control input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.font-size-control input:hover{border-color:var(--accent)}.font-size-control input:disabled{opacity:.4;cursor:default}.font-size-control input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.workspace{display:grid;grid-template-columns:auto auto auto auto auto 1fr auto;min-height:0}@media (max-width: 820px){.workspace{grid-template-columns:1fr;grid-template-rows:auto 1fr auto 1fr auto}.gutter{display:none}.side-panel,.editor{width:auto}}.gutter{width:6px;align-self:stretch;position:relative;padding:0;border:0;background:transparent;cursor:col-resize;touch-action:none;z-index:4}.gutter:before{content:"";position:absolute;inset:0;width:1px;margin:0 auto;background:var(--line)}.gutter:hover:before,.gutter.is-dragging:before{width:2px;background:var(--accent)}.gutter:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.side-panel[hidden]+.gutter{display:none}.side-panel{display:flex;flex-direction:column;width:var(--sb-side-w, 15rem);min-height:0;background:var(--surface);font-size:.78rem}.side-panel[hidden]{display:none}.side-section{overflow:auto;padding:.5rem .55rem;border-bottom:1px solid var(--line);max-height:45%}.side-section-grow{flex:1;border-bottom:0;max-height:none}.side-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.side-title button{border:1px solid var(--line);border-radius:5px;background:none;color:var(--accent);font:inherit;font-size:.68rem;padding:.15rem .4rem;cursor:pointer}.side-title button:hover{border-color:var(--accent)}.file-tree{list-style:none;margin:0;padding:0 0 0 .35rem}.file-tree .file-tree{padding-left:.85rem}.tree-row{display:flex;align-items:center;gap:.25rem;width:100%;border-radius:5px;padding:.14rem .3rem;color:var(--ink)}.tree-row:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}button.tree-row,.tree-name,.tree-action{border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;padding:0}button.tree-row{padding:.14rem .3rem;color:var(--muted)}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.05rem 0}.tree-name:disabled{color:var(--muted);cursor:default}.tree-file.is-current .tree-name{color:var(--accent);font-weight:600}.tree-action{color:var(--muted);padding:0 .15rem;visibility:hidden}.tree-row:hover .tree-action{visibility:visible}.tree-action:hover{color:var(--danger)}.git-identity{display:flex;align-items:center;justify-content:space-between;margin-bottom:.45rem;color:var(--muted)}.git-identity button{border:1px solid var(--line);border-radius:5px;background:none;color:var(--accent);font:inherit;font-size:.68rem;padding:.15rem .4rem;cursor:pointer}.git-sync{margin-bottom:.6rem}.git-connect{display:flex;gap:.35rem}.git-connect input{min-width:0;flex:1;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:var(--ink);font:inherit;font-size:.72rem;padding:.25rem .4rem}.git-connect button,.git-sync-actions button{flex:none;border:1px solid var(--line);border-radius:5px;background:none;color:var(--accent);font:inherit;font-size:.72rem;padding:.25rem .55rem;cursor:pointer}.git-sync-actions button:disabled{opacity:.45;cursor:default}.git-remote{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-bottom:.4rem;color:var(--muted);font-size:.72rem}.git-remote span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-disconnect{flex:none;border:none;background:none;color:var(--muted);font-size:.9rem;line-height:1;padding:0 .2rem;cursor:pointer}.git-sync-actions{display:flex;gap:.35rem}.git-sync-actions button{flex:1}.git-changes,.git-log{list-style:none;margin:0 0 .5rem;padding:0}.git-changes li{display:flex;align-items:baseline;gap:.4rem;padding:.1rem 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-badge{flex:none;width:1.1rem;text-align:center;border-radius:4px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:.66rem;font-weight:700}.git-clean{color:var(--muted);font-style:italic}.git-commit{display:flex;gap:.35rem;margin-bottom:.6rem}.git-commit input{flex:1;min-width:0;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:var(--ink);font:inherit;padding:.25rem .4rem}.git-commit button{border:1px solid var(--line);border-radius:5px;background:var(--accent);color:#fff;font:inherit;font-size:.72rem;padding:.25rem .55rem;cursor:pointer}.git-commit button:disabled{opacity:.45;cursor:default}.git-log li{display:flex;flex-direction:column;padding:.22rem 0;border-top:1px solid var(--line)}.git-subject{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.git-meta{color:var(--muted);font-size:.68rem}.editor{display:flex;flex-direction:column;width:var(--sb-editor-w, 26rem);min-height:0;min-width:0;overflow:hidden}.editor-head{padding:.4rem .8rem;border-bottom:1px solid var(--line);font:.72rem/1 ui-monospace,SF Mono,Menlo,Consolas,monospace;letter-spacing:.02em;color:var(--muted);background:var(--surface)}.code-host{flex:1;min-height:0;display:flex}.code-input{flex:1;width:100%;resize:none;border:0;outline:none;padding:.85rem 1rem;background:var(--surface);color:var(--ink);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.55;tab-size:2;white-space:pre;overflow:auto}.preview{position:relative;display:grid;grid-template-rows:1fr auto auto;min-height:0;min-width:0}.status-bar{padding:.4rem 1rem;border-top:1px solid var(--line);font-size:.74rem;letter-spacing:.01em;color:var(--muted);background:var(--surface)}.props-panel{position:absolute;top:3rem;right:.9rem;z-index:20;width:12rem;max-height:calc(100% - 4rem);overflow-y:auto;display:flex;flex-direction:column;gap:.4rem;padding:.7rem .8rem;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px #00000029;font-size:.78rem}.props-title{font-weight:600;color:var(--ink)}.props-subtitle{margin-top:.35rem;padding-top:.35rem;border-top:1px solid var(--line);font-size:.82rem}.props-mode{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.props-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.props-label{color:var(--muted)}.props-value{color:var(--ink);font-family:ui-monospace,Menlo,Consolas,monospace}.props-num,.props-panel select{width:5.2rem;font:inherit;padding:.15rem .3rem;border:1px solid var(--line);border-radius:4px;background:var(--bg);color:var(--ink)}.props-color{width:1.6rem;height:1.4rem;padding:0;border:1px solid var(--line);border-radius:4px;background:var(--bg);cursor:pointer}.props-color:disabled{opacity:.4;cursor:default}.shapes-panel{display:flex;flex-direction:column;width:13rem;min-height:0;border-left:1px solid var(--line);background:var(--surface);overflow:hidden}.shapes-head{padding:.6rem .8rem .4rem;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.shapes-search{margin:0 .7rem .5rem;font:inherit;font-size:.78rem;padding:.3rem .5rem;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}.shapes-search:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.shapes-list{flex:1;min-height:0;overflow-y:auto;padding:0 .5rem 1rem}.shapes-empty{padding:.5rem .8rem;font-size:.76rem;color:var(--muted)}.shapes-family{margin:.15rem 0}.shapes-fam-summary{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.35rem .25rem;cursor:pointer;list-style:none;user-select:none}.shapes-fam-summary::-webkit-details-marker{display:none}.shapes-fam-summary:before{content:"";width:0;height:0;border:.28rem solid transparent;border-left-color:var(--muted);border-right-width:0;transition:transform .12s ease}.shapes-family[open]>.shapes-fam-summary:before{transform:rotate(90deg)}.shapes-fam-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;border-radius:5px}.shapes-fam-name{flex:1;font-size:.66rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.shapes-fam-count{font-size:.62rem;font-variant-numeric:tabular-nums;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.02rem .35rem}.shapes-more{margin:.5rem .25rem 0;font-size:.7rem;color:var(--muted)}.shapes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}.sb-shape-cell{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .3rem .35rem;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink);font:inherit;cursor:grab}.sb-shape-cell:hover{border-color:var(--accent);background:var(--surface)}.sb-shape-cell:active{cursor:grabbing}.sb-shape-cell:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sb-shape-preview{width:100%;height:2.6rem;pointer-events:none}.shapes-panel .sb-drawn{stroke:var(--ink);stroke-width:1.4px;vector-effect:non-scaling-stroke}.sb-shape-label{font-size:.7rem;color:var(--muted)}.shapes-credit{flex:none;padding:.4rem .8rem;border-top:1px solid var(--line);font-size:.64rem;color:var(--muted)}.shapes-credit a{color:var(--muted);text-decoration:underline}.shapes-credit a:hover{color:var(--accent)}.deck.shape-drop-active{outline:2px dashed var(--accent);outline-offset:-4px}.props-inline{display:flex;gap:.3rem;align-items:center}.props-inline .props-num{width:3.6rem}.props-toggle{border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--muted);font:inherit;font-size:.66rem;padding:.12rem .4rem;cursor:pointer}.props-toggle:hover{color:var(--ink);border-color:var(--accent)}.props-seg{display:inline-flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.props-seg button{border:none;border-left:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;padding:.15rem .45rem;cursor:pointer}.props-seg button:first-child{border-left:none}.props-seg button.is-active{background:var(--accent);color:#fff}.parse-error{margin:0 1rem .5rem;padding:.5rem .75rem;border-radius:5px;background:var(--danger);color:#fff;font:.78rem/1.45 ui-monospace,SF Mono,Menlo,Consolas,monospace;white-space:pre-wrap}.deck{height:100%;overflow:auto}.deck.space-held{cursor:grab}.deck.is-panning{cursor:grabbing}.deck-canvas{display:flex;flex-direction:column;align-items:safe center;gap:calc(clamp(1rem,3vw,2.5rem) * var(--zoom, 1));padding-block:calc(clamp(1rem,4vw,3rem) * var(--zoom, 1))}.deck-row{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:safe center;gap:calc(clamp(.6rem,1.6vw,1.4rem) * var(--zoom, 1))}.deck-slide,.deck-note{position:relative;flex:0 0 auto;width:calc(min(46rem,46vw) * var(--zoom, 1));container-type:inline-size}.deck-note-empty{aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:6px}.deck-note-add{font:inherit;padding:.5rem 1rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);cursor:pointer}.deck-note-add:hover{color:var(--ink);border-color:var(--accent)}.deck-note .sb-slide{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:3px}.zoom-control{position:absolute;top:.9rem;right:.9rem;z-index:5;display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:var(--slide-shadow);overflow:hidden}.zoom-control button{border:0;background:var(--surface);color:var(--ink);font:inherit;font-size:.82rem;line-height:1;padding:.3rem .55rem;min-width:2rem;cursor:pointer}.zoom-control button+button{border-left:1px solid var(--line)}.zoom-control button:hover{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}#zoom-readout{min-width:3.3rem;font-variant-numeric:tabular-nums;color:var(--muted)}.sb-overlay{position:absolute;inset:0}.sb-handle{position:absolute;box-sizing:border-box;border:1px solid transparent;border-radius:3px;cursor:grab;touch-action:none}.sb-handle:hover{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 7%,transparent)}.sb-handle.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);box-shadow:0 0 0 1px var(--accent);cursor:grab}.sb-handle:active{cursor:grabbing}.sb-resize-grip{display:none;position:absolute;width:10px;height:10px;box-sizing:border-box;background:var(--surface);border:1.5px solid var(--accent);border-radius:2px;z-index:2;pointer-events:auto;touch-action:none}.sb-handle.is-selected>.sb-resize-grip{display:block}.grip-n{top:-5px;left:50%;margin-left:-5px;cursor:ns-resize}.grip-s{bottom:-5px;left:50%;margin-left:-5px;cursor:ns-resize}.grip-e{right:-5px;top:50%;margin-top:-5px;cursor:ew-resize}.grip-w{left:-5px;top:50%;margin-top:-5px;cursor:ew-resize}.grip-nw{top:-5px;left:-5px;cursor:nwse-resize}.grip-ne{top:-5px;right:-5px;cursor:nesw-resize}.grip-se{bottom:-5px;right:-5px;cursor:nwse-resize}.grip-sw{bottom:-5px;left:-5px;cursor:nesw-resize}.sb-col-edit{position:absolute;inset:0;pointer-events:none}.sb-col-bound{position:absolute;box-sizing:border-box;border:1px dashed color-mix(in srgb,var(--accent) 55%,transparent);border-radius:2px}.sb-col-divider{position:absolute;width:12px;margin-left:-6px;cursor:col-resize;pointer-events:auto;touch-action:none}.sb-col-divider:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translate(-50%);background:var(--accent);opacity:.75;border-radius:1px}.sb-col-divider:hover:before,.sb-col-divider:active:before{opacity:1;width:3px}.sb-col-add{position:absolute;transform:translate(-30%,-50%);display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;line-height:1;cursor:pointer;pointer-events:auto;touch-action:none;box-shadow:0 1px 3px #0000004d}.sb-col-add:hover{filter:brightness(1.1)}.sb-table-edit{position:absolute;inset:0;pointer-events:none}.sb-table-cell{position:absolute;box-sizing:border-box;border-radius:2px;cursor:text;pointer-events:auto;touch-action:none}.sb-table-cell:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent)}.sb-table-add{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;line-height:1;cursor:pointer;pointer-events:auto;touch-action:none;box-shadow:0 1px 3px #0000004d}.sb-table-source{position:absolute;transform:translate(-100%,-100%);display:flex;align-items:center;justify-content:center;height:16px;padding:0 5px;border-radius:4px;background:var(--accent);color:#fff;font:600 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px;cursor:pointer;pointer-events:auto;touch-action:none;box-shadow:0 1px 3px #0000004d}.sb-table-add:hover,.sb-table-source:hover{filter:brightness(1.1)}.sb-table-cell-editor{position:absolute;box-sizing:border-box;margin:0;padding:1px 3px;border:1px solid var(--accent);border-radius:2px;background:var(--surface);color:var(--ink);font:inherit;resize:none;overflow:hidden;pointer-events:auto;z-index:6}.sb-table-source-dialog{max-width:min(48rem,calc(100vw - 2rem))}.sb-table-source-input{width:100%;box-sizing:border-box;min-height:8em;padding:.55rem .66rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:.82rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical;white-space:pre;overflow:auto}.sb-guides{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:5}.sb-guides line{vector-effect:non-scaling-stroke}.sb-guide-align{stroke:var(--accent);stroke-width:1px;opacity:.9}.sb-guide-space{stroke:color-mix(in srgb,var(--accent) 70%,#14b8a6);stroke-width:1.5px;stroke-dasharray:4 3}.sb-guide-bind{stroke:#a855f7;stroke-width:2px;stroke-dasharray:2 2}.sb-connectors{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.sb-hit{fill:none;stroke:transparent;stroke-width:.5;pointer-events:stroke;cursor:pointer}.sb-hit.is-selected{stroke:color-mix(in srgb,var(--accent) 40%,transparent)}.sb-rubber{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.sb-rubber-line{stroke:#a855f7;stroke-width:.06;stroke-dasharray:.12 .1}.sb-overlay.is-connect .sb-handle{cursor:crosshair}.sb-conn-edit{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:7}.sb-conn-add{fill:none;stroke:transparent;stroke-width:.25;pointer-events:stroke;cursor:copy}.sb-ctrl-line{stroke:#a855f7;stroke-width:.02;stroke-dasharray:.1 .08}.sb-conn-edit circle{pointer-events:all;cursor:grab}.sb-conn-edit circle:active{cursor:grabbing}.sb-anchor{fill:#fff;stroke:var(--accent);stroke-width:.045}.sb-anchor.is-waypoint{fill:var(--accent)}.sb-anchor.is-focused{stroke:var(--accent);stroke-width:.08}.sb-ctrl{fill:#a855f7;stroke:#fff;stroke-width:.03}.sb-ctrl.is-focused{stroke:var(--accent);stroke-width:.05}.sb-ctrl-line.is-focused{stroke-dasharray:none;stroke-width:.03}.sb-pivot{fill:#fff;stroke:var(--accent);stroke-width:.045;pointer-events:all;cursor:grab}.sb-pivot:active{cursor:grabbing}.sb-pivot.is-focused{fill:var(--accent)}svg.sb-snap-layer{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.sb-snap-dot{fill:var(--accent);opacity:.35;pointer-events:none}.sb-snap-dot.is-active{opacity:1;stroke:#fff;stroke-width:.04}.sb-create-menu{position:fixed;z-index:1000;min-width:12rem;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 28px #00000038;overflow:hidden;font-size:.82rem}.sb-create-filter{border:none;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;padding:.5rem .66rem;outline:none}.sb-create-list{list-style:none;margin:0;padding:.25rem;max-height:15rem;overflow-y:auto}.sb-create-item{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.34rem .5rem;border-radius:5px;cursor:pointer}.sb-create-item.is-active{background:var(--accent);color:#fff}.sb-create-hint{font-size:.72rem;color:var(--muted)}.sb-create-item.is-active .sb-create-hint{color:#fffc}.sb-dialog{margin:auto;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);max-width:min(26rem,calc(100vw - 2rem));box-shadow:0 12px 40px #00000052}.sb-dialog::backdrop{background:#0a0c1273}.sb-dialog[open]{animation:sb-dialog-in .12s ease}@keyframes sb-dialog-in{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion: reduce){.sb-dialog[open]{animation:none}}.sb-dialog-form{display:flex;flex-direction:column;gap:.85rem;padding:1.15rem 1.25rem 1.1rem;font-family:var(--font-ui)}.sb-dialog-title{margin:0;font-size:1.02rem;font-weight:620;letter-spacing:-.01em}.sb-dialog-message{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45;white-space:pre-wrap}.sb-dialog-field{display:flex;flex-direction:column;gap:.3rem}.sb-dialog-field-label{font-size:.8rem;color:var(--muted)}.sb-dialog-input{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit;padding:.5rem .66rem}.sb-dialog-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.sb-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.15rem}.sb-dialog-button{border:1px solid transparent;border-radius:8px;font:inherit;font-weight:550;padding:.5rem .95rem;cursor:pointer}.sb-dialog-cancel{border-color:var(--line);background:transparent;color:var(--ink)}.sb-dialog-cancel:hover{border-color:var(--muted)}.sb-dialog-confirm{border-color:var(--accent);background:var(--accent);color:#fff}.sb-dialog-confirm:hover{filter:brightness(1.05)}.sb-dialog-confirm.is-danger{border-color:var(--danger);background:var(--danger)}.sb-bind-badge{position:absolute;transform:translate(-50%,-50%);padding:.1em .4em;border-radius:999px;background:#a855f7;color:#fff;font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none;z-index:6}.sb-inline-editor{min-height:1lh;white-space:pre-wrap;overflow-wrap:break-word;outline:1px dashed color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:2px;caret-color:currentColor;cursor:text}.sb-handle.is-editing{background:transparent;box-shadow:none}.sb-handle.is-editing>.sb-resize-grip{display:none}.sb-inline-editor .rt-atom{display:inline-block;max-width:100%;border-radius:3px;cursor:default}.sb-inline-editor .rt-atom:hover{box-shadow:0 0 0 1.5px color-mix(in srgb,var(--accent) 45%,transparent)}.sb-inline-editor .rt-chip{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.55em;padding:.1em .35em;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:999px;color:color-mix(in srgb,var(--accent) 80%,currentColor);vertical-align:middle;white-space:nowrap}.sb-inline-editor mark{background-color:#fff59d;color:#1b1e28;border-radius:2px}.text-actions button[data-format=highlight] mark{background-color:#fff59d;color:#1b1e28;padding:0 .2em;border-radius:2px}.deck-slide .sb-slide{border:1px solid var(--line);border-radius:6px;box-shadow:var(--slide-shadow)}.deck-rail{min-height:0;display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:2rem .9rem;border-right:1px solid var(--line);background:var(--surface);overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;scroll-snap-type:y proximity}.deck-rail .thumb{width:8.5rem;scroll-snap-align:center;opacity:.6;transition:transform .18s ease,opacity .18s ease}.deck-rail .thumb.is-current{opacity:1;transform:scale(1.06)}.deck-add{flex:0 0 auto;width:8.5rem;aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;gap:.3rem;border:1.5px dashed var(--line);border-radius:4px;background:transparent;color:var(--muted);font:inherit;font-size:.8rem;cursor:pointer;transition:border-color .12s ease,color .12s ease}.deck-add:hover{border-color:var(--accent);color:var(--accent)}.deck-add:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.thumb{flex:0 0 auto;position:relative;width:9rem;aspect-ratio:16 / 9;padding:0;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:pointer;overflow:hidden;transition:border-color .12s ease}.thumb-canvas{position:absolute;top:0;left:0;transform-origin:top left}.thumb:hover{border-color:var(--accent)}.thumb.is-current{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-1px}.deck-rail:focus-within .thumb.is-current{outline-width:3px;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}.thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.home{height:100%;overflow:auto;padding:4rem 1.5rem;background:var(--bg);color:var(--ink)}.home-shell{max-width:44rem;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.home-header{display:flex;flex-direction:column;gap:.35rem}.home-brand{font-size:1.7rem;font-weight:680;letter-spacing:-.02em}.home-tagline{margin:0;color:var(--muted);font-size:.95rem}.home-create{display:flex;gap:.5rem}.home-create-input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;padding:.55rem .75rem}.home-create-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.home-create-button{flex:none;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;font:inherit;font-weight:550;padding:.55rem 1.1rem;cursor:pointer}.home-create-button:hover{filter:brightness(1.05)}.home-empty{padding:2.5rem 1rem;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:10px}.home-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.home-card{display:flex;align-items:stretch;gap:.5rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease}.home-card:hover{border-color:var(--accent);box-shadow:var(--slide-shadow)}.home-card-open{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem;border:0;background:none;color:inherit;font:inherit;text-align:left;padding:.9rem 1rem;cursor:pointer}.home-card-name{font-weight:580;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-card-meta{color:var(--muted);font-size:.8rem}.home-card-delete{flex:none;align-self:center;margin-right:.7rem;border:1px solid var(--line);border-radius:7px;background:none;color:var(--muted);font:inherit;font-size:.78rem;padding:.35rem .7rem;cursor:pointer}.home-card-delete:hover{border-color:var(--danger);color:var(--danger)}
