/* ==========================================================
   THE SOCIETY — shared stylesheet
   Layout: one reading column with a narrow margin column for
   marginalia, lit by a single candle off the top-left.
   ========================================================== */

@property --glow-a { syntax: '<number>';     inherits: true; initial-value: 0.22; }
@property --glow-x { syntax: '<percentage>'; inherits: true; initial-value: 18%; }
@property --glow-y { syntax: '<percentage>'; inherits: true; initial-value: 12%; }

:root {
  /* Color */
  --ink:    #090b0a;   /* page ground, green-black */
  --ink-2:  #111612;   /* raised surfaces */
  --bone:   #ebe8db;   /* body text */
  --parch:  #c3c8b8;   /* secondary text */
  --amber:  #7fae8f;   /* verdigris: links, highlights, sigils */
  --gold:   #cfe6cf;   /* hover glow on text */
  --violet: #3b2a4d;   /* rare detail */
  --teal:   #1f4a4a;   /* rare detail */
  --rule:   rgba(127, 174, 143, .26);
  --faint:  rgba(195, 200, 184, .72);
  --glow-c: 70, 140, 102;   /* candle colour as r,g,b */

  /* Type */
  --f-black: "UnifrakturCook", "Pirata One", "Old English Text MT", Georgia, serif;
  --f-body:  "Literata", "Iowan Old Style", Georgia, serif;
  --f-head:  "Cinzel", "Trajan Pro", Georgia, serif;
  --f-label: "Cinzel", "Trajan Pro", Georgia, serif;

  color-scheme: dark;
}

/* After 21:00 the candle burns colder */
html.late { --glow-c: 122, 92, 170; }
/* The unlisted volume is lit differently */
html:has(main.unlisted) { --glow-c: 104, 80, 158; }

*, *::before, *::after { box-sizing: border-box; }

html { background: var(--ink); }

body {
  margin: 0;
  min-height: 100vh;
  background: var(--ink);
  color: var(--bone);
  font-family: var(--f-body);
  font-size: clamp(18px, 0.5vw + 15px, 20px);
  line-height: 1.75;
  padding-left: max(16px, env(safe-area-inset-left, 0px));
  padding-right: max(16px, env(safe-area-inset-right, 0px));
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  animation: arrive 700ms ease-out backwards;
  transition: opacity 400ms ease;
}
body.leaving { opacity: 0; }
@keyframes arrive { from { opacity: 0; } }

::selection { background: rgba(127, 174, 143, .35); color: var(--bone); }

/* ---------- Atmosphere layers ---------- */
.atmos > * { position: fixed; inset: 0; pointer-events: none; }

.candle {
  z-index: 0;
  background:
    radial-gradient(circle at var(--glow-x) var(--glow-y),
      rgba(var(--glow-c), var(--glow-a)) 0%,
      rgba(var(--glow-c), calc(var(--glow-a) * .35)) 26%,
      transparent 62%);
  transition: --glow-a 1.8s ease-in-out, --glow-x 5s ease-in-out, --glow-y 5s ease-in-out;
  animation: flicker 4.3s infinite;
}
@keyframes flicker {
  0%, 100% { opacity: 1; }
  12% { opacity: .92; } 19% { opacity: .98; } 33% { opacity: .87; }
  41% { opacity: 1; }   58% { opacity: .94; } 63% { opacity: .85; }
  71% { opacity: .97; } 88% { opacity: .91; }
}

#dust { z-index: 1; width: 100%; height: 100%; }

.vignette {
  z-index: 1;
  background: radial-gradient(ellipse 85% 75% at 50% 45%, transparent 55%, rgba(0, 0, 0, .6) 100%);
}

.grain {
  z-index: 1;
  opacity: .035;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .85  0 0 0 0 .95  0 0 0 0 .85  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

.cursor-light {
  z-index: 1;
  inset: auto;
  left: 0; top: 0;
  width: 440px; height: 440px;
  margin: -220px 0 0 -220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--glow-c), .13), transparent 65%);
  opacity: 0;
  transition: opacity .5s;
  will-change: transform;
}
.cursor-light.on { opacity: 1; }

body.flare::after {
  content: "";
  position: fixed; inset: 0; z-index: 9;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, rgba(var(--glow-c), .45), transparent 70%);
  animation: flare .7s ease-out both;
}
@keyframes flare { from { opacity: 0; } 40% { opacity: 1; } to { opacity: .9; } }

/* ---------- Type ---------- */
h1, h2, h3 { font-weight: 400; margin: 0; text-wrap: balance; }

.ink {
  font-family: var(--f-black);
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.05;
  color: var(--bone);
  text-shadow: 0 0 22px rgba(var(--glow-c), .28);
  animation: ink 1.1s cubic-bezier(.2, .6, .2, 1) both;
}
@keyframes ink {
  from { filter: blur(7px); opacity: .15; letter-spacing: .09em; }
  to   { filter: blur(0);   opacity: 1;   letter-spacing: .02em; }
}

.label {
  font-family: var(--f-label);
  color: var(--amber);
  letter-spacing: .16em;
  font-size: .88rem;
  margin: 0;
}

a { color: var(--amber); text-decoration-thickness: 1px; text-underline-offset: .22em; transition: color .4s, text-shadow .4s; }
a:hover { color: var(--gold); text-shadow: 0 0 10px rgba(var(--glow-c), .7); }

:focus-visible { outline: 1px solid var(--amber); outline-offset: 4px; border-radius: 2px; }

/* Words that answer to a lingering cursor */
.glimmer { color: inherit; text-decoration: none; cursor: inherit; transition: color .7s, text-shadow .7s; }
.glimmer:hover, .glimmer:focus-visible { color: var(--gold); text-shadow: 0 0 14px rgba(var(--glow-c), .95); cursor: pointer; }

/* ---------- Sigils ---------- */
.sigil {
  display: block;
  width: 1.75rem; height: 1.75rem;
  color: var(--amber);
  opacity: calc(.5 + var(--near, 0) * .5);
  filter: drop-shadow(0 0 calc(var(--near, 0) * 12px) rgba(var(--glow-c), .9));
}
.sigil.big { width: clamp(5rem, 14vw, 7rem); height: clamp(5rem, 14vw, 7rem); }

.divider { display: block; width: min(15rem, 70%); height: 1.25rem; color: var(--amber); opacity: .6; }

/* ---------- Navigation rail ---------- */
.rail {
  position: fixed; z-index: 5;
  top: 0; bottom: 0; left: 0;
  width: 5rem;
  padding-left: env(safe-area-inset-left, 0px);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2.2rem;
  border-right: 1px solid rgba(127, 174, 143, .12);
  background: linear-gradient(90deg, rgba(9, 11, 10, .9), rgba(9, 11, 10, 0));
}
.rail a, .rail button {
  font: inherit;
  font-family: var(--f-label);
  font-size: .82rem;
  letter-spacing: .22em;
  color: var(--parch);
  text-decoration: none;
  background: none; border: 0; padding: .4rem; cursor: pointer;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}
.rail a.rail-mark { writing-mode: horizontal-tb; transform: none; }
.rail a:hover, .rail button:hover, .rail [aria-current="page"] { color: var(--amber); text-shadow: 0 0 10px rgba(var(--glow-c), .6); }

body:has(.rail) { padding-left: calc(5rem + max(16px, env(safe-area-inset-left, 0px))); }

/* ---------- Reading page ---------- */
main { position: relative; z-index: 2; }

.folio {
  max-width: 56rem;
  margin: 0 auto;
  padding-block: clamp(3rem, 8vw, 6rem) 6rem;
}
.measure { max-width: 40rem; }

.entry-head { display: grid; gap: 1rem; margin-bottom: 3rem; }
.entry-head h1 { font-size: clamp(2.6rem, 6vw, 4.2rem); }
.entry-head .sub { margin: 0; font-style: italic; color: var(--parch); font-size: 1.15em; }

.passage {
  display: grid;
  grid-template-columns: minmax(0, 40rem) 11rem;
  gap: 3rem;
  align-items: start;
}
.passage > p { margin: 0 0 1.25em; min-width: 0; }

.first::first-letter {
  font-family: var(--f-black);
  font-weight: 700;
  float: left;
  font-size: 4.4em;
  line-height: .82;
  padding: .06em .12em 0 0;
  color: var(--amber);
  text-shadow: 0 0 18px rgba(var(--glow-c), .5);
}

/* Marginalia */
.margin { padding-top: .35rem; font-size: .92rem; line-height: 1.55; color: var(--parch); }
.margin .note { margin: 0; font-style: italic; }
.mark {
  font: inherit; background: none; border: 0; padding: 0; cursor: pointer;
  display: inline-flex; align-items: center; gap: .6rem;
  color: var(--amber);
}
.mark .sigil { width: 1.4rem; height: 1.4rem; }
.whisper {
  display: block;
  margin-top: .5rem;
  font-style: italic;
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity .5s ease, transform .5s ease;
}
.margin:hover .whisper, .margin.open .whisper, .mark:focus-visible + .whisper { opacity: 1; transform: none; }

/* Plates */
.plate {
  margin: 2.5rem 0 3rem;
  max-width: 40rem;
  padding: 2rem 1.5rem 1.4rem;
  display: grid; justify-items: center; gap: 1rem;
  border: 1px solid var(--rule);
  outline: 1px solid var(--rule);
  outline-offset: 5px;
  background: linear-gradient(180deg, rgba(23, 17, 12, .6), rgba(23, 17, 12, .2));
}
.plate figcaption { font-family: var(--f-label); letter-spacing: .14em; font-size: .78rem; color: var(--parch); text-align: center; }

/* Footnotes */
sup a { text-decoration: none; font-family: var(--f-label); padding: 0 .1em; }
.notes {
  max-width: 40rem;
  margin: 3rem 0 0;
  padding: 1.5rem 0 0 1.2rem;
  border-top: 1px solid var(--rule);
  font-size: .92rem;
  line-height: 1.6;
  color: var(--parch);
  display: grid; gap: .6rem;
}

.folio-foot {
  max-width: 40rem;
  margin-top: 4rem;
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1rem;
  font-family: var(--f-label);
  letter-spacing: .14em;
  font-size: .82rem;
}
.folio-foot a { text-decoration: none; }
.folio-no { color: var(--faint); }

.late-only { display: none; }
html.late .late-only { display: block; }

/* ---------- Threshold ---------- */
.threshold {
  min-height: 100svh;
  display: grid; place-items: center;
  text-align: center;
  padding-block: 3rem;
}
.threshold-inner { display: grid; justify-items: center; gap: 1.4rem; max-width: 34rem; }
.threshold h1 { font-size: clamp(3.2rem, 11vw, 6.6rem); }
.threshold .invite { margin: 0; font-style: italic; font-size: 1.2em; color: var(--parch); max-width: 26rem; }

.eye {
  background: none; border: 0; padding: 0; cursor: pointer;
  color: var(--amber);
  width: clamp(7rem, 24vw, 9.5rem);
  aspect-ratio: 1;
  max-width: 100%;
  margin-bottom: .5rem;
}
.eye svg { width: 100%; height: 100%; overflow: visible; }
.eye .lid    { transition: opacity .8s; }
.eye .pupil  { transform-box: fill-box; transform-origin: center; transform: scale(.45); transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.eye .rays   { opacity: 0; transition: opacity 1.2s; }
.eye .whole  { animation: breathe 4.5s ease-in-out infinite; filter: drop-shadow(0 0 6px rgba(var(--glow-c), .35)); transition: filter .8s; }
@keyframes breathe { 50% { opacity: .78; } }
.eye[data-count="1"] .pupil { transform: scale(.75); }
.eye[data-count="1"] .whole { filter: drop-shadow(0 0 12px rgba(var(--glow-c), .6)); }
.eye[data-count="2"] .pupil { transform: scale(1); }
.eye[data-count="2"] .whole { filter: drop-shadow(0 0 18px rgba(var(--glow-c), .8)); }
.eye[data-count="3"] .pupil { transform: scale(1.35); }
.eye[data-count="3"] .rays  { opacity: 1; }
.eye[data-count="3"] .whole { animation: none; filter: drop-shadow(0 0 26px rgba(var(--glow-c), 1)); }

.begin {
  display: inline-block;
  margin-top: .8rem;
  padding: .7rem 1.8rem;
  font-family: var(--f-label);
  letter-spacing: .26em;
  font-size: .9rem;
  text-decoration: none;
  color: var(--bone);
  border: 1px solid var(--rule);
  outline: 1px solid var(--rule);
  outline-offset: 4px;
  transition: color .5s, border-color .5s, box-shadow .8s, text-shadow .5s;
}
.begin:hover { color: var(--gold); border-color: var(--amber); box-shadow: 0 0 34px rgba(var(--glow-c), .25); }

.passage-door { margin: 0; font-style: italic; }
.passage-door:not([hidden]) { animation: rise 1s ease-out both; }

.est { color: var(--faint); }

/* ---------- Contents ---------- */
.toc { list-style: none; padding: 0; margin: 2.5rem 0 0; max-width: 40rem; display: grid; gap: .4rem; }
.toc .row {
  display: grid;
  grid-template-columns: 3.4rem minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: baseline;
  padding-block: 1rem;
  border-bottom: 1px solid rgba(127, 174, 143, .12);
  color: var(--bone);
  text-decoration: none;
}
.toc .numeral { font-family: var(--f-black); font-weight: 700; color: var(--amber); font-size: 1.6rem; line-height: 1; }
.toc .title { font-size: 1.35rem; line-height: 1.3; min-width: 0; }
.toc .teaser { display: block; font-size: .95rem; font-style: italic; color: var(--parch); }
.toc .fol { font-family: var(--f-label); letter-spacing: .12em; font-size: .8rem; color: var(--faint); font-variant-numeric: tabular-nums; }
.toc a.row:hover .title { color: var(--gold); text-shadow: 0 0 12px rgba(var(--glow-c), .6); }
.toc a.row:hover { text-shadow: none; }
.toc .ghost { opacity: .06; transition: opacity 1s; }
.toc .ghost:hover, .toc .ghost:focus-visible { opacity: .9; }
.toc .pending { opacity: .5; }

.blank {
  min-height: 85vh;
  display: grid; place-items: center;
  color: var(--faint);
  font-style: italic;
  font-size: .9rem;
  opacity: .45;
  text-align: center;
}
.hidden-index {
  max-width: 40rem;
  text-align: center;
  padding-bottom: 2rem;
  font-size: .86rem;
  opacity: .1;
  transition: opacity 1.2s;
}
.hidden-index:hover, .hidden-index:focus-within { opacity: 1; }
.hidden-index ul { list-style: none; padding: 0; margin: .6rem 0 0; }

/* ---------- Unlisted ---------- */
main.unlisted .ink { text-shadow: 0 0 26px rgba(var(--glow-c), .55); }
main.unlisted .first::first-letter { color: #9fd1b2; text-shadow: 0 0 18px rgba(var(--glow-c), .7); }
.found-by { font-family: var(--f-label); letter-spacing: .14em; font-size: .82rem; color: var(--faint); margin: 0; }

/* ---------- Reveal ---------- */
.js .reveal.wait { opacity: 0; }
.reveal.in { animation: rise .8s cubic-bezier(.2, .6, .2, 1) both; }
@keyframes rise {
  from { opacity: 0; transform: translateY(10px); filter: blur(2px); }
  to   { opacity: 1; transform: none; filter: none; }
}

/* ---------- Narrow screens ---------- */
@media (max-width: 980px) {
  .passage { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .margin { margin: -.4rem 0 1.6rem; padding-left: 1rem; border-left: 1px solid var(--rule); }
}

@media (max-width: 760px) {
  body:has(.rail) {
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-bottom: calc(4.2rem + env(safe-area-inset-bottom, 0px));
  }
  .rail {
    top: auto; right: 0;
    width: auto; height: auto;
    flex-direction: row; justify-content: space-around; gap: 1rem;
    border-right: 0;
    border-top: 1px solid rgba(127, 174, 143, .15);
    background: rgba(9, 11, 10, .94);
    padding: .5rem max(16px, env(safe-area-inset-right, 0px)) calc(.5rem + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
  }
  .rail a, .rail button { writing-mode: horizontal-tb; transform: none; }
  .toc .row { grid-template-columns: 2.4rem minmax(0, 1fr) auto; gap: .8rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  #dust, .cursor-light { display: none; }
}

/* ==========================================================
   Nevanism additions
   ========================================================== */

/* The motto: Abice Diem in public, Futue Diem underneath */
.motto {
  display: inline-grid;
  margin: -.4rem 0 0;
  font-family: var(--f-label);
  font-size: 1.05rem;
  letter-spacing: .34em;
  color: var(--amber);
  cursor: default;
}
.motto span { grid-area: 1 / 1; transition: opacity .6s ease, filter .6s ease; }
.motto .true { opacity: 0; filter: blur(5px); color: var(--gold); text-shadow: 0 0 14px rgba(var(--glow-c), .8); }
.motto:hover .pub, .motto:focus-visible .pub, .opened .motto .pub { opacity: 0; filter: blur(5px); }
.motto:hover .true, .motto:focus-visible .true, .opened .motto .true { opacity: 1; filter: none; }
.issued { color: var(--faint); font-size: .72rem; }

/* The Creed */
.creed { margin: 0; text-align: center; font-style: italic; line-height: 1.8; display: grid; gap: .8rem; max-width: 32rem; }
.creed p { margin: 0; }
.creed em { font-style: normal; font-family: var(--f-label); letter-spacing: .2em; color: var(--amber); }

/* The Catechism */
.catechism { justify-self: stretch; margin: 0; display: grid; gap: .3rem; }
.catechism dt { font-style: italic; color: var(--parch); }
.catechism dt::before { content: "Q. "; font-family: var(--f-label); font-style: normal; color: var(--amber); }
.catechism dd { margin: 0 0 1rem; }
.catechism dd::before { content: "A. "; font-family: var(--f-label); color: var(--amber); }
.catechism dd:last-child { margin-bottom: 0; }

/* The Nine Abstentions */
.abstentions { justify-self: stretch; margin: 0; padding-left: 2.6rem; list-style: upper-roman; display: grid; gap: .45rem; }
.abstentions ::marker { font-family: var(--f-label); color: var(--amber); }

/* The Schedule of Writs */
.ledger {
  margin: 1rem 0 3rem;
  padding: 1.6rem 1.6rem 1.2rem;
  border: 1px solid var(--rule);
  background: linear-gradient(180deg, rgba(17, 22, 18, .7), rgba(17, 22, 18, .25));
}
.ledger ul { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; }
.ledger li {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.2rem; align-items: baseline;
  padding-block: .8rem;
  border-bottom: 1px dotted var(--rule);
}
.ledger .writ { font-size: 1.15rem; min-width: 0; }
.ledger .teaser { display: block; font-size: .9rem; font-style: italic; color: var(--parch); }
.ledger .price { font-family: var(--f-label); letter-spacing: .1em; color: var(--amber); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ledger-note { margin: 1rem 0 0; font-size: .86rem; font-style: italic; color: var(--faint); }

/* ---------- Readability: blackletter only for the big title and drop caps ---------- */
.entry-head h1.ink, .toc .numeral {
  font-family: var(--f-head);
  font-weight: 400;
  letter-spacing: .01em;
}
.entry-head h1.ink { font-size: clamp(2.6rem, 6vw, 4rem); }
.toc .numeral { font-size: 1.7rem; }
.ink { text-shadow: 0 0 16px rgba(var(--glow-c), .2); }
.passage > p, .creed, .catechism, .abstentions, .ledger { text-shadow: 0 1px 2px rgba(0, 0, 0, .6); }
.folio { position: relative; }
.folio::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 50%;
  width: min(48rem, 100%);
  transform: translateX(-58%);
  background: radial-gradient(ellipse 60% 50% at 50% 40%, rgba(9, 11, 10, .55), transparent 80%);
  pointer-events: none;
  z-index: -1;
}
@media (max-width: 980px) { .folio::before { transform: translateX(-50%); } }

/* ==========================================================
   Clarity pass: Literata for reading, Cinzel for labels and headings
   ========================================================== */
.label { font-size: .74rem; letter-spacing: .18em; font-weight: 600; line-height: 1.6; }
.entry-head h1.ink { font-family: var(--f-head); font-weight: 500; letter-spacing: .04em; font-size: clamp(2.2rem, 5.4vw, 3.4rem); }
.entry-head .sub { font-size: 1.08em; line-height: 1.5; }
main.unlisted .entry-head h1.ink { font-family: var(--f-black); font-weight: 700; font-size: clamp(2.8rem, 7vw, 4.4rem); }
.toc .numeral { font-family: var(--f-head); font-weight: 600; font-size: 1.15rem; }
.toc .title { font-family: var(--f-head); font-weight: 500; font-size: 1.15rem; letter-spacing: .03em; }
.toc .teaser { font-family: var(--f-body); letter-spacing: 0; margin-top: .2rem; }
.toc .fol, .folio-foot, .plate figcaption, .found-by, .rail a, .rail button, .begin, .motto {
  font-family: var(--f-label); font-weight: 600;
}
.toc .fol { font-size: .7rem; }
.folio-foot { font-size: .72rem; letter-spacing: .12em; }
.plate figcaption { font-size: .7rem; letter-spacing: .12em; line-height: 1.6; }
.rail a, .rail button { font-size: .7rem; letter-spacing: .2em; }
.begin { font-size: .8rem; letter-spacing: .22em; }
.motto { font-size: .95rem; letter-spacing: .3em; }
.found-by { font-size: .74rem; }
.creed em { font-family: var(--f-label); font-size: .85em; letter-spacing: .16em; }
.catechism dt::before, .catechism dd::before { font-family: var(--f-label); font-weight: 600; font-size: .8em; }
.abstentions ::marker { font-family: var(--f-label); font-weight: 600; font-size: .85em; }
.ledger .writ { font-family: var(--f-head); font-weight: 500; font-size: 1rem; letter-spacing: .03em; }
.ledger .teaser { font-family: var(--f-body); letter-spacing: 0; margin-top: .15rem; }
.ledger .price { font-family: var(--f-body); font-weight: 500; letter-spacing: 0; }
.issued { font-size: .66rem; }

/* Ranks of the faithful */
.ranks { justify-self: stretch; margin: 0; display: grid; gap: .2rem; }
.ranks dt { font-family: var(--f-head); font-weight: 600; letter-spacing: .06em; color: var(--amber); font-size: .9rem; }
.ranks dd { margin: 0 0 .9rem; }
.ranks dd:last-child { margin-bottom: 0; }

/* Errata */
.errata { margin: 2rem 0 0; font-size: .92rem; font-style: italic; color: var(--parch); }
.errata .label { font-style: normal; margin-right: .6rem; }

/* Application form */
.apply {
  margin: 1rem 0 3rem;
  padding: 1.8rem 1.6rem;
  display: grid; gap: 1.2rem;
  border: 1px solid var(--rule);
  outline: 1px solid var(--rule);
  outline-offset: 5px;
  background: linear-gradient(180deg, rgba(17, 22, 18, .75), rgba(17, 22, 18, .3));
}
.field { display: grid; gap: .4rem; }
.field label { font-size: .92rem; color: var(--parch); }
.apply input[type="text"], .apply textarea, .apply select {
  width: 100%;
  font: inherit;
  font-size: 1rem;
  color: var(--bone);
  background: rgba(9, 11, 10, .7);
  border: 0;
  border-bottom: 1px solid var(--rule);
  padding: .55rem .2rem;
  border-radius: 0;
}
.apply select { cursor: pointer; }
.apply select option { background: var(--ink-2); color: var(--bone); }
.apply input::placeholder, .apply textarea::placeholder { color: var(--faint); font-style: italic; }
.apply input:focus, .apply textarea:focus, .apply select:focus { outline: none; border-bottom-color: var(--amber); box-shadow: 0 6px 14px -10px rgba(var(--glow-c), .9); }
.check { display: flex; gap: .7rem; align-items: baseline; font-size: .95rem; cursor: pointer; }
.check input { accent-color: var(--amber); transform: translateY(.1em); }
.apply .begin { justify-self: start; background: none; cursor: pointer; margin-top: .4rem; }
.form-result { margin: .4rem 0 0; font-style: italic; color: var(--gold); }
.form-result:not([hidden]) { animation: rise .8s ease-out both; }
.form-result.warn { color: var(--parch); }
