.copy-editor{--copy-editor-panel-width:min(500px,calc(100vw - 48px));inset:0;z-index:1000;pointer-events:none;font-family:var(--c-sans,"Inter",system-ui,sans-serif)}.copy-editor,.copy-editor__trigger{position:fixed;color:var(--c-ink,#1f1b16)}.copy-editor__trigger{top:50%;right:0;transform:translateY(-50%);display:inline-flex;align-items:center;gap:8px;height:auto;padding:14px 10px;background:var(--c-surface,#fff);border:1px solid var(--c-rule,rgba(31,27,22,.1));border-right:0;border-radius:12px 0 0 12px;cursor:pointer;touch-action:none;font:inherit;font-size:13px;font-weight:500;letter-spacing:-.005em;writing-mode:vertical-rl;pointer-events:auto;box-shadow:-4px 4px 14px -6px rgba(31,27,22,.18),inset 0 1px 0 rgba(255,255,255,.6);transition:right .32s cubic-bezier(.32,.72,0,1)}.copy-editor__trigger svg{color:var(--c-accent,currentColor);transform:rotate(90deg)}.copy-editor.is-open .copy-editor__trigger{right:var(--copy-editor-panel-width);background:var(--c-accent-tint,var(--c-tint-page,#eff3ed));cursor:ew-resize}.copy-editor__trigger-label{font-family:var(--c-mono,ui-monospace,monospace);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-ink-muted,#6b6258)}.copy-editor__panel{position:fixed;top:0;right:0;bottom:0;width:var(--copy-editor-panel-width);display:flex;flex-direction:column;background:var(--c-surface,#fff);color:var(--c-ink,#1f1b16);box-shadow:-24px 0 60px -20px rgba(31,27,22,.28),-4px 0 12px -6px rgba(31,27,22,.08);transform:translateX(100%);pointer-events:none;transition:transform .32s cubic-bezier(.32,.72,0,1);overflow:hidden}.copy-editor.is-open .copy-editor__panel{transform:translateX(0);pointer-events:auto}.copy-editor.is-dragging .copy-editor__panel,.copy-editor.is-dragging .copy-editor__trigger{transition:none}.copy-editor__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 20px 14px;border-bottom:1px solid var(--c-rule-soft,rgba(31,27,22,.05))}.copy-editor__head-text{min-width:0}.copy-editor__eyebrow{font-family:var(--c-mono,ui-monospace,monospace);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-ink-ghost,#a39a8e);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.copy-editor__title{font-family:var(--c-serif,Georgia,serif);font-weight:400;font-size:22px;letter-spacing:-.015em;color:var(--c-ink,#1f1b16);margin:0}.copy-editor__title em{font-style:italic;color:var(--c-accent,currentColor)}.copy-editor__binding{font-size:12px;color:var(--c-ink-muted,#6b6258);margin:4px 0 0}.copy-editor__head-actions{display:flex;gap:6px;flex-shrink:0}.copy-editor__icon-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--c-rule,rgba(31,27,22,.1));background:transparent;color:var(--c-ink-muted,#6b6258);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease,border-color .2s ease}.copy-editor__icon-btn:hover{background:var(--c-tint-page,rgba(31,27,22,.04));color:var(--c-ink,#1f1b16)}.copy-editor__body{flex:1;min-height:0;overflow:auto;padding:12px 18px 16px}.copy-editor__msg{font-size:13px;color:var(--c-ink-muted,#6b6258);padding:16px 4px;line-height:1.5}.copy-editor__msg code{font-family:var(--c-mono,ui-monospace,monospace);font-size:12px;background:var(--c-tint-page,rgba(31,27,22,.05));padding:1px 6px;border-radius:6px}.copy-editor__msg--error{color:var(--c-danger,#b14a3b)}.copy-editor__foot{padding:10px 20px;border-top:1px solid var(--c-rule-soft,rgba(31,27,22,.05));font-family:var(--c-mono,ui-monospace,monospace);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-ink-ghost,#a39a8e)}.copy-editor__group{border:0;margin:6px 0}.copy-editor__group--root{margin:0}.copy-editor__group-summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:6px 4px;border-radius:8px;user-select:none}.copy-editor__group-summary::-webkit-details-marker{display:none}.copy-editor__group-summary:before{content:"›";display:inline-block;width:12px;text-align:center;color:var(--c-ink-ghost,#a39a8e);transition:transform .16s ease;font-size:14px}.copy-editor__group[open]>.copy-editor__group-summary:before{transform:rotate(90deg)}.copy-editor__group-summary:hover{background:var(--c-tint-page,rgba(31,27,22,.04))}.copy-editor__group-label{font-family:var(--c-mono,ui-monospace,monospace);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink,#1f1b16)}.copy-editor__group-count{font-family:var(--c-mono,ui-monospace,monospace);font-size:10px;color:var(--c-ink-ghost,#a39a8e);background:var(--c-tint-page,rgba(31,27,22,.05));padding:1px 6px;border-radius:999px}.copy-editor__group-body{padding:4px 0 4px 16px;border-left:1px solid var(--c-rule-soft,rgba(31,27,22,.06));margin-left:8px}.copy-editor__row{display:block;margin:8px 0 14px}.copy-editor__row-label{font-family:var(--c-mono,ui-monospace,monospace);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-ink-muted,#6b6258);margin-bottom:5px}.copy-editor__row-body{display:block}.copy-editor__leaf{display:flex;align-items:flex-start;gap:8px}.copy-editor__leaf--block{display:block}.copy-editor__readonly{font-family:var(--c-mono,ui-monospace,monospace);font-size:11px;color:var(--c-ink-ghost,#a39a8e);font-style:italic}.copy-editor__number,.copy-editor__text{flex:1;min-width:0;font:inherit;font-size:13px;line-height:1.45;color:var(--c-ink,#1f1b16);background:var(--c-surface,#fff);border:1px solid var(--c-rule,rgba(31,27,22,.1));border-radius:10px;padding:8px 10px;resize:vertical;font-family:var(--c-sans,"Inter",system-ui,sans-serif)}.copy-editor__text{min-height:calc(4 * 1.45em + 18px)}.copy-editor__number:focus,.copy-editor__text:focus{outline:2px solid var(--c-accent-soft,rgba(31,27,22,.2));outline-offset:1px;border-color:var(--c-accent,var(--c-ink,#1f1b16))}.copy-editor__text{overflow:hidden}.copy-editor__number{width:100px;flex:0 0 auto}.copy-editor__bool{width:38px;height:22px;border-radius:999px;border:1px solid var(--c-rule,rgba(31,27,22,.12));background:var(--c-tint-page,rgba(31,27,22,.05));position:relative;cursor:pointer;transition:background .16s ease,border-color .16s ease}.copy-editor__bool-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--c-surface,#fff);box-shadow:0 1px 2px rgba(0,0,0,.15);transition:transform .16s ease}.copy-editor__bool.is-on{background:var(--c-accent,#1f1b16);border-color:var(--c-accent,#1f1b16)}.copy-editor__bool.is-on .copy-editor__bool-thumb{transform:translateX(16px)}.copy-editor__status{font-family:var(--c-mono,ui-monospace,monospace);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;align-self:center;white-space:nowrap}.copy-editor__status--saving{color:var(--c-ink-muted,#6b6258);background:var(--c-tint-page,rgba(31,27,22,.05))}.copy-editor__status--saved{color:#2a6d3c;background:rgba(52,168,83,.12)}.copy-editor__status--error{color:#b14a3b;background:rgba(177,74,59,.12)}.copy-editor__seg-editor{background:transparent;border:0;padding:0}.copy-editor__seg-preview{padding:8px 2px 10px;border-bottom:1px dashed var(--c-rule-soft,rgba(31,27,22,.1));margin-bottom:10px;min-height:32px;font-family:var(--c-serif,Georgia,serif);font-size:16px;line-height:1.3;color:var(--c-ink,#1f1b16)}.copy-editor__seg-preview-text em{font-style:italic;color:var(--c-accent,currentColor)}.copy-editor__seg-hint{font-size:11px;line-height:1.5;color:var(--c-ink-muted,#6b6258);margin:0 0 12px;padding:0 2px}.copy-editor__seg-hint em{font-style:italic;color:var(--c-accent,currentColor)}.copy-editor__seg-hint strong{font-weight:700}.copy-editor__seg-list{list-style:none;margin:0;padding:0}.copy-editor__seg-row{background:transparent;border:0;padding:0;margin:0 0 14px}.copy-editor__seg-toolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:4px}.copy-editor__seg-style{width:24px;height:22px;border:1px solid var(--c-rule,rgba(31,27,22,.12));background:transparent;border-radius:5px;font-size:11px;font-weight:600;font-family:var(--c-serif,Georgia,serif);color:var(--c-ink-muted,#6b6258);cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease;padding:0}.copy-editor__seg-style:hover{background:var(--c-tint-page,rgba(31,27,22,.04));color:var(--c-ink,#1f1b16)}.copy-editor__seg-style.is-active{background:var(--c-accent,#1f1b16);color:var(--c-on-accent,#fff);border-color:var(--c-accent,#1f1b16)}.copy-editor__seg-style[title^=Bold]{font-weight:800}.copy-editor__seg-style[title^=Editorial],.copy-editor__seg-style[title^=Italic]{font-style:italic}.copy-editor__seg-style[title^=Hand]{text-decoration:underline;font-style:italic}.copy-editor__seg-size{display:inline-flex;align-items:center;margin-left:auto}.copy-editor__seg-size select{font:inherit;font-size:10px;padding:1px 4px;border:1px solid var(--c-rule,rgba(31,27,22,.12))}.copy-editor__seg-remove,.copy-editor__seg-size select{border-radius:5px;background:transparent;color:var(--c-ink-muted,#6b6258)}.copy-editor__seg-remove{width:22px;height:22px;border:1px solid var(--c-rule,rgba(31,27,22,.12));cursor:pointer;font-size:13px;line-height:1;padding:0}.copy-editor__seg-remove:hover{background:var(--c-tint-page,rgba(31,27,22,.04));color:var(--c-ink,#1f1b16)}.copy-editor__seg-remove:disabled{opacity:.4;cursor:not-allowed}.copy-editor__seg-text{width:100%;box-sizing:border-box;font:inherit;font-size:13px;line-height:1.45;color:var(--c-ink,#1f1b16);background:var(--c-surface,#fff);border:1px solid var(--c-rule,rgba(31,27,22,.1));border-radius:10px;padding:8px 10px;resize:vertical;overflow:hidden;font-family:var(--c-sans,"Inter",system-ui,sans-serif);min-height:calc(4 * 1.45em + 18px)}.copy-editor__seg-text:focus{outline:2px solid var(--c-accent-soft,rgba(31,27,22,.2));outline-offset:1px;border-color:var(--c-accent,var(--c-ink,#1f1b16))}.copy-editor__seg-add{display:block;margin:4px 0 0;background:transparent;border:1px dashed var(--c-rule,rgba(31,27,22,.18));border-radius:8px;padding:6px 10px;font-family:var(--c-mono,ui-monospace,monospace);font-size:11px;color:var(--c-ink-muted,#6b6258);cursor:pointer;width:100%;text-align:left}.copy-editor__seg-add:hover{background:var(--c-tint-page,rgba(31,27,22,.04));color:var(--c-ink,#1f1b16)}