
:root{
 --ink:#242321;--muted:#66635f;--accent:#9c563f;--soft:#f6f5f2;--line:#dedbd5;
 --max:1180px;--serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
 --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:#fff;color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto} a{color:inherit;text-decoration:none} a:hover{color:var(--accent)}
.wrap{width:min(calc(100% - 3rem),var(--max));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;background:#222;color:#fff;padding:.75rem 1rem;z-index:99}.skip-link:focus{left:1rem;top:1rem}
.site-header{border-bottom:1px solid var(--line);background:#fff}.header-inner{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.brand{display:inline-flex;align-items:baseline;gap:.28rem;font:1.55rem/1 var(--serif)}.brand-bar{color:var(--accent)}
.desktop-nav{display:flex;gap:clamp(1rem,2.2vw,2rem)}.desktop-nav a{font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.mobile-nav{display:none}.mobile-nav summary{list-style:none;cursor:pointer;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.mobile-nav summary::-webkit-details-marker{display:none}
.mobile-nav-panel{position:absolute;inset:86px 0 auto 0;z-index:10;background:#fff;border-bottom:1px solid var(--line);padding:1rem 1.5rem;display:grid;gap:.4rem}.mobile-nav-panel a{padding:.6rem 0}
.hero{padding:clamp(4rem,8vw,7rem) 0 clamp(3.5rem,6vw,6rem)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(3rem,7vw,7rem);align-items:center}
.eyebrow,.section-kicker,.project-meta{color:var(--accent);font-size:.76rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;margin-top:0} h1{font-size:clamp(3.2rem,6.5vw,6.5rem);letter-spacing:-.035em;margin-bottom:1rem}
.hero-copy{max-width:43rem;color:var(--muted);font-size:clamp(1.02rem,1.3vw,1.16rem);margin:0 0 2rem}.hero-figure{margin:0;justify-self:end;width:min(100%,430px)}.hero-figure img{width:100%;filter:grayscale(100%)}.hero-figure figcaption{color:var(--muted);font-size:.73rem;margin-top:.7rem;text-align:right}
.text-link{display:inline-flex;gap:.55rem;align-items:center;color:var(--accent);font-size:.8rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.text-link:after{content:"→";font-size:1.05rem}
.section{padding:clamp(4rem,7vw,6.5rem) 0}.section+.section{border-top:1px solid var(--line)}.section-soft{background:var(--soft)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:clamp(2rem,4vw,3.2rem)}.section-title{font-size:clamp(2rem,3.8vw,3.4rem);margin:0}.section-intro{color:var(--muted);max-width:40rem}
.entry-grid{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}.entry-card{padding:2rem 1.65rem 2.2rem 0;min-height:230px;display:flex;flex-direction:column}.entry-card+.entry-card{border-left:1px solid var(--line);padding-left:1.65rem}
.entry-number{color:var(--accent);font:1rem var(--serif);margin-bottom:2rem}.entry-card h3{font-size:1.65rem;margin-bottom:.8rem}.entry-card p{color:var(--muted);font-size:.94rem;margin:0 0 1.4rem}.entry-card .text-link{margin-top:auto}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.project-card{background:#fff;padding:2rem;min-height:220px;display:flex;flex-direction:column}.project-card h3{font-size:1.55rem;margin:.4rem 0 .75rem}.project-card p{color:var(--muted);font-size:.94rem}.project-card .text-link{margin-top:auto}
.publication-list{border-top:1px solid var(--line)}.pub-row{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:1.5rem;align-items:baseline;padding:1.35rem 0;border-bottom:1px solid var(--line)}.pub-year{color:var(--accent);font:1.2rem var(--serif)}.pub-title{font:1.12rem var(--serif)}.pub-details{display:block;color:var(--muted);font-size:.88rem;margin-top:.25rem}.pub-arrow{color:var(--accent)}
.site-footer{background:#f1f0ed;border-top:1px solid var(--line);padding:3.5rem 0 2rem}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(2,1fr);gap:3rem}.footer-brand{font:1.4rem var(--serif)}.footer-copy{color:var(--muted);font-size:.9rem;max-width:27rem}.footer-title{font-size:.72rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase;margin-bottom:.85rem}.footer-links{display:grid;gap:.45rem;font-size:.9rem}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1.25rem;color:var(--muted);font-size:.78rem}
.page-hero{padding:5rem 0 3rem}.page-hero h1{font-size:clamp(2.8rem,5vw,5rem)}.placeholder{min-height:40vh;padding:1rem 0 6rem;color:var(--muted)}
@media(max-width:950px){.desktop-nav{display:none}.mobile-nav{display:block}.hero-grid{grid-template-columns:1fr 320px;gap:3rem}.entry-grid{grid-template-columns:repeat(2,1fr)}.entry-card:nth-child(3){border-left:0;border-top:1px solid var(--line)}.entry-card:nth-child(4){border-top:1px solid var(--line)}.project-grid{grid-template-columns:1fr}.project-card{min-height:0}}
@media(max-width:720px){.wrap{width:min(calc(100% - 2rem),var(--max))}.header-inner{min-height:72px}.mobile-nav-panel{inset:72px 0 auto 0}.hero{padding-top:3.5rem}.hero-grid{grid-template-columns:1fr;gap:2.7rem}.hero-figure{justify-self:center;width:min(82vw,370px)}.hero-figure figcaption{text-align:left}.section-head{display:block}.entry-grid{grid-template-columns:1fr}.entry-card,.entry-card+.entry-card{min-height:0;padding:1.6rem 0;border-left:0;border-top:1px solid var(--line)}.entry-card:first-child{border-top:0}.entry-number{margin-bottom:1rem}.pub-row{grid-template-columns:62px minmax(0,1fr) auto;gap:.8rem}.footer-grid{grid-template-columns:1fr;gap:2rem}.footer-bottom{display:block}}
@media(max-width:390px){h1{font-size:3rem}.pub-row{grid-template-columns:1fr auto}.pub-year{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


/* --- Validated hero-to-next-section spacing --- */
@media (max-width:720px){
  .hero{padding-bottom:1.25rem}
  .hero + .section{padding-top:1.75rem}
}
@media (min-width:721px) and (max-width:1200px){
  .hero{padding-bottom:1.75rem}
  .hero + .section{padding-top:2.25rem}
}
@media (min-width:1201px){
  .hero{padding-bottom:2rem}
  .hero + .section{padding-top:2.5rem}
}

/* --- Research page --- */
.nav-active{color:var(--accent)}
.research-hero{padding:clamp(4rem,7vw,6.5rem) 0 clamp(2.5rem,5vw,4.5rem)}
.research-hero h1{font-size:clamp(3.4rem,7vw,6.7rem);margin-bottom:1.1rem}
.research-lede{max-width:760px;color:var(--muted);font:clamp(1.1rem,1.8vw,1.45rem)/1.55 var(--serif);margin:0}
.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,3vw,2.5rem)}
.theme-card{min-width:0}
.theme-image{aspect-ratio:4/3;background:#f5f4f1;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;margin-bottom:1.35rem}
.theme-image img{width:100%;height:100%;object-fit:contain}
.theme-card h2{font-size:clamp(1.6rem,2.3vw,2.15rem);margin-bottom:.75rem}
.theme-card p{color:var(--muted);font-size:.95rem;margin:0 0 1rem}
.theme-caption{display:block;color:#85817c;font-size:.72rem;line-height:1.4;margin-top:.55rem}
.question-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.question{background:#fff;padding:1.7rem 1.8rem;font:1.15rem/1.42 var(--serif)}
.question strong{display:block;color:var(--accent);font:700 .72rem/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;margin-bottom:.8rem}
.research-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.research-project{border-top:2px solid var(--accent);padding:1.3rem 1.25rem 1.5rem;background:#fff}
.research-project h3{font-size:1.4rem;margin:.35rem 0 .65rem}
.research-project p{color:var(--muted);font-size:.92rem;margin:0}
.research-publications .pub-row{grid-template-columns:105px minmax(0,1fr) auto}
@media(max-width:950px){
  .theme-grid{grid-template-columns:1fr}
  .theme-image{aspect-ratio:16/10;max-height:460px}
  .question-strip,.research-projects{grid-template-columns:1fr}
}
@media(max-width:720px){
  .research-hero{padding:3.2rem 0 2.2rem}
  .research-hero h1{font-size:3.3rem}
  .theme-image{aspect-ratio:4/3}
  .research-publications .pub-row{grid-template-columns:1fr auto}
  .research-publications .pub-year{grid-column:1/-1}
}


/* --- V3: Research images must always remain fully visible --- */
.theme-image{
  aspect-ratio:auto;
  min-height:360px;
  height:clamp(360px,34vw,470px);
  padding:1rem;
  overflow:visible;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f5f4f1;
}
.theme-image img{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
}
@media(max-width:950px){
  .theme-image{
    aspect-ratio:auto;
    height:440px;
    max-height:none;
    padding:1rem;
  }
}
@media(max-width:720px){
  .theme-image{
    height:auto;
    min-height:0;
    padding:.75rem;
  }
  .theme-image img{
    width:100%;
    height:auto;
    max-height:none;
  }
}


/* --- V4: user-normalised Research image proportions --- */
.theme-image{
  height:auto;
  min-height:0;
  aspect-ratio:auto;
  padding:0;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  display:block;
}
.theme-image img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:none;
  object-fit:contain;
  object-position:center;
}
@media(max-width:950px){
  .theme-image{height:auto;max-height:none;padding:0}
}
@media(max-width:720px){
  .theme-image{height:auto;min-height:0;padding:0}
  .theme-image img{width:100%;height:auto;max-height:none}
}


/* --- V5: all three Research images use the user's matching 1308 × 1203 framing --- */
.theme-image{
  aspect-ratio:1308 / 1203;
  width:100%;
  height:auto;
  padding:0;
  overflow:hidden;
  background:#fff;
}
.theme-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
@media(max-width:950px){
  .theme-image{aspect-ratio:1308 / 1203;height:auto}
}
@media(max-width:720px){
  .theme-image{aspect-ratio:1308 / 1203;height:auto}
}


/* --- V6: remove visible frames around Research images --- */
.theme-image{
  border:0;
  background:transparent;
}


/* --- V7: iPad portrait compromise — keep the 3 Research choices visible together --- */
@media (min-width:721px) and (max-width:950px){
  .theme-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1rem;
    align-items:start;
  }

  .theme-card{min-width:0}

  .theme-image{
    aspect-ratio:1308 / 1203;
    width:100%;
    height:auto;
    min-height:0;
    padding:0;
    overflow:hidden;
    background:transparent;
  }

  .theme-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }

  .theme-card h2{
    font-size:1.28rem;
    line-height:1.12;
    margin-bottom:.55rem;
  }

  .theme-card p{
    font-size:.84rem;
    line-height:1.45;
    margin-bottom:.8rem;
  }

  .theme-card .text-link{
    font-size:.68rem;
    letter-spacing:.06em;
  }

  .theme-caption{display:none}
}


/* --- V8: Publications page --- */
.publications-hero{
  padding:clamp(4rem,7vw,6.5rem) 0 clamp(2.5rem,4vw,4rem);
}
.publications-hero h1{
  font-size:clamp(3.4rem,7vw,6.7rem);
  margin-bottom:1.1rem;
}
.publications-lede{
  max-width:760px;
  color:var(--muted);
  font:clamp(1.1rem,1.8vw,1.45rem)/1.55 var(--serif);
  margin:0;
}
.publications-tools{
  margin-top:2rem;
  display:flex;
  flex-wrap:wrap;
  gap:1rem 1.5rem;
  align-items:center;
}
.book-feature{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.book-cover{
  width:100%;
  max-width:220px;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.book-copy h2{
  font-size:clamp(2rem,3.3vw,3rem);
  margin-bottom:.7rem;
}
.book-meta{
  color:var(--accent);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:1.2rem;
}
.book-copy p{
  max-width:700px;
  color:var(--muted);
}
.book-stats{
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem 2.5rem;
  margin-top:1.6rem;
  padding-top:1.25rem;
  border-top:1px solid var(--line);
}
.book-stat strong{
  display:block;
  font:1.35rem var(--serif);
  color:var(--ink);
}
.book-stat span{
  color:var(--muted);
  font-size:.78rem;
}
.bib-section{
  padding:clamp(3.5rem,6vw,5.5rem) 0;
}
.bib-section + .bib-section{
  border-top:1px solid var(--line);
}
.bib-heading{
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  gap:2rem;
  margin-bottom:1rem;
}
.bib-heading h2{
  font-size:clamp(2rem,3vw,2.8rem);
  margin:0;
}
.bib-heading p{
  color:var(--muted);
  max-width:680px;
  margin:.2rem 0 0;
}
.bib-list{
  border-top:1px solid var(--line);
}
.bib-item{
  display:grid;
  grid-template-columns:95px minmax(0,1fr);
  gap:1.5rem;
  padding:1.35rem 0;
  border-bottom:1px solid var(--line);
}
.bib-year{
  color:var(--accent);
  font:1.1rem var(--serif);
  white-space:nowrap;
}
.bib-citation{
  font-family:var(--serif);
  font-size:1.03rem;
  line-height:1.55;
}
.bib-citation em{
  font-style:italic;
}
.bib-note{
  display:block;
  margin-top:.35rem;
  color:var(--muted);
  font: .8rem/1.45 var(--sans);
}
.bib-tag{
  display:inline-block;
  margin-right:.55rem;
  color:var(--accent);
  font:700 .68rem/1 var(--sans);
  letter-spacing:.07em;
  text-transform:uppercase;
}
.archive-block{
  margin-top:1.75rem;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.archive-block summary{
  cursor:pointer;
  padding:1.1rem 0;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:1rem;
  font:1rem var(--sans);
  font-weight:700;
}
.archive-block summary::-webkit-details-marker{display:none}
.archive-block summary:after{
  content:"+";
  color:var(--accent);
  font:1.4rem/1 var(--serif);
}
.archive-block[open] summary:after{content:"–"}
.archive-block .bib-list{
  border-top:1px solid var(--line);
}
.review-list .bib-citation{
  font-size:.98rem;
}
.publications-note{
  background:var(--soft);
  padding:1.2rem 1.35rem;
  color:var(--muted);
  font-size:.88rem;
  border-left:2px solid var(--accent);
}
@media(max-width:800px){
  .book-feature{
    grid-template-columns:150px minmax(0,1fr);
    gap:2rem;
  }
  .bib-heading{
    grid-template-columns:1fr;
    gap:.5rem;
  }
}
@media(max-width:600px){
  .publications-hero{
    padding:3.2rem 0 2.2rem;
  }
  .publications-hero h1{
    font-size:3.3rem;
  }
  .book-feature{
    grid-template-columns:1fr;
  }
  .book-cover{
    max-width:145px;
  }
  .book-stats{
    gap:1rem 2rem;
  }
  .bib-item{
    grid-template-columns:1fr;
    gap:.3rem;
    padding:1.2rem 0;
  }
  .bib-year{
    font-size:.9rem;
    font-family:var(--sans);
    font-weight:700;
    letter-spacing:.04em;
  }
}


/* --- V9: scholarly reception of the CUP monograph --- */
.review-quotes{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.review-quote{
  background:#fff;
  padding:1.75rem 1.8rem 1.9rem;
  display:flex;
  flex-direction:column;
  min-height:300px;
}
.review-featured{
  grid-column:1/-1;
  min-height:0;
  background:var(--soft);
}
.review-source{
  color:var(--accent);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.04em;
  margin-bottom:1rem;
}
.review-quote blockquote{
  margin:0 0 1.3rem;
  padding:0;
  border:0;
  font:1.13rem/1.52 var(--serif);
}
.review-featured blockquote{
  max-width:900px;
  font-size:clamp(1.25rem,2vw,1.55rem);
}
.review-author{
  color:var(--muted);
  font-size:.82rem;
  margin-bottom:1.3rem;
}
.review-quote .text-link{
  margin-top:auto;
}
@media(max-width:720px){
  .review-quotes{grid-template-columns:1fr}
  .review-featured{grid-column:auto}
  .review-quote{min-height:0}
}


/* --- V10: compact book reception + publisher purchase action --- */
.book-actions{
  margin-top:1.35rem;
}
.purchase-link{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  min-height:44px;
  padding:.72rem 1.05rem;
  border:1px solid var(--accent);
  color:var(--accent);
  font-size:.77rem;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
  transition:background .15s ease,color .15s ease;
}
.purchase-link:hover,
.purchase-link:focus-visible{
  background:var(--accent);
  color:#fff;
}
.book-reception .review-featured{
  border:1px solid var(--line);
}
.review-more{
  margin-top:1rem;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.review-more summary{
  list-style:none;
  cursor:pointer;
  min-height:52px;
  padding:1rem 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  color:var(--accent);
  font-size:.78rem;
  font-weight:750;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.review-more summary::-webkit-details-marker{display:none}
.review-more summary:after{
  content:"+";
  font:1.5rem/1 var(--serif);
  color:var(--accent);
}
.review-more[open] summary:after{content:"–"}
.review-more[open] summary span{font-size:0}
.review-more[open] summary span:before{
  content:"Hide additional reviews";
  font-size:.78rem;
}
.review-quotes-collapsed{
  margin-bottom:1rem;
  border-top:1px solid var(--line);
}
@media(max-width:720px){
  .purchase-link{width:100%;justify-content:center}
}


/* --- V11: Amazon formats and automatic local marketplace choice --- */
.book-formats{
  margin-bottom:.85rem;
  color:var(--ink);
  font:1rem/1.4 var(--serif);
}
.amazon-markets{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.25rem .42rem;
  margin-top:.8rem;
  color:var(--muted);
  font-size:.7rem;
  line-height:1.5;
}
.amazon-markets button{
  appearance:none;
  border:0;
  border-bottom:1px solid transparent;
  padding:0;
  background:transparent;
  color:var(--muted);
  font:inherit;
  cursor:pointer;
}
.amazon-markets button:hover,
.amazon-markets button:focus-visible,
.amazon-markets button.is-active{
  color:var(--accent);
  border-bottom-color:currentColor;
}
.amazon-markets button:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}
@media(max-width:720px){
  .amazon-markets{
    justify-content:center;
  }
}


/* --- V12: desktop monograph metadata in three columns --- */
@media (min-width:1201px){
  .book-stats-purchase{
    display:grid;
    grid-template-columns:170px 145px minmax(320px,1fr);
    gap:1.5rem 2rem;
    align-items:start;
  }

  .book-stats-purchase .book-actions{
    margin-top:0;
    padding-left:.15rem;
  }

  .book-stats-purchase .book-formats{
    margin-top:-.12rem;
    margin-bottom:.75rem;
  }

  .book-stats-purchase .amazon-markets{
    margin-top:.7rem;
  }
}

@media (max-width:1200px){
  .book-stats-purchase .book-actions{
    flex-basis:100%;
  }
}


/* --- V13: publication links, summaries and secondary volumes --- */
.bib-links{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem 1rem;
  margin-top:.62rem;
  font:700 .69rem/1.35 var(--sans);
  letter-spacing:.065em;
  text-transform:uppercase;
}
.bib-links a{
  color:var(--accent);
  text-decoration:none;
}
.bib-links a:hover,
.bib-links a:focus-visible{
  text-decoration:underline;
  text-underline-offset:3px;
}
.bib-summary{
  max-width:760px;
  margin:.75rem 0 0;
  color:var(--muted);
  font:.92rem/1.58 var(--sans);
}
.bib-item-featured{
  padding-top:1.6rem;
  padding-bottom:1.6rem;
}
@media(max-width:600px){
  .bib-links{
    gap:.55rem 1rem;
    margin-top:.72rem;
  }
  .bib-summary{
    font-size:.88rem;
  }
}


/* --- V15: expanded Research page --- */
.theme-image-link{
  display:block;
  text-decoration:none;
}
.theme-image-link:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
}

.research-method{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.research-method-grid{
  display:grid;
  grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:start;
}
.research-method .section-title{
  max-width:420px;
  margin-bottom:0;
}
.research-method-copy{
  max-width:760px;
}
.research-method-copy p{
  margin:0 0 1rem;
  color:var(--muted);
  font-size:1.04rem;
  line-height:1.75;
}
.research-method-copy p:last-child{margin-bottom:0}

.research-axis{
  scroll-margin-top:90px;
  padding:clamp(4.5rem,7vw,7rem) 0;
  border-bottom:1px solid var(--line);
}
.research-axis-soft{
  background:var(--soft);
}
.axis-layout{
  display:grid;
  grid-template-columns:minmax(200px,280px) minmax(0,790px);
  gap:clamp(2.5rem,7vw,7.5rem);
  justify-content:start;
  align-items:start;
}
.axis-aside{
  position:sticky;
  top:110px;
}
.axis-number{
  color:var(--accent);
  font:clamp(2.8rem,5vw,4.5rem)/1 var(--serif);
  margin-bottom:1.2rem;
}
.axis-question{
  margin-top:1.8rem;
  padding-top:1.2rem;
  border-top:1px solid var(--line);
  color:var(--ink);
  font:clamp(1.18rem,1.8vw,1.42rem)/1.42 var(--serif);
}
.axis-content h2{
  margin:0 0 1.35rem;
  font-size:clamp(2.35rem,4vw,3.6rem);
  line-height:1.03;
}
.axis-content > p{
  max-width:780px;
  color:var(--muted);
  font-size:1rem;
  line-height:1.78;
  margin:0 0 1.15rem;
}
.axis-content .axis-intro{
  color:var(--ink);
  font:clamp(1.24rem,2vw,1.52rem)/1.58 var(--serif);
  margin-bottom:1.5rem;
}
.axis-bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1.2rem;
  margin-top:2.2rem;
}
.axis-focus,
.axis-links{
  padding-top:1.1rem;
  border-top:1px solid var(--line);
}
.axis-focus-label{
  display:block;
  color:var(--accent);
  font-size:.68rem;
  line-height:1.3;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:.7rem;
}
.axis-focus p{
  margin:0;
  color:var(--ink);
  font:.98rem/1.58 var(--serif);
}
.axis-links{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.axis-links a{
  color:var(--ink);
  font-size:.78rem;
  line-height:1.45;
  text-decoration:none;
  padding:.35rem 0;
}
.axis-links a:hover,
.axis-links a:focus-visible{
  color:var(--accent);
  text-decoration:underline;
  text-underline-offset:3px;
}

.research-projects-v15{
  align-items:stretch;
}
.research-projects-v15 .research-project{
  display:flex;
  flex-direction:column;
}
.research-projects-v15 .research-project p{
  margin-bottom:.85rem;
}
.research-projects-v15 .text-link{
  margin-top:auto;
}
.research-project-spinoff{
  border-top:2px solid var(--accent);
}
.research-project-spinoff h3{
  font-size:clamp(1.45rem,2.2vw,1.85rem);
}

.research-close{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
}
.research-close .section-title{
  margin-bottom:0;
}
.research-close-links{
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.research-secondary-action{
  border-color:var(--line);
  color:var(--ink);
}
.research-secondary-action:hover,
.research-secondary-action:focus-visible{
  border-color:var(--accent);
}

@media(max-width:950px){
  .research-method-grid{
    grid-template-columns:1fr;
    gap:1.5rem;
  }
  .research-method .section-title{max-width:680px}

  .axis-layout{
    grid-template-columns:180px minmax(0,1fr);
    gap:2.4rem;
  }
  .axis-aside{
    position:static;
  }
  .axis-question{
    font-size:1.05rem;
  }
  .axis-bottom{
    grid-template-columns:1fr;
  }
  .research-close{
    align-items:flex-start;
    flex-direction:column;
  }
  .research-close-links{
    justify-content:flex-start;
  }
}

@media(max-width:700px){
  .research-axis{
    padding:3.7rem 0;
  }
  .axis-layout{
    grid-template-columns:1fr;
    gap:1.4rem;
  }
  .axis-aside{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:.2rem 1rem;
    align-items:end;
  }
  .axis-number{
    grid-row:1/3;
    margin:0;
    font-size:3rem;
  }
  .axis-aside .section-kicker{
    margin:0;
  }
  .axis-question{
    grid-column:1/-1;
    margin-top:1rem;
  }
  .axis-content h2{
    font-size:2.35rem;
  }
  .axis-content > p{
    font-size:.96rem;
    line-height:1.72;
  }
  .axis-content .axis-intro{
    font-size:1.2rem;
  }
  .research-close-links{
    width:100%;
  }
  .research-close-links .purchase-link{
    width:100%;
    justify-content:center;
  }
}


/* --- V16: Lectures page --- */
.lectures-hero{
  padding:clamp(4rem,7vw,6.5rem) 0 clamp(3rem,5vw,4.5rem);
}
.lectures-hero h1{
  font-size:clamp(3.6rem,7vw,6.8rem);
  line-height:.94;
  margin-bottom:1.25rem;
}
.lectures-lede{
  max-width:780px;
  margin:0;
  color:var(--muted);
  font:clamp(1.12rem,1.8vw,1.45rem)/1.58 var(--serif);
}

.media-feature-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.media-feature{
  background:#fff;
  padding:clamp(1.6rem,3.5vw,2.5rem);
  display:flex;
  flex-direction:column;
  min-height:390px;
}
.media-type,
.project-meta{
  color:var(--accent);
  font-size:.69rem;
  line-height:1.3;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.media-feature h3{
  margin:.8rem 0 1rem;
  font-size:clamp(1.65rem,2.6vw,2.25rem);
  line-height:1.1;
}
.media-feature > p{
  color:var(--muted);
  line-height:1.65;
}
.media-meta{
  margin-top:.25rem;
  padding-top:1rem;
  border-top:1px solid var(--line);
  color:var(--ink);
  font-size:.82rem;
  line-height:1.5;
}
.media-note{
  font-size:.88rem;
}
.media-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.8rem 1.2rem;
  margin-top:auto;
  padding-top:1.5rem;
}

.lecture-list-section{
  padding:clamp(4.5rem,7vw,7rem) 0;
}
.lecture-list-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,460px);
  gap:2rem;
  align-items:end;
  margin-bottom:2.2rem;
}
.lecture-list-head .section-title{margin-bottom:0}
.lecture-list-head > p{
  margin:0 0 .25rem;
  color:var(--muted);
  line-height:1.6;
}
.lecture-years{
  border-top:1px solid var(--line);
}
.lecture-year{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  border-bottom:1px solid var(--line);
}
.lecture-year-label{
  padding:1.7rem 1.5rem 1.7rem 0;
  color:var(--accent);
  font:clamp(1.45rem,2.5vw,2rem)/1 var(--serif);
}
.lecture-events{
  border-left:1px solid var(--line);
}
.lecture-event{
  display:grid;
  grid-template-columns:80px minmax(0,1fr);
  gap:1.4rem;
  padding:1.65rem 0 1.65rem 1.7rem;
}
.lecture-event + .lecture-event{
  border-top:1px solid var(--line);
}
.lecture-event-featured{
  background:var(--soft);
  padding-right:1.4rem;
}
.lecture-date{
  color:var(--muted);
  font-size:.78rem;
  letter-spacing:.04em;
  padding-top:.25rem;
}
.lecture-event h3{
  margin:0 0 .45rem;
  font-size:clamp(1.15rem,1.8vw,1.42rem);
  line-height:1.25;
}
.lecture-event p{
  margin:0 0 .45rem;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.55;
}
.lecture-place{
  color:var(--ink);
  font-size:.76rem;
  line-height:1.5;
}

.lecture-archive{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.lecture-archive summary{
  list-style:none;
  cursor:pointer;
  min-height:88px;
  padding:1.4rem 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
.lecture-archive summary::-webkit-details-marker{display:none}
.lecture-archive summary strong{
  display:block;
  margin-top:.25rem;
  font:clamp(1.45rem,2.6vw,2rem)/1.2 var(--serif);
  color:var(--ink);
}
.lecture-archive summary:after{
  content:"+";
  color:var(--accent);
  font:2rem/1 var(--serif);
}
.lecture-archive[open] summary:after{content:"–"}

.archive-years{
  border-top:1px solid var(--line);
}
.archive-year{
  display:grid;
  grid-template-columns:100px minmax(0,1fr);
  border-bottom:1px solid var(--line);
  padding:1.25rem 0;
}
.archive-year:last-child{border-bottom:0}
.archive-year-label{
  color:var(--accent);
  font:1.12rem/1.4 var(--serif);
}
.archive-lines p{
  margin:0;
  color:var(--muted);
  font-size:.87rem;
  line-height:1.58;
}
.archive-lines p + p{
  margin-top:.72rem;
}
.archive-lines strong{
  color:var(--ink);
  font-weight:650;
}
.lectures-close{
  border-bottom:0;
}

@media(max-width:800px){
  .lecture-list-head{
    grid-template-columns:1fr;
    gap:.5rem;
  }
  .lecture-list-head > p{max-width:650px}
}

@media(max-width:700px){
  .media-feature-grid{grid-template-columns:1fr}
  .media-feature{min-height:0}
  .lecture-year{
    grid-template-columns:1fr;
  }
  .lecture-year-label{
    padding:1.5rem 0 .7rem;
  }
  .lecture-events{
    border-left:0;
  }
  .lecture-event{
    grid-template-columns:62px minmax(0,1fr);
    padding:1.25rem 0;
  }
  .lecture-event-featured{
    margin:0 -1rem;
    padding:1.25rem 1rem;
  }
  .archive-year{
    grid-template-columns:62px minmax(0,1fr);
    gap:.8rem;
  }
  .media-actions .purchase-link{
    width:100%;
    justify-content:center;
  }
}


/* --- V17: restore exact dates in lecture archive --- */
.archive-date{
  display:inline-block;
  min-width:4.6rem;
  margin-right:.7rem;
  color:var(--accent);
  font-size:.72rem;
  font-weight:750;
  letter-spacing:.045em;
  text-transform:uppercase;
  vertical-align:baseline;
}
@media(max-width:600px){
  .archive-date{
    display:block;
    min-width:0;
    margin:0 0 .18rem;
  }
}


/* --- V18: Writing landing page and book detail pages --- */
.writing-hero{
  padding:clamp(4rem,7vw,6.5rem) 0 clamp(3.3rem,5vw,4.8rem);
}
.writing-hero h1{
  font-size:clamp(3.7rem,7vw,6.8rem);
  line-height:.94;
  margin-bottom:1.25rem;
}
.writing-lede{
  max-width:790px;
  margin:0;
  color:var(--muted);
  font:clamp(1.12rem,1.8vw,1.45rem)/1.58 var(--serif);
}
.writing-feature-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.writing-feature{
  background:#fff;
  padding:clamp(1.7rem,3.5vw,2.7rem);
  display:flex;
  flex-direction:column;
  min-height:480px;
}
.writing-feature-primary{
  background:var(--soft);
}
.writing-status{
  color:var(--accent);
  font-size:.69rem;
  line-height:1.3;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.writing-feature h3,
.writing-small h3{
  margin:.85rem 0 1rem;
  font-size:clamp(1.8rem,3vw,2.5rem);
  line-height:1.08;
}
.writing-feature > p,
.writing-small > p{
  color:var(--muted);
  line-height:1.67;
}
.writing-feature .writing-feature-lede{
  color:var(--ink);
  font:1.13rem/1.58 var(--serif);
}
.writing-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem .9rem;
  margin-top:1rem;
  color:var(--muted);
  font-size:.72rem;
}
.writing-meta span + span:before{
  content:"·";
  margin-right:.9rem;
  color:var(--line-strong, #aaa);
}
.writing-actions{
  margin-top:auto;
  padding-top:1.8rem;
}
.writing-method-grid{
  display:grid;
  grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);
  gap:clamp(2rem,6vw,6rem);
}
.writing-method-grid > div:last-child{
  max-width:760px;
}
.writing-method-grid p{
  color:var(--muted);
  font-size:1rem;
  line-height:1.75;
  margin:0 0 1rem;
}
.writing-small-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.writing-small{
  background:#fff;
  padding:clamp(1.6rem,3vw,2.3rem);
}
.writing-small .text-link{
  display:inline-block;
  margin-top:1.2rem;
}
.writing-close{
  border-top:1px solid var(--line);
}

/* detail pages */
.book-detail-hero{
  padding:clamp(4rem,7vw,6.5rem) 0 clamp(3.2rem,5vw,4.8rem);
}
.book-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:end;
}
.book-detail-hero h1{
  font-size:clamp(3.4rem,7vw,6.5rem);
  line-height:.96;
  margin:.5rem 0 1.1rem;
}
.book-detail-deck{
  max-width:800px;
  color:var(--muted);
  font:clamp(1.18rem,2vw,1.55rem)/1.58 var(--serif);
}
.book-detail-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.55rem 1rem;
  margin-top:1.5rem;
  color:var(--muted);
  font-size:.75rem;
}
.book-detail-meta span + span:before{
  content:"·";
  margin-right:1rem;
}
.book-detail-side{
  border-top:1px solid var(--line);
  padding-top:1.2rem;
}
.book-detail-side p{
  color:var(--muted);
  font-size:.9rem;
  line-height:1.6;
}
.detail-reading-grid{
  display:grid;
  grid-template-columns:minmax(200px,.7fr) minmax(0,1.3fr);
  gap:clamp(2rem,6vw,6rem);
}
.detail-prose{
  max-width:780px;
}
.detail-prose p{
  color:var(--muted);
  font-size:1rem;
  line-height:1.78;
  margin:0 0 1.15rem;
}
.detail-prose-wide{
  max-width:900px;
}
.detail-actions{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
}
.detail-actions .section-title{margin-bottom:0}
.detail-actions-links{
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
}
.writing-story-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

@media(max-width:800px){
  .writing-method-grid,
  .book-detail-grid,
  .detail-reading-grid{
    grid-template-columns:1fr;
  }
  .detail-actions{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media(max-width:700px){
  .writing-feature-grid,
  .writing-small-grid,
  .writing-story-grid{
    grid-template-columns:1fr;
  }
  .writing-feature{
    min-height:0;
  }
  .writing-actions{
    margin-top:1rem;
  }
  .detail-actions-links{
    width:100%;
  }
  .detail-actions-links .purchase-link{
    width:100%;
    justify-content:center;
  }
}


/* --- V19: richer Writing / The 13th Tablet + video thumbnails --- */

.book-detail-grid-rich{
  grid-template-columns:minmax(0,1.05fr) minmax(310px,.75fr);
  align-items:center;
}
.book-hero-context{
  margin:0;
}
.book-hero-context img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  object-fit:cover;
  border:1px solid var(--line);
}
.book-hero-context figcaption,
.event-photo figcaption{
  margin-top:.55rem;
  color:var(--muted);
  font-size:.7rem;
  line-height:1.45;
}

.media-story-grid{
  display:grid;
  grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:center;
}
.media-story-copy p{
  color:var(--muted);
  line-height:1.7;
}
.video-thumb,
.media-card-thumb{
  position:relative;
  display:block;
  overflow:hidden;
  background:#111;
  text-decoration:none;
}
.video-thumb{
  aspect-ratio:16/9;
}
.video-thumb img,
.media-card-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease, opacity .25s ease;
}
.video-thumb:hover img,
.video-thumb:focus-visible img,
.media-card-thumb:hover img,
.media-card-thumb:focus-visible img{
  transform:scale(1.012);
  opacity:.88;
}
.video-play{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border-radius:50%;
  background:rgba(255,255,255,.93);
  color:var(--ink);
  font-size:1rem;
  padding-left:3px;
  box-shadow:0 2px 14px rgba(0,0,0,.2);
}

.edition-intro{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,460px);
  gap:2rem;
  align-items:end;
  margin-bottom:2rem;
}
.edition-intro .section-title{margin-bottom:0}
.edition-intro > p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
}
.edition-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.edition-card{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:1.3rem;
  padding:clamp(1.5rem,3vw,2.25rem);
  background:#fff;
}
.edition-volume{
  display:grid;
  place-items:center;
  width:76px;
  height:108px;
  border:1px solid var(--line);
  color:var(--accent);
  background:var(--soft);
  font:2.7rem/1 var(--serif);
}
.edition-card h3{
  margin:.55rem 0 .5rem;
  font-size:clamp(1.4rem,2.2vw,1.85rem);
}
.edition-card p{
  margin:.2rem 0 .65rem;
  color:var(--muted);
  font-size:.84rem;
  line-height:1.55;
}
.edition-isbn{
  margin-bottom:.8rem;
  color:var(--ink);
  font-size:.73rem;
}
.edition-cover-note{
  max-width:760px;
  margin:1rem 0 0;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.5;
}

.review-head,
.events-head{
  align-items:end;
}
.review-head > p,
.events-head > p{
  max-width:420px;
  color:var(--muted);
  line-height:1.6;
  font-size:.87rem;
}
.review-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.reader-review{
  display:flex;
  flex-direction:column;
  min-height:290px;
  padding:clamp(1.35rem,2.5vw,2rem);
  background:#fff;
}
.review-source{
  color:var(--accent);
  font-size:.64rem;
  font-weight:750;
  letter-spacing:.065em;
  text-transform:uppercase;
}
.reader-review h3{
  margin:.85rem 0 1rem;
  font:clamp(1.25rem,2vw,1.55rem)/1.22 var(--serif);
}
.reader-review p{
  margin:0;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.62;
}
.reviewer{
  margin-top:auto;
  padding-top:1.3rem;
  color:var(--ink);
  font-size:.72rem;
  font-weight:700;
}
.review-more{
  margin-top:1rem;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.review-more summary{
  list-style:none;
  cursor:pointer;
  padding:1rem 0;
  color:var(--ink);
  font-size:.76rem;
  font-weight:750;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.review-more summary::-webkit-details-marker{display:none}
.review-more summary:after{
  content:"+";
  float:right;
  color:var(--accent);
  font-size:1.15rem;
}
.review-more[open] summary:after{content:"–"}
.review-grid-more{
  margin-bottom:1rem;
}

.event-gallery{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:1rem;
  align-items:start;
}
.event-photo{
  margin:0;
  grid-column:span 5;
}
.event-photo-wide{
  grid-column:span 7;
}
.event-photo-tall{
  grid-column:span 5;
}
.event-photo img{
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:cover;
  border:1px solid var(--line);
}
.event-photo-wide img{
  aspect-ratio:16/10;
}
.event-photo:not(.event-photo-wide) img{
  aspect-ratio:4/3;
}

/* Lectures video card */
.media-feature-video{
  padding-top:1.2rem;
}
.media-card-thumb{
  aspect-ratio:16/9;
  margin:-.2rem -.2rem 1.3rem;
}
.media-card-thumb .video-play{
  width:48px;
  height:48px;
}
.media-feature-video .media-type{
  margin-top:.1rem;
}

@media(max-width:900px){
  .book-detail-grid-rich,
  .media-story-grid{
    grid-template-columns:1fr;
  }
  .book-hero-context{
    max-width:660px;
  }
  .edition-intro{
    grid-template-columns:1fr;
    gap:.5rem;
  }
  .review-grid{
    grid-template-columns:1fr;
  }
  .reader-review{
    min-height:0;
  }
}

@media(max-width:700px){
  .edition-grid{
    grid-template-columns:1fr;
  }
  .edition-card{
    grid-template-columns:70px minmax(0,1fr);
  }
  .edition-volume{
    width:58px;
    height:82px;
    font-size:2rem;
  }
  .event-gallery{
    grid-template-columns:1fr;
  }
  .event-photo,
  .event-photo-wide,
  .event-photo-tall{
    grid-column:auto;
  }
  .event-photo img,
  .event-photo-wide img,
  .event-photo:not(.event-photo-wide) img{
    aspect-ratio:auto;
    max-height:none;
  }
  .video-play{
    width:50px;
    height:50px;
  }
}


/* --- V20: exact English + Japanese cover artwork --- */
.writing-feature-with-cover{
  display:grid;
  grid-template-columns:minmax(125px,.42fr) minmax(0,1fr);
  gap:clamp(1.5rem,3vw,2.3rem);
  align-items:start;
}
.writing-feature-with-cover .writing-feature-copy{
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.writing-cover-link{
  display:block;
  text-decoration:none;
}
.writing-cover{
  display:block;
  width:100%;
  height:auto;
  box-shadow:0 12px 32px rgba(0,0,0,.13);
}
.writing-cover-link:hover .writing-cover,
.writing-cover-link:focus-visible .writing-cover{
  transform:translateY(-2px);
}
.writing-cover{
  transition:transform .2s ease;
}

.book-cover-figure{
  margin:0;
  justify-self:center;
  width:min(100%,390px);
}
.book-cover-figure img{
  display:block;
  width:100%;
  height:auto;
  box-shadow:0 16px 42px rgba(0,0,0,.16);
}
.book-cover-figure figcaption,
.jp-cover-figure figcaption{
  margin-top:.65rem;
  color:var(--muted);
  font-size:.7rem;
  line-height:1.45;
}

.jp-edition-layout{
  display:grid;
  grid-template-columns:minmax(220px,.52fr) minmax(0,1.48fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start;
}
.jp-cover-figure{
  margin:0;
  width:min(100%,330px);
}
.jp-cover-figure img{
  display:block;
  width:100%;
  height:auto;
  box-shadow:0 12px 32px rgba(0,0,0,.14);
}
.edition-grid-compact{
  grid-template-columns:1fr;
}
.edition-grid-compact .edition-card{
  min-height:0;
}

@media(max-width:900px){
  .jp-edition-layout{
    grid-template-columns:260px minmax(0,1fr);
    gap:2rem;
  }
}
@media(max-width:700px){
  .writing-feature-with-cover{
    grid-template-columns:112px minmax(0,1fr);
    gap:1.1rem;
  }
  .writing-feature-with-cover .writing-feature-lede,
  .writing-feature-with-cover .writing-feature-copy > p:not(.writing-feature-lede){
    grid-column:1/-1;
  }
  .jp-edition-layout{
    grid-template-columns:1fr;
  }
  .jp-cover-figure{
    width:min(76vw,300px);
  }
  .book-cover-figure{
    width:min(72vw,350px);
  }
}
@media(max-width:480px){
  .writing-feature-with-cover{
    grid-template-columns:92px minmax(0,1fr);
  }
}


/* --- V21: Bulgarian Snake of Babylon cover --- */
.book-detail-side-inline{
  margin-top:1.6rem;
  max-width:520px;
}


/* --- V22: representation status --- */
.representation-grid{
  display:grid;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:start;
}
.representation-copy{
  max-width:800px;
}
.representation-item{
  padding:0 0 1.5rem;
}
.representation-item + .representation-item{
  border-top:1px solid var(--line);
  padding-top:1.5rem;
}
.representation-label{
  color:var(--accent);
  font-size:.68rem;
  line-height:1.3;
  font-weight:750;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:.55rem;
}
.representation-item p{
  margin:0;
  color:var(--muted);
  line-height:1.72;
}
.representation-item strong{
  color:var(--ink);
}
.rights-status{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem .7rem;
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.76rem;
  line-height:1.5;
}
.rights-status-label{
  color:var(--accent);
  font-weight:750;
  letter-spacing:.05em;
  text-transform:uppercase;
}
@media(max-width:800px){
  .representation-grid{
    grid-template-columns:1fr;
    gap:1.3rem;
  }
}


/* --- V23: The 13th Tablet companion research pages --- */
.behind-head{
  align-items:end;
}
.behind-head > p{
  max-width:440px;
  color:var(--muted);
  line-height:1.62;
  font-size:.88rem;
}
.behind-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.behind-card{
  display:flex;
  flex-direction:column;
  min-height:280px;
  padding:clamp(1.4rem,2.8vw,2rem);
  background:#fff;
  color:inherit;
  text-decoration:none;
}
.behind-card h3{
  margin:.65rem 0 .8rem;
  font-size:clamp(1.35rem,2vw,1.65rem);
}
.behind-card p{
  margin:0;
  color:var(--muted);
  font-size:.87rem;
  line-height:1.62;
}
.behind-card > span{
  margin-top:auto;
  padding-top:1.2rem;
  color:var(--accent);
  font-size:.72rem;
  font-weight:750;
}
.behind-card:hover,
.behind-card:focus-visible{
  background:var(--soft);
}
.behind-card:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:-2px;
}

.companion-hero{
  padding:clamp(4rem,7vw,6.5rem) 0 clamp(3rem,5vw,4.5rem);
}
.companion-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(230px,.55fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:end;
}
.companion-hero h1{
  max-width:900px;
  margin:.55rem 0 1.1rem;
  font-size:clamp(3.2rem,6.5vw,6.2rem);
  line-height:.98;
}
.companion-deck{
  max-width:780px;
  color:var(--muted);
  font:clamp(1.15rem,1.9vw,1.48rem)/1.58 var(--serif);
}
.companion-bookmark{
  border-top:1px solid var(--line);
  padding-top:1rem;
}
.companion-bookmark span{
  display:block;
  margin-bottom:.5rem;
  color:var(--accent);
  font-size:.67rem;
  font-weight:750;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.companion-bookmark a{
  color:var(--ink);
  font-size:.83rem;
  text-decoration:none;
}
.companion-bookmark a:hover{
  color:var(--accent);
}
.companion-reading-grid{
  display:grid;
  grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:start;
}
.companion-aside-copy{
  max-width:250px;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.6;
}
.companion-prose{
  max-width:820px;
}
.companion-prose .companion-lede{
  margin-top:0;
  color:var(--ink);
  font:clamp(1.18rem,1.8vw,1.42rem)/1.62 var(--serif);
}
.companion-prose h2{
  margin:2.2rem 0 .75rem;
  font-size:clamp(1.7rem,2.8vw,2.25rem);
}
.companion-prose p{
  color:var(--muted);
  line-height:1.78;
  margin:.75rem 0;
}
.companion-reading{
  margin-top:2.2rem;
  padding-top:1.1rem;
  border-top:1px solid var(--line);
}
.companion-reading p{
  margin:.4rem 0 0;
  font-size:.84rem;
}
.companion-nav-section{
  border-top:1px solid var(--line);
}
.companion-nav-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.companion-nav-grid a{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1.1rem;
  background:#fff;
  color:var(--ink);
  font-size:.78rem;
  font-weight:700;
  text-decoration:none;
}
.companion-nav-grid a span{
  color:var(--accent);
}
.companion-nav-grid a:hover,
.companion-nav-grid a:focus-visible{
  background:var(--soft);
}

@media(max-width:900px){
  .behind-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .companion-nav-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:700px){
  .companion-hero-grid,
  .companion-reading-grid{
    grid-template-columns:1fr;
  }
  .companion-bookmark{
    max-width:360px;
  }
  .companion-aside-copy{
    max-width:560px;
  }
  .behind-grid,
  .companion-nav-grid{
    grid-template-columns:1fr;
  }
  .behind-card{
    min-height:0;
  }
}


/* --- V24: restore visual material to 13th Tablet companion pages --- */
.companion-image-pair{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.2rem;
  margin:0 0 2.4rem;
  align-items:start;
}
.companion-figure{
  margin:0;
}
.companion-figure img{
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:contain;
  background:#fff;
  border:1px solid var(--line);
}
.companion-figure figcaption{
  margin-top:.5rem;
  color:var(--muted);
  font-size:.68rem;
  line-height:1.45;
}
.companion-image-pair-mixed{
  grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr);
  align-items:center;
}
.companion-figure-portrait{
  max-width:330px;
}
.companion-figure-map img{
  max-height:360px;
}
.companion-image-pair-baba{
  grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);
}
.companion-photo-stack{
  display:grid;
  gap:1rem;
}
.companion-photo-stack .companion-figure img{
  max-height:240px;
  object-fit:cover;
}
.companion-tablet-figure{
  float:right;
  width:min(32%,220px);
  margin:0 0 1.2rem 2rem;
}
.companion-tablet-figure img{
  aspect-ratio:4/5;
  object-fit:cover;
}
@media(max-width:700px){
  .companion-image-pair,
  .companion-image-pair-mixed,
  .companion-image-pair-baba{
    grid-template-columns:1fr;
  }
  .companion-figure-portrait{
    max-width:280px;
  }
  .companion-tablet-figure{
    float:none;
    width:min(65vw,220px);
    margin:0 0 1.6rem;
  }
}


/* --- V25: Drawing page + robust local navigation --- */
.drawing-hero{
  padding:clamp(4.4rem,8vw,7.2rem) 0 clamp(3rem,5vw,4.5rem);
}
.drawing-hero-grid{
  display:grid;
  grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);
  gap:clamp(2rem,7vw,7rem);
  align-items:end;
}
.drawing-hero h1{
  margin:.5rem 0 0;
  font-size:clamp(4.8rem,10vw,9.2rem);
  line-height:.87;
}
.drawing-hero-copy{
  max-width:670px;
  padding-bottom:.4rem;
}
.drawing-hero-copy p{
  margin:0 0 .8rem;
  color:var(--muted);
  font:clamp(1.05rem,1.7vw,1.3rem)/1.68 var(--serif);
}
.drawing-hero-copy p:last-child{
  margin-bottom:0;
}
.drawing-method-grid{
  display:grid;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);
  gap:clamp(2rem,6vw,6rem);
  align-items:start;
}
.drawing-gallery-section{
  padding-top:clamp(4rem,7vw,6.5rem);
}
.drawing-gallery-note{
  max-width:310px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.55;
}
.drawing-grid{
  columns:3;
  column-gap:1.15rem;
}
.drawing-card{
  display:inline-block;
  width:100%;
  margin:0 0 1.8rem;
  break-inside:avoid;
}
.drawing-card a{
  display:block;
  background:#f7f6f2;
  border:1px solid var(--line);
  overflow:hidden;
}
.drawing-card img{
  display:block;
  width:100%;
  height:auto;
  transition:transform .22s ease;
}
.drawing-card a:hover img,
.drawing-card a:focus-visible img{
  transform:scale(1.012);
}
.drawing-card a:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.drawing-card figcaption{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:baseline;
  padding:.65rem .05rem 0;
  border-top:0;
}
.drawing-card figcaption strong{
  color:var(--ink);
  font:1rem/1.25 var(--serif);
  font-weight:600;
}
.drawing-card figcaption span{
  color:var(--muted);
  font-size:.65rem;
  line-height:1.4;
  text-align:right;
}
.footer-disabled,
.inline-disabled{
  color:var(--muted);
  font-size:inherit;
}

@media(max-width:950px){
  .drawing-grid{
    columns:2;
  }
}
@media(max-width:760px){
  .drawing-hero-grid,
  .drawing-method-grid{
    grid-template-columns:1fr;
    gap:1.4rem;
  }
  .drawing-hero h1{
    font-size:clamp(4rem,18vw,6.8rem);
  }
}
@media(max-width:560px){
  .drawing-grid{
    columns:1;
  }
  .drawing-card{
    margin-bottom:2rem;
  }
  .drawing-card figcaption{
    align-items:flex-start;
  }
}
\n\n/* --- V26: Drawing hero fit + accessible lightbox --- */
.drawing-hero-grid{
  grid-template-columns:minmax(390px,.9fr) minmax(0,1.1fr);
  gap:clamp(2.5rem,5vw,5.5rem);
}
.drawing-hero h1{
  font-size:clamp(4.6rem,6.8vw,7.4rem);
  line-height:.9;
  white-space:nowrap;
}
.drawing-hero-copy{min-width:0;}
html.lightbox-open,html.lightbox-open body{overflow:hidden;}
.drawing-lightbox[hidden]{display:none;}
.drawing-lightbox{
  position:fixed; inset:0; z-index:1000; display:grid; place-items:center;
  padding:clamp(1rem,3vw,2.5rem);
}
.drawing-lightbox-backdrop{position:absolute; inset:0; background:rgba(18,17,15,.91);}
.drawing-lightbox-dialog{
  position:relative; z-index:1; display:grid;
  grid-template-columns:auto minmax(0,1fr) auto; align-items:center;
  gap:clamp(.5rem,2vw,1.5rem); width:min(96vw,1500px); height:min(94vh,1050px);
}
.drawing-lightbox-figure{
  margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-width:0; min-height:0; height:100%;
}
.drawing-lightbox-figure img{
  display:block; max-width:100%; max-height:calc(94vh - 4.5rem); width:auto; height:auto;
  object-fit:contain; box-shadow:0 10px 40px rgba(0,0,0,.35); background:#f7f6f2;
}
.drawing-lightbox-figure figcaption{
  width:100%; margin-top:.65rem; color:rgba(255,255,255,.82);
  font-size:.76rem; line-height:1.4; text-align:center;
}
.drawing-lightbox-close,.drawing-lightbox-nav{
  border:0; background:transparent; color:#fff; cursor:pointer; font-family:inherit;
}
.drawing-lightbox-close{
  position:absolute; top:-.15rem; right:0; z-index:2; width:44px; height:44px;
  font-size:2rem; line-height:1;
}
.drawing-lightbox-nav{width:44px; height:64px; font-size:1.8rem; opacity:.8;}
.drawing-lightbox-nav:hover,.drawing-lightbox-nav:focus-visible,
.drawing-lightbox-close:hover,.drawing-lightbox-close:focus-visible{
  opacity:1; outline:1px solid rgba(255,255,255,.55); outline-offset:2px;
}
.drawing-lightbox-link{cursor:zoom-in;}
@media(max-width:1000px){
  .drawing-hero-grid{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr); gap:2.5rem;}
  .drawing-hero h1{font-size:clamp(4.25rem,7vw,5.8rem);}
}
@media(max-width:760px){
  .drawing-hero-grid{grid-template-columns:1fr;}
  .drawing-hero h1{white-space:normal; font-size:clamp(4rem,18vw,6.8rem);}
  .drawing-lightbox{padding:.75rem;}
  .drawing-lightbox-dialog{grid-template-columns:36px minmax(0,1fr) 36px; gap:.25rem; width:100%; height:96vh;}
  .drawing-lightbox-nav{width:36px; font-size:1.45rem;}
  .drawing-lightbox-close{top:0; right:.1rem;}
  .drawing-lightbox-figure img{max-height:calc(96vh - 5rem);}
}


/* --- V27: About page --- */
.about-hero{
  padding:clamp(3.7rem,7vw,6.2rem) 0 clamp(3.5rem,6vw,5rem);
}
.about-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);
  gap:clamp(2.5rem,6vw,6rem);
  align-items:center;
}
.about-hero-copy h1{
  margin:.65rem 0 1.4rem;
  font-size:clamp(4rem,7.4vw,7.5rem);
  line-height:.88;
  letter-spacing:-.035em;
}
.about-hero-lede{
  max-width:680px;
  margin:0;
  color:var(--muted);
  font:clamp(1.08rem,1.75vw,1.34rem)/1.66 var(--serif);
}
.about-hero-image{
  margin:0;
}
.about-hero-image img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  object-fit:cover;
  border:1px solid var(--line);
}
.about-hero-image figcaption{
  margin-top:.55rem;
  color:var(--muted);
  font-size:.68rem;
  line-height:1.45;
}
.about-intro-grid,
.about-books-grid,
.about-close-grid{
  display:grid;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);
  gap:clamp(2.5rem,6vw,6rem);
  align-items:start;
}
.about-prose{
  max-width:820px;
}
.about-prose > p{
  margin:0 0 1rem;
  color:var(--muted);
  line-height:1.76;
}
.about-prose > p:first-child{
  color:var(--ink);
  font:clamp(1.05rem,1.55vw,1.24rem)/1.68 var(--serif);
}
.about-section-head{
  align-items:end;
}
.about-section-head > p{
  max-width:430px;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.62;
}
.about-axis-grid,
.about-beyond-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.about-axis,
.about-beyond-card{
  display:flex;
  flex-direction:column;
  min-height:290px;
  padding:clamp(1.5rem,2.8vw,2.15rem);
  background:#fff;
}
.about-axis h3,
.about-beyond-card h3{
  margin:.65rem 0 .8rem;
  font-size:clamp(1.45rem,2.2vw,1.8rem);
}
.about-axis p,
.about-beyond-card p{
  margin:0;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.65;
}
.about-axis .text-link,
.about-beyond-card .text-link{
  margin-top:auto;
  padding-top:1.2rem;
}
.about-status{
  margin:1.35rem 0 1.4rem;
  padding:1rem 0 0;
  border-top:1px solid var(--line);
}
.about-status-label{
  margin-bottom:.45rem;
  color:var(--accent);
  font-size:.67rem;
  font-weight:750;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.about-status p{
  margin:0;
  color:var(--muted);
  line-height:1.68;
}
.about-status strong{
  color:var(--ink);
}
.about-inline-links{
  display:flex;
  flex-wrap:wrap;
  gap:1rem 1.8rem;
  margin-top:1.6rem;
}
.about-close .purchase-link{
  display:inline-flex;
  margin-top:1rem;
}

@media(max-width:950px){
  .about-hero-grid{
    grid-template-columns:minmax(0,.9fr) minmax(300px,1.1fr);
    gap:2.5rem;
  }
  .about-hero-copy h1{
    font-size:clamp(3.7rem,7vw,5.7rem);
  }
  .about-axis-grid,
  .about-beyond-grid{
    grid-template-columns:1fr;
  }
  .about-axis,
  .about-beyond-card{
    min-height:0;
  }
}
@media(max-width:760px){
  .about-hero-grid,
  .about-intro-grid,
  .about-books-grid,
  .about-close-grid{
    grid-template-columns:1fr;
  }
  .about-hero{
    padding-top:3rem;
  }
  .about-hero-copy h1{
    font-size:clamp(3.7rem,16vw,6rem);
  }
  .about-hero-image{
    max-width:700px;
  }
}


/* --- V28: About hero fit + tighter Current Projects entry --- */

/* ABOUT
   Keep the editorial scale but prevent the title from intruding into
   the museum photograph at medium/large desktop widths. */
.about-hero-grid{
  grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);
  gap:clamp(3rem,5vw,5.5rem);
}
.about-hero-copy{
  min-width:0;
}
.about-hero-copy h1{
  font-size:clamp(4rem,6vw,6.65rem);
  line-height:.9;
  overflow-wrap:normal;
}
.about-hero-image{
  min-width:0;
}

/* HOME — Current Projects
   Reduce only the large blank lead-in before NOW, not the internal
   spacing of the project section itself. */
.current-projects{
  padding-top:clamp(3rem,5vw,4.6rem) !important;
}
.current-projects > .wrap{
  margin-top:0 !important;
}

@media(max-width:1100px){
  .about-hero-grid{
    grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);
    gap:2.75rem;
  }
  .about-hero-copy h1{
    font-size:clamp(3.8rem,5.8vw,5.7rem);
  }
}

@media(max-width:760px){
  .about-hero-grid{
    grid-template-columns:1fr;
  }
  .about-hero-copy h1{
    font-size:clamp(3.6rem,15vw,5.6rem);
  }
}



/* --- V29: Contact page --- */
.contact-hero{
  padding:clamp(4rem,8vw,7rem) 0 clamp(3.5rem,6vw,5rem);
}
.contact-hero-grid{
  display:grid;
  grid-template-columns:minmax(270px,.82fr) minmax(0,1.18fr);
  gap:clamp(3rem,7vw,7rem);
  align-items:end;
}
.contact-hero h1{
  margin:.55rem 0 0;
  font-size:clamp(4.4rem,8vw,8rem);
  line-height:.9;
  letter-spacing:-.035em;
}
.contact-hero-copy{
  max-width:680px;
  padding-bottom:.35rem;
}
.contact-hero-copy p{
  margin:0 0 1.15rem;
  color:var(--muted);
  font:clamp(1.08rem,1.8vw,1.36rem)/1.65 var(--serif);
}
.contact-email{
  display:inline-block;
  color:var(--ink);
  font:clamp(1.35rem,2.4vw,2rem)/1.2 var(--serif);
  text-decoration:none;
  border-bottom:1px solid var(--accent);
}
.contact-email:hover,
.contact-email:focus-visible{
  color:var(--accent);
}
.contact-section-head{
  align-items:end;
}
.contact-section-head > p{
  max-width:410px;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.62;
}
.contact-route-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.contact-route{
  display:flex;
  flex-direction:column;
  min-height:260px;
  padding:clamp(1.5rem,3vw,2.2rem);
  background:#fff;
}
.contact-route h3{
  margin:.65rem 0 .85rem;
  font-size:clamp(1.45rem,2.2vw,1.85rem);
}
.contact-route p{
  margin:0;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.66;
}
.contact-route .text-link{
  margin-top:auto;
  padding-top:1.2rem;
}
.contact-form-grid{
  display:grid;
  grid-template-columns:minmax(230px,.72fr) minmax(0,1.28fr);
  gap:clamp(3rem,7vw,7rem);
  align-items:start;
}
.contact-form-intro > p{
  max-width:350px;
  color:var(--muted);
  font-size:.84rem;
  line-height:1.62;
}
.contact-direct{
  margin-top:2rem;
  padding-top:1rem;
  border-top:1px solid var(--line);
}
.contact-direct-label{
  display:block;
  margin-bottom:.4rem;
  color:var(--accent);
  font-size:.66rem;
  font-weight:750;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.contact-direct a{
  color:var(--ink);
  font-size:.9rem;
  text-decoration:none;
}
.contact-form{
  max-width:780px;
}
.form-row-two{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.contact-form label{
  display:block;
  margin-bottom:1rem;
}
.contact-form label > span{
  display:block;
  margin-bottom:.45rem;
  color:var(--ink);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.045em;
}
.contact-form input,
.contact-form select,
.contact-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:0;
  background:#fff;
  color:var(--ink);
  font:inherit;
  padding:.88rem .9rem;
}
.contact-form textarea{
  resize:vertical;
  min-height:190px;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{
  outline:1px solid var(--accent);
  outline-offset:1px;
  border-color:var(--accent);
}
.contact-form-security{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-end;
  margin:1rem 0 1.25rem;
}
.turnstile-placeholder{
  min-width:230px;
  padding:.75rem .85rem;
  border:1px dashed var(--line);
  color:var(--muted);
  font-size:.68rem;
}
.contact-form-security p{
  max-width:310px;
  margin:0;
  color:var(--muted);
  font-size:.68rem;
  line-height:1.5;
  text-align:right;
}
.contact-submit{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  padding:.82rem 1.05rem;
  border:1px solid var(--ink);
  border-radius:0;
  background:var(--ink);
  color:#fff;
  font:inherit;
  font-size:.76rem;
  font-weight:700;
}
.contact-submit:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.form-prototype-note{
  display:inline-block;
  margin:0 0 0 .8rem;
  color:var(--muted);
  font-size:.68rem;
}
.contact-close-grid{
  display:grid;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);
  gap:clamp(3rem,7vw,7rem);
}
.contact-related{
  border-top:1px solid var(--line);
}
.contact-related a{
  display:grid;
  grid-template-columns:minmax(160px,.65fr) minmax(0,1.35fr);
  gap:1rem;
  padding:1rem 0;
  border-bottom:1px solid var(--line);
  color:inherit;
  text-decoration:none;
}
.contact-related strong{
  font:1rem/1.3 var(--serif);
  font-weight:600;
}
.contact-related span{
  color:var(--muted);
  font-size:.78rem;
  line-height:1.45;
}
.contact-related a:hover strong,
.contact-related a:focus-visible strong{
  color:var(--accent);
}

@media(max-width:850px){
  .contact-hero-grid,
  .contact-form-grid,
  .contact-close-grid{
    grid-template-columns:1fr;
    gap:1.5rem;
  }
  .contact-route-grid{
    grid-template-columns:1fr;
  }
  .contact-route{
    min-height:0;
  }
}
@media(max-width:600px){
  .contact-hero h1{
    font-size:clamp(4rem,18vw,6rem);
  }
  .form-row-two{
    grid-template-columns:1fr;
    gap:0;
  }
  .contact-form-security{
    display:block;
  }
  .contact-form-security p{
    margin-top:.7rem;
    text-align:left;
  }
  .form-prototype-note{
    display:block;
    margin:.65rem 0 0;
  }
  .contact-related a{
    grid-template-columns:1fr;
    gap:.25rem;
  }
}


/* --- V30: simplified final Contact page --- */
.contact-hero-compact{
  padding-bottom:clamp(2.6rem,4vw,3.7rem);
}
.contact-form-section-first{
  padding-top:clamp(3.2rem,5vw,4.6rem);
  border-top:1px solid var(--line);
}
.contact-note-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.contact-note{
  display:flex;
  flex-direction:column;
  min-height:255px;
  padding:clamp(1.5rem,3vw,2.2rem);
  background:#fff;
}
.contact-note h2{
  margin:.65rem 0 .85rem;
  font-size:clamp(1.45rem,2.2vw,1.85rem);
}
.contact-note p{
  margin:0;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.67;
}
.contact-note .text-link{
  margin-top:auto;
  padding-top:1.2rem;
}
.contact-note-links{
  display:flex;
  flex-wrap:wrap;
  gap:1rem 1.5rem;
  margin-top:auto;
  padding-top:1.2rem;
}
.contact-note-links .text-link{
  margin-top:0;
  padding-top:0;
}

@media(max-width:760px){
  .contact-note-grid{
    grid-template-columns:1fr;
  }
  .contact-note{
    min-height:0;
  }
}


/* --- V31: final CV integration --- */
.about-hero-actions{
  margin-top:1.35rem;
}


/* --- V33: analytics consent --- */
.analytics-consent{
  position:fixed;
  left:clamp(.75rem,2vw,1.5rem);
  right:clamp(.75rem,2vw,1.5rem);
  bottom:clamp(.75rem,2vw,1.5rem);
  z-index:1200;
  border:1px solid var(--line);
  background:rgba(255,255,255,.98);
  box-shadow:0 14px 44px rgba(0,0,0,.14);
}
.analytics-consent-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1.5rem;
  align-items:center;
  max-width:1180px;
  margin:0 auto;
  padding:1rem 1.1rem;
}
.analytics-consent-copy strong{
  display:block;
  margin-bottom:.2rem;
  color:var(--ink);
  font:1rem/1.3 var(--serif);
  font-weight:600;
}
.analytics-consent-copy p{
  margin:0;
  max-width:760px;
  color:var(--muted);
  font-size:.75rem;
  line-height:1.5;
}
.analytics-consent-actions{
  display:flex;
  gap:.6rem;
  align-items:center;
}
.analytics-consent-actions button{
  border-radius:0;
  padding:.68rem .82rem;
  font:inherit;
  font-size:.7rem;
  font-weight:700;
  cursor:pointer;
}
.analytics-consent-decline{
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
}
.analytics-consent-accept{
  border:1px solid var(--ink);
  background:var(--ink);
  color:#fff;
}
.analytics-consent-actions button:hover,
.analytics-consent-actions button:focus-visible{
  outline:1px solid var(--accent);
  outline-offset:2px;
}
[data-analytics-preferences]{
  cursor:pointer;
}
.footer-analytics{
  margin-top:.8rem;
  font-size:.7rem;
}
.footer-analytics a{
  color:var(--muted);
  text-decoration:none;
}
.footer-analytics a:hover,
.footer-analytics a:focus-visible{
  color:var(--accent);
}

@media(max-width:700px){
  .analytics-consent-inner{
    grid-template-columns:1fr;
    gap:.85rem;
  }
  .analytics-consent-actions{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}


/* --- V34: live contact form, privacy, strict-CSP helpers --- */
.hp-field{
  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;
}
.turnstile-live{
  min-width:300px;
  min-height:66px;
  display:flex;
  align-items:center;
}
.turnstile-loading{
  display:block;
  padding:.75rem .85rem;
  border:1px dashed var(--line);
  color:var(--muted);
  font-size:.68rem;
  line-height:1.4;
}
.turnstile-local .turnstile-loading{
  max-width:300px;
}
.contact-form-security a,
.analytics-consent-copy a{
  color:inherit;
  text-decoration-thickness:1px;
  text-underline-offset:.15em;
}
.contact-submit-row{
  display:flex;
  align-items:center;
  gap:.9rem;
  flex-wrap:wrap;
}
.form-status{
  margin:0;
  min-height:1.2em;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.45;
}
.form-status-success{
  color:var(--ink);
}
.form-status-error{
  color:#8a2f24;
}
.simple-page-hero{
  padding:clamp(4.5rem,9vw,8rem) 0 clamp(3rem,6vw,5.5rem);
  border-bottom:1px solid var(--line);
}
.simple-page-hero h1{
  margin:.35rem 0 1.2rem;
  max-width:900px;
  font-size:clamp(3.8rem,8vw,7.2rem);
  line-height:.92;
}
.simple-page-lead{
  max-width:720px;
  color:var(--muted);
  font-size:clamp(1rem,1.8vw,1.24rem);
  line-height:1.6;
}
.privacy-grid{
  display:grid;
  grid-template-columns:minmax(170px,.45fr) minmax(0,1.55fr);
  gap:clamp(3rem,8vw,8rem);
  align-items:start;
}
.privacy-meta{
  position:sticky;
  top:7rem;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.6;
}
.privacy-meta .text-link{
  display:inline-block;
  margin-top:1rem;
}
.privacy-content{
  max-width:820px;
}
.privacy-content section{
  padding:0 0 2.5rem;
  margin:0 0 2.5rem;
  border-bottom:1px solid var(--line);
}
.privacy-content section:last-child{
  border-bottom:0;
  margin-bottom:0;
  padding-bottom:0;
}
.privacy-content h2{
  margin:0 0 1rem;
  font-size:clamp(1.7rem,3vw,2.45rem);
}
.privacy-content p{
  color:var(--muted);
  font-size:.9rem;
  line-height:1.75;
}
.privacy-content a{
  color:var(--ink);
}
.error-page-wrap{
  max-width:760px;
  padding-top:10vh;
  padding-bottom:10vh;
}
.error-page-title{
  font-size:clamp(3rem,8vw,6rem);
  line-height:.95;
  margin:.5rem 0 1.2rem;
}
.error-page-copy{
  color:var(--muted);
  max-width:620px;
}

@media(max-width:850px){
  .privacy-grid{
    grid-template-columns:1fr;
    gap:2rem;
  }
  .privacy-meta{
    position:static;
  }
}
@media(max-width:600px){
  .turnstile-live{
    min-width:0;
    width:100%;
  }
  .contact-submit-row{
    display:block;
  }
  .contact-submit-row .form-status{
    margin-top:.7rem;
  }
}
