@font-face{font-family:'EB Garamond';src:url('/fonts/EBGaramond-var.woff2') format('woff2');font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:'EB Garamond';src:url('/fonts/EBGaramond-Italic-var.woff2') format('woff2');font-weight:400 700;font-style:italic;font-display:swap}
:root{
  --paper:#f6f1e8;--ink:#1c1915;--mute:#5a5248;--accent:#8c3d16;--sheet:#fffdf8;--shc:28,25,21;
  --hover:rgba(28,25,21,.06);--rule:rgba(28,25,21,.16);--page-filter:none;
  --serif:'EB Garamond',Georgia,'Times New Roman',serif;
  --sans:ui-sans-serif,system-ui,-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  color-scheme:light;
}
/* warm dark: lamplight on brown paper, never pure black */
:root[data-theme="dark"]{
  --paper:#1d1a16;--ink:#ede6da;--mute:#ada291;--accent:#e0a072;--sheet:#e6dfd2;--shc:0,0,0;
  --hover:rgba(237,230,218,.08);--rule:rgba(237,230,218,.16);--page-filter:brightness(.86) sepia(.08);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:18px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scrollbar-gutter:stable;overflow-y:scroll;font-synthesis:none;-webkit-text-size-adjust:100%}
html.theme-switching,html.theme-switching *{transition:none!important}
::selection{background:color-mix(in oklab,var(--accent) 18%,transparent);color:var(--ink)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);line-height:1.55}
a,button{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
:focus{outline:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
/* programmatic focus after in-app navigation (tabindex=-1) */
[tabindex="-1"]:focus,[tabindex="-1"]:focus-visible{outline:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* one header for every page: same place, width and type (immune to page-local CSS) */
.site-head{max-width:72rem;margin:0 auto;padding:2.5rem 2rem 0;display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center;flex-shrink:0}
.site-head .mast{display:block;font-size:1.6rem;font-weight:500;line-height:1.1}
.site-head .tag{margin:0;font-size:1.05rem;font-style:italic;line-height:1.35;color:var(--mute)}
.site-nav{display:flex;justify-content:center;align-items:center;gap:1.75rem;margin:0;padding:.9rem 0 2px;min-height:calc(2.75rem + 2px);font-family:var(--sans);font-size:.9rem;font-weight:500;line-height:1.2}
.site-nav a{position:relative;display:inline-block;padding:0 0 2px;border:0}
.site-nav a::before{content:"";position:absolute;left:-.55rem;right:-.55rem;top:50%;transform:translateY(-50%);height:2.5rem}
.site-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:0}
@media (hover:none),(pointer:coarse){.site-nav a::before{height:2.75rem}}
.site-nav a[aria-current="page"]::after{opacity:1}
.site-nav a:active{opacity:.72;transition:opacity 120ms ease-out}
@media (hover:hover) and (pointer:fine){.site-nav a:hover::after{opacity:1}}
body>.page{border-top:1px solid transparent}
.page>#root,.page>main.page-content{padding-top:1.5rem}
/* switch, Radix-style: a track and a thumb, role="switch" */
.theme{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:inherit;color:var(--mute);background:none;border:0;padding:.5rem;margin:-.5rem;cursor:pointer;transition:transform 150ms ease-out}
.theme .track{position:relative;width:2.1rem;height:1.2rem;border-radius:999px;background:var(--rule);transition:background .2s ease}
.theme .thumb{position:absolute;top:.15rem;left:.15rem;width:.9rem;height:.9rem;border-radius:50%;background:var(--paper);box-shadow:0 1px 2px rgba(var(--shc),.25);transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.theme[aria-checked="true"] .track{background:var(--ink)}
.theme[aria-checked="true"] .thumb{transform:translateX(.9rem)}
@media (hover:hover) and (pointer:fine){.theme:hover{color:var(--ink)}}
.theme:active{transform:scale(.97)}
.theme:focus-visible{outline:none}.theme:focus-visible .track{outline:2px solid var(--ink);outline-offset:2px}
footer.site{display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding:5rem 0 3rem;font-family:var(--sans);font-size:.85rem;color:var(--mute)}
footer.site p{margin:0}
/* Cross-fade content only; site header stays fixed (MPA + SPA) */
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0}}
#root,main.page-content{view-transition-name:page-content}
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(page-content){animation:vt-out .12s ease-out both}
  ::view-transition-new(page-content){animation:vt-in .16s ease-out .12s both}
}
@media(max-width:760px){.site-head{padding:2rem 1.15rem 0}.site-nav{gap:1.1rem}}
