:root {
  --black: #07090a;
  --black-2: #0d1012;
  --black-3: #15191b;
  --paper: #e6deca;
  --paper-dark: #c7bda6;
  --ink: #171816;
  --brass: #aa8951;
  --brass-light: #d5b978;
  --water: #244a5b;
  --blood: #7f2633;
  --muted: #9a9589;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: Inter, Arial, sans-serif;
  --condensed: Oswald, Arial Narrow, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--black); }
body {
  margin: 0;
  min-width: 320px;
  color: var(--paper);
  background:
    radial-gradient(circle at 50% 7%, rgba(59, 79, 82, .16), transparent 31rem),
    linear-gradient(90deg, rgba(255,255,255,.014) 1px, transparent 1px),
    var(--black);
  background-size: auto, 56px 56px, auto;
  font-family: var(--sans);
  overflow-x: hidden;
}
button, input { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible { outline: 2px solid var(--brass-light); outline-offset: 4px; }
::selection { color: #080909; background: var(--brass-light); }

.opening {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 14px;
  background: #050607;
  transition: opacity 1s ease, visibility 1s ease;
}
.opening.is-gone { opacity: 0; visibility: hidden; }
.opening__seal, .wordmark__seal, .library-notice__seal {
  display: grid;
  place-items: center;
  width: 54px;
  aspect-ratio: 1;
  border: 1px solid var(--brass);
  border-radius: 50%;
  color: var(--brass-light);
  font-family: var(--serif);
  font-size: 17px;
  letter-spacing: .08em;
  box-shadow: 0 0 0 6px rgba(170,137,81,.05), inset 0 0 18px rgba(170,137,81,.08);
}
.opening p { margin: 0; font-family: var(--serif); font-size: 28px; letter-spacing: .08em; }
.opening span { color: #706c64; font: 10px var(--sans); letter-spacing: .28em; text-transform: uppercase; }

.atmosphere { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.water-light {
  position: absolute;
  inset: -30% 15% 50%;
  background: conic-gradient(from 210deg, transparent, rgba(76,135,151,.08), transparent 23%);
  filter: blur(18px);
  animation: waterLight 15s ease-in-out infinite alternate;
}
.dust { position: absolute; inset: 0; opacity: .18; }
.dust::before, .dust::after {
  content: "";
  position: absolute;
  width: 2px; height: 2px;
  border-radius: 50%;
  background: #e8dfc5;
  box-shadow: 8vw 18vh #e8dfc5, 19vw 61vh #bda877, 31vw 28vh #e8dfc5, 44vw 72vh #bda877, 58vw 16vh #e8dfc5, 66vw 48vh #e8dfc5, 79vw 80vh #bda877, 91vw 32vh #e8dfc5, 96vw 67vh #e8dfc5;
  animation: dustRise 18s linear infinite;
}
.dust::after { left: 6vw; top: 28vh; animation-delay: -9s; animation-duration: 25s; }
.dust--two { transform: scale(.7); opacity: .12; }
@keyframes dustRise { from { transform: translateY(15vh); } to { transform: translateY(-20vh); } }
@keyframes waterLight { to { transform: translateX(15%) rotate(4deg); opacity: .5; } }

.topbar {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px clamp(24px, 5vw, 78px);
  border-bottom: 1px solid rgba(213,185,120,.15);
}
.wordmark { display: flex; align-items: center; gap: 14px; color: inherit; text-decoration: none; }
.wordmark__seal { width: 39px; font-size: 12px; }
.wordmark b { display: block; font: 500 13px var(--sans); letter-spacing: .22em; }
.wordmark small { display: block; margin-top: 4px; color: #77756e; font: 9px var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.topbar__actions { display: flex; align-items: center; gap: 22px; }
.text-button { border: 0; background: none; color: #b2aea5; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.text-button:hover { color: var(--paper); }
.search-trigger {
  display: flex; align-items: center; gap: 34px;
  min-width: 235px;
  padding: 11px 12px 11px 16px;
  border: 1px solid rgba(213,185,120,.23);
  background: rgba(255,255,255,.025);
  color: #8e8b84;
  font-size: 11px;
  letter-spacing: .05em;
  cursor: pointer;
}
kbd { padding: 4px 6px; border: 1px solid #373734; color: #77746e; background: #101213; font: 9px var(--sans); }

.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 145px 24px 80px;
  text-align: center;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  top: 16%;
  width: min(760px, 78vw);
  height: 70%;
  border: 1px solid rgba(170,137,81,.08);
  border-radius: 50% 50% 4% 4% / 19% 19% 2% 2%;
  box-shadow: inset 0 0 100px rgba(0,0,0,.6), 0 0 100px rgba(32,68,82,.07);
}
.hero::after {
  content: "SB";
  position: absolute;
  top: 50%; left: 50%;
  translate: -50% -50%;
  color: transparent;
  -webkit-text-stroke: 1px rgba(170,137,81,.055);
  font: 500 clamp(210px, 36vw, 520px) var(--serif);
  pointer-events: none;
}
.hero > * { position: relative; z-index: 1; }
.hero__eyebrow { display: flex; align-items: center; gap: 16px; color: var(--brass); font: 9px var(--sans); letter-spacing: .24em; text-transform: uppercase; }
.hero__eyebrow span { width: 46px; height: 1px; background: var(--brass); opacity: .55; }
.hero__classification { margin: 22px 0 5px; color: #77746e; font: 9px var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.hero h1 { margin: 0; font: 500 clamp(70px, 11vw, 155px)/.78 var(--serif); letter-spacing: -.055em; text-shadow: 0 16px 60px #000; }
.hero h1 span { display: block; margin: 0 0 8px; color: var(--brass-light); font-size: .24em; font-style: italic; font-weight: 400; letter-spacing: .12em; }
.hero__intro { max-width: 610px; margin: 36px auto 0; color: #a39f96; font: 500 clamp(17px, 2vw, 22px)/1.55 var(--serif); }
.hero__rule { width: min(580px, 75vw); display: flex; align-items: center; gap: 18px; margin-top: 31px; }
.hero__rule i { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(170,137,81,.55), transparent); }
.hero__rule span { color: #6e6a62; font: italic 12px var(--serif); letter-spacing: .12em; }
.hero__scroll { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 55px; border: 0; background: none; color: #8f8a80; font: 9px var(--sans); letter-spacing: .2em; text-transform: uppercase; cursor: pointer; }
.hero__scroll i { width: 1px; height: 44px; background: linear-gradient(var(--brass), transparent); animation: pulseDown 2s ease-in-out infinite; }
@keyframes pulseDown { 50% { transform: translateY(8px); opacity: .4; } }

.constitution-room {
  position: relative;
  min-height: 860px;
  display: grid;
  grid-template-columns: 1fr minmax(350px, 520px) 1fr;
  align-items: center;
  gap: clamp(20px, 5vw, 80px);
  padding: 110px clamp(24px, 6vw, 100px);
  background:
    linear-gradient(180deg, #080a0b, transparent 13%, transparent 88%, #07090a),
    radial-gradient(ellipse at 50% 30%, rgba(185,149,82,.17), transparent 34%),
    linear-gradient(90deg, #080a0b, #111416 50%, #080a0b);
  border-block: 1px solid rgba(170,137,81,.12);
}
.constitution-room::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 118px, rgba(255,255,255,.009) 119px 120px); pointer-events:none; }
.room-heading { align-self: start; padding-top: 72px; }
.room-heading p, .stacks__heading p, .library-notice > div p { color: var(--brass); font: 9px var(--sans); letter-spacing: .22em; text-transform: uppercase; }
.room-heading h2, .stacks__heading h2 { max-width: 260px; margin: 12px 0 0; font: 500 38px/1.05 var(--serif); }
.lectern-wrap { position: relative; height: 600px; display: flex; align-items: center; justify-content: center; perspective: 1100px; }
.lamp { position: absolute; top: -30px; left: 50%; width: 240px; height: 350px; translate: -50% 0; background: linear-gradient(100deg, transparent 32%, rgba(224,185,112,.07), transparent 68%); clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%); filter: blur(3px); pointer-events:none; }
.lamp i { position:absolute; left:50%; width:42px; height:8px; translate:-50%; border-radius:50%; background:#b99757; box-shadow:0 0 22px 5px rgba(213,185,120,.4); }
.constitution-book { position: relative; z-index: 2; width: 290px; height: 400px; padding: 0; border: 0; background: none; transform: rotateX(9deg) rotateZ(-1.2deg); cursor: pointer; transition: transform .65s cubic-bezier(.2,.8,.2,1), filter .65s ease; filter: drop-shadow(0 32px 24px rgba(0,0,0,.8)); }
.constitution-book:hover, .constitution-book:focus-visible { transform: rotateX(2deg) rotateZ(0) translateY(-16px) scale(1.025); filter: drop-shadow(0 46px 35px #000); }
.constitution-book__edge { position: absolute; inset: 12px -10px -12px 10px; background: repeating-linear-gradient(0deg, #b8ad94 0 2px, #d8cdb6 2px 4px); border-radius: 2px 7px 7px 2px; }
.constitution-book__cover { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 34px; border: 1px solid #79653b; border-radius: 3px 8px 8px 3px; background: radial-gradient(circle at 50% 35%, rgba(154,125,69,.14), transparent 34%), linear-gradient(100deg, #100e0c, #201a13 12%, #0c0c0b 53%, #17130e); box-shadow: inset 12px 0 16px rgba(0,0,0,.8), inset 0 0 0 7px #13110d, inset 0 0 0 8px rgba(170,137,81,.6), inset 0 0 0 14px #13110d, inset 0 0 0 15px rgba(170,137,81,.22); }
.constitution-book__cover small { color: #937b4d; font: 8px var(--sans); letter-spacing: .22em; text-transform: uppercase; }
.constitution-book__cover b { margin-top: 28px; color: #d4c6a4; font: 500 28px/1.04 var(--serif); text-align: center; }
.cover-seal { display:grid; place-items:center; width:66px; aspect-ratio:1; margin:28px 0; border:1px solid #9f824d; border-radius:50%; color:#a88b54; font:19px var(--serif); box-shadow:0 0 0 5px rgba(170,137,81,.07); }
.constitution-book__cover em { color: #746443; font: italic 11px var(--serif); letter-spacing: .06em; }
.cover-rule { width: 70%; height: 1px; margin: 18px 0; background: linear-gradient(90deg, transparent, #7f6a40, transparent); }
.lectern { position: absolute; z-index:1; bottom:0; width:410px; height:170px; background: linear-gradient(90deg, #0b0907, #2d2116 16%, #17110c 55%, #080706); clip-path: polygon(12% 0, 88% 0, 100% 28%, 65% 33%, 72% 100%, 28% 100%, 35% 33%, 0 28%); filter: drop-shadow(0 35px 25px #000); }
.lectern span { display:block; width:130px; height:95px; margin:55px auto 0; border:1px solid rgba(170,137,81,.23); }
.constitution-copy { max-width: 340px; }
.registry-code { color: #726b5e !important; font: 9px var(--sans) !important; letter-spacing: .17em; text-transform: uppercase; }
.constitution-copy > p { color: #aaa397; font: 18px/1.55 var(--serif); }
.brass-button { margin-top: 24px; padding: 14px 17px; border:1px solid rgba(170,137,81,.5); background:transparent; color:#cbb98e; font-size:10px; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; transition:.25s ease; }
.brass-button span { margin-left: 18px; color: var(--brass); }
.brass-button:hover { background:var(--brass); color:#090909; }

.stacks { padding: 130px clamp(20px, 7vw, 120px) 160px; }
.stacks__heading { max-width: 1300px; margin: 0 auto 70px; display: flex; justify-content: space-between; align-items: end; }
.stacks__heading h2 { max-width:none; font-size:56px; }
.archive-count { display:flex; align-items:center; gap:13px; padding-left:22px; border-left:1px solid rgba(170,137,81,.4); }
.archive-count b { color:var(--brass-light); font:500 45px/1 var(--serif); }
.archive-count span { color:#77736a; font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.shelves { max-width: 1120px; margin:auto; }
.shelf { position:relative; margin-bottom:85px; padding:0 clamp(16px, 4vw, 65px) 34px; min-height:270px; border-bottom:17px solid #251a11; box-shadow:0 12px 0 #0a0806, 0 27px 24px rgba(0,0,0,.75), inset 0 -1px rgba(170,137,81,.22); }
.shelf::before { content:""; position:absolute; left:0; right:0; bottom:-2px; height:5px; background:linear-gradient(90deg,#0e0a07,#63462a 20%,#20150d 50%,#5a3f25 80%,#0d0906); }
.shelf__label { position:absolute; left:0; bottom:-57px; display:flex; align-items:center; gap:12px; color:#726c60; font:9px var(--sans); letter-spacing:.21em; text-transform:uppercase; }
.shelf__label::before { content:""; width:22px; height:1px; background:var(--brass); }
.books { min-height: 250px; display:flex; align-items:flex-end; justify-content:center; gap:7px; padding-top:20px; perspective:1200px; }
.book { position:relative; width:var(--w, 74px); height:var(--h, 230px); flex:0 0 auto; padding:0; border:0; border-radius:2px 5px 3px 2px; color:#d8ceb8; background:linear-gradient(90deg, rgba(0,0,0,.65), transparent 13%, rgba(255,255,255,.05) 49%, rgba(0,0,0,.35)), var(--book-color,#352c22); box-shadow:inset 2px 0 rgba(255,255,255,.05), inset -3px 0 rgba(0,0,0,.45), 4px 8px 9px rgba(0,0,0,.55); transform:rotate(var(--lean,0deg)); transform-origin:50% 100%; cursor:pointer; transition:transform .38s cubic-bezier(.2,.8,.2,1), filter .38s ease, box-shadow .38s ease; }
.book::before, .book::after { content:""; position:absolute; left:8px; right:8px; height:1px; background:rgba(213,185,120,.5); }
.book::before { top:15px; } .book::after { bottom:15px; }
.book:hover, .book:focus-visible { z-index:4; transform:translateY(-24px) rotate(0) scale(1.04); filter:brightness(1.2); box-shadow:0 28px 20px rgba(0,0,0,.7), inset 2px 0 rgba(255,255,255,.08); }
.book__title { position:absolute; inset:29px 8px 34px; display:flex; align-items:center; justify-content:center; writing-mode:vertical-rl; transform:rotate(180deg); color:inherit; font:500 12px/1.05 var(--serif); letter-spacing:.04em; text-align:center; }
.book__number { position:absolute; bottom:20px; left:0; right:0; font:8px var(--sans); letter-spacing:.08em; text-align:center; opacity:.66; }
.book__stamp { position:absolute; top:21px; left:50%; width:4px; height:4px; border:1px solid currentColor; border-radius:50%; translate:-50%; opacity:.6; }
.book[data-color="ink"] { --book-color:#29251f; }
.book[data-color="paper"] { --book-color:#756b58; color:#191714; }
.book[data-color="brass"] { --book-color:#5d4428; }
.book[data-color="water"] { --book-color:#183a48; }
.book[data-color="green"] { --book-color:#263d34; }
.book[data-color="map"] { --book-color:#4a3b28; }
.book[data-color="red"] { --book-color:#682732; }
.book[data-color="plum"] { --book-color:#412c42; }
.book[data-color="school"] { --book-color:#263e4c; }
.book[data-color="void"] { --book-color:#050505; }
.book[data-color="rust"] { --book-color:#66382a; }
.book[data-color="slate"] { --book-color:#30383c; }
.book[data-color="cycle"] { --book-color:#26363b; background-image:linear-gradient(180deg,rgba(128,42,50,.35),transparent 30%,rgba(32,86,101,.35)),linear-gradient(90deg,rgba(0,0,0,.6),transparent 45%,rgba(0,0,0,.35)); }
.book[data-color="blue"] { --book-color:#25384d; }
.book[data-color="black"] { --book-color:#111; }

.library-notice { max-width:1180px; margin:0 auto 150px; display:grid; grid-template-columns:auto 1fr 1.2fr; align-items:center; gap:34px; padding:34px 39px; border:1px solid rgba(170,137,81,.28); background:linear-gradient(100deg,rgba(170,137,81,.055),transparent); }
.library-notice__seal { width:64px; }
.library-notice h2 { margin:8px 0 0; font:500 28px/1.08 var(--serif); }
.library-notice > p { margin:0; padding-left:35px; border-left:1px solid rgba(170,137,81,.2); color:#88837a; font:15px/1.55 var(--serif); }
footer { padding:42px clamp(24px,6vw,90px); border-top:1px solid rgba(170,137,81,.14); color:#595852; text-align:center; }
footer > p { color:#8c806a; font:9px var(--sans); letter-spacing:.26em; }
footer > div { display:flex; justify-content:space-between; margin-top:35px; font-size:9px; letter-spacing:.1em; text-transform:uppercase; }

dialog { max-width:none; max-height:none; margin:0; padding:0; border:0; color:inherit; background:transparent; }
dialog::backdrop { background:rgba(0,0,0,.86); backdrop-filter:blur(10px); }
.reader { width:100vw; height:100dvh; }
.reader[open] { animation:dialogIn .5s ease both; }
@keyframes dialogIn { from { opacity:0; transform:scale(.98); } }
.reader__shell { height:100%; display:flex; flex-direction:column; background:radial-gradient(circle at 70% 28%,rgba(56,71,72,.16),transparent 35%),#090b0c; }
.reader__header { min-height:74px; display:flex; align-items:center; justify-content:space-between; padding:0 30px; border-bottom:1px solid rgba(170,137,81,.18); }
.reader__header > div:first-child { display:flex; align-items:center; gap:15px; }
.reader__header span, .reader__header b { font:9px var(--sans); letter-spacing:.16em; text-transform:uppercase; }
.reader__header span { color:var(--brass); } .reader__header b { color:#65635e; font-weight:400; }
.reader__header-actions { display:flex; align-items:center; gap:12px; }
.reader__header-actions button, .reader__header-actions a { display:inline-flex; align-items:center; justify-content:center; gap:7px; border:1px solid #34332f; background:#111314; padding:9px 12px; color:#8b877f; font:500 9px var(--sans); letter-spacing:.1em; text-decoration:none; text-transform:uppercase; cursor:pointer; transition:border-color .2s ease, color .2s ease, background .2s ease; }
.reader__header-actions button:hover, .reader__header-actions a:hover, .reader__header-actions button:focus-visible, .reader__header-actions a:focus-visible { border-color:rgba(170,137,81,.72); color:#d4c6a4; background:#171817; }
.reader__header-actions [hidden] { display:none !important; }
.reader__download span { color:var(--brass-light); font-size:13px; line-height:1; }
.reader__header-actions .reader__close { width:38px; height:38px; padding:0; font:300 25px var(--sans); }
.reader__body { min-height:0; flex:1; display:grid; grid-template-columns:minmax(260px,340px) minmax(0,1fr); }
.reader__aside { min-height:0; overflow:auto; padding:46px 35px; border-right:1px solid rgba(170,137,81,.17); background:rgba(0,0,0,.22); }
.reader__volume { color:var(--brass); font:9px var(--sans); letter-spacing:.2em; }
.reader__aside h2 { margin:12px 0 15px; font:500 36px/1 var(--serif); }
.reader__aside > p:not(.reader__volume,.reader__position) { color:#8f8b82; font:15px/1.5 var(--serif); }
.reader__progress { height:2px; margin:30px 0 10px; background:#252728; }
.reader__progress span { display:block; height:100%; width:0; background:var(--brass); transition:width .35s ease; }
.reader__position { color:#6e6c66; font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.toc-toggle { width:100%; display:flex; justify-content:space-between; margin-top:30px; padding:13px 0; border:0; border-block:1px solid #262827; background:none; color:#a9a49a; font-size:10px; letter-spacing:.15em; text-transform:uppercase; cursor:pointer; }
.toc { display:none; padding:15px 0 80px; }
.toc.is-open { display:block; }
.toc button { width:100%; display:grid; grid-template-columns:1fr auto; gap:12px; padding:8px 0; border:0; background:none; color:#6f6e69; text-align:left; font:12px/1.25 var(--serif); cursor:pointer; }
.toc button:hover { color:var(--paper); }
.toc button span { color:#4d4e4a; font:8px var(--sans); }
.page { position:relative; width:min(760px,calc(100% - 90px)); height:calc(100% - 70px); align-self:center; justify-self:center; overflow:auto; padding:52px clamp(35px,5vw,76px) 40px; color:var(--ink); background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.5),transparent 25%),repeating-linear-gradient(0deg,transparent 0 30px,rgba(50,41,28,.025) 31px),var(--paper); box-shadow:0 30px 60px rgba(0,0,0,.6), inset 0 0 60px rgba(86,67,39,.08); }
.page::before { content:""; position:fixed; pointer-events:none; }
.page__watermark { position:absolute; inset:50% auto auto 50%; translate:-50% -50%; color:rgba(73,59,37,.035); font:500 260px var(--serif); pointer-events:none; }
.page__running-head { position:relative; z-index:1; display:flex; justify-content:space-between; padding-bottom:13px; border-bottom:1px solid rgba(46,40,30,.24); color:#6f6758; font:8px var(--sans); letter-spacing:.15em; text-transform:uppercase; }
.page__content { position:relative; z-index:1; max-width:620px; margin:46px auto 60px; }
.page__content h3 { margin:38px 0 18px; color:#191916; font:600 26px/1.06 var(--serif); letter-spacing:.015em; text-wrap:balance; }
.page__content h3:first-child { margin-top:0; font-size:35px; text-align:center; }
.page__content p { margin:0 0 16px; color:#282720; font:500 19px/1.58 var(--serif); }
.page__content p.label { margin-top:24px; color:#594b34; font-size:15px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.page__content p.list { padding-left:18px; border-left:2px solid rgba(127,38,51,.4); }
.page__folio { position:sticky; z-index:2; bottom:-40px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; padding:15px 0 0; border-top:1px solid rgba(46,40,30,.2); color:#776e5e; background:linear-gradient(transparent,var(--paper) 35%); font:8px var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.page__folio b { color:#4d463b; font:500 14px var(--serif); }
.page__folio span:last-child { text-align:right; }
.reader__footer { min-height:70px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 28px; border-top:1px solid rgba(170,137,81,.17); }
.reader__footer button { border:0; background:none; color:#9a958b; font-size:10px; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.reader__footer button:first-child { justify-self:start; } .reader__footer button:last-child { justify-self:end; }
.reader__footer button:disabled { opacity:.25; cursor:not-allowed; }
.reader__footer label { display:flex; align-items:center; gap:7px; color:#6e6b64; font-size:9px; text-transform:uppercase; }
.reader__footer input { width:48px; padding:6px; border:1px solid #313331; color:#d0c8b8; background:#101213; text-align:center; }
.reader__footer i { font-style:normal; }

.search, .index-dialog { width:100vw; height:100dvh; }
.search[open], .index-dialog[open] { animation:dialogIn .35s ease both; }
.search__shell, .index-dialog__shell { width:min(900px,calc(100% - 40px)); max-height:calc(100dvh - 80px); margin:40px auto; overflow:auto; border:1px solid rgba(170,137,81,.3); background:linear-gradient(145deg,#111416,#080a0b); box-shadow:0 40px 100px #000; }
.search header, .index-dialog header { position:sticky; top:0; z-index:3; display:flex; justify-content:space-between; align-items:center; padding:25px 30px; border-bottom:1px solid rgba(170,137,81,.18); background:#0d0f10; }
.search header p, .index-dialog header p { margin:0 0 4px; color:var(--brass); font-size:8px; letter-spacing:.2em; text-transform:uppercase; }
.search header h2, .index-dialog header h2 { margin:0; font:500 28px var(--serif); }
.search header button, .index-dialog header button { border:0; background:none; color:#7a7770; font-size:27px; cursor:pointer; }
.search__field { display:flex; align-items:center; margin:25px 30px 13px; border:1px solid #373836; background:#080a0b; }
.search__field > span { padding-left:18px; color:var(--brass); font-size:24px; }
.search__field input { min-width:0; flex:1; padding:18px 15px; border:0; outline:0; color:var(--paper); background:transparent; font:20px var(--serif); }
.search__field kbd { margin-right:13px; }
.search__status { padding:5px 30px 20px; color:#66655f; font-size:9px; letter-spacing:.08em; }
.search__results { padding:0 30px 35px; }
.search-result { width:100%; display:grid; grid-template-columns:170px 1fr auto; gap:22px; padding:18px 0; border:0; border-top:1px solid #252725; color:inherit; background:none; text-align:left; cursor:pointer; }
.search-result:hover { background:rgba(170,137,81,.035); }
.search-result__book { color:var(--brass); font:9px var(--sans); letter-spacing:.09em; text-transform:uppercase; }
.search-result p { margin:0; color:#aaa59b; font:14px/1.5 var(--serif); }
.search-result mark { color:#0b0b0a; background:var(--brass-light); }
.search-result__page { color:#5d5d59; font-size:9px; }
.volume-index { display:grid; grid-template-columns:1fr 1fr; padding:15px 30px 35px; }
.index-entry { display:grid; grid-template-columns:40px 1fr; gap:12px; padding:18px 12px; border:0; border-bottom:1px solid #252725; background:none; color:inherit; text-align:left; cursor:pointer; }
.index-entry:hover { background:rgba(170,137,81,.04); }
.index-entry > span { color:var(--brass); font:500 14px var(--serif); }
.index-entry b { display:block; font:500 18px var(--serif); }
.index-entry small { display:block; margin-top:5px; color:#65655f; font-size:8px; letter-spacing:.08em; text-transform:uppercase; }
.book-tooltip { position:fixed; z-index:1200; width:min(328px,calc(100vw - 32px)); padding:17px 19px 16px; border:1px solid rgba(170,137,81,.48); color:#bdb7ab; background:linear-gradient(145deg,rgba(18,20,20,.985),rgba(7,9,10,.985)); box-shadow:0 22px 52px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.025); pointer-events:none; opacity:0; visibility:hidden; transform:translate(-50%,calc(-100% - 17px)) scale(.97); transition:opacity .16s ease,transform .16s ease,visibility .16s; }
.book-tooltip::after { content:""; position:absolute; left:50%; bottom:-6px; width:10px; height:10px; border-right:1px solid rgba(170,137,81,.48); border-bottom:1px solid rgba(170,137,81,.48); background:#090b0b; transform:translateX(-50%) rotate(45deg); }
.book-tooltip.is-visible { opacity:1; visibility:visible; transform:translate(-50%,calc(-100% - 17px)) scale(1); }
.book-tooltip.is-below { transform:translate(-50%,17px) scale(.97); }
.book-tooltip.is-below.is-visible { transform:translate(-50%,17px) scale(1); }
.book-tooltip.is-below::after { top:-6px; bottom:auto; border:0; border-left:1px solid rgba(170,137,81,.48); border-top:1px solid rgba(170,137,81,.48); }
.book-tooltip > span { display:block; color:var(--brass); font:8px var(--sans); letter-spacing:.16em; text-transform:uppercase; }
.book-tooltip strong { display:block; margin-top:8px; color:#e1d8c5; font:500 21px/1.05 var(--serif); }
.book-tooltip p { margin:8px 0 11px; color:#918d84; font:14px/1.42 var(--serif); }
.book-tooltip em { color:#69665f; font:8px var(--sans); font-style:normal; letter-spacing:.17em; text-transform:uppercase; }
.toast { position:fixed; z-index:1000; left:50%; bottom:28px; translate:-50% 20px; padding:12px 17px; border:1px solid rgba(170,137,81,.4); color:#c7bca5; background:#101213; font-size:9px; letter-spacing:.12em; text-transform:uppercase; opacity:0; visibility:hidden; transition:.3s ease; }
.toast.is-visible { opacity:1; visibility:visible; translate:-50% 0; }

@media (max-width: 900px) {
  .constitution-room { grid-template-columns:1fr; padding-top:80px; text-align:center; }
  .room-heading { padding:0; }
  .room-heading h2 { max-width:none; }
  .lectern-wrap { grid-row:2; }
  .constitution-copy { max-width:560px; margin:auto; }
  .library-notice { grid-template-columns:auto 1fr; margin-inline:20px; }
  .library-notice > p { grid-column:1 / -1; padding:20px 0 0; border-left:0; border-top:1px solid rgba(170,137,81,.2); }
  .reader__body { grid-template-columns:240px 1fr; }
  .page { width:calc(100% - 32px); }
}

@media (max-width: 680px) {
  .topbar { padding:18px; }
  .wordmark small, .text-button, .search-trigger span, .search-trigger kbd { display:none; }
  .search-trigger { min-width:42px; width:42px; height:42px; padding:0; justify-content:center; }
  .search-trigger::before { content:"⌕"; color:var(--brass); font-size:20px; }
  .hero { padding-inline:18px; }
  .hero__eyebrow span { width:20px; }
  .hero__classification { max-width:290px; line-height:1.5; }
  .hero h1 { font-size:72px; }
  .hero__intro { font-size:18px; }
  .constitution-room { padding-inline:18px; }
  .lectern-wrap { height:500px; transform:scale(.82); margin-block:-45px; }
  .stacks { padding:90px 14px 110px; }
  .stacks__heading { align-items:center; margin-inline:9px; }
  .stacks__heading h2 { font-size:39px; }
  .archive-count { display:none; }
  .shelf { min-height:245px; margin-bottom:75px; padding-inline:12px; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }
  .books { width:max-content; min-width:100%; justify-content:flex-start; }
  .book { --w:62px !important; }
  .library-notice { grid-template-columns:1fr; text-align:center; }
  .library-notice__seal { margin:auto; }
  footer > div { flex-direction:column; gap:10px; }
  .reader__header { min-height:58px; padding:0 14px; }
  .reader__header > div:first-child b, #bookmarkPage { display:none; }
  .reader__header-actions { gap:7px; }
  .reader__header-actions a { padding:8px 9px; font-size:8px; }
  .reader__body { display:block; overflow:auto; }
  .reader__aside { min-height:auto; padding:22px 23px 15px; border-right:0; border-bottom:1px solid rgba(170,137,81,.15); overflow:visible; }
  .reader__aside h2 { font-size:29px; margin-block:8px; }
  .reader__aside > p:not(.reader__volume,.reader__position), .reader__progress, .reader__position { display:none; }
  .toc-toggle { margin-top:15px; }
  .toc { max-height:220px; overflow:auto; padding-bottom:15px; }
  .page { width:100%; height:auto; min-height:calc(100dvh - 210px); padding:36px 24px 30px; box-shadow:none; }
  .page__content { margin-top:35px; }
  .page__content h3:first-child { font-size:29px; }
  .page__content p { font-size:19px; }
  .reader__footer { min-height:60px; padding:0 12px; }
  .reader__footer button { font-size:0; }
  .reader__footer button span { font-size:18px; }
  .reader__footer label span { display:none; }
  .search__shell, .index-dialog__shell { width:100%; max-height:100dvh; height:100dvh; margin:0; border:0; }
  .search__field { margin-inline:17px; }
  .search__results { padding-inline:17px; }
  .search-result { grid-template-columns:1fr auto; gap:8px; }
  .search-result p { grid-column:1 / -1; }
  .volume-index { grid-template-columns:1fr; padding-inline:18px; }
}

/* The text below the archive is intentionally outside the sanctioned visual system. */
.reversal-vault {
  position:relative;
  isolation:isolate;
  min-height:940px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:150px 24px 135px;
  border-block:1px solid rgba(127,18,29,.3);
  color:#d3c9b4;
  background:
    linear-gradient(180deg,#050708 0,#090506 13%,transparent 35%,#030303 92%),
    radial-gradient(ellipse at 50% 43%,rgba(107,8,19,.22),transparent 42%),
    repeating-linear-gradient(93deg,transparent 0 97px,rgba(255,255,255,.008) 98px 99px),
    #030303;
  overflow:hidden;
}
.reversal-vault::before { content:""; position:absolute; z-index:-2; inset:0; background:linear-gradient(110deg,transparent 15%,rgba(108,0,14,.08) 49%,transparent 73%); animation:reversalPulse 8s ease-in-out infinite alternate; }
.reversal-vault::after { content:"NO CATALOG ENTRY EXISTS"; position:absolute; z-index:-1; inset:auto 0 67px; color:rgba(142,22,34,.12); font:500 clamp(55px,10vw,150px)/.8 var(--condensed); letter-spacing:-.04em; text-align:center; white-space:nowrap; transform:scaleX(-1); }
.reversal-vault__rupture { position:absolute; top:0; left:50%; width:min(1100px,90vw); height:120px; translate:-50% -50%; filter:drop-shadow(0 15px 20px #000); }
.reversal-vault__rupture::before,.reversal-vault__rupture::after,.reversal-vault__rupture span { content:""; position:absolute; top:50%; height:1px; background:linear-gradient(90deg,transparent,#6d1721,transparent); }
.reversal-vault__rupture::before { left:0; width:47%; transform:rotate(2deg); }
.reversal-vault__rupture::after { right:0; width:47%; transform:rotate(-2deg); }
.reversal-vault__rupture span { left:46%; width:9%; transform:rotate(83deg); }
.reversal-vault__heading { max-width:760px; margin-bottom:58px; text-align:center; }
.reversal-vault__heading p { margin:0 0 13px; color:#8d2530; font:9px var(--sans); letter-spacing:.27em; text-transform:uppercase; }
.reversal-vault__heading h2 { margin:0; color:#e0d4bd; font:500 clamp(37px,5vw,65px)/.98 var(--serif); text-wrap:balance; text-shadow:0 12px 45px #000; }
.reversal-vault__heading > span { display:block; margin-top:18px; color:#6f6960; font:italic 15px var(--serif); letter-spacing:.03em; }
.reversal-scroll { position:relative; width:min(690px,calc(100vw - 72px)); height:250px; display:grid; place-items:center; margin:0; padding:0 43px; border:0; background:none; cursor:pointer; perspective:900px; filter:drop-shadow(0 32px 32px rgba(0,0,0,.9)); }
.reversal-scroll__skin { position:relative; z-index:1; width:100%; height:178px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-block:1px solid #5d3429; color:#231715; background:radial-gradient(circle at 50% 25%,rgba(232,214,168,.23),transparent 36%),repeating-linear-gradient(0deg,rgba(49,19,14,.05) 0 1px,transparent 1px 7px),linear-gradient(90deg,#5e4638,#a68667 8%,#725646 53%,#a48362 90%,#4a332a); box-shadow:inset 0 0 42px rgba(43,8,4,.7),0 0 0 1px rgba(217,174,118,.07); clip-path:polygon(0 4%,4% 0,7% 4%,12% 1%,17% 5%,22% 2%,28% 5%,34% 1%,39% 4%,45% 0,52% 4%,58% 1%,64% 5%,70% 1%,76% 5%,82% 2%,88% 5%,94% 1%,100% 4%,99% 96%,94% 99%,88% 95%,82% 99%,76% 95%,69% 98%,63% 94%,57% 99%,50% 95%,43% 99%,36% 95%,29% 99%,22% 95%,15% 99%,8% 95%,1% 98%); transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .4s ease; }
.reversal-scroll__skin small,.reversal-scroll__skin b,.reversal-scroll__skin em { position:relative; z-index:5; text-shadow:0 1px 0 rgba(232,207,165,.25),0 2px 8px rgba(0,0,0,.3); }
.reversal-scroll__skin small { color:#250e11; font:800 9px var(--sans); letter-spacing:.2em; }
.reversal-scroll__skin b { margin-top:18px; color:#100809; font:700 clamp(27px,5vw,42px)/.85 var(--serif); letter-spacing:.02em; }
.reversal-scroll__skin b span { display:inline-block; color:#760e1d; text-shadow:0 1px 0 rgba(235,190,145,.22),0 0 12px rgba(86,0,12,.2); }
.reversal-scroll__skin em { margin-top:18px; color:#351619; font:italic 600 19px var(--serif); }
.reversal-scroll__rod { position:absolute; z-index:3; top:16px; bottom:16px; width:35px; border-radius:50%; background:linear-gradient(90deg,#110b08,#7a5032 21%,#b78a58 48%,#3a2317 74%,#090605); box-shadow:0 8px 18px #000,inset 0 0 0 2px #1a0e0b; }
.reversal-scroll__rod::before,.reversal-scroll__rod::after { content:""; position:absolute; left:50%; width:56px; height:20px; translate:-50%; border-radius:50%; background:radial-gradient(ellipse,#af8250 0 13%,#51311f 26% 52%,#100a07 55%); }
.reversal-scroll__rod::before { top:-8px; }.reversal-scroll__rod::after { bottom:-8px; }
.reversal-scroll__rod--left { left:29px; }.reversal-scroll__rod--right { right:29px; }
.reversal-scroll__chain { position:absolute; z-index:2; inset:26% 8%; pointer-events:none; filter:drop-shadow(0 4px 3px #000); opacity:.82; }
.reversal-scroll__chain::before,.reversal-scroll__chain::after { content:""; position:absolute; left:0; right:0; height:9px; background:repeating-linear-gradient(100deg,transparent 0 12px,#1b1714 13px 17px,#62564b 18px 21px,#181411 22px 29px); }
.reversal-scroll__chain::before { top: -12px;  }
.reversal-scroll__chain::after { bottom:-12px; }
.reversal-scroll:hover .reversal-scroll__skin,.reversal-scroll:focus-visible .reversal-scroll__skin { transform:translateZ(38px) rotateX(-2deg); filter:brightness(1.12); }
.reversal-codices { width:min(1050px,100%); display:grid; grid-template-columns:repeat(7,1fr); gap:1px; margin-top:64px; border:1px solid #1e1515; background:#13090b; }
.reversal-codex { min-height:116px; display:flex; flex-direction:column; justify-content:space-between; padding:15px 13px; color:#494343; background:linear-gradient(145deg,#0e0d0d,#070707); }
.reversal-codex span { color:#4b1118; font:500 18px var(--serif); }
.reversal-codex b { font:500 13px/1.1 var(--serif); }
.reversal-codex small { color:#393535; font:7px var(--sans); letter-spacing:.16em; text-transform:uppercase; }
.reversal-codex.is-present { color:#d0bdae; background:linear-gradient(145deg,#251012,#090707); box-shadow:inset 0 -2px #7a1723,0 0 35px rgba(104,12,23,.14); }
.reversal-codex.is-present span,.reversal-codex.is-present small { color:#a52e3b; }
@keyframes reversalPulse { to { opacity:.4; transform:translateX(7%); } }
@keyframes sealKnock { 40% { transform:translate(-50%,-50%) scale(1.09) rotate(-4deg); } }

.reversal-warning { width:100vw; height:100dvh; }
.reversal-warning::backdrop { background:radial-gradient(circle at 50% 48%,rgba(89,8,18,.2),rgba(0,0,0,.96) 50%); backdrop-filter:blur(14px) saturate(.35); }
.reversal-warning[open] { display:grid; place-items:center; animation:warningArrives .65s ease both; }
.reversal-warning__shell { position:relative; width:min(720px,calc(100vw - 34px)); max-height:calc(100dvh - 34px); overflow:auto; padding:55px clamp(28px,6vw,74px) 38px; border:1px solid #49151b; color:#c9bfb0; background:radial-gradient(circle at 50% 22%,rgba(114,14,27,.16),transparent 28%),repeating-linear-gradient(90deg,transparent 0 50px,rgba(255,255,255,.007) 51px),#090708; box-shadow:0 50px 140px #000,inset 0 0 90px #000; text-align:center; }
.reversal-warning__shell::before { content:""; position:absolute; inset:12px; border:1px solid rgba(126,35,45,.18); pointer-events:none; }
.reversal-warning__close { position:absolute; z-index:2; top:15px; right:16px; width:38px; height:38px; border:1px solid #2c2020; color:#776c68; background:#080707; font-size:24px; cursor:pointer; }
.reversal-warning__sigil { width:82px; aspect-ratio:1; display:grid; place-items:center; margin:0 auto 22px; border:1px solid #741923; border-radius:50%; box-shadow:0 0 0 7px rgba(107,13,25,.08),0 0 50px rgba(151,18,34,.15),inset 0 0 25px #000; }
.reversal-warning__sigil::before,.reversal-warning__sigil::after { content:""; position:absolute; width:46px; height:1px; background:#741923; }
.reversal-warning__sigil::before { transform:rotate(45deg); }.reversal-warning__sigil::after { transform:rotate(-45deg); }
.reversal-warning__sigil span { color:#b73845; font:500 18px var(--serif); }
.reversal-warning__kicker { color:#a12a37; font:8px var(--sans); letter-spacing:.25em; text-transform:uppercase; }
.reversal-warning h2 { margin:11px auto 24px; color:#e1d7c4; font:500 clamp(34px,6vw,54px)/.96 var(--serif); text-wrap:balance; }
.reversal-warning blockquote { margin:0 auto 27px; padding:21px 0; border-block:1px solid rgba(116,25,35,.25); color:#9c9387; font:italic 17px/1.55 var(--serif); }
.reversal-warning__doctrine { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin:0 0 23px; background:#291316; text-align:left; }
.reversal-warning__doctrine p { margin:0; padding:16px; color:#888078; background:#0c090a; font:14px/1.4 var(--serif); }
.reversal-warning__doctrine span { display:block; margin-bottom:7px; color:#a52d39; font:7px var(--sans); letter-spacing:.2em; text-transform:uppercase; }
.reversal-warning__instruction { color:#6c6360; font:8px var(--sans); letter-spacing:.17em; text-transform:uppercase; }
.unseal-button { position:relative; isolation:isolate; width:min(380px,100%); min-height:72px; overflow:hidden; border:1px solid #5a1921; color:#c9bcb0; background:#10090a; cursor:pointer; user-select:none; touch-action:none; }
.unseal-button__progress { position:absolute; z-index:-1; inset:0 100% 0 0; background:linear-gradient(90deg,#350a10,#831825); }
.unseal-button.is-holding .unseal-button__progress { animation:holdFill 1.45s linear forwards; }
.unseal-button b,.unseal-button small { display:block; }.unseal-button b { font:500 12px var(--sans); letter-spacing:.16em; text-transform:uppercase; }.unseal-button small { margin-top:7px; color:#6d615e; font:italic 12px var(--serif); }
.reversal-warning__leave { display:block; margin:18px auto 0; border:0; color:#5f5854; background:none; font:8px var(--sans); letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
@keyframes holdFill { to { right:0; } }
@keyframes warningArrives { from { opacity:0; transform:scale(1.035); filter:blur(8px); } }

.reversal-reader { width:100vw; height:100dvh; }
.reversal-reader::backdrop { background:#000; }
.reversal-reader[open] { animation:reversalOpen .9s cubic-bezier(.2,.8,.2,1) both; }
.reversal-reader__shell { position:relative; height:100%; display:flex; flex-direction:column; color:#c9b9a8; background:radial-gradient(ellipse at 67% 38%,rgba(107,13,25,.16),transparent 36%),repeating-linear-gradient(90deg,transparent 0 119px,rgba(137,36,47,.013) 120px),#030303; overflow:hidden; }
.reversal-reader__shell::before { content:""; position:absolute; z-index:0; inset:0; pointer-events:none; background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.82) 100%); }
.reversal-reader__header { position:relative; z-index:5; min-height:72px; display:flex; align-items:center; justify-content:space-between; padding:0 27px; border-bottom:1px solid #301114; background:rgba(4,3,3,.86); }
.reversal-reader__header > div:first-child span,.reversal-reader__status span { display:block; color:#8b1f2b; font:8px var(--sans); letter-spacing:.18em; text-transform:uppercase; }
.reversal-reader__header > div:first-child b { display:block; margin-top:5px; color:#a99c8d; font:500 15px var(--serif); }
.reversal-reader__status { display:flex; align-items:center; gap:17px; text-align:right; }
.reversal-reader__status span { color:#665a57; }
.reversal-reader__status button { padding:9px 12px; border:1px solid #352024; color:#897c74; background:#0a0808; font:8px var(--sans); letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.reversal-reader__body { position:relative; z-index:1; min-height:0; flex:1; display:grid; grid-template-columns:minmax(250px,320px) minmax(0,1fr); }
.reversal-reader__aside { min-height:0; overflow:auto; padding:42px 31px 70px; border-right:1px solid #281012; background:linear-gradient(180deg,rgba(88,13,23,.08),transparent 35%),rgba(0,0,0,.26); }
.reversal-reader__latin { margin:0; color:#9e2633; font:8px var(--sans); letter-spacing:.21em; text-transform:uppercase; }
.reversal-reader__aside h2 { margin:12px 0 17px; color:#d4c5b2; font:500 38px/.9 var(--serif); }
.reversal-reader__aside h2 span { display:inline-block; margin-top:8px; color:#8d1e2a; font-size:.75em; }
.reversal-reader__aside > p:not(.reversal-reader__latin) { color:#786f68; font:15px/1.5 var(--serif); }
.reversal-contact { display:grid; grid-template-columns:1fr auto; gap:8px 15px; margin:27px 0 25px; padding:15px 0; border-block:1px solid #271719; }
.reversal-contact span { align-self:center; color:#6d5e5c; font:8px var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.reversal-contact b { color:#a62a37; font:500 27px/1 var(--serif); }
.reversal-contact small { grid-column:1/-1; min-height:31px; color:#8f7c76; font:italic 13px/1.35 var(--serif); }
.reversal-toc-toggle { width:100%; display:flex; justify-content:space-between; padding:13px 0; border:0; border-block:1px solid #261719; color:#8d7f76; background:none; font:8px var(--sans); letter-spacing:.15em; text-transform:uppercase; cursor:pointer; }
.reversal-toc { display:none; padding:10px 0 22px; }
.reversal-toc.is-open { display:block; }
.reversal-toc button { width:100%; display:grid; grid-template-columns:29px 1fr; gap:7px; padding:7px 5px; border:0; color:#625956; background:none; text-align:left; cursor:pointer; }
.reversal-toc button span { color:#761a25; font:9px var(--serif); }
.reversal-toc button b { font:500 12px/1.15 var(--serif); }
.reversal-toc button:hover,.reversal-toc button.is-current { color:#c4b3a4; background:linear-gradient(90deg,rgba(125,21,33,.14),transparent); }
.forget-reader { width:100%; margin-top:20px; padding:10px; border:1px solid #241719; color:#554e4c; background:none; font:7px var(--sans); letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.reversal-stage { position:relative; min-width:0; min-height:0; display:grid; grid-template-columns:minmax(0,1fr) 190px; align-items:center; gap:26px; padding:34px clamp(20px,4vw,70px); overflow:hidden; }
.reversal-stage::before { content:""; position:absolute; inset:8% 4% 8% 3%; background:radial-gradient(ellipse,rgba(103,15,26,.12),transparent 58%); filter:blur(30px); }
.reversal-page { position:relative; z-index:2; width:min(760px,100%); height:calc(100dvh - 190px); justify-self:center; overflow:auto; padding:44px clamp(35px,6vw,78px) 40px; color:#bdb0a0; background:radial-gradient(circle at 22% 12%,rgba(183,137,101,.09),transparent 25%),repeating-linear-gradient(1deg,transparent 0 28px,rgba(112,41,34,.025) 29px),linear-gradient(98deg,#1b1412,#261b17 48%,#171110); box-shadow:0 35px 85px #000,inset 0 0 75px rgba(0,0,0,.7),inset 0 0 0 1px rgba(125,60,49,.28); scrollbar-color:#5b1821 #0d0909; clip-path:polygon(0 1%,4% 0,8% 1%,12% 0,17% 1%,22% 0,28% 1%,34% 0,40% 1%,45% 0,51% 1%,57% 0,63% 1%,68% 0,74% 1%,80% 0,86% 1%,92% 0,97% 1%,100% 0,99% 98%,95% 100%,90% 99%,85% 100%,79% 99%,73% 100%,67% 99%,61% 100%,55% 99%,49% 100%,43% 99%,37% 100%,31% 99%,25% 100%,19% 99%,13% 100%,7% 99%,1% 100%); }
.reversal-page::before { content:""; position:absolute; top:0; bottom:0; left:50%; width:1px; background:linear-gradient(transparent,rgba(101,26,31,.2),transparent); box-shadow:0 0 30px #000; opacity:.7; pointer-events:none; }
.reversal-page__veins { position:fixed; inset:0; pointer-events:none; opacity:.28; background:linear-gradient(113deg,transparent 0 17%,rgba(103,22,29,.13) 17.2% 17.35%,transparent 17.6%),linear-gradient(74deg,transparent 0 81%,rgba(103,22,29,.11) 81.2% 81.35%,transparent 81.7%); }
.reversal-page__mirror { position:absolute; right:-18px; top:55%; color:rgba(122,27,38,.22); font:500 9px var(--sans); letter-spacing:.25em; writing-mode:vertical-rl; transform:scaleY(-1); text-transform:uppercase; }
.reversal-page__head { position:relative; display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; padding-bottom:16px; border-bottom:1px solid rgba(128,46,47,.34); color:#75303a; font:8px var(--sans); letter-spacing:.14em; text-transform:uppercase; }
.reversal-page__head b { overflow:hidden; color:#7d6d65; font-weight:400; text-overflow:ellipsis; white-space:nowrap; }
.reversal-page__head i { font-style:normal; }
.reversal-page__content { position:relative; z-index:1; max-width:580px; margin:47px auto 70px; }
.reversal-block { white-space:pre-line; }
.reversal-block--title { margin:0 0 10px; color:#c0ac94; font:500 clamp(40px,6vw,70px)/.8 var(--serif); text-align:center; }
.reversal-block--part { margin:8px 0; color:#9d2935; font:500 22px/1 var(--serif); letter-spacing:.06em; text-align:center; }
.reversal-block--chapter { margin:0 0 32px; color:#d2bfaa; font:500 clamp(32px,4vw,49px)/.92 var(--serif); text-align:center; text-wrap:balance; }
.reversal-block--section { margin:32px 0 15px; color:#a32c38; font:500 22px/1.05 var(--serif); }
.reversal-block--verse,.reversal-block--contents { margin:0 0 15px; color:#aa9c8e; font:500 17px/1.55 var(--serif); }
.reversal-block--contents { margin-left:14%; color:#81736c; }
.reversal-block--invocation { margin:10px auto; color:#bd9c83; font:italic 20px/1.2 var(--serif); text-align:center; }
.reversal-block--utterance { margin:21px 4%; padding:14px 20px; border-left:1px solid #8c1e2a; color:#d0bbaa; background:linear-gradient(90deg,rgba(112,16,28,.11),transparent); font:italic 20px/1.42 var(--serif); }
.reversal-block--marginalia { margin:23px -12px 23px 15%; padding:12px 16px; border:1px solid rgba(128,35,43,.25); color:#9d6d67; background:rgba(38,9,12,.18); font:italic 14px/1.45 var(--serif); transform:rotate(-.35deg); }
.breath-inscription { margin:0 0 40px; color:#b72e3d; font:500 9px var(--sans); letter-spacing:.25em; text-align:center; text-transform:uppercase; animation:inscriptionArrives 1s ease both; }
.reversal-mutation { position:relative; display:inline-block; margin-inline:1px; color:#d74250; text-shadow:0 0 15px rgba(216,39,57,.35); animation:wordBleeds 1.3s ease both; }
.reversal-mutation::after { content:""; position:absolute; left:0; right:0; bottom:1px; height:1px; background:#8b1724; transform:scaleX(.25); opacity:.7; }
.reversal-page__foot { position:sticky; bottom:-40px; display:grid; grid-template-columns:1fr auto 1fr; gap:17px; align-items:center; padding-top:16px; border-top:1px solid rgba(128,46,47,.25); color:#685953; background:linear-gradient(transparent,#191211 35%); font:7px var(--sans); letter-spacing:.15em; text-transform:uppercase; }
.reversal-page__foot b { color:#90212e; font:500 15px var(--serif); }.reversal-page__foot span:last-child { text-align:right; }
.reversal-page.is-turning { animation:reversalTurn .48s ease both; }
.breath-rite { position:relative; z-index:4; display:flex; flex-direction:column; align-items:center; text-align:center; }
.breath-button { position:relative; width:148px; aspect-ratio:1; display:grid; place-content:center; padding:18px; border:1px solid #5a1b23; border-radius:50%; color:#b2a297; background:radial-gradient(circle,#1a0d0f,#070505 67%); box-shadow:0 0 0 8px rgba(103,18,28,.06),inset 0 0 35px #000; cursor:pointer; user-select:none; touch-action:none; }
.breath-button::before,.breath-button::after { content:""; position:absolute; inset:15px; border:1px solid rgba(144,34,46,.23); border-radius:50%; }.breath-button::after { inset:26px; border-style:dashed; animation:breathOrbit 13s linear infinite; }
.breath-button b,.breath-button small { position:relative; z-index:2; display:block; }.breath-button b { font:500 11px/1.15 var(--sans); letter-spacing:.1em; text-transform:uppercase; }.breath-button small { margin-top:7px; color:#6c5f5b; font:italic 11px var(--serif); }
.breath-button__rings { position:absolute; inset:0; border-radius:50%; }
.breath-button.is-holding .breath-button__rings { animation:breathCharge 1.25s ease-out both; }
.breath-button.is-holding { border-color:#b32c3c; color:#e0cabb; }
.breath-rite p { max-width:160px; color:#5e5551; font:italic 12px/1.35 var(--serif); }
.reversal-stage__mist { position:absolute; z-index:6; left:8%; right:15%; top:40%; height:150px; opacity:0; pointer-events:none; background:radial-gradient(ellipse at center,rgba(211,207,195,.2),rgba(157,145,136,.08) 28%,transparent 69%); filter:blur(18px); transform:translateX(38%) scale(.6); }
.reversal-stage__mist.is-active { animation:mistAcross 1.5s ease-out both; }
.reversal-reader.is-breathing .reversal-page { animation:pageReceives 1.45s ease both; }
.reversal-reader.is-breathing .reversal-page__veins { opacity:.65; }
.reversal-reader__footer { position:relative; z-index:5; min-height:66px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 28px; border-top:1px solid #301114; background:#050404; }
.reversal-reader__footer button { border:0; color:#8a7c74; background:none; font:8px var(--sans); letter-spacing:.13em; text-transform:uppercase; cursor:pointer; }.reversal-reader__footer button:first-child { justify-self:start; }.reversal-reader__footer button:last-child { justify-self:end; }.reversal-reader__footer button:disabled { opacity:.23; }
.reversal-reader__footer div { display:flex; align-items:center; gap:13px; color:#6b5c58; font:8px var(--sans); letter-spacing:.13em; text-transform:uppercase; }.reversal-reader__footer div i { width:38px; height:1px; background:#741a25; }
@keyframes reversalOpen { from { opacity:0; clip-path:inset(50% 0); } to { clip-path:inset(0); } }
@keyframes reversalTurn { from { opacity:.1; transform:translateX(15px) skewY(.3deg); filter:blur(4px); } }
@keyframes breathCharge { from { box-shadow:0 0 0 0 rgba(171,40,54,.5); } to { box-shadow:0 0 0 65px rgba(171,40,54,0); } }
@keyframes breathOrbit { to { transform:rotate(360deg); } }
@keyframes mistAcross { 0% { opacity:0; transform:translateX(40%) scale(.55); } 35% { opacity:1; } 100% { opacity:0; transform:translateX(-55%) scale(1.4); } }
@keyframes pageReceives { 35% { filter:brightness(1.18) contrast(1.05); transform:scale(1.004); } }
@keyframes wordBleeds { from { opacity:0; filter:blur(5px); transform:translateY(-3px); } }
@keyframes inscriptionArrives { from { opacity:0; letter-spacing:.55em; } }

@media (max-width: 1050px) {
  .reversal-stage { grid-template-columns:minmax(0,1fr); padding-right:34px; }
  .breath-rite { position:absolute; right:31px; bottom:38px; }
  .breath-button { width:118px; background:rgba(9,5,6,.92); }
  .breath-rite p { display:none; }
  .reversal-page { padding-right:80px; }
}

@media (max-width: 760px) {
  .reversal-vault { min-height:900px; padding-inline:15px; }
  .reversal-vault__heading { margin-bottom:34px; }
  .reversal-scroll { width:100%; height:220px; padding-inline:24px; }
  .reversal-scroll__rod { width:26px; }.reversal-scroll__rod--left { left:18px; }.reversal-scroll__rod--right { right:18px; }.reversal-scroll__rod::before,.reversal-scroll__rod::after { width:40px; }
  .reversal-scroll__skin { height:155px; }.reversal-scroll__skin small { font-size:6px; }.reversal-scroll__skin em { font-size:11px; }
  .reversal-scroll__chain { left:5%; right:5%; }
  .reversal-codices { grid-template-columns:repeat(4,1fr); }.reversal-codex { min-height:91px; padding:10px; }.reversal-codex:nth-child(n+5) { display:none; }
  .reversal-warning__shell { padding-top:46px; }.reversal-warning__doctrine { grid-template-columns:1fr; }
  .reversal-reader__header { min-height:58px; padding:0 13px; }.reversal-reader__header > div:first-child span,.reversal-reader__status span { display:none; }.reversal-reader__header > div:first-child b { font-size:12px; }.reversal-reader__status button { padding:8px; }
  .reversal-reader__body { display:block; overflow:auto; }
  .reversal-reader__aside { min-height:auto; padding:17px 18px 11px; border-right:0; border-bottom:1px solid #281012; overflow:visible; }.reversal-reader__aside h2 { margin:6px 0; font-size:26px; }.reversal-reader__aside > p:not(.reversal-reader__latin),.reversal-contact,.forget-reader { display:none; }
  .reversal-toc-toggle { margin-top:12px; }.reversal-toc { max-height:190px; overflow:auto; }
  .reversal-stage { display:block; min-height:auto; padding:0; overflow:visible; }
  .reversal-page { width:100%; height:auto; min-height:calc(100dvh - 205px); padding:35px 27px 100px; clip-path:none; box-shadow:none; }.reversal-page::before { left:18px; }.reversal-page__head { grid-template-columns:1fr auto; }.reversal-page__head b { grid-column:1/-1; grid-row:2; }.reversal-page__mirror { display:none; }
  .reversal-page__content { margin-top:35px; }.reversal-block--verse,.reversal-block--contents { font-size:17px; }.reversal-block--marginalia { margin-left:8%; }
  .breath-rite { position:fixed; z-index:10; right:15px; bottom:72px; }.breath-button { width:104px; border-color:#8d2230; box-shadow:0 10px 35px #000; }.breath-button b { font-size:8px; }
  .reversal-reader__footer { position:sticky; bottom:0; min-height:58px; padding:0 14px; }.reversal-reader__footer button { font-size:0; }.reversal-reader__footer button span { font-size:18px; }
}

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