
:root{
  --bg:#e8edf0;
  --surface:#f6f8f8;
  --surface-2:#dce5e9;
  --surface-3:#eef2f3;
  --ink:#18272e;
  --muted:#5e7079;
  --accent:#315f70;
  --accent-dark:#244956;
  --line:#c6d1d6;
  --shell:1180px;
  --reading:780px;
  --serif:Georgia,"Times New Roman",serif;
  --sans:Arial,Helvetica,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}
a{color:inherit}
img{max-width:100%}
main{overflow:hidden}
.site-shell,.container,.section,.hero,.page-hero{
  width:min(var(--shell),calc(100% - 64px));
  margin-left:auto;
  margin-right:auto;
}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:16px;top:16px;background:white;padding:8px;z-index:100}

/* HEADER — identical on every page */
.site-header{background:rgba(232,237,240,.96);border-bottom:1px solid var(--line)}
.header-inner{min-height:76px;display:flex;align-items:center;gap:36px}
.wordmark{font-size:.94rem;font-weight:700;letter-spacing:.20em;text-decoration:none;white-space:nowrap}
.site-nav{margin-left:auto;display:flex;align-items:center;gap:26px;flex-wrap:nowrap}
.site-nav a{font-size:.90rem;font-weight:400;text-decoration:none;white-space:nowrap;color:#2f424b}
.site-nav a:hover{color:var(--accent-dark)}
.menu-toggle{display:none}

/* HOME HERO */
.hero{padding:92px 0 72px}
.hero .eyebrow,.section-label,.eyebrow{
  margin:0 0 14px;
  font-size:.70rem;
  line-height:1.2;
  letter-spacing:.20em;
  font-weight:700;
  text-transform:uppercase;
  color:var(--accent);
}
.hero h1{
  max-width:1040px;
  margin:0 0 28px;
  font-family:var(--serif);
  font-size:clamp(3.8rem,7vw,7.1rem);
  line-height:.95;
  letter-spacing:-.045em;
  font-weight:400;
}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero>p,.lede{
  max-width:760px;
  margin:0;
  font-family:var(--serif);
  font-size:clamp(1.25rem,1.8vw,1.6rem);
  line-height:1.52;
  color:#42555e;
}

/* HOME SECTIONS — compact and consistent */
.section{padding:54px 0;border-top:1px solid var(--line)}
.section h2{
  margin:0 0 18px;
  font-family:var(--serif);
  font-size:clamp(2.25rem,3.6vw,3.9rem);
  line-height:1.03;
  letter-spacing:-.025em;
  font-weight:400;
}
.why-home,.papers-home,.author-home{display:block}
.why-home>*,
.papers-home>*,
.author-home>*{max-width:800px}
.why-grid,.papers-grid{display:block}
.why-copy{max-width:800px}
.lead{font-family:var(--serif);font-size:1.42rem;line-height:1.48;margin:0 0 18px}
.why-copy p:not(.lead),.papers-grid p:not(.method-line),.author-home p{max-width:760px;margin:0 0 15px;line-height:1.72}
.method-line{margin:28px 0 18px;font-family:var(--serif);font-size:clamp(1.65rem,2.5vw,2.3rem);color:var(--accent)}

/* Books home: centered three-column composition */
.books-compact{
  width:100%;
  max-width:none;
  padding-left:max(32px,calc((100vw - var(--shell))/2));
  padding-right:max(32px,calc((100vw - var(--shell))/2));
  background:var(--surface);
}
.section-head{
  width:min(var(--shell),100%);
  margin:0 auto 34px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);
  gap:56px;
  align-items:end;
}
.section-head h2{margin:0}
.section-head>p{margin:0;max-width:520px;color:#40545d}
.book-strip{
  width:min(980px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:70px;
}
.book-tile{
  min-width:0;
  display:grid;
  grid-template-columns:34px 1fr;
  column-gap:10px;
  align-items:baseline;
  text-decoration:none;
}
.book-tile img{
  grid-column:1/-1;
  width:220px;
  height:330px;
  margin:0 auto 20px;
  display:block;
  object-fit:cover;
  box-shadow:0 10px 24px rgba(24,39,46,.14);
}
.book-tile span{font-family:var(--serif);font-size:1.35rem;color:#83949b}
.book-tile strong{font-family:var(--serif);font-size:1.18rem;line-height:1.18;font-weight:400}
.section-end{width:min(980px,100%);margin:24px auto 0;text-align:right}
.text-link{font-weight:700;text-decoration:none;color:var(--accent-dark)}
.text-link:hover{text-decoration:underline}

/* Image + text sections */
.podcast-home,.mila-project{
  width:100%;
  max-width:none;
  padding-left:max(32px,calc((100vw - var(--shell))/2));
  padding-right:max(32px,calc((100vw - var(--shell))/2));
  display:grid;
  align-items:center;
}
.podcast-home{
  grid-template-columns:280px minmax(0,650px);
  justify-content:center;
  gap:72px;
  background:var(--surface-2);
}
.podcast-art-fixed{width:280px;height:280px;margin:0;overflow:hidden}
.podcast-art-fixed img{width:100%;height:100%;display:block;object-fit:cover}
.podcast-home>div{max-width:650px}
.podcast-home p{margin:0 0 14px}
.mila-project{
  grid-template-columns:minmax(0,650px) 280px;
  justify-content:center;
  gap:72px;
  background:var(--surface-3);
}
.mila-project-copy{max-width:650px}
.mila-project .status{margin:12px 0 20px;font-size:.74rem;letter-spacing:.18em;font-weight:700;color:#75649a}
.mila-project-copy>p{margin:0 0 14px}
.fineprint{font-size:.86rem;color:var(--muted)}
.mila-mark{width:280px;height:280px;margin:0}
.mila-mark img{width:100%;height:100%;display:block;object-fit:contain}
.contact-home{padding-top:42px;padding-bottom:44px}
.contact-home h2{max-width:760px;font-size:clamp(1.9rem,3vw,2.8rem)}

/* INTERNAL PAGE HERO — centered, no side drift */
.inner-hero,.page-hero{
  width:100%;
  max-width:none;
  margin:0;
  padding:68px max(32px,calc((100vw - var(--shell))/2)) 46px;
  background:var(--surface-3);
  border-bottom:1px solid var(--line);
}
.inner-hero .inner-narrow,
.page-hero>*{
  width:min(860px,100%);
  margin-left:auto;
  margin-right:auto;
}
.inner-hero h1,.page-hero h1{
  max-width:860px;
  margin:0 0 18px;
  font-family:var(--serif);
  font-size:clamp(3rem,5vw,5rem);
  line-height:1;
  letter-spacing:-.035em;
  font-weight:400;
}
.inner-lead,.page-hero .lede{
  max-width:760px;
  margin:0;
  font-family:var(--serif);
  font-size:1.18rem;
  line-height:1.58;
  color:#465b64;
}

/* INTERNAL READING SECTIONS */
.inner-section{
  width:100%;
  padding:48px 32px;
  border-bottom:1px solid var(--line);
}
.inner-section>.inner-narrow,
.inner-section>.prose-page,
.inner-section>.container.inner-narrow,
.prose.long,.prose.long-prose,.section.prose{
  width:min(var(--reading),calc(100% - 0px));
  max-width:var(--reading);
  margin-left:auto;
  margin-right:auto;
}
.prose-page h2,.long-prose h2,.prose h2{
  margin:36px 0 13px;
  font-family:var(--serif);
  font-size:clamp(1.8rem,2.8vw,2.5rem);
  line-height:1.08;
  font-weight:400;
}
.prose-page h2:first-child,.long-prose h2:first-child,.prose h2:first-child{margin-top:0}
.prose-page p,.long-prose p,.prose p{margin:0 0 15px;font-size:1.04rem;line-height:1.74}
.prose-page blockquote,.prose blockquote{
  margin:28px 0;
  padding:4px 0 4px 20px;
  border-left:3px solid var(--accent);
  font-family:var(--serif);
  font-size:1.35rem;
  line-height:1.45;
  color:var(--accent-dark);
}
.instrument-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin:24px 0;
}
.instrument-grid>div{padding:20px;background:var(--surface);border:1px solid var(--line)}
.instrument-grid h3{margin:0 0 8px;font-family:var(--serif);font-size:1.2rem;font-weight:400}
.instrument-grid p{font-size:.93rem;line-height:1.58;margin:0}

/* Books overview */
.trilogy-intro{width:min(800px,100%);max-width:800px;margin:0 auto 34px;line-height:1.72}
.book-detail-grid{
  width:min(1000px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:54px;
}
.book-detail-card{text-align:left}
.book-detail-card img{
  width:210px;height:315px;display:block;object-fit:cover;
  margin:0 auto 20px;box-shadow:0 10px 24px rgba(24,39,46,.14)
}
.book-detail-card h2{margin:0 0 10px;font-family:var(--serif);font-size:1.55rem;line-height:1.12;font-weight:400}
.book-detail-card p{margin:0 0 12px;line-height:1.62}

/* Book detail: intentionally a contained editorial card */
.book-page-layout{
  width:min(920px,100%);
  margin:0 auto;
  padding:38px;
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:54px;
  align-items:start;
  background:var(--surface);
  border:1px solid var(--line);
}
.book-page-cover img{
  width:230px;height:345px;display:block;object-fit:cover;
  box-shadow:0 10px 24px rgba(24,39,46,.15)
}
.book-page-copy h2{margin:0 0 14px;font-family:var(--serif);font-size:2.2rem;line-height:1.05;font-weight:400}
.book-page-copy p{margin:0 0 14px;line-height:1.7}
.publication-status{margin:22px 0 18px;padding-top:16px;border-top:1px solid var(--line);font-weight:700;color:var(--accent-dark)}
.amazon-links{display:flex;flex-wrap:wrap;gap:10px}
.amazon-button{
  display:inline-block;padding:10px 14px;border:1px solid var(--accent);
  text-decoration:none;font-size:.9rem;font-weight:700;color:var(--accent-dark)
}
.amazon-button:hover{background:var(--accent);color:white}
.amazon-button.secondary{border-color:#84959d;color:#4c626c}
.soft-section{background:var(--surface-2)}

/* Podcast detail */
.podcast-page-layout{
  width:min(920px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:270px minmax(0,1fr);
  gap:56px;
  align-items:center;
}
.podcast-page-art img{width:270px;height:270px;display:block;object-fit:cover}
.podcast-page-copy h2{margin:0 0 14px;font-family:var(--serif);font-size:2.25rem;line-height:1.06;font-weight:400}
.podcast-page-copy p{margin:0 0 14px}
.coming-platform{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.small-note{color:var(--muted);font-size:.9rem}

/* Legacy content pages use the same new visual system */
.page-hero{padding-top:68px;padding-bottom:46px}
.page-hero .section-label,.page-hero .eyebrow{width:min(860px,100%);margin-left:auto;margin-right:auto}
.section.prose,.section.prose.long,.section.prose.long-prose{
  padding-top:48px;padding-bottom:48px;border-top:0;
}

/* FOOTER — fixed geometry, Privacy can never fall under Contatti */
.site-footer{border-top:1px solid var(--line);background:#dbe3e7}
.footer-inner{min-height:128px;padding:32px 0;display:grid;grid-template-columns:260px 1fr;gap:50px;align-items:start}
.footer-brand strong{font-size:.84rem;letter-spacing:.18em}
.footer-brand p{margin:6px 0 0;color:var(--muted);font-size:.86rem}
.footer-nav{
  display:grid;
  grid-template-columns:repeat(4,max-content);
  justify-content:end;
  column-gap:28px;
  row-gap:10px;
}
.footer-nav a{font-size:.86rem;font-weight:400;text-decoration:none;color:#40545d}
.footer-nav a:hover{color:var(--accent-dark)}

/* Responsive */
@media(max-width:900px){
  .site-shell,.container,.section,.hero,.page-hero{width:min(var(--shell),calc(100% - 40px))}
  .site-nav{gap:15px}
  .site-nav a{font-size:.82rem}
  .book-strip{gap:30px}
  .podcast-home,.mila-project{gap:44px}
  .footer-nav{grid-template-columns:repeat(3,max-content)}
}
@media(max-width:720px){
  .site-shell,.container,.section,.hero{width:calc(100% - 36px)}
  .header-inner{min-height:68px;display:block;padding:18px 0}
  .wordmark{display:block;margin-bottom:14px}
  .site-nav{display:flex;overflow-x:auto;gap:18px;padding-bottom:2px}
  .site-nav a{font-size:.84rem}
  .hero{padding:62px 0 48px}
  .hero h1{font-size:clamp(3.1rem,15vw,5rem)}
  .section{padding:42px 0}
  .section-head{grid-template-columns:1fr;gap:16px;margin-bottom:28px}
  .book-strip{grid-template-columns:1fr;gap:40px}
  .book-tile{width:240px;margin:0 auto}
  .section-end{text-align:center}
  .podcast-home,.mila-project{
    grid-template-columns:1fr;
    padding-left:18px;padding-right:18px;
    gap:28px
  }
  .podcast-art-fixed,.mila-mark{width:240px;height:240px;margin:0 auto}
  .mila-mark{order:-1}
  .inner-hero,.page-hero{padding:52px 18px 36px}
  .inner-section{padding:38px 18px}
  .instrument-grid{grid-template-columns:1fr}
  .book-detail-grid{grid-template-columns:1fr;gap:42px}
  .book-detail-card{max-width:300px;margin:0 auto}
  .book-page-layout,.podcast-page-layout{
    grid-template-columns:1fr;
    padding:24px;
    gap:28px
  }
  .book-page-cover img{width:190px;height:285px}
  .podcast-page-art img{width:230px;height:230px}
  .footer-inner{grid-template-columns:1fr;gap:22px}
  .footer-nav{grid-template-columns:repeat(2,max-content);justify-content:start}
}

/* V3.1 Podcast — public launch page only */
.trailer-section{background:var(--surface-2)}
.trailer-card{
  width:min(920px,100%);
  margin:0 auto;
  padding:30px 34px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:44px;
  align-items:center;
  background:var(--surface);
  border:1px solid var(--line);
}
.trailer-card h2{
  margin:0 0 10px;
  font-family:var(--serif);
  font-size:2rem;
  line-height:1.08;
  font-weight:400;
}
.trailer-card p{margin:0;line-height:1.65}
.trailer-card audio{width:100%;display:block}
@media(max-width:720px){
  .trailer-card{grid-template-columns:1fr;gap:22px;padding:24px}
}

/* V3.2 book descriptions */
.book-full-description{margin:20px 0 26px}.book-full-description p{margin:0 0 1.05em;line-height:1.68}.book-full-description p:last-child{margin-bottom:0}

/* V3.3 Articoli e paper */
.papers-archive{
  width:100%;
  padding:0;
}
.paper-entry{
  width:100%;
  padding:52px max(32px,calc((100vw - 920px)/2));
  border-bottom:1px solid var(--line);
}
.paper-entry:nth-child(odd){background:var(--surface)}
.paper-entry:nth-child(even){background:var(--surface-2)}
.paper-entry>*{width:min(780px,100%);margin-left:auto;margin-right:auto}
.paper-meta{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:16px;font-size:.68rem;line-height:1.2;letter-spacing:.17em;font-weight:700;color:var(--accent);text-transform:uppercase}
.paper-entry h2{margin-top:0;margin-bottom:10px;font-family:var(--serif);font-size:clamp(2rem,3vw,3rem);line-height:1.08;letter-spacing:-.02em;font-weight:400}
.paper-subtitle{margin-top:0;margin-bottom:18px;font-family:var(--serif);font-size:1.18rem;line-height:1.5;color:#465b64}
.paper-entry>p:not(.paper-subtitle){margin-top:0;margin-bottom:20px;font-size:1.02rem;line-height:1.72}
.paper-link{display:inline-block;font-weight:700;text-decoration:none;color:var(--accent-dark)}
.paper-link:hover{text-decoration:underline}
@media(max-width:720px){.paper-entry{padding:40px 18px}.paper-meta{gap:12px}.paper-entry h2{font-size:2rem}}


/* V3.4 - Articoli archive */
.article-publication-note{
  max-width:1000px;
  margin:0 auto;
  padding:72px 28px 28px;
  text-align:center;
}
.article-publication-note h2{
  max-width:780px;
  margin:10px auto 18px;
}
.article-publication-note p{
  max-width:820px;
  margin:0 auto;
  color:var(--muted);
}
.articles-archive{
  padding-top:22px;
}
