:root{
  --paper:#EEECE3;
  --paper-raised:#F5F3EC;
  --ink:#17191A;
  --ink-soft:#4A4C46;
  --line:#B9B2A0;
  --line-faint:#D9D4C6;
  --navy:#2E3B52;
  --rust:#7A3B23;
  --green:#46614A;
  --font-display:'IBM Plex Serif', Georgia, serif;
  --font-body:'IBM Plex Sans', -apple-system, sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.55;
  font-size:16px;
  background-image:
    repeating-linear-gradient(0deg, transparent, transparent 39px, rgba(23,25,26,0.035) 40px),
    repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(23,25,26,0.035) 40px);
}
a{color:inherit;}
::selection{background:var(--navy); color:var(--paper);}
img{max-width:100%; display:block;}

/* ---- Header ---- */
.site-header{
  position:sticky; top:0; z-index:60; background:var(--paper);
  border-bottom:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 44px;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink);}
.brand img{height:60px; width:auto;}
.brand span{font-family:var(--font-mono); font-size:15px; letter-spacing:0.14em; text-transform:uppercase;}
.header-right{display:flex; align-items:center; gap:22px;}
.lang-switch{display:flex; gap:2px; font-family:var(--font-mono); font-size:11.5px; letter-spacing:0.04em;}
.lang-switch a{
  text-decoration:none; color:var(--ink-soft); padding:5px 8px; border:1px solid var(--line);
}
.lang-switch a.active{color:var(--ink); border-color:var(--ink); font-weight:600;}
.lang-switch a:hover{color:var(--ink); border-color:var(--ink);}
.header-cta-wrap{display:flex; flex-direction:column; align-items:center; gap:4px;}
.header-cta-note{font-family:var(--font-mono); font-size:10px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.04em;}
.header-cta{padding:10px 18px; font-size:12px; white-space:nowrap;}
.main-nav{display:flex; gap:26px; list-style:none; margin:0; padding:0;}
.main-nav a{
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:0.05em; text-transform:uppercase;
  text-decoration:none; color:var(--ink-soft); padding:6px 2px; border-bottom:2px solid transparent;
  transition:color .15s, border-color .15s;
}
.main-nav a:hover, .main-nav a.active{color:var(--ink); border-color:var(--rust);}
.nav-toggle{display:none; background:none; border:1px solid var(--ink); font-family:var(--font-mono); font-size:12px; padding:8px 12px; cursor:pointer;}

/* ---- Layout shell ---- */
main{max-width:960px; margin:0 auto; padding:0 44px 100px;}
section{padding-top:88px; scroll-margin-top:20px;}
.sec-label{
  font-family:var(--font-mono); font-size:12px; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--rust); margin:0 0 10px;
}
h1,h2,h3{font-family:var(--font-display); font-weight:500; margin:0;}
h2{font-size:1.9rem; margin-bottom:22px; letter-spacing:-0.01em;}
p{margin:0 0 16px;}
.lede{font-size:1.08rem; color:var(--ink-soft); max-width:640px;}

/* ---- Hero / advisory-first opener ---- */
#hero{padding-top:56px;}
.eyebrow{
  font-family:var(--font-mono); font-size:13px; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--ink-soft); margin-bottom:16px;
}
#hero h1{font-size:2.7rem; line-height:1.12; letter-spacing:-0.015em; max-width:780px;}
#hero .lede{margin-top:20px; font-size:1.1rem; max-width:700px;}
.hero-head{display:flex; align-items:flex-start; gap:28px;}
.hero-head h1{flex:1;}
.hero-illustration{width:118px; height:auto; flex-shrink:0; margin-top:6px;}
.cta-row{display:flex; gap:14px; margin-top:28px; flex-wrap:wrap;}
.btn{
  font-family:var(--font-mono); font-size:13px; letter-spacing:0.04em;
  text-transform:uppercase; text-decoration:none; padding:13px 22px;
  border:1px solid var(--ink); color:var(--ink); display:inline-block; background:none;
  cursor:pointer; transition:background .15s, color .15s;
}
.btn.primary{background:var(--ink); color:var(--paper);}
.btn.primary:hover{background:var(--navy); border-color:var(--navy);}
.btn:not(.primary):hover{background:var(--ink); color:var(--paper);}
.btn.disabled{opacity:0.45; cursor:not-allowed; pointer-events:none;}

/* ---- Docket strip ---- */
.docket{
  margin-top:40px; border-top:1px dashed var(--line); border-bottom:1px dashed var(--line);
  padding:20px 0; font-family:var(--font-mono); font-size:13px;
  display:flex; flex-wrap:wrap; gap:26px 40px; color:var(--ink-soft);
}
.docket .item{display:flex; flex-direction:column; gap:4px;}
.docket .k{text-transform:uppercase; letter-spacing:0.08em; font-size:10.5px; color:var(--ink-soft);}
.docket .v{color:var(--ink); font-size:13px;}
.status-dot{
  display:inline-block; width:8px; height:8px; border-radius:50%;
  background:var(--green); margin-right:7px; position:relative; top:-1px;
  animation:pulse 2.4s infinite;
}
.docket-highlights{border-top:none; margin-top:0; padding-top:4px;}
.highlights-label{
  font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--rust); width:100%; margin-bottom:10px;
}
.highlight-entry{display:flex; gap:14px; align-items:baseline; width:100%; margin-bottom:8px;}
.highlight-entry .date{font-family:var(--font-mono); font-size:11.5px; color:var(--ink-soft); white-space:nowrap;}
.highlight-entry .body{font-size:13.5px; color:var(--ink);}
.highlight-entry .body .detail{color:var(--ink-soft); font-size:12.5px; display:block; margin-top:2px;}
.insights-inline{margin-top:28px; padding-top:22px; border-top:1px dashed var(--line);}
.insights-inline .pub-row{padding:14px 0;}
.insights-links{display:flex; gap:12px; margin-top:14px; flex-wrap:wrap;}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(70,97,74,0.45);}
  70%{box-shadow:0 0 0 6px rgba(70,97,74,0);}
  100%{box-shadow:0 0 0 0 rgba(70,97,74,0);}
}

/* ---- Advisory columns ---- */
.advisory-grid{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); margin-top:8px;}
.advisory-col{padding:26px 28px;}
.advisory-col:first-child{border-right:1px solid var(--line);}
.advisory-col .col-label{
  font-family:var(--font-mono); font-size:12px; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--rust); margin-bottom:14px;
}
.advisory-col h3{font-size:1.15rem; margin-bottom:14px;}
.advisory-col ul{margin:0; padding-left:18px; color:var(--ink-soft); font-size:14.5px;}
.advisory-col li{margin-bottom:11px;}

/* ---- Record grid ---- */
.record-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px;}
.record-cell{background:var(--paper-raised); padding:20px 22px;}
.record-cell .k{font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--rust); margin-bottom:8px; display:block;}
.record-cell .v{font-size:15px;}
.record-cell .sub{font-family:var(--font-mono); font-size:12.5px; color:var(--ink-soft); margin-top:6px;}

/* ---- Publications list ---- */
.pub-group-title{
  font-family:var(--font-mono); font-size:12px; text-transform:uppercase; letter-spacing:0.1em;
  color:var(--navy); margin:36px 0 4px; padding-top:20px; border-top:1px solid var(--line-faint);
}
.pub-group-title:first-of-type{border-top:none; margin-top:0;}
.pub-row{
  display:grid; grid-template-columns:56px 1fr auto; gap:18px; padding:20px 0; align-items:start;
  border-bottom:1px solid var(--line-faint); text-decoration:none; color:var(--ink);
}
.pub-row .tag{font-family:var(--font-mono); font-size:13px; color:var(--ink-soft); padding-top:3px;}
.pub-row h3{font-size:1.06rem; font-weight:600; line-height:1.35;}
.pub-row .blurb{color:var(--ink-soft); font-size:14.5px; margin:8px 0 0;}
.pub-row .arrow{font-family:var(--font-mono); font-size:13px; color:var(--navy); padding-top:5px; white-space:nowrap;}
.pub-row:hover h3{color:var(--rust);}
.pub-row:hover .arrow{color:var(--rust);}

/* ---- Project teaser cards ---- */
.project-teaser{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); margin-top:8px;}
.project-teaser a{padding:26px 28px; text-decoration:none; color:var(--ink);}
.project-teaser a:first-child{border-right:1px solid var(--line);}
.project-teaser .col-label{
  font-family:var(--font-mono); font-size:12px; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--rust); margin-bottom:12px;
}
.project-teaser h3{font-size:1.1rem; margin-bottom:10px;}
.project-teaser p{color:var(--ink-soft); font-size:14.5px; margin-bottom:0;}
.project-teaser a:hover h3{color:var(--rust);}

/* ---- Profile ---- */
.facts{list-style:none; margin:26px 0 0; padding:0; font-size:14.5px;}
.facts li{padding:12px 0; border-bottom:1px solid var(--line-faint); display:grid; grid-template-columns:180px 1fr; gap:16px;}
.facts .k{font-family:var(--font-mono); font-size:12px; text-transform:uppercase; color:var(--ink-soft); letter-spacing:0.05em;}

/* ---- Contact ---- */
.contact-block{display:flex; flex-wrap:wrap; gap:14px; margin-top:26px;}
.contact-block a{
  font-family:var(--font-mono); font-size:13.5px; text-decoration:none;
  border:1px solid var(--ink); padding:12px 20px; display:inline-block;
}
.contact-block a:hover{background:var(--ink); color:var(--paper);}
.contact-block a.pending{border-style:dashed; color:var(--ink-soft); pointer-events:none;}
.contact-note{margin-top:20px; color:var(--ink-soft); font-size:14px;}

/* ---- Slide viewer (paper pages) ---- */
.slide-viewer{border:1px solid var(--line); margin-top:32px; background:var(--paper-raised);}
.slide-stage{min-height:320px; padding:44px 48px; display:flex; flex-direction:column; justify-content:center;}
.slide-stage .slide-num{font-family:var(--font-mono); font-size:12px; color:var(--rust); letter-spacing:0.1em; text-transform:uppercase; margin-bottom:14px;}
.slide-stage h3{font-size:1.4rem; margin-bottom:16px; max-width:640px;}
.slide-stage .slide-body{color:var(--ink-soft); font-size:15px; max-width:640px;}
.slide-controls{
  display:flex; align-items:center; justify-content:space-between;
  border-top:1px solid var(--line); padding:14px 24px;
}
.slide-dots{display:flex; gap:8px;}
.slide-dots button{
  width:9px; height:9px; border-radius:50%; border:1px solid var(--ink-soft);
  background:none; padding:0; cursor:pointer;
}
.slide-dots button.active{background:var(--rust); border-color:var(--rust);}
.slide-arrows{display:flex; gap:10px;}
.slide-arrows button{
  font-family:var(--font-mono); font-size:12px; text-transform:uppercase;
  border:1px solid var(--ink); background:none; padding:8px 16px; cursor:pointer;
}
.slide-arrows button:hover{background:var(--ink); color:var(--paper);}
.slide-arrows button:disabled{opacity:0.3; cursor:default; pointer-events:none;}
.slide-stage.pending{align-items:flex-start;}
.slide-stage.pending .slide-body{font-style:italic;}

.paper-actions{display:flex; gap:14px; margin-top:28px; flex-wrap:wrap;}
.paper-meta{font-family:var(--font-mono); font-size:12.5px; color:var(--ink-soft); margin-top:10px;}

/* ---- Placeholder / pending state ---- */
.pending-card{
  border:1px dashed var(--line); padding:22px 24px; color:var(--ink-soft);
  font-family:var(--font-mono); font-size:13px; text-align:center;
}

footer{
  max-width:960px; margin:0 auto; padding:36px 44px 60px;
  border-top:1px solid var(--line); font-size:12.5px; color:var(--ink-soft); font-family:var(--font-mono);
}
.footer-brand{display:flex; align-items:center; gap:12px; margin-bottom:20px;}
.footer-brand img{height:36px; width:auto;}
.footer-brand span{font-size:14px; letter-spacing:0.14em; text-transform:uppercase; color:var(--ink);}
footer p{color:var(--ink-soft); margin-bottom:8px;}
footer a{color:var(--navy); text-decoration:none; border-bottom:1px solid var(--navy);}

@media (max-width:860px){
  .site-header{padding:14px 20px;}
  .main-nav{
    position:fixed; top:64px; left:0; right:0; background:var(--paper);
    border-bottom:1px solid var(--line); flex-direction:column; gap:0;
    padding:8px 20px; display:none;
  }
  .main-nav.open{display:flex;}
  .main-nav a{padding:12px 0; border-bottom:1px solid var(--line-faint); border-left:none;}
  .nav-toggle{display:block;}
  .header-right{gap:12px;}
  .header-cta{padding:9px 12px; font-size:11px;}
  .header-cta-note{display:none;}
  main, footer{padding-left:20px; padding-right:20px;}
  #hero h1{font-size:2rem;}
  .hero-head{flex-direction:column;}
  .hero-illustration{width:80px; margin-top:0; margin-bottom:6px;}
  .record-grid, .advisory-grid, .project-teaser{grid-template-columns:1fr;}
  .advisory-col:first-child, .project-teaser a:first-child{border-right:none; border-bottom:1px solid var(--line);}
  .facts li{grid-template-columns:1fr; gap:4px;}
  .pub-row{grid-template-columns:40px 1fr; }
  .pub-row .arrow{display:none;}
  .slide-stage{padding:28px 22px; min-height:260px;}
}
@media (prefers-reduced-motion:reduce){
  .status-dot{animation:none;}
  html{scroll-behavior:auto;}
}

/* ---- CTA accent (distinct from the ink/navy/rust system, used only for conversion buttons) ---- */
:root{
  --cta:#C98A1E;
  --cta-hover:#A66F16;
  --cta-ink:#1B1300;
}
.btn.cta{
  background:var(--cta); border-color:var(--cta); color:var(--cta-ink);
  font-weight:600; padding:15px 28px; font-size:14px;
}
.btn.cta:hover{background:var(--cta-hover); border-color:var(--cta-hover); color:var(--cta-ink);}

/* ---- Plan strip (StoryBrand 3-step plan) ---- */
.plan-strip{display:flex; gap:0; margin-top:36px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.plan-step{flex:1; padding:20px 22px; border-right:1px solid var(--line);}
.plan-step:last-child{border-right:none;}
.plan-step .num{font-family:var(--font-mono); font-size:11px; color:var(--rust); letter-spacing:0.08em; margin-bottom:8px; display:block;}
.plan-step .label{font-family:var(--font-body); font-weight:600; font-size:14.5px; margin-bottom:4px;}
.plan-step .desc{font-size:13px; color:var(--ink-soft);}

/* ---- Contact modal ---- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(23,25,26,0.6);
  display:none; align-items:center; justify-content:center; z-index:200; padding:20px;
}
.modal-overlay.open{display:flex;}
.modal-box{
  background:var(--paper); border:1px solid var(--line); max-width:460px; width:100%;
  padding:34px 32px; position:relative; max-height:90vh; overflow-y:auto;
}
.modal-close{
  position:absolute; top:14px; right:16px; background:none; border:none;
  font-family:var(--font-mono); font-size:22px; line-height:1; cursor:pointer; color:var(--ink-soft);
}
.modal-close:hover{color:var(--ink);}
.modal-box h3{font-size:1.35rem; margin-bottom:8px;}
.modal-sub{color:var(--ink-soft); font-size:14px; margin-bottom:24px;}
.modal-label{
  font-family:var(--font-mono); font-size:11px; text-transform:uppercase;
  letter-spacing:0.08em; color:var(--rust); margin-bottom:12px;
}
.modal-form input, .modal-form textarea{
  width:100%; font-family:var(--font-body); font-size:14px; border:1px solid var(--line);
  background:var(--paper-raised); padding:11px 13px; margin-bottom:10px;
}
.modal-form textarea{min-height:90px; resize:vertical;}
.modal-form button{width:100%;}
.mailto-fallback{font-size:12.5px; color:var(--ink-soft); margin-top:10px; text-align:center;}
.mailto-fallback a{color:var(--navy); text-decoration:underline;}
.modal-divider{
  text-align:center; font-family:var(--font-mono); font-size:11px; text-transform:uppercase;
  color:var(--ink-soft); margin:26px 0; letter-spacing:0.08em;
}
.instant-row{display:flex; gap:10px; flex-wrap:wrap;}
.instant-row a{flex:1; text-align:center; min-width:130px;}
.email-copy{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  border:1px solid var(--line); padding:11px 14px; font-family:var(--font-mono);
  font-size:13px; margin-top:22px;
}
.email-copy button{
  border:none; background:none; font-family:var(--font-mono); font-size:12px;
  text-decoration:underline; cursor:pointer; color:var(--navy); padding:0;
}
.form-status{font-size:13px; margin-top:10px; display:none;}
.form-status.success{color:var(--green); display:block;}
.form-status.error{color:var(--cta-hover); display:block;}

@media (max-width:860px){
  .plan-strip{flex-direction:column;}
  .plan-step{border-right:none; border-bottom:1px solid var(--line);}
  .plan-step:last-child{border-bottom:none;}
  .instant-row{flex-direction:column;}
}
