:root{--bg:#faf8f4;--fg:#1f1d1a;--mut:#6b665e;--line:#e3ded5;--acc:#1f5c5a;--acc2:#e9f1ef;--card:#fff;--warn:#8a5a00;--warnbg:#fff3d6}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#15171a;--fg:#e8e4dc;--mut:#9a958b;--line:#2a2d31;--acc:#7cc4bd;--acc2:#1d2a2a;--card:#1b1e22;--warn:#f0c674;--warnbg:#3a2f12}}
:root[data-theme=dark]{--bg:#15171a;--fg:#e8e4dc;--mut:#9a958b;--line:#2a2d31;--acc:#7cc4bd;--acc2:#1d2a2a;--card:#1b1e22;--warn:#f0c674;--warnbg:#3a2f12}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.6 "Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif}
a{color:var(--acc);text-decoration-thickness:1px;text-underline-offset:2px}
h1,h2,h3,.brand,nav,.badge,.chip,.btn,.sub,.count,input,select,button,th,.note,.draftbar,footer{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
h1{font-size:1.9rem;line-height:1.2;margin:.2em 0 .4em}h2{font-size:1.15rem;margin:1.8em 0 .5em;border-bottom:1px solid var(--line);padding-bottom:.25em}h3{font-size:1rem;margin:1.3em 0 .3em}
h2 small,h3 small{color:var(--mut);font-weight:400}
.top{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.7rem 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}
.brand{font-weight:700;font-size:1.1rem;color:var(--fg);text-decoration:none}
.searchbox{position:relative;flex:1 1 220px;min-width:160px;max-width:420px}
#q{width:100%;padding:.5rem .8rem;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg);font-size:16px}
#results{position:absolute;left:0;right:0;top:110%;background:var(--card);border:1px solid var(--line);border-radius:8px;max-height:70vh;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.15)}
#results a{display:block;padding:.5rem .8rem;text-decoration:none;color:var(--fg);border-bottom:1px solid var(--line);font:14px/1.35 -apple-system,sans-serif}
#results a small{display:block;color:var(--mut)}#results a b{color:var(--acc);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-right:.4rem}
#results a:hover,#results a.sel{background:var(--acc2)}
.icon{background:none;border:1px solid var(--line);border-radius:8px;color:var(--fg);font-size:1rem;padding:.35rem .6rem;cursor:pointer}
.subscribe,.btn{display:inline-block;background:var(--acc);color:var(--bg);padding:.45rem .9rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:.9rem;border:0;cursor:pointer}
nav{display:flex;flex-wrap:wrap;gap:.2rem .9rem;width:100%;font-size:.92rem}nav a{color:var(--mut);text-decoration:none;padding:.15rem 0}nav a[aria-current]{color:var(--fg);border-bottom:2px solid var(--acc)}
.wrap{max-width:1100px;margin:0 auto;padding:1rem 16px 3rem;display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}
@media(min-width:900px){.wrap{grid-template-columns:minmax(0,1fr) 260px}}
main{min-width:0}.lede{font-size:1.1rem;color:var(--mut)}.sub{color:var(--mut);font-size:.85rem}.note{color:var(--mut);font-size:.85rem}
.side .box,.box{border:1px solid var(--line);border-radius:10px;padding:.2rem 1rem .6rem;background:var(--card);margin-bottom:1rem;font-family:-apple-system,sans-serif;font-size:.9rem}
.box h3{margin:.8em 0 .3em;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.box.empty{padding:1rem 1.2rem;font-family:inherit;font-size:1rem}
ul.plain{list-style:none;padding:0;margin:0}ul.plain li{padding:.2rem 0}
ul.talks,ul.books,ul.sources,ul.feed{padding-left:1.1rem}ul.talks li,ul.sources li{margin:.45rem 0}ul.feed{list-style:none;padding:0}ul.feed li{padding:.6rem 0;border-bottom:1px solid var(--line)}
ul.cards{list-style:none;padding:0;display:grid;gap:.7rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
ul.cards li{border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;background:var(--card)}ul.cards .sub{display:block}.count{display:block;margin-top:.3rem;font-size:.78rem;color:var(--mut)}
.chip{display:inline-block;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:999px;padding:.12rem .7rem;font-size:.82rem;text-decoration:none;margin:0 .25rem .35rem 0;cursor:pointer}
.chip small{color:var(--mut)}.chip.tr{background:var(--acc2)}.chip.on{background:var(--acc);color:var(--bg);border-color:var(--acc)}
.badge{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--line);border-radius:4px;padding:0 .35rem;color:var(--mut)}
.badge.draft,.draftbar{background:var(--warnbg);color:var(--warn);border-color:var(--warn)}.draftbar{padding:.4rem 16px;font-size:.8rem;text-align:center}
.stats{list-style:none;display:flex;flex-wrap:wrap;gap:1.2rem;padding:0;font-family:-apple-system,sans-serif;color:var(--mut)}.stats strong{font-size:1.5rem;color:var(--fg)}
.date{font:.8rem -apple-system,sans-serif;color:var(--mut);margin-right:.5rem}
.tfilters{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.tfilters input,.tfilters select{padding:.45rem .6rem;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg);font-size:15px;max-width:100%}.tfilters input{flex:1 1 220px}
table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);border-bottom:2px solid var(--line);padding:.4rem .4rem;cursor:pointer;white-space:nowrap}td{padding:.5rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}td.n{white-space:nowrap;color:var(--mut)}
@media(max-width:700px){.hm{display:none}}
footer{border-top:1px solid var(--line);padding:1.2rem 16px;color:var(--mut);font-size:.82rem;max-width:1100px;margin:0 auto}
cite{font-style:italic}.ext{font-size:.85rem}
/* ---- mobile / navigation ---- */
img,svg,video{max-width:100%;height:auto}
h1,h2,h3,td a,.lede,li{overflow-wrap:anywhere}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.menubtn,.navsub{display:none}
.icon{min-height:44px;min-width:44px}
@media(min-width:721px){.icon{min-height:0;min-width:0}}
@media(max-width:720px){
 body{font-size:17px;line-height:1.6}
 h1{font-size:1.6rem}
 .top{display:grid;grid-template-columns:1fr auto auto;gap:.5rem;padding:.5rem 16px;align-items:center}
 .brand{display:flex;align-items:center;min-height:44px;font-size:1.05rem}
 .searchbox{grid-column:1/-1;grid-row:2;max-width:none;min-width:0}
 #q{min-height:44px;font-size:16px}
 #theme{grid-row:1;grid-column:2}
 .menubtn{display:inline-flex;grid-row:1;grid-column:3;align-items:center;gap:.5rem;font:600 .9rem -apple-system,sans-serif;padding:0 .8rem}
 .bars,.bars::before,.bars::after{display:block;width:18px;height:2px;background:currentColor;border-radius:1px;content:"";position:relative;transition:transform .2s}
 .bars::before{position:absolute;top:-6px}.bars::after{position:absolute;top:6px}
 .menubtn[aria-expanded=true] .bars{background:transparent}
 .menubtn[aria-expanded=true] .bars::before{transform:translateY(6px) rotate(45deg)}
 .menubtn[aria-expanded=true] .bars::after{transform:translateY(-6px) rotate(-45deg)}
 .top .subscribe{display:none}
 nav{display:none;grid-row:3;grid-column:1/-1;flex-direction:column;gap:0;font-size:1.05rem;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);overflow-y:auto;border-top:1px solid var(--line)}
 nav.open{display:flex}
 nav a{display:flex;align-items:center;min-height:48px;padding:0 .2rem;border-bottom:1px solid var(--line)}
 nav a[aria-current]{border-bottom:1px solid var(--line);color:var(--acc);font-weight:700}
 nav a.navsub{display:flex;margin:.7rem 0 .3rem;justify-content:center;background:var(--acc);color:var(--bg);border-radius:8px;font-weight:600;border:0}
 .wrap{padding-top:.6rem}
 .tfilters input,.tfilters select{min-height:44px;font-size:16px;width:100%;flex:1 1 100%}
 .chip{padding:.6rem .95rem;margin:0 .3rem .5rem 0;font-size:.9rem}
 #results a{padding:.8rem}
 ul.talks li,ul.sources li,ul.plain li{padding:.25rem 0}
 ul.talks li a,ul.sources li a,ul.plain li a,ul.feed li a{display:inline-block;padding:.5rem 0;min-height:44px}
 .filters button,.filters a{min-height:44px}
 .btn,.subscribe{min-height:44px;display:inline-flex;align-items:center}
 .side .box a,.box li a{display:inline-block;padding:.25rem 0}
 /* talks table -> stacked cards */
 #ttable,#ttable tbody,#ttable tr,#ttable td{display:block;width:100%}
 #ttable thead{display:none}
 #ttable tr{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:.7rem .9rem;margin-bottom:.6rem}
 #ttable td{border:0;padding:0}
 #ttable td:first-child{font-size:1.02rem;line-height:1.35;margin-bottom:.3rem}
 #ttable td:first-child a{display:inline-block;padding:.7rem 0}
 #ttable td:nth-child(2){margin-top:-.2rem}
 #ttable td:nth-child(3),#ttable td:nth-child(4){display:inline;font:.85rem -apple-system,sans-serif;color:var(--mut)}
 #ttable td:nth-child(5),#ttable td:nth-child(6){display:none}
 #ttable td:nth-child(2) a{display:inline-flex;align-items:center;min-height:44px}
 #ttable td:nth-child(3):not(:empty)+td:not(:empty)::before{content:" · "}
 footer{padding:1rem 16px 2rem}
 footer p.links{display:flex;flex-wrap:wrap;gap:0 1.1rem;font-size:0}
 footer p.links a{font-size:.9rem;display:inline-flex;align-items:center;min-height:44px}
 footer a{padding:.1rem 0}
}
@media(max-width:380px){.menubtn .mtxt{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* ---- v2: Substack call to action, homepage ---- */
.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem 1rem;padding:.55rem 16px;background:var(--acc);color:var(--bg);font:600 .88rem/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.ctabtns{display:flex;gap:.5rem}
.ctabtn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 .9rem;border-radius:999px;border:1.5px solid var(--bg);color:var(--bg);text-decoration:none;font-weight:700;white-space:nowrap}
.ctabtn.solid{background:var(--bg);color:var(--acc)}
.ctabtn .s{display:none}
.ctabtn:hover{opacity:.9}
.btn.ghost{background:transparent;color:var(--acc);border:1.5px solid var(--acc)}
.btn.big{padding:.7rem 1.3rem;font-size:1rem;border-radius:999px}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.7rem 0}
.hero{padding:.5rem 0 1rem}.hero h1{font-size:2.3rem;line-height:1.15;margin:.2em 0 .4em;max-width:18em}.hero .lede{max-width:36em;font-size:1.15rem}
h2.sec{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:1.4rem;margin:1.6em 0 .8em}
h2.sec .more{font:500 .85rem -apple-system,sans-serif}
.posts{display:grid;gap:1rem}
.post{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1rem 1.2rem;border:1px solid var(--line);border-radius:12px;padding:1rem;background:var(--card)}
.post.noimg{grid-template-columns:minmax(0,1fr)}
.pimg{display:block;align-self:start}.pimg img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.pbody{min-width:0}.pbody .date{margin:0 0 .2rem}.post h3{margin:.1em 0 .3em;font-size:1.2rem;line-height:1.3}.post h3 a{color:var(--fg);text-decoration:none}.post h3 a:hover{color:var(--acc);text-decoration:underline}
.pdesc{margin:.2rem 0;color:var(--mut);font-size:.98rem}
.post:first-child{grid-template-columns:200px minmax(0,1fr)}.post:first-child h3{font-size:1.4rem}
details.srcs{grid-column:1/-1;margin-top:.2rem;border-top:1px solid var(--line);padding-top:.4rem;font-family:-apple-system,sans-serif}
details.srcs summary{cursor:pointer;font-weight:600;font-size:.92rem;color:var(--acc);padding:.4rem 0;list-style:none}
details.srcs summary::-webkit-details-marker{display:none}
details.srcs summary::before{content:"+";display:inline-block;width:1.2em;font-weight:700}
details.srcs[open] summary::before{content:"\2212"}
.srcbody{font-size:.9rem}.srcbody h4{margin:1.1em 0 .3em;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.srcbody ul{padding-left:1.1rem;margin:.2rem 0}.srcbody li{margin:.35rem 0;font-family:"Iowan Old Style",Palatino,Georgia,serif;font-size:.95rem}
ul.tsl{list-style:none;padding:0 0 0 .2rem;margin:.2rem 0}ul.tsl li{margin:.15rem 0;font-family:-apple-system,sans-serif;font-size:.85rem}
.tiles{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:.5rem 0 1rem}
.tile{display:flex;flex-direction:column;gap:.15rem;border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;background:var(--card);text-decoration:none;color:var(--fg);font-family:-apple-system,sans-serif}
.tile strong{font-size:1.1rem}.tile span{color:var(--acc);font-weight:600;font-size:.88rem}.tile small{color:var(--mut)}
.tile:hover{border-color:var(--acc)}
@media(max-width:720px){
 .cta{padding:.5rem 12px;gap:.4rem}.ctatxt{display:none}.ctabtns{width:100%}.ctabtn{flex:1 1 0;min-height:44px;padding:0 .5rem;font-size:.9rem}
 .ctabtn .l{display:none}.ctabtn .s{display:inline}
 .hero h1{font-size:1.8rem}
 .post,.post:first-child{grid-template-columns:96px minmax(0,1fr);padding:.8rem;gap:.7rem .8rem}
 .post.noimg{grid-template-columns:minmax(0,1fr)}
 .post h3,.post:first-child h3{font-size:1.05rem}
 .pdesc{font-size:.9rem}
 .btn.big{width:100%;justify-content:center}
 .actions .btn{font-size:.82rem;padding:.35rem .7rem}
 details.srcs{grid-column:1/-1}
 h2.sec{flex-wrap:wrap}
}
.wrap.solo{grid-template-columns:minmax(0,860px);justify-content:center}
