/*
Theme Name: The Illusion Engine v2
Theme URI: https://cogsci.online/
Author: Kristina Šekrst
Author URI: https://cogsci.online/
Description: Person-first academic homepage for Kristina Šekrst, with the book as a featured band. Editorial single column, sticky nav, research index, leader-dotted publication list, talks, teaching, about, contact. Light and dark.
Version: 2.1.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: illusion-engine-v2
*/

/* Layout: one 1120px column. Hero (name, role, portrait) → "currently" strip → 2×2 research index → publication list with index leaders → dark book band → talks → teaching → about + service → contact. */
:root{
  --paper:#FAF8F3;
  --paper-2:#F3EFE6;
  --card:#FFFFFF;
  --ink:#1A1714;
  --ink-soft:#3A352E;
  --muted:#7A746A;
  --slate:#38506E;
  --slate-deep:#2B3E55;
  --slate-hover:#22344A;
  --rule:#DFD8CA;
  --rule-strong:#CBC2B0;
  --band-bg:#2B3E55;
  --band-fg:#EDE8DE;
  --band-muted:#C8D1DD;
  --band-accent:#9DB4CF;
  --band-rule:rgba(255,255,255,.16);
  --shadow:rgba(43,62,85,.45);
  --ico-sun:none;
  --ico-moon:block;
  --maxw:1120px;
  --f-display:"Cardo","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-body:"Cardo","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-ui:"Source Sans 3","Source Sans Pro",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#15171B;
    --paper-2:#1B1E24;
    --card:#1F232A;
    --ink:#ECE7DC;
    --ink-soft:#CFC9BC;
    --muted:#958F85;
    --slate:#9BB3D0;
    --slate-deep:#3D5675;
    --slate-hover:#4A6689;
    --rule:#2A2F38;
    --rule-strong:#3B424E;
    --band-bg:#0F1216;
    --band-fg:#ECE7DC;
    --band-muted:#AEB6C2;
    --band-accent:#9BB3D0;
    --band-rule:rgba(255,255,255,.12);
    --shadow:rgba(0,0,0,.6);
    --ico-sun:block;
    --ico-moon:none;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#15171B;
  --paper-2:#1B1E24;
  --card:#1F232A;
  --ink:#ECE7DC;
  --ink-soft:#CFC9BC;
  --muted:#958F85;
  --slate:#9BB3D0;
  --slate-deep:#3D5675;
  --slate-hover:#4A6689;
  --rule:#2A2F38;
  --rule-strong:#3B424E;
  --band-bg:#0F1216;
  --band-fg:#ECE7DC;
  --band-muted:#AEB6C2;
  --band-accent:#9BB3D0;
  --band-rule:rgba(255,255,255,.12);
  --shadow:rgba(0,0,0,.6);
  --ico-sun:block;
  --ico-moon:none;
  color-scheme:dark;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:20px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper);}
a{color:inherit;}
img{max-width:100%;display:block;}
h1,h2,h3{text-wrap:balance;}
:focus-visible{outline:2px solid var(--slate);outline-offset:3px;}

.wrap{
  max-width:var(--maxw);margin:0 auto;
  padding-left:max(32px,env(safe-area-inset-left,0px));
  padding-right:max(32px,env(safe-area-inset-right,0px));
}

/* ---------- NAV ---------- */
header.nav{
  position:sticky;top:env(safe-area-inset-top,0px);z-index:50;
  background:color-mix(in srgb,var(--paper) 86%,transparent);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--rule);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;
  padding-block:14px;
  padding-left:max(32px,env(safe-area-inset-left,0px));
  padding-right:max(32px,env(safe-area-inset-right,0px));
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.wordmark{
  font-family:var(--f-display);font-weight:400;font-size:23px;
  letter-spacing:.2px;text-decoration:none;white-space:nowrap;
}
.wordmark span{color:var(--slate);}
nav.links{display:flex;gap:24px;align-items:center;}
nav.links a{
  font-family:var(--f-ui);font-size:13.5px;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;text-decoration:none;
  color:var(--ink-soft);padding:4px 0;position:relative;
}
nav.links a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:var(--slate);transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
nav.links a:hover::after{transform:scaleX(1);}
.nav-right{display:flex;gap:14px;align-items:center;}
.nav-social{display:flex;gap:12px;align-items:center;}
.nav-social a{color:var(--muted);transition:color .2s ease;line-height:0;}
.nav-social a:hover{color:var(--slate);}
.nav-social svg{width:18px;height:18px;}
.theme-btn{
  background:none;border:1px solid var(--rule-strong);border-radius:999px;
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--ink-soft);cursor:pointer;padding:0;transition:border-color .2s ease,color .2s ease;
}
.theme-btn:hover{border-color:var(--slate);color:var(--slate);}
.theme-btn svg{width:16px;height:16px;}
.ico-sun{display:var(--ico-sun);}
.ico-moon{display:var(--ico-moon);}
.menu-btn{display:none;background:none;border:0;cursor:pointer;padding:6px;color:var(--ink);}
.menu-btn svg{width:24px;height:24px;}

/* skip link + WordPress menu items */
.skip{position:absolute;left:-999px;top:0;background:var(--slate-deep);color:#fff;padding:10px 14px;font-family:var(--f-ui);font-size:14px;z-index:100;}
.skip:focus{left:16px;top:16px;}
nav.links ul,nav.links li{list-style:none;margin:0;padding:0;display:contents;}

/* ---------- HERO ---------- */
.hero{padding-block:72px 52px;}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center;}
.hero-text{min-width:0;}
.eyebrow{
  font-family:var(--f-ui);font-size:12.5px;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--slate);margin:0 0 22px;
}
h1.name{
  font-family:var(--f-display);font-weight:400;font-size:clamp(44px,6.5vw,78px);
  line-height:1;letter-spacing:-.015em;margin:0 0 16px;
}
.role{
  font-family:var(--f-display);font-style:italic;font-weight:400;
  font-size:clamp(20px,2.4vw,26px);color:var(--ink-soft);margin:0 0 22px;line-height:1.3;max-width:24em;
}
.lede{font-size:20px;color:var(--ink-soft);max-width:32em;margin:0 0 30px;}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.btn{
  font-family:var(--f-ui);font-size:14px;font-weight:600;letter-spacing:.02em;
  text-decoration:none;border-radius:2px;padding:12px 22px;display:inline-flex;
  align-items:center;gap:9px;cursor:pointer;border:0;
  transition:transform .15s ease,background .2s ease,color .2s ease,border-color .2s ease;
}
.btn-primary{background:var(--slate-deep);color:#fff;}
.btn-primary:hover{background:var(--slate-hover);transform:translateY(-1px);}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--rule-strong);}
.btn-ghost:hover{border-color:var(--slate);color:var(--slate);transform:translateY(-1px);}
.btn-light{background:var(--band-fg);color:var(--band-bg);}
.btn-light:hover{transform:translateY(-1px);}
.btn-outline-light{background:transparent;color:var(--band-fg);border:1px solid var(--band-accent);}
.btn-outline-light:hover{border-color:var(--band-fg);transform:translateY(-1px);}
.btn svg{width:15px;height:15px;}

.portrait-wrap{justify-self:end;width:min(100%,340px);}
.portrait{
  width:100%;max-width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;
  background:var(--paper-2);border:1px solid var(--rule);
  box-shadow:0 1px 1px rgba(0,0,0,.04),0 22px 48px -18px var(--shadow);
}
.portrait-cap{font-family:var(--f-ui);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:14px 0 0;text-align:right;}

/* ---------- CURRENTLY ---------- */
.now{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper-2);}
.now .wrap{padding-block:24px;}
.now-grid{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:16px 40px;align-items:start;}
.now-k{font-family:var(--f-ui);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);padding-top:4px;white-space:nowrap;}
.now-k::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--slate);margin-right:10px;vertical-align:1px;}
.now-item{display:grid;gap:3px;min-width:0;}
.now-item .lbl{font-family:var(--f-ui);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.now-item .txt{font-family:var(--f-display);font-size:18px;line-height:1.35;margin:0;}
.now-item .txt a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-strong);}
.now-item .txt a:hover{border-color:var(--slate);color:var(--slate);}

/* ---------- SECTIONS ---------- */
.section{padding-block:80px;}
.section-tint{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.sec-head{margin:0 0 36px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
.sec-head > .sec-eyebrow,.sec-head > .sec-title,.sec-head > .entry-title,.sec-head > .sec-rule{flex:0 0 100%;}
.sec-head > .sec-eyebrow,.sec-head > .entry-title{margin-bottom:0;}
.sec-head > div{min-width:0;}
.sec-eyebrow{font-family:var(--f-ui);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);margin:0 0 10px;}
h2.sec-title{font-family:var(--f-display);font-weight:400;font-size:clamp(28px,4vw,40px);line-height:1.04;margin:0;letter-spacing:-.01em;}
.sec-more{font-family:var(--f-ui);font-size:13.5px;color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);padding-bottom:2px;white-space:nowrap;}
.sec-more:hover{border-color:var(--slate);}
.sec-rule{height:1px;background:var(--rule-strong);border:0;margin:0 0 8px;}

/* research index */
.threads{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;}
.thread{padding-block:26px 30px;border-top:1px solid var(--rule);min-width:0;}
.thread h3{font-family:var(--f-display);font-weight:400;font-size:24px;line-height:1.15;margin:0 0 12px;letter-spacing:-.01em;}
.thread p{margin:0 0 14px;color:var(--ink-soft);font-size:19px;}
.thread-pubs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.thread-pubs li{font-family:var(--f-ui);font-size:13.5px;color:var(--muted);line-height:1.45;}
.thread-pubs a{color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);}
.thread-pubs a:hover{border-color:var(--slate);}
.industry{margin-top:8px;padding-top:24px;border-top:1px solid var(--rule-strong);display:grid;grid-template-columns:200px 1fr;gap:16px 40px;align-items:baseline;}
.industry .k{font-family:var(--f-ui);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);margin:0;}
.industry p{margin:0;color:var(--ink-soft);font-size:18px;max-width:40em;}

/* publications with index leaders */
.pubs{list-style:none;margin:0;padding:0;}
.pub-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;padding:13px 0;border-bottom:1px solid var(--rule);}
.pub-row .ttl{display:flex;align-items:baseline;gap:10px;min-width:0;font-family:var(--f-display);font-size:19px;line-height:1.3;}
.pub-row .ttl a{flex:0 1 auto;min-width:0;color:var(--ink);text-decoration:none;}
.pub-row .ttl a:hover{color:var(--slate);}
.pub-row .ttl::after{content:"";flex:1 1 20px;min-width:20px;border-bottom:1px dotted var(--rule-strong);transform:translateY(-.3em);}
.pub-row .yr{font-family:var(--f-ui);font-size:12.5px;color:var(--muted);letter-spacing:.04em;font-variant-numeric:tabular-nums;align-self:baseline;padding-top:6px;white-space:nowrap;}
.pub-row .ven{grid-column:1 / -1;font-size:15.5px;color:var(--muted);font-style:italic;line-height:1.45;}
.pub-row .ven .co{font-style:normal;}
.pub-row .ven a{font-family:var(--f-ui);font-style:normal;font-size:12px;color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);margin-left:8px;}
.pub-row .ven a:hover{border-color:var(--slate);}

/* book band */
.bookband{background:var(--band-bg);color:var(--band-fg);}
.bookband .wrap{padding-block:64px;}
.book-grid{display:grid;grid-template-columns:220px 1fr;gap:52px;align-items:center;}
.book-text{min-width:0;}
.bookband .sec-eyebrow{color:var(--band-accent);}
.bookband h2.sec-title{color:var(--band-fg);margin-bottom:6px;}
.bookband .book-sub{font-family:var(--f-display);font-style:italic;font-size:22px;color:var(--band-muted);margin:0 0 18px;line-height:1.3;}
.bookband p{color:var(--band-muted);max-width:36em;margin:0 0 22px;}
.book-cover{
  width:100%;max-width:100%;aspect-ratio:2/3;border-radius:3px;object-fit:cover;
  box-shadow:0 24px 48px -20px rgba(0,0,0,.7);transform:rotate(-1.4deg);transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
.book-cover-wrap:hover .book-cover{transform:rotate(0) translateY(-4px);}
.book-cover-fallback{
  width:100%;aspect-ratio:2/3;border-radius:3px;display:none;
  background:linear-gradient(160deg,#22344a,#46627f);color:#F3EFE6;
  flex-direction:column;justify-content:flex-end;padding:22px;transform:rotate(-1.4deg);
  box-shadow:0 24px 48px -20px rgba(0,0,0,.7);
}
.book-cover-fallback b{font-family:var(--f-display);font-size:26px;font-weight:500;line-height:1.05;}
.book-cover-fallback small{font-family:var(--f-ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.8;margin-top:10px;}
.also{margin:26px 0 0;padding-top:18px;border-top:1px solid var(--band-rule);}
.also .k{font-family:var(--f-ui);font-size:11.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--band-accent);margin:0 0 8px;}
.also ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.also li{font-size:16px;color:var(--band-muted);}
.also li a{color:var(--band-fg);text-decoration:none;border-bottom:1px solid var(--band-rule);}
.also li a:hover{border-color:var(--band-fg);}

/* talks: same markup on Find Me and on the home page */
.talk-list{display:flex;flex-direction:column;border-top:1px solid var(--rule);}
.talk{padding:20px 0;border-bottom:1px solid var(--rule);min-width:0;}
.talk .when{font-family:var(--f-ui);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);margin:0 0 6px;}
.talk .ev{font-family:var(--f-display);font-size:22px;line-height:1.25;margin:0 0 4px;}
.talk .ev a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-strong);}
.talk .ev a:hover{border-color:var(--slate);}
.talk .where{font-size:16.5px;color:var(--muted);margin:0 0 8px;}
.talk .items{margin:6px 0 0;padding:0;list-style:none;}
.talk .items li{font-size:17.5px;color:var(--ink-soft);padding:3px 0;}
.talk .items .role{font-family:var(--f-ui);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-right:8px;}
.talk .items .name{font-style:italic;}
.talks-empty{font-size:17px;color:var(--muted);margin:0;padding:18px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.talks-acc{margin:46px 0 0;}
.talks-acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:4px;}
.talks-acc>summary::-webkit-details-marker{display:none;}
.talks-acc>summary h3{font-family:var(--f-display);font-weight:400;font-size:24px;line-height:1.04;margin:0;letter-spacing:-.01em;}
.talks-acc>summary .count{font-family:var(--f-ui);font-size:13px;font-weight:500;letter-spacing:.04em;color:var(--muted);margin-left:12px;}
.talks-acc .acc-chev{flex:0 0 auto;width:26px;height:26px;border:1px solid var(--rule-strong);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--slate);font-family:var(--f-ui);font-size:16px;line-height:1;transition:transform .25s ease;}
.talks-acc[open] .acc-chev{transform:rotate(90deg);}
.talks-acc[open]>summary .count{display:none;}

/* teaching */
.courses{list-style:none;margin:0;padding:0;}
.course{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 24px;padding:18px 0;border-top:1px solid var(--rule);align-items:baseline;}
.course:last-child{border-bottom:1px solid var(--rule);}
.course .cn{font-family:var(--f-display);font-size:21px;line-height:1.25;margin:0;}
.course .cm{grid-column:1;font-size:15.5px;color:var(--muted);margin:0;}
.course .cl{grid-row:1 / span 2;font-family:var(--f-ui);font-size:13px;color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);white-space:nowrap;}
.course .cl:hover{border-color:var(--slate);}

/* about */
.about-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:56px;align-items:start;}
.about-photos{display:grid;gap:22px;}
.about-photos figure{margin:0;}
.about-photos img{width:100%;max-width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;border:1px solid var(--rule);background:var(--paper-2);box-shadow:0 16px 40px -22px var(--shadow);}
.about-photos figcaption{font-family:var(--f-ui);font-size:12.5px;color:var(--muted);margin-top:10px;line-height:1.45;}
.about-text{min-width:0;}
.about-text p{margin:0 0 18px;color:var(--ink-soft);}
.about-text p:first-child{margin-top:-6px;}
.service{margin-top:30px;padding-top:22px;border-top:1px solid var(--rule-strong);}
.service .k{font-family:var(--f-ui);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);margin:0 0 10px;}
.service ul{list-style:none;margin:0;padding:0;columns:2;column-gap:32px;}
.service li{font-size:16px;color:var(--ink-soft);padding:4px 0;break-inside:avoid;line-height:1.45;}
.service li span{color:var(--muted);}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;}
.contact-grid > div{min-width:0;}
.contact-grid p{color:var(--ink-soft);max-width:30em;margin:0 0 18px;}
.email-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.email{font-family:var(--f-display);font-size:clamp(22px,3vw,30px);color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-strong);word-break:break-all;}
.email:hover{border-color:var(--slate);}
.copy-btn{font-family:var(--f-ui);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:none;border:1px solid var(--rule-strong);border-radius:2px;padding:7px 12px;color:var(--ink-soft);cursor:pointer;}
.copy-btn:hover{border-color:var(--slate);color:var(--slate);}
.link-list{list-style:none;margin:0;padding:0;}
.link-list li{border-top:1px solid var(--rule);}
.link-list li:last-child{border-bottom:1px solid var(--rule);}
.link-list a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 2px;text-decoration:none;color:var(--ink);font-family:var(--f-ui);font-size:14.5px;letter-spacing:.01em;transition:color .2s ease,padding-left .2s ease;}
.link-list a:hover{color:var(--slate);padding-left:8px;}
.link-list .arrow{color:var(--slate);transition:transform .2s ease;}
.link-list a:hover .arrow{transform:translateX(4px);}
.link-list small{color:var(--muted);font-size:12.5px;margin-left:8px;}

/* footer */
footer.site{padding-block:36px;border-top:1px solid var(--rule);}
.foot-inner{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;}
.foot-inner p{margin:0;font-family:var(--f-ui);font-size:13px;color:var(--muted);display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ankh{width:11px;height:15px;color:var(--rule-strong);}
.foot-social{display:flex;gap:16px;}
.foot-social a{color:var(--muted);line-height:0;}
.foot-social a:hover{color:var(--slate);}
.foot-social svg{width:18px;height:18px;}

/* ---------- Legacy classes kept for page-book.php, Research and Find Me ---------- */
.band{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper-2);}
.band .wrap{padding-block:54px;}
.pull{font-family:var(--f-display);font-weight:400;font-style:italic;font-size:clamp(24px,3.4vw,38px);line-height:1.22;text-align:center;max-width:20em;margin:0 auto;letter-spacing:-.005em;}
.pull .accent{color:var(--slate);font-style:normal;}
h1.title{font-family:var(--f-display);font-weight:400;font-size:clamp(46px,7vw,82px);line-height:.98;letter-spacing:-.01em;margin:0 0 6px;}
.subtitle{font-family:var(--f-display);font-style:italic;font-weight:400;font-size:clamp(21px,2.6vw,28px);color:var(--ink-soft);margin:14px 0 26px;line-height:1.25;}
.cover-wrap{justify-self:center;position:relative;}
.cover{width:330px;max-width:100%;border-radius:3px;box-shadow:0 1px 1px rgba(0,0,0,.04),0 22px 48px -18px var(--shadow),0 2px 0 rgba(0,0,0,.05);transform:rotate(-1.4deg);transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.cover-wrap:hover .cover{transform:rotate(0deg) translateY(-4px);}
.cover-fallback{width:330px;max-width:100%;aspect-ratio:2/3;border-radius:3px;background:linear-gradient(160deg,#22344a,#46627f);color:#F3EFE6;display:none;flex-direction:column;justify-content:flex-end;padding:26px;box-shadow:0 22px 48px -18px var(--shadow);}
.cover-fallback b{font-family:var(--f-display);font-size:30px;font-weight:500;line-height:1;}
.cover-fallback small{font-family:var(--f-ui);font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.8;margin-top:10px;}
.cover-cap{font-family:var(--f-ui);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:center;margin-top:18px;}
.formats{font-family:var(--f-ui);font-size:13.5px;color:var(--muted);margin:16px 0 0;letter-spacing:.01em;}
.formats a{color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);}
.formats a:hover{border-color:var(--slate);}
.btn-dark{background:var(--ink-soft);color:var(--paper);}
.btn-dark:hover{background:var(--ink);transform:translateY(-1px);}
.book-grid-legacy{display:grid;grid-template-columns:1.3fr .7fr;gap:56px;align-items:start;}
.book-grid-legacy p{margin:0 0 20px;color:var(--ink-soft);}
.wonders{list-style:none;margin:0;padding:0;}
.wonders li{padding:18px 0;border-top:1px solid var(--rule);font-family:var(--f-display);font-size:20px;line-height:1.35;display:flex;gap:16px;}
.wonders li:last-child{border-bottom:1px solid var(--rule);}
.wonders .q{color:var(--slate);font-weight:500;flex:0 0 auto;}
.toc{columns:2;column-gap:64px;}
.contents-grid{display:grid;grid-template-columns:280px 1fr;gap:60px;align-items:start;}
.toc-cover-wrap{position:sticky;top:96px;}
.toc-cover{width:100%;border-radius:3px;box-shadow:0 18px 40px -20px var(--shadow);transition:transform .4s ease;}
.toc-cover-wrap:hover .toc-cover{transform:translateY(-3px);}
.toc-cover-cap{font-family:var(--f-ui);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:center;margin:14px 0 0;}
.toc-item{break-inside:avoid;display:flex;gap:18px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--rule);}
.toc-num{font-family:var(--f-display);font-weight:400;font-size:15px;color:var(--slate);flex:0 0 30px;text-align:right;font-variant-numeric:tabular-nums;}
.toc-name{font-size:18px;color:var(--ink-soft);}
.praise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.quote-card{background:var(--card);border:1px solid var(--rule);border-radius:4px;padding:28px;display:flex;flex-direction:column;gap:16px;}
.quote-card .mark{font-family:var(--f-display);font-size:48px;line-height:.6;color:var(--rule-strong);height:24px;}
.quote-card blockquote{margin:0;font-family:var(--f-display);font-size:19px;line-height:1.4;color:var(--ink-soft);font-style:italic;}
.quote-card cite{font-family:var(--f-ui);font-style:normal;font-size:13px;color:var(--muted);letter-spacing:.02em;margin-top:auto;}
.praise-more{font-family:var(--f-ui);font-size:14px;text-align:center;margin:30px 0 0;}
.praise-more a{color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);padding-bottom:2px;}
.praise-more a:hover{border-color:var(--slate);}
.find{background:var(--band-bg);color:var(--band-fg);}
.find .sec-eyebrow{color:var(--band-accent);}
.find h2.sec-title{color:var(--band-fg);}
.find .sec-rule{background:var(--band-rule);}
.find-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.find p{color:var(--band-muted);max-width:34em;}
.find .link-list li{border-color:var(--band-rule);}
.find .link-list a{color:var(--band-fg);}
.find .link-list a:hover{color:#fff;}
.find .link-list .arrow{color:var(--band-accent);}
.contact-line{font-family:var(--f-display);font-size:22px;margin-top:6px;}
.contact-line a{color:var(--band-fg);text-decoration:none;border-bottom:1px solid var(--band-rule);}
.contact-line a:hover{border-color:var(--band-fg);}

.page-body{padding-block:60px 84px;}
.page-body .entry-title{font-family:var(--f-display);font-weight:400;font-size:clamp(30px,5vw,48px);line-height:1.05;margin:0 0 24px;letter-spacing:-.01em;}
.page-body .entry-content p{margin:0 0 20px;color:var(--ink-soft);}
.page-body .entry-content a{color:var(--slate);}

.pub-intro{font-size:19px;color:var(--ink-soft);max-width:42em;margin:0 0 8px;}
.pub-group{margin:48px 0 0;}
.pub-group h3{font-family:var(--f-display);font-weight:400;font-size:24px;margin:0 0 4px;letter-spacing:-.01em;}
.pub-group .pub-rule{height:1px;background:var(--rule-strong);border:0;margin:0 0 20px;}
.pub-sub{font-family:var(--f-ui);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--slate);margin:28px 0 14px;}
.pub-list{list-style:none;margin:0;padding:0;counter-reset:pub;}
.pub-list li{position:relative;padding:14px 0 14px 40px;border-bottom:1px solid var(--rule);font-size:18px;line-height:1.5;color:var(--ink-soft);}
.pub-list li::before{counter-increment:pub;content:counter(pub);position:absolute;left:0;top:15px;font-family:var(--f-display);font-size:13px;color:var(--slate);font-variant-numeric:tabular-nums;}
.pub-list .yr{font-family:var(--f-ui);font-size:12px;color:var(--muted);letter-spacing:.04em;}
.pub-list .ttl{color:var(--ink);font-style:italic;}
.pub-list a{color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);}
.pub-list a:hover{border-color:var(--slate);}
.pub-note{font-family:var(--f-ui);font-size:13.5px;color:var(--muted);margin:34px 0 0;}
.pub-note a{color:var(--slate);}

.talks-intro{font-size:19px;color:var(--ink-soft);max-width:42em;margin:0 0 8px;}
.talks-group{margin:46px 0 0;}
.talks-group h3{font-family:var(--f-display);font-weight:400;font-size:24px;margin:0 0 4px;letter-spacing:-.01em;}
.talks-group .pub-rule{height:1px;background:var(--rule-strong);border:0;margin:0 0 8px;}

.pub-showcase{margin:34px 0 40px;}
.pub-showcase h3{margin-bottom:6px;}
.pub-showcase .pub-rule{margin-bottom:20px;}
.pub-showcase-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;}
.pub-card{border:1px solid var(--rule);border-top:2px solid var(--slate);border-radius:6px;padding:18px 20px 16px;display:flex;flex-direction:column;background:var(--card);transition:transform .18s ease,box-shadow .18s ease;}
.pub-card:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(0,0,0,.08);}
.pub-card .venue{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);margin-bottom:8px;}
.pub-card .card-title{font-size:1.1rem;line-height:1.35;font-weight:700;margin:0 0 8px;}
.pub-card .teaser{font-size:.88rem;line-height:1.5;opacity:.85;margin:0 0 14px;flex-grow:1;}
.pub-card .card-links{font-size:.85rem;}
.pub-card .card-links a{color:var(--slate);text-decoration:underline;text-underline-offset:2px;}

/* .reveal is kept as a hook for page templates; content is always visible. */
.reveal{opacity:1;transform:none;}


/* ---------- RESPONSIVE ---------- */
@media(max-width:880px){
  .hero-grid{grid-template-columns:1fr;gap:36px;}
  .portrait-wrap{order:-1;justify-self:start;width:min(100%,260px);}
  .portrait-cap{text-align:left;}
  .now-grid{grid-template-columns:1fr;gap:14px;}
  .threads{grid-template-columns:1fr;}
  .industry{grid-template-columns:1fr;gap:8px;}
  .book-grid{grid-template-columns:1fr;gap:36px;}
  .book-cover-wrap{max-width:200px;}
  .about-grid{grid-template-columns:1fr;gap:32px;}
  .about-photos{grid-template-columns:1fr 1fr;align-items:start;}
  .service ul{columns:1;}
  .contact-grid{grid-template-columns:1fr;gap:32px;}
  .course{grid-template-columns:1fr;}
  .course .cl{grid-row:auto;margin-top:4px;}
  .find-grid,.book-grid-legacy{grid-template-columns:1fr;gap:36px;}
  .contents-grid{grid-template-columns:1fr;gap:32px;}
  .toc-cover-wrap{position:static;max-width:240px;margin:0 auto;}
  .praise-grid{grid-template-columns:1fr;}
  .toc{columns:1;}
  nav.links{
    position:fixed;inset:calc(63px + env(safe-area-inset-top,0px)) 0 auto 0;flex-direction:column;gap:0;
    background:var(--paper);border-bottom:1px solid var(--rule);
    padding:8px max(32px,env(safe-area-inset-right,0px)) 18px max(32px,env(safe-area-inset-left,0px));
    transform:translateY(-12px);opacity:0;
    pointer-events:none;transition:opacity .2s ease,transform .2s ease;
  }
  nav.links.open{opacity:1;transform:none;pointer-events:auto;}
  nav.links a{padding:12px 0;border-bottom:1px solid var(--rule);width:100%;font-size:14px;}
  nav.links a::after{display:none;}
  .menu-btn{display:block;}
  .nav-social{display:none;}
}
@media(max-width:520px){
  body{font-size:19px;}
  .wrap,.nav-inner{padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px));}
  nav.links{padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px));}
  .section{padding-block:56px;}
  .hero{padding-block:44px 36px;}
  .about-photos{grid-template-columns:1fr;}
  .pub-row .ttl::after{display:none;}
  .pub-row{grid-template-columns:1fr;}
  .pub-row .yr{padding-top:0;}
}
/* ---------- HOME HUB ---------- */
.home-hero{padding-block:72px 52px;}
.home-hero .hero-grid{grid-template-columns:1.25fr .75fr;}
.kicker{font-family:var(--f-ui);font-size:12.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);margin:0 0 20px;}
h1.statement{font-family:var(--f-display);font-weight:400;font-size:clamp(40px,6vw,72px);line-height:1.02;letter-spacing:-.015em;margin:0 0 22px;}
.intro{font-size:21px;color:var(--ink-soft);max-width:32em;margin:0 0 28px;}
.intro a{color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);}
.intro a:hover{border-color:var(--slate);}

.tiles{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule-strong);border-left:1px solid var(--rule);}
.tile{display:block;text-decoration:none;color:inherit;padding:24px 24px 26px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);min-width:0;transition:background .2s ease;}
.tile:hover{background:var(--paper-2);}
.tile .t{font-family:var(--f-display);font-weight:400;font-size:24px;line-height:1.1;margin:0 0 8px;display:flex;justify-content:space-between;gap:12px;align-items:baseline;}
.tile .t .arrow{color:var(--slate);font-size:20px;transition:transform .2s ease;}
.tile:hover .t .arrow{transform:translateX(4px);}
.tile .d{font-size:17px;color:var(--muted);margin:0;line-height:1.45;}

.feature{display:grid;grid-template-columns:200px 1fr;gap:52px;align-items:center;}
.feature-text{min-width:0;}
.feature h2{font-family:var(--f-display);font-weight:400;font-size:clamp(28px,3.6vw,40px);line-height:1.05;margin:0 0 8px;letter-spacing:-.01em;}
.feature .sub{font-family:var(--f-display);font-style:italic;font-size:21px;color:var(--ink-soft);margin:0 0 16px;line-height:1.3;}
.feature p{color:var(--ink-soft);max-width:36em;margin:0 0 20px;}
.feature-links{display:flex;gap:22px;flex-wrap:wrap;font-family:var(--f-ui);font-size:14px;}
.feature-links a{color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);padding-bottom:2px;}
.feature-links a:hover{border-color:var(--slate);}
.feature .book-cover-wrap{max-width:200px;}

.two-up{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.two-up > div{min-width:0;padding-top:22px;border-top:1px solid var(--rule-strong);}
.two-up h2{font-family:var(--f-display);font-weight:400;font-size:28px;line-height:1.1;margin:0 0 10px;letter-spacing:-.01em;}
.two-up p{color:var(--ink-soft);margin:0 0 14px;max-width:30em;}
.two-up .feature-links{margin-top:4px;}

.news{list-style:none;margin:0;padding:0;}
.news li{display:grid;grid-template-columns:110px 1fr;gap:4px 24px;padding:14px 0;border-top:1px solid var(--rule);}
.news li:last-child{border-bottom:1px solid var(--rule);}
.news .d{font-family:var(--f-ui);font-size:12.5px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;padding-top:5px;font-variant-numeric:tabular-nums;margin:0;}
.news .n{font-size:19px;color:var(--ink-soft);margin:0;min-width:0;}
.news .n a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-strong);}
.news .n a:hover{border-color:var(--slate);color:var(--slate);}

/* ---------- INNER PAGES ---------- */
.page-hero{padding-block:64px 36px;}
.page-hero .kicker{margin-bottom:14px;}
.page-hero h1{font-family:var(--f-display);font-weight:400;font-size:clamp(40px,6vw,68px);line-height:1;letter-spacing:-.015em;margin:0 0 18px;}
.page-hero .qs{font-family:var(--f-display);font-style:italic;font-size:clamp(20px,2.4vw,26px);color:var(--ink-soft);line-height:1.35;margin:0;max-width:26em;}
.page-hero .qs span{display:block;}
.prose{max-width:40em;min-width:0;}
.prose p{margin:0 0 18px;color:var(--ink-soft);}
.prose a{color:var(--slate);}
.prose h2{font-family:var(--f-display);font-weight:400;font-size:clamp(24px,3vw,32px);line-height:1.1;margin:40px 0 14px;letter-spacing:-.01em;padding-top:22px;border-top:1px solid var(--rule-strong);}
.prose h2:first-child{margin-top:0;padding-top:0;border-top:0;}
.prose ul{margin:0 0 18px;padding-left:1.2em;color:var(--ink-soft);}
.profiles{display:flex;flex-wrap:wrap;gap:10px 22px;font-family:var(--f-ui);font-size:14px;margin:6px 0 0;padding:0;list-style:none;}
.profiles a{color:var(--slate);text-decoration:none;border-bottom:1px solid var(--rule-strong);padding-bottom:2px;}
.profiles a:hover{border-color:var(--slate);}
.teasers{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.teaser{display:block;text-decoration:none;color:inherit;padding:20px 20px 22px;border:1px solid var(--rule);border-top:2px solid var(--slate);background:var(--card);min-width:0;transition:transform .18s ease,box-shadow .18s ease;}
.teaser:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(0,0,0,.08);}
.teaser .n{font-family:var(--f-display);font-size:34px;font-weight:500;color:var(--slate);line-height:1;margin:0 0 10px;font-variant-numeric:tabular-nums;}
.teaser .t{font-family:var(--f-display);font-size:19px;margin:0 0 4px;}
.teaser .d{font-family:var(--f-ui);font-size:12.5px;color:var(--muted);margin:0;}
.people{columns:3;column-gap:32px;list-style:none;margin:0;padding:0;}
.people li{break-inside:avoid;padding:5px 0;font-size:17px;color:var(--ink-soft);}
.people li span{color:var(--muted);font-size:13.5px;font-family:var(--f-ui);margin-left:6px;}
.bio-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:start;}
.bio-side{position:sticky;top:calc(80px + env(safe-area-inset-top,0px));display:grid;gap:22px;}
.bio-side figure{margin:0;}
.bio-side figcaption{font-family:var(--f-ui);font-size:12.5px;color:var(--muted);margin-top:10px;line-height:1.45;}
.facts{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-strong);}
.facts li{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:16px;color:var(--ink-soft);line-height:1.45;}
.facts li b{font-family:var(--f-ui);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);padding-top:4px;}
.facts li a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-strong);}
.mission{font-family:var(--f-display);font-style:italic;font-size:clamp(20px,2.4vw,26px);color:var(--ink-soft);line-height:1.35;margin:0;max-width:26em;}

@media(max-width:880px){
  .home-hero .hero-grid{grid-template-columns:1fr;}
  .tiles{grid-template-columns:1fr 1fr;}
  .feature{grid-template-columns:1fr;gap:28px;}
  .feature .book-cover-wrap{max-width:160px;}
  .two-up{grid-template-columns:1fr;gap:28px;}
  .news li{grid-template-columns:1fr;gap:2px;}
  .news .d{padding-top:0;}
  .teasers{grid-template-columns:1fr 1fr;}
  .people{columns:2;}
  .bio-grid{grid-template-columns:1fr;gap:36px;}
  .bio-side{position:static;grid-template-columns:1fr 1fr;align-items:start;}
  .bio-side .facts{grid-column:1 / -1;}
}
@media(max-width:520px){
  .tiles{grid-template-columns:1fr;}
  .teasers{grid-template-columns:1fr;}
  .people{columns:1;}
  .bio-side{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;}
}
