:root {
  color-scheme: dark;
  --night: #07110f;
  --night-raised: #0d1a16;
  --panel: #12231d;
  --panel-soft: #172b24;
  --line: rgba(180, 155, 92, .25);
  --line-bright: rgba(215, 187, 111, .5);
  --ivory: #f2ead7;
  --mist: #b8c3bb;
  --muted: #8d9d94;
  --gold: #c6a45c;
  --gold-pale: #e4ce93;
  --green: #5f9c78;
  --danger: #dc8578;
  --success: #78b995;
  --shadow: 0 24px 70px rgba(0, 0, 0, .38);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--night); scroll-behavior: smooth; }
body {
  min-height: 100vh;
  margin: 0;
  color: var(--ivory);
  font: 16px/1.55 var(--sans);
  background:
    radial-gradient(circle at 12% 0%, rgba(74, 126, 95, .18), transparent 33rem),
    radial-gradient(circle at 90% 12%, rgba(151, 115, 52, .12), transparent 27rem),
    linear-gradient(150deg, #07110f, #0b1612 45%, #060c0b);
}
body::before {
  position: fixed; inset: 0; pointer-events: none; content: "";
  opacity: .18;
  background-image: repeating-linear-gradient(115deg, transparent 0 8px, rgba(255,255,255,.018) 9px 10px);
}
[hidden] { display: none !important; }
a { color: var(--gold-pale); text-underline-offset: .2em; }
a:hover { color: #fff1c7; }
button, input, select { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--gold-pale); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: .75rem; left: .75rem; transform: translateY(-180%); padding: .65rem 1rem; color: var(--night); background: var(--gold-pale); }
.skip-link:focus { transform: none; }

.site-shell { width: min(1440px, calc(100% - 2rem)); margin: 0 auto; }
.site-header { min-height: 5.4rem; display: flex; align-items: center; gap: 1.25rem 2rem; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: .75rem; color: var(--ivory); text-decoration: none; white-space: nowrap; }
.brand strong { display: block; font: 700 1.2rem/1.1 var(--serif); letter-spacing: .1em; text-transform: uppercase; }
.brand small { color: var(--muted); font-size: .68rem; letter-spacing: .11em; text-transform: uppercase; }
.brand-mark { position: relative; width: 2.35rem; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; box-shadow: inset 0 0 18px rgba(198,164,92,.2); }
.brand-mark::before, .brand-mark::after, .brand-mark span { position: absolute; content: ""; width: 1rem; height: 1rem; border: 1px solid var(--gold-pale); transform: rotate(45deg); }
.brand-mark::after { width: .42rem; height: .42rem; background: var(--gold); }

.hall-search {
  display: flex;
  align-items: center;
  gap: .4rem;
  flex: 1 1 14rem;
  min-width: 11rem;
  max-width: 28rem;
  margin: 0;
}
.hall-search input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 2.2rem;
  width: 100%;
  padding: .35rem .7rem;
  border: 1px solid var(--line);
  border-radius: 0;
  color: var(--ivory);
  background: #09130f;
  font-size: .82rem;
}
.hall-search input[type="search"]::placeholder { color: #65746c; }
.hall-search input[type="search"]:focus {
  border-color: var(--line-bright);
  outline: none;
  box-shadow: 0 0 0 2px rgba(198, 164, 92, .18);
}
.hall-search-go { flex: none; min-height: 2.2rem; }

.primary-nav { flex: 1 1 auto; display: flex; align-items: stretch; justify-content: flex-end; gap: clamp(1rem, 3vw, 3rem); }
.nav-group { display: flex; align-items: center; gap: .8rem; }
.nav-label { color: #708078; font-size: .65rem; letter-spacing: .15em; text-transform: uppercase; }
.nav-group a { min-height: 5.4rem; display: inline-flex; align-items: center; gap: .35rem; border-bottom: 2px solid transparent; color: var(--mist); font-size: .8rem; letter-spacing: .04em; text-decoration: none; }
.nav-group a:hover, .nav-group a[aria-current="page"] { color: var(--ivory); border-color: var(--gold); }
.icon { width: 1.15em; height: 1.15em; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.nav-toggle { display: none; margin-left: auto; padding: .6rem; border: 1px solid var(--line); background: transparent; }
.nav-toggle > span:not(.sr-only) { display: block; width: 1.25rem; height: 1px; margin: .25rem; background: var(--ivory); }

.voice-bar { min-height: 3.35rem; display: flex; align-items: center; gap: 1.2rem; padding: .5rem 0; border-bottom: 1px solid var(--line); }
.voice-bar-label { color: var(--muted); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.voice-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.sync-form { margin: 0; }
.voice-chip { display: inline-flex; align-items: center; gap: .42rem; padding: .35rem .68rem; border: 1px solid var(--line); border-radius: 99px; color: var(--mist); background: rgba(255,255,255,.025); cursor: pointer; }
.voice-chip:hover { color: var(--ivory); border-color: var(--line-bright); }
.voice-light { width: .38rem; height: .38rem; border-radius: 50%; background: var(--success); box-shadow: 0 0 8px var(--success); }
.voice-chip.is-muted .voice-light { background: var(--muted); box-shadow: none; }

main { min-height: 65vh; padding: clamp(2rem, 5vw, 4.5rem) 0; }
h1, h2, h3 { margin: 0; color: var(--ivory); font-family: var(--serif); line-height: 1.18; }
h2 { font-size: clamp(2rem, 4vw, 3.6rem); font-weight: 500; letter-spacing: -.025em; }
h3 { font-size: 1.15rem; }
p { margin: .55rem 0 1rem; }
.eyebrow { margin: 0 0 .65rem; color: var(--gold); font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.lede { max-width: 48rem; margin: .9rem 0 0; color: var(--mist); font: 1.1rem/1.6 var(--serif); }
.muted { color: var(--muted); }
.slim { margin: 0; font-size: .82rem; }
.page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2.2rem; }
.page-actions { display: flex; gap: .65rem; flex-wrap: wrap; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.section-heading h3 { font-family: var(--sans); font-size: .78rem; letter-spacing: .15em; text-transform: uppercase; }

.grid { display: grid; gap: 1rem; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card {
  position: relative;
  margin: 1rem 0;
  padding: clamp(1.15rem, 2.3vw, 2rem);
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(25,47,39,.9), rgba(12,25,21,.9));
  box-shadow: 0 12px 35px rgba(0,0,0,.13);
}
.card.accent::before { position: absolute; top: 0; left: 1.5rem; width: 4rem; height: 1px; content: ""; background: var(--gold); box-shadow: 0 0 12px var(--gold); }
.metric { min-height: 9rem; display: flex; flex-direction: column; justify-content: space-between; }
.metric-value { font: 2.25rem/1 var(--serif); color: var(--ivory); }
.metric-label { color: var(--muted); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.metric-detail { color: var(--mist); font-size: .78rem; }
.status-badge { display: inline-flex; align-items: center; gap: .45rem; color: var(--mist); font-size: .75rem; }
.status-badge > span { width: .42rem; height: .42rem; border-radius: 50%; background: var(--muted); }
.status-ok > span { background: var(--success); box-shadow: 0 0 7px var(--success); }
.status-error > span { background: var(--danger); }
.facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; margin: 1.4rem 0; }
.facts div { min-width: 0; padding-bottom: .65rem; border-bottom: 1px solid var(--line); }
.facts dt { color: var(--muted); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.facts dd { margin: .25rem 0 0; overflow-wrap: anywhere; }

.btn {
  min-height: 2.65rem; display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .55rem 1rem; border: 1px solid var(--gold); border-radius: 0;
  color: #0b1512; background: var(--gold-pale); font-weight: 700; font-size: .78rem; letter-spacing: .04em; text-decoration: none; cursor: pointer;
}
.btn:hover { color: #050908; background: #f4dfa4; }
.btn.ghost { color: var(--gold-pale); background: transparent; }
.btn.danger { color: #ffd5ce; border-color: rgba(220,133,120,.65); background: transparent; }
.btn.compact { min-height: 2rem; padding: .3rem .7rem; font-size: .7rem; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.actions, .row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.stack { display: flex; flex-direction: column; align-items: stretch; gap: .9rem; }
form.inline { display: flex; align-items: end; gap: .65rem; flex-wrap: wrap; }
label { display: flex; flex-direction: column; gap: .35rem; color: var(--mist); font-size: .78rem; }
label.check {
  flex-direction: row;
  align-items: center;
  gap: .55rem;
  min-height: 2rem;
}
label.check input[type="checkbox"] {
  min-width: 1.05rem;
  min-height: 1.05rem;
  width: 1.05rem;
  margin: 0;
  accent-color: var(--gold-pale);
}
td.row-actions,
.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
}
.row-actions form.inline { align-items: center; }
input, select {
  min-width: 16rem; min-height: 2.65rem; padding: .55rem .7rem;
  border: 1px solid var(--line-bright); border-radius: 0;
  color: var(--ivory); background: #09130f;
}
input::placeholder { color: #65746c; }
input[type="file"] { width: 100%; padding: .45rem; }
input[type="file"]::file-selector-button { margin-right: .75rem; padding: .4rem .7rem; border: 0; color: var(--night); background: var(--gold-pale); }
code { padding: .12rem .35rem; color: #d8decf; background: rgba(255,255,255,.06); font: .84em var(--mono); overflow-wrap: anywhere; }
pre { overflow: auto; padding: 1rem; border: 1px solid var(--line); color: #d7e2db; background: #050b09; font: .8rem/1.55 var(--mono); }
pre.warn { border-color: rgba(220,133,120,.4); color: #ffd5ce; }

.table-scroll { width: 100%; overflow-x: auto; border: 1px solid var(--line); }
table { width: 100%; border-collapse: collapse; font-size: .84rem; }
th, td { padding: .8rem .75rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); background: rgba(0,0,0,.15); font-size: .65rem; letter-spacing: .11em; text-transform: uppercase; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: rgba(198,164,92,.04); }
tr.unread td { color: var(--ivory); font-weight: 650; }
td { color: var(--mist); }
td a { color: var(--ivory); text-decoration-color: rgba(198,164,92,.45); }
td.subj { min-width: 16rem; }
td.from { max-width: 19rem; overflow: hidden; text-overflow: ellipsis; }
.when, .acct, .box { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mail-list-mobile { display: none; }
.mail-item { display: block; padding: 1rem 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.mail-item-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .7rem; }
.mail-item strong { display: block; margin: .35rem 0; color: var(--ivory); }
.mail-item p { margin: 0; color: var(--mist); font-size: .82rem; }

/* Dense mail ledgers: chrome + toolbar fit in ~300px, rows stay one line */
body.mail-dense .site-header {
  min-height: 2.6rem;
  gap: 1rem;
  padding: .2rem 0;
}
body.mail-dense .brand strong { font-size: .95rem; letter-spacing: .08em; }
body.mail-dense .brand small { display: none; }
body.mail-dense .brand-mark { width: 1.55rem; }
body.mail-dense .brand-mark::before,
body.mail-dense .brand-mark::after,
body.mail-dense .brand-mark span { width: .7rem; height: .7rem; }
body.mail-dense .brand-mark::after { width: .28rem; height: .28rem; }
body.mail-dense .nav-group { gap: .45rem; }
body.mail-dense .nav-label { display: none; }
body.mail-dense .nav-group a {
  min-height: 2.6rem;
  font-size: .72rem;
  letter-spacing: .03em;
  padding: 0 .1rem;
}
body.mail-dense .primary-nav { gap: clamp(.55rem, 1.6vw, 1.4rem); }
body.mail-dense .voice-bar {
  min-height: 0;
  gap: .65rem;
  padding: .22rem 0;
}
body.mail-dense .voice-bar-label { font-size: .58rem; letter-spacing: .1em; }
body.mail-dense .voice-chip { padding: .18rem .5rem; font-size: .68rem; }
body.mail-dense .voice-actions { gap: .28rem; }
body.mail-dense .flash-stack { margin-top: .35rem; }
body.mail-dense .flash { padding: .35rem .65rem; font-size: .78rem; }
body.mail-dense main {
  min-height: 0;
  padding: .45rem 0 .9rem;
}
body.mail-dense .mail-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem 1.25rem;
  flex-wrap: wrap;
  margin: 0 0 .45rem;
  min-height: 2.4rem;
}
body.mail-dense .mail-toolbar-lead {
  display: flex;
  align-items: baseline;
  gap: .55rem .75rem;
  flex-wrap: wrap;
  min-width: 0;
}
body.mail-dense .mail-toolbar .eyebrow {
  margin: 0;
  font-size: .58rem;
  letter-spacing: .14em;
}
body.mail-dense .mail-toolbar h2 {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 550;
  letter-spacing: -.01em;
  line-height: 1.1;
}
body.mail-dense .mail-count {
  color: var(--muted);
  font-size: .68rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}
body.mail-dense .mail-toolbar-actions {
  display: flex;
  align-items: center;
  gap: .55rem .75rem;
  flex-wrap: wrap;
}
body.mail-dense .mail-stat-strip {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
  color: var(--mist);
  font-size: .7rem;
}
body.mail-dense .mail-stat-strip strong {
  color: var(--ivory);
  font-weight: 650;
}
body.mail-dense .mail-account-filter label {
  flex-direction: row;
  align-items: center;
  gap: .4rem;
  font-size: .68rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}
body.mail-dense .mail-account-filter select {
  min-width: 11rem;
  min-height: 1.85rem;
  padding: .2rem .45rem;
  font-size: .72rem;
}
body.mail-dense .mail-box-filter label {
  flex-direction: row;
  align-items: center;
  gap: .4rem;
  font-size: .68rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .08em;
}
body.mail-dense .mail-box-filter select {
  min-width: 8.5rem;
  min-height: 1.85rem;
  padding: .2rem .45rem;
  font-size: .72rem;
}
body.mail-dense .hall-search {
  max-width: 22rem;
  flex-basis: 12rem;
}
body.mail-dense .hall-search input[type="search"] {
  min-height: 1.85rem;
  padding: .2rem .55rem;
  font-size: .72rem;
}
body.mail-dense .hall-search-go {
  min-height: 1.85rem;
  padding: .2rem .55rem;
  font-size: .65rem;
}
body.mail-dense .mail-search-echo {
  color: var(--mist);
  font-size: .72rem;
  max-width: 14rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.mail-dense .mail-toolbar .btn.compact {
  min-height: 1.85rem;
  padding: .2rem .55rem;
  font-size: .65rem;
}
body.mail-dense .mail-toolbar .btn .icon { width: .95em; height: .95em; }
body.mail-dense .card.mail-ledger {
  margin: 0;
  padding: .35rem .45rem .2rem;
}
body.mail-dense .mail-ledger-heading {
  margin: 0 0 .3rem;
  min-height: 0;
}
body.mail-dense .mail-ledger-heading h3 { font-size: .68rem; }
body.mail-dense .mail-ledger .table-scroll {
  border-color: rgba(180, 155, 92, .18);
}
body.mail-dense table.letters.dense {
  table-layout: fixed;
  width: 100%;
  font-size: .72rem;
  line-height: 1.15;
}
body.mail-dense table.letters.dense th,
body.mail-dense table.letters.dense td {
  padding: .18rem .4rem;
  vertical-align: middle;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  border-bottom-color: rgba(180, 155, 92, .14);
}
body.mail-dense table.letters.dense th {
  padding-top: .28rem;
  padding-bottom: .28rem;
  font-size: .58rem;
  letter-spacing: .1em;
  background: rgba(0, 0, 0, .22);
}
body.mail-dense table.letters.dense td.when { width: 7.5rem; }
body.mail-dense table.letters.dense td.acct,
body.mail-dense table.letters.dense td.box,
body.mail-dense table.letters.dense td.from,
body.mail-dense table.letters.dense td.snip { width: 8.2rem; }
body.mail-dense table.letters.dense td.subj { width: auto; min-width: 0; }
body.mail-dense table.letters.dense td a {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.mail-dense table.letters.dense tbody tr:hover { background: rgba(198, 164, 92, .06); }
body.mail-dense .mail-item { padding: .4rem 0; }
body.mail-dense .mail-item strong { margin: .15rem 0; font-size: .82rem; }
body.mail-dense .mail-item p { font-size: .72rem; }
body.mail-dense .mail-side-panels { margin-top: .75rem; gap: .65rem; }
body.mail-dense .mail-side-panels .card {
  margin: 0;
  padding: .7rem .85rem;
}
body.mail-dense .quiet-list.dense li { padding: .35rem 0; }
body.mail-dense .quiet-list.dense span { font-size: .72rem; }
body.mail-dense .empty-state { padding: 1.4rem .75rem; }
body.mail-dense .site-footer { padding: .7rem 0 1rem; }

.quiet-list { padding: 0; list-style: none; }
.quiet-list li { padding: .75rem 0; border-bottom: 1px solid var(--line); }
.quiet-list span { display: block; color: var(--muted); font-size: .8rem; overflow-wrap: anywhere; }
.steps { counter-reset: steps; padding: 0; list-style: none; }
.steps li { position: relative; min-height: 2.5rem; padding: 0 0 1.2rem 3rem; color: var(--mist); }
.steps li::before { position: absolute; left: 0; counter-increment: steps; content: counter(steps); width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-pale); font-size: .72rem; }
.device-code { margin: 1rem 0; color: var(--gold-pale); font: 2.25rem var(--mono); letter-spacing: .16em; }
.presets { display: flex; flex-wrap: wrap; gap: .5rem; }
.presets a { padding: .35rem .55rem; border: 1px solid var(--line); color: var(--mist); font: .72rem var(--mono); text-decoration: none; }
.letter { max-width: 62rem; margin-inline: auto; }
.letter h2 { font-size: clamp(1.8rem, 4vw, 3rem); }
.letter .body { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); white-space: pre-wrap; overflow-wrap: anywhere; font: 1.02rem/1.75 var(--serif); color: #e1dece; }

/* Readable letter desk */
body.letter-page main {
  padding: 1.4rem 0 2.5rem;
}
body.letter-page .letter {
  max-width: 44rem;
  width: min(44rem, 100%);
  margin-inline: auto;
  padding: clamp(1.25rem, 3vw, 2.1rem) clamp(1.15rem, 3.2vw, 2.4rem) clamp(1.4rem, 3vw, 2.2rem);
  border-color: rgba(180, 155, 92, .28);
  background:
    linear-gradient(180deg, rgba(28, 48, 40, .96), rgba(14, 26, 22, .98));
  box-shadow: 0 18px 48px rgba(0, 0, 0, .28);
}
body.letter-page .letter-nav {
  margin: 0 0 .85rem;
  font-size: .78rem;
}
body.letter-page .letter-nav a {
  color: var(--muted);
  text-decoration: none;
}
body.letter-page .letter-nav a:hover { color: var(--gold-pale); }
body.letter-page .letter-head .eyebrow {
  margin: 0 0 .45rem;
  font-size: .62rem;
}
body.letter-page .letter-subject {
  margin: 0;
  font: 600 clamp(1.45rem, 3.4vw, 2.15rem)/1.25 var(--serif);
  letter-spacing: -.015em;
  color: var(--ivory);
  overflow-wrap: anywhere;
}
body.letter-page .letter-when {
  margin: .55rem 0 0;
  color: var(--gold-pale);
  font-size: .82rem;
  letter-spacing: .02em;
}
body.letter-page .letter-meta {
  display: grid;
  gap: .55rem;
  margin: 1.15rem 0 0;
  padding: .85rem 0 0;
  border-top: 1px solid var(--line);
}
body.letter-page .letter-meta div {
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr);
  gap: .65rem;
  align-items: baseline;
}
body.letter-page .letter-meta dt {
  margin: 0;
  color: var(--muted);
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
body.letter-page .letter-meta dd {
  margin: 0;
  color: var(--mist);
  font-size: .9rem;
  overflow-wrap: anywhere;
}
body.letter-page .letter-attachments {
  margin: 1rem 0 0;
  padding: .8rem 0 0;
  border-top: 1px solid var(--line);
}
body.letter-page .letter-attachments h2 {
  margin: 0 0 .55rem;
  font: 600 .62rem/1 var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
}
body.letter-page .letter-body-panel {
  margin-top: 1.15rem;
  padding: 1.05rem 1.1rem 1.15rem;
  border: 1px solid rgba(180, 155, 92, .22);
  background:
    linear-gradient(180deg, rgba(8, 16, 13, .72), rgba(6, 12, 10, .88));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03);
}
body.letter-page .letter-body {
  margin: 0;
  padding: 0;
  border: 0;
  max-width: none;
  color: #ebe6d6;
  font: 1.02rem/1.7 var(--serif);
  overflow-wrap: anywhere;
  word-break: normal;
}
body.letter-page .letter-body p {
  margin: 0 0 .95rem;
}
body.letter-page .letter-body p:last-child {
  margin-bottom: 0;
}
body.letter-page .letter-body a.letter-link {
  display: inline;
  color: var(--gold-pale);
  font: 0.86em/1.35 var(--sans);
  letter-spacing: 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  overflow-wrap: anywhere;
  word-break: break-word;
}
body.letter-page .letter-body a.letter-link:hover {
  color: #fff1c7;
}
body.letter-page .letter-meta dd {
  overflow-wrap: anywhere;
  word-break: break-word;
}
body.letter-page .letter-foot {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.6rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
body.letter-page .letter-foot-actions {
  display: flex;
  align-items: center;
  gap: .55rem;
  flex-wrap: wrap;
}
body.letter-page .letter-reply .icon {
  width: 1em;
  height: 1em;
}
body.letter-page .letter-id {
  color: var(--muted);
  font-size: .72rem;
}
body.letter-page .letter-id summary {
  cursor: pointer;
  list-style: none;
}
body.letter-page .letter-id summary::-webkit-details-marker { display: none; }
body.letter-page .letter-id code {
  display: block;
  margin-top: .35rem;
  max-width: 18rem;
  overflow-wrap: anywhere;
  font-size: .68rem;
}

.letter-attachments {
  margin: 1.4rem 0 0;
  padding: 1rem 0 0;
  border-top: 1px solid var(--line);
}
.letter-attachments h3 {
  margin: 0 0 .65rem;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.letter-attachments ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .55rem;
}
.letter-attachments li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .35rem .55rem;
}
.letter-attachment-link {
  color: var(--mist);
  text-decoration: underline;
  text-underline-offset: .18em;
}
.letter-attachment-link:hover { color: #fff; }
.empty-state { padding: 3rem 1rem; text-align: center; color: var(--muted); }
.empty-state .icon { width: 2rem; height: 2rem; color: var(--gold); }
.empty-state h3 { margin-top: .75rem; }
.empty-state p { max-width: 32rem; margin: .45rem auto 0; }

.flash-stack { margin-top: 1rem; }
.flash { display: flex; align-items: center; gap: .7rem; padding: .75rem 1rem; border: 1px solid var(--line); background: var(--panel); }
.flash-ok { border-left: 3px solid var(--success); }
.flash-error { border-left: 3px solid var(--danger); }
.flash-close { margin-left: auto; border: 0; color: var(--muted); background: transparent; font-size: 1.35rem; cursor: pointer; }
.site-footer { display: flex; justify-content: space-between; gap: 1rem; padding: 1.2rem 0 2rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; }
.noscript-note { max-width: 15rem; color: var(--muted); font-size: .7rem; }

/* The sync veil uses only generated layers and canvas: no borrowed imagery. */
.sync-veil { position: fixed; z-index: 900; inset: 0; display: grid; place-items: center; overflow: hidden; isolation: isolate; color: var(--ivory); background: rgba(1,7,6,.96); }
.sync-veil::before { position: absolute; inset: 0; content: ""; background: radial-gradient(circle at 50% 45%, rgba(70,144,111,.22), transparent 28%), radial-gradient(circle at 50% 50%, transparent 0 18%, rgba(0,0,0,.75) 72%); }
.cloud { position: absolute; width: 80vw; height: 33vh; border-radius: 50%; opacity: .35; filter: blur(40px); background: radial-gradient(ellipse, rgba(116,145,129,.34), rgba(35,61,53,.14) 45%, transparent 72%); animation: cloud-drift 18s ease-in-out infinite alternate; }
.cloud-one { top: -10%; left: -22%; }
.cloud-two { right: -20%; bottom: 0; animation-delay: -9s; animation-direction: alternate-reverse; }
.cloud-three { top: 32%; left: 25%; opacity: .16; animation-duration: 26s; }
.palantir-stage { position: relative; z-index: 2; width: min(94vw, 48rem); display: grid; justify-items: center; text-align: center; }
.palantir { position: relative; width: min(48vw, 19rem); min-width: 14rem; aspect-ratio: 1; overflow: hidden; border: 1px solid rgba(218,235,219,.35); border-radius: 50%; background: radial-gradient(circle at 38% 30%, #6f9f84, #153f32 20%, #061a16 48%, #010706 75%); box-shadow: inset -2rem -2rem 4rem #000, inset 1rem 1rem 2.5rem rgba(174,219,188,.2), 0 0 2rem rgba(100,178,135,.25), 0 3rem 5rem #000; }
.palantir canvas { width: 100%; height: 100%; border-radius: inherit; opacity: .9; }
.stone-glint { position: absolute; top: 15%; left: 20%; width: 22%; height: 12%; border-radius: 50%; filter: blur(8px); transform: rotate(-30deg); background: rgba(225,246,228,.23); }
.stone-halo { position: absolute; top: -8%; width: min(65vw, 26rem); aspect-ratio: 1; border-radius: 50%; border: 1px solid rgba(113,190,145,.15); box-shadow: 0 0 5rem rgba(67,149,107,.16); animation: halo-pulse 5s ease-in-out infinite; }
.stone-stand { width: min(36vw, 13rem); height: 2.7rem; margin-top: -1rem; border-radius: 50%; border: 1px solid #634e2d; background: radial-gradient(ellipse at 50% 15%, #76603a, #281f12 52%, #090705 75%); box-shadow: 0 1.7rem 1.5rem rgba(0,0,0,.7); }
.sync-copy { width: min(92vw, 34rem); margin-top: 1.5rem; }
.sync-copy h2 { font-size: clamp(1.6rem, 5vw, 2.7rem); }
.sync-copy > p:not(.eyebrow):not(.progress-value):not(.sync-reveal) { color: var(--mist); }
.progress-track { width: 100%; height: 3px; overflow: hidden; background: rgba(255,255,255,.1); }
.progress-track span { display: block; width: 100%; height: 100%; transform: scaleX(0); transform-origin: left center; background: linear-gradient(90deg, var(--green), var(--gold-pale)); box-shadow: 0 0 12px var(--gold); }
.progress-track.is-indeterminate span { width: 28%; animation: progress-wander 1.7s ease-in-out infinite; }
.progress-value { margin: .5rem 0; color: var(--gold-pale); font: .8rem var(--mono); opacity: .06; filter: blur(4px); transition: opacity 1.2s ease, filter 1.2s ease, text-shadow 1.2s ease; }
.progress-value.is-awakening { opacity: .32; filter: blur(2.5px); }
.progress-value.is-clear { opacity: .72; filter: blur(1px); text-shadow: 0 0 12px rgba(229, 202, 128, .35); }
.progress-value.is-fulfilled { opacity: 1; filter: none; text-shadow: 0 0 16px rgba(229, 202, 128, .55); }
.sync-reveal { margin: .2rem 0; opacity: 0; transform: translateY(.45rem); color: var(--mist); font: italic .88rem var(--serif); transition: opacity .6s ease, transform .6s ease; }
.sync-reveal.is-visible { opacity: 1; transform: none; }
.sync-cancel { margin-top: .8rem; }
body.is-syncing { overflow: hidden; }
@keyframes cloud-drift { to { transform: translate3d(18vw, 5vh, 0) scale(1.15); } }
@keyframes halo-pulse { 50% { transform: scale(1.08); opacity: .5; } }
@keyframes progress-wander { from { transform: translateX(-110%); } to { transform: translateX(360%); } }

@media (max-width: 1080px) {
  .site-header { flex-wrap: wrap; gap: .55rem 0.75rem; padding: 1rem 0; }
  .hall-search { order: 3; flex: 1 1 100%; max-width: none; }
  .nav-toggle { display: block; margin-left: auto; }
  .primary-nav { display: none; flex-basis: 100%; flex-direction: column; padding-top: 1rem; }
  .primary-nav.is-open { display: flex; }
  .nav-group { align-items: flex-start; flex-wrap: wrap; }
  .nav-label { flex-basis: 100%; padding-top: .5rem; }
  .nav-group a { min-height: 2.3rem; }
  body.mail-dense .site-header { padding: .35rem 0; }
  body.mail-dense .nav-group a { min-height: 2rem; }
  body.mail-dense .hall-search { max-width: none; }
}
@media (max-width: 760px) {
  .site-shell { width: min(100% - 1.2rem, 1440px); }
  main { padding: 2.2rem 0; }
  .page-header { display: block; }
  .page-actions { margin-top: 1.2rem; }
  .grid.two, .grid.three, .facts { grid-template-columns: 1fr; }
  .voice-bar { align-items: flex-start; }
  .voice-bar-label { padding-top: .5rem; white-space: nowrap; }
  .table-scroll.mail-table { display: none; }
  .mail-list-mobile { display: block; }
  input, select { width: 100%; min-width: 0; }
  .site-footer { flex-direction: column; }
  .palantir { width: 14rem; }
  .stone-halo { width: 19rem; }
  body.mail-dense main { padding: .55rem 0 .8rem; }
  body.mail-dense .mail-toolbar { align-items: flex-start; }
  body.mail-dense .mail-account-filter select { min-width: 0; width: min(16rem, 100%); }
}
/* Writing desk — parchment scroll over the Hall night */
.compose-stage {
  position: relative;
  width: min(52rem, 100%);
  margin: 0 auto;
  isolation: isolate;
}
.compose-atmosphere {
  position: absolute;
  inset: -2rem -1rem auto;
  height: 18rem;
  pointer-events: none;
  z-index: 0;
}
.compose-ring {
  position: absolute;
  left: 50%;
  top: 1.5rem;
  translate: -50% 0;
  border-radius: 50%;
  border: 1px solid rgba(198, 164, 92, .22);
}
.compose-ring-outer {
  width: min(28rem, 80vw);
  aspect-ratio: 1;
  box-shadow: 0 0 4rem rgba(95, 156, 120, .08);
  animation: compose-breathe 9s ease-in-out infinite;
}
.compose-ring-inner {
  top: 4.5rem;
  width: min(14rem, 42vw);
  aspect-ratio: 1;
  border-color: rgba(228, 206, 147, .18);
  animation: compose-breathe 9s ease-in-out infinite reverse;
}
.compose-ember {
  position: absolute;
  width: .35rem;
  height: .35rem;
  border-radius: 50%;
  background: var(--gold-pale);
  box-shadow: 0 0 12px var(--gold);
  opacity: .55;
  animation: compose-ember 7s ease-in-out infinite;
}
.compose-ember-a { left: 18%; top: 3rem; }
.compose-ember-b { right: 16%; top: 5.5rem; animation-delay: -3.2s; }
.compose-masthead {
  position: relative;
  z-index: 1;
  margin-bottom: 2rem;
  text-align: center;
}
.compose-masthead .lede {
  margin-inline: auto;
  max-width: 36rem;
  color: #c9c2a8;
  font-style: italic;
}
.compose-scroll {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: clamp(1.75rem, 4vw, 2.75rem);
  border: 1px solid rgba(198, 164, 92, .38);
  background:
    linear-gradient(180deg, rgba(246, 236, 210, .035), transparent 18%),
    linear-gradient(145deg, rgba(34, 52, 42, .96), rgba(14, 24, 20, .98));
  box-shadow:
    inset 0 1px 0 rgba(228, 206, 147, .12),
    0 28px 70px rgba(0, 0, 0, .45);
}
.compose-scroll::before,
.compose-scroll::after {
  position: absolute;
  left: 1.1rem;
  right: 1.1rem;
  height: 1px;
  content: "";
  background: linear-gradient(90deg, transparent, rgba(198, 164, 92, .45), transparent);
}
.compose-scroll::before { top: .7rem; }
.compose-scroll::after { bottom: .7rem; }
.compose-seal {
  position: absolute;
  top: -.55rem;
  right: 1.6rem;
  width: 1.7rem;
  height: 1.7rem;
  display: grid;
  place-items: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #e4ce93, #8a6a2e 55%, #3a2a12);
  box-shadow: 0 0 16px rgba(198, 164, 92, .35);
}
.compose-seal span {
  width: .55rem;
  height: .55rem;
  border: 1px solid rgba(15, 20, 16, .55);
  transform: rotate(45deg);
}
.compose-fields { display: grid; gap: 1.15rem; }
.compose-field { min-width: 0; gap: .45rem; }
.compose-recipients { display: grid; gap: .85rem; }
.compose-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.compose-recipient-toggles {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
.compose-recipient-toggle {
  appearance: none;
  border: 1px solid rgba(180, 155, 92, .4);
  background: transparent;
  color: var(--gold-pale);
  font: 600 .65rem/1 var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .28rem .55rem;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.compose-recipient-toggle:hover,
.compose-recipient-toggle[aria-pressed="true"] {
  border-color: var(--gold-pale);
  background: rgba(228, 206, 147, .12);
  color: #f4ebcf;
}
.compose-label {
  color: var(--gold);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.compose-field input,
.compose-field select,
.compose-field textarea {
  width: 100%;
  min-width: 0;
  border-color: rgba(180, 155, 92, .35);
  background: rgba(5, 12, 10, .72);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.compose-field input:focus,
.compose-field select:focus,
.compose-field textarea:focus {
  border-color: var(--gold-pale);
  box-shadow: 0 0 0 1px rgba(228, 206, 147, .25);
  outline: none;
}
.compose-field textarea {
  min-height: 16rem;
  padding: .9rem 1rem;
  resize: vertical;
  color: #ebe4d0;
  font: 1.05rem/1.75 var(--serif);
  letter-spacing: .01em;
}
.compose-body-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.compose-voice-actions {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.compose-dictate {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 1.9rem;
  padding: .25rem .7rem;
  border: 1px solid rgba(140, 150, 142, .4);
  color: #c9d2cb;
  background: rgba(0, 0, 0, .35);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}
.compose-transcribith {
  border-color: rgba(126, 168, 158, .55);
  color: #d7ebe4;
  background: linear-gradient(180deg, rgba(28, 48, 42, .72), rgba(8, 14, 12, .78));
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .35);
}
.compose-transcribith:hover {
  color: #f2fff9;
  border-color: rgba(170, 210, 198, .7);
}
.compose-dictate:disabled,
.compose-command:disabled {
  opacity: .55;
  cursor: not-allowed;
}
.compose-transcript-chip {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: .55rem 0 0;
  padding: .45rem .65rem;
  border: 1px solid rgba(126, 168, 158, .35);
  background: rgba(6, 14, 12, .55);
  color: #d7ebe4;
  font-size: .82rem;
}
.compose-phase-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.35rem;
  padding: .1rem .45rem;
  border: 1px solid rgba(198, 164, 92, .4);
  color: var(--gold-pale);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
}
.compose-phase-badge[data-phase="waiting_command"],
.compose-transcript-chip[data-phase="waiting_command"] .compose-phase-badge {
  border-color: rgba(126, 168, 158, .65);
  color: #d7ebe4;
}
.compose-phase-badge[data-phase="awaiting_input"] {
  border-color: rgba(198, 164, 92, .7);
}
.compose-phase-badge[data-phase="ready"] {
  border-color: rgba(110, 170, 120, .7);
  color: #d8f0d8;
}
.compose-phase-badge[data-phase="expired"],
.compose-phase-badge[data-phase="processing"] {
  border-color: rgba(220, 133, 120, .55);
  color: #ffd7ce;
}
.compose-field-checklist {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  list-style: none;
  margin: .75rem 0 0;
  padding: 0;
}
.compose-field-checklist li {
  min-height: 1.5rem;
  padding: .15rem .5rem;
  border: 1px solid rgba(140, 150, 142, .35);
  color: #9aa59d;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.compose-field-checklist li.is-filled {
  border-color: rgba(110, 170, 120, .55);
  color: #d8f0d8;
}
.compose-field-checklist li.is-missing {
  border-color: rgba(198, 164, 92, .45);
  color: var(--gold-pale);
}
.compose-command {
  display: inline-flex;
  align-items: center;
  min-height: 1.9rem;
  padding: .25rem .75rem;
  border: 1px solid rgba(198, 164, 92, .45);
  color: var(--gold-pale);
  background: rgba(20, 16, 8, .55);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .35);
}
.compose-command:hover {
  color: #fff1c7;
  border-color: rgba(228, 206, 147, .7);
}
.compose-dictate:hover {
  color: var(--ivory);
  border-color: rgba(198, 164, 92, .5);
}
.compose-dictate-dot {
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: #6f7f76;
  box-shadow: none;
}
.compose-dictate.is-listening {
  color: #ffd7ce;
  border-color: rgba(220, 133, 120, .65);
  background: rgba(40, 12, 10, .45);
}
.compose-dictate.is-listening .compose-dictate-dot {
  background: var(--danger);
  box-shadow: 0 0 10px var(--danger);
  animation: compose-ember 1.1s ease-in-out infinite;
}
.compose-dictate-status {
  margin: .35rem 0 0;
  min-height: 1.1rem;
}
.compose-command-panel {
  margin-top: .35rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(198, 164, 92, .28);
  background: rgba(5, 12, 10, .55);
}
.compose-command-log {
  max-height: 16rem;
  overflow: auto;
  display: grid;
  gap: .75rem;
  margin: .85rem 0 1rem;
}
.compose-command-turn strong {
  display: block;
  margin-bottom: .2rem;
  color: var(--gold);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.compose-command-turn p {
  margin: 0;
  color: #e2dcc8;
  font: .95rem/1.55 var(--serif);
  white-space: pre-wrap;
}
.compose-command-turn.is-user p { color: var(--mist); }
.compose-command-need {
  margin: 0 0 .75rem;
  color: var(--gold-pale);
  font: italic .92rem/1.45 var(--serif);
}
.compose-command-ask-actions {
  display: flex;
  gap: .55rem;
  flex-wrap: wrap;
  align-items: center;
}
.compose-actions {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: 1.6rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(198, 164, 92, .2);
  flex-wrap: wrap;
}
.compose-send-row {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.compose-schedule {
  min-height: 2.2rem;
  padding: .35rem .85rem;
  border-color: rgba(140, 150, 142, .45);
  color: #c5d0c8;
  background: rgba(0, 0, 0, .35);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .35);
}
.compose-schedule:hover {
  color: var(--ivory);
  border-color: rgba(198, 164, 92, .55);
  background: rgba(8, 14, 12, .85);
  box-shadow: 0 0 18px rgba(0, 0, 0, .35), inset 0 0 0 1px rgba(198, 164, 92, .2);
}
.compose-attach-field .compose-attach-hint {
  color: var(--muted);
  font: italic .78rem/1.3 var(--serif);
}
.compose-attach-field input[type="file"] {
  padding: .55rem;
  border-style: dashed;
}
.compose-schedule-dialog {
  width: min(26rem, calc(100vw - 2rem));
  padding: 0;
  border: 1px solid rgba(198, 164, 92, .4);
  background: #0c1612;
  color: var(--ivory);
  box-shadow: 0 30px 80px rgba(0, 0, 0, .65);
}
.compose-schedule-dialog::backdrop {
  background: rgba(2, 8, 6, .78);
}
.compose-schedule-panel {
  margin: 0;
  padding: 1.4rem 1.35rem 1.2rem;
}
.compose-schedule-panel h3 {
  margin: .15rem 0 .55rem;
  font-size: 1.45rem;
}
.compose-schedule-copy {
  margin: 0 0 1rem;
  color: var(--mist);
  font: italic .92rem/1.5 var(--serif);
}
.compose-schedule-zone { margin: .35rem 0 0; }
.compose-schedule-actions {
  display: flex;
  justify-content: flex-end;
  gap: .55rem;
  margin-top: 1.2rem;
}
.compose-schedule-confirm {
  min-height: 2.3rem;
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.compose-pending {
  margin-top: 1.5rem;
}
.compose-aside {
  flex: 1;
  margin: 0;
  max-width: 26rem;
  color: var(--muted);
  font: italic .82rem/1.45 var(--serif);
}
.compose-send {
  min-width: 10.5rem;
  box-shadow: 0 0 22px rgba(198, 164, 92, .18);
}
.compose-send:hover {
  box-shadow: 0 0 28px rgba(228, 206, 147, .28);
}
.compose-empty { text-align: center; }
.compose-empty-links {
  display: flex;
  justify-content: center;
  gap: .75rem;
  margin-top: 1.25rem;
  flex-wrap: wrap;
}
@keyframes compose-breathe {
  50% { opacity: .55; transform: scale(1.04); }
}
@keyframes compose-ember {
  0%, 100% { opacity: .25; transform: translateY(0); }
  50% { opacity: .8; transform: translateY(-.6rem); }
}

@media (max-width: 760px) {
  .compose-actions { align-items: stretch; }
  .compose-send-row { width: 100%; }
  .compose-send, .compose-schedule { width: 100%; }
  .compose-seal { right: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .cloud { transform: none !important; }
}
