  :root {
    --paper:#f5f0e7; --sand:#e8dfcf; --olive:#454b37; --dark:#343a2b; --wine:#743b46;
    --ink:#272820; --muted:#57594c; --rule:#c7bdad; --serif:Fraunces,Georgia,serif;
    --sans:"DM Sans",system-ui,sans-serif; --gutter:clamp(22px,5vw,84px);
  }
  *,*::before,*::after { box-sizing:border-box }
  html { scroll-behavior:smooth }
  body { margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.6 var(--sans) }
  body:has(dialog[open]) { overflow:hidden }
  img { width:100%;height:100%;display:block;object-fit:cover }
  img[hidden] { display:none }
  figure,p,h1,h2,h3 { margin:0 }
  a { color:inherit;text-decoration:none }
  button { font:inherit;color:inherit;cursor:pointer }
  button:focus-visible,a:focus-visible { outline:2px solid currentColor;outline-offset:5px }
  svg { display:block }
  h1,h2,h3,.wordmark { font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.055em }
  h2 { font-size:clamp(2.9rem,6vw,6.35rem) }
  em { font-weight:400;color:var(--wine) }
  .small { font-size:.68rem;font-weight:700;letter-spacing:.17em;line-height:1.5;text-transform:uppercase }
  .wrap { padding-inline:var(--gutter);max-width:1720px;margin-inline:auto }
  .chapter { display:flex;align-items:center;gap:12px;margin-bottom:16px;color:var(--wine) }
  .chapter::before { content:"";width:29px;height:1px;background:currentColor }
  .button,.text-link { position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:14px;width:fit-content;font-weight:700 }
  .button { isolation:isolate;overflow:hidden;min-height:46px;padding:0 0 0 15px;background:#362b27;color:var(--paper);font-size:.85rem;border:1px solid var(--action-edge,#b58e7f);transition:border-color .35s,transform .18s }
  .button:is(:hover,:focus-visible,:active) { border-color:#d49697 }
  .button:focus-visible { outline-color:var(--action-ring,var(--wine)) }
  .button:active { transform:translateY(2px) }
  .button .arrow { display:grid;place-items:center;flex:none;align-self:stretch;width:44px;min-height:44px;border-left:1px solid currentColor;transform:none }
  .button .arrow > span { transition:transform .32s var(--ease-film) }
  .button:is(:hover,:focus-visible) .arrow > span { transform:translate(3px,-2px) }
  .button:is(:hover,:focus-visible) .arrow-down > span { transform:translate(2px,3px) }
  .text-link { font-size:.84rem;border-bottom:1px solid var(--link-rule,#987e6e);padding-block:5px;transition:color .27s }
  .text-link::after { content:"";position:absolute;inset:auto 0 -1px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .34s var(--ease-film) }
  .text-link:is(:hover,:focus-visible) { color:var(--link-hover,var(--wine)) }
  .text-link:is(:hover,:focus-visible)::after { transform:scaleX(1);transform-origin:left }
  .text-link:active { opacity:.74 }
  .arrow { display:inline-block;transition:transform .25s ease }
  :is(a,button):not(.button):is(:hover,:focus-visible) .arrow { transform:translate(3px,-2px) }
  .skip { position:fixed;top:8px;left:8px;z-index:8;background:var(--paper);padding:10px;transform:translateY(-150%) }
  .skip:focus { transform:none }
  .art-definitions { position:absolute;width:0;height:0;overflow:hidden }
  .engraving { width:100%;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round }
  .header { border-bottom:1px solid var(--rule) }
  .header-inner { height:77px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center }
  .header-note { color:var(--muted) }
  .brand { display:flex;align-items:center;gap:8px }
  .brand-mark { width:34px;height:24px;color:var(--wine) }
  .wordmark { white-space:nowrap;font-size:1.9rem }
  .header-actions { display:flex;align-items:center;justify-content:flex-end;gap:clamp(12px,3vw,44px) }
  .menu-toggle,.menu-close { display:flex;align-items:center;gap:10px;border:0;background:none;padding:8px 0 }
  .menu-icon { width:19px;display:grid;gap:5px }
  .menu-icon::before,.menu-icon::after { content:"";height:1px;background:currentColor }
  .hero { display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(26px,4vw,68px);padding-top:clamp(24px,4.8vw,74px);align-items:center }
  .hero-content { padding-block:clamp(8px,3vw,38px) }
  .hero h1 { font-size:clamp(4rem,7.35vw,8.9rem);line-height:.93 }
  .hero h1 em { display:block }
  .hero-copy { max-width:34ch;margin:24px 0;color:var(--muted) }
  .hero-actions { display:flex;gap:12px 20px;align-items:center;flex-wrap:wrap }
  .image-frame { position:relative;isolation:isolate;overflow:hidden;background:#b1aa91 }
  .image-frame::before { content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 25% 20%,#d9c9a4,transparent 55%),repeating-linear-gradient(158deg,#7e8262 0 8px,#989676 8px 14px,#b3a889 14px 20px) }
  .stamp { position:absolute;bottom:24px;right:24px;display:grid;place-content:center;text-align:center;width:85px;height:85px;gap:3px;border-radius:50%;background:var(--paper);color:var(--wine);transform:rotate(-8deg);font-size:.51rem;letter-spacing:.1em }
  .stamp .engraving { width:46px;height:28px;margin:auto }
  .caption { display:flex;justify-content:space-between;gap:8px;padding-top:10px;color:var(--muted) }
  .trail { display:flex;align-items:center;gap:clamp(8px,2vw,16px);color:var(--trail-ink,var(--olive)) }
  .trail svg { flex:1 1 0;min-width:28px;width:0;height:24px;overflow:visible;clip-path:inset(-4px);transition:clip-path 1.52s var(--ease-film) }
  .trail :is(path,circle) { stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke;fill:none }
  .trail circle { fill:var(--trail-fill,var(--paper)) }
  .motion .trail:not(.seen) svg { clip-path:inset(-4px 100% -4px -4px) }
  .route-strip { --trail-fill:#efe8dc;margin-top:clamp(36px,5.8vw,92px) }
  .atlas-trail { --trail-ink:var(--wine);--trail-fill:#eee5d7;margin-bottom:13px }
  .story-trail { --trail-ink:var(--wine);margin:-12px 0 18px }
  .association-trail { --trail-ink:#e3bcab;--trail-fill:var(--dark);max-width:46ch;margin-bottom:22px }
  .section { padding-block:clamp(65px,8.5vw,132px) }
  .error-page h1 { font-size:clamp(3rem,7vw,7rem) }
  .error-copy { max-width:38ch;margin:20px 0;color:var(--muted) }
  .events { padding-top:clamp(35px,5vw,70px) }
  .section-head { display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:clamp(25px,4vw,53px) }
  .events-list { border-top:1px solid var(--rule) }
  .events-list > p { padding:18px 0;color:var(--muted) }
  .event { display:grid;grid-template-columns:clamp(76px,13vw,174px) minmax(0,1fr) minmax(100px,20%) 38px;align-items:center;gap:14px;border-bottom:1px solid var(--rule);padding:20px 5px;transition:background .25s }
  .event:hover,.event:focus-visible { background:var(--sand) }
  .event time { display:flex;align-items:baseline;gap:6px;color:var(--wine) }
  .event time strong { font:400 clamp(2rem,4.5vw,3.65rem)/1 var(--serif);letter-spacing:-.07em }
  .event h3 { font-size:clamp(1.45rem,3.1vw,2.9rem) }
  .event-place { color:var(--muted);font-size:.88rem }
  .event .arrow { display:grid;place-items:center;width:37px;height:37px;border:1px solid var(--rule);transition:background .26s,color .26s,transform .26s }
  .event:is(:hover,:focus-visible) .arrow { background:var(--wine);color:var(--paper);transform:none }
  .atlas { background:var(--sand) }
  .atlas-layout { display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,6vw,100px);align-items:center }
  .atlas h2 { margin-bottom:18px }
  .atlas-intro { max-width:46ch;color:var(--muted) }
  .map { position:relative;isolation:isolate;overflow:hidden;margin-top:26px;min-height:260px;aspect-ratio:1.8;background:#dfd5c1;border:1px solid #c1b49e }
  .map svg { width:100%;height:100%;position:absolute;inset:0 }
  .map-card { background:var(--paper);padding:12px;border:1px solid var(--rule) }
  .map-card .image-frame { aspect-ratio:1.6 }
  .map-card-copy { padding:clamp(12px,2vw,26px) }
  .map-card h3 { font-size:clamp(2.1rem,4.2vw,4.4rem);margin:7px 0 10px }
  .map-card p:not(.small) { margin-bottom:13px;color:var(--muted) }
  .guide-link { margin-top:17px }
  .association { background:var(--dark);color:var(--paper) }
  .association-layout { display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(26px,5vw,80px) }
  .association-photo .image-frame { aspect-ratio:1.28;background:#565340 }
  .association-photo img { object-position:center 52% }
  .association-photo .caption { color:#e7d4bf }
  .association-photo:has(img[hidden]) { display:none }
  .association-layout:has(.association-photo img[hidden]) { grid-template-columns:1fr }
  .association .chapter,.association em { color:#e3bcab }
  .association p:not(.chapter) { margin:19px 0 22px;max-width:46ch }
  .association .button,.hero .button { --action-edge:#e1c7b5;--action-ring:var(--paper) }
  .footer-inner { display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-block:27px }
  .footer-inner nav { display:flex;gap:16px;flex-wrap:wrap }
  .footer-inner a:hover { text-decoration:underline }
  .footer-inner p,.footer-inner nav { font-size:.79rem }
  .motion .reveal { clip-path:inset(0 0 100% 0);transition:clip-path .85s cubic-bezier(.2,.7,.25,1) }
  .motion .reveal.seen { clip-path:inset(0) }
  @keyframes enter { from { opacity:0;transform:translateY(12px) } to { opacity:1;transform:none } }
  .entering { animation:enter .38s both }
  .intro { display:none }
  .menu { position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;margin:0;padding:0;overflow:auto;background:var(--dark);color:var(--paper) }
  .menu[open] { display:block }
  .menu-header { display:flex;align-items:center;justify-content:space-between;height:77px;border-bottom:1px solid #f5f0e74d }
  .menu-header .brand-mark { color:#e3bcab }
  .menu-main { display:grid;grid-template-columns:1fr .8fr;gap:clamp(25px,6vw,95px);align-items:center;padding-block:clamp(20px,5vw,70px) }
  .menu nav a { display:flex;align-items:baseline;gap:13px;padding:10px 0;border-bottom:1px solid #f5f0e74d;font:400 clamp(1.9rem,4.5vw,5.1rem)/1.07 var(--serif);letter-spacing:-.05em }
  .menu nav a:is(:hover,:focus-visible) { color:#e3bcab }
  .menu nav small { font:700 .64rem var(--sans);color:#e3bcab }
  .menu figure .image-frame { aspect-ratio:1.22 }
  .menu .caption { color:#f5f0e7 }
  .menu .join-link { margin-top:22px }
  @media (max-width:850px) {
    .hero { gap:20px }
    .hero h1 { font-size:clamp(3.7rem,8vw,5.2rem) }
    .hero-content { padding-block:4px }
    .header-note { display:none }
    .header-inner { grid-template-columns:1fr 1fr }
    .atlas-layout { gap:25px }
  }
  @media (max-width:630px) {
    .header-inner,.menu-header { height:62px }
    .header-join { display:none }
    .hero,.atlas-layout,.association-layout,.menu-main { grid-template-columns:1fr }
    .hero h1 { font-size:clamp(3.6rem,11vw,5.8rem) }
    .hero-copy { margin:15px 0 17px }
    .hero-actions { gap:9px 12px }
    .route-strip { gap:7px }
    .section-head { flex-direction:column;align-items:start;gap:11px }
    .event { grid-template-columns:54px minmax(0,1fr) 29px;gap:6px 10px;padding:15px 0 }
    .event time { grid-row:1 / span 2;align-self:center;gap:3px }
    .event time span { font-size:.52rem }
    .event-place { grid-column:2;grid-row:2 }
    .event .arrow { grid-column:3;grid-row:1 / span 2;width:28px;height:28px }
    .map { min-height:205px }
    .menu-main figure { display:none }
    .menu nav a { font-size:clamp(2rem,9vw,3.8rem) }
  }
  @media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto!important;animation:none!important;transition:none!important }
  }
  /* La sequenza di apertura e i capitoli condividono lo stesso movimento di rivelazione. */
  :root { --ease-film:cubic-bezier(.22,.74,.24,1); --header-height:76px }
  html { scroll-padding-top:var(--header-height) }
  .header { position:fixed;inset:0 0 auto;z-index:4;color:var(--paper);border-color:#fff4;transition:background .36s,color .36s,border-color .36s }
  .header-note,.header .brand-mark { color:inherit }
  .header.is-solid { background:var(--paper);color:var(--ink);border-color:var(--rule) }
  .header-progress { position:absolute;inset:auto 0 -1px;height:2px;background:#bc8c83;transform:scaleX(var(--read,0));transform-origin:left }
  .hero { position:relative;display:grid;grid-template-columns:1fr;align-items:end;min-height:100vh;min-height:100svh;padding:calc(var(--header-height) + 60px) var(--gutter) clamp(100px,15vh,175px);color:var(--paper);isolation:isolate;overflow:hidden;background:#343a2b }
  .hero-scene { position:absolute;inset:0;z-index:-2;overflow:hidden;background:linear-gradient(135deg,#474e3c,#70765d 48%,#353829) }
  .hero-scene img { position:absolute;inset:0;object-position:50% 55%;transform:translate3d(0,calc(var(--camera,0) * 9%),0) scale(calc(1.04 + var(--camera,0) * .12));filter:saturate(.87) brightness(.98) }
  .hero::before { content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#1d2118c9 0%,#21231a69 58%,#1d211829 100%),linear-gradient(0deg,#202119c9,transparent 45%,transparent 77%,#20211982) }
  .hero::after { content:"";position:absolute;inset:calc(var(--header-height) + 15px) 16px 16px;border:1px solid #f5f0e745;pointer-events:none }
  .hero-content { position:relative;padding:0;max-width:1550px;width:100%;margin-inline:auto }
  .hero .chapter,.hero-copy { color:#fff6e8 }
  .hero h1 { font-size:clamp(4.25rem,10.2vw,11.2rem);line-height:.94 }
  .hero h1 em { color:#f1c6b8 }
  .hero-line { display:block;overflow:hidden;padding:.04em .1em .12em .015em;margin:0 0 -.1em -.015em }
  .hero-line > span { display:block }
  .hero-copy { margin:23px 0;max-width:39ch }
  .hero .text-link,.menu .text-link { --link-rule:#d7ab9a;--link-hover:#f1c6b8 }
  .hero-bottom { position:absolute;inset:auto var(--gutter) 34px;display:flex;align-items:center;justify-content:space-between;gap:12px }
  .hero-bottom a { display:inline-flex;align-items:center;gap:10px }
  .hero-bottom a::before { content:"";width:1px;height:24px;background:currentColor }
  .hero-bottom .stamp { position:static;background:none;border:1px solid #f5f0e770;color:var(--paper);width:76px;height:76px }
  .intro.is-playing { position:absolute;inset:0;display:grid;place-items:center;z-index:2;color:var(--paper);pointer-events:none }
  .intro-inner { width:min(350px,78vw);display:grid;justify-items:center;gap:12px;text-align:center;animation:intro-logo 1.7s both var(--ease-film) }
  .intro .engraving { width:65%;height:86px;color:#efdbca }
  .intro .wordmark { font-size:clamp(3.5rem,8vw,6.5rem) }
  .intro .small { color:#f5e4d4 }
  .hero.is-intro .hero-scene { animation:intro-landscape 1.7s both var(--ease-film) }
  .hero.is-intro .hero-content:not(:focus-within),.hero.is-intro .hero-bottom:not(:focus-within),.header.is-intro .header-inner:not(:focus-within) { animation:intro-content 1.7s both var(--ease-film) }
  @keyframes intro-logo {
    0% { opacity:0;transform:scale(.96);filter:blur(12px) }
    24%,58% { opacity:1;transform:scale(1);filter:none }
    100% { opacity:0;transform:scale(1.07);filter:blur(15px) }
  }
  @keyframes intro-landscape { 0%,42% { opacity:.52;filter:blur(9px) } 100% { opacity:1;filter:none } }
  @keyframes intro-content { 0%,69% { opacity:0 } 100% { opacity:1 } }
  @keyframes fog-in { from { transform:translateY(.29em);opacity:.28;filter:blur(.19em) } to { transform:none;opacity:1;filter:none } }
  .motion .hero-line > span { animation:fog-in 1.36s calc(var(--hero-delay,0ms) + var(--i,0) * 140ms) both var(--ease-film) }
  .motion .hero-content > :is(.chapter,.hero-copy,.hero-actions),.motion .hero-bottom { animation:enter 1s calc(var(--hero-delay,0ms) + 260ms) both var(--ease-film) }
  .manifesto { position:relative;display:grid;grid-template-columns:1fr .38fr;align-items:end;gap:clamp(26px,7vw,110px);padding-block:clamp(68px,10vw,156px) clamp(15px,3vw,44px) }
  .manifesto h2 { max-width:14ch;font-size:clamp(3.15rem,7.2vw,8.4rem) }
  .manifesto aside { color:var(--muted);padding-block:18px;border-top:1px solid var(--rule) }
  .manifesto aside .small { display:block;color:var(--wine);margin-bottom:12px }
  .manifesto-photo { margin-top:20px }
  .manifesto-photo .image-frame { aspect-ratio:1.75 }
  .manifesto-photo figcaption { margin-top:7px }
  .manifesto-photo:has(img[hidden]) { display:none }
  .motion [data-reveal] { opacity:0;transform:translateY(27px);transition:opacity .76s var(--ease-film),transform .9s var(--ease-film);transition-delay:calc(var(--stagger,0) * 85ms) }
  .motion [data-reveal].seen,.motion [data-reveal]:focus-within { opacity:1;transform:none }
  .motion .title-fog.seen { animation:fog-in 1.34s both var(--ease-film) }
  .motion .event h3.title-fog.seen { animation-delay:calc(var(--stagger,0) * 85ms) }
  .motion .reveal { transition:clip-path 1.15s var(--ease-film) }
  .motion .reveal img { transform:scale(1.12);transition:transform 1.5s var(--ease-film) }
  .motion .reveal.seen img { transform:none }
  .menu { background:#303629 }
  .menu-header { height:var(--header-height) }
  .menu-main { grid-template-columns:1.08fr .92fr;padding-block:clamp(35px,7vh,105px) }
  .menu nav a { position:relative;align-items:center;justify-content:space-between;gap:12px;padding:clamp(10px,2vh,20px) 0;transition:color .3s,padding .45s var(--ease-film) }
  .menu nav a > span:first-of-type { flex:1 }
  .menu nav a.is-preview { color:#f1c6b8;padding-left:10px }
  .menu nav a .menu-arrow { font:400 .95rem var(--sans);opacity:0;transform:translateX(-9px);transition:opacity .3s,transform .4s var(--ease-film) }
  .menu nav a.is-preview .menu-arrow { opacity:1;transform:none }
  .menu nav a small { align-self:start;margin-top:.85em }
  .menu [data-menu-item] { position:relative }
  .motion .menu[open] { animation:menu-film .58s both var(--ease-film) }
  .motion .menu[open] [data-menu-item] { animation:enter .64s calc(110ms + var(--i,0) * 62ms) both var(--ease-film) }
  .motion .menu.is-closing { animation:menu-out .35s both var(--ease-film) }
  @keyframes menu-film { from { clip-path:inset(0 0 100% 0) } }
  @keyframes menu-out { to { clip-path:inset(0 0 100% 0) } }
  .menu-preview { position:relative;margin:14px 14px 20px 0;isolation:isolate }
  .menu-preview::before,.menu-preview::after { content:"";position:absolute;inset:11px -11px -11px 11px;border:1px solid #f5f0e750;z-index:-1 }
  .menu-preview::after { inset:19px -19px -19px 19px;opacity:.5 }
  .menu-preview figure { background:#3b4230;padding:11px;border:1px solid #f5f0e750 }
  .menu-preview .image-frame { aspect-ratio:1.14 }
  .menu-preview img { position:absolute;inset:0;transition:opacity .48s var(--ease-film),transform .65s var(--ease-film);opacity:0;transform:scale(1.05) }
  .menu-preview img.is-shown { opacity:1;transform:none }
  .menu-card-index { position:absolute;left:15px;bottom:11px;color:#fff8e9;z-index:1;font:400 clamp(2rem,6vw,5.5rem)/1 var(--serif);text-shadow:0 2px 18px #2229 }
  .menu-preview .image-frame::after { content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#1f261a70);pointer-events:none }
  .atlas { background:#eee5d7;padding-block:clamp(23px,4.2svh,50px) }
  .atlas .chapter { margin-bottom:8px }
  .atlas h2 { font-size:clamp(2.9rem,min(5.6vw,8svh),5.6rem);margin-bottom:9px }
  .atlas-layout { grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(24px,5.6vw,92px);align-items:start;max-width:1440px }
  .map { background:none;border:0;min-height:0;aspect-ratio:auto;height:clamp(185px,33svh,320px);overflow:visible;margin-top:8px }
  .map svg { overflow:visible }
  .map .region { fill:#d0c4ac;stroke:#eee5d7;stroke-width:1.35;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .25s }
  .map .region.is-selected { fill:#8e675f }
  @media(hover:hover) {
    .map .region:not(.is-selected):hover { fill:#b68779 }
  }
  .map .region-elevated { fill:var(--wine);stroke:#f8eee3;stroke-width:1.8;vector-effect:non-scaling-stroke;pointer-events:none;transform-box:fill-box;transform-origin:center;transform:scale(1.12);filter:drop-shadow(0 3px 3px #633c3345) }
  .map-controls { display:grid;gap:6px;padding:clamp(9px,1.2vw,15px);border:1px solid #b4a38b;background:#f3ebdf }
  .map-controls .small { color:var(--wine) }
  .map-select { display:flex;flex-wrap:wrap;gap:6px }
  .map-select button { display:inline-flex;align-items:center;gap:7px;min-height:44px;border:1px solid #ac9b84;background:transparent;padding:7px 10px;font-size:.77rem;font-weight:700;transition:border-color .23s,background .23s,color .23s }
  .map-select button::before { content:"";width:6px;height:6px;border:1px solid currentColor;transform:rotate(45deg) }
  .map-select button:is(:hover,:focus-visible) { border-color:var(--wine);color:var(--wine);background:#eee1d4 }
  .map-select button[aria-pressed="true"] { color:var(--paper);background:var(--olive);border-color:var(--olive) }
  .map-select button[aria-pressed="true"]::before { background:currentColor }
  .map-select button:active { background:var(--wine);border-color:var(--wine);color:var(--paper) }
  .region-field { display:grid;gap:5px }
  .region-trigger { position:relative;display:grid }
  .region-picker { appearance:none;min-height:48px;width:100%;border:1px solid #ac9b84;border-radius:0;background:var(--paper);color:var(--ink);padding:7px 53px 7px 12px;font:500 clamp(1rem,1.5vw,1.19rem) var(--serif);cursor:pointer;transition:border-color .25s,background .25s }
  .region-picker:is(:hover,:focus-visible) { border-color:var(--wine);background:#fff9f1 }
  .region-picker:focus-visible { outline:2px solid var(--wine);outline-offset:3px }
  .region-chevron { position:absolute;inset:1px 1px 1px auto;width:42px;display:grid;place-items:center;border-left:1px solid #ac9b84;color:var(--wine);pointer-events:none;transition:background .25s,color .25s }
  .region-chevron svg { width:14px;height:14px;transition:transform .25s var(--ease-film) }
  .region-trigger:is(:hover,:focus-within) .region-chevron { background:var(--wine);color:var(--paper) }
  .region-trigger:focus-within .region-chevron svg { transform:translateY(2px) }
  .atlas-footer { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:3px 12px;margin-top:7px }
  .map-credit { color:var(--muted);font-size:.65rem }
  .map-credit a { text-decoration:underline }
  .map-card { width:100%;max-width:570px;justify-self:center;margin-top:clamp(0px,2.8svh,32px);padding:0;border:0;background:none }
  .map-card .image-frame { aspect-ratio:1.55;max-height:clamp(165px,37svh,350px);background:#d4c7af }
  .map-card .image-frame:has(img[hidden])::before { background:linear-gradient(125deg,#9d8066,#c9b595 58%,#b2a58d) }
  .region-plate { position:absolute;inset:0;display:none;place-items:center;background:#ded0bb;color:#684237 }
  .region-plate svg { width:63%;height:68%;fill:currentColor }
  .region-plate > span { position:absolute;left:15px;bottom:13px }
  #region-photo[hidden] + .region-plate { display:grid }
  .map-card-copy { padding:0 0 12px;border-bottom:1px solid #b2a28d;margin-bottom:12px }
  .map-card h3 { font-size:clamp(2.25rem,min(4.1vw,6svh),4rem);margin:4px 0 7px }
  .map-card p:not(.small) { margin-bottom:7px }
  .map-card .small { color:var(--wine) }
  .atlas .guide-link { margin-top:0 }
  .chapter-stage { display:flow-root }
  .chapter-sheet { position:relative;z-index:1;background:var(--sheet-color,var(--paper)) }
  .hero.chapter-sheet { --sheet-color:var(--dark) }
  .motion .chapter-stage:not(:last-child) { margin-bottom:calc(-1 * var(--sheet-overlap,75svh)) }
  .motion .chapter-stage:not(:last-child)::after { content:"";display:block;height:var(--sheet-overlap,75svh);pointer-events:none }
  .motion .chapter-sheet { position:sticky;top:min(var(--header-height),calc(100svh - var(--sheet-height,100svh))) }
  .motion .hero.chapter-sheet { top:0 }
  .motion .chapter-stage:not(.hero-chapter) .chapter-sheet { box-shadow:0 -14px 34px #20241929 }
  .chapter-stage:focus-visible { outline:none }
  .events-sheet { --sheet-color:#efe8dc;padding-top:1px }
  .atlas { --sheet-color:#eee5d7 }
  .association { --sheet-color:var(--dark) }
  .story-deck { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(13px,2.2vw,36px);padding:0 5px 6px 0 }
  .story-card { position:relative;display:flex;flex-direction:column;min-width:0;background:#f0e7d8;border:1px solid var(--rule);box-shadow:4px 4px 0 #f8f2e8,5px 5px 0 var(--rule) }
  .story-card::before { content:"";position:absolute;inset:0 0 auto;z-index:1;height:2px;background:var(--wine);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-film);pointer-events:none }
  .story-card:is(:hover,:focus-within)::before { transform:scaleX(1) }
  .story-card:nth-child(2) { background:#e9ddce }
  .story-card:nth-child(3) { background:#ece5d7 }
  .story-media { position:relative;display:grid;place-items:center;isolation:isolate;overflow:hidden;aspect-ratio:1.46;background:#d7c7af;color:var(--wine) }
  .story-media img { position:absolute;inset:0;transition:transform .6s var(--ease-film) }
  .story-media:hover img { transform:scale(1.035) }
  .story-media.is-bottle img { object-fit:contain;background:#dfd2be;padding:7px }
  .story-media .engraving { width:38%;position:absolute;z-index:-1 }
  .story-media .play { position:relative;display:grid;place-items:center;width:51px;height:51px;border:1px solid var(--paper);background:var(--paper);color:var(--wine);transition:background .25s,color .25s }
  .story-media:is(:hover,:focus-visible) .play { background:var(--wine);color:var(--paper) }
  .story-copy { display:flex;flex:1;flex-direction:column;align-items:start;padding:clamp(18px,2.25vw,36px) }
  .story-copy .chapter { margin-bottom:10px;gap:8px }
  .story-copy .chapter::before { width:15px }
  .story-copy h3 { font-size:clamp(1.95rem,3.2vw,4rem);margin-bottom:12px }
  .story-copy p:not(.chapter) { margin-bottom:17px;color:var(--muted) }
  .story-copy .text-link { margin-top:auto }
  .alba-story { --sheet-color:#e4d8c5;padding-block:clamp(38px,6vw,90px) }
  .alba-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.23fr);align-items:center;gap:clamp(26px,5vw,88px) }
  .alba-copy h2 { font-size:clamp(2.75rem,5.2vw,6rem);max-width:12ch }
  .alba-copy > p:not(.chapter) { margin-block:14px 18px;max-width:48ch }
  .alba-stops { display:flex;flex-wrap:wrap;gap:4px 13px;list-style:none;margin:0 0 20px;padding:10px 0;border-block:1px solid #b4a28a }
  .alba-stops li { display:inline-flex;align-items:center;gap:6px }
  .alba-stops li::before { content:"";width:5px;height:5px;background:var(--wine);transform:rotate(45deg) }
  .alba-photo .image-frame { aspect-ratio:1.44 }
  .alba-photo img { object-position:center 49% }
  .alba-photo figcaption { color:var(--muted) }
  .alba-layout:has(img[hidden]) { grid-template-columns:1fr }
  .alba-photo:has(img[hidden]) { display:none }
  .photo-credits { flex-basis:100%;color:var(--muted) }
  .photo-credits a { text-decoration:underline;text-underline-offset:3px }
  @media(max-width:850px) {
    .hero h1 { font-size:clamp(4rem,11vw,7.5rem) }
    .atlas-layout { gap:30px }
    .menu-main { gap:30px }
    .story-deck { grid-template-columns:repeat(2,minmax(0,1fr)) }
  }
  @media(min-width:851px) and (max-height:750px) {
    .atlas { padding-block:19px }
    .atlas-intro { font-size:.88rem;line-height:1.45 }
    .map { height:clamp(162px,30svh,230px) }
    .map-controls { padding:9px 11px }
  }
  @media(max-width:630px) {
    :root { --header-height:62px }
    .chapter-stage { --sheet-overlap:54svh }
    .hero { padding-bottom:118px }
    .hero::after { inset:calc(var(--header-height) + 10px) 9px 9px }
    .hero-scene img { object-position:44% 50% }
    .hero h1 { font-size:clamp(3.85rem,12.4vw,6.1rem) }
    .hero-bottom { bottom:22px }
    .hero-bottom .stamp { display:none }
    .manifesto,.atlas-layout,.menu-main,.alba-layout { grid-template-columns:1fr }
    .manifesto aside { padding-bottom:0 }
    .menu-main { padding-block:24px 45px }
    .menu-preview { margin-top:0 }
    .menu-preview figure { display:block }
    .menu-preview .image-frame { aspect-ratio:2.15 }
    .menu nav a { font-size:clamp(2rem,8.3vw,3.8rem) }
    .menu nav a small { margin-top:.6em }
    .map { height:clamp(190px,58vw,245px) }
    .atlas-layout { gap:22px }
    .map-card { margin-top:0 }
    .map-card .image-frame { max-height:240px }
    .story-deck { grid-template-columns:1fr;gap:22px }
  }
  @media(max-width:374px) {
    .hero h1 { font-size:clamp(2.9rem,15.9vw,3.85rem) }
  }
  @media(prefers-reduced-motion:reduce) {
    .hero { position:relative }
    .motion .chapter-stage:not(:last-child) { margin-bottom:0 }
    .motion .chapter-stage:not(:last-child)::after { display:none }
    .motion .chapter-sheet { position:relative;top:auto }
    .hero-scene img,.motion [data-reveal] { transform:none }
    .motion [data-reveal] { opacity:1 }
    .motion .reveal { clip-path:none }
    .intro.is-playing { display:none }
    .motion .trail:not(.seen) svg { clip-path:none }
    .button:is(:hover,:focus-visible,:active) { background:var(--wine) }
  }
  @media(forced-colors:active) {
    .region-picker { appearance:auto;padding-right:12px }
    .region-chevron { display:none }
  }
