:root{--bg: #000000;--bg-1: #050507;--bg-2: #0a0a0d;--bg-3: #111114;--bg-hover: #16161a;--fg: #e6e4dd;--fg-soft: #a8a6a0;--fg-mute: #6b6963;--fg-faint: #3e3d39;--line: rgba(255, 255, 255, .06);--line-2: rgba(255, 255, 255, .1);--line-3: rgba(255, 255, 255, .18);--accent: #f0d8a8;--accent-soft: rgba(240, 216, 168, .55);--danger: #d57272;--ok: #6dd58c;--warn: #d5b772;--serif: "Instrument Serif", "Iowan Old Style", Georgia, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: "Geist Mono", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;height:100%}body{overflow:hidden;background-image:linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);background-size:32px 32px,32px 32px;background-position:0 0}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}button,input,textarea,select{font:inherit;color:inherit;background:transparent;border:0;outline:0}input,textarea,select{font-family:var(--mono)}textarea{resize:vertical}.serif{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:.01em}.scroll{overflow-y:auto}.scroll::-webkit-scrollbar{width:10px;height:10px}.scroll::-webkit-scrollbar-track{background:transparent}.scroll::-webkit-scrollbar-thumb{background:#ffffff0d;border-radius:999px;border:3px solid transparent;background-clip:padding-box}.scroll::-webkit-scrollbar-thumb:hover{background-color:#ffffff1a;background-clip:padding-box}.flex{display:flex;align-items:center}.flex-col{display:flex;flex-direction:column}.gap-2{gap:6px}.ml-auto{margin-left:auto}.muted{color:var(--fg-mute)}.faint{color:var(--fg-faint)}.sep{color:var(--fg-faint);padding:0 2px}.app{display:grid;grid-template-rows:44px 1fr 22px;height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#060608,#030304);font-size:11.5px}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.save-status{display:inline-flex;align-items:center;gap:6px;padding:0 4px;color:var(--fg-soft);font-size:11px;letter-spacing:.04em}.brand{display:flex;align-items:baseline;gap:8px}.monogram{font-family:var(--serif);font-style:italic;font-size:18px;line-height:1;letter-spacing:-.08em}.monogram:first-letter{color:var(--accent)}.brand-tag{color:var(--fg-mute);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.topbar-crumbs{color:var(--fg-soft);padding-left:12px;border-left:1px solid var(--line);margin-left:4px}.topbar-crumbs .sep{color:var(--fg-faint);padding:0 6px}.crumb-now{color:var(--fg)}.btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--line-2);border-radius:4px;background:var(--bg-2);color:var(--fg);font-size:11.5px;letter-spacing:.02em;cursor:pointer;transition:background .12s ease,border-color .12s ease}.btn:hover{background:var(--bg-hover);border-color:var(--line-3)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn-primary:hover{background:#f5e2bb}.btn-ghost{background:transparent;border-color:transparent;color:var(--fg-soft)}.btn-ghost:hover{background:var(--bg-2);color:var(--fg)}.btn-danger{color:var(--danger);border-color:#d572724d}.btn-danger:hover{background:#d572721a;border-color:var(--danger)}.panes{display:grid;grid-template-columns:180px 320px 1fr;min-height:0}@media (max-width: 1100px){.panes{grid-template-columns:160px 280px 1fr}}.pane-rail{border-right:1px solid var(--line);background:var(--bg-1);padding:16px 0;display:flex;flex-direction:column}.rail-section-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute);padding:0 16px 8px}.rail-list{list-style:none;padding:0;margin:0}.rail-item button{display:grid;grid-template-columns:20px 1fr auto;gap:8px;align-items:center;width:100%;padding:8px 16px;cursor:pointer;color:var(--fg-soft);border-left:2px solid transparent;transition:background .12s ease,color .12s ease,border-color .12s ease}.rail-item button:hover{background:var(--bg-2);color:var(--fg)}.rail-item.is-active button{background:var(--bg-2);color:var(--fg);border-left-color:var(--accent)}.rail-glyph{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:16px;line-height:1}.rail-label{font-size:12px}.rail-count{font-size:10.5px;color:var(--fg-mute)}.rail-foot{margin-top:auto;padding:12px 16px;font-size:10.5px;color:var(--fg-mute);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.pane-list{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.list-head{padding:18px 18px 6px}.list-title{margin:0;font-family:var(--serif);font-style:italic;font-size:22px;font-weight:400}.list-sub{color:var(--fg-mute);font-size:11px;margin-top:2px}.list-search{display:flex;align-items:center;gap:8px;margin:12px 18px;padding:6px 10px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px}.list-search input{flex:1;height:22px;font-size:12px}.kbd{font-size:10px;color:var(--fg-mute);border:1px solid var(--line-2);border-radius:3px;padding:1px 4px}.list-actions{display:flex;justify-content:space-between;align-items:center;padding:0 18px 8px;color:var(--fg-mute);font-size:11px}.list-rows{flex:1;padding:0 8px 8px;min-height:0}.empty-list{padding:40px 24px;text-align:center;color:var(--fg-mute);font-size:12px;display:flex;flex-direction:column;gap:10px;align-items:center}.empty-glyph{font-family:var(--serif);font-style:italic;font-size:28px;color:var(--fg-faint)}.row{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:baseline;padding:8px 10px;border-radius:4px;cursor:pointer;transition:background .1s ease}.row:hover{background:var(--bg-2)}.row.is-active{background:var(--bg-2);box-shadow:inset 2px 0 0 var(--accent)}.row-num{color:var(--fg-mute);font-size:11px}.row-body{display:flex;flex-direction:column;gap:2px;min-width:0}.row-title{color:var(--fg);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-meta{color:var(--fg-mute);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-editor{display:flex;flex-direction:column;min-height:0}.editor-head{padding:18px 24px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.editor-eyebrow{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute);display:flex;gap:6px;align-items:center}.editor-title{margin:4px 0 0;font-family:var(--serif);font-style:italic;font-size:22px;font-weight:400}.editor-actions{display:flex;gap:6px}.editor-body{padding:24px;display:flex;flex-direction:column;gap:18px}.editor-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--fg-mute)}.editor-empty-inner{text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}.editor-empty-glyph{font-family:var(--serif);font-style:italic;font-size:60px;color:var(--fg-faint)}.editor-empty-title{font-size:18px;color:var(--fg-soft);font-family:var(--serif);font-style:italic}.editor-empty-sub{font-size:12px;max-width:26ch}.fg{display:flex;flex-direction:column;gap:6px}.fg-label{display:flex;align-items:baseline;gap:8px;color:var(--fg-soft);font-size:11px;letter-spacing:.04em}.fg-label .num{color:var(--fg-mute);font-size:10px}.fg-hint{color:var(--fg-mute);font-size:10.5px;margin-left:auto}.fg-row{display:grid;gap:12px}.fg-row-2{grid-template-columns:1fr 1fr}.fg-row-3{grid-template-columns:1fr 1fr 1fr}@media (max-width: 900px){.fg-row-2,.fg-row-3{grid-template-columns:1fr}}.input,.textarea{width:100%;padding:8px 10px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;font-size:12.5px;color:var(--fg);transition:border-color .12s ease}.input:focus,.textarea:focus{border-color:var(--accent-soft)}.textarea{min-height:64px;line-height:1.6;resize:vertical}.textarea-tall{min-height:100px}.input-serif{font-family:var(--serif);font-style:italic;font-size:16px}.section-divider{display:flex;align-items:baseline;gap:10px;padding:14px 0 6px;border-top:1px solid var(--line);margin-top:6px}.section-divider:first-of-type{border-top:0;margin-top:0;padding-top:0}.sd-num{color:var(--fg-mute);font-size:10px;letter-spacing:.06em}.sd-title{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--fg)}.sd-kicker{color:var(--fg-mute);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;margin-left:auto}.tags-input{display:flex;flex-wrap:wrap;gap:6px;padding:6px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px}.tags-input input{flex:1;min-width:80px;padding:4px 6px;font-size:12px}.tag-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;background:var(--bg-3);border:1px solid var(--line-2);border-radius:999px;font-size:11px;color:var(--fg-soft)}.tag-chip button{cursor:pointer;color:var(--fg-mute);font-size:13px;line-height:1;padding:0 2px}.tag-chip button:hover{color:var(--danger)}.rep-list{display:flex;flex-direction:column;gap:8px}.rep-item{display:grid;grid-template-columns:24px 1fr 24px;gap:8px;align-items:start;padding:8px;background:var(--bg-1);border:1px solid var(--line);border-radius:4px}.rep-handle{color:var(--fg-mute);font-size:10.5px;padding-top:8px;text-align:center}.rep-fields{display:flex;flex-direction:column;gap:6px}.rep-fields.duo{flex-direction:row;gap:8px}.rep-fields.duo>*{flex:1}.rep-del{cursor:pointer;color:var(--fg-mute);font-size:18px;line-height:1;width:24px;height:24px;border-radius:4px;align-self:start}.rep-del:hover{color:var(--danger);background:#d572721a}.rep-add{cursor:pointer;color:var(--accent);font-size:11.5px;padding:6px 10px;border:1px dashed var(--line-2);border-radius:4px;text-align:left;transition:background .12s ease,border-color .12s ease}.rep-add:hover{background:var(--bg-2);border-color:var(--accent-soft)}.body-rows{display:flex;flex-direction:column;gap:8px}.body-row{display:grid;grid-template-columns:120px 1fr 30px;gap:8px;padding:8px;background:var(--bg-1);border:1px solid var(--line);border-radius:4px}.body-row select{padding:4px 6px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;font-size:12px}.body-row.type-h select,.body-row.type-h textarea{color:var(--accent)}.body-row textarea{min-height:60px;padding:6px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;font-size:12.5px;line-height:1.55}.body-row.type-img{grid-template-columns:160px 1fr 30px;align-items:start}.body-row-left{display:flex;flex-direction:column;gap:6px;min-width:0}.body-row-left select{width:100%}.body-row-left .gallery-layout-select{font-size:11px;padding:3px 4px}.body-img-cell{display:flex;flex-direction:column;gap:6px}.body-img-cell.gallery-grid{display:grid;gap:8px}.body-img-cell.gallery-grid-1{grid-template-columns:1fr}.body-img-cell.gallery-grid-2{grid-template-columns:1fr 1fr}.body-img-cell.gallery-grid-3{grid-template-columns:1fr 1fr 1fr}.body-img-cell .gallery-item{display:flex;flex-direction:column;gap:4px}.legacy-fig-list{display:flex;flex-direction:column;gap:6px}.legacy-fig-row{display:grid;grid-template-columns:80px 60px 1fr auto;gap:10px;align-items:center;padding:6px 8px;background:var(--bg-1);border:1px solid var(--line);border-radius:4px;font-size:12px}.legacy-fig-kind{font-family:var(--mono);color:var(--fg-soft)}.legacy-fig-ratio{font-family:var(--mono);color:var(--fg-mute)}.legacy-fig-caption{color:var(--fg-soft)}.legacy-fig-caption em{color:var(--fg-mute);font-style:italic}.section-kicker-grid{display:flex;flex-direction:column;gap:6px}.section-kicker-row{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:center}.section-kicker-label{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--fg-mute);text-transform:uppercase}.section-toggles{display:flex;flex-direction:column;gap:4px}.section-toggle{display:grid;grid-template-columns:auto 90px 1fr;gap:10px;align-items:center;padding:6px 8px;background:var(--bg-1);border:1px solid var(--line);border-radius:4px;font-size:12.5px;cursor:pointer}.section-toggle input{cursor:pointer}.section-toggle-label{font-weight:500;color:var(--fg)}.section-toggle-hint{color:var(--fg-mute);font-size:11.5px}.publish-toggle{display:flex;align-items:center;gap:8px;padding:8px 10px;margin-bottom:14px;background:var(--bg-1);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:4px;font-size:12.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.publish-toggle.is-draft{border-left-color:var(--fg-mute)}.publish-toggle input{cursor:pointer}.publish-toggle-label{font-weight:500;color:var(--fg)}.publish-toggle-state{color:var(--fg-mute);font-family:var(--mono);font-size:11px;letter-spacing:.04em}.publish-toggle.is-draft .publish-toggle-state{color:var(--accent)}.btn.is-preview{color:var(--accent);border-color:var(--accent-soft)}.btn.is-preview:hover{background:#f0d8a814}.row.is-draft .row-title{color:var(--fg-mute)}.row-draft-badge{display:inline-block;margin-left:8px;padding:1px 6px;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--bg-2);border:1px solid var(--accent-soft, var(--line));border-radius:3px;vertical-align:middle}.statusbar{display:flex;justify-content:space-between;align-items:center;padding:0 14px;border-top:1px solid var(--line);background:var(--bg-1);font-size:10.5px;color:var(--fg-mute);letter-spacing:.04em}.statusbar-left,.statusbar-right{display:flex;align-items:center;gap:6px}.dot{width:6px;height:6px;border-radius:50%;background:var(--fg-faint);display:inline-block}.dot-ok{background:var(--ok)}.dot-dirty{background:var(--warn)}.toast{position:fixed;bottom:36px;right:16px;padding:8px 14px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:6px;font-size:11.5px;color:var(--fg);display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px #0006;animation:toast-in .2s cubic-bezier(.22,1,.36,1)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.login-shell{display:flex;align-items:center;justify-content:center;height:100vh;width:100vw;background:var(--bg)}.login-card{width:340px;padding:30px 32px;background:var(--bg-1);border:1px solid var(--line);border-radius:6px;display:flex;flex-direction:column;gap:14px}.login-brand{display:flex;align-items:baseline;gap:10px}.login-tag{color:var(--fg-mute);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.login-title{margin:4px 0 0;font-size:28px;color:var(--fg)}.login-sub{color:var(--fg-mute);font-size:12px;margin:-8px 0 4px}.login-field{display:flex;flex-direction:column;gap:4px}.login-field span{color:var(--fg-mute);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}.login-field input{width:100%;padding:8px 10px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;font-size:13px;color:var(--fg)}.login-field input:focus{border-color:var(--accent-soft)}.login-error{padding:8px 10px;background:#d572721a;border:1px solid rgba(213,114,114,.3);border-radius:4px;color:var(--danger);font-size:11.5px}.login-back{text-align:center;color:var(--fg-mute);font-size:11px;margin-top:4px}.login-back:hover{color:var(--accent)}.img-slots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.img-slot{display:flex;flex-direction:column;gap:6px}.img-slot-head{display:flex;align-items:baseline;gap:8px;font-size:11px;color:var(--fg-soft)}.img-slot-label{font-weight:500;letter-spacing:.04em}.img-slot-ratio{color:var(--fg-mute);font-size:10px}.img-slot-clear{margin-left:auto;cursor:pointer;color:var(--fg-mute);font-size:16px;line-height:1;padding:0 4px}.img-slot-clear:hover{color:var(--danger)}.img-slot-frame{position:relative;width:100%;background:var(--bg-2);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 14px);border:1px dashed var(--line-2);border-radius:4px;overflow:hidden;cursor:pointer;transition:border-color .15s ease,background .15s ease}.img-slot-frame:hover{border-color:var(--line-3)}.img-slot-frame.is-drag{border-color:var(--accent);background:#f0d8a80a}.img-slot-frame.is-busy{opacity:.7;cursor:progress}.img-slot-frame img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;background:var(--bg)}.img-slot-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--fg-mute);font-size:11px;text-align:center;padding:16px}.img-slot-glyph{font-family:var(--serif);font-style:italic;font-size:28px;color:var(--fg-faint);line-height:1}.img-slot-hint{font-size:10.5px;color:var(--fg-mute);line-height:1.4}.img-slot-err{font-size:10.5px;color:var(--danger);padding:4px 8px;background:#d572721a;border-radius:3px}.img-slot-compact .img-slot-head{display:none}.gallery-divider{display:flex;flex-direction:column;gap:2px;padding:18px 0 8px;border-top:1px solid var(--line);margin-top:6px}.gallery-divider-label{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--fg)}.gallery-divider-hint{font-size:10.5px;color:var(--fg-mute)}.gallery-editor{display:flex;flex-direction:column;gap:12px}.gallery-section{background:var(--bg-1);border:1px solid var(--line);border-radius:4px;padding:10px;display:flex;flex-direction:column;gap:10px}.gallery-section-head{display:flex;align-items:center;gap:8px}.gallery-section-num{font-size:10.5px;color:var(--fg-mute);width:24px;text-align:center}.gallery-layout-select{flex:1;height:26px;padding:0 8px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;color:var(--fg);font-family:var(--mono);font-size:12px;cursor:pointer}.gallery-layout-select:hover{border-color:var(--line-3)}.gallery-section-actions{display:flex;gap:4px}.gallery-section-actions .btn{height:24px;padding:0 8px;font-size:12px}.gallery-grid{display:grid;gap:10px}.gallery-grid-1{grid-template-columns:1fr}.gallery-grid-2{grid-template-columns:1fr 1fr}.gallery-grid-3{grid-template-columns:1fr 1fr 1fr}@media (max-width: 1100px){.gallery-grid-3{grid-template-columns:1fr 1fr}}@media (max-width: 800px){.gallery-grid-2,.gallery-grid-3{grid-template-columns:1fr}}.gallery-item{display:flex;flex-direction:column;gap:6px;min-width:0}.gallery-caption-input{font-size:11.5px;padding:6px 8px}
