@font-face{font-family:"Caslon Display";src:url(/fonts/librecaslondisplay.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Caslon Text";src:url(/fonts/librecaslontext.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(/fonts/instrumentsans.woff2) format("woff2");font-weight:400 700;font-stretch:75% 100%;font-display:swap}

:root{
  --paper:#F6F7F5; --stone:#E6E8E4; --ink:#1A1D21; --body:#2F343A; --graphite:#4E545C; --rule:#C9CDC7;
  --accent:#1F4D45; --accent-ink:#F6F7F5; --band:#1F4D45; --band-ink:#F6F7F5; --band-soft:#D6E2DE;
  --header:rgba(246,247,245,.86); --card:#FFFFFF; --card-ring:rgba(26,29,33,.08); --photo:none; color-scheme:light;
  --display:"Caslon Display","Caslon Text",Georgia,"Times New Roman",serif;
  --serif:"Caslon Text",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.1,1); --wrap:1240px; --measure:680px; --gutter:clamp(20px,4vw,40px);
}
:root[data-theme="dark"]{
  --paper:#0F1614; --stone:#18211E; --ink:#E9ECE8; --body:#C9D0CB; --graphite:#98A29C; --rule:#2B3532;
  --accent:#8CC2B2; --accent-ink:#0F1614; --band:#16302A; --band-ink:#E9ECE8; --band-soft:#B5C9C2;
  --header:rgba(15,22,20,.82); --card:#141C1A; --card-ring:rgba(233,236,232,.10); --photo:brightness(.86) contrast(1.04); color-scheme:dark;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#0F1614; --stone:#18211E; --ink:#E9ECE8; --body:#C9D0CB; --graphite:#98A29C; --rule:#2B3532;
  --accent:#8CC2B2; --accent-ink:#0F1614; --band:#16302A; --band-ink:#E9ECE8; --band-soft:#B5C9C2;
  --header:rgba(15,22,20,.82); --card:#141C1A; --card-ring:rgba(233,236,232,.10); --photo:brightness(.86) contrast(1.04); color-scheme:dark;
}}
::selection{background:var(--accent);color:var(--accent-ink)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .22s var(--ease),color .22s var(--ease);padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:16px;z-index:100;background:var(--ink);color:var(--paper);padding:10px 16px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top,0px);background:var(--header);backdrop-filter:saturate(1.2) blur(12px);-webkit-backdrop-filter:saturate(1.2) blur(12px);box-shadow:0 1px 0 var(--rule)}
.site-header .wrap{display:flex;gap:12px 32px;justify-content:space-between;align-items:center;min-height:76px}
.mark{font-family:var(--serif);font-size:18px;text-decoration:none}
.head-right{display:flex;align-items:center;gap:24px}
.nav{display:flex;gap:8px 28px;font-size:15px;font-weight:500}
.nav a{text-decoration:none;padding:12px 0;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 8px)/0 1px no-repeat;transition:background-size .35s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{background-size:100% 1px}
.room{width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid var(--rule);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;transition:border-color .18s var(--ease)}
.room:hover{border-color:var(--ink)}
.room svg{width:18px;height:18px}
.room .sun{display:none}
:root[data-theme="dark"] .room .sun{display:block}
:root[data-theme="dark"] .room .moon{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .room .sun{display:block}:root:not([data-theme="light"]) .room .moon{display:none}}
.progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--accent);transform-origin:left;transform:scaleX(var(--p,0))}

/* Article */
.article{padding-top:clamp(56px,8vw,96px)}
.crumbs{font-size:14px;color:var(--graphite);margin:0 0 28px}
.crumbs a{color:var(--graphite)}
.article h1{max-width:960px;margin:0;font:400 clamp(40px,5.6vw,76px)/1.02 var(--display);letter-spacing:-.012em;text-wrap:balance}
.standfirst{max-width:var(--measure);margin:28px 0 0;font:400 clamp(20px,2vw,24px)/1.45 var(--serif);color:var(--body);text-wrap:pretty}
.byline{display:flex;align-items:center;gap:14px;margin-top:36px;padding-top:24px;border-top:1px solid var(--ink);max-width:960px}
.byline img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:center 18%;filter:var(--photo)}
.byline .who{display:flex;flex-direction:column;gap:2px;font-size:15px}
.byline .who a{font-weight:600;text-decoration:none}
.byline .meta{color:var(--graphite);font-size:14px}
.cover{margin:48px 0 0;max-width:960px;background:var(--stone)}
.cover img{width:100%;aspect-ratio:16/9;object-fit:cover}

.layout{display:flex;flex-wrap:wrap;gap:48px 72px;margin-top:56px}
.prose{flex:1 1 var(--measure);max-width:var(--measure);min-width:0}
.aside{flex:0 1 300px;min-width:0}
.brief{position:sticky;top:112px;padding:24px 0 0;border-top:1px solid var(--ink)}
.brief h2{margin:0 0 14px;font:600 14px/1.3 var(--sans)}
.brief ul{margin:0;padding:0;list-style:none}
.brief li{padding:12px 0;border-top:1px solid var(--rule);font-size:15px;line-height:1.5;color:var(--body)}
.brief li:first-child{border-top:0;padding-top:0}
.brief blockquote{margin:20px 0 0;padding:20px 0 0;border-top:1px solid var(--rule);font:400 20px/1.35 var(--serif);color:var(--ink)}
@media (max-width:1060px){.aside{order:-1;flex-basis:100%;max-width:var(--measure)}.brief{position:static}}

.prose p{margin:0 0 1.15em;font:400 20px/1.68 var(--serif);color:var(--body);text-wrap:pretty}
.prose h2{margin:2.2em 0 .7em;font:400 clamp(26px,2.6vw,32px)/1.15 var(--display);color:var(--ink);text-wrap:balance}
.prose a{color:var(--ink);text-decoration-color:var(--accent)}
.prose a:hover{color:var(--accent)}
.prose sup{font:500 12px/0 var(--sans);vertical-align:super;margin-left:1px}
.prose sup a{text-decoration:none;color:var(--accent)}
.prose em{font-style:italic}
.prose .lede-em{font-size:18px;color:var(--graphite)}
.prose .aside-note{font:italic 400 16px/1.6 var(--serif);color:var(--graphite)}
.notes{margin:2.4em 0 0;padding:24px 0 0;border-top:1px solid var(--rule)}
.notes h2{margin:0 0 12px;font:600 14px/1.3 var(--sans);color:var(--ink)}
.notes ol{margin:0;padding-left:1.4em;font-size:14px;line-height:1.55;color:var(--graphite)}
.notes li{margin:0 0 8px}

.origin{margin:40px 0 0;padding:20px 0 0;border-top:1px solid var(--rule);font-size:15px;color:var(--graphite)}

/* Author + related */
.author{display:flex;flex-wrap:wrap;gap:24px 40px;align-items:center;margin-top:clamp(72px,9vw,112px);padding:32px;background:var(--stone)}
.author img{width:96px;height:120px;object-fit:cover;filter:var(--photo)}
.author .txt{flex:1 1 320px}
.author p{margin:6px 0 0;color:var(--body)}
.author .name{font:400 26px/1.1 var(--display);text-decoration:none}
.btn{position:relative;display:inline-flex;align-items:center;min-height:52px;padding:0 28px;background:var(--accent);color:var(--accent-ink);font:600 16px/1 var(--sans);text-decoration:none;overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease);z-index:-1}
.btn:hover::after{transform:scaleX(1);transform-origin:left}

.related{margin-top:clamp(72px,9vw,112px)}
.related h2,.index-h{margin:0 0 24px;font:400 32px/1.15 var(--serif)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:20px;margin:0;padding:0;list-style:none}
.card{height:100%;display:flex;flex-direction:column;gap:14px;padding:8px 8px 22px;background:var(--card);box-shadow:0 0 0 1px var(--card-ring);text-decoration:none;transition:box-shadow .25s var(--ease)}
.card:hover{box-shadow:0 0 0 1px var(--ink)}
.card .c{overflow:hidden;background:var(--stone)}
.card img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .9s var(--ease)}
.card:hover img{transform:scale(1.035)}
.card .t{padding:0 12px;font:400 20px/1.28 var(--serif);text-wrap:pretty}
.card .d{padding:0 12px;font-size:14px;color:var(--graphite)}

/* Writing index */
.index-intro{max-width:var(--measure);margin:20px 0 0;font:400 22px/1.45 var(--serif);color:var(--body)}
.essay-list{margin:56px 0 0;padding:0;list-style:none}
.essay-list li{border-top:1px solid var(--rule)}
.essay-list li:last-child{border-bottom:1px solid var(--rule)}
.essay-list a{display:flex;flex-wrap:wrap;gap:20px 40px;padding:32px 0;text-decoration:none;align-items:flex-start}
.essay-list .c{flex:0 0 240px;max-width:100%;background:var(--stone);overflow:hidden}
.essay-list .c img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .9s var(--ease)}
.essay-list a:hover .c img{transform:scale(1.035)}
.essay-list .txt{flex:1 1 360px;display:flex;flex-direction:column;gap:10px}
.essay-list time{font-size:14px;color:var(--graphite)}
.essay-list .t{font:400 clamp(26px,2.6vw,34px)/1.12 var(--display);transition:color .2s}
.essay-list a:hover .t{color:var(--accent)}
.essay-list .d{color:var(--body);max-width:620px}
.feed-link{margin-top:28px;font-size:15px;color:var(--graphite)}

/* Footer */
.site-footer{margin-top:clamp(96px,12vw,160px);background:var(--band);color:var(--band-ink);font-size:14px}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between;padding-block:32px 40px}
.site-footer address{font-style:normal}
.site-footer nav{display:flex;flex-wrap:wrap;gap:24px}
.site-footer a{color:var(--band-ink)}

@media (max-width:560px){
  .mark{display:none}
  .head-right{width:100%;justify-content:space-between;gap:12px}
  .nav{gap:4px 16px;font-size:14px}
  .author{padding:24px}
  .prose p{font-size:19px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
@media print{.site-header,.aside,.author .btn,.related,.site-footer{display:none}body{background:#fff;color:#000}}
