/* ==========================================================================
   Silvæ — site styles
   A scholar's-book identity: one reading face (ET Book), rubrication in a
   manuscript red, iron-gall ink on vellum, warm bistre dark mode.
   ========================================================================== */

/* ---- fonts (self-hosted; no external requests) --------------------------- */
@font-face{
  font-family:"ET Book";font-style:normal;font-weight:400;font-display:swap;
  src:url("/assets/fonts/et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.woff") format("woff");
}
@font-face{
  font-family:"ET Book";font-style:italic;font-weight:400;font-display:swap;
  src:url("/assets/fonts/et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff") format("woff");
}
@font-face{
  font-family:"ET Book";font-style:normal;font-weight:600;font-display:swap;
  src:url("/assets/fonts/et-book/et-book-semi-bold-old-style-figures/et-book-semi-bold-old-style-figures.woff") format("woff");
}
@font-face{
  font-family:"Lato";font-style:normal;font-weight:400;font-display:swap;
  src:url("/assets/fonts/lato-latin/LatoLatin-Regular.woff2") format("woff2");
}
@font-face{
  font-family:"Lato";font-style:normal;font-weight:700;font-display:swap;
  src:url("/assets/fonts/lato-latin/LatoLatin-Bold.woff2") format("woff2");
}

/* ---- tokens -------------------------------------------------------------- */
:root{
  --paper:#f1ede1; --paper-raised:#e9e3d3;
  --ink:#26201a; --ink-soft:#6f6455;
  --rubric:#9c2a20; --rubric-soft:rgba(156,42,32,.10);
  --rule:#d5cdba;
  --serif:"ET Book",Palatino,"Palatino Linotype",Georgia,serif;
  --sans:"Lato",ui-sans-serif,system-ui,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --wrap:62rem; --measure:34rem;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#24201a; --paper-raised:#2c271f;
    --ink:#d9cfbd; --ink-soft:#9d9078;
    --rubric:#d2836f; --rubric-soft:rgba(210,131,111,.14);
    --rule:#3c352a;
  }
}
:root[data-theme="light"]{
  --paper:#f1ede1; --paper-raised:#e9e3d3;
  --ink:#26201a; --ink-soft:#6f6455;
  --rubric:#9c2a20; --rubric-soft:rgba(156,42,32,.10); --rule:#d5cdba;
}
:root[data-theme="dark"]{
  --paper:#24201a; --paper-raised:#2c271f;
  --ink:#d9cfbd; --ink-soft:#9d9078;
  --rubric:#d2836f; --rubric-soft:rgba(210,131,111,.14); --rule:#3c352a;
}

/* ---- reset --------------------------------------------------------------- */
*{box-sizing:border-box;}
html{font-size:112.5%;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--serif);font-weight:400;line-height:1.56;
  font-feature-settings:"onum" 1,"liga" 1;
  -webkit-font-smoothing:antialiased;
  transition:background .3s ease,color .3s ease;
}
img{max-width:100%;height:auto;}
a{color:inherit;}
::selection{background:var(--rubric-soft);}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 2rem;}
.col{max-width:37rem;margin:0 auto;}

.skip{position:absolute;left:-999px;top:0;background:var(--paper-raised);
  padding:.5rem 1rem;font-family:var(--sans);font-size:.8rem;z-index:20;}
.skip:focus{left:1rem;top:1rem;}

/* ---- masthead ------------------------------------------------------------ */
.masthead{
  display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;
  flex-wrap:wrap;padding-top:1.6rem;padding-bottom:.9rem;margin-bottom:1rem;
  border-bottom:1px solid var(--rule);
}
.wordmark{font-family:var(--serif);font-size:1.3rem;letter-spacing:.02em;text-decoration:none;}
.masthead nav ul{list-style:none;display:flex;gap:1.15rem;margin:0;padding:0;flex-wrap:wrap;}
.masthead nav a{
  font-family:var(--sans);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
  text-decoration:none;color:var(--ink-soft);padding-bottom:.2rem;
  border-bottom:1.5px solid transparent;transition:color .2s,border-color .2s;
}
.masthead nav a:hover{color:var(--ink);}
.masthead nav a.active{color:var(--ink);border-bottom-color:var(--rubric);}

/* ---- title-page hero ----------------------------------------------------- */
.titlepage{text-align:center;padding:3.2rem 0 2rem;}
.titlepage .kicker{
  font-family:var(--sans);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 1.1rem;
}
.titlepage .kicker b{color:var(--ink);font-weight:600;}
.hero-name{font-size:clamp(2.6rem,6vw,3.6rem);font-weight:400;line-height:1.05;
  margin:0;letter-spacing:.02em;text-wrap:balance;}
.hero-sub{font-style:italic;font-size:1.22rem;color:var(--ink-soft);margin:.6rem 0 1.5rem;}
.ornrule{width:3.2rem;height:1px;background:var(--rule);border:0;margin:1.4rem auto;}
.standfirst{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);}

/* ---- home: portrait + intro strip --------------------------------------- */
.intro-card{
  max-width:44rem;margin:1.4rem auto 0;
  display:grid;grid-template-columns:11rem 1fr;gap:1.9rem;align-items:start;
}
.portrait{
  width:11rem;height:11rem;object-fit:cover;border-radius:4px;
  border:1px solid var(--rule);
  box-shadow:0 2px 12px rgba(38,32,26,.12);
}
@media (prefers-color-scheme:dark){
  .portrait{box-shadow:0 2px 14px rgba(0,0,0,.45);}
}
:root[data-theme="dark"] .portrait{box-shadow:0 2px 14px rgba(0,0,0,.45);}
:root[data-theme="light"] .portrait{box-shadow:0 2px 12px rgba(38,32,26,.12);}
.intro-text p:first-child{margin-top:0;}
@media (max-width:36rem){
  .intro-card{grid-template-columns:1fr;justify-items:center;gap:1.1rem;}
  .portrait{width:9rem;height:9rem;}
  .intro-text{text-align:left;}
}

/* ---- generic prose ------------------------------------------------------- */
.lead-block,.page .body,.intro{font-size:1.05rem;}
.lead-block p:first-child{font-size:1.16rem;}
.body p,.lead-block p,.intro p{margin:0 0 1.1rem;}
.page-head{margin:1.5rem 0 1.4rem;}
.page-head h1{font-size:clamp(2rem,4.5vw,2.7rem);font-weight:400;line-height:1.1;margin:0;text-wrap:balance;}
.page-head .subtitle{font-style:italic;color:var(--ink-soft);font-size:1.1rem;margin:.5rem 0 0;}

.body h2,.body h3{font-weight:600;line-height:1.2;}
.body h2{font-size:1.5rem;margin:2.2rem 0 .8rem;}
.body h3{font-size:1.2rem;margin:1.8rem 0 .6rem;}
.body a{text-decoration:none;background-image:linear-gradient(var(--rubric),var(--rubric));
  background-size:100% 1px;background-repeat:no-repeat;background-position:0 1.12em;
  padding-bottom:1px;transition:background-position .2s;}
.body a:hover{background-position:0 1.2em;}
.body ul,.body ol{padding-left:1.3rem;}
.body li{margin:.3rem 0;}
blockquote{margin:1.5rem 0;padding-left:1.1rem;border-left:2px solid var(--rule);
  font-style:italic;color:var(--ink-soft);}
hr{border:0;height:1px;background:var(--rule);margin:2.2rem 0;}

/* section eyebrow */
.section{font-family:var(--sans);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:700;margin:2.6rem 0 1rem;
  display:flex;align-items:center;gap:.9rem;}
.section::after{content:"";height:1px;flex:1;background:var(--rule);}
.section.year{color:var(--ink);}

/* code */
code{font-family:var(--mono);font-size:.82em;background:var(--rubric-soft);padding:.08em .35em;border-radius:2px;}
pre{background:var(--paper-raised);border:1px solid var(--rule);border-radius:3px;
  padding:1rem 1.1rem;overflow-x:auto;margin:1.4rem 0;font-size:.8rem;line-height:1.5;}
pre code{background:none;padding:0;}
.sourceCode{background:none;}
/* pandoc/skylighting highlight tokens */
code .kw,code .cf{color:var(--rubric);}
code .co{color:var(--ink-soft);font-style:italic;}
code .st,code .ch,code .vs{color:var(--ink-soft);}
code .dv,code .bn,code .fl{color:var(--ink);}
code .fu,code .bu{font-weight:600;}

/* tables */
table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:.95rem;}
th{font-family:var(--sans);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  font-weight:700;text-align:left;border-bottom:1px solid var(--ink);padding:.5rem;}
td{padding:.5rem;border-bottom:1px solid var(--rule);}

/* ---- entries list (writing streams) ------------------------------------- */
.entries{list-style:none;margin:0;padding:0;}
.entries li{display:grid;grid-template-columns:5.4rem 1fr;gap:1.2rem;align-items:baseline;
  padding:.85rem 0;border-bottom:1px solid var(--rule);}
.entries .date{font-family:var(--sans);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-soft);padding-top:.3rem;font-variant-numeric:tabular-nums;}
.entries .etitle{font-size:1.28rem;text-decoration:none;display:inline-block;
  background-image:linear-gradient(var(--rubric),var(--rubric));background-size:0% 1px;
  background-repeat:no-repeat;background-position:0 100%;transition:background-size .25s ease;padding-bottom:1px;}
.entries li:hover .etitle{background-size:100% 1px;}
.entries .tags{display:block;font-family:var(--sans);font-size:.64rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);margin-top:.35rem;}
.more{font-family:var(--sans);font-size:.78rem;letter-spacing:.04em;margin-top:1.2rem;}
.more a{color:var(--rubric);text-decoration:none;}
.more a:hover{text-decoration:underline;}
.year-group{margin-top:1.4rem;}

/* ---- home duo ------------------------------------------------------------ */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;}
.home-duo{margin-top:2.6rem;}
.card{margin-bottom:1rem;}
.card h3{font-size:1.2rem;margin:0 0 .3rem;font-weight:400;}
.card h3 a{text-decoration:none;border-bottom:1px solid var(--rubric-soft);}
.card p{margin:0;color:var(--ink-soft);font-size:.98rem;line-height:1.5;}
.now .stamp{font-family:var(--sans);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .5rem;}

/* ---- essay / reading view with marginalia -------------------------------- */
.essay{max-width:var(--wrap);margin:0 auto;}
.essay-head{margin:1.6rem 0 1.6rem;max-width:var(--measure);}
.essay-head h1{font-size:clamp(2rem,4.5vw,2.9rem);font-weight:400;line-height:1.1;margin:0 0 .5rem;text-wrap:balance;}
.byline{font-family:var(--sans);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);}
.byline .dot{color:var(--rubric);}

.essay .body{counter-reset:sidenote-counter;position:relative;}
.essay .body > *{max-width:var(--measure);}
.essay .body > figure,.essay .body > .fullwidth{max-width:none;}

/* drop cap on the opening paragraph */
.dropcap > p:first-of-type::first-letter{
  font-weight:400;color:var(--rubric);float:left;line-height:.68;
  font-size:3.3rem;padding:.32rem .45rem 0 0;
}
/* new-thought opener: [Text]{.newthought} */
.newthought{font-variant:small-caps;letter-spacing:.03em;}

/* tufte-style sidenotes: float into the right gutter, outside the 34rem measure */
.sidenote,.marginnote{
  float:right;clear:right;width:14rem;margin:.3rem -16rem .8rem 0;
  font-family:var(--sans);font-size:.76rem;line-height:1.45;color:var(--ink-soft);
  position:relative;
}
.sidenote-number{counter-increment:sidenote-counter;}
.sidenote-number::after{content:counter(sidenote-counter);
  font-family:var(--sans);font-size:.62em;vertical-align:super;color:var(--rubric);
  left:.1em;position:relative;font-weight:700;}
.sidenote::before{content:counter(sidenote-counter) " ";color:var(--rubric);font-weight:700;}
input.margin-toggle{display:none;}
label.sidenote-number{display:inline;cursor:default;}
label.margin-toggle:not(.sidenote-number){display:none;}
.epigraph{font-style:italic;color:var(--ink-soft);border-left:2px solid var(--rule);
  padding-left:1.1rem;margin:1.6rem 0;}
.asterism{text-align:center;color:var(--rubric);margin:2.4rem 0;font-size:1.3rem;letter-spacing:.4em;max-width:var(--measure);}

/* references (pandoc citeproc) */
#refs,.bibliography{font-size:.92rem;color:var(--ink-soft);border-top:1px solid var(--rule);
  margin-top:2.4rem;padding-top:1rem;max-width:var(--measure);}
.csl-entry{text-indent:-1.4rem;padding-left:1.4rem;margin:0 0 .6rem;line-height:1.5;}

/* essay footer */
.essay-foot{max-width:var(--measure);margin-top:2.6rem;border-top:1px solid var(--rule);padding-top:1.2rem;}
.prevnext{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;font-family:var(--sans);font-size:.8rem;}
.prevnext a{color:inherit;text-decoration:none;max-width:14rem;}
.prevnext .next{text-align:right;margin-left:auto;}
.prevnext .lbl{display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rubric);margin-bottom:.2rem;}
.backlink{margin-top:1.4rem;font-family:var(--sans);font-size:.78rem;}
.backlink a{color:var(--rubric);text-decoration:none;}

/* ---- notes stream -------------------------------------------------------- */
.note-stream{list-style:none;margin:0;padding:0;}
.note{padding:1.4rem 0;border-bottom:1px solid var(--rule);}
.note-body p:first-child{margin-top:0;}
.note-meta{font-family:var(--sans);font-size:.7rem;letter-spacing:.06em;color:var(--ink-soft);margin:.6rem 0 0;}
.note-meta a{color:var(--ink-soft);text-decoration:none;}
.note-meta a:hover{color:var(--rubric);}
.note-single .note-body{font-size:1.08rem;}

/* ---- software / blogroll ------------------------------------------------- */
.sw-list,.roll-list{list-style:none;margin:0;padding:0;}
.sw-item{padding:1rem 0;border-bottom:1px solid var(--rule);}
.sw-name{font-size:1.2rem;font-weight:400;margin:0 0 .25rem;}
.sw-lang{font-family:var(--sans);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);border:1px solid var(--rule);border-radius:2rem;padding:.1rem .5rem;vertical-align:middle;margin-left:.4rem;}
.sw-desc{margin:.2rem 0 .4rem;color:var(--ink-soft);font-size:.98rem;}
.sw-links{font-family:var(--sans);font-size:.74rem;}
.sw-links a{color:var(--rubric);text-decoration:none;}
.sw-links .sep,.note-meta .sep,.roll-note{color:var(--ink-soft);}
.roll-list li{padding:.5rem 0;border-bottom:1px solid var(--rule);}
.roll-list a{text-decoration:none;border-bottom:1px solid var(--rubric-soft);}
.roll-note{font-size:.92rem;}
.tags-list{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:0;margin:0;font-family:var(--sans);font-size:.8rem;}
.tag-count{color:var(--rubric);font-variant-numeric:tabular-nums;}

/* ---- footer -------------------------------------------------------------- */
.site-footer{margin-top:4rem;padding-top:1.4rem;padding-bottom:3rem;border-top:1px solid var(--rule);
  font-family:var(--sans);font-size:.72rem;color:var(--ink-soft);letter-spacing:.02em;}
.meta-nav ul{list-style:none;display:flex;gap:1.1rem;flex-wrap:wrap;margin:0 0 1rem;padding:0;}
.meta-nav a{text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;text-decoration:none;color:var(--ink-soft);}
.meta-nav a:hover{color:var(--ink);}
.colophon-line{display:flex;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;}
.rels{display:flex;gap:1.1rem;flex-wrap:wrap;}
.rels a{text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:1px;}
.rels a:hover{color:var(--ink);border-bottom-color:var(--rubric);}
.roman-num{font-variant:small-caps;}

/* ---- 404 ----------------------------------------------------------------- */
.notfound{text-align:center;padding:3rem 0;}
.notfound .big{font-size:5rem;color:var(--rubric);margin:0;line-height:1;}
.notfound h1{font-weight:400;}

/* ---- theme toggle -------------------------------------------------------- */
.theme-toggle{position:fixed;bottom:1.1rem;right:1.1rem;z-index:10;width:2.3rem;height:2.3rem;
  border-radius:50%;border:1px solid var(--rule);background:var(--paper-raised);color:var(--ink-soft);
  font-size:1rem;cursor:pointer;transition:color .2s,border-color .2s;}
.theme-toggle:hover{color:var(--ink);border-color:var(--rubric);}

/* ---- focus / motion ------------------------------------------------------ */
a:focus-visible,button:focus-visible{outline:2px solid var(--rubric);outline-offset:3px;border-radius:2px;}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}

/* ---- responsive ---------------------------------------------------------- */
@media (max-width:60rem){
  .essay .body > *{max-width:none;}
  .essay-head,.essay-foot,.asterism,#refs,.bibliography{max-width:none;}
  label.margin-toggle:not(.sidenote-number){display:inline;color:var(--rubric);cursor:pointer;}
  .sidenote,.marginnote{display:none;}
  .margin-toggle:checked + .sidenote,
  .margin-toggle:checked + .marginnote{display:block;float:none;width:auto;margin:1rem 0;
    padding:.6rem .9rem;background:var(--paper-raised);border-radius:3px;}
}
@media (max-width:38rem){
  html{font-size:106%;}
  .wrap{padding:0 1.2rem;}
  .duo{grid-template-columns:1fr;gap:1.6rem;}
  .entries li{grid-template-columns:1fr;gap:.2rem;}
  .entries .date{padding-top:0;}
  .masthead{padding-top:1.1rem;}
}
