/* ═══════════════════════════════════════════════════════════════
   THE CARTOGRAPHER'S SOCIETY · est. 1831
   parchment · sepia ink · oxblood · gold leaf
   ═══════════════════════════════════════════════════════════════ */

:root{
  --parchment:#ede0c4;
  --parchment-hi:#f3e8cf;
  --parchment-dk:#e2d1ab;
  --parchment-dp:#d6c193;
  --ink:#4a3521;
  --ink-soft:#6b5138;
  --ink-faint:#8a6f4d;
  --oxblood:#6e1423;
  --oxblood-dk:#530d1a;
  --gold:#c9a227;
  --gold-deep:#8f7118;
  --prussian:#2e4a66;
  --paper-shadow:rgba(74,53,33,.42);
  --serif-display:'Cinzel', serif;
  --serif-body:'Crimson Pro', serif;
  --serif-fell:'IM Fell English', serif;
  --head-h:64px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{
  scroll-behavior:smooth;
  scrollbar-color:var(--ink-faint) var(--parchment-dk);
  scrollbar-width:thin;
}
html,body{overflow-x:clip}
body{
  background:
    radial-gradient(120% 100% at 50% -10%, rgba(243,232,207,.95), transparent 42%),
    linear-gradient(90deg, rgba(74,53,33,.035) 0 1px, transparent 1px 100%),
    var(--parchment);
  background-size:auto, 76px 100%, auto;
  color:var(--ink);
  font-family:var(--serif-body);
  font-size:1.1875rem;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-kerning:normal;
  font-feature-settings:"kern" 1, "liga" 1, "clig" 1;
  touch-action:manipulation;
}

/* paper grain + vignette laid over everything */
body::before{
  content:"";position:fixed;inset:0;z-index:60;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.29 0 0 0 0 0.21 0 0 0 0 0.13 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23n)'/%3E%3C/svg%3E");
}
body::after{
  content:"";position:fixed;inset:0;z-index:59;pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 12%, transparent 55%, rgba(74,53,33,.14) 100%),
    radial-gradient(60% 40% at 8% 96%, rgba(110,20,35,.05), transparent 70%),
    radial-gradient(50% 36% at 95% 4%, rgba(143,113,24,.07), transparent 70%);
}

::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--parchment-dk);box-shadow:inset 0 0 0 1px rgba(74,53,33,.16)}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--ink-faint),var(--ink-soft));
  border:3px solid var(--parchment-dk);
  border-radius:999px;
}
::-webkit-scrollbar-thumb:hover{background:var(--ink)}
::selection{background:var(--oxblood);color:var(--parchment-hi);text-shadow:none}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:2px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link{
  position:fixed;left:1rem;top:.75rem;z-index:100;
  translate:0 -140%;
  background:var(--oxblood);color:var(--parchment-hi);
  font-family:var(--serif-display);font-weight:700;font-size:.76rem;
  letter-spacing:.12em;text-transform:uppercase;text-decoration:none;
  padding:.7rem .95rem;border:1px solid var(--parchment-hi);
  box-shadow:0 8px 18px -10px rgba(74,53,33,.8);
  transition:translate .22s ease;
}
.skip-link:focus-visible{translate:0 0}

a{color:var(--oxblood);text-decoration-thickness:.06em;text-underline-offset:.16em}
em{font-style:italic}
.num{font-variant-numeric:oldstyle-nums}
p,li,dd,blockquote{max-inline-size:100%;text-wrap:pretty}
time,.hero-coordinate,.ledger-strip dd,.token-table td:nth-child(2){font-variant-numeric:oldstyle-nums tabular-nums}

/* ── header ─────────────────────────────────────────────────── */
.site-head{
  position:sticky;top:0;z-index:50;
  min-height:var(--head-h);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.4rem clamp(1rem,4vw,3rem);
  background:color-mix(in srgb, var(--parchment) 88%, transparent);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--ink);
  box-shadow:0 1px 0 var(--parchment-hi) inset, 0 3px 0 -2px var(--ink-faint);
}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink);min-height:44px}
.brand-mark{width:34px;height:34px;flex:none;transition:transform .45s cubic-bezier(.2,.8,.2,1),color .25s ease}
.brand:hover .brand-mark,.brand:focus-visible .brand-mark{transform:rotate(-18deg);color:var(--oxblood)}
.brand-name{
  font-family:var(--serif-display);font-weight:700;
  font-size:.95rem;letter-spacing:.06em;white-space:nowrap;
}
.brand-est{
  font-family:var(--serif-fell);font-style:italic;font-size:.8rem;
  color:var(--oxblood);border-left:1px solid var(--ink-faint);padding-left:.7rem;white-space:nowrap;
}
.site-nav{display:flex;flex-wrap:wrap;justify-content:flex-end}
.site-nav a{
  font-family:var(--serif-display);font-weight:600;font-size:.78rem;
  letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--ink);
  padding:.85rem .8rem;min-height:44px;display:inline-flex;align-items:center;
  position:relative;
}
.nav-short{display:none}
.site-nav a::after{
  content:"";position:absolute;left:.8rem;right:.8rem;bottom:.55rem;height:2px;
  background:var(--oxblood);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;
}
.site-nav a:hover::after,.site-nav a:focus-visible::after{transform:scaleX(1)}
.site-nav a:hover,.site-nav a:focus-visible{color:var(--oxblood)}

/* ── hero ───────────────────────────────────────────────────── */
.hero{
  position:relative;min-height:calc(92svh - var(--head-h));
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:clamp(3rem,8vh,6rem) 1.25rem clamp(4rem,10vh,7rem);
  overflow:clip;isolation:isolate;
}
.hero::before{
  content:"";position:absolute;inset:8% 4% 6%;z-index:-1;opacity:.22;pointer-events:none;
  background:
    linear-gradient(108deg, transparent 0 48%, rgba(74,53,33,.36) 48.1% 48.25%, transparent 48.4%),
    linear-gradient(73deg, transparent 0 53%, rgba(143,113,24,.35) 53.1% 53.22%, transparent 53.4%),
    repeating-linear-gradient(90deg, transparent 0 74px, rgba(74,53,33,.12) 75px, transparent 76px);
  mask-image:radial-gradient(60% 58% at 50% 48%, #000 0 70%, transparent 100%);
}
.hero-rose{
  position:absolute;top:50%;left:50%;translate:-50% -50%;
  width:min(88vmin,760px);height:auto;color:var(--ink);
  opacity:.09;pointer-events:none;
  animation:rose-drift 140s linear infinite;
}
@keyframes rose-drift{to{transform:rotate(360deg)}}
.hero-over{
  font-family:var(--serif-display);font-size:.9rem;
  letter-spacing:.32em;text-transform:uppercase;color:var(--ink-soft);
  margin-bottom:clamp(1.4rem,4vh,2.6rem);
}
.hero-title{
  font-family:var(--serif-display);font-weight:700;color:var(--ink);
  font-size:6.25rem;line-height:1.02;
  text-wrap:balance;
  filter:drop-shadow(0 1px 0 rgba(243,232,207,.7)) drop-shadow(0 14px 24px rgba(74,53,33,.08));
}
.hero-title .line{display:block}
.hero-title .line:first-child{
  font-size:.42em;font-weight:500;letter-spacing:.5em;padding-left:.5em;
  color:var(--ink-soft);margin-bottom:.35em;
}
.line-accent{color:var(--oxblood)}
.ornament{margin:clamp(1.2rem,3.5vh,2.2rem) 0;color:var(--ink-soft)}
.ornament svg{width:min(260px,60vw);height:18px;display:block}
.hero-motto{
  font-family:var(--serif-fell);font-size:1.45rem;
  color:var(--oxblood);
  text-wrap:balance;
}
.hero-sub{
  max-width:34em;margin-top:1.1rem;color:var(--ink-soft);
  font-size:1.2rem;
  text-wrap:balance;
}
.hero-docket,.hero-register{
  position:absolute;z-index:0;width:15.5rem;text-align:left;
  padding:.8rem .95rem .9rem;
  background:color-mix(in srgb, var(--parchment-hi) 78%, transparent);
  border-top:1px solid var(--ink-faint);border-bottom:1px solid var(--ink-faint);
  box-shadow:0 10px 22px -18px rgba(74,53,33,.8);
}
.hero-docket{right:clamp(1.2rem,7vw,7rem);top:12%;rotate:1.4deg}
.hero-register{left:clamp(1.2rem,6vw,6rem);bottom:14%;rotate:-1.1deg}
.hero-docket span,.hero-register span{
  display:block;font-family:var(--serif-display);font-size:.64rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--oxblood);
}
.hero-docket strong,.hero-register strong{
  display:block;margin:.22rem 0 .1rem;
  font-family:var(--serif-display);font-size:.84rem;line-height:1.25;letter-spacing:.05em;
}
.hero-docket em,.hero-register em{
  display:block;font-family:var(--serif-fell);font-size:.92rem;line-height:1.3;color:var(--ink-soft);
}
.hero-coordinate{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem .8rem;
  max-width:42rem;margin-top:1rem;
  font-family:var(--serif-display);font-weight:600;font-size:.68rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);
}
.hero-coordinate span{
  padding:.2rem .55rem;border-top:1px solid rgba(74,53,33,.22);border-bottom:1px solid rgba(74,53,33,.22);
  background:rgba(243,232,207,.28);
}
.hero-over,.hero-title,.ornament,.hero-motto,.hero-sub,.hero-coordinate,.hero-cta{position:relative;z-index:1}
.hero-cta{
  margin-top:clamp(1.8rem,5vh,3rem);
  display:inline-flex;align-items:center;gap:.8rem;
  font-family:var(--serif-display);font-weight:600;font-size:.85rem;
  letter-spacing:.22em;text-transform:uppercase;text-decoration:none;color:var(--parchment-hi);
  background:var(--oxblood);
  padding:1rem 1.9rem;min-height:48px;
  border:1px solid var(--oxblood-dk);
  box-shadow:0 2px 0 var(--oxblood-dk), inset 0 0 0 1px rgba(237,224,196,.25), 0 10px 24px -12px rgba(83,13,26,.7);
  transition:transform .25s ease, box-shadow .25s ease;
}
.hero-cta svg{width:16px;height:16px}
.hero-cta:hover,.hero-cta:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 4px 0 var(--oxblood-dk), inset 0 0 0 1px rgba(237,224,196,.35), 0 16px 30px -12px rgba(83,13,26,.8);
}
.hero-cta svg{animation:cta-bob 2.4s ease-in-out infinite}
@keyframes cta-bob{0%,100%{transform:translateY(-1px)}50%{transform:translateY(3px)}}

/* load reveal */
.reveal-load{opacity:0;transform:translateY(18px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(.12s + var(--d) * .13s)}
@keyframes rise{to{opacity:1;transform:none}}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ── shared section chrome ──────────────────────────────────── */
section{
  padding:clamp(3.5rem,9vh,6.5rem) clamp(1.25rem,5vw,4rem);
  scroll-margin-top:calc(var(--head-h) + 10px);
}
.section-head{max-width:72rem;margin:0 auto clamp(2rem,5vh,3.4rem)}
.kicker{
  font-family:var(--serif-fell);font-style:italic;font-size:1.05rem;
  color:var(--gold-deep);margin-bottom:.5rem;
}
.kicker::before{content:"— ";color:var(--ink-faint)}
h2{
  font-family:var(--serif-display);font-weight:700;color:var(--ink);
  font-size:3.05rem;line-height:1.1;
  text-wrap:balance;
}
h2::after{
  content:"";display:block;width:88px;height:3px;margin-top:.7rem;
  background:linear-gradient(90deg,var(--oxblood) 0 40%,var(--gold) 40% 100%);
}

/* ── charter ────────────────────────────────────────────────── */
.charter{border-top:1px solid var(--ink-faint)}
.charter-docket{
  max-width:72rem;margin:-1.4rem auto 2.2rem;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid var(--ink-faint);border-bottom:1px solid var(--ink-faint);
  color:var(--ink-soft);
}
.charter-docket span{
  min-height:44px;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:.55rem .8rem;
  font-family:var(--serif-display);font-weight:600;font-size:.68rem;
  letter-spacing:.13em;text-transform:uppercase;
  border-left:1px dashed var(--ink-faint);
}
.charter-docket span:first-child{border-left:none;color:var(--oxblood)}
.charter-body{
  max-width:72rem;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:start;
}
.charter-text p+p{margin-top:1.1em}
.has-drop{overflow:hidden}
.dropcap{
  position:relative;float:left;
  width:5.2rem;height:5.2rem;margin:.35rem 1rem .1rem 0;
  display:grid;place-items:center;
  background:var(--parchment-hi);
  border:1px solid var(--gold-deep);
  box-shadow:inset 0 0 0 4px var(--parchment-hi), inset 0 0 0 5px var(--gold-deep), 0 6px 14px -8px rgba(74,53,33,.5);
}
.dropcap-flourish{position:absolute;inset:6px;opacity:.9}
.dropcap-letter{
  position:relative;font-family:var(--serif-display);font-weight:900;
  font-size:3rem;line-height:1;color:var(--oxblood);
  text-shadow:1px 1px 0 var(--gold);
}
.fell-quote{
  margin:1.6em 0;padding:1.1em 1.4em;
  border-left:3px solid var(--gold);
  background:linear-gradient(90deg, rgba(201,162,39,.1), transparent 70%);
}
.fell-quote p{font-family:var(--serif-fell);font-style:italic;font-size:1.22em;line-height:1.5;color:var(--ink)}
.fell-quote cite{display:block;margin-top:.6em;font-style:normal;font-family:var(--serif-body);font-size:.86em;color:var(--ink-soft)}
.charter-aside{
  background:var(--parchment-hi);
  border:1px solid var(--ink-faint);
  box-shadow:0 1px 0 var(--parchment-hi) inset, 6px 6px 0 -1px var(--parchment-dk);
  padding:1.6rem 1.7rem 1.8rem;
  position:relative;
}
.charter-aside::before{
  content:"";position:absolute;inset:7px;border:1px dashed var(--ink-faint);pointer-events:none;
}
.charter-aside h3{
  font-family:var(--serif-display);font-weight:700;font-size:1.05rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--oxblood);
  margin-bottom:1rem;
}
.charter-aside ol{list-style:none}
.charter-aside li{font-size:1.02rem;line-height:1.55}
.charter-aside li+li{margin-top:.85em;padding-top:.85em;border-top:1px solid var(--parchment-dk)}
.charter-aside strong{font-family:var(--serif-fell);font-weight:400;font-style:italic;color:var(--gold-deep)}

.ledger-strip{
  max-width:72rem;margin:clamp(2.6rem,6vh,4rem) auto 0;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);
}
.ledger-strip>div{
  padding:1.2rem 1rem;text-align:center;
  border-left:1px dashed var(--ink-faint);
}
.ledger-strip>div:first-child{border-left:none}
.ledger-strip dt{
  font-family:var(--serif-fell);font-style:italic;font-size:.92rem;color:var(--ink-soft);
  order:2;
}
.ledger-strip dd{
  font-family:var(--serif-display);font-weight:700;font-size:2.5rem;
  color:var(--ink);line-height:1.1;margin-bottom:.15rem;
}
.ledger-strip dd.loss{color:var(--oxblood)}

/* ── the chart ──────────────────────────────────────────────── */
.chart-scroll{height:340vh;padding:0;position:relative}
.chart-sticky{
  position:sticky;top:var(--head-h);
  height:calc(100svh - var(--head-h));
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.7rem;
  padding:.8rem clamp(.75rem,3vw,2.5rem);
}
.chart-folio{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem 1.1rem;
  font-family:var(--serif-display);font-weight:600;font-size:.66rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);
}
.chart-folio span:first-child{color:var(--oxblood)}
.chart-folio span+span::before{content:"";display:inline-block;width:5px;height:5px;margin-right:1.1rem;rotate:45deg;background:var(--gold);border:1px solid var(--ink)}
.chart-legend{
  display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem 1.6rem;
}
.leg{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--serif-display);font-weight:600;font-size:.74rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);
  padding:.25rem 0;border-bottom:2px solid transparent;
  transition:color .3s,border-color .3s;
}
.leg em{font-family:var(--serif-fell);font-style:italic;text-transform:none;letter-spacing:0;font-size:.88rem;color:var(--ink-soft)}
.leg .swatch{width:26px;height:0;border-top:3px dashed currentColor;display:inline-block}
.leg-a .swatch{color:var(--oxblood)}
.leg-b .swatch{color:var(--gold-deep)}
.leg-c .swatch{color:var(--prussian)}
.leg.active{color:var(--ink);border-bottom-color:var(--gold)}
.leg.active em{color:var(--ink)}

.sheet{
  position:relative;
  isolation:isolate;
  --glass-x:50%;
  --glass-y:50%;
  width:min(100%, calc((100svh - var(--head-h) - 132px) * 1.4));
  background:
    linear-gradient(103deg, transparent 0 47%, rgba(74,53,33,.045) 47.2% 47.55%, transparent 47.8%),
    radial-gradient(34% 22% at 19% 82%, rgba(110,20,35,.11), transparent 72%),
    radial-gradient(18% 28% at 82% 18%, rgba(143,113,24,.11), transparent 78%),
    radial-gradient(90% 80% at 50% 40%, var(--parchment-hi) 55%, var(--parchment-dk) 100%);
  box-shadow:
    0 32px 65px -26px var(--paper-shadow),
    0 9px 18px -12px rgba(74,53,33,.55),
    inset 0 1px 0 rgba(243,232,207,.78);
  rotate:-0.35deg;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='860' preserveAspectRatio='none'%3E%3Cfilter id='d' x='-5%25' y='-5%25' width='110%25' height='110%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.013 0.02' numOctaves='3' seed='7' result='t'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='t' scale='26'/%3E%3C/filter%3E%3Crect x='13' y='13' width='1174' height='834' fill='white' filter='url(%23d)'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='860' preserveAspectRatio='none'%3E%3Cfilter id='d' x='-5%25' y='-5%25' width='110%25' height='110%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.013 0.02' numOctaves='3' seed='7' result='t'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='t' scale='26'/%3E%3C/filter%3E%3Crect x='13' y='13' width='1174' height='834' fill='white' filter='url(%23d)'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;mask-size:100% 100%;
}
.sheet::before{
  content:"";position:absolute;inset:2.1% 2.2%;z-index:2;pointer-events:none;
  background:
    repeating-linear-gradient(0deg, transparent 0 21px, rgba(74,53,33,.035) 22px, transparent 23px),
    linear-gradient(90deg, rgba(243,232,207,.18), transparent 18%, transparent 82%, rgba(74,53,33,.08));
  mix-blend-mode:multiply;
  opacity:.52;
}
.sheet svg{display:block;width:100%;height:auto;position:relative;z-index:1}
.sheet-stain{position:absolute;z-index:3;pointer-events:none;border-radius:50%;mix-blend-mode:multiply;filter:blur(6px)}
.sheet-stain.s1{
  left:6%;bottom:8%;width:16%;aspect-ratio:1.3;
  background:radial-gradient(closest-side, rgba(110,20,35,.10), rgba(110,20,35,.16) 60%, transparent 72%);
}
.sheet-stain.s2{
  right:10%;top:26%;width:11%;aspect-ratio:1;
  background:radial-gradient(closest-side, rgba(74,53,33,.10), rgba(74,53,33,.15) 55%, transparent 70%);
}
.survey-glass{
  position:absolute;z-index:6;left:var(--glass-x);top:var(--glass-y);
  width:156px;aspect-ratio:1;border-radius:50%;pointer-events:none;
  transform:translate(-50%,-50%) scale(.82) rotate(-5deg);
  opacity:0;
  background:
    radial-gradient(circle at 34% 28%, rgba(255,255,255,.44), transparent 0 12%, transparent 13%),
    radial-gradient(circle at 50% 52%, rgba(243,232,207,.08), rgba(243,232,207,.34) 58%, rgba(74,53,33,.07) 59% 100%);
  border:2px solid rgba(74,53,33,.72);
  box-shadow:
    inset 0 0 0 5px rgba(237,224,196,.45),
    inset 0 0 18px rgba(74,53,33,.18),
    0 16px 28px -18px rgba(38,20,9,.85);
  transition:opacity .22s ease,transform .34s cubic-bezier(.2,.8,.2,1);
}
.survey-glass::before{
  content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;
  width:70%;height:70%;border-radius:50%;
  background:
    linear-gradient(transparent calc(50% - .5px), rgba(110,20,35,.34) 50%, transparent calc(50% + .5px)),
    linear-gradient(90deg, transparent calc(50% - .5px), rgba(110,20,35,.34) 50%, transparent calc(50% + .5px));
  opacity:.68;
}
.survey-glass::after{
  content:"";position:absolute;right:-31px;bottom:-18px;width:58px;height:14px;
  background:linear-gradient(90deg, rgba(74,53,33,.86), rgba(74,53,33,.42));
  border:1px solid rgba(74,53,33,.78);
  border-radius:999px;
  transform:rotate(38deg);
  transform-origin:left center;
  box-shadow:0 7px 12px -9px rgba(38,20,9,.85);
}
.survey-glass span{
  position:absolute;left:50%;bottom:13px;translate:-50%;
  font-family:var(--serif-display);font-weight:700;font-size:.52rem;
  letter-spacing:.16em;color:rgba(74,53,33,.58);
}
.sheet.is-inspecting .survey-glass{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-5deg)}

/* svg ink styles */
#chart .land{fill:var(--parchment-dk);stroke:var(--ink);stroke-width:2.2;stroke-linejoin:round}
#chart .coast-halo{fill:none;stroke:var(--ink);stroke-width:12;opacity:.1}
#chart .coast-hatch{fill:none;stroke:var(--ink);stroke-width:6.5;opacity:.26;stroke-dasharray:1.6 3}
#chart .isle-contour{fill:none;stroke:var(--ink-soft);stroke-width:1;stroke-dasharray:3 4;opacity:.5}
#chart .relief path{fill:none;stroke:var(--ink-soft);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;opacity:.85}
#chart .trees path{fill:none;stroke:var(--ink-soft);stroke-width:1.5;opacity:.85}
#chart .ruin{fill:none;stroke:var(--ink-soft);stroke-width:2}
#chart .lighthouse .lh-tower{fill:var(--parchment-hi);stroke:var(--ink);stroke-width:1.6}
#chart .lighthouse .lh-lamp{fill:var(--gold)}
#chart .lighthouse .lh-rays{fill:none;stroke:var(--gold-deep);stroke-width:1.4;stroke-linecap:round}
#chart .shoal-line{fill:none;stroke:var(--ink-faint);stroke-width:1.4;stroke-dasharray:5 6}
#chart .trench{fill:none;stroke:var(--prussian);stroke-width:1.4;stroke-dasharray:8 6;opacity:.75}
#chart .hazard{fill:none;stroke:var(--oxblood);stroke-width:1.6;opacity:.8}
#chart .anchors path{fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round}
#chart .var-line{stroke:var(--ink-soft);stroke-width:1.5}
#chart .var-line.mag{stroke:var(--oxblood);stroke-dasharray:5 4;opacity:.85}
#chart .var-head{fill:var(--ink-soft)}
#chart .var-head.mag{fill:var(--oxblood);opacity:.85}
#chart .var-arc{fill:none;stroke:var(--gold-deep);stroke-width:1.3}

#chart .name-major{font-family:var(--serif-display);font-weight:600;font-size:30px;letter-spacing:.18em;fill:var(--ink)}
#chart .name-minor{font-family:var(--serif-display);font-weight:600;font-size:17px;letter-spacing:.08em;fill:var(--ink)}
#chart .name-small{font-family:var(--serif-display);font-weight:600;font-size:15px;letter-spacing:.1em;fill:var(--ink)}
#chart .name-fell{font-family:var(--serif-fell);font-style:italic;font-size:15px;fill:var(--ink-soft)}
#chart .name-sea{font-family:var(--serif-fell);font-size:27px;letter-spacing:.3em;fill:var(--ink);opacity:.42}
#chart .name-note{font-family:var(--serif-fell);font-style:italic;font-size:14.5px;fill:var(--ink-soft)}
#chart .name-draco{font-family:var(--serif-fell);font-style:italic;font-size:17px;fill:var(--oxblood);opacity:.85}
#chart .sounding{font-family:var(--serif-fell);font-style:italic;font-size:13px;fill:var(--ink);opacity:.62}

#chart .rhumb{stroke:var(--ink);stroke-width:.7;opacity:.1}
#chart .grat{stroke:var(--ink);stroke-width:.8;opacity:.17;stroke-dasharray:1 5}
#chart .grat-label{font-family:var(--serif-fell);font-style:italic;font-size:13px;fill:var(--ink-soft);opacity:.85}
#chart .current{fill:none;stroke:var(--prussian);stroke-width:1.3;stroke-linecap:round;opacity:.32;stroke-dasharray:18 12}
#chart .current-arrow{fill:var(--prussian);opacity:.38}
#chart .wreck-mark{fill:none;stroke:var(--oxblood);stroke-width:1.5;stroke-linecap:round;opacity:.82}
#chart .inspection-layer{opacity:0;transition:opacity .3s ease}
.sheet.is-inspecting #chart .inspection-layer{opacity:1}
#chart .inspection-scratch{
  fill:none;stroke:var(--oxblood);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:3 5;
  opacity:.78;
}
#chart .inspection-scratch.gold{stroke:var(--gold-deep)}
#chart .inspection-scratch.blue{stroke:var(--prussian)}
#chart .inspection-note{
  font-family:var(--serif-fell);font-style:italic;font-size:15px;
  fill:var(--oxblood);opacity:.82;
}
#chart .inspection-pin{
  fill:none;stroke:var(--oxblood);stroke-width:1.6;stroke-dasharray:2 3;
}
#chart .inspection-pin.gold{stroke:var(--gold-deep)}
#chart .inspection-pin.blue{stroke:var(--prussian)}

#chart .monster path{stroke:var(--ink);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
#chart .m-body,#chart .m-head,#chart .m-tail,#chart .m-fin{fill:var(--parchment-dp)}
#chart .m-jaw,#chart .m-crest,#chart .m-tongue,#chart .m-ripple{fill:none}
#chart .m-crest{stroke-width:1.8}
#chart .m-tongue{stroke:var(--oxblood);stroke-width:1.6}
#chart .m-ripple{stroke-width:1.2;opacity:.5}
#chart .m-eye{fill:var(--oxblood)}

#chart .route{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:none}
#chart .route-a{stroke:var(--oxblood)}
#chart .route-b{stroke:var(--gold-deep)}
#chart .route-c{stroke:var(--prussian)}

#chart .ship-hull{fill:var(--ink);stroke:var(--ink);stroke-width:1}
#chart .ship-mast{stroke:var(--ink);stroke-width:1.6}
#chart .ship-sail{fill:var(--parchment-hi);stroke:var(--ink);stroke-width:1.2}
#chart .ship-flag{fill:var(--oxblood)}
#chart .ship-wake{fill:none;stroke:var(--prussian);stroke-width:1.2;stroke-linecap:round;opacity:.42;stroke-dasharray:5 5}
#chart .ship{opacity:0;transition:opacity .5s ease}
#chart .ship.on{opacity:1}
#chart .ship.flag-b .ship-flag{fill:var(--gold-deep)}
#chart .ship.flag-c .ship-flag{fill:var(--prussian)}

#chart .cart-bg{fill:var(--parchment-hi);stroke:var(--ink);stroke-width:2;filter:drop-shadow(3px 4px 0 rgba(74,53,33,.18))}
#chart .cart-line{fill:none;stroke:var(--gold-deep);stroke-width:1.2}
#chart .cart-corner{fill:none;stroke:var(--gold-deep);stroke-width:1.2}
#chart .cart-rule{stroke:var(--oxblood);stroke-width:1}
#chart .cart-t1{font-family:var(--serif-display);font-weight:700;font-size:19px;letter-spacing:.12em;fill:var(--ink)}
#chart .cart-t2{font-family:var(--serif-fell);font-style:italic;font-size:13px;fill:var(--ink-soft)}
#chart .cart-t3{font-family:var(--serif-display);font-weight:700;font-size:23px;letter-spacing:.08em;fill:var(--oxblood)}
#chart .cart-t4{font-family:var(--serif-display);font-weight:600;font-size:10.5px;letter-spacing:.14em;fill:var(--ink-soft)}

#chart .scale-label{font-family:var(--serif-fell);font-style:italic;font-size:14px;fill:var(--ink-soft)}
#chart .scale-seg{stroke:var(--ink);stroke-width:1.4}
#chart .scale-fill{fill:var(--ink)}
#chart .scale-open{fill:var(--parchment-hi)}
#chart .scale-num{font-family:var(--serif-display);font-size:12px;fill:var(--ink-soft)}

#chart .rose-ring{fill:none;stroke:var(--ink);stroke-width:1.6}
#chart .rose-ring.thin{stroke-width:.8}
#chart .rose-tick{stroke:var(--ink);stroke-width:1}
#chart .rose-pt-dark{fill:var(--ink)}
#chart .rose-pt-lite{fill:var(--parchment-hi);stroke:var(--ink);stroke-width:.8}
#chart .rose-pt-gold{fill:var(--gold)}
#chart .rose-letter{font-family:var(--serif-display);font-weight:700;font-size:22px;fill:var(--ink)}
#chart .rose-letter.north{fill:var(--oxblood)}
#chart .needle-n{fill:var(--oxblood);stroke:var(--oxblood-dk);stroke-width:.8}
#chart .needle-s{fill:var(--parchment-hi);stroke:var(--ink);stroke-width:1}
#chart .needle-cap{fill:var(--gold);stroke:var(--ink);stroke-width:1.2}

/* waypoint overlay */
.wp-layer{position:absolute;inset:0;z-index:4;pointer-events:none}
.wp{
  position:absolute;translate:-50% -50%;
  width:30px;height:30px;padding:0;border:none;background:none;
  pointer-events:auto;cursor:pointer;
  display:grid;place-items:center;
  opacity:0;scale:.4;transition:opacity .45s ease,scale .45s cubic-bezier(.2,.9,.3,1.4);
}
.wp.lit{opacity:1;scale:1}
.wp i{
  width:11px;height:11px;border-radius:50%;
  background:var(--parchment-hi);
  border:3px solid var(--wpc,var(--oxblood));
  box-shadow:0 0 0 2px var(--parchment-hi);
  display:block;
}
.wp-tip{
  position:absolute;bottom:calc(100% + 2px);left:50%;translate:-50%;
  width:max-content;max-width:210px;
  background:var(--parchment-hi);color:var(--ink);
  border:1px solid var(--ink);
  box-shadow:2px 3px 0 rgba(74,53,33,.3);
  font-family:var(--serif-fell);font-style:italic;font-size:.82rem;line-height:1.35;
  padding:.4rem .6rem;text-align:left;
  opacity:0;translate:-50% 6px;pointer-events:none;
  transition:opacity .3s ease,translate .3s ease;
}
.wp-tip b{display:block;font-family:var(--serif-display);font-style:normal;font-weight:700;font-size:.66rem;letter-spacing:.1em;color:var(--wpc,var(--oxblood))}
.wp:hover .wp-tip,.wp:focus-visible .wp-tip,.wp.auto .wp-tip{opacity:1;translate:-50% 0}
.wp.flip .wp-tip{left:auto;right:50%;translate:50% 6px}
.wp.flip:hover .wp-tip,.wp.flip:focus-visible .wp-tip,.wp.flip.auto .wp-tip{translate:50% 0}
.wp.low .wp-tip{bottom:auto;top:calc(100% + 2px)}

.chart-caption{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.4rem 1.2rem;
  max-width:min(92vw,880px);text-align:center;min-height:2.4rem;
  transition:filter .28s ease, transform .28s ease;
}
.chart-caption.is-changing{filter:drop-shadow(0 0 8px rgba(201,162,39,.22));transform:translateY(-1px)}
.cap-name{
  font-family:var(--serif-display);font-weight:700;font-size:.82rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--oxblood);white-space:nowrap;
}
.cap-note{font-family:var(--serif-fell);font-style:italic;font-size:1.02rem;color:var(--ink-soft)}
.ink-gauge{
  flex:0 0 min(360px,70vw);height:4px;align-self:center;
  background:linear-gradient(90deg, rgba(110,20,35,.16), rgba(143,113,24,.16), rgba(46,74,102,.16));
  border:1px solid rgba(74,53,33,.22);
  overflow:hidden;
}
.ink-gauge i{
  display:block;width:0;height:100%;
  background:linear-gradient(90deg,var(--oxblood),var(--gold-deep),var(--prussian));
  transition:width .18s linear;
}

/* ── ledgers ────────────────────────────────────────────────── */
.ledgers{background:linear-gradient(180deg, var(--parchment-dk), var(--parchment) 14%)}
.ledger-intro{
  max-width:54rem;margin:-1.2rem auto 2.3rem;
  font-family:var(--serif-fell);font-style:italic;font-size:1.18rem;line-height:1.55;color:var(--ink-soft);
}
.ledger-grid{
  max-width:82rem;margin:0 auto;
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(1.4rem,3vw,2.4rem);
  align-items:start;
}
.ledger{
  background:
    linear-gradient(90deg, rgba(110,20,35,.06) 0 4px, transparent 4px 100%),
    repeating-linear-gradient(0deg, transparent 0 28px, rgba(74,53,33,.028) 29px, transparent 30px),
    radial-gradient(42% 30% at 84% 14%, rgba(143,113,24,.11), transparent 76%),
    var(--parchment-hi);
  border:1px solid var(--ink-faint);
  box-shadow:0 14px 30px -18px rgba(74,53,33,.55);
  padding:0 1.6rem 1.7rem;
  position:relative;
  transition:transform .34s cubic-bezier(.2,.8,.2,1),box-shadow .34s ease,filter .34s ease;
}
.ledger::before{
  content:"";position:absolute;inset:.55rem .55rem auto auto;width:3.3rem;height:4.4rem;
  border:1px solid rgba(74,53,33,.28);border-radius:50% 48% 46% 52%;
  opacity:.42;rotate:8deg;
}
.ledger::after{
  content:"";position:absolute;left:1.1rem;right:1.1rem;bottom:-8px;height:8px;
  background:linear-gradient(90deg, transparent, rgba(74,53,33,.16), transparent);
  filter:blur(3px);z-index:-1;
}
.card-a{grid-column:1 / span 4;rotate:-.45deg}
.card-b{grid-column:5 / span 4;margin-top:3.3rem;rotate:.55deg}
.card-c{grid-column:9 / span 4;margin-top:1rem;rotate:-.25deg}
@media (hover:hover){
  .ledger:hover,.ledger:focus-within{
    transform:translateY(-7px);
    box-shadow:0 24px 42px -24px rgba(74,53,33,.72);
    filter:saturate(1.05);
  }
}
.ledger-rule{height:7px;margin:0 -1.6rem 1.5rem;border-bottom:1px solid var(--ink)}
.card-a .ledger-rule{background:var(--oxblood)}
.card-b .ledger-rule{background:var(--gold-deep)}
.card-c .ledger-rule{background:var(--prussian)}
.ledger-no{
  font-family:var(--serif-fell);font-style:italic;font-size:1rem;color:var(--gold-deep);
}
.ledger h3{
  font-family:var(--serif-display);font-weight:700;font-size:1.5rem;
  line-height:1.2;color:var(--ink);margin:.25rem 0 1rem;
}
.ledger-meta{
  display:grid;gap:.3rem;margin-bottom:1.2rem;
  border-top:1px solid var(--parchment-dk);border-bottom:1px solid var(--parchment-dk);
  padding:.7rem 0;
}
.ledger-meta div{display:flex;gap:.7rem;align-items:baseline}
.ledger-meta dt{
  font-family:var(--serif-display);font-weight:600;font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-soft);flex:0 0 7em;white-space:nowrap;
}
.ledger-meta dd{font-size:.98rem;color:var(--ink)}
.log p{
  font-size:.99rem;line-height:1.55;padding-left:1rem;border-left:2px solid var(--parchment-dk);
  background:linear-gradient(90deg, rgba(243,232,207,.18), transparent 62%);
}
.log p+p{margin-top:.95em}
.log time{
  display:block;font-family:var(--serif-display);font-weight:700;font-size:.68rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--oxblood);margin-bottom:.15rem;
  font-variant-numeric:oldstyle-nums tabular-nums;
}
.card-b .log time{color:var(--gold-deep)}
.card-c .log time{color:var(--prussian)}
.ledger-outcome{
  margin-top:1.2rem;padding-top:1rem;border-top:1px dashed var(--ink-faint);
  font-size:.97rem;color:var(--ink-soft);
}
.ledger-outcome strong{font-family:var(--serif-display);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}

/* ── fellowship ─────────────────────────────────────────────── */
.fellowship{border-top:1px solid var(--ink-faint)}
.fellow-body{
  max-width:76rem;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:start;
}
.fellow-text p+p,.fellow-text ul{margin-top:1.1em}
.fellow-reqs{list-style:none}
.fellow-reqs li{
  padding-left:2rem;position:relative;
}
.fellow-reqs li::before{
  content:"";position:absolute;left:.35rem;top:.55em;
  width:9px;height:9px;rotate:45deg;
  background:var(--gold);border:1px solid var(--ink);
}
.fellow-reqs li+li{margin-top:.9em}
.fellow-reqs strong{font-family:var(--serif-fell);font-weight:400;font-style:italic;color:var(--oxblood)}

.ballot-slip{
  margin:0 auto 1rem;max-width:25rem;
  border-top:2px solid var(--ink);border-bottom:1px solid var(--ink-faint);
  padding:.75rem .9rem .85rem;
  background:linear-gradient(90deg, rgba(201,162,39,.09), rgba(243,232,207,.42));
  rotate:-1deg;
  transition:transform .28s ease,box-shadow .28s ease;
}
@media (hover:hover){
  .fellow-card:hover .ballot-slip{transform:translateY(-4px);box-shadow:0 10px 18px -16px rgba(74,53,33,.7)}
}
.ballot-slip span{
  display:block;font-family:var(--serif-display);font-weight:700;font-size:.66rem;
  letter-spacing:.15em;text-transform:uppercase;color:var(--oxblood);
}
.ballot-slip strong{
  display:block;margin:.18rem 0;font-family:var(--serif-display);font-size:.96rem;letter-spacing:.04em;color:var(--ink);
}
.ballot-slip em{
  display:block;font-family:var(--serif-fell);font-size:.94rem;line-height:1.35;color:var(--ink-soft);
}

.charter-card{
  background:var(--parchment-hi);
  border:1px solid var(--ink);
  box-shadow:inset 0 0 0 5px var(--parchment-hi), inset 0 0 0 6px var(--gold-deep), 0 18px 36px -18px rgba(74,53,33,.6);
  padding:2.2rem 1.9rem 2rem;text-align:center;position:relative;
  overflow:hidden;
}
.charter-card::before{
  content:"";position:absolute;inset:1.1rem;pointer-events:none;
  background:
    radial-gradient(circle at 50% 52%, transparent 0 42%, rgba(74,53,33,.055) 43% 43.6%, transparent 44%),
    linear-gradient(115deg, transparent 0 48%, rgba(201,162,39,.12) 48.2% 48.5%, transparent 48.8%);
  opacity:.65;
}
.charter-card>*{position:relative}
.cc-head{font-family:var(--serif-display);font-weight:700;font-size:1.15rem;letter-spacing:.1em;color:var(--ink)}
.cc-sub{font-family:var(--serif-fell);font-style:italic;font-size:.86rem;color:var(--ink-soft);margin-top:.2rem}
.cc-rule{width:70px;height:2px;background:var(--gold-deep);margin:1rem auto}
.cc-body{font-size:.98rem;color:var(--ink-soft);max-width:26em;margin:0 auto}
.cc-title{
  font-family:var(--serif-display);font-weight:700;font-size:1.3rem;letter-spacing:.12em;
  color:var(--oxblood);margin:.7rem auto;
}
.cc-sig{
  font-family:var(--serif-fell);font-style:italic;font-size:1.25rem;color:var(--ink);
  margin-top:1.1rem;rotate:-2deg;
}
.seal{
  margin:1.4rem auto 0;display:flex;flex-direction:column;align-items:center;gap:.55rem;
  background:none;border:none;cursor:pointer;font:inherit;
}
.seal-wax{
  width:118px;height:118px;display:grid;place-items:center;
  border-radius:46% 54% 51% 49% / 53% 47% 55% 45%;
  background:
    radial-gradient(58% 58% at 36% 32%, #8d2436 0%, var(--oxblood) 48%, var(--oxblood-dk) 100%);
  box-shadow:
    inset 0 3px 5px rgba(237,224,196,.28),
    inset 0 -6px 10px rgba(38,5,11,.6),
    0 10px 20px -8px rgba(83,13,26,.75);
  transition:transform .28s cubic-bezier(.3,1.4,.4,1), box-shadow .28s ease, border-radius .28s ease;
}
.seal-wax svg{width:86%;height:86%;transition:opacity .28s ease}
.seal-ring{fill:none;stroke:rgba(237,224,196,.5);stroke-width:2}
.seal-ring.thin{stroke-width:1;stroke:rgba(237,224,196,.35)}
.seal-emblem{fill:rgba(237,224,196,.55)}
.seal-text{font-family:var(--serif-display);font-weight:700;font-size:11px;letter-spacing:.2em;fill:rgba(237,224,196,.55)}
.seal-hint{font-family:var(--serif-fell);font-style:italic;font-size:.88rem;color:var(--ink-soft)}
.seal:hover .seal-wax,.seal:focus-visible .seal-wax,.seal.pressed .seal-wax{
  transform:scale(.9);
  border-radius:44% 56% 48% 52% / 50% 50% 53% 47%;
  box-shadow:
    inset 0 4px 8px rgba(38,5,11,.75),
    inset 0 -3px 5px rgba(237,224,196,.16),
    0 4px 10px -6px rgba(83,13,26,.9);
}
.seal:hover .seal-wax svg,.seal:focus-visible .seal-wax svg,.seal.pressed .seal-wax svg{opacity:.75}
.seal:focus-visible .seal-hint{color:var(--oxblood)}
.fellow-note{
  margin-top:1.3rem;font-family:var(--serif-fell);font-style:italic;
  font-size:.98rem;color:var(--ink-soft);text-align:center;
}

/* ── footer ─────────────────────────────────────────────────── */
.site-foot{
  border-top:2px solid var(--ink);
  background:linear-gradient(180deg,var(--parchment) 0%,var(--parchment-dk) 100%);
  text-align:center;padding:3rem 1.25rem 3.4rem;
}
.foot-orn{width:min(260px,60vw);height:18px;color:var(--ink-soft);margin-bottom:1.4rem}
.foot-line{font-family:var(--serif-display);font-weight:600;font-size:.86rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.foot-links{margin-top:.8rem;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem 1rem;color:var(--ink-soft)}
.foot-links a{
  color:var(--oxblood);text-decoration-color:var(--gold-deep);text-underline-offset:3px;
  padding:.75rem .2rem;display:inline-block;
  transition:color .2s ease,text-decoration-thickness .2s ease;
}
.foot-links a:hover,.foot-links a:focus-visible{color:var(--oxblood-dk);text-decoration-thickness:.12em}
.foot-small{margin-top:1.1rem;font-family:var(--serif-fell);font-style:italic;font-size:.9rem;color:var(--ink-soft)}

/* ── guide page ─────────────────────────────────────────────── */
.guide-main{
  max-width:58rem;margin:0 auto;padding:clamp(2.5rem,7vh,4.5rem) 1.25rem 4rem;
  position:relative;
}
.guide-main::before{
  content:"";position:absolute;top:2.6rem;bottom:2rem;left:0;width:1px;
  background:linear-gradient(var(--oxblood),var(--gold),transparent);
  opacity:.55;
}
.guide-main .kicker{margin-top:2.6rem}
.guide-main h1{
  font-family:var(--serif-display);font-weight:700;color:var(--ink);
  font-size:3.1rem;line-height:1.08;text-wrap:balance;
}
.guide-main h1 em{color:var(--oxblood);font-style:normal}
.guide-main h2{font-size:1.85rem;margin-bottom:1rem}
.guide-main p+p{margin-top:1em}
.guide-main ul{margin:1em 0 0 1.2em}
.guide-main li+li{margin-top:.55em}
.guide-main code{
  font-family:var(--serif-body);font-weight:600;font-size:.94em;
  background:var(--parchment-dk);border:1px solid var(--ink-faint);
  padding:.05em .35em;border-radius:2px;white-space:nowrap;
}
.guide-lede{font-family:var(--serif-fell);font-style:italic;font-size:1.25rem;color:var(--ink-soft);margin-top:1.2rem}
.guide-plate{
  display:grid;grid-template-columns:minmax(0,1fr) 13rem;gap:1.5rem;align-items:center;
  margin:2.2rem 0 2.6rem;padding:1.1rem;
  border:1px solid var(--ink-faint);
  background:
    radial-gradient(26% 36% at 84% 24%, rgba(110,20,35,.08), transparent 74%),
    linear-gradient(135deg, rgba(243,232,207,.72), rgba(226,209,171,.42));
  box-shadow:8px 8px 0 -2px rgba(74,53,33,.12), 0 18px 30px -24px rgba(74,53,33,.7);
  position:relative;
  rotate:-.25deg;
}
.guide-plate::before{
  content:"";position:absolute;left:1rem;right:1rem;top:.55rem;height:1px;
  background:linear-gradient(90deg, transparent, rgba(74,53,33,.34), transparent);
}
.guide-plate::after{
  content:"";position:absolute;right:.9rem;top:.8rem;width:3.7rem;height:3.7rem;border-radius:50%;
  border:1px solid rgba(110,20,35,.28);
  box-shadow:inset 0 0 0 8px rgba(110,20,35,.035);
  opacity:.7;
}
.guide-plate svg{
  width:100%;height:auto;display:block;color:var(--ink);
  filter:drop-shadow(0 6px 8px rgba(74,53,33,.12));
}
.guide-plate p{
  margin:0;font-family:var(--serif-fell);font-style:italic;color:var(--ink-soft);
  border-left:2px solid var(--gold);padding-left:1rem;
  position:relative;z-index:1;
}
.token-table{width:100%;border-collapse:collapse;margin-top:1.2rem;font-size:.98rem}
.token-table th,.token-table td{border:1px solid var(--ink-faint);padding:.5rem .7rem;text-align:left}
.token-table th{font-family:var(--serif-display);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;background:var(--parchment-dk)}
.token-table td{vertical-align:top}
.swatch-dot{display:inline-block;width:.85em;height:.85em;border-radius:50%;border:1px solid var(--ink);vertical-align:-.08em;margin-right:.45em}
.guide-wrap{overflow-x:auto}

/* ── responsive ─────────────────────────────────────────────── */
@media (max-width:1024px){
  .charter-body,.fellow-body{grid-template-columns:1fr}
  .ledger-grid{grid-template-columns:1fr;max-width:44rem}
  .card-a,.card-b,.card-c{grid-column:auto;margin-top:0;rotate:0deg}
  .brand-est{display:none}
  .site-nav a{padding:.85rem .5rem;font-size:.7rem;letter-spacing:.1em}
  .brand-name{font-size:.86rem}
  .hero-title{font-size:4.65rem}
  .hero-over{font-size:.82rem}
  .hero-motto{font-size:1.32rem}
  .hero-sub{font-size:1.15rem}
  h2{font-size:2.55rem}
  .ledger-strip dd{font-size:2.15rem}
  .guide-main h1{font-size:2.65rem}
}
@media (max-width:900px){
  .hero-docket,.hero-register{display:none}
}
/* portrait-ish tablets: let the chart's furniture hold the column */
@media (min-width:641px) and (max-width:1100px){
  .chart-sticky{gap:1.1rem}
  .chart-legend{gap:.45rem 2.2rem}
  .leg{font-size:.82rem}
  .leg em{font-size:.98rem}
  .cap-name{font-size:.9rem}
  .cap-note{font-size:1.14rem}
}
@media (max-width:640px){
  :root{--head-h:56px}
  body{font-size:1.09rem}
  .site-head{padding:.25rem .55rem;gap:.35rem}
  .brand{gap:0}
  .brand-mark{width:30px;height:30px}
  .brand-name{display:none}
  .site-nav{flex-wrap:nowrap}
  .nav-long{display:none}
  .nav-short{display:inline}
  .site-nav a{padding:.85rem .46rem;font-size:.68rem;letter-spacing:.06em}
  .site-nav a::after{left:.3rem;right:.3rem}
  .hero{min-height:calc(94svh - var(--head-h));padding:2.8rem 1.05rem 3rem}
  .hero::before{inset:7% 2% 8%;opacity:.16}
  .hero-docket,.hero-register{display:none}
  .hero-over{font-size:.69rem;letter-spacing:.24em;margin-bottom:1.4rem}
  .hero-title{font-size:2.55rem;line-height:1.06}
  .hero-title .line:first-child{letter-spacing:.42em}
  .hero-motto{font-size:1.12rem}
  .hero-sub{font-size:1.04rem;max-width:28em}
  .hero-coordinate{font-size:.58rem;letter-spacing:.1em;gap:.25rem .35rem}
  .hero-cta{padding:.9rem 1.3rem;font-size:.74rem;letter-spacing:.18em}
  h2{font-size:2rem}
  .charter-docket{grid-template-columns:1fr;margin:-1rem auto 1.8rem}
  .charter-docket span{border-left:none;border-top:1px dashed var(--ink-faint);font-size:.62rem}
  .charter-docket span:first-child{border-top:none}
  .foot-line{font-size:.72rem;letter-spacing:.12em}
  .foot-links{gap:.15rem 1rem}
  .foot-links span{display:none}
  .ledger-strip{grid-template-columns:1fr 1fr}
  .ledger-strip>div:nth-child(3){border-left:none}
  .ledger-strip>div:nth-child(n+3){border-top:1px dashed var(--ink-faint)}
  .chart-scroll{height:300vh}
  .chart-sticky{gap:.5rem;padding:.6rem .6rem}
  .chart-folio{display:none}
  .chart-legend{gap:.2rem .9rem}
  .leg{font-size:.6rem}
  .leg em{font-size:.74rem}
  .leg .swatch{width:16px}
  .wp i{width:9px;height:9px;border-width:2.5px}
  .wp-tip{max-width:160px;font-size:.74rem}
  .cap-note{font-size:.92rem}
  .ink-gauge{flex-basis:min(240px,74vw)}
  .dropcap{width:4.1rem;height:4.1rem;margin-right:.8rem}
  .dropcap-letter{font-size:2.3rem}
  .sheet{rotate:0deg}
  .ledger-intro{font-size:1.06rem;margin-top:-.8rem}
  .ledger-strip dd{font-size:1.85rem}
  .ballot-slip{rotate:0deg}
  .guide-main{padding-left:1.25rem;padding-right:1.25rem}
  .guide-main::before{display:none}
  .guide-main h1{font-size:2.05rem}
  .guide-main h2{font-size:1.42rem}
  .guide-plate{grid-template-columns:1fr;box-shadow:5px 5px 0 -2px rgba(74,53,33,.12)}
  .guide-plate svg{max-width:15rem;margin:0 auto}
}

/* touch screens: waypoint dots keep their size, but the tappable
   area grows to the 44px minimum (the dot stays centered inside) */
@media (pointer:coarse){
  .wp{width:44px;height:44px}
}

/* ── motion preferences ─────────────────────────────────────── */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .hero-rose{animation:none}
  .hero-cta svg{animation:none}
  .reveal-load,.reveal{opacity:1;transform:none;animation:none;transition:none}
  .wp,.wp-tip,.seal-wax,.site-nav a::after,.brand-mark,.ledger,.ballot-slip,.survey-glass,#chart .inspection-layer{transition:none}
  .survey-glass{display:none}
  #chart .ship{transition:none}
}
