/* ── Andrew Bishop ───────────────────── */

@font-face { font-family:'Charter'; src:url('fonts/charter_regular.woff2') format('woff2');
  font-weight:normal; font-style:normal; font-display:optional; }
@font-face { font-family:'Charter'; src:url('fonts/charter_italic.woff2') format('woff2');
  font-weight:normal; font-style:italic; font-display:optional; }
@font-face { font-family:'Charter'; src:url('fonts/charter_bold.woff2') format('woff2');
  font-weight:bold; font-style:normal; font-display:optional; }
@font-face { font-family:'Charter'; src:url('fonts/charter_bold_italic.woff2') format('woff2');
  font-weight:bold; font-style:italic; font-display:optional; }

@font-face { font-family:'Commit Mono'; src:url('fonts/CommitMono-Variable.woff2') format('woff2');
  font-weight:100 900; font-style:normal; font-display:optional; }

@font-face { font-family:'Young Serif'; src:url('fonts/YoungSerif-Regular.woff2') format('woff2');
  font-weight:normal; font-style:normal; font-display:swap; }

:root {
  --paper:#FBFAF6; --ink:#26242B; --soft:#5A5762; --ghost:#98959E;
  --link:#5E1E96; --line:#E7E4DD;
  --violet:#6E28A8; --vermillion:#C2470B; --oxblood:#8A2433; --pine:#1B6B58;
}
@media (prefers-color-scheme: dark) {
  :root { color-scheme: dark; --paper:#1C1B21; --ink:#E8E6E0; --soft:#A8A5B0; --ghost:#75727E;
    --link:#C9A2F2; --line:#302E38;
    --violet:#B287E6; --vermillion:#F0854E; --oxblood:#D96A78; --pine:#52B393; }
}

* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--paper); color:var(--ink);
  font-family: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, Georgia, serif;
  font-weight:400; font-size:1.08rem; line-height:1.58; padding:2.5rem 1.4rem 2.8rem; }
.page { max-width:600px; margin:0 auto; }

a { color:var(--link); text-decoration:underline; text-underline-offset:2px; }
a:hover { color:var(--ink); }
.page a:not(.btn):not(.door-btn):hover,
.wild-page a:not(.btn):not(.door-btn):hover {
  color:var(--ink); background: color-mix(in srgb, var(--violet) 30%, transparent); border-radius:0.06em; }
p { margin-bottom:1.1rem; }
ul { margin:0 0 1.1rem 1.4rem; }
li { margin-bottom:0.4rem; }
.muted { color:var(--soft); }
.tiny { font-size:0.78em; color:var(--ghost); }
em { font-style:italic; }
strong { font-weight:bold; }

.mono { font-family: 'Commit Mono', ui-monospace, 'SF Mono', Menlo, monospace; font-size:11px;
  letter-spacing:0.14em; text-transform:uppercase; }

header { margin-bottom:2.6rem; }
header .name { font-family:'Young Serif', Charter, Georgia, serif; font-size:1.25em; font-weight:normal; }
header .name a { color:var(--ink); text-decoration:none; }
header .name a:hover { text-decoration:underline; }
.name-tag { font-size:0.72em; font-weight:normal; font-style:italic; color:var(--violet); margin-left:0.5em; }
header nav { margin-top:0.4rem; font-size:0.85em; }
header nav a { margin-right:0.9rem; color:var(--soft); }
header nav a:hover { color:var(--ink); }

/* headings: violet italics (the experiment) */
h1 { font-family:'Young Serif', Charter, Georgia, serif; font-size:1.6em; font-weight:normal; margin-bottom:0.3rem; }
.subtitle { color:var(--violet); font-style:italic; font-size:1.25rem; margin-bottom:2rem; }
.updated { font-size:0.78em; color:var(--ghost);
  font-family: 'Commit Mono', ui-monospace, 'SF Mono', Menlo, monospace; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:2rem; }
.eyebrow { font-size:0.68em; letter-spacing:0.14em; text-transform:uppercase; color:var(--ghost);
  font-family: 'Commit Mono', ui-monospace, 'SF Mono', Menlo, monospace; margin-bottom:0.5rem; }
h2 { font-size:1.22em; font-weight:400; font-style:italic; color:var(--violet);
  margin:2.8rem 0 0.9rem; letter-spacing:-0.01em; }

/* ── deeper heading levels (legal pages) ── */
h3 { font-size:1.02em; font-weight:bold; color:var(--ink);
  margin:2rem 0 0.5rem; letter-spacing:-0.005em; }
h4 { font-family:'Commit Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  font-size:0.7em; font-weight:normal; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--soft); margin:1.5rem 0 0.4rem; }

/* ── legal pages: denser text, readable all-caps blocks ── */
.legal p { margin-bottom:0.9rem; }
.legal h2:first-of-type { margin-top:1.8rem; }
.legal .caps { font-size:0.86em; line-height:1.55; color:var(--soft);
  border-left:2px solid var(--line); padding:0.1rem 0 0.1rem 1rem; margin:1.1rem 0; }
.legal address { font-style:normal; margin:0.6rem 0 1.2rem 0; line-height:1.5;
  color:var(--soft); }
.legal .toc { margin:1.4rem 0 2rem; padding:0; list-style:none; }
.legal .toc li { margin-bottom:0.3rem; }
.legal .toc a { text-decoration:none; }
.legal .toc a:hover { text-decoration:underline; }
.legal .fineprint { font-size:0.82em; color:var(--ghost); line-height:1.5;
  border-top:1px solid var(--line); padding-top:1rem; margin-top:2.6rem; }
.legal .backtotop { font-family:'Commit Mono', ui-monospace, monospace; font-size:0.65em;
  letter-spacing:0.1em; text-transform:uppercase; text-decoration:none; color:var(--ghost);
  float:right; margin-top:0.5em; }
.legal .backtotop:hover { color:var(--ink); background:none; }

table { width:100%; border-collapse:collapse; font-size:0.82em; margin:0.6rem 0 1.4rem; }
th { text-align:left; font-weight:normal; font-family: 'Commit Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--ghost);
  padding:6px 12px 6px 0; border-bottom:1px solid var(--line); }
td { padding:9px 12px 9px 0; border-bottom:1px solid var(--line); vertical-align:top; }
tr:last-child td { border-bottom: none; }

.callout { background:rgba(110,40,168,0.05); border:1px dashed var(--link); border-radius:6px;
  padding:1rem 1.2rem; margin:1.4rem 0; font-size:0.94em; }
.callout p:last-child { margin-bottom:0; }
@media (prefers-color-scheme: dark) { .callout { background:rgba(178,135,230,0.08); } }
.callout.quiet { background:transparent; border:1px solid var(--line); }

blockquote { border-left:2px solid var(--line); padding:0.2rem 0 0.2rem 1.1rem;
  margin:1.4rem 0; color:var(--soft); font-style:italic; }
blockquote .who { display:block; margin-top:0.5rem; font-style:normal; font-size:0.82em; color:var(--ghost); }

.price-row { margin:1rem 0 0.4rem; }
.price { font-size:1.05em; }
.btn { font-family: 'Commit Mono', ui-monospace, 'SF Mono', Menlo, monospace; font-size:12px;
  letter-spacing:0.12em; text-transform:uppercase; border:1px solid var(--ink);
  background:transparent; color:var(--ink); padding:12px 22px; border-radius:999px;
  cursor:pointer; text-decoration:none; display:inline-block; transition: background 0.15s, color 0.15s; }
.btn:hover { background:var(--ink); color:var(--paper); }

/* touch: no grey flash; subscribe button presses violet, not ink */
.btn { -webkit-tap-highlight-color: transparent; }
form.letter .btn { border-color:var(--violet); color:var(--violet); }
form.letter .btn.pressed { background:var(--violet); border-color:var(--violet); color:var(--paper); }
@media (hover:hover) {
  form.letter .btn:hover { background:var(--violet); border-color:var(--violet); color:var(--paper); }
}

.footnote { font-size:0.78em; color:var(--soft); border-top:1px solid var(--line);
  padding-top:0.9rem; margin-top:2.4rem; }
sup { font-size:0.7em; } sup a { text-decoration:none; }

footer { margin-top:2.8rem; padding-top:1.2rem; border-top:1px solid var(--line);
  font-size:0.78em; color:var(--ghost); }
.ph { color:var(--link); font-size:0.72em; }

footer nav { font-size:0.85rem; }
footer nav a { margin-right:0.9rem; color:var(--soft); }
footer nav a:hover { color:var(--ink); }
footer nav .copyright { color:var(--ghost); margin-left:0.4rem; }

/* current page: not a link, marked as where you are */
header nav .here, footer nav .here { margin-right:0.9rem; color:var(--ink); }

/* ── homepage-specific ───────────────────────────────────────── */
.status { font-size:0.68em; color:var(--ghost); margin-top:1rem;
  font-family: 'Commit Mono', ui-monospace, 'SF Mono', Menlo, monospace; letter-spacing:0.1em; text-transform:uppercase; }
.status .breath { display:inline-block; width:8px; height:8px; border-radius:50%;
  background:var(--link); vertical-align:baseline; margin-right:6px;
  animation: breathe 12s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .status .breath { animation:none; } }
@keyframes breathe { 0%,100% { transform:scale(0.7); opacity:0.45; } 50% { transform:scale(1); opacity:0.9; } }

/* tool table color marks */
td.mark { width:18px; padding-right:8px; }
td.mark span { display:inline-block; width:10px; height:10px; border-radius:3px; }
.free { color:var(--pine); } .email-gate { color:var(--soft); } .paid { color:var(--oxblood); }

/* about portrait */
/* .portrait { float:right; width:150px; height:auto; margin:6px 0 8px 20px; border-radius:3px;
  border:1px solid var(--line); }
@media (max-width:480px) { .portrait { float:none; display:block; margin:0 0 1.2rem; width:180px; } } */

.portrait { float:right; width:150px; height:auto; margin:6px 0 8px 20px;
    border-radius:3px; border:1px solid var(--line);
    transition: transform 0.3s ease; }
  @media (hover: hover) {
    .portrait:hover { transform: rotate(2deg); }
  }
  @media (max-width:480px) { .portrait { float:none; display:block; margin:0 0 1.2rem; width:180px; } }

/* newsletter form */
form.letter { margin:0.8rem 0 0; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
form.letter input { font-family: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, Georgia, serif;
  font-size:0.85em; padding:10px 18px; border:1px solid var(--soft); border-radius:999px;
  background:transparent; color:var(--ink); width:230px; }
form.letter input:focus { outline:none; border-color:var(--violet); }

form.letter .consent { flex-basis:100%; display:flex; gap:0.5rem; align-items:flex-start;
    font-size:0.9em; color:var(--ink); line-height:1.45; margin:0.2rem 0 1rem; cursor:pointer; }
  form.letter .consent input { width:auto; margin-top:0.2em; accent-color:var(--violet); flex-shrink:0; }
  form.letter .consent span { flex:1; }
  
  
  
.bm-hp {
  position:absolute !important; left:-9999px !important; top:auto !important;
  width:1px !important; height:1px !important; overflow:hidden !important;
  opacity:0 !important; pointer-events:none !important;
  padding:0 !important; border:0 !important; margin:0 !important;
}
  
  