@layer componenti, proposta;
@layer componenti {
/* Circolo del Dr Divago — sistema editoriale, ottobre 2026.
   Fondamenti → struttura → componenti → pagine → adattamenti.
   Font di sistema, nessuna dipendenza. Dimensioni tipografiche in rem. */
:root {
  color-scheme: light;
  --paper: #f7f5ef;
  --surface: #fffdf8;
  --ink: #272d28;
  --muted: #5e655c;
  --accent: #793e38;
  --accent-hover: #5f2f2a;
  --accent-soft: #f0e5df;
  --green: #405140;
  --sage: #e9ede2;
  --rule: #d5d8cd;
  --control-border: #8b9383;
  --serif: 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --content: 76rem;
  --section-space: clamp(3rem, 6vw, 5.5rem);
}

/* 01 — Fondamenti e accessibilità */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 2rem; }
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  color: var(--ink);
  font: 1rem/1.7 var(--sans);
  -webkit-font-smoothing: antialiased;
}
main { flex: 1; min-width: 0; }
img, svg { max-width: 100%; }
img { vertical-align: middle; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .5; }
input, select { min-width: 0; }
input::placeholder { color: var(--muted); opacity: 1; }
:where(a, button, input, select):focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
::selection { color: var(--ink); background: #ded8bb; }
[hidden] { display: none !important; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; overflow-wrap: break-word; text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 4.5vw, 4rem); line-height: 1.12; letter-spacing: -.04em; }
h2 { font-size: clamp(2rem, 3vw, 2.75rem); line-height: 1.18; letter-spacing: -.03em; }
h3 { font-size: 1.5rem; line-height: 1.35; letter-spacing: -.015em; }
h1 em, h2 em { font-weight: 400; color: var(--accent); }
p { overflow-wrap: break-word; }
p + p { margin-top: 1rem; }
.wrap { width: min(var(--content), calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.section { padding-block: var(--section-space); }
.eyebrow { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; color: var(--green); font-size: .6875rem; font-weight: 650; line-height: 1.65; letter-spacing: .14em; }
.tiny-line { width: 1.75rem; height: 1px; flex-shrink: 0; background: currentColor; }
.source-note, .load-error, .empty { font-size: .8125rem; line-height: 1.85; color: var(--muted); }
.source-note { margin-top: 1.5rem; }
.empty, .load-error { grid-column: 1 / -1; padding-block: 3rem; }
.load-error { color: var(--accent); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip { position: fixed; top: 1rem; left: 1rem; z-index: 20; padding: .75rem 1.25rem; background: var(--ink); color: white; transform: translateY(-200%); }
.skip:focus { transform: translateY(0); }

/* 02 — Identità, navigazione e piè di pagina */
.topline { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: .65rem var(--gutter); background: var(--green); color: var(--surface); font-size: .6875rem; line-height: 1.6; letter-spacing: .09em; }
.preview-tag { flex-shrink: 0; padding-left: 1rem; border-left: 1px solid #ffffff55; }
.header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 2rem 1.65rem; border-bottom: 1px solid var(--rule); }
.wordmark { flex-shrink: 0; font: 2.1rem/1.15 var(--serif); letter-spacing: -.045em; }
.wordmark em, .footer-wordmark em { color: var(--accent); }
.wordmark > span { display: block; margin-top: .75rem; font: .625rem/1.65 var(--sans); letter-spacing: .1em; }
.header nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .25rem 1.15rem; font-size: .8125rem; }
.header nav a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem 0; border-bottom: 2px solid transparent; white-space: nowrap; }
.header nav a:hover { color: var(--accent); border-bottom-color: var(--rule); }
.header nav a[aria-current='page'] { color: var(--accent); border-bottom-color: var(--accent); }
.header nav a.nav-featured { padding-inline: .8rem; background: var(--sage); border: 1px solid #cbd2c1; }
.header nav a.nav-featured[aria-current='page'] { background: var(--green); color: white; border-color: var(--green); }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .75rem; padding-top: 1.75rem; font-size: .8125rem; color: var(--muted); }
.breadcrumb a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: .25em; }
.footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem 2rem; padding-block: 2rem 2.5rem; border-top: 1px solid var(--rule); }
.footer-wordmark { font: 1.5rem/1.3 var(--serif); letter-spacing: -.035em; }
.footer > span { font-size: .6875rem; letter-spacing: .1em; color: var(--muted); }
.footer-links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .8125rem; }
.footer-links a { padding-block: .5rem; }
.footer-links a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: .25em; }

/* 03 — Controlli e componenti condivisi */
.button, .small-button { display: inline-flex; justify-content: center; align-items: center; min-height: 2.875rem; padding: .75rem 1.25rem; border: 1px solid transparent; border-radius: 2px; font-size: .875rem; line-height: 1.5; text-align: center; transition: background-color .18s, border-color .18s, color .18s; }
.button { gap: 1.75rem; background: var(--accent); color: white; }
.button:hover { background: var(--accent-hover); }
.button > span { font-size: 1.15em; }
.small-button { gap: .5rem; border-color: var(--control-border); background: transparent; }
.small-button:hover:enabled { background: var(--sage); border-color: var(--green); }
.text-link { display: inline-block; padding-block: .35rem; border-bottom: 1px solid currentColor; font-size: .8125rem; line-height: 1.65; color: var(--accent); }
.text-link:hover { color: var(--accent-hover); border-bottom-width: 2px; padding-bottom: calc(.35rem - 1px); }
.archive-tools, .library-tools { display: flex; align-items: stretch; gap: .875rem; margin-top: 2rem; }
.search { display: flex; flex: 1; align-items: center; gap: .75rem; min-width: 0; padding: .75rem 1rem; background: var(--surface); border: 1px solid var(--control-border); border-radius: 2px; }
.search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.search svg { width: 1.25rem; height: 1.25rem; flex-shrink: 0; color: var(--muted); }
.search input { width: 100%; padding: .15rem 0; border: 0; background: transparent; font-size: 1rem; }
.select-label { display: flex; align-items: center; gap: 1rem; min-height: 3.25rem; padding-inline: 1rem .6rem; border: 1px solid var(--control-border); border-radius: 2px; background: var(--surface); font-size: .8125rem; }
.select-label > span { color: var(--muted); }
select { max-width: 15rem; padding: .75rem .25rem; border: 0; background: transparent; font-size: .875rem; }
.results-line { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; margin: 1.25rem 0 1.75rem; font-size: .8125rem; color: var(--muted); }
.results-line > span + span { font-size: .6875rem; letter-spacing: .075em; }
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.25rem; margin-top: 2.5rem; font-size: .8125rem; color: var(--muted); }
.pagination > span { font-variant-numeric: tabular-nums; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.section-head .eyebrow { margin-bottom: .875rem; }
.section-head > p { max-width: 19rem; flex-shrink: 0; font-size: .875rem; line-height: 1.8; color: var(--muted); }
.section-head > .text-link { flex-shrink: 0; }
.page-heading { margin-bottom: 2rem; }
.page-heading h1 { max-width: 52rem; }
body:not([data-page='home']) main > .section, body:not([data-page='home']) .library-section > .section { padding-top: 2.5rem; }

/* 04 — Home e percorsi di lettura */
/* La Home si apre sulle conversazioni scelte per conoscere Dr Divago. */
.home-discovery { padding-block: 2.5rem 3rem; }
.home-discovery-heading { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; margin-bottom: 0; }
.home-discovery-heading .eyebrow { margin-bottom: 1rem; }
.home-discovery-heading h1 { font-size: clamp(2.2rem, 4.1vw, 3.5rem); line-height: 1.05; letter-spacing: -.045em; }
.home-discovery-intro { color: var(--muted); font: 1.125rem/1.8 var(--serif); }
.home-discovery-intro > p + p { margin-top: .875rem; }
.home-starters { padding-top: 3rem; }
.home-starters-label { margin-bottom: 1.25rem; }
.home-conversations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.home-conversation { min-width: 0; }
.home-conversation .thumbnail-button { border: 1px solid var(--rule); }
.home-conversation-label { margin-block: 1.25rem .75rem; font-size: .625rem; }
.home-conversation h2 { margin-bottom: .875rem; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.2; }
.home-conversation h2 a:hover { text-decoration: underline; text-underline-offset: .15em; text-decoration-thickness: 1px; }
.home-conversation-description { max-width: 41rem; color: var(--muted); font-size: .9375rem; line-height: 1.85; }
.home-conversation-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: 1.25rem; }
.home-conversation-actions .button { gap: 1rem; }
@media (max-width: 46rem) {
  .home-discovery { padding-top: 1.75rem; }
  .home-discovery-heading, .home-conversations { grid-template-columns: minmax(0, 1fr); }
  .home-discovery-heading { gap: 1rem; margin-bottom: 0; }
  .home-starters { padding-top: 2rem; }
  .home-discovery-intro { font-size: 1rem; }
  .home-conversations { gap: 2.5rem; }
}

.hero { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: clamp(2rem, 5vw, 5rem); padding-block: 4rem 4.5rem; }
.hero h1 { font-size: clamp(3rem, 5.1vw, 4.5rem); line-height: 1.05; letter-spacing: -.055em; margin-bottom: 1.75rem; }
.intro { max-width: 36rem; margin-bottom: 1.75rem; font-size: 1rem; line-height: 1.9; color: var(--muted); }
.home-channel-link { text-decoration: underline; text-underline-offset: .2em; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.hero-art { position: relative; min-width: 0; padding: 1.75rem 1.5rem 1.5rem; background: #e7e9dd; border: 1px solid #d7dccd; }
.art-corner { display: block; color: var(--green); font-size: .6875rem; font-weight: 600; letter-spacing: .13em; }
.hero-shelf { display: flex; align-items: flex-end; justify-content: center; gap: 1.1rem; padding: 2rem .5rem 1.5rem; border-bottom: 1px solid #c4ccb9; }
.hero-cover { width: 31%; max-width: 8.75rem; filter: drop-shadow(5px 9px 6px #28322223); transition: transform .22s; }
.hero-cover img { display: block; width: 100%; height: 13rem; object-fit: contain; object-position: bottom; }
.hero-cover:nth-child(1) { transform: rotate(-6deg) translateY(-.4rem); }
.hero-cover:nth-child(2) { transform: translateY(-1rem); }
.hero-cover:nth-child(3) { transform: rotate(5deg); }
.hero-cover:hover { transform: translateY(-1.5rem); }
.hero-caption { padding-top: 1.25rem; display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.hero-caption p { font: italic 1.6rem/1.35 var(--serif); max-width: 14rem; color: var(--green); }
.hero-caption > span { max-width: 9rem; font-size: .6875rem; line-height: 1.8; letter-spacing: .06em; color: var(--muted); }
.stats-band { border-block: 1px solid var(--rule); background: #efeee5; }
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; align-items: center; padding-block: 1.75rem; }
.stats > div { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.stats strong { font: 2.75rem/1 var(--serif); letter-spacing: -.045em; font-variant-numeric: lining-nums tabular-nums; }
.stats span { max-width: 7rem; font-size: .8125rem; line-height: 1.6; color: var(--muted); }
.stats p { font-size: .75rem; line-height: 1.8; color: var(--muted); }
.completed-spotlight { display: flex; align-items: center; justify-content: space-between; gap: 2.5rem; padding-block: 2.5rem; border-bottom: 1px solid var(--rule); }
.completed-spotlight .eyebrow { margin-bottom: .75rem; }
.completed-spotlight h2 { font-size: clamp(1.875rem, 2.8vw, 2.5rem); }
.completed-spotlight p:last-child { margin-top: .875rem; font-size: .875rem; color: var(--muted); }
.completed-spotlight .button { flex-shrink: 0; background: var(--green); }
.completed-spotlight .button:hover { background: #2d3d2d; }
.path-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--rule); background: var(--surface); }
.path-card { display: flex; flex-direction: column; min-width: 0; padding: 1.75rem 1.5rem; transition: background-color .2s; }
.path-card + .path-card { border-left: 1px solid var(--rule); }
.path-card:hover { background: #efeee5; }
.path-number { font-size: .6875rem; line-height: 1.6; letter-spacing: .1em; color: var(--accent); }
.path-card h3 { margin-block: 1.5rem .875rem; font-size: 1.75rem; line-height: 1.2; }
.path-card p { margin-bottom: 2rem; font-size: .875rem; line-height: 1.8; color: var(--muted); }
.path-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; font-size: .75rem; color: var(--green); }
.path-foot > span:last-child { font-size: 1.5rem; color: var(--accent); }
.home-featured-band { background: var(--sage); border-block: 1px solid #d5dcca; }
/* Raccordo della prima proposta: respiro dopo i video e fascia libri più raccolta. */
.home-starters + .home-featured-band { margin-block-start: clamp(2rem, 4vw, 3.5rem); }
.home-starters + .home-featured-band > .section { padding-block: clamp(2.5rem, 4vw, 3.5rem); }
.home-books { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.home-book { display: grid; grid-template-columns: 5rem minmax(0, 1fr); align-items: center; gap: 1.25rem; padding-block: 1rem; }
.home-book-image { display: flex; align-items: center; justify-content: center; height: 9rem; }
.home-book-image img { max-width: 100%; width: auto; height: 8.5rem; object-fit: contain; filter: drop-shadow(3px 5px 3px #29352224); transition: transform .2s; }
.home-book:hover img { transform: translateY(-4px); }
.home-book .eyebrow { margin-bottom: .75rem; font-size: .6875rem; letter-spacing: .09em; }
.home-book h3 { font-size: 1.5rem; margin-bottom: .5rem; }
.home-book p:not(.eyebrow) { font-size: .8125rem; color: var(--muted); margin-bottom: .5rem; }
.home-book .text-link { font-size: .75rem; }
.home-project { padding-block: 3rem 4rem; border-top: 1px solid var(--rule); }
.home-project h2 { margin-bottom: 1.25rem; }
.home-project > p:not(.eyebrow) { max-width: 46rem; margin-bottom: 1rem; line-height: 1.9; color: var(--muted); }

/* 05 — Videoteca, schede e passaggi */
.video-grid, .completed-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 1.75rem; }
.video-card { min-width: 0; padding-bottom: 1.5rem; border-bottom: 1px solid var(--rule); }
.thumbnail-button, .completed-card-image { display: block; position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; padding: 0; border: 0; background: #dfe2d6; }
.thumbnail-button img, .completed-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s; }
.thumbnail-button:hover img, .completed-card-image:hover img { transform: scale(1.035); }
.play-icon { display: flex; align-items: center; justify-content: center; position: absolute; left: .875rem; bottom: .875rem; width: 2.5rem; height: 2.5rem; padding-left: 2px; border-radius: 50%; background: var(--surface); color: var(--ink); font-size: .8125rem; box-shadow: 0 1px 6px #0002; }
.duration { position: absolute; right: .75rem; bottom: .75rem; padding: .2rem .45rem; border-radius: 2px; background: #202820ed; color: white; font: .75rem/1.5 var(--sans); font-variant-numeric: tabular-nums; }
.video-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 1rem 0 .5rem; color: var(--muted); font-size: .6875rem; line-height: 1.7; letter-spacing: .055em; }
.saved-dot { width: .375rem; height: .375rem; flex-shrink: 0; border-radius: 50%; background: var(--green); }
.video-card h3 { font-size: 1.5rem; line-height: 1.4; }
.title-button { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; }
.title-button:hover { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.sheet-link { margin-top: .875rem; }
.sheet-intro { margin-bottom: 1.75rem; padding: 1rem 1.25rem; border-left: 3px solid var(--green); background: var(--sage); font-size: .875rem; line-height: 1.8; }
.sheet-intro a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.completed-intro { max-width: 53rem; color: var(--muted); line-height: 1.9; }
.completed-stats { display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; margin-block: 1.75rem 1rem; padding-block: 1.5rem; border-block: 1px solid var(--rule); }
.completed-stats > span { display: flex; align-items: center; gap: .875rem; font-size: .875rem; color: var(--muted); }
.completed-stats strong { font: 2.25rem/1.2 var(--serif); color: var(--ink); }
.completed-method { max-width: 54rem; }
.completed-search { max-width: 46rem; margin-top: 2rem; }
.completed-grid { margin-top: 1.75rem; }
.completed-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--rule); background: var(--surface); }
.completed-card-copy { display: flex; flex: 1; flex-direction: column; padding: 1.5rem; }
.completed-card .eyebrow { font-size: .6875rem; letter-spacing: .1em; margin-bottom: .875rem; }
.completed-card h2 { font-size: 1.65rem; line-height: 1.3; margin-bottom: 1rem; }
.completed-card h2 a:hover { color: var(--accent); }
.completed-excerpt { margin-bottom: 1.25rem; font-size: .875rem; line-height: 1.85; color: var(--muted); }
.topic-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.topic-tags li { padding: .35rem .65rem; border: 1px solid #c5cfba; background: #f0f3e9; color: var(--green); font-size: .75rem; line-height: 1.6; }
.completed-card .topic-tags { margin-bottom: 1rem; }
.completed-card .topic-tags li { font-size: .6875rem; }
.completed-card-meta { margin-bottom: 1.25rem; font-size: .75rem; color: var(--green); }
.completed-card .text-link { align-self: flex-start; margin-top: auto; }
.video-sheet { max-width: 72rem; }
.sheet-heading { margin-block: 2rem 2.75rem; }
.sheet-heading h1 { max-width: 61rem; margin-block: 1rem 1.75rem; font-size: clamp(2.25rem, 4vw, 3.5rem); line-height: 1.18; }
.sheet-layout { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; align-items: start; gap: 3.5rem; }
.sheet-summary h2, .sheet-books > h2, .sheet-passages h2 { font-size: 1.875rem; margin-bottom: 1.5rem; }
.sheet-summary > p { max-width: 65ch; color: #46513f; font: 1.25rem/1.9 var(--serif); }
.sheet-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-block: 2rem 3rem; }
.sheet-books { padding-top: 2rem; border-top: 1px solid var(--rule); }
.card-book { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1.5rem; padding-block: 1.75rem; border-bottom: 1px solid var(--rule); }
.card-book img { width: 4.5rem; height: 7rem; object-fit: contain; object-position: top; }
.card-book-no-cover { padding-top: .5rem; text-align: center; font: 2rem var(--serif); color: var(--green); }
.card-book h3 { font-size: 1.5rem; margin-bottom: .5rem; }
.card-book h3 a:hover { color: var(--accent); }
.card-book p { margin-bottom: .75rem; color: var(--muted); font-size: .875rem; line-height: 1.85; }
.card-book .card-book-author { color: var(--green); }
.card-book .card-book-status { color: var(--green); font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em; }
.card-book .text-link { font-size: .8125rem; }
.sheet-passages { padding: 1.75rem 1.5rem; background: var(--sage); border-top: 3px solid var(--green); }
.sheet-passages .eyebrow { margin-bottom: 1rem; }
.sheet-passages ol { padding: 0; margin: 0; list-style: none; }
.sheet-passages li + li { border-top: 1px solid #cbd2c2; }
.sheet-passages li a { display: grid; grid-template-columns: 2.875rem minmax(0, 1fr) .75rem; gap: .75rem; padding-block: 1.25rem; }
.passage-time { padding-top: .125rem; font-size: .8125rem; color: var(--accent); font-variant-numeric: tabular-nums; }
.sheet-passages strong { display: block; margin-bottom: .5rem; font: 1.125rem/1.4 var(--serif); }
.sheet-passages li a:hover strong { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.sheet-passages strong + span { display: block; font-size: .8125rem; line-height: 1.8; color: var(--muted); }
.sheet-method { max-width: 54rem; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--rule); }
.sheet-method h2 { font-size: 1.75rem; margin-bottom: 1rem; }
.sheet-method p { color: var(--muted); font-size: .875rem; line-height: 1.9; }
.sheet-method > .text-link { margin-top: 1rem; }

/* 06 — Biblioteca */
.library-section { background: #edf0e7; border-bottom: 1px solid var(--rule); }
.library-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-block: 1.75rem; }
.library-intro > p { max-width: 48rem; color: var(--muted); font-size: .9375rem; line-height: 1.9; }
.review-label { max-width: 15rem; padding: .65rem .875rem; border: 1px solid #b4c1a7; font-size: .6875rem; line-height: 1.8; letter-spacing: .075em; color: var(--green); }
.book-search { display: flex; flex: 1; align-items: center; gap: 1rem; min-width: 0; font-size: .875rem; color: var(--green); }
.book-search input { width: 100%; min-height: 3.375rem; padding: .75rem 1rem; border: 1px solid var(--control-border); border-radius: 2px; background: var(--surface); font-size: 1rem; }
.library-tools .book-search > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.book-row { display: grid; grid-template-columns: 5.25rem minmax(0, 1fr) minmax(10rem, .6fr); gap: 2rem; padding-block: 2rem; border-bottom: 1px solid #c7d0bc; }
.book-row > * { min-width: 0; }
.book-row:first-child { border-top: 1px solid #c7d0bc; }
.book-row h3 { max-width: 100%; font-size: 1.875rem; line-height: 1.3; margin-bottom: .5rem; overflow-wrap: anywhere; }
.book-cover { width: 5.25rem; max-width: 100%; margin: 0; align-self: start; overflow-wrap: anywhere; }
.book-cover-button { display: block; width: 100%; height: 8rem; padding: 0; border: 0; background: transparent; }
.book-cover-button img { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(3px 5px 3px #29352224); transition: transform .2s; }
.book-cover-button:hover img { transform: translateY(-4px); }
.book-cover figcaption { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; max-width: 100%; margin-top: .75rem; text-align: center; color: var(--muted); font-size: .6875rem; line-height: 1.6; overflow-wrap: anywhere; }
.cover-missing { display: flex; align-items: center; justify-content: center; min-height: 8rem; padding: .5rem; border: 1px solid var(--control-border); text-align: center; font-size: .75rem; color: var(--muted); }
.book-category { display: table; max-width: 100%; margin: .625rem 0 .875rem; padding: .3rem .625rem; border: 1px solid #b4c1a7; border-radius: 2px; background: var(--sage); color: var(--green); font: 600 .75rem/1.6 var(--sans); overflow-wrap: anywhere; }
.book-reference-status { margin: 0; color: var(--muted); font: .75rem/1.7 var(--sans); }
.book-subtitle { font: italic 1.0625rem/1.6 var(--serif); color: var(--green); margin-bottom: .625rem; overflow-wrap: anywhere; }
.book-author { font-size: .875rem; color: var(--green); margin-bottom: .5rem; overflow-wrap: anywhere; }
.book-source { max-width: 45rem; font-size: .8125rem; line-height: 1.9; color: var(--muted); overflow-wrap: anywhere; }
.book-details { max-width: 100%; margin-top: .875rem; }
.book-details > summary { width: fit-content; max-width: 100%; color: var(--green); font: .75rem/1.7 var(--sans); cursor: pointer; overflow-wrap: anywhere; }
.book-details > summary:hover { color: var(--accent); }
.book-details[open] > summary { margin-bottom: .625rem; }
.book-links { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; min-width: 0; }
.book-links a { overflow-wrap: anywhere; }
.book-link-group { width: 100%; min-width: 0; }
.book-links-heading { margin: 0 0 .625rem; color: var(--muted); font: 650 .6875rem/1.6 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.book-mentions-count { margin-top: .75rem; font: .75rem/1.6 var(--sans); color: var(--green); }
.book-work-type { margin-top: .625rem; font: .75rem/1.6 var(--sans); color: var(--muted); }
.book-mention { display: flex; flex-direction: column; align-items: flex-start; gap: .375rem; width: 100%; padding-block: .5rem .75rem; border-bottom: 1px solid var(--rule); }
.book-links .book-video-title { border: 0; padding: .25rem 0; font-size: .8125rem; line-height: 1.65; color: var(--ink); }
.book-links .book-video-title:hover { text-decoration: underline; text-underline-offset: .2em; }
.book-youtube-link { display: inline-flex; align-items: center; gap: .5rem; max-width: 100%; min-height: 2.75rem; padding: .625rem .75rem; border: 1px solid #793e38; border-radius: 2px; background: #793e38; color: #fffdf8; font: 600 .75rem/1.6 var(--sans); }
.book-youtube-link:hover { background: #5f2f2a; border-color: #5f2f2a; }
.book-link-icon { flex-shrink: 0; font-size: .6875rem; }
.book-bibliographic-sources { display: flex; flex-direction: column; align-items: stretch; gap: .5rem; }
.book-bibliographic-sources .book-links-heading { margin-bottom: .125rem; }
.bibliographic-link { display: block; min-height: 2.75rem; padding: .625rem .75rem; border: 1px solid var(--control-border); border-radius: 2px; background: var(--surface); color: var(--green); font: .75rem/1.6 var(--sans); }
.bibliographic-link:hover { background: var(--sage); border-color: var(--green); text-decoration: underline; text-underline-offset: .2em; }
.book-cover-large { display: block; width: auto; height: auto; max-width: 100%; max-height: 62vh; object-fit: contain; margin: 1.5rem auto; }

/* 07 — Ricerca e trascrizioni */
.research-intro { max-width: 49rem; font-size: .9375rem; line-height: 1.9; color: var(--muted); margin-bottom: 1.75rem; }
.research-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; padding-block: 1.5rem; margin-block: 2rem 1.5rem; border-block: 1px solid var(--rule); }
.research-stats > div { display: flex; flex-direction: column; gap: .5rem; }
.research-stats strong { font: 2.5rem/1.2 var(--serif); color: var(--green); }
.research-stats span { font-size: .8125rem; color: var(--muted); }
.research-notice { padding: 1rem 1.25rem; border-left: 3px solid var(--accent); background: var(--accent-soft); color: #62483e; font-size: .875rem; line-height: 1.85; }
.research-list { margin-top: 1.5rem; }
.research-row { display: grid; grid-template-columns: minmax(0, 1fr) 13rem auto; gap: 2rem; align-items: center; padding-block: 1.5rem; border-bottom: 1px solid var(--rule); }
.research-row:first-child { border-top: 1px solid var(--rule); }
.research-row h3 { font-size: 1.4rem; margin-bottom: .5rem; }
.research-row p { font-size: .8125rem; color: var(--muted); }
.research-row-status { display: flex; flex-direction: column; gap: .5rem; font-size: .75rem; color: var(--muted); }
.research-status { font-size: .8125rem; color: var(--green); }
.research-exports { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.research-detail-button { display: table; margin-top: 1.5rem; }
.research-subheading { font-size: 1.5rem; margin-block: 2rem 1rem; }
.research-book-reference { padding-block: 1rem; border-bottom: 1px solid var(--rule); }
.research-book-reference p { font: 1.125rem/1.6 var(--serif); margin-bottom: .5rem; }
.transcript-downloads { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-block: 1rem 1.5rem; }
.transcript-downloads p { flex-basis: 100%; }

/* Blog: rubrica, invito email in preparazione e ultimo articolo in Home. */
.blog-categories { display: flex; flex-wrap: wrap; gap: .5rem 2rem; margin-bottom: 2.5rem; }
.blog-categories a { display: inline-flex; align-items: center; min-height: 2.75rem; padding-block: .5rem; border-bottom: 1px solid var(--rule); color: var(--green); font-size: .875rem; }
.blog-categories a:hover { border-color: var(--accent); color: var(--accent); }
.blog-card .blog-byline { margin-bottom: .75rem; color: var(--accent); font-family: var(--serif); }
.blog-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 5vw, 5rem); row-gap: 0; align-items: start; }
.blog-rubric { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; min-width: 0; scroll-margin-top: 2rem; }
.blog-rubric > .eyebrow { margin-bottom: .875rem; }
.blog-rubric h2 { margin-bottom: 1.5rem; }
.blog-rubric > .rubric-subtitle, .blog-rubric > .rubric-description { margin-top: 0; }
.rubric-subtitle { max-width: 40rem; margin-bottom: 1.5rem; color: var(--green); font: 1.4rem/1.7 var(--serif); }
.rubric-description, .blog-newsletter p:not(.eyebrow):not(.preparation-status) { color: var(--muted); font-size: .9375rem; line-height: 1.95; }
.blog-empty { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--rule); color: var(--muted); font: italic 1.125rem/1.8 var(--serif); }
.blog-newsletter { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 3rem; align-items: center; margin-top: clamp(2rem, 5vw, 5rem); padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--rule); background: #eeebe1; }
.blog-newsletter .eyebrow { margin-bottom: 1rem; }
.blog-newsletter h2 { margin-bottom: 1.5rem; font-size: 1.875rem; }
.preparation-status { display: inline-block; margin-top: 1.5rem; padding: .35rem .75rem; border: 1px solid var(--rule); color: var(--green); font-size: .8125rem; }
.blog-page .blog-card { grid-template-columns: minmax(0, 1fr); gap: .875rem; }
.blog-entries:has(.blog-card) { margin-top: 2.5rem; }
.home-editorial { border-top: 1px solid var(--rule); }
.home-editorial-copy { max-width: 64rem; }
.home-editorial p { color: var(--muted); font-size: .9375rem; line-height: 1.95; }
.home-editorial .home-editorial-closing { margin-top: 1.5rem; color: var(--green); font: italic 1.25rem/1.7 var(--serif); }
.home-editorial .text-link { margin-top: 1.5rem; }
.home-blog { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem); border-top: 1px solid var(--rule); }
.home-blog h2 { margin-bottom: 1.5rem; }
.home-blog p:not(.eyebrow):not(.blog-meta) { max-width: 36rem; color: var(--muted); font-size: .9375rem; line-height: 1.95; }
.home-blog .text-link { margin-top: 1.5rem; }
.home-blog-latest { min-width: 0; padding-left: clamp(1.5rem, 3vw, 3rem); border-left: 1px solid var(--rule); }
.home-blog-latest .eyebrow { margin-bottom: 1rem; }
.home-blog-latest h3 { margin-block: .875rem 1rem; font-size: 1.875rem; line-height: 1.25; }
@media (max-width: 46rem) {
  .blog-layout, .home-blog, .blog-newsletter { grid-template-columns: minmax(0, 1fr); }
  .blog-layout { row-gap: 2rem; }
  .blog-rubric { display: block; grid-row: auto; }
  .blog-newsletter { margin-top: 0; }
  .home-blog-latest { padding-left: 0; padding-top: 2rem; border-left: 0; border-top: 1px solid var(--rule); }
}

/* 08 — Blog e progetto */
.blog-card { display: grid; grid-template-columns: 1fr 2.3fr auto; gap: 2rem; align-items: start; padding-block: 2rem; border-bottom: 1px solid var(--rule); }
.blog-card:first-child { border-top: 1px solid var(--rule); }
.blog-meta { font-size: .75rem; letter-spacing: .07em; color: var(--accent); }
.blog-meta span { display: block; margin-top: .5rem; color: var(--muted); font-size: .8125rem; letter-spacing: 0; }
.blog-card h3 { font-size: 2rem; line-height: 1.25; margin-bottom: 1rem; }
.blog-card p { max-width: 42rem; font-size: .9375rem; color: var(--muted); }
.read-post { display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border: 1px solid var(--control-border); border-radius: 50%; color: var(--accent); font-size: 1.4rem; }
.read-post:hover { background: var(--accent-soft); border-color: var(--accent); }
.article-page { max-width: 56rem; }
.article-heading { margin-block: 2rem 2.5rem; }
.article-heading h1 { margin-bottom: 1.5rem; }
.article-byline { color: var(--muted); font-size: .8125rem; }
.article-body { max-width: 44rem; }
.article-body p { max-width: 65ch; margin-bottom: 1.5rem; font: 1.1875rem/1.95 var(--serif); }
.article-body h3 { font-size: 1.6rem; margin-block: 2rem 1rem; }
.legal-page h2 { font-size: 1.6rem; margin-block: 2rem 1rem; }
.legal-page a, .player-privacy a { text-decoration: underline; text-underline-offset: .2em; }
.legal-page { overflow-wrap: anywhere; }
.legal-draft { padding: 1rem 1.25rem; border-left: 3px solid var(--accent); background: var(--accent-soft); margin-bottom: 2rem; }
.player-privacy { font-size: .8125rem; line-height: 1.8; color: var(--muted); margin-bottom: 1rem; }
.player-disable { background: transparent; border: 0; padding: .75rem 0; margin-bottom: 1rem; cursor: pointer; }
.player-disable[hidden] { display: none; }
.article-end { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--rule); }
.project-epigraph { margin-bottom: 3.5rem; padding-left: 1.5rem; border-left: 2px solid var(--accent); }
.project-epigraph blockquote { margin: 0 0 1rem; text-wrap: balance; color: var(--green); font: italic clamp(1.25rem, 2.2vw, 1.75rem)/1.65 var(--serif); }
.project-epigraph figcaption { color: var(--muted); font-size: .8125rem; line-height: 1.8; }
.project-description { max-width: 54rem; color: var(--muted); line-height: 1.95; }
.project-page .project-community > p + p { margin-top: 1rem; }
.project-status { margin-block: 2.5rem 1.5rem; color: var(--green); font: italic 1.125rem/1.8 var(--serif); }
.project-page .project-lead { margin-bottom: 1.25rem; }
/* Catalogo dei volumi pubblicati dal Circolo, nella pagina del progetto. */
.project-catalog { margin-top: 3.5rem; }
.project-catalog-heading { margin-bottom: 2rem; }
.project-catalog-heading .eyebrow { margin-bottom: .75rem; }
.project-catalog-heading h2 { font-size: clamp(1.875rem, 3vw, 2.5rem); }
.project-volumes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; }
.project-volume { min-width: 0; display: grid; grid-template-columns: minmax(0, 10rem) minmax(0, 1fr); gap: 1.75rem; align-items: start; padding-top: 2rem; border-top: 1px solid var(--rule); }
.project-volume-featured { grid-column: 1 / -1; grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 4vw, 4rem); padding: clamp(1.5rem, 3vw, 3rem); border: 1px solid var(--rule); background: #eeebe1; }
.project-volume-cover img { display: block; width: 100%; height: auto; max-height: 28rem; object-fit: contain; }
.project-cover-placeholder { display: flex; flex-direction: column; justify-content: space-between; width: 100%; aspect-ratio: 2 / 3; padding: 1.5rem; border: 1px dashed var(--muted); background: var(--paper); color: var(--green); text-align: center; }
.project-cover-placeholder span { font-size: .625rem; letter-spacing: .15em; line-height: 1.8; }
.project-cover-placeholder strong { font: clamp(3rem, 6vw, 5rem)/1.2 var(--serif); }
.project-volume-copy { min-width: 0; }
.project-volume-copy .eyebrow { margin-bottom: 1rem; }
.project-volume h3 { margin-bottom: 1rem; font-size: clamp(1.6rem, 2.5vw, 2.25rem); line-height: 1.2; }
.project-volume-author { margin-bottom: 1.5rem; color: var(--accent); font-family: var(--serif); }
.project-volume-description { max-width: 42rem; color: var(--muted); font-size: .9375rem; line-height: 1.95; }
.project-volume-description + .project-volume-description { margin-top: 1rem; }
.project-volume-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.project-volume-actions .button { max-width: 100%; overflow-wrap: anywhere; }
.project-volume .project-status { margin-bottom: 0; }
.project-page > .hero-actions { margin-top: 2rem; }
@media (max-width: 60rem) { .project-volumes { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 46rem) {
  .project-volume, .project-volume-featured { grid-template-columns: minmax(0, 1fr); }
  .project-volume-cover, .project-cover-placeholder { width: min(100%, 16rem); margin-inline: auto; }
}
.project-lead { max-width: 53rem; margin-block: 2rem 3rem; color: var(--green); font: 1.5rem/1.8 var(--serif); }
.project-manifesto { max-width: 61rem; margin-block: 2.5rem 3.5rem; padding: 2rem 2.5rem; border-left: 3px solid var(--accent); background: #eeebe1; }
.project-manifesto h2 { font-size: 2.5rem; margin-bottom: 1.25rem; }
.project-manifesto > p:last-child { max-width: 49rem; color: var(--muted); line-height: 1.9; }
.project-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 4rem; }
.project-columns article { padding-top: 1.75rem; border-top: 1px solid var(--rule); }
.project-columns h2 { font-size: 1.875rem; margin-bottom: 1.25rem; }
.project-columns p:not(.eyebrow) { color: var(--muted); font-size: .9375rem; line-height: 1.9; margin-bottom: 1rem; }
.project-community { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid var(--rule); }
.project-community h2 { margin-bottom: 1.5rem; }
.project-community > p:not(.eyebrow) { max-width: 54rem; color: var(--muted); line-height: 1.95; }
.project-horizon, .project-source { margin-top: 2.5rem; padding: 2rem; background: var(--sage); border: 1px solid #d0d9c5; }
.project-horizon h2, .project-source h2 { font-size: 2rem; margin-bottom: 1.25rem; }
.project-horizon > p:not(.eyebrow), .project-source > p:not(.eyebrow) { max-width: 51rem; color: var(--muted); font-size: .9375rem; line-height: 1.9; }
.project-horizon .source-note { font-style: italic; }
.project-credit { max-width: 54rem; margin-top: 1.75rem; color: var(--muted); font-size: .8125rem; line-height: 1.9; }
.project-source .button { margin-top: 1.5rem; }

/* 09 — Finestre di lettura */
dialog { width: min(54rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 2rem; border: 1px solid var(--rule); border-radius: 3px; background: var(--paper); color: var(--ink); overscroll-behavior: contain; box-shadow: 0 16px 80px #17231733; }
dialog::backdrop { background: #172317b8; }
.dialog-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; font-size: .6875rem; letter-spacing: .1em; color: var(--muted); }
.dialog-top button { display: flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; flex-shrink: 0; border: 1px solid var(--rule); border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.125rem; }
.dialog-top button:hover { background: var(--sage); }
.dialog-title { font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.25; margin-bottom: 1rem; overflow-wrap: anywhere; }
.dialog-description { font-size: .875rem; color: var(--muted); line-height: 1.9; margin-bottom: 1rem; overflow-wrap: anywhere; }
.video-frame { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: var(--sage); margin-block: 1.5rem; }
.player-launch { margin-block: 1.5rem; padding: 1.75rem; background: var(--sage); text-align: center; }
.player-launch p { color: var(--muted); font-size: .875rem; }
.player-launch .button, .player-launch .small-button { margin-top: 1rem; }

/* 10 — Adattamenti: una regola per componente a ogni soglia */
@media (max-width: 74rem) {
  .header { flex-wrap: wrap; gap: 1.25rem; }
  .header nav { width: 100%; justify-content: flex-start; gap: .25rem 1.5rem; }
  .wordmark { font-size: 2.25rem; }
  .hero { gap: 2.5rem; }
  .hero h1 { font-size: 3.5rem; }
  .hero-caption p { font-size: 1.4rem; }
  .library-tools { flex-wrap: wrap; }
  .library-tools .book-search { flex-basis: 100%; }
  .library-tools .select-label { flex: 1; }
}
@media (max-width: 60rem) {
  .hero { gap: 2rem; }
  .hero h1 { font-size: 3rem; }
  .hero-cover img { height: 11rem; }
  .hero-shelf { gap: .75rem; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 2rem; }
  .path-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .path-card:nth-child(3) { border-left: 0; }
  .path-card:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .home-books { gap: 1.25rem; }
  .home-book { grid-template-columns: 4rem minmax(0, 1fr); gap: 1rem; }
  .home-book h3 { font-size: 1.3rem; }
  .video-grid, .completed-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .book-row { grid-template-columns: 5.25rem minmax(0, 1fr); }
  .book-links { grid-column: 2; flex-direction: row; flex-wrap: wrap; column-gap: 1.5rem; }
  .sheet-layout { grid-template-columns: minmax(0, 1fr) 18rem; gap: 2rem; }
  .sheet-passages { padding: 1.5rem 1rem; }
  .research-row { grid-template-columns: minmax(0, 1fr) 12rem; gap: 1rem 1.5rem; }
  .research-row > .small-button { grid-column: 1; justify-self: start; }
  .completed-spotlight { align-items: flex-start; flex-direction: column; gap: 1.5rem; }
}
@media (max-width: 46rem) {
  .topline { font-size: .625rem; letter-spacing: .035em; }
  .topline > span:first-child { max-width: 29ch; }
  .preview-tag { max-width: 12ch; padding-left: .75rem; text-align: right; }
  .header { padding-block: 1.5rem 1rem; }
  .wordmark { font-size: clamp(1.8rem, 7.3vw, 2.4rem); }
  .wordmark > span { font-size: .625rem; letter-spacing: .055em; max-width: 40ch; margin-top: .65rem; }
  .header nav { gap: .125rem 1.25rem; font-size: .8125rem; }
  .header nav a.nav-featured { padding-inline: .65rem; }
  .hero { grid-template-columns: minmax(0, 1fr); gap: 2.25rem; padding-block: 2.5rem 3rem; }
  .hero h1 { font-size: clamp(2.7rem, 9vw, 3.75rem); }
  .hero h1 br { display: none; }
  .intro { max-width: 43rem; font-size: .9375rem; }
  .hero-art { max-width: 34rem; width: 100%; justify-self: center; padding: 1.5rem; }
  .hero-cover { max-width: 8rem; }
  .hero-cover img { height: 11.5rem; }
  .hero-shelf { gap: 1rem; padding-top: 1.5rem; }
  .hero-caption p { max-width: 13rem; font-size: 1.5rem; }
  .stats { gap: 1.5rem; padding-block: 1.5rem; }
  .stats strong { font-size: 2.3rem; }
  .stats > div { gap: .75rem; }
  .stats span { font-size: .75rem; }
  .section-head { display: block; }
  .section-head > p { max-width: 35rem; margin-top: 1rem; }
  .section-head > p br { display: none; }
  .section-head > .text-link { margin-top: 1rem; }
  .home-books { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .home-book { grid-template-columns: 5rem minmax(0, 1fr); gap: 1.5rem; padding-block: 1.5rem; }
  .home-book + .home-book { border-top: 1px solid #c7d0bc; }
  .home-book h3 { font-size: 1.75rem; }
  .home-book .text-link { font-size: .8125rem; }
  .archive-tools { flex-direction: column; }
  .select-label { justify-content: space-between; }
  select { font-size: 1rem; }
  .book-row { gap: 1.25rem; }
  .book-links { grid-column: 1 / -1; }
  .book-row h3 { font-size: 1.65rem; }
  .library-intro { flex-direction: column; gap: 1.25rem; }
  .review-label { max-width: none; }
  .research-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
  .research-row { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .research-row > .small-button { grid-column: auto; }
  .sheet-layout { display: flex; flex-direction: column; gap: 2rem; }
  .sheet-layout > div, .sheet-passages { width: 100%; min-width: 0; }
  .sheet-passages { order: 1; padding: 1.5rem; }
  .sheet-heading { margin-block: 1.5rem 2rem; }
  .sheet-summary > p { font-size: 1.1875rem; }
  .completed-stats { gap: 1rem 1.5rem; }
  .completed-stats > span { font-size: .8125rem; }
  .completed-stats strong { font-size: 2rem; }
  .blog-card { grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; }
  .blog-meta { grid-column: 1 / -1; }
  .blog-meta span { display: inline; margin-left: 1rem; }
  .project-columns { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .project-lead { font-size: 1.3rem; }
  .project-manifesto { padding: 1.5rem; }
  .project-manifesto h2 { font-size: 2rem; }
  .project-horizon, .project-source { padding: 1.5rem; }
  .footer { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .footer-links a { min-height: 2.75rem; display: inline-flex; align-items: center; }
  dialog { padding: 1.25rem; }
  .player-launch { padding: 1.25rem; }
}
@media (max-width: 34rem) {
  .video-grid, .completed-grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .video-card h3 { font-size: 1.6rem; }
  .completed-card-copy { padding: 1.5rem; }
  .path-grid { grid-template-columns: minmax(0, 1fr); }
  .path-card + .path-card { border-left: 0; border-top: 1px solid var(--rule); }
  .path-card { padding: 1.5rem; }
  .path-card h3 { margin-top: 1rem; }
  .path-card p { margin-bottom: 1.5rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .hero-caption > span { max-width: 8rem; }
  .stats { gap: 1.25rem 1rem; }
  .stats > div { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .stats span { max-width: none; }
  .book-row { grid-template-columns: 4.25rem minmax(0, 1fr); gap: 1rem; }
  .book-cover { width: 4.25rem; }
  .book-cover-button { height: 6.5rem; }
  .cover-missing { min-height: 6.5rem; }
  .book-links { column-gap: 1rem; }
  .library-tools .select-label { flex-basis: 100%; }
  .card-book { grid-template-columns: 3.5rem minmax(0, 1fr); gap: 1rem; }
  .card-book img { width: 3.5rem; height: 5.5rem; }
  .card-book h3 { font-size: 1.4rem; }
  .pagination { gap: .75rem; }
  .pagination .small-button { padding-inline: .875rem; }
}

/* Eventi: una lista essenziale, senza dipendenze o script aggiuntivi. */
.events-intro { margin-top: 1.25rem; max-width: 40rem; color: var(--muted); }
.event-list { border-top: 1px solid var(--rule); }
.event-card { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); padding: clamp(2rem, 4vw, 3.5rem) 0; border-bottom: 1px solid var(--rule); }
.event-season { color: var(--green); font-family: var(--serif); }
.event-season span { display: block; font-size: 1.125rem; }
.event-season strong { display: block; font-size: 3.5rem; font-weight: 400; line-height: 1.2; }
.event-copy { max-width: 45rem; }
.event-status { color: var(--muted); font: .6875rem/1.6 var(--sans); letter-spacing: .1em; margin-bottom: .875rem; }
.event-copy h2 { margin-bottom: 1.25rem; }
.event-copy > p + p { margin-top: 1rem; }
.event-place { color: var(--green); }
@media (max-width: 38rem) {
  .event-card { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .event-season { display: flex; align-items: baseline; gap: .75rem; }
  .event-season strong { font-size: 2.5rem; }
}

/* 11 — Preferenze e stampa */
@media (hover: none) {
  .thumbnail-button:hover img, .completed-card-image:hover img, .book-cover-button:hover img, .home-book:hover img { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print {
  body { background: white; color: black; font-size: 11pt; }
  .wrap { width: 100%; max-width: none; }
  .topline, .header nav, .breadcrumb, .skip, .archive-tools, .library-tools, .pagination, .research-exports, .sheet-actions, .footer-links, dialog { display: none; }
  .header { padding-block: 0 1rem; }
  .section { padding-block: 1.5rem; }
  .sheet-layout { display: block; }
  .sheet-passages { margin-top: 2rem; }
  .completed-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card-book, .completed-card, .book-row { break-inside: avoid; }
  a { color: inherit; }
}

/* Le pagine dei video riuniscono riproduzione e approfondimenti. */
.video-card .title-button { display: block; }
.sheet-player { aspect-ratio: 16 / 9; width: 100%; overflow: hidden; margin-bottom: 2rem; background: #152b25; }
.sheet-play { position: relative; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: #152b25; color: white; }
.sheet-play img { width: 100%; height: 100%; object-fit: cover; opacity: .82; }
.sheet-play-label { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; gap: .75rem; width: max-content; max-width: calc(100% - 2rem); padding: .85rem 1.2rem; border: 1px solid #ffffffa0; background: #17382ff0; color: #fffdf8; font-size: .8125rem; }
.sheet-play:hover .sheet-play-label { background: #234c40; }
.sheet-player .video-frame { display: block; width: 100%; height: 100%; aspect-ratio: auto; margin: 0; border: 0; }
.sheet-play:focus-visible { outline: 3px solid #fffdf8; outline-offset: -5px; }
.sheet-original { margin-block: -1rem 2rem; }
.sheet-work-state { padding: 1.75rem; align-self: start; border: 1px solid var(--rule); background: var(--surface); }
.sheet-work-state h2 { font-size: 1.75rem; line-height: 1.3; margin-bottom: 1rem; }
.sheet-work-state p:not(.eyebrow) { margin-bottom: 1rem; color: var(--muted); font-size: .875rem; line-height: 1.85; }
.sheet-work-state .eyebrow { margin-bottom: 1rem; }
@media (max-width: 46rem) {
  .sheet-player { margin-bottom: 1.5rem; }
  .sheet-work-state { padding: 1.25rem; }
  .sheet-play-label { font-size: .75rem; padding: .7rem .9rem; }
}
.card-book .card-book-edition { margin-block: .5rem; color: var(--muted); font-size: .75rem; line-height: 1.75; }

/* Regole locali, compatibili con Originale e Sala di lettura. */
.library-tools.library-discovery { display: grid; gap: 1rem; }
.library-discovery .book-search { display: block; width: 100%; }
.library-discovery .book-search input { min-height: 3.5rem; }
.book-format-field { min-width: 0; border: 0; padding: 0; margin: .25rem 0 0; }
.book-format-field legend { font-size: .8125rem; color: var(--green); margin-bottom: .625rem; }
.book-formats { display: flex; flex-wrap: wrap; gap: .5rem; }
.format-chip { border: 1px solid var(--control-border); border-radius: 2rem; padding: .5rem 1rem; min-height: 2.75rem; background: var(--surface); font-size: .8125rem; line-height: 1.5; }
.format-chip[aria-pressed='true'] { background: var(--green); border-color: var(--green); color: var(--surface); }
.format-chip:hover:not(:disabled):not([aria-pressed='true']) { background: var(--sage); }
.book-selects { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1.2fr) minmax(0, 1fr); gap: .75rem; }
.library-discovery .select-label { display: flex; min-width: 0; flex-direction: column; align-items: stretch; gap: .25rem; padding: .625rem .875rem; }
.library-discovery .select-label > span { font-size: .6875rem; letter-spacing: .025em; }
.library-discovery select { display: block; width: 100%; max-width: 100%; min-height: 2rem; border: 0; background: transparent; font-size: .875rem; text-overflow: ellipsis; }
.filter-note { max-width: 60rem; margin: -.5rem 0 0; font-size: .75rem; line-height: 1.7; color: var(--muted); }
.book-advanced { border-block: 1px solid var(--rule); padding-block: .25rem; }
.book-advanced summary { min-height: 2.75rem; align-content: center; cursor: pointer; color: var(--green); font-size: .8125rem; }
.book-advanced summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.book-advanced-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; padding-block: .5rem 1rem; }
.book-advanced .filter-note { margin: 0 0 .75rem; }
.book-filter-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
.book-active-filters { display: flex; flex-wrap: wrap; gap: .5rem; flex: 1; min-width: 0; }
.active-filter { min-height: 2.75rem; max-width: 100%; padding: .4rem .75rem; border: 1px solid var(--rule); border-radius: 2px; background: var(--sage); text-align: left; font-size: .75rem; overflow-wrap: anywhere; }
.filter-reset { min-height: 2.75rem; border: 0; background: transparent; text-decoration: underline; text-underline-offset: .2em; font-size: .8125rem; padding: .5rem; }
.book-filter-actions .small-button { min-height: 2.75rem; white-space: normal; }
.filter-preview-note { margin: 0; padding: .625rem var(--gutter); background: var(--green); color: var(--surface); font-size: .75rem; text-align: center; }
.filter-preview-note a { text-decoration: underline; text-underline-offset: .15em; }
.book-context-themes { font-size: .75rem; color: var(--green); margin-top: .75rem; }
.book-context-themes span { display: block; color: var(--muted); }
.book-row[tabindex='-1']:focus { outline: 3px solid var(--accent); outline-offset: .25rem; }
@media (max-width: 64rem) {
  .book-selects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 30rem) {
  .book-selects, .book-advanced-controls { grid-template-columns: minmax(0, 1fr); }
  .book-filter-actions { align-items: stretch; }
  .book-active-filters { flex-basis: 100%; }
  .book-filter-actions .small-button { flex: 1; }
}
@media print { .library-discovery, .filter-preview-note { display: none !important; } }

/* Ritmo editoriale: spazi condivisi fra pagine, schede e testi lunghi. */
:root {
  --section-space: clamp(3rem, 5.5vw, 5.25rem);
  --space-block: clamp(1.5rem, 2.5vw, 2.5rem);
  --space-panel: clamp(1.25rem, 2.5vw, 2.5rem);
  --space-page-top: clamp(2.25rem, 4vw, 3.5rem);
}
.home-starters { padding-top: var(--section-space); }
.home-starters + .home-featured-band { margin-block-start: var(--section-space); }
.home-conversation { display: flex; flex-direction: column; }
.home-conversation-description { flex: 1; }
.home-conversation-actions { margin-top: 1.5rem; }
.breadcrumb { padding-top: var(--space-block); }
body:not([data-page='home']):not([data-page='salotto']) main > .section,
body:not([data-page='home']):not([data-page='salotto']) .library-section > .section {
  padding-top: var(--space-page-top);
}
.page-heading, .section-head { margin-bottom: var(--space-block); }
.archive-tools, .library-tools { margin-top: var(--space-block); }
.results-line { margin-block: 1.5rem 2rem; }
.video-grid, .completed-grid {
  column-gap: clamp(1.5rem, 2.5vw, 2.25rem);
  row-gap: clamp(2.5rem, 4vw, 4rem);
}
.video-card { padding-bottom: 1.75rem; }
.completed-card-copy { padding: var(--space-panel); }
.library-section { background: var(--paper); }
.library-intro { margin-block: var(--space-block); }
.library-tools.library-discovery { gap: 1.25rem; }
.book-selects { gap: 1rem; }
#book-results { margin-block: 1.5rem 1rem; }
.book-row { column-gap: clamp(1.25rem, 2.5vw, 2.5rem); row-gap: 1.5rem; padding-block: clamp(1.75rem, 3vw, 2.5rem); }
.book-details[open] { margin-top: 1.25rem; }
.book-bibliographic-sources { gap: .625rem; }
.pagination { margin-top: var(--space-block); padding-block: .5rem; }
.sheet-heading { margin-block: var(--space-block) clamp(2rem, 3.5vw, 3rem); }
.sheet-layout { gap: clamp(2rem, 4vw, 4rem); }
.sheet-summary { padding: var(--space-panel); border: 1px solid var(--rule); background: var(--surface); }
.sheet-summary > p { max-width: 66ch; font-size: clamp(1.0625rem, 1.7vw, 1.1875rem); line-height: 1.85; white-space: pre-line; }
.sheet-summary h2, .sheet-books > h2, .sheet-passages h2 { line-height: 1.25; margin-bottom: 1.25rem; }
.sheet-actions { margin: var(--space-block) 0 0; gap: .875rem 1.5rem; }
.sheet-books { margin-top: var(--space-block); padding-top: var(--space-block); }
.sheet-passages { padding: var(--space-panel); }
.sheet-passages li a > span { min-width: 0; overflow-wrap: anywhere; }
.card-book { padding-block: var(--space-block); }
.video-sheet > details.source-note { margin-top: var(--space-block); padding: 1.25rem 1.5rem; border: 1px solid var(--rule); background: var(--surface); }
.video-sheet > details.source-note > summary { cursor: pointer; font-weight: 600; }
.video-sheet > details.source-note ul { margin: 1rem 0 0; padding-left: 1.25rem; }
.video-sheet > details.source-note li + li { margin-top: .625rem; }
.video-sheet > details.source-note a { text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.article-heading { margin-block: var(--space-block); }
.article-body { max-width: 68ch; }
.article-body p { font-size: clamp(1.0625rem, 1.4vw, 1.1875rem); line-height: 1.85; margin-bottom: 1.5rem; }
.article-body :is(h2, h3) { margin-block: 2.75rem 1rem; }
.article-body > :first-child { margin-top: 0; }
.project-epigraph { margin-bottom: var(--section-space); }
.project-catalog, .project-community { margin-top: var(--section-space); }
.project-volumes { gap: clamp(2rem, 4vw, 4rem); }
.project-volume-featured { padding: var(--space-panel); }
.project-community { padding-top: var(--space-block); }
.project-page > .hero-actions { margin-top: var(--space-block); }
.event-card { padding-block: clamp(2.5rem, 4.5vw, 4rem); }
.event-copy > p { max-width: 65ch; }
.footer { padding-block: 2.5rem 3rem; gap: 1.5rem 2rem; }
.footer-links { column-gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 46rem) {
  .sheet-summary, .sheet-passages { padding: 1.5rem; }
  .sheet-layout { gap: 2rem; }
  .sheet-heading { margin-block: 1.5rem 2rem; }
  .video-grid, .completed-grid { row-gap: 2.5rem; }
  .article-body :is(h2, h3) { margin-top: 2.25rem; }
  .article-body > :first-child { margin-top: 0; }
  .footer { padding-block: 2rem 2.5rem; }
}
@media print {
  .section { padding-block: 1.5rem; }
  .sheet-summary, .sheet-passages { padding: 1rem; }
}

/* Una luce da condividere: la citazione introduce le conversazioni. */
.home-candle-quote {
  margin: var(--section-space) auto 0;
  padding-block: clamp(2.5rem, 5vw, 4rem);
  border-block: 1px solid var(--rule);
  color: var(--green);
  text-align: center;
  scroll-margin-top: 2rem;
}
.candle-engraving { display: block; margin: 0 auto 1rem; }
.candle-quote-heading { justify-content: center; color: var(--muted); margin: 0 0 1.5rem; }
.home-candle-quote blockquote { max-width: 58rem; margin: 0 auto; padding: 0; border: 0; }
.home-candle-quote blockquote p { margin: 0; font: 400 clamp(1.65rem, 2.8vw, 2.5rem)/1.5 var(--serif); letter-spacing: -.018em; text-wrap: balance; }
.home-candle-quote blockquote em { font-weight: 400; }
@media (max-width: 46rem) {
  .home-candle-quote { padding-inline: .25rem; }
  .candle-quote-break { display: none; }
  .candle-quote-heading { margin-bottom: 1.25rem; }
}
@media print { .home-candle-quote { break-inside: avoid; } }

}
@layer proposta {
/* Sala di lettura — terza proposta. Carta, inchiostro verde, incisioni in ottone.
   Caratteri di sistema e illustrazione vettoriale: nessuna libreria aggiuntiva. */
:root {
  --paper: #f6f1e6;
  --surface: #fcf9f2;
  --ink: #203c34;
  --muted: #59645a;
  --accent: #654c2d;
  --accent-hover: #44321d;
  --accent-soft: #eee4d0;
  --green: #183d35;
  --sage: #e7e9de;
  --rule: #cfc8b8;
  --control-border: #909789;
  --serif: 'Palatino Linotype', Palatino, 'Book Antiqua', Georgia, serif;
  --content: 76rem;
  --gutter: clamp(1.25rem, 4.5vw, 4rem);
  --brass: #cbb789;
}
body { background: var(--paper); }
h1, h2, h3 { letter-spacing: -.025em; }
h1 em, h2 em { color: inherit; }
.eyebrow { font-size: .625rem; font-weight: 600; letter-spacing: .17em; }
.topline { justify-content: center; position: relative; padding-block: .55rem; background: var(--green); color: #e5deca; font-size: .5625rem; letter-spacing: .16em; }
.preview-tag { position: absolute; right: var(--gutter); border: 0; font-size: .5rem; letter-spacing: .08em; }
.header { flex-direction: column; justify-content: center; gap: 1.25rem; padding-block: 1.5rem 0; border: 0; }
.wordmark { display: block; text-align: center; font-size: 2.6rem; letter-spacing: -.035em; }
.wordmark::before { content: '✦'; display: block; margin-bottom: .65rem; font: 1.05rem/1 var(--serif); color: var(--accent); }
.wordmark em { color: inherit; font-style: normal; }
.wordmark > span { margin-top: .65rem; font-size: .5rem; letter-spacing: .19em; color: var(--muted); }
.header nav { width: 100%; justify-content: center; gap: 0 2rem; padding-top: .1rem; border-top: 1px solid var(--rule); border-bottom: 3px double var(--rule); font-family: var(--serif); font-size: .9375rem; }
.header nav a { min-height: 3.5rem; padding: .65rem 0; border: 0; position: relative; }
.header nav a:hover, .header nav a[aria-current='page'] { color: var(--accent); }
.header nav a[aria-current='page']::after { content: ''; position: absolute; left: 0; right: 0; bottom: -.1rem; height: 3px; background: var(--green); }
.header nav a.nav-featured, .header nav a.nav-featured[aria-current='page'] { padding-inline: 0; background: transparent; color: inherit; border: 0; }
.header nav a.nav-featured[aria-current='page'] { color: var(--accent); }
.breadcrumb { padding-top: 1.5rem; font-size: .75rem; }
.button, .small-button, .search, .select-label { border-radius: 0; }
.button { background: var(--green); font-size: .8125rem; }
.button:hover { background: #295448; }
.text-link { color: var(--accent); }
.footer { border-top: 3px double var(--rule); padding-block: 2rem; }
.footer-wordmark { color: var(--green); }
.footer-wordmark em { color: inherit; }
.footer > span { font-size: .5625rem; letter-spacing: .15em; }
.footer-links { font-size: .75rem; }
.page-heading h1, .sheet-heading h1 { font-size: clamp(2.5rem, 4.4vw, 4rem); }
.completed-card, .video-card, .blog-card { border-radius: 0; box-shadow: none; }
.completed-card, .blog-card { background: var(--surface); }
.library-note, .archive-note, .research-note { border-color: var(--rule); }
.topic-tags li { border-radius: 0; }
.sheet-summary, .project-quote { background: #ece8da; }
dialog { border-color: var(--rule); border-radius: 0; }

/* L’ingresso: composizione tipografica e una piccola incisione originale. */
.salon-hero { margin-top: 1.5rem; background: var(--green); color: var(--paper); }
.salon-hero-inner { display: grid; grid-template-columns: 1.12fr .88fr; align-items: center; gap: 4rem; padding-block: 3.75rem 3rem; }
.salon-welcome { min-width: 0; }
.salon-welcome .eyebrow { color: #cbb789; margin-bottom: 1.5rem; }
.salon-welcome h1 { font-size: clamp(2.9rem, 4.8vw, 4.3rem); line-height: 1.06; letter-spacing: -.04em; text-wrap: initial; }
.salon-welcome h1 em { color: #ded3b6; }
.salon-intro { margin-top: 1.75rem; font: 1.4rem/1.55 var(--serif); color: #f0eadc; }
.salon-description { max-width: 29rem; margin-top: 1rem; color: #d4ddd4; font-size: .875rem; line-height: 1.9; }
.salon-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin-top: 1.75rem; }
.salon-actions .button { background: #e7d9b9; color: #16372f; border-color: #e7d9b9; }
.salon-actions .button:hover { background: #f6ecd4; border-color: #f6ecd4; }
.salon-plain-link { display: inline-flex; align-items: center; min-height: 2.875rem; color: #eee8d9; font-size: .8125rem; text-decoration: underline; text-underline-offset: .35em; text-decoration-color: #cbb789; }
.salon-hero a:focus-visible { outline-color: #e7d9b9; }
.salon-engraving { color: var(--brass); min-width: 0; max-width: 28rem; width: 100%; justify-self: center; }
.salon-engraving svg { width: 100%; height: auto; display: block; }
.salon-engraving figcaption { display: flex; justify-content: center; align-items: center; gap: 1.25rem; margin-top: 1rem; font-size: .5625rem; letter-spacing: .2em; text-align: center; }
.salon-engraving figcaption span { font-size: .875rem; }
.salon-hero-foot { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding-block: 1.25rem; border-top: 1px solid #cbb78955; color: #cbb789; font-size: .5625rem; letter-spacing: .13em; }
.salon-hero-foot a { display: flex; align-items: center; gap: 1.5rem; min-height: 2rem; color: #eee8d9; font-size: .6875rem; letter-spacing: .03em; }
.salon-hero-foot a:hover { text-decoration: underline; text-underline-offset: .3em; }

/* La biblioteca: un catalogo arioso, con le copertine come unico accento visivo. */
.salon-library { padding-block: 4.5rem; scroll-margin-top: 2rem; }
.salon-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 2.5rem; }
.salon-section-head .eyebrow { margin-bottom: .75rem; }
.salon-section-head h2 { font-size: clamp(2rem, 3vw, 2.7rem); }
.salon-section-head .text-link { flex-shrink: 0; }
.salon-book-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 2rem; }
.editorial-book { min-width: 0; display: flex; }
.editorial-book-link { display: flex; flex: 1; flex-direction: column; }
.editorial-book-visual { position: relative; display: flex; align-items: center; justify-content: center; min-height: 18rem; padding: 1.75rem; background: #ece8dc; border: 1px solid #d9d1c0; }
.editorial-book-visual::before { content: ''; position: absolute; inset: .5rem; border: 1px solid #d9d1c0; pointer-events: none; }
.editorial-book-visual img { width: auto; max-width: 83%; height: 14.5rem; object-fit: contain; filter: drop-shadow(3px 6px 4px #213b3228); transition: transform .2s ease; }
.editorial-book-link:hover .editorial-book-visual img { transform: translateY(-4px); }
.editorial-book-copy { display: flex; flex-direction: column; flex: 1; padding: 1.35rem .15rem 0; }
.editorial-book-author { font: .9375rem/1.6 var(--serif); color: var(--accent); }
.editorial-book h3 { font-size: 1.65rem; line-height: 1.25; margin-top: .3rem; }
.editorial-book-note { color: var(--muted); font-size: .8125rem; line-height: 1.85; margin-block: .85rem 1.1rem; }
.editorial-book-action { display: flex; justify-content: space-between; gap: 1rem; margin-top: auto; border-top: 1px solid var(--rule); padding-top: .75rem; font-size: .6875rem; }
.editorial-book-link:hover h3 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.salon-editions-note { max-width: 54rem; margin-top: 1.75rem; color: var(--muted); font-size: .6875rem; line-height: 1.9; }

/* Indici di consultazione: i percorsi rimangono subito riconoscibili. */
.salon-reading-band { background: #e7e9de; border-block: 1px solid #c5cbb9; }
.salon-reading-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; padding-block: 3.5rem; }
.salon-reading-inner .eyebrow { margin-bottom: 1rem; }
.salon-reading-inner h2 { font-size: 2.6rem; }
.salon-reading-inner > div > p:not(.eyebrow) { max-width: 31rem; margin-block: 1.25rem 1.75rem; color: var(--muted); font-size: .875rem; line-height: 1.9; }
.salon-catalogue-index a { display: grid; grid-template-columns: 2rem 1fr auto; align-items: center; gap: 1rem; padding-block: 1.25rem; border-bottom: 1px solid #c5cbb9; }
.salon-catalogue-index a:first-child { border-top: 1px solid #c5cbb9; }
.salon-index-number { font: italic 1.15rem/1 var(--serif); color: var(--accent); }
.salon-catalogue-index strong { display: block; font: 1.6rem/1.4 var(--serif); }
.salon-catalogue-index small { display: block; margin-top: .3rem; font-size: .75rem; color: var(--muted); }
.salon-catalogue-index a:hover strong { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.salon-publisher { display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: 5rem; padding-block: 4.5rem; border-bottom: 1px solid var(--rule); }
.salon-publisher-mark { width: 15rem; padding: 2.25rem 2rem; justify-self: center; text-align: center; color: var(--accent); border: 1px solid #b4a17e; outline: 1px solid #b4a17e; outline-offset: -8px; }
.salon-publisher-mark > span { display: block; font: .6875rem/1.6 var(--serif); letter-spacing: .15em; }
.salon-publisher-mark svg { display: block; width: 8rem; height: 7rem; margin: .75rem auto; }
.salon-publisher .eyebrow { margin-bottom: 1rem; }
.salon-publisher h2 { font-size: clamp(2rem, 3.2vw, 2.8rem); line-height: 1.2; }
.salon-publisher > div > p:not(.eyebrow) { max-width: 35rem; margin-block: 1.25rem; color: var(--muted); font-size: .875rem; line-height: 1.9; }
.salon-closing { padding-block: 3.75rem 4rem; text-align: center; }
.salon-ornament { display: block; color: var(--accent); margin-bottom: 1.25rem; font-size: 1.35rem; }
.salon-closing h2 { font-size: clamp(2rem, 3vw, 2.65rem); line-height: 1.4; }
.salon-closing h2 em { font-size: .85em; }
.salon-closing p { max-width: 36rem; margin: 1.25rem auto; font-size: .875rem; line-height: 1.9; color: var(--muted); }

/* Il progetto editoriale: visione e stato reale, prima del futuro catalogo. */
.publisher-page { max-width: 70rem; }
.publisher-heading { position: relative; padding-block: .5rem 2.5rem; border-bottom: 1px solid var(--ink); }
.publisher-heading h1 { max-width: 42rem; font-size: clamp(2.75rem, 5vw, 4rem); line-height: 1.15; }
.publisher-subtitle { margin-top: 1.5rem; font-size: 1.75rem; line-height: 1.45; color: var(--muted); }
.publisher-stage { position: absolute; right: 0; top: 3rem; padding: .6rem .8rem; border: 1px solid var(--rule); background: #faf8f3; font: .6875rem/1.5 var(--sans); letter-spacing: .08em; }
.publisher-lead { display: grid; grid-template-columns: 1.2fr 1fr; gap: 3.5rem; margin-block: 2.5rem 3rem; }
.publisher-lead p:first-child { font-size: 1.4rem; line-height: 1.75; }
.publisher-lead p + p { margin-top: 0; font-size: 1.0625rem; line-height: 1.95; color: var(--muted); }
.publisher-manifesto { padding: 2.75rem; margin-bottom: 3.5rem; background: #eee8df; }
.publisher-manifesto .eyebrow { margin-bottom: 1rem; }
.publisher-manifesto h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1.3; margin-bottom: 1.5rem; }
.publisher-manifesto > p:last-child { max-width: 51rem; font-size: 1.0625rem; line-height: 1.9; }
.publisher-principles > h2, .publisher-steps > h2 { font-size: 2rem; margin-bottom: 2rem; }
.publisher-principles article { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 2rem; padding-block: 1.75rem; border-top: 1px solid var(--rule); }
.publisher-number { font-size: 1.75rem; font-style: italic; color: #707070; }
.publisher-principles h3 { font-size: 1.5rem; margin-bottom: .75rem; }
.publisher-principles article p { max-width: 51rem; font-size: 1.0625rem; line-height: 1.85; color: var(--muted); }
.publisher-directions { margin-top: 3.5rem; }
.publisher-directions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.publisher-directions-grid article { padding-block: 1rem; }
.publisher-directions-grid .eyebrow { margin-bottom: 1rem; font-size: .625rem; }
.publisher-directions-grid h3 { font-size: 1.6rem; margin-bottom: 1rem; }
.publisher-directions-grid p:not(.eyebrow) { color: var(--muted); line-height: 1.9; }
.publisher-steps { padding-top: 2.5rem; margin-top: 2.5rem; border-top: 1px solid var(--ink); }
.publisher-steps ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; padding-left: 1.25rem; margin: 0; }
.publisher-steps li { padding-left: .35rem; }
.publisher-steps li::marker { font-style: italic; }
.publisher-steps h3 { font-size: 1.35rem; margin-bottom: .75rem; }
.publisher-steps li p { color: var(--muted); font-size: 1rem; line-height: 1.9; }
.publisher-current { padding: 2rem; margin-top: 3.5rem; border: 1px solid var(--rule); background: #faf8f3; }
.publisher-current .eyebrow { margin-bottom: 1rem; }
.publisher-current h2 { font-size: 2rem; margin-bottom: 1.25rem; }
.publisher-current p:not(.eyebrow) { max-width: 54rem; font-size: 1rem; line-height: 1.9; color: var(--muted); }
.publisher-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-top: 2rem; }
.publisher-project-link { width: min(var(--content), calc(100% - var(--gutter) * 2)); padding: 2rem; margin: 0 auto 4rem; background: #f2ece1; border-top: 1px solid var(--ink); }
.publisher-project-link h2 { font-size: 2rem; margin-bottom: 1rem; }
.publisher-project-link > p:not(.eyebrow) { max-width: 48rem; margin-bottom: 1rem; line-height: 1.9; color: var(--muted); }

/* La casa editrice adotta l’identità del Circolo, senza un catalogo fittizio. */
.publisher-heading { padding-top: 1rem; }
.publisher-stage { color: var(--green); border-color: #b4a17e; background: #eee5d2; }
.publisher-manifesto { background: var(--green); color: var(--paper); }
.publisher-manifesto .eyebrow { color: var(--brass); }
.publisher-directions .editorial-section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.publisher-directions .editorial-section-head p { color: var(--muted); font-size: .875rem; }
.publisher-current, .publisher-project-link { background: #ece8da; }
.publisher-number { color: var(--accent); }
.publisher-project-link { border-color: var(--rule); }

@media (min-width: 100rem) {
  .salon-hero-inner { padding-block: 4rem; }
}
@media (max-width: 74rem) {
  .topline { justify-content: space-between; font-size: .5rem; }
  .preview-tag { position: static; font-size: .5rem; }
  .header nav { gap: 0 1.5rem; }
  .salon-hero-inner { gap: 2rem; }
  .salon-welcome h1 { font-size: 3.6rem; }
  .salon-reading-inner { gap: 3rem; }
}
@media (max-width: 60rem) {
  .header nav { gap: 0 1.35rem; font-size: .875rem; }
  .salon-hero-inner { padding-block: 3rem; }
  .salon-welcome h1 { font-size: 3rem; }
  .salon-description { font-size: .8125rem; }
  .salon-intro { font-size: 1.2rem; }
  .salon-hero-foot > span { max-width: 20rem; }
  .editorial-book-visual { min-height: 15rem; padding: 1.25rem; }
  .editorial-book-visual img { height: 12rem; }
  .editorial-book h3 { font-size: 1.4rem; }
  .salon-publisher { gap: 2.5rem; }
  .publisher-lead { gap: 2rem; }
}
@media (max-width: 46rem) {
  .topline > span:first-child { max-width: 16rem; font-size: .4375rem; }
  .topline { gap: .75rem; }
  .preview-tag { max-width: 7rem; text-align: right; font-size: .4375rem; padding: 0; }
  .header { padding-top: 1.4rem; gap: 1.2rem; }
  .wordmark { font-size: clamp(1.8rem, 6vw, 2.5rem); }
  .wordmark > span { max-width: 35ch; margin: .65rem auto 0; font-size: .5rem; line-height: 1.8; }
  .header nav { justify-content: center; gap: 0 1.1rem; padding-block: .25rem; font-size: .875rem; }
  .header nav a { min-height: 2.75rem; padding-block: .5rem; }
  .header nav a[aria-current='page']::after { bottom: .15rem; height: 2px; }
  .salon-hero { margin-top: 1rem; }
  .salon-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding-block: 2.5rem 2rem; }
  .salon-welcome h1 { font-size: clamp(2.7rem, 8vw, 3.8rem); }
  .salon-welcome .eyebrow { margin-bottom: 1.25rem; }
  .salon-intro { font-size: 1.3rem; margin-top: 1.5rem; }
  .salon-description { max-width: 32rem; font-size: .875rem; }
  .salon-engraving { max-width: 21rem; }
  .salon-hero-foot { align-items: flex-start; flex-direction: column; gap: .65rem; padding-block: 1.25rem; }
  .salon-hero-foot > span { max-width: none; font-size: .5rem; }
  .salon-hero-foot a { width: 100%; justify-content: space-between; }
  .salon-library { padding-block: 2.75rem; }
  .salon-section-head { align-items: flex-start; flex-direction: column; gap: .75rem; margin-bottom: 1.75rem; }
  .salon-section-head h2 { font-size: 2.1rem; }
  .salon-book-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
  .editorial-book-visual img { height: 13rem; }
  .editorial-book-visual { min-height: 16rem; }
  .salon-reading-inner { grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-block: 2.75rem; }
  .salon-reading-inner h2 { font-size: 2.25rem; }
  .salon-publisher { grid-template-columns: minmax(0, 1fr); gap: 2.25rem; padding-block: 3rem; }
  .salon-publisher-mark { width: 12rem; padding: 1.5rem; }
  .salon-publisher-mark svg { width: 6rem; height: 5rem; }
  .salon-closing { padding-block: 2.75rem; }
  .footer { flex-direction: column; align-items: center; text-align: center; gap: 1rem; }
  .footer-links { justify-content: center; }
  .publisher-subtitle { font-size: 1.5rem; }
  .publisher-stage { position: static; display: inline-block; margin-top: 1.5rem; }
  .publisher-heading { padding-bottom: 2rem; }
  .publisher-lead { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; margin-block: 2rem; }
  .publisher-lead p:first-child { font-size: 1.25rem; }
  .publisher-manifesto { padding: 1.5rem; margin-bottom: 2.5rem; }
  .publisher-manifesto h2 br { display: none; }
  .publisher-principles article { grid-template-columns: 2rem minmax(0, 1fr); gap: 1rem; }
  .publisher-directions-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .publisher-directions-grid article + article { border-top: 1px solid var(--rule); padding-top: 1.5rem; }
  .publisher-steps ol { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .publisher-current { padding: 1.5rem; margin-top: 2.5rem; }
  .publisher-project-link { padding: 1.5rem; }
}
@media (max-width: 34rem) {
  .salon-book-grid { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .editorial-book-link { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); align-items: start; gap: 1.1rem; }
  .editorial-book-visual { min-height: 9.5rem; padding: .75rem; }
  .editorial-book-visual::before { inset: .25rem; }
  .editorial-book-visual img { height: 8rem; max-width: 100%; }
  .editorial-book-copy { padding: 0; }
  .editorial-book h3 { font-size: 1.4rem; }
  .editorial-book-author { font-size: .875rem; }
  .editorial-book-note { font-size: .75rem; margin-block: .65rem .75rem; }
  .editorial-book-action { font-size: .625rem; padding-top: .5rem; }
  .salon-actions { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .salon-intro { font-size: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .editorial-book-visual img { transition: none; }
  .editorial-book-link:hover .editorial-book-visual img { transform: none; }
}
@media print {
  .salon-hero { background: white; color: black; }
  .salon-hero * { color: black; }
  .salon-engraving { display: none; }
  .salon-hero-inner, .salon-publisher, .salon-reading-inner { display: block; }
  .salon-hero-foot { display: none; }
  .editorial-book-visual { background: white; }
}

/* I rimandi della biblioteca adottano il verde della Sala di lettura. */
.book-youtube-link { background: var(--green); border-color: var(--green); color: var(--paper); }
.book-youtube-link:hover { background: #264d42; border-color: #264d42; }
/* Homepage: ingresso, numeri e percorsi condividono lo stesso ritmo. */
.home-discovery { padding-block: clamp(2.75rem, 5vw, 4.5rem); background: transparent; color: var(--ink); }
.home-discovery-heading {
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 4rem);
  margin-bottom: 0;
}
.home-welcome { min-width: 0; }
.home-discovery-heading h1 { color: var(--ink); line-height: 1.1; letter-spacing: -.035em; }
.home-discovery-heading h1 em { color: inherit; }
.home-welcome .home-discovery-intro { max-width: 62ch; margin-top: 1.75rem; color: var(--muted); font-size: 1.125rem; line-height: 1.8; }
.home-discovery-intro > p + p { margin-top: 1.25rem; }
.home-discovery .home-channel-link { color: var(--green); text-decoration-color: currentColor; }
.home-discovery .home-channel-link:hover { color: var(--accent-hover); }
.home-discovery a:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; }
.home-library-illustration {
  margin: 0;
  padding: clamp(1.25rem, 2.5vw, 2rem);
  background: transparent;
  color: var(--green);
  border: 1px solid transparent;
}
.home-library-illustration figcaption { gap: .75rem; letter-spacing: .16em; }
.stats-band { background: #eeede2; }
.stats { padding-block: 2rem; gap: 1.5rem 2rem; }
.stats > div { flex-direction: column; align-items: flex-start; gap: .5rem; }
.stats > div + div { border-left: 1px solid var(--rule); padding-left: 1.75rem; }
.stats strong { font-size: 2.625rem; line-height: 1.05; }
.stats span { max-width: 15rem; font-size: .75rem; line-height: 1.6; }
.home-starters { padding-block: var(--section-space); }
.home-starters-label { margin-bottom: 1.75rem; }
.home-conversations { gap: clamp(2rem, 4vw, 3.5rem); }
.home-conversation { display: flex; flex-direction: column; }
.home-conversation-label { margin-block: 1.5rem .75rem; }
.home-conversation h2 { font-size: clamp(1.6rem, 2.3vw, 2rem); line-height: 1.25; margin-bottom: 1rem; }
.home-conversation-description { flex: 1; max-width: 58ch; line-height: 1.85; }
.home-conversation-actions { margin-top: 1.5rem; }
.salon-library { padding-block: 0 var(--section-space); }
.salon-section-head { gap: 1.5rem; margin-bottom: 2.5rem; }
.salon-book-grid { column-gap: clamp(1.5rem, 3vw, 2.75rem); row-gap: clamp(2.5rem, 4vw, 3.5rem); }
.editorial-book-copy { padding-top: 1.25rem; }
.editorial-book h3 { font-size: 1.6rem; line-height: 1.25; }
.editorial-book-note { margin-block: .875rem 0; line-height: 1.85; }
body[data-page='salotto'] .home-editorial { padding-block: var(--section-space); }
@media (max-width: 74rem) and (min-width: 56.001rem) {
  .stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .stats > div + div { padding-left: 1.25rem; }
}
@media (max-width: 56rem) {
  .home-discovery-heading { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .home-library-illustration { max-width: 25rem; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1.25rem; }
  .stats > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .stats > div:nth-child(even) { padding-left: 1.25rem; }
}
@media (max-width: 46rem) {
  .home-discovery { padding-block: 2.5rem 3rem; }
  .home-welcome .home-discovery-intro { font-size: 1.0625rem; margin-top: 1.5rem; line-height: 1.8; }
  .home-discovery-intro > p + p { margin-top: 1rem; }
  .stats { padding-block: 1.75rem; }
  .stats strong { font-size: 2.3rem; }
  .home-conversations { gap: 3rem; }
  .home-starters-label { margin-bottom: 1.5rem; }
  .salon-section-head { margin-bottom: 2rem; }
  .salon-book-grid { row-gap: 2rem; }
}
@media print {
  .home-discovery-heading { display: block; }
  .home-discovery { background: white; color: black; }
  .home-discovery-heading h1, .home-discovery-heading h1 em,
  .home-welcome .home-discovery-intro, .home-discovery .home-channel-link { color: black; }
  .home-starters, .salon-library, body[data-page='salotto'] .home-editorial { padding-block: 1.5rem; }
}

}
