*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:400 13px/1.55 var(--display);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled,[aria-disabled=true]{cursor:not-allowed}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}input,textarea{font:inherit;color:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Spectral-Regular.woff2)format("woff2")}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/Spectral-Italic.woff2)format("woff2")}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Spectral-SemiBold.woff2)format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/DMMono-Regular.woff2)format("woff2")}:root{--paper:#f7f4ec;--paper-2:#f1ede2;--paper-3:#e8e1d0;--stage:#fbfaf5;--ink:#1f2a30;--ink-2:#4a5a64;--ink-3:#8a98a0;--rule:#d4cdb8;--accent:#a04a2a;--display:"Spectral", Georgia, serif;--mono:"DM Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--rail-width:38px;--frame-height:60px;--head-height:47px;--col-left:280px;--col-right:320px;--popover-shadow:0 8px 24px #1f2a301f;--hover-ms:.12s}.app-root{grid-template-rows:var(--frame-height) 1fr;background:var(--paper);height:100%;display:grid;overflow:hidden}.frame{border-bottom:1px solid var(--rule);background:var(--paper-2);justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.frame-left{align-items:center;gap:14px;display:flex}.brand-mark{color:var(--ink);align-items:center;display:flex}.brand{font-family:var(--display);letter-spacing:.02em;color:var(--ink);font-size:24px;line-height:1.1}.frame-right{align-items:center;gap:10px;display:flex}.frame-btn{font-family:var(--mono);border:1px solid var(--rule);color:var(--ink-2);letter-spacing:.05em;transition:background var(--hover-ms) ease, color var(--hover-ms) ease;background:0 0;border-radius:2px;padding:4px 10px;font-size:11px}.frame-btn:hover{background:var(--paper-3);color:var(--ink)}.frame-btn.primary{border-color:var(--ink);color:var(--ink)}.frame-btn.primary:hover{background:var(--ink);color:var(--paper)}.frame-modal-backdrop{z-index:100;animation:frame-modal-fade var(--hover-ms) ease;background:#1f2a3052;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes frame-modal-fade{0%{opacity:0}to{opacity:1}}.frame-modal{background:var(--paper);border:1px solid var(--ink);box-shadow:var(--popover-shadow);border-radius:4px;flex-direction:column;width:min(440px,100vw - 32px);max-height:calc(100vh - 64px);display:flex;overflow:hidden}.frame-modal-head{border-bottom:1px solid var(--rule);background:var(--paper-2);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.frame-modal-title{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);font-size:14px;font-weight:600}.frame-modal-close{border:1px solid var(--rule);width:22px;height:22px;color:var(--ink-2);font-size:16px;line-height:1;font-family:var(--mono);cursor:pointer;transition:background var(--hover-ms) ease, color var(--hover-ms) ease;background:0 0;border-radius:2px;justify-content:center;align-items:center;display:flex}.frame-modal-close:hover{background:var(--paper-3);color:var(--ink)}.frame-modal-body{font-family:var(--display);color:var(--ink-2);padding:16px 18px;font-size:14px;line-height:1.55;overflow-y:auto}.frame-modal-body p{margin:0 0 12px}.frame-modal-body p:last-child{margin-bottom:0}.frame-modal-body strong{color:var(--ink);font-weight:600}.frame-modal-lede{color:var(--ink);font-size:15px}.frame-modal-meta{font-family:var(--mono);color:var(--ink-3);letter-spacing:.02em;border-top:1px dashed var(--rule);padding-top:12px;font-size:11px;margin-top:12px!important}.share-row{align-items:stretch;gap:8px;margin-top:4px;display:flex}.share-input{font-family:var(--mono);color:var(--ink);background:var(--paper-2);border:1px solid var(--rule);border-radius:2px;outline:none;flex:1;min-width:0;padding:6px 10px;font-size:11px}.share-input:focus{border-color:var(--ink)}.share-copy{cursor:pointer;flex-shrink:0;padding:6px 14px;font-size:11px}.shell{grid-template-columns:var(--col-left) 1fr var(--col-right);height:100%;display:grid;overflow:hidden}.shell.left-collapsed{grid-template-columns:var(--rail-width) 1fr var(--col-right)}.shell.right-collapsed{grid-template-columns:var(--col-left) 1fr var(--rail-width)}.shell.left-collapsed.right-collapsed{grid-template-columns:var(--rail-width) 1fr var(--rail-width)}.col{flex-direction:column;min-height:0;display:flex;overflow:hidden}.col-left{border-right:1px solid var(--rule);background:var(--paper-2)}.col-right{border-left:1px solid var(--rule);background:var(--paper-2)}.col-stage{background:var(--stage);position:relative}.panel-head{height:var(--head-height);box-sizing:border-box;border-bottom:1px solid var(--rule);background:var(--paper);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:0 16px;display:flex}.panel-head .title{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);font-size:13px;font-weight:600}.panel-head .count{font-family:var(--mono);color:var(--ink-3);margin-left:auto;margin-right:8px;font-size:10px}.panel-collapse{border:1px solid var(--rule);width:22px;height:22px;color:var(--ink-2);font-size:14px;line-height:1;font-family:var(--mono);transition:background var(--hover-ms) ease, color var(--hover-ms) ease;background:0 0;border-radius:2px;justify-content:center;align-items:center;display:flex}.panel-collapse:hover{background:var(--paper-3);color:var(--ink)}.panel-body{flex:1;min-height:0;padding:12px 16px;font-size:13px;overflow-y:auto}.panel-body::-webkit-scrollbar{width:6px}.panel-body::-webkit-scrollbar-thumb{background:var(--rule);border-radius:3px}.panel-body::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}.rail{width:var(--rail-width);background:var(--paper-2);font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);flex-direction:column;flex-shrink:0;align-items:center;gap:14px;padding:10px 0;font-size:10px;display:flex}.rail-left{border-right:1px solid var(--rule)}.rail-right{border-left:1px solid var(--rule)}.rail-btn{border:1px solid var(--rule);background:var(--paper);width:22px;height:22px;color:var(--ink-2);transition:background var(--hover-ms) ease, color var(--hover-ms) ease, border-color var(--hover-ms) ease;border-radius:2px;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex}.rail-btn:hover{background:var(--accent);color:var(--paper);border-color:var(--accent)}.rail-title{writing-mode:vertical-rl;font-family:var(--display);letter-spacing:.16em;color:var(--accent);text-align:center;font-size:11px;font-weight:600;transform:rotate(180deg)}.rail-count{writing-mode:vertical-rl;font-family:var(--mono);color:var(--ink-3);letter-spacing:.08em;font-size:9px;transform:rotate(180deg)}.search{border:1px solid var(--rule);background:var(--paper);font-family:var(--mono);color:var(--ink-3);border-radius:2px;align-items:center;gap:8px;margin-bottom:14px;padding:6px 10px;font-size:11px;display:flex}.search input{font-family:var(--mono);color:var(--ink-2);background:0 0;border:0;outline:none;flex:1;font-size:11px}.search input::placeholder{color:var(--ink-3)}.section-head{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px dashed var(--rule);align-items:center;gap:8px;margin:14px 0 6px;padding-bottom:4px;font-size:9px;font-weight:500;display:flex}.section-head:first-of-type{margin-top:0}.section-head .section-meta{font-family:var(--mono);color:var(--ink-3);margin-left:auto;font-size:9px}.panel-empty{color:var(--ink-3);font-family:var(--mono);letter-spacing:.04em;padding:10px 0;font-size:10px;line-height:1.4}.panel-error{color:var(--ink);border:1px solid var(--accent);font-family:var(--mono);background:#9a422014;border-radius:2px;margin-bottom:12px;padding:8px 10px;font-size:10px}.active-list{flex-direction:column;display:flex}.sys-row{border-bottom:1px dashed var(--rule);align-items:center;gap:10px;padding:6px 4px;display:flex;position:relative}.sys-row.active .name{font-weight:600}.sys-row:hover{background:#00000005}.sys-handle{color:var(--ink-3);letter-spacing:-1px;cursor:grab;flex-shrink:0;width:10px;font-size:9px}.sys-color-btn{flex-shrink:0;width:14px;height:14px;padding:0}.sys-color{width:14px;height:14px;transition:transform var(--hover-ms) ease;border:1px solid #0000001f;border-radius:2px;display:block;box-shadow:inset 0 0 0 1px #fff6}.sys-color-btn:hover .sys-color{transform:scale(1.1)}.sys-fam{color:var(--ink-3);flex-shrink:0;align-items:center;display:flex}.sys-row.active .sys-fam{color:var(--ink)}.sys-row-body{text-align:left;flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.sys-row-body .name{font-family:var(--display);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.sys-row-body .meta{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;flex-shrink:0;font-size:9px}.sys-row-remove{font-family:var(--mono);color:var(--ink-3);opacity:0;width:18px;height:18px;transition:opacity var(--hover-ms) ease, color var(--hover-ms) ease;border-radius:2px;flex-shrink:0;font-size:12px}.sys-row:hover .sys-row-remove{opacity:1}.sys-row-remove:hover{color:var(--ink);background:var(--paper-3)}.sys-color-picker{z-index:10;background:var(--paper);border:1px solid var(--ink);box-shadow:var(--popover-shadow);border-radius:2px;grid-template-columns:repeat(6,16px);gap:4px;padding:6px;display:grid;position:absolute;top:24px;left:22px}.sys-color-pick{width:16px;height:16px;transition:transform var(--hover-ms) ease;border:1px solid #0000001a;border-radius:50%;padding:0}.sys-color-pick:hover{transform:scale(1.1)}.tree{flex-direction:column;display:flex}.tree-branch+.tree-branch{border-top:1px dashed var(--rule)}.tree-node{font-family:var(--display);color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;align-items:center;gap:8px;padding:6px 4px;font-size:12px;display:flex}.tree-node:focus-visible{background:var(--paper-3)}.tree-node:hover{background:#00000006}.tree-caret{color:var(--ink-3);flex-shrink:0;width:10px;font-size:9px}.tree-node.open .tree-caret{color:var(--ink)}.tree-icon{color:var(--ink-3);flex-shrink:0;align-items:center;display:flex}.tree-node.open .tree-icon{color:var(--ink)}.tree-name{font-family:var(--display);flex:1}.tree-node.open .tree-name{font-weight:600}.tree-count{font-family:var(--mono);color:var(--ink-3);font-size:9px}.tree-children{flex-direction:column;gap:2px;padding:2px 0 6px 22px;display:flex}.tree-empty{font-family:var(--mono);color:var(--ink-3);letter-spacing:.04em;padding:4px 0;font-size:9px}.sys-leaf{text-align:left;font-family:var(--display);color:var(--ink);transition:background var(--hover-ms) ease;border-radius:2px;align-items:center;gap:8px;padding:4px 6px;font-size:12px;display:flex}.sys-leaf:hover{background:var(--paper-3)}.sys-leaf.pinned{color:var(--ink-3);font-style:italic}.sys-leaf.pinned:before{content:"✓";color:var(--accent);font-family:var(--mono);margin-right:-4px;font-size:9px}.sys-leaf-swatch{border:1px solid #0000001a;border-radius:2px;flex-shrink:0;width:8px;height:8px}.sys-leaf-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sys-leaf-meta{font-family:var(--mono);color:var(--ink-3);letter-spacing:.06em;font-size:9px}.stage-root{background:linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);flex-direction:column;height:100%;display:flex;position:relative}.stage-toolbar{height:var(--head-height);box-sizing:border-box;border-bottom:1px solid var(--rule);background:var(--paper);z-index:5;flex-shrink:0;align-items:center;gap:14px;padding:0 14px;display:flex;position:relative}.display-anchor{position:relative}.display-btn{font-family:var(--display);color:var(--ink);border:1px solid var(--ink);background:var(--paper);transition:background var(--hover-ms) ease, color var(--hover-ms) ease;border-radius:4px;align-items:center;gap:10px;padding:5px 12px;font-size:13px;font-weight:500;display:flex}.display-btn:hover{background:var(--paper-3)}.display-btn.open{background:var(--ink);color:var(--paper)}.display-pill{font-family:var(--mono);letter-spacing:.06em;color:inherit;opacity:.85;border:1px solid;border-radius:999px;padding:2px 8px;font-size:10px}.display-caret{color:inherit;opacity:.7;font-size:9px}.display-popover{background:var(--paper);border:1px solid var(--ink);width:320px;box-shadow:var(--popover-shadow);z-index:50;border-radius:4px;flex-direction:column;gap:12px;padding:12px 14px;display:flex;position:absolute;top:calc(100% + 6px);left:0}.dp-section{flex-direction:column;gap:6px;display:flex}.dp-label{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);justify-content:space-between;align-items:baseline;gap:8px;font-size:9px;font-weight:500;display:flex}.dp-slider-value{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-2);text-transform:none;font-size:9px}.dp-slider{appearance:none;background:var(--rule);cursor:pointer;border-radius:2px;outline:none;width:100%;height:4px;margin:4px 0}.dp-slider::-webkit-slider-thumb{appearance:none;background:var(--ink);border:2px solid var(--paper);width:14px;height:14px;box-shadow:0 0 0 1px var(--ink);cursor:pointer;transition:transform var(--hover-ms) ease;border-radius:50%}.dp-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.dp-slider::-moz-range-thumb{background:var(--ink);border:2px solid var(--paper);width:14px;height:14px;box-shadow:0 0 0 1px var(--ink);cursor:pointer;border-radius:50%}.dp-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 1px var(--ink), 0 0 0 4px var(--accent)}.dp-view-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.dp-view-btn{font-family:var(--display);border:1px solid var(--rule);color:var(--ink-2);text-align:center;transition:background var(--hover-ms) ease, color var(--hover-ms) ease;background:0 0;border-radius:2px;padding:6px;font-size:12px}.dp-view-btn:hover{background:var(--paper-3);color:var(--ink)}.dp-view-btn.active{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:600}.dp-chip-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.dp-chip{font-family:var(--mono);letter-spacing:.06em;border:1px solid var(--rule);color:var(--ink-3);text-align:left;transition:background var(--hover-ms) ease, color var(--hover-ms) ease;background:0 0;border-radius:2px;padding:4px 8px;font-size:10px}.dp-chip:hover{background:var(--paper-3);color:var(--ink)}.dp-chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.dp-swatch-row{grid-template-columns:repeat(6,26px);gap:8px;display:grid}.dp-swatch{width:26px;height:26px;transition:transform var(--hover-ms) ease;box-shadow:inset 0 0 0 2px var(--paper);border:1.5px solid #0000;border-radius:50%;padding:0;position:relative}.dp-swatch:hover{transform:scale(1.1)}.dp-swatch.active{border-color:var(--ink)}.dp-foot{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-3);border-top:1px dashed var(--rule);padding-top:8px;font-size:9px}.stage-body{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.body-canvas{aspect-ratio:1/2;height:92%;max-height:720px;position:relative}.body-stack{width:100%;height:100%;position:relative}.body-layer{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;transition:opacity .2s;position:absolute;inset:0}.body-overlay{width:100%;height:100%;position:absolute;inset:0}.pt-marker{transition:opacity var(--hover-ms) ease}.pt-marker:hover{opacity:.9}.pt-marker.focused{opacity:1}.corner-label{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);pointer-events:none;font-size:9px;position:absolute}.corner-tl{top:12px;left:18px}.corner-tr{top:12px;right:18px}.corner-bl{bottom:14px;left:18px}.corner-br{bottom:14px;right:18px}.reading-header{margin-bottom:14px}.reading-eyebrow{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;font-size:9px}.reading-title{font-family:var(--display);letter-spacing:-.01em;color:var(--ink);margin:0 0 4px;font-size:28px;font-weight:400;line-height:1}.reading-subtitle{font-family:var(--display);color:var(--ink-2);margin-bottom:14px;font-size:13px;font-style:italic}.reading-section{margin-bottom:14px}.reading-label{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);justify-content:space-between;margin-bottom:4px;font-size:9px;display:flex}.reading-meta{font-family:var(--mono);color:var(--ink-3);font-size:9px}.reading-text{font-family:var(--display);color:var(--ink);white-space:pre-wrap;font-size:13px;line-height:1.55}.reading-text p{margin:0 0 10px}.reading-text p:last-child{margin-bottom:0}.reading-text.dropcap p.first:first-letter{font-family:var(--display);float:left;color:var(--accent);padding:4px 6px 0 0;font-size:38px;font-weight:600;line-height:.85}.reading-quote-block{margin:12px 0;padding-left:0}.reading-quote{font-family:var(--display);color:var(--ink-2);border-left:2px solid var(--accent);margin:4px 0;padding-left:10px;font-size:14px;font-style:italic;line-height:1.5}.reading-cite{font-family:var(--mono);color:var(--ink-3);letter-spacing:.04em;margin-top:4px;font-size:10px}.tag-row{flex-wrap:wrap;gap:4px;margin-top:14px;display:flex}.tag{font-family:var(--mono);letter-spacing:.06em;border:1px solid var(--rule);color:var(--ink-2);border-radius:2px;padding:2px 6px;font-size:9px}
