:root{
  --chrome:#FBFBF9; --panel:#F0F1EE; --canvas:#E9EBE6;
  --paper:#F6F7F4; --ink:#161D28; --muted:#5C6672; --blue:#2B5CC4;
  --blue-soft:#E4EAF7; --mark:#F5D547; --line:#D8DCD4; --white:#fff;
  --serif:'Charter','Iowan Old Style','Palatino',Georgia,serif;
  --mono:'Courier Prime','Courier New',Courier,monospace;
  --sans:-apple-system,'Segoe UI',system-ui,sans-serif;
}
html[data-theme="dark"]{
  --chrome:#171C24; --panel:#151A21; --canvas:#10141A;
  --paper:#12161C; --ink:#E4E8EF; --muted:#8B95A3; --blue:#6C96E8;
  --blue-soft:#22304A; --mark:#8A7A22; --line:#333B47; --white:#1B222C;
}
html[data-theme="dark"] .btn.primary,html[data-theme="dark"] .rbx.primary{color:#0E1218}
html[data-theme="dark"] .rbx.primary .rbx-lb{color:#0E1218}
html[data-theme="dark"] .pill{background:var(--ink);color:var(--paper)}
html[data-theme="dark"] .ed-page{box-shadow:0 1px 6px rgba(0,0,0,.5)}
html[data-theme="dark"] .nv-img{filter:brightness(.9)}
@media print{
  html[data-theme="dark"]{
    --chrome:#fff; --panel:#fff; --canvas:#fff; --paper:#fff; --ink:#161D28;
    --muted:#5C6672; --line:#D8DCD4; --white:#fff; --blue:#2B5CC4;
  }
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);
  font-size:17px;line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--blue)}
main{flex:1}

/* nav */
nav{display:flex;align-items:center;gap:1.4rem;padding:1rem 1.5rem;
  border-bottom:2px solid var(--ink);flex-wrap:wrap}
nav .brand{font-weight:700;font-size:1.25rem;color:var(--ink);text-decoration:none;letter-spacing:-.01em;
  display:flex;align-items:center;gap:.55rem}
nav .brand-stack{display:flex;flex-direction:column;line-height:1.02}
nav .brand-dot{color:var(--blue)}
nav .brand-by{font-size:.52rem;font-weight:400;font-style:italic;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);margin-top:2px}
nav .brandmark{height:34px;width:auto;display:block}
nav .links{display:flex;gap:1.1rem;align-items:center;margin-left:auto;flex-wrap:wrap}
nav a.nl{color:var(--ink);text-decoration:none;font-family:var(--mono);font-size:.78rem;
  letter-spacing:.1em;text-transform:uppercase}
nav a.nl:hover{color:var(--blue)}

.wrap{max-width:46rem;margin:0 auto;padding:2.5rem 1.5rem}
.legal{max-width:40rem}
.legal h1{font-size:2.1rem;margin:0 0 .3rem}
.legal h2{font-size:1.2rem;margin:2rem 0 .5rem;border-top:1px solid var(--line);padding-top:1.4rem}
.legal p,.legal li{font-size:1rem;line-height:1.65}
.legal ul{padding-left:1.3rem}
.legal li{margin:.4rem 0}
.legal code{font-family:var(--mono);font-size:.88em;background:var(--panel);padding:.05rem .3rem}
.foot-links a{color:var(--muted);text-decoration:none}
.foot-links a:hover{color:var(--blue)}
.wrap.wide{max-width:62rem}

/* buttons + forms */
.btn{display:inline-block;font-family:var(--mono);font-size:.8rem;letter-spacing:.1em;
  text-transform:uppercase;padding:.65rem 1.2rem;border:1.5px solid var(--ink);
  background:var(--white);color:var(--ink);cursor:pointer;text-decoration:none}
.btn:hover{background:var(--blue-soft)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:#2450A8}
.btn.small{padding:.35rem .7rem;font-size:.7rem}
.btn[disabled]{opacity:.5;cursor:default}
input[type=email],input[type=password],input[type=text],select{
  font-family:var(--serif);font-size:1rem;padding:.6rem .7rem;border:1.5px solid var(--ink);
  background:var(--white);width:100%}
label{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);display:block;margin:.9rem 0 .3rem}
.error{background:#FBE9E9;border:1px solid #B4453F;color:#7C2D28;padding:.7rem 1rem;
  font-size:.95rem;margin:1rem 0}
.notice{background:var(--blue-soft);border:1px solid var(--blue);padding:.7rem 1rem;
  font-size:.95rem;margin:1rem 0}

/* landing */
.hero{padding:4.5rem 1.5rem 3rem;max-width:52rem;margin:0 auto}
.hero-row{display:flex;gap:2.4rem;align-items:center}
.mascot-fig{flex-shrink:0;margin:0;background:var(--white);border:1.5px solid var(--ink);
  padding:.8rem .8rem .5rem;text-align:center}
.mascot-fig img{width:210px;height:210px;object-fit:contain;display:block}
.mascot-fig figcaption{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);
  margin-top:.6rem;padding-top:.45rem}
@media(max-width:720px){.hero-row{flex-direction:column-reverse;align-items:flex-start}
  .mascot-fig img{width:140px;height:140px}}
.brightline{font-size:1.5rem;font-weight:700;text-align:center;margin:1rem auto 2.2rem;
  letter-spacing:-.01em;text-wrap:balance}
.brightline span{display:block;font-size:1rem;font-weight:400;color:var(--muted);margin-top:.4rem}
.status{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.15rem .5rem;display:inline-block;margin-bottom:.5rem}
.status.live{background:var(--blue);color:#fff}
.status.soon{background:none;border:1px solid var(--muted);color:var(--muted)}
.hero .rule{border-top:2px solid var(--ink);margin-bottom:2rem}
.hero h1{font-size:clamp(2.6rem,7.5vw,4.2rem);line-height:1.02;margin:0 0 1.1rem;letter-spacing:-.018em}
.hero h1 em{font-style:normal;color:var(--blue)}
.hero p.lede{font-size:1.25rem;line-height:1.5;margin:0 0 1.8rem;text-wrap:balance}
.tag{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin:2rem 0}
.feature{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--blue);padding:1rem 1.1rem}
.feature h3{margin:.2rem 0 .4rem;font-size:1.05rem}
.feature p{font-size:.92rem;color:var(--muted);margin:0;line-height:1.5}
.feature .skarv{display:block;width:72%;max-width:230px;aspect-ratio:1;margin:.2rem auto .7rem;
  border-radius:50%;object-fit:cover;border:1px solid var(--line)}

/* sharing */
.role-chip{font-family:var(--mono);font-size:.64rem;letter-spacing:.07em;text-transform:uppercase;
  background:var(--blue);color:#fff;padding:.25rem .55rem;border-radius:999px;white-space:nowrap}
.sh-url{width:100%;font-family:var(--mono);font-size:.62rem;border:1px solid var(--line);
  background:var(--panel);padding:.15rem .3rem;margin-top:.2rem}

/* email capture (local until SentientMail) */
.capture{display:flex;gap:2rem;align-items:center;justify-content:space-between;flex-wrap:wrap;
  background:var(--white);border:1px solid var(--line);border-top:3px solid var(--blue);
  padding:1.4rem 1.6rem;margin:0 0 3rem}
.capture h3{margin:0 0 .3rem}
.capture p{margin:0;color:var(--muted);font-size:.92rem;max-width:46ch;line-height:1.5}
.capture-form{display:flex;gap:.5rem;flex-wrap:wrap;position:relative}
.capture-form input[type=email]{font:inherit;font-size:.92rem;padding:.5rem .7rem;min-width:230px;
  border:1px solid var(--line);background:var(--panel)}
.capture-form input[type=email]:focus{outline:none;border-color:var(--blue)}
.capture-done{font-size:.92rem;color:var(--ink);margin:0}
.foot-capture{display:flex;gap:1rem;align-items:center;justify-content:center;flex-wrap:wrap;
  border-top:1px solid var(--line);padding:1rem 1.5rem;font-size:.85rem;color:var(--muted)}
.foot-capture .capture-form.compact input[type=email]{padding:.32rem .55rem;font-size:.82rem;min-width:200px}

/* pricing */
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem;margin:2rem 0}
.tier{background:var(--white);border:1.5px solid var(--line);padding:1.3rem 1.3rem 1.5rem;display:flex;flex-direction:column}
.tier.hot{border-color:var(--blue);border-width:2px}
.tier .name{font-family:var(--mono);font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--blue)}
.tier .price{font-size:2.1rem;font-weight:700;margin:.3rem 0 .1rem}
.tier .per{font-size:.85rem;color:var(--muted)}
.tier ul{padding-left:1.1rem;margin:.9rem 0 1.2rem;font-size:.93rem;line-height:1.55;flex:1}
.tier form{margin:0}

/* dashboard */
.projrow{display:flex;align-items:center;gap:.8rem;background:var(--white);
  border:1px solid var(--line);padding:.8rem 1rem;margin:.5rem 0;flex-wrap:wrap}
.projrow .kind{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--white);background:var(--ink);padding:.15rem .5rem}
.projrow a.doc{margin-left:auto}
.quota{font-family:var(--mono);font-size:.75rem;color:var(--muted);letter-spacing:.08em}

/* editor chrome */
.savestate{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ed-toolbar{display:flex;align-items:center;gap:.7rem;padding:.55rem 1rem;flex-wrap:wrap;
  border-bottom:1px solid var(--line);background:var(--white);position:sticky;top:0;z-index:20}
.ed-title{border:none;background:transparent;font-family:var(--serif);font-size:1.15rem;
  font-weight:700;padding:.2rem 0;min-width:120px;flex:0 1 260px}
.ed-title:focus{outline:none;border-bottom:2px solid var(--blue)}
.ed-select{width:auto;font-family:var(--mono);font-size:.75rem;padding:.35rem .5rem;border:1.5px solid var(--ink)}
.ed-hint{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ed-actions{margin-left:auto;display:flex;gap:.5rem;align-items:center}
.ed-menu{position:relative}
.ed-menu-body{display:none;position:absolute;right:0;top:110%;background:var(--white);
  border:1.5px solid var(--ink);min-width:190px;z-index:30}
.ed-menu:hover .ed-menu-body,.ed-menu:focus-within .ed-menu-body{display:block}
.ed-menu-body button{display:block;width:100%;text-align:left;background:none;border:none;
  font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;padding:.55rem .8rem;cursor:pointer}
.ed-menu-body button:hover{background:var(--blue-soft)}

/* editor layout: navigator | canvas | punch list */
.ed-layout{display:grid;grid-template-columns:210px minmax(0,1fr) 330px;flex:1;min-height:0}
@media(max-width:1100px){.ed-layout{grid-template-columns:minmax(0,1fr) 330px}.ed-nav{display:none}}
@media(max-width:820px){.ed-layout{grid-template-columns:1fr}.punch{border-left:none;border-top:2px solid var(--ink)}}
.ed-nav{border-right:1px solid var(--line);padding:1rem .9rem;overflow-y:auto;background:var(--panel)}
.ed-nav h2{font-size:.8rem;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;
  font-weight:400;margin:0 0 .7rem;color:var(--muted)}
.ed-outline-item{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;
  font-family:var(--sans);font-size:.78rem;line-height:1.35;padding:.35rem .4rem;color:var(--ink);
  border-left:2px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-outline-item:hover{border-left-color:var(--blue);background:var(--white)}

.ed-canvas{overflow-y:auto;padding:2rem 1.2rem;background:var(--canvas)}
.ed-page{background:var(--white);max-width:52rem;margin:0 auto;min-height:70vh;
  box-shadow:0 1px 4px rgba(22,29,40,.12);border:1px solid var(--line);
  padding:3rem 3.2rem 4rem;
  transform:scale(var(--zoom,1));transform-origin:top center}
.ProseMirror{outline:none;min-height:60vh}
.ProseMirror p{margin:0}

/* toolbar v3 */
.ed-group{display:inline-flex;gap:2px}
.btn.tg.on{background:var(--ink);color:var(--paper)}

/* ribbon tab strip */
.ed-tabs{display:flex;gap:.2rem;padding:0 1rem;background:var(--chrome);border-bottom:1px solid var(--line)}
.ed-tab{font-family:var(--sans);font-size:.82rem;background:none;border:none;cursor:pointer;
  padding:.5rem .9rem .45rem;color:var(--muted);border-bottom:2.5px solid transparent}
.ed-tab:hover{color:var(--ink)}
.ed-tab.on{color:var(--ink);font-weight:600;border-bottom-color:var(--blue)}

/* ribbon panes */
.ed-ribbon{background:var(--chrome);border-bottom:1px solid var(--line)}
.rb-pane{display:flex;align-items:stretch;gap:.2rem;padding:.45rem 1rem;min-height:64px;
  flex-wrap:wrap}
.rb-pane[hidden]{display:none}
.ed-ribbon .ed-menu{display:inline-block}
.rb-col{flex-direction:column;justify-content:center;gap:3px;align-items:flex-start}
.rb-row{display:flex;gap:2px;align-items:center}
.rb-end{margin-left:auto;align-items:center}
.rb-hintline{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);padding-left:2px}
.rb-lblabel{font-family:var(--sans);font-size:.68rem;color:var(--muted)}
.rb-lbl{font-size:.78rem;margin-left:.3rem}

/* big labeled buttons (Word-style primary actions) */
.rbx{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;min-width:62px;padding:.45rem .6rem;background:none;border:1px solid transparent;
  border-radius:3px;cursor:pointer;color:var(--ink);font-family:var(--sans)}
.rbx:hover{border-color:var(--line);background:var(--white)}
.rbx .rbx-ic{display:block;height:20px}
.rbx .rbx-lb{font-size:.66rem;line-height:1.15;text-align:center;color:var(--ink)}
.rbx.primary{background:var(--blue);border-color:var(--blue)}
.rbx.primary,.rbx.primary .rbx-lb{color:#fff}
.rbx.primary:hover{background:#2450A8}
.rbx[disabled]{opacity:.55;cursor:default}
.rbx-check{cursor:pointer}
.rbx-check .rbx-lb{display:flex;gap:.3rem;align-items:center}
.rbx-menu{position:relative}
.rbx-menu .ed-menu-body{top:100%;left:0;right:auto}
.rb-group{display:inline-flex;gap:2px;align-items:center;padding:0 .65rem;
  border-right:1px solid var(--line)}
.rb-group:first-child{padding-left:0}
.rb-group:last-child,.rb-group.rb-end{border-right:none}
.rb{font-family:var(--sans);font-size:.85rem;min-width:1.9rem;height:1.9rem;
  padding:0 .4rem;border:1px solid transparent;background:none;cursor:pointer;
  color:var(--ink);line-height:1;display:inline-flex;align-items:center;
  justify-content:center;flex-direction:column;gap:1px;border-radius:2px}
.rb:hover{border-color:var(--line);background:var(--white)}
.rb.tg.on{background:var(--blue-soft);border-color:var(--blue)}
.rb svg{display:block}
.rb-arrow{font-size:.55rem;margin-left:.15rem}
mark{background:var(--mark)}

/* split buttons (Word pattern: main applies, caret opens swatch grid) */
.rb-split{display:inline-flex;position:relative}
.rb-split .rb-main{border-radius:2px 0 0 2px}
.rb-split .rb-caret{min-width:.95rem;padding:0 .1rem;font-size:.55rem;
  border-radius:0 2px 2px 0;border-left:none}
.rb-split .cbar{display:block;width:14px;height:3px;border-radius:1px}
.rb-split .ic-a{font-family:var(--serif);font-weight:700;font-size:.85rem;line-height:.9}
.swatch-grid{position:absolute;top:110%;left:0;z-index:50;background:var(--white);
  border:1px solid var(--ink);box-shadow:0 2px 8px rgba(22,29,40,.18);padding:.35rem;
  display:grid;grid-template-columns:repeat(5,20px);gap:4px;border-radius:2px}
.swatch-grid[hidden]{display:none}
.sw{width:20px;height:20px;border:1px solid rgba(22,29,40,.25);cursor:pointer;
  border-radius:2px;padding:0}
.sw:hover{outline:2px solid var(--blue);outline-offset:1px}
.sw-none{background:var(--white);font-family:var(--serif);font-weight:700;
  font-size:.7rem;color:var(--ink);display:flex;align-items:center;justify-content:center}

/* quick styles gallery (novel) */
.rb-styles{gap:3px}
.style-card{flex-direction:column;height:auto;padding:.25rem .55rem;gap:0}
.style-card .sc-prev{font-family:var(--serif);font-size:.95rem;line-height:1.1}
.style-card .sc-h1{font-weight:700;font-size:1.05rem}
.style-card .sc-h2{font-weight:700;font-size:.95rem}
.style-card .sc-h3{font-weight:700;font-style:italic;font-size:.9rem}
.style-card .sc-name{font-family:var(--sans);font-size:.55rem;color:var(--muted);
  letter-spacing:.04em;text-transform:uppercase}
.style-card.on{background:var(--blue-soft);border-color:var(--blue)}
.ed-check{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap}
.ed-menu-note{font-family:var(--sans);font-size:.75rem;color:var(--muted);padding:.5rem .8rem;margin:0}
.v-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;
  padding:.45rem .8rem;border-top:1px solid var(--line);font-family:var(--sans);font-size:.78rem}
.v-row small{color:var(--muted)}
#versions-menu{min-width:260px;max-height:320px;overflow-y:auto}

.ed-findbar{display:flex;align-items:center;gap:.45rem;padding:.45rem 1rem;flex-wrap:wrap;
  background:var(--blue-soft);border-bottom:1px solid var(--blue)}
.ed-findbar[hidden]{display:none}
.ed-findbar input[type=text]{width:180px;font-size:.9rem;padding:.35rem .5rem}

.ed-dialog{border:2px solid var(--ink);background:var(--paper);padding:1.4rem;max-width:26rem;width:90vw}
.ed-dialog::backdrop{background:rgba(22,29,40,.45)}
.ed-dialog h3{margin:0 0 .4rem}
.ed-dialog textarea{width:100%;font-family:var(--serif);font-size:1rem;padding:.5rem .6rem;
  border:1.5px solid var(--ink);background:var(--white)}

.ac-menu{position:fixed;z-index:60;background:var(--white);border:1.5px solid var(--ink);min-width:160px}
.ac-menu button{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;
  font-family:var(--mono);font-size:.78rem;padding:.4rem .7rem}
.ac-menu button.sel,.ac-menu button:hover{background:var(--blue-soft)}

.search-hit{background:var(--mark)}
.search-hit-cur{background:var(--blue);color:#fff}

.contd{color:var(--muted);user-select:none;pointer-events:none}
.cast-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;
  padding:.3rem 0;font-family:var(--mono);font-size:.75rem}
.cast-row select{width:55%;font-size:.8rem;padding:.25rem}
#cast{max-height:260px;overflow-y:auto;margin:.6rem 0}
.ins-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.85rem;margin:.4rem 0}
.ins-table td{padding:.3rem .5rem;border-bottom:1px solid var(--line)}
.ins-table td:last-child{text-align:right;color:var(--muted)}
#insights-body h4{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin:1.1rem 0 .2rem}

.scene-num{position:absolute;left:-3ch;color:var(--muted);font-family:var(--mono)}
.fmt-screenplay .sp-scene{position:relative}

/* outline board */
.ob-board{display:flex;flex-direction:column;gap:.7rem;margin:1.4rem 0}
.ob-card{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--blue);
  padding:.7rem .9rem;cursor:grab}
.ob-card.dragging{opacity:.4}
.ob-head{display:flex;align-items:center;gap:.5rem}
.ob-grip{color:var(--muted);cursor:grab}
.ob-status{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--ink);background:none;padding:.15rem .5rem;cursor:pointer}
.ob-status.st-draft{background:var(--mark)}
.ob-status.st-done{background:var(--blue);border-color:var(--blue);color:#fff}
.ob-del{margin-left:auto;border:none;background:none;font-size:1rem;color:var(--muted);cursor:pointer}
.ob-title{border:none;background:transparent;font-family:var(--serif);font-weight:700;
  font-size:1.05rem;width:100%;padding:.25rem 0}
.ob-title:focus{outline:none;border-bottom:2px solid var(--blue)}
.ob-syn{border:none;background:transparent;width:100%;font-family:var(--serif);font-size:.92rem;
  line-height:1.5;resize:vertical;min-height:2.4rem;color:var(--muted)}
.ob-syn:focus{outline:none;color:var(--ink)}

/* right-rail tabs */
.rail-tabs{display:flex;gap:0;margin:0 0 .9rem;border-bottom:2px solid var(--ink)}
.rail-tab{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  background:none;border:none;padding:.4rem .7rem;cursor:pointer;color:var(--muted)}
.rail-tab.on{color:var(--ink);background:var(--white);border:1px solid var(--ink);border-bottom:none}
#cmt-count{color:var(--blue);font-weight:700}
#chg-count{color:var(--blue);font-weight:700}

/* track changes — insertion/deletion marks in the canvas */
.tc-ins{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2px}
.tc-del{text-decoration:line-through;text-decoration-thickness:1.5px;opacity:.72}

/* changes rail */
.chg{border:1px solid var(--line);border-radius:6px;padding:.55rem .6rem;margin:0 0 .55rem;background:var(--white)}
.chg-pill{display:inline-block;font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;
  text-transform:uppercase;padding:.08rem .4rem;border-radius:3px;color:#fff;vertical-align:middle}
.chg-pill.insertion{background:#1F7A43}
.chg-pill.deletion{background:#B4453F}
.chg-author{font-family:var(--mono);font-size:.62rem;margin-left:.4rem;letter-spacing:.03em}
.chg-text{margin:.4rem 0 .5rem;font-size:.86rem;line-height:1.4;color:var(--ink);
  max-height:5.6em;overflow:auto;white-space:pre-wrap;word-break:break-word}
.chg-text.insertion{border-left:2px solid #1F7A43;padding-left:.5rem}
.chg-text.deletion{border-left:2px solid #B4453F;padding-left:.5rem;text-decoration:line-through;opacity:.75}
.chg .acts{display:flex;gap:.4rem}
.btn.small{font-size:.66rem;padding:.22rem .55rem}

/* comments */
.cm-comment{background:rgba(43,92,196,.14);border-bottom:2px solid var(--blue);cursor:pointer}
.finding.cmt .fq{background:none;border-bottom:2px solid var(--blue)}
.finding.flash{outline:2px solid var(--blue)}
.cmt-meta{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;color:var(--muted);margin:.35rem 0 .1rem}
.cmt-meta .cmt-when{margin-left:.5rem;opacity:.7}
.cmt-reply{margin:.45rem 0 0 .7rem;padding:.1rem 0 .1rem .6rem;border-left:2px solid var(--line)}
.cmt-replybox{display:flex;gap:.4rem;margin:.55rem 0 .2rem}
.cmt-replyinput{flex:1;min-width:0;font:inherit;font-size:.82rem;padding:.28rem .5rem;
  border:1px solid var(--line);border-radius:4px;background:var(--white)}
.cmt-replyinput:focus{outline:none;border-color:var(--blue)}
.cmt-resolved{margin-top:1rem}
.cmt-resolved>summary{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);cursor:pointer;margin-bottom:.6rem}
.finding.cmt.resolved{opacity:.65}

/* novel WP nodes */
.nv-img{max-width:100%;height:auto;display:block;margin:1rem auto}
.ProseMirror img.ProseMirror-selectednode{outline:2px solid var(--blue)}
.pg-break{border-top:2px dashed var(--muted);margin:1.6rem -1rem;text-align:right;
  user-select:none}
.pg-break span{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;color:var(--muted)}
.ProseMirror .fn{counter-increment:fnc}
.fmt-novel .ProseMirror{counter-reset:fnc}
.ProseMirror .fn::after{content:counter(fnc);vertical-align:super;font-size:.7em;
  color:var(--blue);font-weight:700;cursor:pointer;padding:0 1px}
.fmt-novel .ProseMirror table{border-collapse:collapse;width:100%;margin:1rem 0;table-layout:fixed}
.fmt-novel .ProseMirror td,.fmt-novel .ProseMirror th{border:1px solid var(--ink);
  padding:.4rem .6rem;vertical-align:top}
.fmt-novel .ProseMirror td p{text-indent:0;margin:0}
.fmt-novel .ProseMirror .selectedCell{background:var(--blue-soft)}

/* dual dialogue (screenplay) */
.fmt-screenplay .dd{display:flex;gap:2ch;margin:0 -6ch 1em 0}
.fmt-screenplay .dd-col{flex:1 1 0;min-width:0}
.fmt-screenplay .dd-col .sp-character{margin-left:6ch;max-width:none}
.fmt-screenplay .dd-col .sp-dialogue{margin-left:0;max-width:none}
.fmt-screenplay .dd-col .sp-paren{margin-left:3ch;max-width:none}

/* status bar */
.ed-status{display:flex;gap:1.2rem;align-items:center;padding:.35rem 1rem;
  border-top:1px solid var(--line);background:var(--chrome);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted)}
.ed-status button{background:none;border:none;color:var(--blue);cursor:pointer;
  font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:0}
.st-bar{display:inline-block;width:90px;height:6px;background:var(--line);
  vertical-align:1px;border-radius:3px;overflow:hidden}
.st-bar span{display:block;height:100%;background:var(--blue)}
.ed-status .st-right{margin-left:auto;color:var(--muted);text-transform:none;
  letter-spacing:.03em;max-width:38ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-status .st-right:hover{color:var(--blue)}

/* focus mode */
body.focus-mode nav,body.focus-mode footer,body.focus-mode .ed-toolbar,
body.focus-mode .ed-tabs,body.focus-mode .ed-ribbon,body.focus-mode .ed-findbar,
body.focus-mode .ed-nav,body.focus-mode .punch,body.focus-mode .ed-status{display:none!important}
body.focus-mode .ed-layout{display:block}
body.focus-mode .ed-canvas{height:100vh;padding-top:6vh}
#focus-pill{position:fixed;top:.8rem;right:1rem;z-index:80;font-family:var(--mono);
  font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  background:var(--chrome);border:1px solid var(--line);padding:.35rem .7rem;
  cursor:pointer;border-radius:3px;opacity:.75}
#focus-pill:hover{opacity:1}

.print-footnotes{display:none}
@media print{
  .print-footnotes{display:block;margin-top:2rem;border-top:1px solid #000;padding-top:.6rem}
  .print-footnotes h3{font-size:11pt}
  .print-footnotes ol{font-size:10pt}
  .pg-break{border:none;page-break-after:always;margin:0}
  .pg-break span{display:none}
}

/* codex (story bible) */
.cx-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:1.4rem 0}
.cx-detect-wrap{display:inline-flex;gap:.4rem;align-items:center;margin-left:auto}
.cx-kind{font-family:var(--mono);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);font-weight:400;border-bottom:1px solid var(--line);padding-bottom:.4rem;
  margin:1.8rem 0 .9rem;display:flex;align-items:baseline;gap:.5rem}
.cx-kind span{font-size:.7rem;color:var(--blue)}
.cx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem}
.cx-card{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--muted);
  padding:.8rem 1rem;cursor:pointer}
.cx-card:hover{border-left-color:var(--blue)}
.cx-card.kind-character{border-left-color:var(--blue)}
.cx-card.kind-location{border-left-color:#1F7A43}
.cx-card.kind-item{border-left-color:#8A6D1C}
.cx-card.kind-faction{border-left-color:#6B3FA0}
.cx-name{font-family:var(--serif);font-weight:700;font-size:1.08rem}
.cx-aliases{font-family:var(--mono);font-size:.66rem;color:var(--muted);letter-spacing:.04em;margin:.15rem 0}
.cx-summary{font-size:.9rem;line-height:1.45;margin:.4rem 0 0;color:var(--ink)}
.cx-fields{margin:.5rem 0 0;display:grid;grid-template-columns:auto 1fr;gap:.15rem .6rem;font-size:.82rem}
.cx-fields dt{font-family:var(--mono);font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);align-self:center}
.cx-fields dd{margin:0}
.cx-row{display:flex;gap:.8rem}
.cx-fieldrow{display:flex;gap:.4rem;margin-bottom:.35rem}
.cx-fieldrow .cx-flabel{flex:0 0 40%}
.cx-kindtag{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.1rem .4rem;border:1px solid var(--line);color:var(--muted)}
.cx-suggest{background:var(--blue-soft);border:1px solid var(--blue);padding:1rem 1.1rem;margin:1rem 0}
.cx-suggest-head{font-weight:700;margin-bottom:.7rem}
.cx-suggest-grid{display:grid;gap:.4rem;margin-bottom:.9rem;max-height:340px;overflow-y:auto}
.cx-sugg{display:grid;grid-template-columns:auto auto 1fr;gap:.5rem;align-items:center;
  background:var(--white);border:1px solid var(--line);padding:.4rem .6rem;font-size:.85rem}
.cx-sugg-name{font-weight:700}
.cx-sugg-sum{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-flash{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%) translateY(2rem);
  background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:.75rem;
  letter-spacing:.06em;padding:.6rem 1.1rem;opacity:0;transition:.25s;pointer-events:none;z-index:90}
.cx-flash.on{opacity:1;transform:translateX(-50%) translateY(0)}

.rail-tools{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.8rem}
.rail-kind{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:.8rem 0 .3rem}
/* codex rail tab + inline entity hover in editor */
.cx-rail-item{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;
  border-left:2px solid transparent;padding:.4rem .5rem;font-family:var(--sans)}
.cx-rail-item:hover{background:var(--white);border-left-color:var(--blue)}
.cx-rail-item .rn{font-weight:700;font-size:.85rem}
.cx-rail-item .rs{font-size:.75rem;color:var(--muted);display:block;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.cx-entity{border-bottom:1px dotted var(--blue);cursor:help}
.cx-hovercard{position:fixed;z-index:70;max-width:260px;background:var(--white);
  border:1px solid var(--ink);box-shadow:0 3px 12px rgba(22,29,40,.2);padding:.7rem .85rem;
  font-family:var(--sans);font-size:.85rem;line-height:1.45}
.cx-hovercard .hn{font-weight:700;font-family:var(--serif)}
.cx-hovercard .hk{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cx-hovercard dl{display:grid;grid-template-columns:auto 1fr;gap:.1rem .5rem;margin:.4rem 0 0;font-size:.78rem}
.cx-hovercard dt{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;color:var(--muted)}
.cx-hovercard dd{margin:0}

/* researcher */
.rq-form{display:flex;gap:.5rem;margin:1.4rem 0}
.rq-form input{flex:1}
.rn-note{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--blue);
  padding:.9rem 1.1rem;margin:.7rem 0}
.rn-q{font-weight:700;font-size:1.02rem}
.rn-ctx{font-family:var(--serif);font-size:.85rem;color:var(--muted);margin:.2rem 0}
.rn-a{margin:.5rem 0;line-height:1.6}
.rn-src{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.4rem}
.rn-src a{font-size:.78rem}
.rn-del{margin-top:.6rem}
.rs-ctx{font-family:var(--serif);font-size:.88rem;color:var(--muted);
  background:var(--panel);padding:.5rem .7rem;margin-bottom:.6rem}
.rs-answer{margin-top:.8rem;background:var(--panel);padding:.8rem 1rem;font-size:.92rem}
.rs-ans-body{line-height:1.6;white-space:pre-wrap}

/* print title page */
.print-titlepage{display:none}
@media print{
  .print-titlepage{display:block;page-break-after:always;height:90vh;position:relative;
    font-family:'Courier Prime','Courier New',Courier,monospace}
  .print-titlepage .tp-center{text-align:center;padding-top:30vh}
  .print-titlepage h1{font-size:14pt;font-weight:700;letter-spacing:.05em}
  .print-titlepage p{margin:.6em 0}
  .print-titlepage .tp-draft{margin-top:3em}
  .print-titlepage .tp-contact{position:absolute;bottom:0;left:0;font-size:11pt}
  .ac-menu,.ed-findbar,.ed-dialog{display:none!important}
}

/* novel typography */
.fmt-novel .ProseMirror{font-family:var(--doc-font,var(--serif));
  font-size:var(--doc-size,1.06rem);line-height:var(--doc-spacing,1.75)}
.fmt-novel .ProseMirror p{text-indent:1.6em;margin:0 0 .1rem}
.fmt-novel .ProseMirror h1,.fmt-novel .ProseMirror h2{text-indent:0;text-align:center;
  margin:2.2rem 0 1.4rem;font-size:1.35rem;letter-spacing:.02em}
.fmt-novel .ProseMirror h1 + p,.fmt-novel .ProseMirror h2 + p{text-indent:0}
.fmt-novel .ProseMirror blockquote{margin:1rem 2rem;color:var(--muted)}
.fmt-novel .ProseMirror ul,.fmt-novel .ProseMirror ol{margin:.6rem 0;padding-left:2.2rem}
.fmt-novel .ProseMirror li{margin:.2rem 0}
.fmt-novel .ProseMirror li p{text-indent:0}
.fmt-novel .ProseMirror h3{text-indent:0;font-size:1.1rem;margin:1.6rem 0 .8rem}
.nv-break{text-align:center;margin:1.4rem 0}
.nv-break hr{border:none}
.nv-break hr::before{content:"* * *";font-family:var(--serif);color:var(--muted)}

/* screenplay: Courier metrics, industry indents (ch units on a 61ch line) */
.fmt-screenplay .ed-page{max-width:calc(61ch + 6.4rem)}
.fmt-screenplay .ProseMirror{font-family:var(--mono);font-size:12pt;line-height:1.12}
.fmt-screenplay .ProseMirror p{margin:0 0 1em;white-space:pre-wrap}
.fmt-screenplay .sp-scene{text-transform:uppercase;font-weight:700;margin-top:1.6em}
.fmt-screenplay .sp-character{margin-left:20ch;margin-bottom:0;max-width:33ch;text-transform:uppercase}
.fmt-screenplay .sp-dialogue{margin-left:10ch;max-width:35ch;margin-bottom:1em}
.fmt-screenplay .sp-paren{margin-left:15ch;max-width:31ch;margin-bottom:0;font-style:italic}
.fmt-screenplay .sp-transition{text-align:right;text-transform:uppercase}
.page-break{border-top:1px dashed var(--blue);margin:1.6em -3.2rem 1.6em;position:relative;
  user-select:none;pointer-events:none}
.page-break span{position:absolute;right:.6rem;top:-1.5em;font-family:var(--mono);
  font-size:.6rem;letter-spacing:.12em;color:var(--blue)}

/* AV script rows */
.fmt-av .ProseMirror{font-family:var(--sans);font-size:.98rem;line-height:1.6}
.fmt-av .ProseMirror p{margin:0 0 .7rem;padding:.45rem .7rem}
.fmt-av .av-h{font-family:var(--mono);font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;
  border-bottom:2px solid var(--ink);padding:1.2rem 0 .3rem;margin:0 0 .8rem}
.fmt-av .av-vo{background:var(--white);border-left:3px solid var(--ink)}
.fmt-av .av-visual{background:var(--blue-soft);border-left:3px solid var(--blue);
  font-size:.88rem;color:#25406e}
.fmt-av .av-visual::before{content:"VISUAL · ";font-family:var(--mono);font-size:.62rem;
  letter-spacing:.1em;color:var(--blue)}

/* print / PDF */
@media print{
  nav,footer,.ed-toolbar,.ed-nav,.punch{display:none!important}
  .ed-layout{display:block}
  .ed-canvas{padding:0;background:#fff;overflow:visible}
  .ed-page{border:none;box-shadow:none;max-width:none;padding:0;min-height:0}
  .fmt-screenplay .ProseMirror{font-size:12pt}
  .page-break{border:none;page-break-before:always;margin:0}
  .page-break span{display:none}
  @page{margin:1in 1in 1in 1.5in}
}

/* punch list */
.punch{border-left:2px solid var(--ink);background:var(--panel);padding:1.2rem;overflow-y:auto}
.punch h2{font-size:1rem;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;
  font-weight:400;margin:0 0 1rem;color:var(--ink)}
.finding{background:var(--white);border:1px solid var(--line);padding:.9rem 1rem;margin:.7rem 0;
  font-family:var(--sans);font-size:.85rem;line-height:1.5}
.finding.resolved,.finding.dismissed{opacity:.45}
.finding .pill{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.14rem .5rem;background:var(--ink);color:var(--paper);display:inline-block;margin-bottom:.4rem}
.finding .pill.misleading{background:#8A6D1C}
.finding .fq{font-family:var(--serif);font-size:.95rem;
  background:linear-gradient(transparent 55%,var(--mark) 55%);display:inline}
.finding .fx{margin:.5rem 0 .3rem}
.finding.continuity{border-left:3px solid #6B3FA0}
.pill.continuity{background:#6B3FA0}
.finding .fq2{font-family:var(--serif);font-size:.9rem;margin:.35rem 0;color:var(--muted)}
.finding .fq2::first-line{color:var(--muted)}
.finding .src a{font-size:.75rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finding .acts{display:flex;gap:.4rem;margin-top:.6rem}
.punch .empty{font-family:var(--mono);font-size:.78rem;color:var(--muted);letter-spacing:.08em}
.spin{display:inline-block;width:.9em;height:.9em;border:2px solid var(--blue);
  border-top-color:transparent;border-radius:50%;animation:sp 0.8s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.spin{animation:none}}

footer{border-top:1px solid var(--line);padding:.8rem 1.5rem;display:flex;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted)}

/* lookbook */
.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.2rem;margin:1rem 0 3rem}
.lb-card{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--blue);overflow:hidden}
.lb-img{aspect-ratio:1;background:var(--panel);display:flex;align-items:center;justify-content:center}
.lb-img img{width:100%;height:100%;object-fit:cover}
.lb-empty{font-size:3rem;opacity:.35}
.lb-body{padding:.8rem .9rem 1rem}
.lb-body h3{margin:.25rem 0 .35rem;font-size:1.02rem}
.lb-body p{font-size:.84rem;color:var(--muted);margin:0 0 .5rem;line-height:1.45}
.lb-field{font-size:.78rem;margin:.15rem 0;color:var(--ink)}
.lb-field span{font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);margin-right:.4rem}
.lb-gen{margin-top:.5rem}

/* help */
.help-wrap{display:flex;gap:2.5rem;align-items:flex-start}
.help-toc{position:sticky;top:1.2rem;flex:0 0 180px;display:flex;flex-direction:column;gap:.35rem;
  border-left:2px solid var(--line);padding-left:1rem}
.help-toc a{font-size:.85rem;text-decoration:none;color:var(--muted)}
.help-toc a:hover{color:var(--blue)}
.help-body{flex:1;min-width:0;max-width:46rem}
.help-body h2{margin:2.4rem 0 .6rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:1.35rem}
.help-body table{border-collapse:collapse;margin:.8rem 0;background:var(--white);font-size:.92rem}
.help-body th,.help-body td{border:1px solid var(--line);padding:.4rem .8rem;text-align:left}
.help-body th{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);font-weight:400}
.help-body kbd{font-family:var(--mono);font-size:.8em;background:var(--panel);border:1px solid var(--line);
  border-radius:4px;padding:.05rem .35rem}
.help-body code{font-family:var(--mono);font-size:.86em;background:var(--panel);padding:.05rem .3rem}
.help-body li{margin:.35rem 0}
@media(max-width:760px){.help-wrap{flex-direction:column}.help-toc{position:static;flex-direction:row;
  flex-wrap:wrap;border-left:none;padding-left:0;gap:.7rem}}

/* studio sections + project cards */
.studio-section{margin:2.2rem 0 .8rem;font-size:1.05rem;border-top:1px solid var(--line);padding-top:1.2rem}
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem}
.proj-card{display:flex;flex-direction:column;gap:.3rem;background:var(--white);
  border:1px solid var(--line);border-top:3px solid var(--blue);padding:.9rem 1rem;
  text-decoration:none;color:var(--ink)}
.proj-card:hover{background:var(--blue-soft)}
.proj-card strong{font-size:1.02rem}
.proj-meta{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted)}

/* project binder */
.proj-titlerow{display:flex;gap:.6rem;align-items:center;margin:.2rem 0 1rem}
.proj-title{font-family:var(--serif);font-size:1.9rem;font-weight:700;border:1px solid transparent;
  background:none;padding:.1rem .3rem;width:auto;flex:1;min-width:0;color:var(--ink)}
.proj-title:hover,.proj-title:focus{border-color:var(--line);background:var(--white);outline:none}
.proj-staff{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.6rem}
.binder-group{margin:0 0 1.6rem}
.binder-folder{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:0 0 .5rem;border-bottom:1px solid var(--line);padding-bottom:.3rem}
.binder-row{display:flex;gap:.8rem;align-items:center;background:var(--white);
  border:1px solid var(--line);padding:.5rem .8rem;margin:0 0 .4rem}
.binder-n{font-family:var(--mono);font-size:.68rem;color:var(--muted);min-width:1.4rem;text-align:right}
.binder-doc{flex:1;min-width:0;text-decoration:none;color:var(--ink);font-size:1rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.binder-doc:hover{color:var(--blue)}
.binder-meta{font-family:var(--mono);font-size:.64rem;color:var(--muted)}
.binder-acts{display:flex;gap:.25rem}
.binder-acts .btn.small{padding:.15rem .45rem;font-size:.66rem}

/* binder storage location */
.binder-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.binder-main .binder-doc{flex:none}
.binder-loc{font-family:var(--mono);font-size:.62rem;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.binder-loc.warn{color:#8A6D1C}

/* Aristocratix parent-brand mark — shared sigil across the family of properties */
.aristocratix-mark-wrap{text-align:center;padding:14px 16px 24px;
  font-family:var(--serif);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.aristocratix-mark-wrap a.aristocratix-mark{color:inherit;text-decoration:none;border:none;
  display:inline-flex;align-items:center;gap:8px;transition:color .2s}
.aristocratix-mark-wrap a.aristocratix-mark:hover{color:#a08a4f}
.aristocratix-mark-wrap svg{opacity:.7;transition:opacity .2s}
.aristocratix-mark-wrap a.aristocratix-mark:hover svg{opacity:1}
