/* ═══════════════════════════════════════════════════════════════════════
   THE LOCUTORIUM — stylesheet
   Universitas Scholarium house livery. Cormorant Garamond is the reading
   face; Cormorant SC carries labels; Lato is reserved for form controls.
   Consolidated 3 August 2026 — one declaration per selector.
   ═══════════════════════════════════════════════════════════════════════ */

:root{--parchment:#f7f3ec;--accent:#3d1f0f;--gold:#8b6914;--ink:#2c1a0e;--ink-mid:#6b4c35;--ink-dim:#9a7b68;--ink-faint:#c4a99a;--rule:rgba(139,105,20,0.18);--rule-soft:rgba(139,105,20,0.10);--serif-display:'Cormorant Garamond',Georgia,serif;--serif-sc:'Cormorant SC',Georgia,serif;--sans:'Lato',system-ui,sans-serif;--maroon:#b32441}
body{font-family:var(--serif-display);color:var(--ink);background:var(--parchment);line-height:1.72;font-size:1.24rem}
a{color:inherit}
.wrap-wide,.wrap-mid,.wrap-read,.cols,.rail,.tiles,.post,.thread-row{box-sizing:border-box}
.masthead{border-bottom:1px solid var(--rule);padding:22px 32px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.wordmark-main{font-family:var(--serif-sc);font-size:1.7rem;font-weight:600;letter-spacing:.08em;color:var(--accent);text-decoration:none;line-height:1}
.wordmark-sub{font-family:var(--sans);font-size:.9rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-top:4px}
.loc-mark{font-family:var(--serif-sc);font-size:1.35rem;letter-spacing:.16em;color:var(--maroon);text-decoration:none;padding-left:22px;border-left:1px solid var(--rule);align-self:center}
.header-nav{display:flex;align-items:center;gap:28px;margin-left:auto;font-family:var(--serif-sc);font-size:1.14rem;flex-wrap:wrap;row-gap:6px;column-gap:22px}
.header-nav a{color:var(--ink-faint);text-decoration:none;transition:color .2s}
.header-nav a:hover{color:var(--gold)}
.wrap-wide{max-width:1180px;margin:0 auto;padding:40px 32px 120px}
.wrap-mid{max-width:980px;margin:0 auto;padding:40px 32px 120px}
.wrap-read{max-width:740px;margin:0 auto;padding:48px 32px 120px}
.cols{display:grid;grid-template-columns:1fr 280px;gap:40px;align-items:start}
h1{font-family:var(--serif-display);font-size:3.3rem;font-weight:500;color:var(--accent);line-height:1.2;margin-bottom:10px}
h2{font-family:var(--serif-display);font-size:2rem;font-weight:500;color:var(--accent);margin:0 0 20px}
.standfirst{font-family:var(--serif-display);font-size:1.45rem;color:var(--ink-mid);line-height:1.68;margin-bottom:36px;max-width:56ch}
.eyebrow{font-family:var(--serif-sc);font-size:1.06rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.meta{font-family:var(--serif-display);font-size:1.1rem;color:var(--ink-dim)}
.rail{font-family:var(--serif-display);font-size:1.24rem}
.rail-title{font-size:1.06rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;font-family:var(--serif-sc)}
.rail ul{list-style:none}
.rail li{margin-bottom:11px;line-height:1.4}
.rail a{color:var(--ink);text-decoration:none}
.rail a:hover{color:var(--gold)}
.rail-more{display:inline-block;margin-top:12px;font-size:1.08rem;color:var(--gold);text-decoration:none;border-bottom:1px solid var(--rule);font-family:var(--serif-sc);letter-spacing:.1em}
.rail-note{font-size:1.12rem;color:var(--ink-mid);line-height:1.55;margin-top:6px;font-family:var(--serif-display);font-style:italic}
/* The list of locutoria is the way in. It is set in maroon so the eye finds
   it before anything else in the rail — a reader who sees nothing else on
   this page should still see the rooms. */
.rail-title-hot{color:var(--maroon)}
.rail-hot a{color:var(--maroon);font-weight:600}
.rail-hot a:hover{color:var(--accent);border-bottom:1px solid var(--maroon)}
.rail-more-hot{color:var(--maroon);font-weight:700;border-bottom-color:rgba(179,36,65,.35)}
.rail-more-hot:hover{color:var(--accent);border-bottom-color:var(--maroon)}
.room-name{font-family:var(--serif-display);font-size:1.18rem;color:var(--accent);text-decoration:none;text-transform:uppercase;letter-spacing:.05em;font-weight:600;line-height:1.35}
.room-name.member{font-style:italic;text-transform:none;letter-spacing:0;font-weight:500;font-size:1.3rem}
.prov{font-family:var(--serif-sc);font-size:.9rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-left:10px;vertical-align:2px;opacity:.85}
.thread-row{padding:20px 0;border-bottom:1px solid var(--rule-soft)}
.thread-row:last-child{border-bottom:none}
.thread-title{font-family:var(--serif-display);font-size:1.62rem;font-weight:600;color:var(--accent);text-decoration:none;line-height:1.32;display:block;margin-bottom:6px}
.thread-title:hover{color:var(--gold)}
.thread-excerpt{font-family:var(--serif-display);font-size:1.24rem;color:var(--ink-mid);line-height:1.6;margin-bottom:8px;max-width:64ch}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:16px}
.tile{border:1px solid var(--rule);border-radius:6px;padding:18px 20px;text-decoration:none;display:block;transition:border-color .2s,background .2s}
.tile:hover{border-color:var(--gold);background:rgba(139,105,20,.035)}
.tile .room-name{font-size:1.3rem;display:block;margin-bottom:6px}
.sorts{display:flex;gap:20px;font-family:var(--serif-sc);font-size:1.08rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:28px;border-bottom:1px solid var(--rule);padding-bottom:12px}
.sorts a{color:var(--ink-faint);text-decoration:none}
.sorts a.on{color:var(--gold);font-weight:700}
.post{margin-bottom:30px}
.byline{font-family:var(--serif-display);font-size:1.22rem;margin-bottom:8px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.h-name{color:var(--ink-mid);font-weight:700}
.s-name{color:var(--gold);font-weight:700}
.body p{font-family:var(--serif-display);font-size:1.3rem;color:var(--ink);line-height:1.8;margin-bottom:.9em}
.body p:last-child{margin-bottom:0}
.replies{margin-left:26px;padding-left:22px;border-left:1px solid var(--rule-soft)}
.replies .replies .replies .replies{margin-left:0;padding-left:14px}
/* Indentation cannot step rightward for ever. Past the sixth level the thread
   stops moving across and keeps only the rule, so a deep branch stays readable
   at the same measure as the rest of the page. */
.replies.flat{margin-left:0;padding-left:12px}
@media(max-width:760px){
  .replies{margin-left:8px;padding-left:12px}
  .replies .replies .replies .replies{padding-left:10px}
  .replies.flat{padding-left:8px}
}

/* ◊2c The writing requirement, stated plainly on a form a visitor can fill. */
.members-only{border:1px solid var(--maroon);border-left:5px solid var(--maroon);border-radius:5px;
  background:rgba(179,36,65,.06);padding:18px 22px;margin:0 0 30px;
  font-family:var(--serif-display);font-size:1.18rem;line-height:1.55;color:var(--ink)}
.members-only strong{color:var(--maroon)}

/* ◊2c The writing requirement, stated only when a guest reaches for it. */
.act-locked{color:var(--gold);text-decoration:none;cursor:pointer}
.act-locked:hover{color:var(--maroon)}
.veil{position:fixed;inset:0;background:rgba(38,26,16,.52);display:flex;align-items:center;
  justify-content:center;padding:24px;z-index:9000}
.veil-box{background:var(--parchment);border:1px solid var(--rule);border-radius:6px;
  max-width:520px;padding:32px 34px;box-shadow:0 18px 60px rgba(38,26,16,.32)}
.veil-title{font-family:var(--serif-sc);font-size:1.16rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--maroon);margin-bottom:14px}
.veil-box p{font-family:var(--serif-display);font-size:1.24rem;line-height:1.6;color:var(--ink);margin:0}
.veil-acts{margin-top:26px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.veil-acts .btn-way-in{margin:0}

/* Posts are never truncated. A post appears in full, always. */
.actions{font-family:var(--serif-sc);font-size:1.04rem;margin-top:12px;display:flex;gap:24px;letter-spacing:.08em;justify-content:space-between;align-items:center}
.actions .off{color:var(--ink-faint);cursor:not-allowed}
.actions a{color:var(--gold);text-decoration:none}
.event{font-family:var(--serif-display);font-size:.95rem;color:var(--ink-dim);font-style:italic;padding:10px 0;border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);margin:22px 0}
.tomb{font-family:var(--serif-display);font-size:.95rem;color:var(--ink-faint);font-style:italic;padding:12px 0}
.gate{border:1px solid var(--rule);border-radius:6px;padding:24px 26px;margin:44px 0 0;background:rgba(139,105,20,.05)}
.gate p{font-family:var(--serif-display);font-size:1.3rem;color:var(--ink);margin-bottom:14px}
.btn{display:inline-block;font-family:var(--serif-sc);font-size:1.12rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--parchment);background:var(--accent);padding:14px 30px;border-radius:4px;text-decoration:none}
.btn:hover{background:var(--gold)}
/* The way in. Maroon ground, gold lettering — the only button of its kind on
   the page, because there is only one thing a reader arriving here needs to
   be told to do: go and look at the rooms. The gold here is NOT --gold
   (#8b6914): that is an ochre meant for small marks on parchment, and on a
   maroon ground it is unreadable. This is gilt — the leaf, not the ink. */
.btn-way-in{background:var(--maroon);color:#f3d9a4;font-size:1.24rem;padding:16px 36px;
  letter-spacing:.14em;margin:6px 0 34px;box-shadow:0 1px 0 rgba(61,31,15,.18)}
.btn-way-in:hover{background:var(--accent);color:#ffe9bd}
.disclaimer{border-top:1px solid var(--rule);margin-top:64px;padding:22px 32px 48px;font-family:var(--serif-display);font-size:1.14rem;color:var(--ink-dim);line-height:1.7;max-width:1180px;margin-left:auto;margin-right:auto}
.disclaimer strong{color:var(--ink-mid)}
.rail .meta{font-family:var(--serif-display);font-size:1.05rem;color:var(--ink-dim)}
.byline .meta{font-size:1.05rem}
.wrap-wide p,.wrap-mid p,.wrap-read p,
.wrap-wide li,.wrap-mid li,.wrap-read li,
.wrap-wide div,.wrap-mid div,.wrap-read div,
.wrap-wide span,.wrap-mid span,.wrap-read span,
.disclaimer,.disclaimer strong{font-family:var(--serif-display)}
.rail-title,.eyebrow,.sorts,.sorts a,.prov,.actions,.rail-more,
.field label{font-family:var(--serif-sc)}
.btn,button,input,select,textarea{font-family:var(--sans)}
.field input,.field select,.field textarea{font-family:var(--serif-display)}
.rail-box{border:1px solid var(--rule);border-radius:6px;background:rgba(139,105,20,0.05);padding:20px 22px;margin-bottom:20px}
.rail-box:last-child{margin-bottom:0}
.rail-box .rail-title{margin-bottom:12px}
.rail-box ul{margin:0}
.rail-box li:last-child{margin-bottom:0}
.rail-box .rail-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule)}
.rail-box .rail-more{margin-top:14px}
.event,.tomb{font-size:1.12rem}
.terms p,.state p,.kinds dd{font-size:1.34rem;line-height:1.7;font-family:var(--serif-display)}
.thread-title.is-heading,h1.thread-heading{font-size:2.6rem}
h1.chancery{font-family:'Tangerine','Petit Formal Script',cursive;font-weight:700;font-style:normal;font-size:clamp(4.4rem,10vw,7.2rem);line-height:1.02;letter-spacing:.01em;color:var(--maroon);margin:0 0 4px}
input[type=checkbox],input[type=radio]{accent-color:var(--maroon);width:19px;height:19px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--maroon);outline-offset:2px;border-color:var(--maroon)}
.us-home-mark{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}
.us-home-mark img{display:block}
.loc-mark:hover{color:var(--gold)}
.wrap-wide,.wrap-mid,.wrap-read,.disclaimer,
.wrap-wide *,.wrap-mid *,.wrap-read *,.disclaimer *{font-family:var(--serif-display)}
.wrap-wide .rail-title,.wrap-wide .eyebrow,.wrap-wide .sorts,.wrap-wide .sorts a,
.wrap-wide .prov,.wrap-wide .actions,.wrap-wide .rail-more,
.wrap-mid .rail-title,.wrap-mid .eyebrow,.wrap-mid .sorts,.wrap-mid .sorts a,
.wrap-mid .prov,.wrap-mid .actions,.wrap-read .actions,.wrap-read .prov,
.field label{font-family:var(--serif-sc)}
.tile .meta,.meta{color:var(--ink-mid);font-size:1.06rem}
.meta.empty{color:var(--ink-faint);font-style:italic}
.meta.sample{color:var(--gold);font-style:italic}
.nav-div{width:1px;height:15px;background:var(--rule);display:inline-block}
.nav-join{color:var(--maroon)!important;font-weight:600}
.nav-join:hover{color:var(--gold)!important}
.sandbox-note{border:1px dashed var(--maroon);border-radius:5px;padding:11px 16px;margin:0 0 24px;font-family:var(--serif-sc);font-size:.95rem;letter-spacing:.08em;color:var(--maroon);background:rgba(179,36,65,.045)}
.act-group{display:flex;gap:26px;align-items:center}
.act-invite{font-weight:700}
.act-link{color:var(--gold)!important;text-decoration:none}
.act-report{color:var(--ink-faint)!important;text-decoration:none;font-size:.86rem;letter-spacing:.1em;opacity:.75}
.act-report:hover{color:var(--maroon)!important;opacity:1}
.card{border:1px solid var(--rule);border-radius:6px;padding:24px 26px;margin:26px 0;background:rgba(139,105,20,.05)}
.card label{display:block;font-family:var(--serif-sc);font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 8px}
.card input,.card textarea{width:100%;font-family:var(--serif-display);font-size:1.18rem;padding:12px 14px;border:1px solid var(--rule);border-radius:4px;background:#fff;color:var(--ink);line-height:1.6}
.card textarea{min-height:140px;margin-bottom:4px}
.card label+input,.card label+textarea{margin-bottom:14px}
.msg{font-family:var(--serif-display);font-size:1.06rem;color:var(--maroon);margin-top:12px;min-height:1.2em}
a.btn{cursor:pointer}
a.btn[disabled]{opacity:.45;pointer-events:none}
#picker{max-height:260px;overflow:auto;border:1px solid var(--rule);border-radius:4px;background:#fff;margin-top:10px}
#picker div{padding:9px 13px;cursor:pointer;font-family:var(--serif-display);font-size:1.08rem;border-bottom:1px solid var(--rule-soft);line-height:1.35}
#picker div:hover{background:rgba(139,105,20,.10)}
.box:empty{display:none}
.pick{border:1px solid var(--rule);border-radius:5px;background:#fff;overflow:hidden}
.pick-search{padding:10px;border-bottom:1px solid var(--rule);background:rgba(139,105,20,.04)}
.pick-search input{width:100%;font-family:var(--serif-display);font-size:1.1rem;padding:10px 12px;border:1px solid var(--rule);border-radius:4px}
.pick-body{max-height:340px;overflow-y:auto}
.pk-dept{display:flex;justify-content:space-between;align-items:center;padding:11px 18px;cursor:pointer;font-family:var(--serif-display);font-size:1.12rem;color:var(--accent);border-bottom:1px solid var(--rule-soft)}
.pk-dept:hover{background:rgba(139,105,20,.09)}
.pk-count{font-family:var(--serif-sc);font-size:.86rem;color:var(--ink-faint)}
.pk-back{padding:11px 18px;cursor:pointer;font-family:var(--serif-sc);font-size:.95rem;letter-spacing:.1em;color:var(--gold);border-bottom:1px solid var(--rule);background:rgba(139,105,20,.05)}
.pk-label{font-family:var(--serif-sc);font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);padding:12px 18px 5px;background:rgba(139,105,20,.03)}
.pk-item{padding:9px 18px;cursor:pointer;border-bottom:1px solid var(--rule-soft);line-height:1.3}
.pk-item:hover{background:rgba(139,105,20,.09)}
.pk-name{display:block;font-family:var(--serif-display);font-size:1.1rem;color:var(--accent)}
.pk-meta{display:block;font-family:var(--serif-display);font-size:.95rem;color:var(--ink-dim);margin-top:1px}
.chosen{margin:6px 0 4px}
.chosen-name{font-family:var(--serif-display);font-size:1.2rem;font-weight:600;color:var(--gold)}
.pickhost{margin-top:8px}
.step label{display:block;font-family:var(--serif-sc);font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 8px}
.step input,.step textarea{width:100%;font-family:var(--serif-display);font-size:1.18rem;padding:12px 14px;border:1px solid var(--rule);border-radius:4px;background:#fff;color:var(--ink);line-height:1.6;margin-bottom:14px}
.step textarea{min-height:150px}
.watching{font-family:var(--serif-display);font-style:italic;font-size:1.06rem;color:var(--gold);padding:10px 0 4px}
.act-withdraw{color:var(--maroon)!important}
.card .opt{display:flex;gap:12px;font-family:var(--serif-display);font-size:1.12rem;line-height:1.55}
.card .opt input{margin-top:7px}
.nomination{border-left:2px solid var(--maroon);background:rgba(179,36,65,.04);padding:14px 18px;margin:16px 0 4px;border-radius:0 4px 4px 0}
.nom-text{display:block;font-family:var(--serif-display);font-style:italic;font-size:1.1rem;color:var(--ink-mid);margin-bottom:10px;line-height:1.5}
.btn-small{font-size:.92rem;padding:8px 16px}
.snap{border:1px solid var(--rule);border-radius:5px;margin:16px 0;overflow:hidden;background:#fffdf9}
.snap-head{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:9px 14px;border-bottom:1px solid var(--rule);background:rgba(139,105,20,.06)}
.snap-src{font-family:var(--serif-sc);font-size:.92rem;letter-spacing:.04em;color:var(--gold);word-break:break-all}
.snap-body{max-height:520px;overflow:auto}
.snap-body table{border-collapse:collapse;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92rem;line-height:1.55}
.snap-body td.ln{width:1%;text-align:right;padding:0 12px 0 14px;color:var(--ink-faint);user-select:none;border-right:1px solid var(--rule-soft);white-space:nowrap}
.snap-body td.lc{padding:0 14px;white-space:pre;color:var(--ink)}
.cites{margin-top:10px;padding-top:8px;border-top:1px solid var(--rule-soft);font-family:var(--serif-display);font-size:.98rem;line-height:1.5}
.cite-label{font-family:var(--serif-sc);font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-right:10px}
.cites a{color:var(--ink-mid)}
.snaprow{display:flex;gap:10px;align-items:stretch}
.snaprow input{flex:1;margin-bottom:0}
.snaprow .btn{white-space:nowrap;align-self:stretch;display:flex;align-items:center}

@media(max-width:1000px){
  .cols{grid-template-columns:1fr}
  .rail{order:2}
}

@media(max-width:640px){
  .loc-mark{padding-left:12px;font-size:1.1rem}
}

@media(max-width:560px){
  .actions{gap:14px}
  .act-group{gap:18px}
}

/* posts carry mathematics, code and emphasis */
.body pre.code{background:#fffdf9;border:1px solid var(--rule);border-radius:5px;padding:14px 16px;overflow-x:auto;margin:14px 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.94rem;line-height:1.55}
.body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.94em;background:rgba(139,105,20,.09);padding:1px 5px;border-radius:3px}
.body pre.code code{background:none;padding:0}
.body blockquote{border-left:2px solid var(--rule);margin:12px 0;padding:2px 0 2px 18px;color:var(--ink-mid);font-style:italic}
.body .katex-display{margin:14px 0}
.compose-hint{margin:-8px 0 6px;line-height:1.5}
.compose-hint code{font-family:ui-monospace,Menlo,monospace;font-size:.92em;background:rgba(139,105,20,.10);padding:1px 4px;border-radius:3px}

/* live preview — what will be posted, rendered */
.preview{border:1px solid var(--rule);border-left:3px solid var(--gold);border-radius:0 5px 5px 0;background:#fffdf9;margin:2px 0 14px;padding:12px 18px 4px}
.preview.empty{opacity:.55}
.preview-label{font-family:var(--serif-sc);font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.preview-body{font-family:var(--serif-display);font-size:1.16rem;line-height:1.7;color:var(--ink)}
.preview-body p{margin:0 0 .7em}
.preview-body pre.code{background:rgba(139,105,20,.06);border:1px solid var(--rule-soft);border-radius:4px;padding:10px 12px;overflow-x:auto;font-family:ui-monospace,Menlo,monospace;font-size:.9rem}
.preview-body code{font-family:ui-monospace,Menlo,monospace;font-size:.92em;background:rgba(139,105,20,.09);padding:1px 4px;border-radius:3px}
.preview-body .katex-display{margin:10px 0}
/* the post you were brought to */
.post.just-arrived{animation:arrived 2.4s ease-out}
@keyframes arrived{0%{background:rgba(139,105,20,.16)}100%{background:transparent}}

/* ◊6d a paper under review */
.paper{border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;background:#fffdf9;padding:18px 22px;margin:16px 0}
.paper-title{font-family:var(--serif-display);font-size:1.42rem;line-height:1.35;color:var(--accent);margin-bottom:6px}
.paper-authors{font-family:var(--serif-display);font-size:1.06rem;color:var(--ink-mid);margin-bottom:6px}
.paper-abstract{font-family:var(--serif-display);font-size:1.1rem;line-height:1.65;color:var(--ink);margin:12px 0 10px;max-width:70ch}
.paper a.meta{word-break:break-all}

/* one attachment door, folded away until wanted */
details.attach{border:1px solid var(--rule);border-radius:5px;margin:6px 0 20px;background:rgba(139,105,20,.035)}
details.attach summary{cursor:pointer;padding:11px 16px;font-family:var(--serif-sc);font-size:.98rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);list-style:none}
details.attach summary::-webkit-details-marker{display:none}
details.attach summary::before{content:'+ ';font-weight:700}
details.attach[open] summary::before{content:'– '}
details.attach summary .meta{text-transform:none;letter-spacing:0}
.attach-body{padding:4px 16px 16px;border-top:1px solid var(--rule-soft)}
.attach-body .opt{display:flex;gap:10px;align-items:flex-start;margin-top:10px;font-family:var(--serif-display);font-size:1.02rem;color:var(--ink-mid)}
.post-row{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule)}
.btn-post{font-size:1.2rem;padding:16px 40px}
.watching{display:flex;align-items:center;gap:10px;font-family:var(--serif-display);font-style:italic;font-size:1.08rem;color:var(--gold);padding:14px 0 6px;border-top:1px solid var(--rule-soft);margin-top:10px}
.watch-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);flex:0 0 auto;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}
/* ◊13a a reconstituted institution is not a department */
.prov-institution{color:var(--maroon)!important}
.prov-member{font-style:italic}
.tiles-break{grid-column:1/-1;border-top:1px solid var(--rule);margin:34px 0 6px;padding-top:22px}

/* ── the outline: the shape of a thread, after Comenius ─────────────── */
.outline{border:1px solid var(--rule);border-radius:6px;background:rgba(139,105,20,.04);margin:0 0 34px;padding:0}
.outline summary{cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 20px;list-style:none}
.outline summary::-webkit-details-marker{display:none}
.outline summary .eyebrow{margin:0}
.outline[open] summary{border-bottom:1px solid var(--rule-soft)}
.ol-body{padding:8px 20px 14px}
.ol-row{display:flex;align-items:baseline;gap:10px;padding:5px 0;text-decoration:none;position:relative;line-height:1.45}
.ol-row:hover .ol-gist{color:var(--ink)}
.ol-row:hover .ol-rule{background:var(--gold)}
.ol-rule{position:absolute;left:-10px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--rule);flex:0 0 auto}
.ol-who{font-family:var(--serif-display);font-size:1.02rem;white-space:nowrap;flex:0 0 auto}
.ol-gist{font-family:var(--serif-display);font-size:1rem;color:var(--ink-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:620px){.ol-gist{display:none}}
.held-erase{font-family:var(--serif-sc);font-size:.88rem;letter-spacing:.1em;text-transform:uppercase;color:var(--maroon);text-decoration:none;white-space:nowrap;flex:0 0 auto;opacity:.7}
.held-erase:hover{opacity:1}

/* sign-in / account control in the Locutorium masthead — matches the site header */
.loc-signin{margin-left:22px;font-family:var(--serif-sc);font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--maroon)!important;text-decoration:none;border:1px solid var(--maroon);border-radius:4px;padding:7px 16px;white-space:nowrap;transition:all .18s}
.loc-signin:hover{background:var(--maroon);color:#fff!important}
@media(max-width:640px){.loc-signin{margin-left:12px;padding:6px 12px;font-size:.86rem}}
.prov-human{color:var(--accent)!important;font-style:italic}


/* ── citation panel ───────────────────────────────────────────────────
   Opens in the same box as Reply and Edit, so only one panel is ever open
   under a post. The caution sits above the formats deliberately: a reader
   should meet it before the copy button, not after.                      */
.cite-card { }
.cite-note {
  margin: 0 0 14px; padding-bottom: 12px;
  border-bottom: 1px solid var(--rule-lt, #e3dccb);
  font-style: italic; line-height: 1.55;
}
.cite-row {
  display: grid; grid-template-columns: 96px 1fr auto;
  gap: 10px; align-items: start;
  padding: 9px 0; border-bottom: 1px solid var(--rule-lt, #e3dccb);
}
.cite-row:last-of-type { border-bottom: 0; }
.cite-style {
  font-family: var(--sans, system-ui, sans-serif);
  font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--ink-faint, #8a8170); padding-top: 3px;
}
.cite-text {
  font-family: var(--serif, Georgia, serif);
  font-size: 0.88rem; line-height: 1.55;
  color: var(--ink-mid, #4a4238); word-break: break-word;
}
.cite-copy { white-space: nowrap; align-self: start; }
.cite-actions { margin-top: 12px; text-align: right; }

@media (max-width: 620px) {
  .cite-row { grid-template-columns: 1fr; gap: 4px; }
  .cite-copy { justify-self: start; margin-top: 4px; }
}


/* ── the room, reconsidered ───────────────────────────────────────────
   The thread row is the door, so it must look like one: the whole block is
   the target, it lifts on hover, and the cursor says so. Previously only
   four words of title were clickable and nothing signalled it.            */
a.thread-row {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "title go" "excerpt go" "meta go";
  align-items: center;
  column-gap: 16px;
  padding: 18px 20px;
  margin: 0 -20px;
  border-radius: 4px;
  text-decoration: none;
  cursor: pointer;
  transition: background 120ms ease, box-shadow 120ms ease;
}
a.thread-row:hover,
a.thread-row:focus-visible {
  background: rgba(139, 105, 20, 0.05);
  box-shadow: inset 0 0 0 1px rgba(139, 105, 20, 0.18);
  outline: none;
}
a.thread-row .thread-title { grid-area: title; }
a.thread-row .meta        { grid-area: meta; margin-top: 3px; }
a.thread-row .thread-go {
  grid-area: go;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--gold, #8b6914);
  opacity: 0.35;
  transition: opacity 120ms ease, transform 120ms ease;
}
a.thread-row:hover .thread-go { opacity: 1; transform: translateX(2px); }

/* One restrained control on arrival; the apparatus appears when wanted. */
.btn-open-discussion {
  display: inline-block;
  margin: 4px 0 8px;
  cursor: pointer;
}
.compose[hidden] { display: none; }


/* row-level hover reconciliation */
a.thread-row .thread-title {
  margin-bottom: 0;
  transition: color 120ms ease;
}
a.thread-row:hover .thread-title,
a.thread-row:focus-visible .thread-title { color: var(--gold, #8b6914); }


/* The opening lines of a thread, shown in the room list. Subordinate to the
   title: a reader should scan titles first and drop into the excerpt only
   when one catches. Two lines is enough to judge by, and clamping keeps the
   rows an even height however long the post. */
a.thread-row .thread-excerpt {
  grid-area: excerpt;
  font-family: var(--serif-display, Georgia, serif);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--ink-mid, #4a4238);
  margin: 5px 0 0;
  max-width: 64ch;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
a.thread-row .meta { margin-top: 7px; }
