
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#F5F0E8;--bg2:#EDE7D9;--tx:#1C1714;--mu:#5C4F3D;--li:#7A6A59;
  --te:#8C3F2A;--tl:#C4654A;--sg:#4A7467;--sb:#E4EFED;
  --bd:rgba(28,23,20,.10);--dk:#1C1714;
  --df:'Cormorant Garamond',Georgia,serif;
  --sf:'DM Sans',system-ui,sans-serif;
}
:root{color-scheme:light}
html{background:#F5F0E8;color-scheme:light}
body{background:#F5F0E8;font-family:var(--sf);color:var(--tx);color-scheme:light;-webkit-text-fill-color:inherit}
h1,h2,h3,blockquote{font-family:var(--df)}
nav{background:var(--bg);border-bottom:1px solid var(--bd);padding:0 40px;height:64px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;flex-wrap:wrap;gap:8px}
.nav-links{display:flex;gap:20px;flex-wrap:wrap}
.nb{background:none;border:none;font-size:12px;font-weight:500;color:var(--mu);cursor:pointer;padding:4px 0;font-family:var(--sf);border-bottom:2px solid transparent;transition:color .3s,border-color .3s}
.nb:hover,.nb.on{color:var(--te);border-bottom-color:var(--te)}
.logo-nav-mark{display:inline-flex;align-items:center;width:28px;height:28px;flex-shrink:0}.logo-nav-mark svg{width:28px;height:28px}.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--df);font-size:18px;font-weight:600;cursor:pointer;background:none;border:none;font-style:italic;padding:0}.logo-mark{width:26px;height:26px;flex-shrink:0}.logo:hover .logo-mark line,.logo:hover .logo-mark circle{transition:opacity .3s}
.lb{font-size:10px;font-weight:600;letter-spacing:.2em;color:var(--li);border:1px solid var(--bd);padding:4px 10px;background:none;cursor:pointer;font-family:var(--sf)}
.pg{display:none;background:var(--bg)}.pg.on{display:block}
.ct{max-width:1100px;margin:0 auto;padding:0 48px}
.sc{padding:72px 0;background:var(--bg)}.s2{background:var(--bg2)}
.dv{width:48px;height:1px;background:var(--te);margin-bottom:18px}
.ey{font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--te);margin-bottom:12px}
.st{font-family:var(--df);font-style:italic;font-weight:600;font-size:clamp(26px,3.5vw,50px);color:var(--tx);line-height:1.1}
.bt{font-size:14px;line-height:1.8;color:var(--mu)}
.sx{font-size:13px;color:var(--li);margin-top:6px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.g2e{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.hero{position:relative;background:var(--bg);min-height:620px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:96px 48px 80px}.hero-inner{display:grid;grid-template-columns:1fr 460px;gap:52px;align-items:center;max-width:1040px;width:100%;position:relative;z-index:1}
.wm{position:absolute;font-family:var(--df);font-size:clamp(100px,14vw,180px);font-weight:700;color:var(--dk);opacity:.03;line-height:1;pointer-events:none;user-select:none;white-space:nowrap;z-index:0}
.hl{position:absolute;left:48px;top:0;bottom:0;width:1px;background:var(--te);opacity:.2}
.hc{position:relative;z-index:1;max-width:560px}
.hp{width:460px;height:344px;overflow:hidden}
.hp img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.hn{font-family:var(--df);font-style:italic;font-weight:600;font-size:clamp(40px,5vw,70px);color:var(--tx);line-height:1.05;margin-bottom:12px}
.hg{font-family:var(--df);font-size:clamp(17px,2vw,24px);color:var(--mu);margin-bottom:6px}
.hs{font-size:11px;font-weight:500;letter-spacing:.18em;color:var(--li);margin-bottom:32px}
.hb{display:flex;gap:10px;flex-wrap:wrap}
.bp{display:inline-flex;align-items:center;gap:8px;background:var(--te);color:#F5F0E8;font-size:13px;font-weight:600;padding:11px 20px;border:none;cursor:pointer;transition:background .3s;font-family:var(--sf)}
.bp:hover{background:var(--tl)}
.bo{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--mu);border:1px solid rgba(28,23,20,.25);font-size:13px;font-weight:600;padding:11px 20px;cursor:pointer;transition:border-color .3s,color .3s;font-family:var(--sf)}
.bo:hover{border-color:var(--te);color:var(--te)}
.pq{position:relative;padding:16px 0 0 12px}
.qm{position:absolute;top:-22px;left:-6px;font-family:var(--df);font-size:72px;color:var(--te);opacity:.2;line-height:1;user-select:none}
.pq p{font-family:var(--df);font-style:italic;font-size:clamp(18px,1.9vw,24px);color:var(--mu);line-height:1.4;position:relative;z-index:1}
.qr{width:40px;height:1px;background:var(--te);margin-top:20px}
.cd{background:var(--bg2);border:1px solid var(--bd);padding:26px;transition:transform .3s,box-shadow .3s;cursor:default}
.cd:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(28,23,20,.06)}
.ci{font-size:20px;color:var(--te);display:block;margin-bottom:14px}
.cr{width:32px;height:1px;background:var(--te);margin-bottom:14px;transition:width .4s}
.cd:hover .cr{width:48px}
.ctl{font-family:var(--df);font-size:clamp(15px,1.3vw,19px);font-weight:600;color:var(--tx);margin-bottom:8px}
.pc{border:1px solid var(--bd);padding:26px;transition:border-color .3s}
.pc:hover{border-color:rgba(140,63,42,.3)}
.sbd{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--sg);background:var(--sb);padding:3px 9px;margin-bottom:12px}
.sbd-te{color:var(--te);background:rgba(140,63,42,.08)}
.pt{font-family:var(--df);font-style:italic;font-size:clamp(16px,1.5vw,20px);font-weight:600;color:var(--tx);margin-bottom:8px}
.ph{padding:88px 0 40px;background:var(--bg)}
.ptl{font-family:var(--df);font-style:italic;font-weight:600;font-size:clamp(34px,5vw,64px);color:var(--tx);line-height:1.05;margin-bottom:8px}
.book-row{display:flex;gap:32px;align-items:flex-start}
.bc{flex-shrink:0;box-shadow:4px 8px 20px rgba(28,23,20,.2)}
.bc img{display:block;width:100%}
.btl{font-family:var(--df);font-style:italic;font-size:clamp(15px,1.7vw,21px);font-weight:600;color:var(--tx);line-height:1.3;margin-bottom:6px}
.tl{font-size:13px;font-weight:600;color:var(--te);text-decoration:none;cursor:pointer;transition:color .3s;display:inline-flex;align-items:center;gap:6px}
.tl:hover{color:var(--tl)}
.paper-card{border-bottom:1px solid var(--bd);padding:18px 0;display:flex;gap:18px;align-items:flex-start}
.paper-card:first-child{border-top:1px solid var(--bd)}
.py{font-size:11px;font-weight:600;color:var(--te);min-width:48px;padding-top:2px}
.pj{font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--li);margin-bottom:4px}
.ptit{font-family:var(--df);font-style:italic;font-size:16px;font-weight:600;color:var(--tx);margin-bottom:4px;line-height:1.3}
.pau{font-size:12px;color:var(--mu)}
.ai{border:1px solid var(--bd);margin-bottom:3px;transition:border-color .3s}
.ai:hover{border-color:rgba(140,63,42,.25)}
.ah{width:100%;background:none;border:none;padding:22px 26px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;cursor:pointer;text-align:left}
.atg{font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--te);display:block;margin-bottom:7px}
.att{font-family:var(--df);font-style:italic;font-size:clamp(15px,1.5vw,19px);font-weight:600;color:var(--tx);margin-bottom:4px}
.am{font-size:11px;letter-spacing:.08em;color:var(--li)}
.aa{font-size:18px;color:var(--li);transition:transform .3s;flex-shrink:0;margin-top:2px}
.ab{max-height:0;overflow:hidden;transition:max-height .4s ease}
.af{padding:0 26px 16px}
.af:first-child{padding-top:14px;border-top:1px solid rgba(28,23,20,.06)}
.al{font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--sg);margin-bottom:6px}
.news-card{border-bottom:1px solid var(--bd);padding:20px 0;display:flex;align-items:flex-start;gap:20px;cursor:pointer;transition:background .2s}
.news-card:first-child{border-top:1px solid var(--bd)}
.news-card:hover .nc-title{color:var(--te)}
.nc-date{font-size:11px;font-weight:600;color:var(--li);min-width:56px;padding-top:3px}
.nc-type{display:inline-block;font-size:9px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:2px 7px;margin-bottom:6px}
.type-conf{color:var(--sg);background:var(--sb)}
.type-pub{color:var(--te);background:rgba(140,63,42,.08)}
.type-event{color:#5A4A8A;background:rgba(90,74,138,.08)}
.nc-title{font-family:var(--df);font-style:italic;font-size:16px;font-weight:600;color:var(--tx);margin-bottom:3px;transition:color .3s;line-height:1.3}
.nc-venue{font-size:12px;color:var(--mu)}
.news-detail{display:none}
.news-detail.on{display:block}
.news-list-wrap.hidden{display:none}
.back-btn{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--mu);background:none;border:none;cursor:pointer;margin-bottom:32px;padding:0;font-family:var(--sf);transition:color .3s}
.back-btn:hover{color:var(--te)}
.nd-title{font-family:var(--df);font-style:italic;font-weight:600;font-size:clamp(24px,3.5vw,44px);color:var(--tx);line-height:1.1;margin-bottom:16px}
.nd-meta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px;align-items:center}
.nd-venue{font-size:13px;color:var(--mu)}
.nd-desc{font-size:14px;line-height:1.8;color:var(--mu);margin-bottom:20px}
.nd-authors{font-size:12px;color:var(--li);font-style:italic}
.proj-card{border:1px solid var(--bd);padding:26px;margin-bottom:3px;transition:border-color .3s}
.proj-card:hover{border-color:rgba(140,63,42,.3)}
.proj-title{font-family:var(--df);font-style:italic;font-size:clamp(16px,1.5vw,20px);font-weight:600;color:var(--tx);margin-bottom:6px}
.proj-meta{font-size:11px;color:var(--li);margin-bottom:10px;display:flex;gap:16px;flex-wrap:wrap}
.proj-meta span{letter-spacing:.05em}
.fw-box{border:1px solid var(--bd);padding:24px;background:rgba(140,63,42,.03);margin-bottom:12px}
.fw-box-title{font-family:var(--df);font-style:italic;font-size:19px;font-weight:600;color:var(--tx);margin-bottom:8px}
.filter-bar{display:flex;gap:8px;margin-bottom:32px;flex-wrap:wrap}
.fb{background:none;border:1px solid var(--bd);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mu);padding:6px 14px;cursor:pointer;font-family:var(--sf);transition:all .3s}
.fb.on,.fb:hover{background:var(--te);border-color:var(--te);color:#F5F0E8}
footer{background:var(--dk);color:rgba(237,231,217,.65);padding:52px 0}
.fg{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}
.fh{font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(237,231,217,.35);margin-bottom:14px}
.fl{background:none;border:none;font-size:13px;color:rgba(237,231,217,.55);cursor:pointer;padding:0;text-align:left;transition:color .3s;text-decoration:none;font-family:var(--sf);display:flex;align-items:center;gap:8px}
.fl:hover{color:rgba(237,231,217,.9)}

.rtabs{display:flex;gap:0;border-bottom:2px solid var(--bd);margin-bottom:0}
.rtab{background:none;border:none;padding:12px 20px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mu);cursor:pointer;font-family:var(--sf);border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .3s,border-color .3s}
.rtab.on,.rtab:hover{color:var(--te);border-bottom-color:var(--te)}
.rtab-section{display:none}
.rtab-section.on{display:block}
.wtab{background:none;border:none;padding:12px 20px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mu);cursor:pointer;font-family:var(--sf);border-bottom:3px solid transparent;margin-bottom:-2px;transition:color .3s,border-color .3s}
.wtab.on,.wtab:hover{color:var(--te);border-bottom-color:var(--te)}
.wtab-section{display:none}
.wtab-section.on{display:block}
.chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--bd);padding:12px 18px;font-size:13px;color:var(--mu);background:var(--bg2);transition:border-color .3s,color .3s}
.chip:hover{border-color:var(--te);color:var(--te)}
.chip-icon{font-size:16px;color:var(--te)}
.collab-banner{border:1px solid rgba(140,63,42,.3);background:rgba(140,63,42,.04);padding:28px 36px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:28px}
.contact-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--tx);transition:color .3s;padding:10px 0;border-bottom:1px solid var(--bd)}
.contact-link:hover{color:var(--te)}
.contact-link-icon{width:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-link-label{font-size:10px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--li)}
.contact-link-value{font-size:14px;font-weight:500;color:var(--tx)}

.hamburger{display:none;background:none;border:none;cursor:pointer;padding:6px;color:var(--tx);align-items:center}
@media (max-width:860px){
  nav{padding:0 20px;height:58px;flex-wrap:nowrap}
  .hamburger{display:flex}
  .nav-links{position:fixed;top:58px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--bd);flex-direction:column;gap:0;padding:4px 20px 14px;display:none;box-shadow:0 10px 24px rgba(28,23,20,.08);max-height:calc(100vh - 58px);overflow-y:auto;z-index:90}
  .nav-links.open{display:flex}
  .nb{padding:14px 0;font-size:15px;width:100%;text-align:left;border-bottom:1px solid rgba(28,23,20,.06)}
  .nb:last-child{border-bottom:none}
  .logo{font-size:17px}
  .logo .nb{border-bottom:none}
  .lb{display:none}
  .wm{display:none}
  .hl{display:none}
  .hero{padding:74px 20px 48px;min-height:auto}
  .hero-inner{grid-template-columns:1fr;gap:28px;max-width:100%}
  .hc{max-width:100%}
  .hp{width:100%;height:250px}
  .hn{font-size:clamp(38px,12vw,58px)}
  .g2,.g3,.g2e{grid-template-columns:1fr;gap:22px}
  .book-row{flex-direction:column;gap:16px}
  .bc{width:120px}
  .fg{grid-template-columns:1fr;gap:30px}
  .collab-banner{flex-direction:column;align-items:flex-start;gap:18px;padding:24px}
  .rtabs{overflow-x:auto;flex-wrap:nowrap}
  .rtab,.wtab{white-space:nowrap;padding:12px 13px;font-size:10px;flex-shrink:0}
  .ct{padding:0 20px}
  .sc{padding:46px 0}
  .ph{padding:74px 0 30px}
  .ptl{font-size:clamp(30px,9vw,46px)}
  .st{font-size:clamp(24px,7vw,38px)}
  .filter-bar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px}
  .fb{flex-shrink:0}
  .news-card{gap:12px}
  .nc-date{min-width:48px}
  .nd-title{font-size:clamp(24px,7vw,38px)}
}

/* --- 2026 polish pass: visual balance, SEO-safe language notice, stronger hero --- */
nav{height:72px;padding:0 56px}
nav .logo{font-size:21px;gap:12px}
nav .logo img{height:38px!important;width:auto!important}
.nav-links{gap:28px}
.nb{font-size:13.5px;letter-spacing:.01em}
.lb{font-size:11px;padding:6px 12px;min-width:48px}
.hero{min-height:720px;padding:110px 56px 92px}
.hero-inner{grid-template-columns:minmax(420px,1fr) minmax(520px,580px);gap:72px;max-width:1180px}
.hc{max-width:620px}
.hp{width:100%;height:520px;max-width:580px;border:1px solid var(--bd);box-shadow:0 18px 42px rgba(28,23,20,.10);background:var(--bg2)}
.hp img{object-position:center 56%;filter:saturate(1.08) contrast(1.04)}

.project-photo-wrap{display:flex;flex-direction:column;align-items:center;margin-top:28px}
.project-photo{width:100%;max-width:920px;display:block;border:1px solid var(--bd);box-shadow:0 12px 28px rgba(28,23,20,.08)}

@media (max-width:860px){
  nav{height:60px;padding:0 20px}
  nav .logo{font-size:18px}
  nav .logo img{height:32px!important}
  .nav-links{top:60px;gap:0}
  .hero{padding:74px 20px 52px;min-height:auto}
  .hero-inner{grid-template-columns:1fr;gap:30px;max-width:100%}
  .hp{height:390px;max-width:100%}
}


.about-hero{padding:88px 0 44px;background:var(--bg)}
.about-grid{display:grid;grid-template-columns:minmax(0,1.1fr) 380px;gap:56px;align-items:start}
.about-kicker{font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--te);margin-bottom:14px}
.about-title{font-family:var(--df);font-style:italic;font-weight:600;font-size:clamp(36px,4.8vw,68px);line-height:1.04;color:var(--tx);margin-bottom:18px}
.about-lede{font-family:var(--df);font-style:italic;font-size:clamp(19px,2vw,27px);line-height:1.35;color:var(--mu);margin-bottom:24px}
.about-photo{border:1px solid var(--bd);background:var(--bg2);padding:10px;box-shadow:0 16px 36px rgba(28,23,20,.09)}
.about-photo img{width:100%;height:500px;object-fit:cover;object-position:center 48%;display:block}
.about-caption{font-size:11px;color:var(--li);margin-top:10px;line-height:1.5}
.about-panel{border:1px solid var(--bd);background:rgba(140,63,42,.035);padding:30px;margin-top:18px}
.about-panel-wide{grid-column:1/-1;display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);gap:30px;align-items:start}
.about-panel-title{font-family:var(--df);font-style:italic;font-size:25px;font-weight:600;color:var(--tx);margin-bottom:12px}
.about-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.about-item{border:1px solid rgba(28,23,20,.10);background:rgba(245,240,232,.36);padding:16px 18px;min-height:118px}
.about-item strong{display:block;font-family:var(--df);font-style:italic;font-size:18px;color:var(--tx);margin-bottom:4px}
.about-item span{font-size:12px;line-height:1.65;color:var(--mu)}
.about-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.about-mini{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.about-mini span{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sg);background:var(--sb);padding:5px 9px}
@media (max-width:860px){
  .about-hero{padding:58px 0 32px}
  .about-grid{grid-template-columns:1fr;gap:28px}
  .about-photo{max-width:420px}
  .about-photo img{height:360px}
  .about-panel-wide{grid-template-columns:1fr;padding:22px}.about-list{grid-template-columns:1fr}.about-item{min-height:auto}
}


/* Dyslexia-friendly / reading support mode */
.accessibility-toggle{
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--mu);
  border:1px solid var(--bd);
  padding:6px 10px;
  background:none;
  cursor:pointer;
  font-family:var(--sf);
  min-width:44px;
  transition:background .25s,color .25s,border-color .25s;
}
.accessibility-toggle:hover,
.accessibility-toggle.on{
  background:var(--te);
  color:#F5F0E8;
  border-color:var(--te);
}
body.dyslexia-mode{
  font-family:Verdana,Arial,system-ui,sans-serif!important;
}
body.dyslexia-mode h1,
body.dyslexia-mode h2,
body.dyslexia-mode h3,
body.dyslexia-mode blockquote,
body.dyslexia-mode .hn,
body.dyslexia-mode .st,
body.dyslexia-mode .ptl,
body.dyslexia-mode .about-title,
body.dyslexia-mode .about-lede,
body.dyslexia-mode .proj-title,
body.dyslexia-mode .btl,
body.dyslexia-mode .att,
body.dyslexia-mode .nc-title,
body.dyslexia-mode .nd-title{
  font-family:Verdana,Arial,system-ui,sans-serif!important;
  font-style:normal!important;
  line-height:1.25!important;
  letter-spacing:.005em!important;
}
body.dyslexia-mode p,
body.dyslexia-mode .bt,
body.dyslexia-mode .sx,
body.dyslexia-mode .nd-desc,
body.dyslexia-mode .contact-link-value,
body.dyslexia-mode .contact-link-label,
body.dyslexia-mode .pau,
body.dyslexia-mode .am,
body.dyslexia-mode .nc-venue{
  line-height:1.9!important;
  letter-spacing:.018em!important;
  word-spacing:.08em!important;
}
body.dyslexia-mode .bt{font-size:15px!important}
body.dyslexia-mode .sx{font-size:14px!important}
body.dyslexia-mode .ey,
body.dyslexia-mode .sbd,
body.dyslexia-mode .atg,
body.dyslexia-mode .fh,
body.dyslexia-mode .hs,
body.dyslexia-mode .pj{
  letter-spacing:.08em!important;
}
body.dyslexia-mode .about-mini span,
body.dyslexia-mode .fb,
body.dyslexia-mode .rtab,
body.dyslexia-mode .wtab{
  text-transform:none!important;
  letter-spacing:.03em!important;
}
body.dyslexia-mode .wm{display:none!important}
body.dyslexia-mode a,
body.dyslexia-mode .tl,
body.dyslexia-mode .fl{
  text-decoration:underline!important;
  text-underline-offset:3px!important;
}
body.dyslexia-mode .cd,
body.dyslexia-mode .pc,
body.dyslexia-mode .proj-card,
body.dyslexia-mode .book-row,
body.dyslexia-mode .ai,
body.dyslexia-mode .about-item,
body.dyslexia-mode .about-panel,
body.dyslexia-mode .contact-link{
  border-color:rgba(28,23,20,.22)!important;
}
@media (max-width:860px){
  .accessibility-toggle{padding:6px 9px;min-width:42px}
  body.dyslexia-mode .bt{font-size:14.5px!important}
}


/* Header tools: clearer language and reading controls */
.site-tools{display:flex;align-items:center;gap:6px;margin-left:auto}
.site-tools .accessibility-toggle,
.site-tools .lb{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  white-space:nowrap;
  min-height:32px;
  border:1px solid var(--bd);
  background:rgba(245,240,232,.58);
  color:var(--mu);
  padding:6px 10px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  cursor:pointer;
  font-family:var(--sf);
  transition:background .25s,color .25s,border-color .25s;
}
.site-tools .accessibility-toggle:hover,
.site-tools .accessibility-toggle.on,
.site-tools .lb:hover{
  background:var(--te);
  border-color:var(--te);
  color:#F5F0E8;
}
.site-tools .tool-icon{font-weight:800;letter-spacing:0}
.site-tools .tool-label{display:inline-block}
@media (max-width:860px){
  nav{gap:8px}
  .site-tools{margin-left:auto;gap:4px}
  .site-tools .accessibility-toggle,
  .site-tools .lb{
    min-height:34px;
    padding:6px 8px;
    font-size:10.5px;
    letter-spacing:.02em;
  }
  .hamburger{margin-left:2px}
}
@media (max-width:420px){
  .site-tools .accessibility-toggle,
  .site-tools .lb{font-size:10px;padding:6px 7px}
}

/* Softer hero image integration */
.hp{position:relative;background:var(--bg);box-shadow:0 12px 28px rgba(28,23,20,.055)}
.hp::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(245,240,232,.22),rgba(245,240,232,.12));
  mix-blend-mode:soft-light;
}
.hp img{
  filter:saturate(.82) contrast(.90) brightness(1.04) sepia(.06)!important;
  opacity:.94;
}

/* ── v21: card polish · motion · framework diagram ── */
.fw-box{border-radius:10px}
.g3 .fw-box{position:relative;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.g3 .fw-box::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--te),var(--tl));transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.g3 .fw-box:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(28,23,20,.07);border-color:rgba(140,63,42,.26)}
.g3 .fw-box:hover::after{transform:scaleX(1)}
.fw-axis-num{font-family:var(--df);font-style:italic;font-weight:600;font-size:42px;line-height:1;color:var(--te);opacity:.88;display:block;margin-bottom:2px}
.fw-axis-label{font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--li);display:block;margin-bottom:12px}
.ioh-figure{margin-top:34px}
.ioh-figure img{width:100%;height:auto;display:block;border:1px solid var(--bd);border-radius:12px;background:var(--bg);box-shadow:0 18px 44px rgba(28,23,20,.08)}
.ioh-figure figcaption{font-family:var(--df);font-style:italic;font-size:15px;line-height:1.5;color:var(--li);margin-top:14px;max-width:760px}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){
  .pg.on>section{animation:fadeUp .6s cubic-bezier(.22,.61,.36,1) both}
  .pg.on>section:nth-of-type(2){animation-delay:.07s}
  .pg.on>section:nth-of-type(3){animation-delay:.14s}
  .pg.on>section:nth-of-type(4){animation-delay:.21s}
  .pg.on>section:nth-of-type(5){animation-delay:.28s}
  .pg.on>section:nth-of-type(n+6){animation-delay:.34s}
}

/* ── v22: text-block hierarchy · designed cards (UX) ── */
/* About — reading hierarchy */
#cms-about-paragraphs{max-width:62ch}
#cms-about-paragraphs .bt{font-size:15px;line-height:1.85;margin-bottom:16px}
#cms-about-paragraphs .bt:first-of-type{font-size:17.5px;line-height:1.72;color:var(--tx)}
#cms-about-paragraphs .bt:last-of-type{margin-bottom:0}
/* About — research-area chips as pills */
.about-mini span{border:1px solid rgba(74,116,103,.30);border-radius:999px;padding:6px 12px;letter-spacing:.1em;transition:background .25s,color .25s}
.about-mini span:hover{background:var(--sg);color:#F5F0E8}
/* About — contact cards: numbered · accent · hover */
.about-list{counter-reset:ai}
.about-item{position:relative;overflow:hidden;border-radius:10px;padding:20px 18px 18px;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.about-item::before{counter-increment:ai;content:counter(ai,decimal-leading-zero);position:absolute;top:14px;right:16px;font-family:var(--df);font-style:italic;font-weight:600;font-size:22px;color:var(--te);opacity:.38}
.about-item::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--te),var(--tl));transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.about-item:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(28,23,20,.06);border-color:rgba(140,63,42,.24)}
.about-item:hover::after{transform:scaleX(1)}
.about-item strong{padding-right:28px}
/* Framework — Why/What prose boxes: inset editorial accent + readability */
.ct>.fw-box{position:relative;padding-left:28px}
.ct>.fw-box::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:3px;background:var(--te)}
.ct>.fw-box .bt{font-size:15px;line-height:1.82}
.ct>.fw-box .fw-box-title{font-size:21px;margin-bottom:10px}
/* Home narrative — opening-paragraph emphasis */
#home .g2 .bt:first-of-type{font-size:16.5px;line-height:1.72;color:var(--tx)}

/* ── v23: News timeline · home Ongoing cards ── */
#news .ph{padding-bottom:20px}
#news .sc{padding-top:28px}
.news-list-inner{position:relative}
.news-list-inner::before{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:1px;background:var(--bd)}
.news-card{position:relative;padding-left:30px;transition:background .25s ease}
.news-card::before{content:"";position:absolute;left:1px;top:26px;width:9px;height:9px;border-radius:50%;background:var(--bg);border:2px solid var(--te);box-sizing:border-box;transition:background .25s ease,transform .25s ease}
.news-card:hover{background:rgba(140,63,42,.025)}
.news-card:hover::before{background:var(--te);transform:scale(1.15)}
.nc-type{border-radius:3px}
.pc{position:relative;overflow:hidden;border-radius:10px;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.pc::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--te),var(--tl));transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.pc:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(28,23,20,.06);border-color:rgba(140,63,42,.24)}
.pc:hover::after{transform:scaleX(1)}

/* ── v24: card harmonization — Research & Projects ── */
.paper-card{position:relative;padding-left:18px;transition:background .25s ease}
.paper-card::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:2px;background:var(--te);transform:scaleY(0);transform-origin:top;transition:transform .3s ease}
.paper-card:hover{background:rgba(140,63,42,.02)}
.paper-card:hover::before{transform:scaleY(1)}
.ptit{transition:color .3s ease}
.paper-card:hover .ptit{color:var(--te)}
.bc{transition:transform .35s ease,box-shadow .35s ease}
.book-row:hover .bc{transform:translateY(-4px);box-shadow:6px 12px 28px rgba(28,23,20,.26)}
.btl{transition:color .3s ease}
.book-row:hover .btl{color:var(--te)}
.proj-card{position:relative;overflow:hidden;border-radius:10px;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.proj-card::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--te),var(--tl));transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.proj-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(28,23,20,.06);border-color:rgba(140,63,42,.26)}
.proj-card:hover::after{transform:scaleX(1)}

/* ── v25: full-bleed quote band · section rhythm ── */
.quote-band{background:var(--tx);padding:clamp(56px,7vw,96px) 0;margin:0}
.quote-band .ct{max-width:1000px}
.quote-band-text{font-family:var(--df);font-style:italic;font-weight:600;font-size:clamp(25px,3.5vw,44px);line-height:1.18;color:var(--bg);text-align:center;position:relative;margin:0}
.quote-band-text::before{content:"\201C";display:block;font-family:var(--df);font-size:64px;color:var(--tl);opacity:.55;line-height:.4;margin-bottom:22px}
.narr-body{margin-top:30px;max-width:740px}
@media (max-width:760px){.quote-band-text{font-size:23px}}


/* v25 final footer — left-aligned, no signup block */
.site-footer{
  background:var(--dk);
  color:rgba(237,231,217,.72);
  padding:64px 0 30px;
}
.site-footer .footer-shell{
  max-width:1120px;
  margin:0 auto;
  padding:0 48px;
}
.footer-top{
  display:grid;
  grid-template-columns:minmax(380px,1.48fr) minmax(160px,.62fr) minmax(230px,.86fr);
  gap:64px;
  align-items:start;
}
.footer-affiliation{
  display:flex;
  align-items:flex-start;
  gap:20px;
  min-width:0;
}
.footer-logo-card{
  flex:0 0 auto;
  display:inline-flex;
  background:#F5F0E8;
  border:1px solid rgba(237,231,217,.24);
  border-radius:12px;
  padding:10px 12px;
  box-shadow:0 14px 28px rgba(0,0,0,.13);
}
.footer-logo-card img{width:58px;height:auto;display:block}
.footer-title{
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(237,231,217,.40);
  margin-bottom:14px;
}
.footer-affiliation-lines{
  font-size:14px;
  line-height:1.72;
  color:rgba(237,231,217,.64);
  max-width:430px;
}
.footer-affiliation-lines span{display:block}
.footer-column{
  padding-top:8px;
}
.footer-column .footer-title{
  text-align:left;
}
.footer-link-grid{
  display:grid;
  gap:10px 22px;
  justify-items:start;
  text-align:left;
}
.footer-explore-grid{grid-template-columns:repeat(2,minmax(84px,1fr))}
.footer-connect-grid{grid-template-columns:repeat(2,minmax(112px,1fr))}
.site-footer .fl{
  background:none;
  border:0;
  padding:0;
  cursor:pointer;
  font-family:var(--sf);
  font-size:13.5px;
  line-height:1.4;
  color:rgba(237,231,217,.64);
  text-decoration:none;
  display:inline-flex;
  align-items:center;
}
.site-footer .fl:hover{
  color:rgba(237,231,217,.96);
  text-decoration:underline;
  text-underline-offset:3px;
}
.footer-bottom{
  margin-top:44px;
  padding-top:20px;
  border-top:1px solid rgba(237,231,217,.12);
  font-size:12px;
  color:rgba(237,231,217,.42);
}
@media(max-width:900px){
  .site-footer .footer-shell{padding:0 20px}
  .footer-top{
    grid-template-columns:1fr;
    gap:30px;
  }
  .footer-column{padding-top:0}
  .footer-explore-grid,.footer-connect-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:390px;
  }
  .footer-affiliation{gap:14px}
}
@media(max-width:430px){
  .footer-affiliation{align-items:flex-start}
  .footer-logo-card img{width:48px}
  .footer-explore-grid,.footer-connect-grid{grid-template-columns:1fr}
}


/* v25 final UX polish — stronger rhythm, clearer cards, less document-like */
.sc{position:relative}
.cd,.pc,.proj-card,.paper-card,.book-row,.fw-box,.about-item,.news-card{
  will-change:transform;
}
#home .g3{
  counter-reset:axis-card;
}
#home .g3 .cd{
  position:relative;
  overflow:hidden;
  border-radius:12px;
  padding-top:34px;
}
#home .g3 .cd::before{
  counter-increment:axis-card;
  content:"0" counter(axis-card);
  position:absolute;
  top:18px;
  right:20px;
  font-family:var(--df);
  font-size:44px;
  font-style:italic;
  font-weight:600;
  line-height:1;
  color:var(--te);
  opacity:.18;
}
#home .g3 .cd::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  height:3px;
  width:100%;
  background:linear-gradient(90deg,var(--te),var(--tl));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .35s ease;
}
#home .g3 .cd:hover::after{transform:scaleX(1)}
#home .g3 .cd .ci{
  font-size:18px;
  width:34px;
  height:34px;
  border:1px solid rgba(140,63,42,.22);
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(245,240,232,.48);
}
#home .g3 .cd .bt{
  max-width:32ch;
}

#home .narr-body{
  max-width:780px;
}
#home .narr-body .bt{
  font-size:15px;
}
#home .narr-body .bt:first-child{
  font-family:var(--df);
  font-size:clamp(21px,2.35vw,30px);
  line-height:1.34;
  color:var(--tx);
  margin-bottom:20px;
}

.about-hero{
  position:relative;
}
.about-lede{
  max-width:780px;
}
.about-panel-wide{
  border-radius:14px;
  background:linear-gradient(135deg,rgba(140,63,42,.05),rgba(74,116,103,.045));
}
.about-panel-title{
  font-size:clamp(25px,2.5vw,34px);
}
.about-item{
  background:rgba(245,240,232,.52);
}
.about-item span{
  display:block;
  max-width:34ch;
}

#framework .fw-box{
  border-radius:12px;
}
#framework .ct>.fw-box{
  background:linear-gradient(135deg,rgba(140,63,42,.048),rgba(245,240,232,.42));
}
#framework .ct>.fw-box .bt{
  max-width:82ch;
}
#framework .ioh-figure{
  margin-top:42px;
}
#framework .ioh-figure img{
  border-radius:16px;
}
#framework .g3 .fw-box{
  min-height:100%;
}

.news-card{
  border-radius:8px;
  padding-right:18px;
}
.news-card:hover{
  background:rgba(140,63,42,.035);
}
.paper-card,.proj-card,.pc,.book-row{
  border-radius:12px;
}
.book-row{
  padding:8px;
  margin:-8px;
  transition:background .3s ease,transform .3s ease;
}
.book-row:hover{
  background:rgba(140,63,42,.025);
}
.contact-link{
  border-radius:8px;
  padding:12px 4px;
}
.contact-link:hover{
  background:rgba(140,63,42,.025);
}

@media(max-width:860px){
  #home .narr-body .bt:first-child{
    font-size:22px;
  }
  #home .g3 .cd .bt{
    max-width:none;
  }
}



/* ──────────────────────────────────────────────────────────────────────────
   v27 FINAL ART DIRECTION: atmosphere · centered navigation · visual rhythm
   ────────────────────────────────────────────────────────────────────────── */

:root{
  --paper:#F7F1E8;
  --paper2:#EFE6D7;
  --wash:#E8EFEA;
  --ink-soft:rgba(28,23,20,.055);
  --shadow-soft:0 18px 48px rgba(28,23,20,.075);
  --shadow-card:0 14px 34px rgba(28,23,20,.06);
}

html{
  background:#F5F0E8 !important;
}
body{
  background:
    radial-gradient(circle at 10% 4%, rgba(196,101,74,.10), transparent 28%),
    radial-gradient(circle at 90% 9%, rgba(74,116,103,.10), transparent 32%),
    radial-gradient(circle at 50% 48%, rgba(255,255,255,.25), transparent 38%),
    linear-gradient(180deg,#F8F3EA 0%,#F2EADB 48%,#F5F0E8 100%) !important;
}
.pg{background:transparent !important}
.sc{
  position:relative;
  background:linear-gradient(180deg,rgba(247,241,232,.78),rgba(245,240,232,.88)) !important;
}
.s2{
  background:
    radial-gradient(circle at 8% 0%, rgba(74,116,103,.07), transparent 32%),
    linear-gradient(180deg,rgba(237,231,217,.95),rgba(242,235,223,.96)) !important;
}
.sc::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(28,23,20,.025) 1px,transparent 1px),
    linear-gradient(180deg,rgba(28,23,20,.018) 1px,transparent 1px);
  background-size:72px 72px;
  opacity:.22;
  mask-image:linear-gradient(180deg,transparent,black 12%,black 80%,transparent);
}
.sc>.ct{position:relative;z-index:1}

/* Fixed desktop header: logo left, navigation centered, tools right */
nav{
  background:rgba(248,243,234,.92) !important;
  border-bottom:1px solid rgba(28,23,20,.08) !important;
  box-shadow:0 10px 30px rgba(28,23,20,.035) !important;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
@media (min-width: 901px){
  nav{
    display:grid !important;
    grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr) !important;
    align-items:center !important;
    justify-content:normal !important;
    gap:26px !important;
  }
  nav .logo{
    grid-column:1 !important;
    justify-self:start !important;
  }
  nav .nav-links{
    grid-column:2 !important;
    justify-self:center !important;
    justify-content:center !important;
    width:auto !important;
    margin:0 auto !important;
    gap:24px !important;
  }
  nav .site-tools{
    grid-column:3 !important;
    justify-self:end !important;
    margin-left:0 !important;
  }
  nav .hamburger{display:none!important}
}
.site-tools .accessibility-toggle{
  width:34px!important;
  min-width:34px!important;
  padding:6px 0!important;
  letter-spacing:0!important;
}
.site-tools .lb{
  border-radius:2px;
}

/* Hero: make the image feel integrated with the visual system */
.hero{
  background:
    radial-gradient(circle at 18% 16%, rgba(196,101,74,.10), transparent 32%),
    radial-gradient(circle at 82% 24%, rgba(74,116,103,.13), transparent 34%),
    linear-gradient(135deg,#F8F2E7 0%,#EEE5D5 100%) !important;
}
.hero::before{
  content:"";
  position:absolute;
  right:8%;
  top:14%;
  width:420px;
  height:420px;
  background:rgba(74,116,103,.075);
  border:1px solid rgba(74,116,103,.10);
  transform:rotate(-6deg);
  pointer-events:none;
}
.hero::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:120px;
  background:linear-gradient(180deg,transparent,rgba(245,240,232,.68));
  pointer-events:none;
}
.hp{
  overflow:visible!important;
  position:relative!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.hp::before{
  content:"";
  position:absolute;
  inset:22px -22px -22px 22px;
  background:linear-gradient(180deg,rgba(228,239,237,.92),rgba(237,231,217,.88));
  border:1px solid rgba(74,116,103,.14);
  z-index:-1;
}
.hp img{
  border:1px solid rgba(28,23,20,.12);
  box-shadow:0 22px 52px rgba(28,23,20,.12);
  filter:saturate(.88) contrast(.93) brightness(1.03) sepia(.06)!important;
}
.hp::after{
  mix-blend-mode:soft-light;
  opacity:.72;
}

/* Statement band moved directly after hero */
.quote-band{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 15% 15%, rgba(196,101,74,.22), transparent 32%),
    linear-gradient(135deg,#1C1714 0%,#2B241F 100%) !important;
  padding:clamp(50px,6vw,82px) 0!important;
}
.quote-band::after{
  content:"";
  position:absolute;
  right:-80px;
  top:-90px;
  width:360px;
  height:360px;
  border:1px solid rgba(237,231,217,.10);
  transform:rotate(18deg);
}
.quote-band-text{
  max-width:980px;
  margin:0 auto!important;
}
.quote-band-text::before{
  content:"Core premise"!important;
  display:block!important;
  font-family:var(--sf)!important;
  font-style:normal!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:.22em!important;
  text-transform:uppercase!important;
  color:rgba(237,231,217,.42)!important;
  margin-bottom:24px!important;
}

/* Thread section: editorial text + visual synthesis */
.thread-section{
  background:
    radial-gradient(circle at 88% 8%, rgba(74,116,103,.10), transparent 34%),
    linear-gradient(180deg,rgba(245,240,232,.95),rgba(242,235,223,.98)) !important;
}
.thread-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);
  gap:52px;
  align-items:start;
}
.thread-copy .bt{
  max-width:66ch;
}
.thread-copy .bt:first-of-type{
  font-size:16px;
  line-height:1.78;
  color:var(--tx);
}
.thread-visual{
  position:relative;
  border:1px solid rgba(28,23,20,.10);
  background:rgba(255,255,255,.36);
  box-shadow:var(--shadow-card);
  padding:28px;
  overflow:hidden;
}
.thread-visual::before{
  content:"";
  position:absolute;
  right:-80px;
  top:-80px;
  width:190px;
  height:190px;
  border:1px solid rgba(140,63,42,.22);
  transform:rotate(12deg);
}
.thread-visual-title{
  font-size:10px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--te);
  margin-bottom:18px;
}
.thread-insight{
  display:grid;
  grid-template-columns:46px 1fr;
  gap:16px;
  align-items:start;
  padding:18px 0;
  border-top:1px solid rgba(28,23,20,.08);
}
.thread-insight:first-of-type{border-top:0}
.thread-num{
  font-family:var(--df);
  font-style:italic;
  font-size:34px;
  line-height:.9;
  color:var(--te);
  opacity:.72;
}
.thread-insight h3{
  font-family:var(--df);
  font-style:italic;
  font-size:22px;
  line-height:1.05;
  color:var(--tx);
  margin-bottom:5px;
}
.thread-insight p{
  font-size:13px;
  line-height:1.65;
  color:var(--mu);
}
.thread-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px;
}
.thread-tags span{
  border:1px solid rgba(74,116,103,.24);
  background:rgba(228,239,237,.68);
  color:var(--sg);
  padding:6px 10px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

/* Page headers: visual motif on all internal pages */
.ph{
  position:relative!important;
  overflow:hidden!important;
  border-bottom:1px solid rgba(28,23,20,.08);
  background:
    radial-gradient(circle at 12% 10%, rgba(196,101,74,.08), transparent 28%),
    radial-gradient(circle at 90% 4%, rgba(74,116,103,.08), transparent 30%),
    linear-gradient(180deg,rgba(248,243,234,.95),rgba(242,235,223,.92)) !important;
}
.ph>.ct{position:relative;z-index:1}
.ph::after{
  position:absolute;
  right:7%;
  bottom:-36px;
  font-family:var(--df);
  font-style:italic;
  font-weight:700;
  font-size:clamp(96px,12vw,190px);
  line-height:1;
  color:rgba(28,23,20,.045);
  pointer-events:none;
  white-space:nowrap;
}
#news .ph::after{content:"Presence"}
#research .ph::after{content:"Papers"}
#framework .ph::after{content:"IOH"}
#projects .ph::after{content:"Projects"}
#reflections .ph::after{content:"Writing"}
#contact .ph::after{content:"Contact"}

/* Featured news card */
.featured-news{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.75fr) auto;
  gap:24px;
  align-items:center;
  border:1px solid rgba(28,23,20,.10);
  background:rgba(255,255,255,.34);
  padding:24px;
  box-shadow:var(--shadow-card);
  margin-bottom:28px;
  cursor:pointer;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.featured-news:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 42px rgba(28,23,20,.08);
  border-color:rgba(140,63,42,.26);
}
.featured-news::before{
  content:"";
  position:absolute;
  left:0;top:0;
  height:4px;width:100%;
  background:linear-gradient(90deg,var(--te),rgba(196,101,74,.20));
}
.featured-news-kicker{
  font-size:10px;
  font-weight:700;
  letter-spacing:.20em;
  text-transform:uppercase;
  color:var(--te);
  margin-bottom:8px;
}
.featured-news h2{
  font-size:clamp(23px,2.4vw,36px);
  font-style:italic;
  line-height:1.05;
  margin-bottom:8px;
}
.featured-news p{
  color:var(--mu);
  font-size:14px;
  line-height:1.65;
}
.featured-news-date{
  font-size:11px;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--sg);
  background:var(--sb);
  padding:7px 10px;
  white-space:nowrap;
}

/* Framework first fold: keep visual diagram at the top */
.framework-overview{
  padding-top:54px!important;
}
.framework-visual-card{
  position:sticky;
  top:96px;
}
.framework-visual-figure img{
  filter:saturate(.98) contrast(.98);
}

/* Projects: photo visible immediately */
.project-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);
  gap:44px;
  align-items:center;
}
.project-hero-copy .ptl{
  margin-bottom:12px;
}
.project-hero-photo{
  margin:0;
  border:1px solid rgba(28,23,20,.10);
  background:rgba(255,255,255,.36);
  padding:10px;
  box-shadow:var(--shadow-soft);
}
.project-hero-photo img{
  display:block;
  width:100%;
  height:360px;
  object-fit:cover;
  object-position:center 46%;
}
.project-hero-photo figcaption{
  font-size:11px;
  line-height:1.5;
  color:var(--li);
  margin-top:10px;
}
.projects-layout{
  display:grid;
  grid-template-columns:minmax(250px,.36fr) minmax(0,.64fr);
  gap:32px;
  align-items:start;
}
.projects-aside{
  position:sticky;
  top:96px;
}
.projects-aside-card{
  border:1px solid rgba(28,23,20,.10);
  background:rgba(255,255,255,.34);
  padding:24px;
  box-shadow:var(--shadow-card);
}
.projects-aside-card h2{
  font-size:28px;
  line-height:1;
  margin-bottom:10px;
}
.projects-aside-card .bt{
  font-size:13px;
}

/* Footer final: left aligned */
.site-footer{
  background:#1C1714!important;
  color:rgba(237,231,217,.72)!important;
  padding:58px 0 28px!important;
}
.site-footer .footer-shell{
  max-width:1120px;
  margin:0 auto;
  padding:0 48px;
}
.site-footer .footer-top{
  display:grid;
  grid-template-columns:minmax(360px,1.35fr) minmax(190px,.75fr) minmax(240px,.9fr);
  gap:44px;
  align-items:start;
}
.site-footer .footer-affiliation{
  display:flex;
  gap:18px;
  align-items:flex-start;
}
.site-footer .footer-logo-card{
  flex:0 0 auto;
  background:#F5F0E8;
  border:1px solid rgba(237,231,217,.24);
  padding:10px 12px;
  border-radius:10px;
}
.site-footer .footer-logo-card img{width:58px;height:auto;display:block}
.site-footer .footer-title{
  text-align:left!important;
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(237,231,217,.38);
  margin-bottom:14px;
}
.site-footer .footer-affiliation-lines{
  font-size:13px;
  line-height:1.7;
  color:rgba(237,231,217,.62);
  max-width:410px;
}
.site-footer .footer-affiliation-lines span{display:block}
.site-footer .footer-column{padding-top:34px}
.site-footer .footer-link-grid{
  display:grid;
  gap:9px 18px;
  justify-items:start!important;
  text-align:left!important;
}
.site-footer .footer-explore-grid{grid-template-columns:repeat(2,minmax(78px,1fr))}
.site-footer .footer-connect-grid{grid-template-columns:repeat(2,minmax(108px,1fr))}
.site-footer .fl{
  color:rgba(237,231,217,.62)!important;
  text-align:left!important;
  justify-content:flex-start!important;
}
.site-footer .fl:hover{color:rgba(237,231,217,.95)!important}
.site-footer .footer-bottom{
  margin-top:36px;
  padding-top:20px;
  border-top:1px solid rgba(237,231,217,.12);
  font-size:12px;
  color:rgba(237,231,217,.42);
}

/* Responsive */
@media (max-width: 980px){
  .thread-grid,
  .project-hero-grid,
  .projects-layout,
  .framework-overview-grid{
    grid-template-columns:1fr!important;
  }
  .framework-visual-card,
  .projects-aside{
    position:relative;
    top:auto;
  }
  .featured-news{
    grid-template-columns:1fr;
  }
}
@media (max-width: 900px){
  .site-footer .footer-shell{padding:0 20px}
  .site-footer .footer-top{grid-template-columns:1fr;gap:30px}
  .site-footer .footer-column{padding-top:0}
  .site-footer .footer-explore-grid,
  .site-footer .footer-connect-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:360px;
  }
}
@media (max-width: 860px){
  nav{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .project-hero-photo img{height:280px}
  .thread-visual{padding:22px}
}
@media (max-width: 430px){
  .site-footer .footer-explore-grid,
  .site-footer .footer-connect-grid{grid-template-columns:1fr}
  .project-hero-photo img{height:220px}
}


/* v28 visual page banners + clean IOH Framework */
:root{--paper:#F7F1E8;--paper2:#EFE6D7;--wash:#E7EFEA}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
nav{position:sticky!important;overflow:hidden!important;background:rgba(248,243,234,.94)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
nav::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('/images/nav-ornament.jpg') center/cover no-repeat;
  opacity:.08;
  pointer-events:none;
  z-index:0;
}
nav>*{position:relative;z-index:1}
@media(min-width:901px){
  nav{display:grid!important;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr)!important;align-items:center!important;gap:24px!important}
  nav .logo{grid-column:1!important;justify-self:start!important}
  nav .nav-links{grid-column:2!important;justify-self:center!important;justify-content:center!important;width:auto!important;margin:0 auto!important}
  nav .site-tools{grid-column:3!important;justify-self:end!important;margin-left:0!important}
  nav .hamburger{display:none!important}
}
.visual-page-header{
  position:relative;
  background:#F7F1E8;
  border-bottom:1px solid rgba(28,23,20,.08);
  overflow:hidden;
}
.visual-page-header img{
  display:block;
  width:100%;
  height:clamp(180px,24vw,280px);
  object-fit:cover;
  object-position:center center;
}
.visual-page-header .banner-copy{
  padding-top:16px;
  padding-bottom:18px;
}
.visual-page-header .banner-copy .sx{
  max-width:760px;
}
@media(max-width:860px){
  .visual-page-header img{
    height:200px;
    object-fit:cover;
    object-position:center center;
  }
  .visual-page-header .banner-copy{
    padding-top:14px;
    padding-bottom:16px;
  }
}
@media(max-width:480px){
  .visual-page-header img{height:160px}
}

#about .about-hero{padding-top:48px}
#news .ph,#research .ph,#framework .ph,#reflections .ph,#contact .ph{display:none!important}

.framework-clean-intro{
  background:
    radial-gradient(circle at 12% 0%, rgba(140,63,42,.08), transparent 32%),
    linear-gradient(180deg,rgba(247,241,232,.96),rgba(242,235,223,.98))!important;
}
.framework-clean-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(320px,.58fr);
  gap:44px;
  align-items:start;
}
.framework-lede{
  font-family:var(--df);
  font-style:italic;
  font-size:clamp(20px,2.1vw,30px);
  line-height:1.35;
  color:var(--mu);
  margin-top:16px;
  max-width:760px;
}
.framework-keyline{
  margin-top:26px;
  padding:22px 24px;
  background:var(--dk);
  color:var(--bg);
  font-family:var(--df);
  font-style:italic;
  font-weight:600;
  font-size:clamp(22px,2.5vw,36px);
  line-height:1.16;
  box-shadow:0 16px 36px rgba(28,23,20,.10);
}
.framework-side-note{
  margin-top:48px;
  border:1px solid rgba(28,23,20,.10);
  background:rgba(255,255,255,.36);
  padding:24px;
  box-shadow:0 14px 34px rgba(28,23,20,.06);
}
.framework-side-note h3{
  font-family:var(--df);
  font-style:italic;
  font-size:28px;
  line-height:1;
  margin-bottom:14px;
}
.framework-side-note ul{display:grid;gap:10px;list-style:none}
.framework-side-note li{
  display:grid;
  grid-template-columns:14px 1fr;
  gap:10px;
  color:var(--mu);
  font-size:14px;
  line-height:1.62;
}
.framework-side-note li::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--te);
  margin-top:8px;
}
.framework-explainer{
  margin:0;
}
.framework-explainer img{
  width:100%;
  display:block;
  border:1px solid rgba(28,23,20,.10);
  box-shadow:0 18px 46px rgba(28,23,20,.08);
  background:#F7F1E8;
}
.framework-explainer figcaption{
  margin-top:14px;
  color:var(--li);
  font-family:var(--df);
  font-style:italic;
  font-size:16px;
  line-height:1.45;
  max-width:820px;
}
.axis-clean-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.axis-clean-card{
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,.34);
  border:1px solid rgba(28,23,20,.10);
  padding:26px 24px;
  box-shadow:0 14px 34px rgba(28,23,20,.055);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.axis-clean-card::before{
  content:"";
  position:absolute;
  left:0;top:0;width:100%;height:4px;
  background:linear-gradient(90deg,var(--te),rgba(196,101,74,.20));
}
.axis-clean-card:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 42px rgba(28,23,20,.08);
  border-color:rgba(140,63,42,.28);
}
.axis-clean-number{
  display:block;
  font-family:var(--df);
  font-style:italic;
  font-size:46px;
  line-height:1;
  color:var(--te);
  opacity:.72;
  margin-bottom:8px;
}
.axis-clean-card h3{
  font-family:var(--df);
  font-style:italic;
  font-size:27px;
  line-height:1;
  margin-bottom:10px;
}
.axis-clean-card p{
  color:var(--mu);
  font-size:14px;
  line-height:1.68;
}
.framework-steps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:28px;
}
.framework-step{
  position:relative;
  border:1px solid rgba(28,23,20,.10);
  background:rgba(245,240,232,.48);
  padding:22px;
}
.framework-step strong{
  display:block;
  color:var(--te);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.framework-step h3{
  font-family:var(--df);
  font-style:italic;
  font-size:23px;
  line-height:1.05;
  margin-bottom:8px;
}
.framework-step p{
  color:var(--mu);
  font-size:13px;
  line-height:1.65;
}
@media(max-width:900px){
  .framework-clean-grid,.axis-clean-grid,.framework-steps{grid-template-columns:1fr}
}


/* v29 dynamic hero highlights + footer alignment */
.hero-dynamic{
  margin-top:28px;
  max-width:560px;
  border:1px solid rgba(28,23,20,.12);
  background:
    radial-gradient(circle at 92% 12%,rgba(74,116,103,.10),transparent 34%),
    rgba(255,255,255,.36);
  box-shadow:0 16px 38px rgba(28,23,20,.065);
  padding:18px 20px 18px;
  position:relative;
  overflow:hidden;
}
.hero-dynamic::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg,var(--te),rgba(196,101,74,.22));
}
.hero-dynamic::after{
  content:"";
  position:absolute;
  right:-46px;
  bottom:-48px;
  width:124px;
  height:124px;
  border:1px solid rgba(74,116,103,.16);
  transform:rotate(12deg);
  pointer-events:none;
}
.hero-dynamic-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
  position:relative;
  z-index:1;
}
.hero-dynamic-label{
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--te);
}
.hero-dots{
  display:flex;
  gap:6px;
  align-items:center;
}
.hero-dot{
  width:8px;
  height:8px;
  border-radius:999px;
  border:1px solid rgba(140,63,42,.45);
  background:transparent;
  padding:0;
  cursor:pointer;
  transition:background .25s ease,transform .25s ease,width .25s ease;
}
.hero-dot.on{
  width:18px;
  background:var(--te);
  transform:none;
}
.hero-slide{
  display:none;
  position:relative;
  z-index:1;
}
.hero-slide.on{
  display:block;
  animation:heroSlideIn .45s ease both;
}
@keyframes heroSlideIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:none}
}
.hero-slide-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--sg);
  background:rgba(228,239,237,.72);
  padding:4px 8px;
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.hero-slide-title{
  font-family:var(--df);
  font-style:italic;
  font-weight:600;
  font-size:clamp(20px,2.1vw,27px);
  line-height:1.05;
  color:var(--tx);
  margin-bottom:6px;
}
.hero-slide-text{
  font-size:13px;
  line-height:1.65;
  color:var(--mu);
  max-width:490px;
}
.hero-slide-action{
  margin-top:12px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  font-weight:700;
  color:var(--te);
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
  font-family:var(--sf);
}
.hero-slide-action:hover{
  color:var(--tl);
  text-decoration:underline;
  text-underline-offset:3px;
}
.site-footer .footer-column{
  padding-top:0!important;
}
.site-footer .footer-top{
  align-items:start!important;
}
.site-footer .footer-title{
  margin-top:0!important;
}
@media (max-width:860px){
  .hero-dynamic{
    max-width:100%;
    margin-top:22px;
    padding:16px;
  }
  .hero-slide-title{font-size:23px}
}


/* v31 proportional banners + IOH fine-tune */
.visual-page-header img{
  height:clamp(96px,9vw,145px)!important;
  object-fit:cover!important;
  object-position:center center!important;
}
.visual-page-header .banner-copy{
  padding-top:12px!important;
  padding-bottom:14px!important;
}
@media(max-width:860px){
  .visual-page-header img{height:132px!important}
  .visual-page-header .banner-copy{padding-top:10px!important;padding-bottom:12px!important}
}
@media(max-width:480px){
  .visual-page-header img{height:112px!important}
}
.framework-clean-intro .framework-side-note{
  margin-top:56px!important;
}
.framework-clean-intro .framework-lede{
  max-width:720px!important;
}
.framework-clean-intro .st{
  max-width:820px;
}
.framework-explainer img{
  max-height:680px;
  object-fit:contain;
}
@media(max-width:900px){
  .framework-clean-intro .framework-side-note{margin-top:18px!important}
  .framework-explainer img{max-height:none}
}


/* v32 refinement: smaller banners, faster highlights, first-person About, IOH cleanup */
.visual-page-header img{
  height:clamp(70px,6.2vw,108px)!important;
  object-fit:cover!important;
  object-position:center center!important;
}
.visual-page-header .banner-copy{
  padding-top:8px!important;
  padding-bottom:10px!important;
}
.visual-page-header .banner-copy .sx{
  font-size:12.5px!important;
}
@media(max-width:860px){
  .visual-page-header img{height:104px!important}
}
@media(max-width:480px){
  .visual-page-header img{height:88px!important}
}
#cms-about-paragraphs .bt{
  font-size:15px!important;
  line-height:1.82!important;
}
#cms-about-paragraphs .bt:first-of-type{
  font-size:15.8px!important;
  line-height:1.76!important;
}
.about-lede{
  font-size:clamp(18px,1.7vw,24px)!important;
}
.framework-clean-intro .framework-side-note{
  margin-top:60px!important;
}
.framework-clean-intro .framework-lede{
  max-width:760px!important;
}
.framework-explainer img{
  max-height:620px!important;
  object-fit:contain!important;
}
@media(max-width:900px){
  .framework-clean-intro .framework-side-note{margin-top:18px!important}
  .framework-explainer img{max-height:none!important}
}


/* v33 final visual QA: spacing, typography, responsive polish */
:root{
  --qa-card-shadow:0 14px 34px rgba(28,23,20,.055);
  --qa-card-shadow-hover:0 20px 44px rgba(28,23,20,.085);
}
body{
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.bt,.sx,.about-caption,.footer-affiliation-lines,.hero-slide-text{
  text-wrap:pretty;
}
.visual-page-header{
  box-shadow:inset 0 -1px 0 rgba(28,23,20,.05);
}
.visual-page-header img{
  height:clamp(68px,5.8vw,104px)!important;
}
.visual-page-header .banner-copy{
  padding-top:8px!important;
  padding-bottom:10px!important;
}
.visual-page-header .banner-copy .ey{
  margin-bottom:7px!important;
}
.visual-page-header .banner-copy .sbd{
  margin-bottom:8px!important;
}
.visual-page-header .banner-copy .sx{
  margin-top:5px!important;
  font-size:12px!important;
  line-height:1.55!important;
}
.sc{
  padding-top:64px;
  padding-bottom:64px;
}
#about .about-hero{
  padding-top:42px!important;
}
.about-title{
  font-size:clamp(36px,4.2vw,60px)!important;
}
.about-lede{
  font-size:clamp(18px,1.55vw,23px)!important;
  line-height:1.42!important;
}
#cms-about-paragraphs{
  max-width:68ch!important;
}
#cms-about-paragraphs .bt,
#cms-about-paragraphs .bt:first-of-type{
  font-size:15px!important;
  line-height:1.82!important;
  color:var(--mu)!important;
  margin-bottom:15px!important;
}
.about-panel-wide{
  margin-top:8px!important;
}
.hero-dynamic{
  margin-top:24px!important;
}
.hero-slide-title{
  font-size:clamp(19px,1.75vw,25px)!important;
}
.hero-slide-text{
  font-size:12.8px!important;
  line-height:1.62!important;
}
.featured-news{
  margin-bottom:22px!important;
}
.featured-news h2{
  font-size:clamp(22px,2.05vw,32px)!important;
}
.news-card,
.paper-card,
.proj-card,
.about-item,
.pc,
.cd,
.framework-step,
.axis-clean-card{
  box-shadow:none;
}
.news-card:hover,
.paper-card:hover,
.proj-card:hover,
.about-item:hover,
.pc:hover,
.cd:hover,
.framework-step:hover,
.axis-clean-card:hover{
  box-shadow:var(--qa-card-shadow-hover)!important;
}
#projects .project-masthead{
  display:block!important;
  padding-top:34px!important;
  padding-bottom:42px!important;
  background:
    radial-gradient(circle at 85% 15%, rgba(74,116,103,.08), transparent 30%),
    linear-gradient(180deg,rgba(247,241,232,.92),rgba(237,231,217,.96))!important;
}
.project-hero-copy .ptl{
  font-size:clamp(30px,3.7vw,52px)!important;
}
.project-hero-photo img{
  height:clamp(260px,24vw,340px)!important;
}
.project-list-section{
  padding-top:52px!important;
}
.framework-clean-intro{
  padding-top:58px!important;
}
.framework-clean-grid{
  align-items:start!important;
}
.framework-clean-intro .framework-side-note{
  margin-top:44px!important;
}
.framework-lede{
  font-size:clamp(18px,1.55vw,24px)!important;
  line-height:1.52!important;
}
.framework-explainer img{
  max-height:560px!important;
  object-fit:contain!important;
}
.framework-explainer figcaption{
  font-size:14px!important;
  max-width:900px!important;
}
.framework-steps{
  gap:14px!important;
}
.framework-step{
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.framework-step:hover{
  transform:translateY(-2px);
  border-color:rgba(140,63,42,.24);
}
.site-footer .footer-column{
  padding-top:0!important;
}
.site-footer .footer-top{
  align-items:start!important;
}
.site-footer .footer-title{
  margin-top:0!important;
}
@media(max-width:900px){
  .visual-page-header img{height:96px!important}
  .sc{padding-top:48px!important;padding-bottom:48px!important}
  #projects .project-masthead{padding-top:28px!important}
  .project-hero-photo img{height:260px!important}
  .framework-clean-intro .framework-side-note{margin-top:16px!important}
  .framework-explainer img{max-height:none!important}
}
@media(max-width:480px){
  .visual-page-header img{height:80px!important}
  .hero-slide-title{font-size:21px!important}
  .hero-dynamic{padding:15px!important}
}


/* v35 IOH Framework diagram: HTML/CSS, no static image */
.framework-map-section{
  background:
    radial-gradient(circle at 12% 0%, rgba(74,116,103,.08), transparent 32%),
    linear-gradient(180deg,rgba(237,231,217,.96),rgba(245,240,232,.98))!important;
}
.ioh-map{
  margin-top:30px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr);
  gap:16px;
  align-items:stretch;
}
.ioh-node{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(28,23,20,.11);
  background:rgba(255,252,246,.54);
  padding:24px 22px 22px;
  min-height:255px;
  box-shadow:0 16px 36px rgba(28,23,20,.055);
}
.ioh-node::before{
  content:"";
  position:absolute;
  left:0;top:0;
  width:100%;height:4px;
  background:linear-gradient(90deg,var(--te),rgba(196,101,74,.24));
}
.ioh-node:nth-of-type(3)::before{
  background:linear-gradient(90deg,var(--sg),rgba(74,116,103,.24));
}
.ioh-step{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;height:42px;
  border-radius:999px;
  background:var(--sb);
  color:var(--sg);
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  margin-bottom:14px;
}
.ioh-node h3{
  font-family:var(--df);
  font-style:italic;
  font-size:clamp(23px,2vw,31px);
  line-height:1;
  color:var(--tx);
  margin-bottom:10px;
}
.ioh-node p{
  color:var(--mu);
  font-size:13.5px;
  line-height:1.68;
}
.ioh-chips{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:16px;
}
.ioh-chips span{
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(74,116,103,.20);
  background:rgba(228,239,237,.62);
  color:var(--sg);
  padding:5px 8px;
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.ioh-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--te);
  font-size:28px;
  font-family:var(--df);
  opacity:.78;
}
.ioh-question{
  margin-top:22px;
  border-left:3px solid var(--te);
  padding:16px 20px;
  background:rgba(255,252,246,.42);
  color:var(--mu);
  font-family:var(--df);
  font-style:italic;
  font-size:clamp(19px,1.8vw,26px);
  line-height:1.32;
  max-width:900px;
}
@media(max-width:960px){
  .ioh-map{
    grid-template-columns:1fr;
  }
  .ioh-node{min-height:auto}
  .ioh-arrow{
    transform:rotate(90deg);
    min-height:28px;
  }
}


/* v35 dark-mode resilience: preserve the intentional light palette */
:root,html,body{color-scheme:only light!important}
html,body{background:#F5F0E8!important;color:#1C1714!important}
img[src*="it-monogram"],.logo img[src*="it-monogram"]{
  background:#F8F3EA!important;
  border:1px solid rgba(28,23,20,.12)!important;
  border-radius:8px!important;
  padding:3px!important;
  box-shadow:0 5px 14px rgba(28,23,20,.08)!important;
  filter:none!important;
  opacity:1!important;
  mix-blend-mode:normal!important;
}
.logo img[src*="it-monogram"]{height:34px!important}
.hero .hc>div:first-child{
  display:inline-flex!important;
  background:#F8F3EA!important;
  border:1px solid rgba(28,23,20,.12)!important;
  border-radius:10px!important;
  padding:8px 10px!important;
  box-shadow:0 8px 20px rgba(28,23,20,.08)!important;
}
.hero .hc>div:first-child img[src*="it-monogram"],
.footer-logo-card img[src*="it-monogram"]{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  box-shadow:none!important;
}
.footer-logo-card{
  background:#F8F3EA!important;
  border:1px solid rgba(237,231,217,.32)!important;
}
input,textarea,select,button{color-scheme:only light!important}
@media(prefers-color-scheme:dark){
  :root,html,body{color-scheme:only light!important;background:#F5F0E8!important;color:#1C1714!important}
  nav{background:rgba(248,243,234,.96)!important;color:#1C1714!important}
  .pg,.sc,.hero,.about-hero,.visual-page-header,.ph{color:#1C1714!important}
  .st,.ptl,.hn,.about-title,.about-lede,h1,h2,h3,.proj-title,.nc-title,.nd-title,.ptit{color:#1C1714!important}
  .bt,.sx,.hg,.about-caption,.nc-venue,.pau,.proj-meta{color:#5C4F3D!important}
  .quote-band,.site-footer{background:#1C1714!important;color:rgba(237,231,217,.78)!important}
  .quote-band-text{color:#F5F0E8!important}
  .site-footer .footer-title{color:rgba(237,231,217,.48)!important}
  .site-footer .fl,.site-footer .footer-bottom,.site-footer .footer-affiliation-lines{color:rgba(237,231,217,.68)!important}
  .site-footer .fl:hover{color:#F5F0E8!important}
}


/* v39: visible editorial continuity + sage accents */
html{scroll-behavior:smooth}
body{
  position:relative;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 88% 10%, rgba(110,130,120,.065), transparent 26%),
    radial-gradient(circle at 10% 10%, rgba(196,101,74,.055), transparent 22%),
    linear-gradient(180deg,#FBF7F0 0%,#F5F0E8 34%,#F7F2EA 100%)!important;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(90deg, rgba(28,23,20,.034) 0 1px, transparent 1px 136px),
    repeating-linear-gradient(180deg, rgba(28,23,20,.016) 0 1px, transparent 1px 176px);
  opacity:.22;
}
nav, .pg, footer, .site-footer{position:relative;z-index:1}
nav{
  position:sticky!important;
  top:0;
  z-index:999!important;
  background:rgba(248,243,234,.96)!important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-top:4px solid rgba(110,130,120,.42)!important;
  border-bottom:1px solid rgba(28,23,20,.11)!important;
  box-shadow:0 10px 26px rgba(28,23,20,.07)!important;
}
nav::before{
  content:"";
  position:absolute;
  inset:0;
  background:url('/images/nav-ornament.jpg') right -150px center / 560px auto no-repeat;
  opacity:.08;
  pointer-events:none;
}
nav .nb{color:#4F473D!important}
nav .nb.on,nav .nb:hover{color:var(--te)!important;border-bottom-color:var(--te)!important}
nav .lb, nav .accessibility-toggle{background:rgba(248,243,234,.84)!important;border:1px solid rgba(28,23,20,.12)!important}
.pg{background:transparent!important}
.sc,.s2,.about-hero,.project-masthead,.framework-clean-intro,.framework-map-section,.ph{background:transparent!important}
.visual-page-header{
  position:relative;
  background:linear-gradient(180deg,rgba(248,243,234,.96),rgba(245,239,229,.86))!important;
  border-bottom:1px solid rgba(28,23,20,.08)!important;
  overflow:hidden;
}
.visual-page-header::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:repeating-linear-gradient(90deg, rgba(28,23,20,.024) 0 1px, transparent 1px 136px);
  opacity:.65;
}
.visual-page-header::after{
  content:"";
  position:absolute;
  right:-60px;
  top:-10px;
  width:min(700px,55vw);
  height:100%;
  background:url('/images/nav-ornament.jpg') right center / cover no-repeat;
  opacity:.16;
  pointer-events:none;
  mix-blend-mode:multiply;
}
.visual-page-header img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:clamp(126px,15vw,188px)!important;
  object-fit:cover;
  object-position:center center;
  opacity:.98;
}
.visual-page-header + section,
.visual-page-header + .sc,
.visual-page-header + .about-hero,
.visual-page-header + .ph,
.visual-page-header + .project-masthead{
  position:relative;
}
.visual-page-header + section::before,
.visual-page-header + .sc::before,
.visual-page-header + .about-hero::before,
.visual-page-header + .ph::before,
.visual-page-header + .project-masthead::before{
  content:"";
  position:absolute;
  right:clamp(12px,5vw,90px);
  top:-18px;
  width:min(320px,34vw);
  height:110px;
  background:url('/images/nav-ornament.jpg') right top / cover no-repeat;
  opacity:.11;
  pointer-events:none;
  mix-blend-mode:multiply;
}
.ct{position:relative}
.sc>.ct::after,.s2>.ct::after,.about-hero>.ct::after,.framework-clean-intro .ct::after,.framework-map-section .ct::after,.project-masthead>.ct::after,.ph>.ct::after{
  content:"";
  position:absolute;
  inset:auto 0 auto auto;
  top:0;
  width:100%;
  height:0;
  border-top:1px solid rgba(110,130,120,.16);
}
.featured-news,.proj-card,.paper-card,.pc,.about-item,.fw-box,.news-card,.project-hero-photo,.hp{
  background:rgba(255,252,247,.72)!important;
  border-color:rgba(28,23,20,.11)!important;
  box-shadow:none!important;
}
.featured-news::before,.proj-card::after,.pc::after{background:linear-gradient(90deg, rgba(140,63,42,.95), rgba(110,130,120,.65))!important}
.type-conf,.featured-news-date,.sbd-sg{background:rgba(110,130,120,.12)!important;color:#587066!important}
.filter-bar .fb.on,.filter-bar .fb:hover,.hero-slide-action:hover{background:var(--te)!important;color:#F5F0E8!important;border-color:var(--te)!important}
.hero-slide{background:rgba(255,252,247,.58)!important;border:1px solid rgba(28,23,20,.08)!important;box-shadow:none!important}
.hero-slide-kicker{color:#587066!important}
.hero-rail{background:linear-gradient(180deg, rgba(248,243,234,.18), rgba(255,255,255,.08))!important}
.hero-dot{border-color:rgba(110,130,120,.32)!important}
.hero-dot.on{background:#587066!important;border-color:#587066!important}
.about-kicker,.sx,.featured-news-kicker{color:#587066!important}
.hp::before,.hp::after,.project-hero-photo::before,.project-hero-photo::after{display:none!important}
.framework-visual-card,.framework-overview .fw-box{box-shadow:none!important}
.ioh-map-wrap{box-shadow:none!important;border:1px solid rgba(28,23,20,.11)!important;background:rgba(255,252,247,.75)!important}
.site-footer,footer{position:relative;z-index:1}
@media(max-width:900px){
  body::before{background:repeating-linear-gradient(90deg, rgba(28,23,20,.028) 0 1px, transparent 1px 92px)}
  .visual-page-header img{height:118px!important}
  .visual-page-header::after{right:-110px;width:78vw;opacity:.14}
  .visual-page-header + section::before,
  .visual-page-header + .sc::before,
  .visual-page-header + .about-hero::before,
  .visual-page-header + .ph::before,
  .visual-page-header + .project-masthead::before{width:52vw;height:82px;top:-8px;right:0;opacity:.08}
}
@media(max-width:540px){
  nav{border-top-width:3px!important}
  .visual-page-header img{height:104px!important}
  .visual-page-header::after{opacity:.11}
}


/* v40: final visual refinement — sage depth, editorial cards, refined continuity */
:root{
  --sage-deep:#587066;
  --sage-mid:#8EA096;
  --sage-soft:rgba(110,130,120,.14);
  --paper:#FBF7F0;
  --paper-card:rgba(255,252,247,.82);
}
body{
  background:
    radial-gradient(circle at 88% 8%, rgba(110,130,120,.105), transparent 30%),
    radial-gradient(circle at 8% 12%, rgba(196,101,74,.060), transparent 26%),
    linear-gradient(180deg,#FBF7F0 0%,#F3EADC 42%,#F7F2EA 100%)!important;
}
body::before{
  background:
    repeating-linear-gradient(90deg, rgba(110,130,120,.070) 0 1px, transparent 1px 128px),
    repeating-linear-gradient(180deg, rgba(28,23,20,.016) 0 1px, transparent 1px 180px)!important;
  opacity:.34!important;
}
nav{
  background:
    linear-gradient(90deg,rgba(238,230,215,.985),rgba(248,243,234,.965))!important;
  border-top:4px solid rgba(88,112,102,.58)!important;
  border-bottom:1px solid rgba(28,23,20,.16)!important;
  box-shadow:0 12px 30px rgba(28,23,20,.085)!important;
}
nav::before{opacity:.065!important}
nav .nb{color:#463E34!important}
nav .nb.on,nav .nb:hover{color:var(--te)!important}
.site-tools .accessibility-toggle,
.site-tools .lb{
  background:rgba(251,247,240,.92)!important;
  border-color:rgba(28,23,20,.15)!important;
}
.visual-page-header{
  background:
    radial-gradient(circle at 83% 48%,rgba(110,130,120,.10),transparent 28%),
    linear-gradient(180deg,rgba(251,247,240,.98),rgba(242,235,223,.84))!important;
}
.visual-page-header img{
  height:clamp(132px,15vw,198px)!important;
  opacity:.97!important;
  filter:saturate(.98) contrast(1.0) brightness(1.01)!important;
}
.visual-page-header::after{
  opacity:.18!important;
}
.pg::before{
  background:
    radial-gradient(circle at 86% 16%, rgba(110,130,120,.070), transparent 28%),
    radial-gradient(circle at 12% 42%, rgba(196,101,74,.038), transparent 22%)!important;
}
.sc>.ct::before,
.s2>.ct::before,
.about-hero>.ct::before,
.project-list-section>.ct::before,
.framework-clean-intro>.ct::before,
.framework-map-section>.ct::before{
  content:"";
  position:absolute;
  left:48px;
  right:48px;
  top:0;
  border-top:1px solid rgba(110,130,120,.16);
  pointer-events:none;
}
.cd,.pc,.featured-news,.paper-card,.proj-card,.about-item,.framework-step,.axis-clean-card,.ioh-node,.contact-link,.book-row{
  background:var(--paper-card)!important;
  border-color:rgba(28,23,20,.12)!important;
}
.cd,.pc,.featured-news,.proj-card,.about-item,.framework-step,.axis-clean-card,.ioh-node{
  box-shadow:0 10px 28px rgba(28,23,20,.045)!important;
}
.cd:hover,.pc:hover,.featured-news:hover,.proj-card:hover,.about-item:hover,.framework-step:hover,.axis-clean-card:hover,.ioh-node:hover{
  box-shadow:0 16px 36px rgba(28,23,20,.075)!important;
  border-color:rgba(88,112,102,.34)!important;
}
.cd::after,.pc::after,.proj-card::after,.about-item::after{
  background:linear-gradient(90deg,var(--te),var(--sage-deep))!important;
}
.cd .ci,.chip-icon,.hero-slide-kicker,.about-kicker,.ey,.featured-news-kicker{
  color:var(--sage-deep)!important;
}
.cr,.dv{
  background:linear-gradient(90deg,var(--te),var(--sage-deep))!important;
}
.sbd,.featured-news-date,.type-conf{
  background:rgba(110,130,120,.15)!important;
  color:var(--sage-deep)!important;
}
.featured-news{
  grid-template-columns:minmax(0,1fr) auto!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 96% 18%, rgba(110,130,120,.18), transparent 34%),
    linear-gradient(135deg,rgba(255,252,247,.94),rgba(232,239,237,.62))!important;
}
.featured-news::after{
  content:"";
  position:absolute;
  right:-48px;
  bottom:-64px;
  width:260px;
  height:170px;
  background:url('/images/nav-ornament.jpg') right bottom/cover no-repeat;
  opacity:.12;
  pointer-events:none;
  mix-blend-mode:multiply;
}
.featured-news h2{
  max-width:900px;
}
.news-card::before{
  border-color:var(--sage-deep)!important;
}
.news-card:hover::before{
  background:var(--sage-deep)!important;
}
.hero-dynamic{
  border-color:rgba(88,112,102,.22)!important;
  background:
    radial-gradient(circle at 98% 8%,rgba(110,130,120,.15),transparent 34%),
    rgba(255,252,247,.70)!important;
}
.hero-dynamic::before{
  background:linear-gradient(90deg,var(--te),var(--sage-deep))!important;
}
.hero-dot.on{
  background:var(--sage-deep)!important;
  border-color:var(--sage-deep)!important;
}
.hero-slide{
  background:transparent!important;
  border:none!important;
}
.hero-slide-title{
  color:#1C1714!important;
}
.hp,.project-hero-photo,.about-photo{
  box-shadow:0 10px 26px rgba(28,23,20,.055)!important;
  border-color:rgba(28,23,20,.12)!important;
}
.hp::before,.hp::after,.project-hero-photo::before,.project-hero-photo::after{display:none!important}
.quote-band{
  background:
    radial-gradient(circle at 92% 20%,rgba(110,130,120,.16),transparent 28%),
    linear-gradient(135deg,#1C1714 0%,#2A221E 100%)!important;
}
.quote-band::after{
  border-color:rgba(110,130,120,.18)!important;
}
.ioh-node::before{
  background:linear-gradient(90deg,var(--te),var(--sage-deep))!important;
}
.ioh-question{
  border-left-color:var(--sage-deep)!important;
}
.site-footer .footer-column{padding-top:0!important}
.site-footer .footer-title{text-align:left!important}
.site-footer .footer-link-grid{justify-items:start!important;text-align:left!important}
@media(max-width:900px){
  body::before{
    background:
      repeating-linear-gradient(90deg, rgba(110,130,120,.052) 0 1px, transparent 1px 96px)!important;
    opacity:.28!important;
  }
  .visual-page-header img{height:122px!important}
  .featured-news{grid-template-columns:1fr!important}
  .hp,.project-hero-photo,.about-photo{box-shadow:none!important}
  .sc>.ct::before,
  .s2>.ct::before,
  .about-hero>.ct::before,
  .project-list-section>.ct::before,
  .framework-clean-intro>.ct::before,
  .framework-map-section>.ct::before{
    left:20px;right:20px;
  }
}
@media(max-width:520px){
  .visual-page-header img{height:108px!important}
  .featured-news{padding:20px!important}
  .hero-dynamic{padding:16px!important}
}


/* v41 repair: harmonized headers, complete ornament, cleaner continuity */
body{
  background:
    radial-gradient(circle at 88% 8%, rgba(110,130,120,.075), transparent 30%),
    radial-gradient(circle at 9% 10%, rgba(196,101,74,.045), transparent 26%),
    linear-gradient(180deg,#FBF7F0 0%,#F4EDE2 46%,#F7F2EA 100%)!important;
}
body::before{
  background:
    repeating-linear-gradient(90deg, rgba(110,130,120,.052) 0 1px, transparent 1px 132px),
    repeating-linear-gradient(180deg, rgba(28,23,20,.012) 0 1px, transparent 1px 176px)!important;
  opacity:.30!important;
}
nav{
  background:rgba(246,240,230,.985)!important;
  border-top:4px solid rgba(88,112,102,.48)!important;
  border-bottom:1px solid rgba(28,23,20,.14)!important;
  box-shadow:0 10px 24px rgba(28,23,20,.07)!important;
}
nav::before{opacity:.045!important}
.visual-page-header{
  min-height:clamp(120px,12vw,164px)!important;
  display:flex!important;
  align-items:center!important;
  background:
    linear-gradient(180deg,rgba(251,247,240,.98),rgba(243,236,225,.88))!important;
  overflow:hidden!important;
}
.visual-page-header > img{
  display:none!important;
}
.visual-page-header::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(90deg, rgba(110,130,120,.052) 0 1px, transparent 1px 132px),
    linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0));
  opacity:.55;
}
.visual-page-header::after{
  content:"";
  position:absolute;
  right:clamp(12px,7vw,118px);
  top:50%;
  transform:translateY(-50%);
  width:min(460px,38vw);
  height:clamp(92px,10vw,136px);
  background:url('/images/banner-ornament-complete.jpg') center/contain no-repeat;
  opacity:.64;
  mix-blend-mode:multiply;
  pointer-events:none;
}
.v41-header-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,0.42fr);
  align-items:center;
  min-height:inherit;
  padding-top:18px!important;
  padding-bottom:18px!important;
}
.v41-title{
  font-family:var(--df);
  font-style:italic;
  font-weight:600;
  font-size:clamp(34px,4.1vw,58px);
  line-height:.98;
  color:var(--tx);
  margin:0;
  letter-spacing:-.012em;
}
.v41-rule{
  width:78px;
  height:2px;
  background:linear-gradient(90deg,var(--te),var(--sg));
  margin:12px 0 0 4px;
}
.v41-subtitle{
  margin-top:12px;
  max-width:780px;
  color:#587066!important;
  font-size:13px!important;
  line-height:1.55!important;
}
.v41-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.v41-meta .ey{margin:0;color:var(--te)!important}
.v41-meta .sbd{margin:0!important}
.visual-page-header + .sc,
.visual-page-header + .about-hero,
.visual-page-header + .ph,
.visual-page-header + .project-masthead{
  position:relative;
}
.visual-page-header + .sc::before,
.visual-page-header + .about-hero::before,
.visual-page-header + .ph::before,
.visual-page-header + .project-masthead::before{
  content:"";
  position:absolute;
  right:clamp(18px,7vw,118px);
  top:-38px;
  width:min(360px,34vw);
  height:84px;
  background:url('/images/banner-ornament-complete.jpg') center top/contain no-repeat;
  opacity:.075;
  pointer-events:none;
  mix-blend-mode:multiply;
}
.sc>.ct::before,
.s2>.ct::before,
.about-hero>.ct::before,
.project-list-section>.ct::before,
.framework-clean-intro>.ct::before,
.framework-map-section>.ct::before{
  border-top:1px solid rgba(110,130,120,.12)!important;
}
.featured-news,
.cd,.pc,.paper-card,.proj-card,.about-item,.framework-step,.axis-clean-card,.ioh-node,.contact-link{
  background:rgba(255,252,247,.76)!important;
  border-color:rgba(28,23,20,.10)!important;
  box-shadow:none!important;
}
.featured-news{
  background:
    radial-gradient(circle at 92% 16%, rgba(110,130,120,.12), transparent 32%),
    rgba(255,252,247,.80)!important;
}
.featured-news::after{opacity:.07!important}
.cd:hover,.pc:hover,.featured-news:hover,.proj-card:hover,.about-item:hover,.framework-step:hover,.axis-clean-card:hover,.ioh-node:hover{
  box-shadow:0 10px 26px rgba(28,23,20,.055)!important;
  border-color:rgba(88,112,102,.30)!important;
}
.hero-dynamic{
  background:rgba(255,252,247,.70)!important;
  border-color:rgba(88,112,102,.18)!important;
  box-shadow:0 8px 22px rgba(28,23,20,.045)!important;
}
.hero-slide{
  border:0!important;
  background:transparent!important;
}
.hero-slide-title{
  font-size:clamp(19px,1.65vw,24px)!important;
  line-height:1.08!important;
}
.hero-slide-text{font-size:12.8px!important}
.hp,.project-hero-photo,.about-photo{
  box-shadow:0 8px 22px rgba(28,23,20,.05)!important;
}
.hp::before,.hp::after,.project-hero-photo::before,.project-hero-photo::after{display:none!important}
@media(max-width:900px){
  .visual-page-header{
    min-height:112px!important;
  }
  .visual-page-header::after{
    right:-34px;
    width:230px;
    height:92px;
    opacity:.34;
  }
  .v41-header-inner{
    grid-template-columns:1fr;
    padding-top:16px!important;
    padding-bottom:16px!important;
  }
  .v41-title{font-size:clamp(30px,9vw,44px)}
  .v41-subtitle{font-size:12px!important;margin-top:8px}
  .visual-page-header + .sc::before,
  .visual-page-header + .about-hero::before,
  .visual-page-header + .ph::before,
  .visual-page-header + .project-masthead::before{
    width:220px;
    height:66px;
    right:-36px;
    top:-24px;
    opacity:.055;
  }
}
@media(max-width:520px){
  .visual-page-header{min-height:96px!important}
  .visual-page-header::after{width:190px;height:76px;opacity:.28}
}


/* v42 repair: left page headings, natural list surfaces, visible core premise */
.visual-page-header{
  min-height:clamp(106px,10vw,146px)!important;
}
.visual-page-header .ct.v41-header-inner{
  max-width:1100px!important;
  margin:0 auto!important;
  padding-left:48px!important;
  padding-right:48px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(180px,.30fr)!important;
  justify-items:start!important;
  align-items:center!important;
  width:100%!important;
}
.v41-header-inner>div:first-child{
  justify-self:start!important;
  text-align:left!important;
  max-width:760px!important;
}
.v41-title{
  text-align:left!important;
  font-size:clamp(32px,3.85vw,54px)!important;
}
.v41-rule{
  margin-left:0!important;
}
.v41-subtitle{
  text-align:left!important;
  margin-left:0!important;
}
.visual-page-header::after{
  right:clamp(24px,7vw,130px)!important;
  width:min(360px,30vw)!important;
  height:clamp(78px,8vw,112px)!important;
  opacity:.42!important;
}
.visual-page-header + .sc::before,
.visual-page-header + .about-hero::before,
.visual-page-header + .ph::before,
.visual-page-header + .project-masthead::before{
  opacity:.045!important;
}
.hero{
  min-height:min(760px,100vh)!important;
  padding-top:94px!important;
  padding-bottom:64px!important;
}
.hero-inner{
  align-items:center!important;
}
.hero-premise{
  margin-top:18px;
  max-width:560px;
  padding:16px 18px 17px;
  border-left:3px solid var(--te);
  background:
    linear-gradient(90deg,rgba(140,63,42,.075),rgba(110,130,120,.055)),
    rgba(245,240,232,.42);
  color:var(--tx);
  font-family:var(--df);
  font-style:italic;
  font-size:clamp(17px,1.55vw,22px);
  line-height:1.32;
}
.hero-premise span{
  display:block;
  font-family:var(--sf);
  font-style:normal;
  font-size:9.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--sg);
  margin-bottom:8px;
  font-weight:700;
}
.hero-dynamic{
  margin-top:18px!important;
}
.news-list-inner{
  position:relative!important;
}
.news-card{
  background:rgba(237,231,217,.34)!important;
  border:1px solid rgba(28,23,20,.075)!important;
  border-left:0!important;
  border-right:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  margin-bottom:0!important;
  padding-top:19px!important;
  padding-bottom:19px!important;
  transition:background .24s ease,border-color .24s ease,transform .24s ease!important;
}
.news-card:first-child{
  border-top:1px solid rgba(28,23,20,.09)!important;
}
.news-card:hover{
  background:linear-gradient(90deg,rgba(140,63,42,.055),rgba(237,231,217,.22))!important;
  border-color:rgba(140,63,42,.22)!important;
  transform:none!important;
}
.news-card:hover .nc-title{
  color:var(--te)!important;
}
.news-card:hover::before{
  background:var(--te)!important;
  border-color:var(--te)!important;
  transform:scale(1.14)!important;
}
.paper-card{
  background:transparent!important;
  box-shadow:none!important;
}
.paper-card:hover{
  background:rgba(140,63,42,.035)!important;
}
.paper-card:hover .ptit{
  color:var(--te)!important;
}
.featured-news{
  background:
    radial-gradient(circle at 92% 16%, rgba(110,130,120,.10), transparent 34%),
    linear-gradient(90deg,rgba(247,241,232,.80),rgba(237,231,217,.48))!important;
  box-shadow:none!important;
}
.featured-news:hover{
  background:
    radial-gradient(circle at 92% 16%, rgba(110,130,120,.12), transparent 34%),
    linear-gradient(90deg,rgba(140,63,42,.052),rgba(237,231,217,.52))!important;
  box-shadow:0 10px 28px rgba(28,23,20,.045)!important;
}
@media(max-width:900px){
  .visual-page-header{
    min-height:102px!important;
  }
  .visual-page-header .ct.v41-header-inner{
    padding-left:20px!important;
    padding-right:20px!important;
    grid-template-columns:1fr!important;
  }
  .v41-title{
    font-size:clamp(30px,8.6vw,42px)!important;
  }
  .visual-page-header::after{
    right:-46px!important;
    width:210px!important;
    height:82px!important;
    opacity:.26!important;
  }
  .hero{
    min-height:auto!important;
    padding-top:70px!important;
    padding-bottom:44px!important;
  }
  .hero-premise{
    font-size:18px;
    margin-top:16px;
  }
}


/* v45 refined visual layer: warmth, depth, micro-interactions (sand / terracotta / sage) */
:root{
  --paper:#FBF8F2;
  --bd-warm:rgba(124,96,64,.16);
  --te-deep:#73301F;
  --sg-deep:#3C6256;
  --shadow-sm:0 1px 2px rgba(60,42,28,.04),0 2px 8px rgba(60,42,28,.05);
  --shadow-md:0 8px 26px -10px rgba(115,48,31,.20),0 2px 6px rgba(60,42,28,.06);
}
html,body{
  background:
    radial-gradient(1100px 560px at 80% -10%, rgba(196,101,74,.07), transparent 60%),
    radial-gradient(820px 460px at -8% 10%, rgba(74,116,103,.07), transparent 55%),
    var(--bg)!important;
  background-attachment:fixed!important;
}
/* warmer hairlines + paper fill on cards */
.pc,.cd,.featured-news,.paper-card,.proj-card,.about-item,.framework-step,.axis-clean-card,.ioh-node,.contact-link,.book-row,.news-card,.ai,.fw-box{
  border-color:var(--bd-warm)!important;
}
.pc,.cd,.featured-news,.proj-card,.about-item,.framework-step,.axis-clean-card,.ioh-node{
  background:var(--paper)!important;
  box-shadow:var(--shadow-sm)!important;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s!important;
}
.pc:hover,.cd:hover,.featured-news:hover,.proj-card:hover,.about-item:hover,.framework-step:hover,.axis-clean-card:hover,.ioh-node:hover{
  transform:translateY(-3px)!important;
  box-shadow:var(--shadow-md)!important;
  border-color:rgba(140,63,42,.30)!important;
}
/* navbar: subtle glass */
nav{
  background:rgba(245,240,232,.82)!important;
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--bd-warm)!important;
}
.nb{position:relative}
.nb::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--te);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nb:hover::after,.nb.on::after{transform:scaleX(1)}
.nb:hover,.nb.on{border-bottom-color:transparent!important}
/* buttons: refined terracotta + lift */
.bp{border-radius:2px;box-shadow:0 1px 2px rgba(115,48,31,.18);transition:background .25s,box-shadow .25s,transform .25s}
.bp:hover{background:var(--te-deep)!important;box-shadow:var(--shadow-md);transform:translateY(-1px)}
.bo{border-radius:2px;transition:border-color .25s,color .25s,background .25s,transform .25s}
.bo:hover{background:rgba(140,63,42,.05)!important;transform:translateY(-1px)}
/* divider as a short terracotta->transparent rule */
.dv{height:2px!important;width:54px!important;background:linear-gradient(90deg,var(--te),rgba(140,63,42,0))!important}
/* hero highlight card */
.hero-slide{border-radius:4px!important;box-shadow:var(--shadow-sm)!important}
.hero-slide-action{border-radius:2px;transition:background .25s,color .25s,border-color .25s,transform .2s}
.hero-slide-action:hover{transform:translateX(2px)}
.hero-dot{transition:background .25s,transform .25s}
.hero-dot.on{transform:scale(1.25)}
/* sage as secondary accent rhythm */
.sbd-sg,.al,.type-conf{color:var(--sg-deep)!important}
/* link affordance */
.tl:hover{color:var(--tl)!important}
/* accessible focus ring */
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--te);outline-offset:2px;border-radius:2px}
/* footer: top hairline blending both accents + a little more air */
footer{position:relative;padding-top:56px!important}
footer::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--te),var(--sg))}
.fl{transition:color .25s}
.fl:hover{color:#F5F0E8!important}


/* v47 mobile menu fix + refined new-article banner */
@media(max-width:900px){
  nav{
    overflow:visible!important;
    z-index:10000!important;
  }
  nav::before{
    pointer-events:none!important;
  }
  nav .hamburger,
  .hamburger{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    position:relative!important;
    z-index:10002!important;
    pointer-events:auto!important;
    width:40px!important;
    height:40px!important;
    border:1px solid rgba(28,23,20,.10)!important;
    background:rgba(248,243,234,.72)!important;
    border-radius:2px!important;
  }
  nav .nav-links{
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:60px!important;
    z-index:10001!important;
    display:none!important;
    flex-direction:column!important;
    gap:0!important;
    width:100%!important;
    max-height:calc(100vh - 60px)!important;
    overflow-y:auto!important;
    padding:10px 20px 18px!important;
    background:rgba(248,243,234,.985)!important;
    border-top:1px solid rgba(28,23,20,.08)!important;
    border-bottom:1px solid rgba(28,23,20,.14)!important;
    box-shadow:0 18px 36px rgba(28,23,20,.12)!important;
    backdrop-filter:blur(12px)!important;
    -webkit-backdrop-filter:blur(12px)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-8px)!important;
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease!important;
  }
  nav.menu-open .nav-links,
  nav .nav-links.open,
  .nav-links.open{
    display:flex!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateY(0)!important;
  }
  nav .nav-links .nb{
    display:block!important;
    width:100%!important;
    min-height:46px!important;
    padding:14px 0!important;
    text-align:left!important;
    font-size:15px!important;
    border-bottom:1px solid rgba(28,23,20,.07)!important;
  }
  nav .nav-links .nb:last-child{
    border-bottom:0!important;
  }
  body.mobile-menu-open{
    overflow:hidden!important;
  }
}
@media(max-width:420px){
  nav .nav-links{
    top:58px!important;
    max-height:calc(100vh - 58px)!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
}
.featured-news{
  background:
    radial-gradient(circle at 96% 10%, rgba(74,116,103,.10), transparent 34%),
    linear-gradient(135deg,rgba(245,240,232,.84),rgba(228,239,237,.46))!important;
  border:1px solid rgba(74,116,103,.20)!important;
  box-shadow:0 10px 24px rgba(28,23,20,.045)!important;
}
.featured-news::before{
  background:linear-gradient(90deg,var(--te),var(--sg))!important;
}
.featured-news::after{
  content:"";
  position:absolute;
  right:-40px;
  bottom:-58px;
  width:260px;
  height:170px;
  background:url('/images/nav-ornament.jpg') right bottom/cover no-repeat;
  opacity:.10;
  pointer-events:none;
  mix-blend-mode:multiply;
}
.featured-news-kicker{
  color:var(--sg)!important;
}
.featured-news h2{
  font-size:clamp(22px,2.1vw,32px)!important;
  max-width:760px!important;
}
.featured-news p{
  max-width:860px!important;
}
.featured-news-date{
  background:rgba(74,116,103,.12)!important;
  color:var(--sg)!important;
}
@media(max-width:900px){
  .featured-news{
    padding:20px!important;
  }
  .featured-news::after{
    opacity:.055;
  }
}

