html { overflow-x: clip; }
.village-page { overflow-x: clip; background: #fff; color: #403d39; }
.village-page main > section { padding-block: clamp(88px, 10vw, 148px); }
.ve-shell { width: min(100% - 48px, 1280px); margin-inline: auto; }
.ve-kicker { display: flex; gap: 14px; margin: 0 0 22px; align-items: center; color: var(--color-primary); font-family: Arial, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }
.ve-kicker::before { width: 38px; height: 1px; background: currentcolor; content: ""; }
.ve-kicker--light { color: #eadcc5; }
.ve-heading h2, .ve-intro h2, .ve-place h2, .ve-collective h2 { margin: 0; font-size: clamp(51px, 6vw, 84px); letter-spacing: -.035em; line-height: .92; }
.ve-heading h2 em, .ve-next h2 em { color: var(--color-primary); font-weight: 400; }
.ve-heading--wide { max-width: 780px; margin-bottom: clamp(48px, 7vw, 86px); }
.ve-heading--split { display: grid; margin-bottom: clamp(48px, 7vw, 82px); grid-template-columns: minmax(0, 1.25fr) minmax(260px, .55fr); gap: 48px; align-items: end; }
.ve-heading--split > p { max-width: 450px; margin: 0 0 5px; color: #6e6961; font-size: 20px; line-height: 1.55; }
.ve-lead { color: #2b2926; font-size: clamp(22px, 2vw, 28px); line-height: 1.45; }
.ve-source-note { max-width: 780px; margin: 26px 0 0; color: #817a70; font-size: 14px; font-style: italic; }
.ve-button { display: inline-flex; min-height: 50px; padding: 13px 24px; align-items: center; justify-content: center; border: 1px solid var(--color-primary); border-radius: 999px; background: var(--color-primary); color: #fff; font-family: Arial, sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .03em; text-decoration: none; transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease; }
.ve-button:hover, .ve-button:focus-visible { border-color: #a83a33; background: #a83a33; transform: translateY(-2px); }
.ve-button--light { border-color: #f8f6f2; background: #f8f6f2; color: #171614; }
.ve-button--light:hover, .ve-button--light:focus-visible { border-color: #eadcc5; background: #eadcc5; }
.ve-text-link { display: inline-flex; min-height: 42px; align-items: center; gap: 9px; color: #2e2a27; font-family: Arial, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.ve-text-link:hover, .ve-text-link:focus-visible { color: var(--color-primary); }
.ve-text-link--light { color: #fff; }
.ve-button:focus-visible, .ve-text-link:focus-visible, .ve-next__domain-button:focus-visible, .ve-day__item summary:focus-visible, .ve-years button:focus-visible, .ve-gallery__card:focus-visible { outline: 2px solid var(--color-gold); outline-offset: 5px; }

.village-page main > .ve-hero { position: relative; display: flex; min-height: calc(96vh - var(--site-header-height)); padding-block: 80px 64px; align-items: flex-end; background: #161814; color: #fff; overflow: hidden; }
.ve-hero__media, .ve-hero__veil { position: absolute; width: 100%; height: 100%; inset: 0; }
.ve-hero__media { object-fit: cover; object-position: 50% 44%; }
.ve-hero__veil { background: linear-gradient(90deg, rgb(10 15 10 / 78%) 0%, rgb(10 15 10 / 37%) 55%, rgb(10 15 10 / 20%) 100%), linear-gradient(0deg, rgb(0 0 0 / 62%), transparent 54%); }
.ve-hero__content { position: relative; z-index: 1; }
.ve-hero h1 { max-width: 860px; margin: 0; color: #fff; font-size: clamp(74px, 10.5vw, 150px); font-weight: 500; letter-spacing: -.055em; line-height: .74; }
.ve-hero h1 em { color: #e7d9c1; font-weight: 400; }
.ve-hero__content > p:last-child { max-width: 640px; margin: 38px 0 0; color: rgb(255 255 255 / 86%); font-size: clamp(20px, 2vw, 27px); line-height: 1.4; }
.ve-hero__scroll { position: absolute; z-index: 2; right: clamp(24px, 4vw, 56px); bottom: 44px; display: flex; gap: 14px; color: #fff; font-family: Arial, sans-serif; font-size: 11px; letter-spacing: .15em; text-decoration: none; text-transform: uppercase; }

.ve-intro { background: #fff; }
.ve-intro__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(430px, 1.1fr); gap: clamp(60px, 9vw, 130px); align-items: center; }
.ve-intro__copy { max-width: 560px; }
.ve-intro__copy > p:not(.ve-kicker) { margin: 30px 0 0; }
.ve-intro__figure { margin: 0; align-self: center; }
.ve-intro__figure img { display: block; width: 100%; height: auto; object-fit: contain; }
.ve-intro__media { display: flex; min-width: 0; flex-direction: column; }
.ve-intro__photo { width: 100%; padding: 10px; background: #fff; box-shadow: 0 26px 70px rgb(46 39 31 / 17%); }
.ve-intro__photo img { aspect-ratio: 1.39 / 1; object-fit: cover; }
.ve-intro__photo figcaption { margin: 9px 4px 2px; }
.ve-intro__video { position: relative; z-index: 1; width: 72%; margin: -28px 24px 0 auto; }
.ve-intro__video-frame { position: relative; overflow: hidden; border: 1px solid #ddd4c7; border-radius: 16px; background: #171614; box-shadow: 0 20px 52px rgb(46 39 31 / 18%); aspect-ratio: 16 / 9; }
.village-page main > .ve-voices { height: min(72vh, 640px); height: min(72svh, 640px); padding-block: clamp(18px, 3.5svh, 36px); box-sizing: border-box; background: #d8d0c4; overflow: hidden; }
.ve-voices > .ve-shell { display: flex; height: 100%; min-height: 0; flex-direction: column; }
.ve-voices__header { display: flex; margin-bottom: clamp(10px, 1.5svh, 16px); align-items: center; justify-content: center; gap: clamp(20px, 3vw, 42px); }
.ve-voices__header .ve-kicker { margin: 0; }
.ve-voices__logo { display: block; width: clamp(125px, 12vw, 170px); height: auto; mix-blend-mode: multiply; object-fit: contain; }
.ve-voices__carousel { position: relative; min-height: 0; flex: 1; }
.ve-voices__stage { position: relative; height: calc(100% - 30px); min-height: 0; outline: 0; perspective: 1550px; transform-style: preserve-3d; }
.ve-voices__stage:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 6px; }
.ve-voice { position: absolute; top: 50%; left: 50%; display: flex; width: clamp(300px, 27vw, 350px); height: min(270px, calc(100% - 20px)); min-height: 0; margin: 0; padding: clamp(24px, 2.2vw, 32px); align-items: center; border: 1px solid rgb(99 80 59 / 10%); border-radius: clamp(20px, 2vw, 30px); background: #f8f6f2; box-shadow: 0 16px 38px rgb(57 45 33 / 9%); backface-visibility: hidden; opacity: .78; transform-style: preserve-3d; transition: left 650ms cubic-bezier(.22, .76, .28, 1), width 650ms cubic-bezier(.22, .76, .28, 1), height 650ms cubic-bezier(.22, .76, .28, 1), opacity 450ms ease, box-shadow 650ms ease, transform 650ms cubic-bezier(.22, .76, .28, 1); }
.ve-voice::before { position: absolute; top: 34px; left: clamp(26px, 3vw, 42px); color: var(--color-primary); content: "“"; font-family: "Cormorant Garamond", serif; font-size: 72px; line-height: .5; }
.ve-voice p { margin: 0; color: #37332f; font-size: clamp(14px, 1.2vw, 17px); font-style: italic; line-height: 1.38; transition: font-size 650ms cubic-bezier(.22, .76, .28, 1); }
.ve-voice[data-position="active"] { z-index: 3; left: 50%; width: min(720px, 58vw); height: min(100%, 320px); min-height: 0; opacity: 1; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #b8afa3 transparent; scrollbar-width: thin; box-shadow: 0 28px 64px rgb(57 45 33 / 18%); transform: translate(-50%, -50%) translateZ(145px) rotateY(0); }
.ve-voice[data-position="active"] p { font-size: clamp(18px, 1.55vw, 23px); }
.ve-voice[data-position="previous"],
.ve-voice[data-position="next"] { z-index: 1; opacity: .46; box-shadow: 0 30px 62px rgb(57 45 33 / 24%); filter: saturate(.72) brightness(.96); }
.ve-voice[data-position="previous"] { left: 8%; transform: translate(-50%, -50%) translateZ(-150px) rotateY(19deg); }
.ve-voice[data-position="next"] { left: 92%; transform: translate(-50%, -50%) translateZ(-150px) rotateY(-19deg); }
.ve-voice[data-position="hidden"] { display: none; }
.ve-voice[data-position="previous"] p,
.ve-voice[data-position="next"] p { color: #726b63; }
.ve-voice--long { max-height: 310px; flex-direction: column; align-items: flex-start; overflow: hidden; }
.ve-voice--long p + p { margin-top: .72em; }
.ve-voice--long[data-position="active"] { width: min(900px, 72vw); height: min(100%, 320px); min-height: 0; max-height: none; justify-content: flex-start; }
.ve-voice--long[data-position="active"] p { font-size: clamp(15px, 1.1vw, 17px); line-height: 1.32; }
.ve-voices__arrow { position: absolute; z-index: 2; top: 50%; display: grid; width: 54px; height: 54px; padding: 0; place-items: center; border: 1px solid rgb(41 39 36 / 22%); border-radius: 50%; background: rgb(248 246 242 / 94%); color: #292724; cursor: pointer; font-size: 22px; transform: translateY(-50%); transition: color 180ms ease, background-color 180ms ease, transform 180ms ease; }
.ve-voices__arrow--previous { left: 4px; }
.ve-voices__arrow--next { right: 4px; }
.ve-voices__arrow:hover,
.ve-voices__arrow:focus-visible { background: #292724; color: #fff; transform: translateY(-50%) scale(1.05); }
.ve-voices__arrow:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
.ve-voices__counter { margin: 12px 0 0; color: #5e5750; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .16em; text-align: center; }
.ve-intro__video-frame iframe { position: absolute; width: 100%; height: 100%; border: 0; inset: 0; }
.ve-intro figcaption, .ve-collective figcaption { margin-top: 10px; color: #827a70; font-family: Arial, sans-serif; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

.ve-spirit { background: #c7c0b4; }
.ve-spirit__list { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(34px, 5vw, 68px); list-style: none; }
.ve-spirit__list li { padding: 32px 0 40px; align-self: start; border-top: 1px solid rgb(34 31 27 / 28%); }
.ve-spirit__list figure { margin: 0 0 25px; border-radius: 18px; overflow: hidden; }
.ve-spirit__list img { display: block; width: 100%; height: auto; }
.ve-spirit h3 { margin: 0; font-size: clamp(36px, 4vw, 56px); }
.ve-spirit li p { max-width: 520px; margin: 12px 0 0; font-size: 19px; }

.village-page main > .ve-next { position: relative; display: grid; min-height: calc(100svh - var(--site-header-height)); padding-block: clamp(34px, 4.5vh, 52px); align-items: center; background: #111811; color: rgb(255 255 255 / 82%); isolation: isolate; overflow: hidden; }
.ve-next__slideshow, .ve-next__veil { position: absolute; inset: 0; }
.ve-next__slideshow { z-index: -2; overflow: hidden; background: #111811; }
.ve-next__rail { display: flex; width: max-content; height: 100%; animation: ve-next-scroll 44s linear infinite; will-change: transform; }
.ve-next__sequence { display: flex; height: 100%; padding-right: 14px; flex: none; gap: 14px; }
.ve-next__slide { width: clamp(680px, 68vw, 1160px); height: 100%; margin: 0; flex: none; overflow: hidden; border-radius: 18px; }
.ve-next__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ve-next__slide:nth-child(4n + 1) img { object-position: 50% 56%; }
.ve-next__slide:nth-child(4n + 2) img { object-position: 50% 38%; }
.ve-next__slide:nth-child(4n + 3) img { object-position: 52% 45%; }
.ve-next__slide:nth-child(4n + 4) img { object-position: 50% 40%; }
@keyframes ve-next-scroll { to { transform: translate3d(-50%, 0, 0); } }
.ve-next__veil { z-index: -1; background: linear-gradient(90deg, rgb(7 13 8 / 72%) 0%, rgb(7 13 8 / 55%) 48%, rgb(7 13 8 / 34%) 100%), linear-gradient(0deg, rgb(4 8 5 / 64%) 0%, transparent 58%, rgb(4 8 5 / 18%) 100%); }
.ve-next__content { position: relative; z-index: 1; display: grid; gap: clamp(20px, 2.8vh, 30px); }
.ve-next__header { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(190px, .45fr) minmax(230px, .58fr); gap: clamp(24px, 3vw, 46px); align-items: end; }
.ve-next__heading { max-width: 710px; text-shadow: 0 2px 24px rgb(0 0 0 / 58%); }
.ve-next__heading .ve-kicker { margin-bottom: 12px; }
.ve-next__heading h2 { margin: 0; color: #fff; font-size: clamp(48px, 5.8vw, 82px); letter-spacing: -.045em; line-height: .88; }
.ve-next__heading h2 em { color: #e6c783; }
.ve-next__heading > p:last-child { max-width: 650px; margin: 16px 0 0; color: rgb(255 255 255 / 75%); font-size: clamp(15px, 1.25vw, 18px); line-height: 1.38; }
.ve-next__date { padding: 16px 0 4px; border-top: 1px solid rgb(230 199 131 / 62%); text-shadow: 0 2px 22px rgb(0 0 0 / 62%); }
.ve-next__date span, .ve-next__date small { display: block; color: #e6c783; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.ve-next__date strong { display: block; margin: 12px 0 10px; color: #fff; font-family: var(--font-heading); font-size: clamp(48px, 5vw, 68px); font-weight: 400; letter-spacing: -.065em; line-height: .72; white-space: nowrap; }
.ve-next__map { display: grid; min-width: 0; margin: 0; grid-template-columns: 1fr auto; gap: 8px 14px; align-items: center; }
.ve-next__map-preview { position: relative; display: block; width: 100%; padding: 0; grid-column: 1 / -1; border: 1px solid rgb(230 199 131 / 62%); border-radius: 11px; background: #171b15; box-shadow: 0 14px 30px rgb(0 0 0 / 30%); cursor: zoom-in; overflow: hidden; }
.ve-next__map-preview img { display: block; width: 100%; height: clamp(92px, 11vh, 130px); object-fit: cover; object-position: center; transition: filter 180ms ease, transform 300ms ease; }
.ve-next__map-preview > span { position: absolute; right: 8px; bottom: 8px; padding: 6px 9px; border-radius: 999px; background: rgb(10 14 10 / 82%); color: #fff; font-family: Arial, sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ve-next__map-preview:hover img, .ve-next__map-preview:focus-visible img { filter: brightness(1.08); transform: scale(1.025); }
.ve-next__map-preview:focus-visible { outline: 2px solid #e6c783; outline-offset: 4px; }
.ve-next__map figcaption, .ve-next__map > a { color: rgb(255 255 255 / 72%); font-family: Arial, sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ve-next__map > a { color: #e6c783; text-decoration: none; }
.ve-next__map > a:hover, .ve-next__map > a:focus-visible { color: #fff; }
.ve-next__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgb(255 255 255 / 26%); border-left: 1px solid rgb(255 255 255 / 16%); background: rgb(9 16 11 / 68%); backdrop-filter: blur(12px); }
.ve-next__facts article { position: relative; min-height: clamp(205px, 25vh, 245px); padding: clamp(20px, 2vw, 28px); border-right: 1px solid rgb(255 255 255 / 16%); border-bottom: 1px solid rgb(255 255 255 / 16%); }
.ve-next__facts article > span { color: #e6c783; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .15em; }
.ve-next__facts h3 { margin: 14px 0 9px; color: #fff; font-size: clamp(28px, 2.6vw, 38px); }
.ve-next__facts p { max-width: 500px; margin: 0; color: rgb(255 255 255 / 70%); font-size: clamp(13px, 1.05vw, 15px); line-height: 1.42; }
.ve-next__facts p strong { color: #fff; font-weight: 500; }
.ve-next__domain-button { display: inline-flex; min-height: 34px; margin-top: 14px; padding: 7px 12px; align-items: center; gap: 9px; border: 1px solid rgb(230 199 131 / 68%); border-radius: 999px; color: #f2dfb8; font-family: Arial, sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease; }
.ve-next__domain-button:hover, .ve-next__domain-button:focus-visible { border-color: #e6c783; background: #e6c783; color: #111811; }
.ve-next__footer { display: flex; gap: 36px; align-items: center; justify-content: space-between; }
.ve-next__actions { display: flex; flex-wrap: wrap; gap: 14px 26px; align-items: center; }
.ve-next .ve-button { border-color: #e6c783; background: #e6c783; color: #111811; }
.ve-next .ve-button:hover, .ve-next .ve-button:focus-visible { border-color: #f1dcae; background: #f1dcae; }
.ve-next .ve-text-link { color: #fff; }
.ve-next .ve-text-link:hover, .ve-next .ve-text-link:focus-visible { color: #e6c783; }
.ve-next__motion-label { display: flex; margin: 0; align-items: center; gap: 12px; color: rgb(255 255 255 / 68%); font-family: Arial, sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.ve-next__motion-label span { color: #e6c783; font-size: 24px; font-weight: 400; }
.ve-map-dialog { width: min(96vw, 1500px); max-width: none; height: min(94vh, 1080px); max-height: none; padding: 0; border: 1px solid rgb(230 199 131 / 42%); border-radius: 18px; background: #111611; color: #fff; box-shadow: 0 30px 100px rgb(0 0 0 / 68%); overflow: hidden; }
.ve-map-dialog::backdrop { background: rgb(3 6 4 / 88%); backdrop-filter: blur(8px); }
.ve-map-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
.ve-map-dialog__bar { display: flex; min-height: 78px; padding: 14px 18px 14px 24px; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid rgb(255 255 255 / 13%); }
.ve-map-dialog__bar span { color: #e6c783; font-family: Arial, sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ve-map-dialog__bar h2 { margin: 2px 0 0; color: #fff; font-size: clamp(22px, 2vw, 30px); font-weight: 500; }
.ve-map-dialog__actions { display: flex; align-items: center; gap: 12px; }
.ve-map-dialog__actions a { display: inline-flex; min-height: 42px; padding: 10px 16px; align-items: center; gap: 9px; border: 1px solid #e6c783; border-radius: 999px; color: #e6c783; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.ve-map-dialog__actions button { display: grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 1px solid rgb(255 255 255 / 36%); border-radius: 50%; background: transparent; color: #fff; cursor: pointer; font-size: 29px; line-height: 1; }
.ve-map-dialog__actions a:hover, .ve-map-dialog__actions a:focus-visible, .ve-map-dialog__actions button:hover, .ve-map-dialog__actions button:focus-visible { background: #e6c783; color: #111611; }
.ve-map-dialog__image { min-height: 0; padding: 16px; overflow: auto; }
.ve-map-dialog__image img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; }

.village-page main > .ve-day { background: #0e0e0d; color: rgb(255 255 255 / 72%); }
.ve-day__grid { display: grid; grid-template-columns: minmax(300px, .75fr) minmax(0, 1.3fr); gap: clamp(70px, 10vw, 150px); align-items: start; }
.ve-heading--dark { position: sticky; top: calc(var(--site-header-height) + 40px); }
.ve-heading--dark h2 { color: #fff; }
.ve-heading--dark > p:last-child { max-width: 390px; margin: 30px 0 0; color: rgb(255 255 255 / 58%); font-size: 18px; }
.ve-day__logo { display: block; width: min(100%, 280px); height: auto; margin-top: 42px; object-fit: contain; }
.ve-day__timeline { margin: 0; padding: 0; list-style: none; }
.ve-day__timeline > li { border-bottom: 1px solid rgb(255 255 255 / 17%); }
.ve-day__timeline > li:first-child { border-top: 1px solid rgb(255 255 255 / 17%); }
.ve-day__item summary { display: grid; min-height: 112px; padding: 26px 0; grid-template-columns: 155px minmax(0, 1fr) 42px; gap: 24px; align-items: center; cursor: pointer; list-style: none; }
.ve-day__item summary::-webkit-details-marker { display: none; }
.ve-day__item summary::marker { display: none; content: ""; }
.ve-day__item time { color: #c8b385; font-family: var(--font-heading); font-size: 25px; font-variant-numeric: tabular-nums; line-height: 1; white-space: nowrap; }
.ve-day__item h3 { margin: 0; color: #fff; font-size: clamp(28px, 2.6vw, 38px); transition: color 180ms ease; }
.ve-day__toggle { position: relative; width: 40px; height: 40px; border: 1px solid rgb(255 255 255 / 28%); border-radius: 50%; transition: border-color 180ms ease, background-color 180ms ease, transform 250ms ease; }
.ve-day__toggle::before, .ve-day__toggle::after { position: absolute; width: 13px; height: 1px; top: 50%; left: 50%; background: #c8b385; content: ""; transform: translate(-50%, -50%); }
.ve-day__toggle::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform 220ms ease; }
.ve-day__item summary:hover h3 { color: #eadcc5; }
.ve-day__item summary:hover .ve-day__toggle { border-color: #c8b385; }
.ve-day__item[open] .ve-day__toggle { border-color: #c8b385; background: #c8b385; transform: rotate(180deg); }
.ve-day__item[open] .ve-day__toggle::before, .ve-day__item[open] .ve-day__toggle::after { background: #171614; }
.ve-day__item[open] .ve-day__toggle::after { transform: translate(-50%, -50%) rotate(0); }
.ve-day__panel { display: grid; padding: 8px 0 46px; grid-template-columns: minmax(0, 1.12fr) minmax(270px, .88fr); gap: clamp(30px, 4vw, 54px); align-items: center; }
.ve-day__panel figure { width: 100%; min-width: 0; max-width: 620px; margin: 0; justify-self: center; overflow: hidden; border: 1px solid rgb(255 255 255 / 10%); border-radius: 20px; background: #171715; box-shadow: 0 18px 48px rgb(0 0 0 / 28%); }
.ve-day__panel img { display: block; width: 100%; height: auto; max-height: 560px; border-radius: inherit; object-fit: contain; }
.ve-day__copy { max-width: 520px; }
.ve-day__copy p { margin: 0; color: rgb(255 255 255 / 70%); font-size: 16px; line-height: 1.62; }
.ve-day__copy p + p { margin-top: 15px; }
.ve-day__copy em { color: #e4d6bd; }

.ve-practices { background: #fff; }
.ve-practices__mosaic { display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; }
.ve-practice { position: relative; min-height: 450px; overflow: hidden; background: #1b1a18; }
.ve-practice--large { min-height: 650px; grid-row: span 2; }
.ve-practice img { width: 100%; height: 100%; object-fit: cover; transition: transform 650ms ease; }
.ve-practice::after { position: absolute; background: linear-gradient(0deg, rgb(0 0 0 / 76%), transparent 62%); content: ""; inset: 0; }
.ve-practice > div { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; padding: clamp(25px, 4vw, 45px); color: rgb(255 255 255 / 82%); }
.ve-practice span { color: #eadcc5; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ve-practice h3 { margin: 8px 0; color: #fff; font-size: clamp(34px, 4vw, 50px); }
.ve-practice p { max-width: 480px; margin: 0; font-size: 17px; line-height: 1.4; }
.ve-practice:hover img { transform: scale(1.025); }

.ve-collective { background: #c7c0b4; }
.ve-collective__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(70px, 9vw, 130px); align-items: center; }
.ve-collective__copy > p:not(.ve-kicker) { margin: 30px 0 0; }
.ve-collective__photos { display: grid; grid-template-columns: 1.2fr .8fr; gap: 20px; align-items: end; }
.ve-collective figure { margin: 0; }
.ve-collective figure:first-child { margin-top: 120px; }
.ve-collective figure:last-child { margin-bottom: 80px; }
.ve-collective img { width: 100%; min-height: 340px; object-fit: cover; }

.ve-place { background: #fff; }
.ve-place .ve-shell { display: grid; grid-template-columns: 1.18fr .82fr; gap: clamp(60px, 9vw, 130px); align-items: center; }
.ve-place__image img { width: 100%; aspect-ratio: 1 / 1.04; object-fit: cover; }
.ve-place__copy > p:not(.ve-kicker) { margin: 30px 0 0; font-size: 19px; }
.ve-place ul { margin: 28px 0; padding: 0; border-top: 1px solid #ddd6cb; list-style: none; }
.ve-place li { padding: 10px 0; border-bottom: 1px solid #ddd6cb; }

.ve-archives { background: #f1ede5; }
.ve-years { display: flex; width: max-content; max-width: 100%; margin: 0 0 36px; padding: 8px; gap: 7px; border: 1px solid rgb(112 98 81 / 16%); border-radius: 999px; overflow-x: auto; background: rgb(255 255 255 / 54%); box-shadow: 0 12px 32px rgb(67 53 37 / 7%); scrollbar-width: thin; }
.ve-years::-webkit-scrollbar { height: 0; }
.ve-years button { min-width: 116px; padding: 13px 24px 12px; border: 0; border-radius: 999px; background: transparent; color: #817970; font-family: var(--font-heading); font-size: 28px; cursor: pointer; transition: color 180ms ease, background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.ve-years button:hover { color: #4e4943; }
.ve-years button:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.ve-years button[aria-selected="true"] { background: var(--color-primary); color: #fff; box-shadow: 0 8px 22px rgb(111 18 27 / 22%); transform: translateY(-1px); }
.ve-year { display: grid; min-height: 520px; grid-template-columns: .42fr 1.08fr .82fr; border: 1px solid rgb(112 98 81 / 12%); border-radius: clamp(26px, 3vw, 42px); overflow: hidden; background: #fff; box-shadow: 0 28px 75px rgb(62 48 33 / 12%); }
.ve-year[hidden] { display: none; }
.ve-year__meta, .ve-year__copy { padding: clamp(30px, 4.5vw, 62px); }
.ve-year__meta { border-right: 1px solid #e8e1d7; background: linear-gradient(145deg, #fff 0%, #f8f4ed 100%); }
.ve-year__meta span { color: var(--color-primary); font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.ve-year__meta strong { display: block; margin-top: 20px; color: #1b1917; font-family: var(--font-heading); font-size: clamp(45px, 5vw, 68px); font-weight: 400; line-height: .9; }
.ve-year__meta p { margin-top: 22px; }
.ve-year__copy { align-self: center; }
.ve-year__copy h3 { margin: 0 0 22px; font-size: clamp(34px, 4vw, 50px); }
.ve-year__copy p { margin: 0; color: #514b45; font-size: 17px; line-height: 1.62; }
.ve-year__links { display: flex; margin-top: 32px; flex-wrap: wrap; gap: 11px; }
.ve-year__links a { display: inline-flex; min-height: 46px; padding: 12px 17px; align-items: center; gap: 11px; border: 1px solid rgb(111 18 27 / 18%); border-radius: 999px; background: #f8f1ed; color: var(--color-primary); font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .065em; text-decoration: none; text-transform: uppercase; box-shadow: 0 8px 20px rgb(71 42 31 / 7%); transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.ve-year__links a::after { display: grid; width: 21px; height: 21px; border-radius: 50%; background: rgb(111 18 27 / 9%); content: "↗"; font-size: 12px; place-items: center; transition: background-color 180ms ease; }
.ve-year__links a:hover, .ve-year__links a:focus-visible { border-color: var(--color-primary); background: var(--color-primary); color: #fff; box-shadow: 0 12px 28px rgb(111 18 27 / 20%); transform: translateY(-2px); }
.ve-year__links a:hover::after, .ve-year__links a:focus-visible::after { background: rgb(255 255 255 / 18%); }
.ve-year__links a:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
.ve-year > img { width: calc(100% - 24px); height: calc(100% - 24px); min-height: 496px; margin: 12px 12px 12px 0; border-radius: clamp(20px, 2.4vw, 32px); object-fit: cover; }

.ve-stories { background: #fff; }
.ve-stories__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #d8d1c7; }
.ve-stories article { display: flex; min-height: 370px; padding: 38px clamp(22px, 3vw, 40px); flex-direction: column; border-right: 1px solid #d8d1c7; }
.ve-stories article:last-child { border: 0; }
.ve-stories article > span { color: var(--color-primary); font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ve-stories h3 { margin: 34px 0 20px; font-size: clamp(31px, 3vw, 42px); }
.ve-stories p { margin: 0; }
.ve-stories a { margin-top: auto; padding-top: 30px; color: #292623; font-family: Arial, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }

.village-page main > .ve-gallery { padding-bottom: 0; background: #c7c0b4; }
.ve-gallery__grid { display: grid; width: 100vw; margin-left: calc(50% - 50vw); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ve-gallery__card { position: relative; display: block; min-width: 0; height: clamp(430px, 42vw, 680px); color: #fff; text-decoration: none; background: #292724; isolation: isolate; overflow: hidden; }
.ve-gallery__card::after { position: absolute; z-index: 3; top: 32px; right: 28px; width: 34px; height: 34px; border: 1px solid rgb(255 255 255 / 78%); border-radius: 50%; content: "↗"; display: grid; font-family: Arial, sans-serif; font-size: 16px; place-items: center; transition: color 220ms ease, background-color 220ms ease, transform 220ms ease; }
.ve-gallery__card + .ve-gallery__card { border-left: 1px solid rgb(255 255 255 / 34%); }
.ve-gallery__card img { width: 100%; height: 100%; object-fit: cover; transition: filter 500ms ease, transform 700ms cubic-bezier(.2, .65, .25, 1); }
.ve-gallery__card:nth-child(1) img { object-position: 51% center; }
.ve-gallery__card:nth-child(2) img { object-position: 52% center; }
.ve-gallery__card:nth-child(3) img { object-position: 58% center; }
.ve-gallery__card:nth-child(4) img { object-position: 57% center; }
.ve-gallery__shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgb(10 10 9 / 50%) 0%, transparent 42%, rgb(10 10 9 / 76%) 100%); transition: background-color 350ms ease; }
.ve-gallery__year { position: absolute; z-index: 2; top: 28px; left: clamp(20px, 2.2vw, 36px); font-family: "Cormorant Garamond", serif; font-size: clamp(38px, 3.5vw, 58px); font-weight: 500; letter-spacing: -.035em; line-height: 1; }
.ve-gallery__action { position: absolute; z-index: 2; right: 28px; bottom: 30px; left: clamp(20px, 2.2vw, 36px); display: flex; padding-top: 18px; align-items: center; justify-content: space-between; border-top: 1px solid rgb(255 255 255 / 62%); font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ve-gallery__action b { font-size: 18px; font-weight: 400; transition: transform 220ms ease; }
.ve-gallery__card:hover img, .ve-gallery__card:focus-visible img { filter: saturate(1.08) contrast(1.03); transform: scale(1.045); }
.ve-gallery__card:hover::after, .ve-gallery__card:focus-visible::after { color: #211f1c; background: #fff; transform: translate(2px, -2px); }
.ve-gallery__card:hover .ve-gallery__action b, .ve-gallery__card:focus-visible .ve-gallery__action b { transform: translate(3px, -3px); }

.village-page main > .ve-practical { display: grid; background: #10100f; color: rgb(255 255 255 / 74%); }
.ve-practical .ve-shell { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(50px, 9vw, 130px); }
.ve-practical__list { margin: 0; }
.ve-practical__list div { display: grid; padding: 18px 0; grid-template-columns: 190px 1fr; gap: 25px; border-bottom: 1px solid rgb(255 255 255 / 17%); }
.ve-practical dt { color: #c8b385; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.ve-practical dd { margin: 0; color: rgb(255 255 255 / 82%); }
.ve-practical dd a { color: #fff; }
.ve-practical .ve-button { margin-top: 36px; justify-self: start; grid-column: 2; }

.village-page main > .ve-cta { padding-block: clamp(100px, 13vw, 180px); background: var(--color-primary); color: rgb(255 255 255 / 85%); text-align: center; }
.ve-cta__inner { display: flex; flex-direction: column; align-items: center; }
.ve-cta .ve-kicker::before { display: none; }
.ve-cta h2 { margin: 0; color: #fff; font-size: clamp(55px, 7vw, 96px); letter-spacing: -.04em; line-height: .92; }
.ve-cta p:not(.ve-kicker) { max-width: 610px; margin: 28px auto 36px; font-size: 21px; }
.ve-cta__inner > div { display: flex; flex-wrap: wrap; gap: 15px 26px; align-items: center; justify-content: center; }

@media (max-width: 1000px) {
    .ve-intro__grid, .ve-collective__grid, .ve-place .ve-shell { grid-template-columns: 1fr 1fr; gap: 55px; }
    .ve-day__grid, .ve-practical .ve-shell { grid-template-columns: 1fr; }
    .ve-heading--dark { position: static; }
    .village-page main > .ve-next { min-height: auto; }
    .ve-next__header { grid-template-columns: minmax(0, 1fr) minmax(210px, .42fr); }
    .ve-next__map { grid-column: 1 / -1; }
    .ve-next__map-preview img { height: 160px; }
    .ve-next__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ve-year { grid-template-columns: .55fr 1.2fr; }
    .ve-year > img { width: calc(100% - 24px); height: 360px; min-height: 360px; margin: 0 12px 12px; grid-column: 1 / -1; }
    .ve-practical .ve-button { grid-column: 1; }
    .ve-voices__stage { height: calc(100% - 30px); }
    .ve-voice { width: clamp(235px, 29vw, 290px); height: min(260px, calc(100% - 20px)); min-height: 0; padding: 24px; }
    .ve-voice[data-position="active"] { width: min(650px, 66vw); height: min(100%, 320px); min-height: 0; }
    .ve-voice[data-position="previous"] { left: 3%; }
    .ve-voice[data-position="next"] { left: 97%; }
}

@media (max-width: 760px) {
    .village-page main > .ve-voices { height: min(78vh, 580px); height: min(78svh, 580px); }
    .village-page main > section { padding-block: 76px; }
    .ve-shell { width: min(100% - 36px, 1280px); }
    .ve-heading h2, .ve-intro h2, .ve-place h2, .ve-collective h2 { font-size: clamp(46px, 14vw, 64px); }
    .ve-heading--split { grid-template-columns: 1fr; gap: 25px; }
    .village-page main > .ve-hero { min-height: calc(88vh - var(--site-header-height)); padding-block: 60px 48px; }
    .ve-hero h1 { font-size: clamp(65px, 22vw, 96px); }
    .ve-hero__content > p:last-child { margin-top: 28px; font-size: 19px; }
    .ve-hero__scroll { display: none; }
    .ve-intro__grid, .ve-collective__grid, .ve-place .ve-shell { grid-template-columns: 1fr; }
    .ve-intro__figure img { max-height: none; }
    .ve-intro__media { width: 100%; }
    .ve-intro__photo { width: 100%; padding: 7px; }
    .ve-intro__video { width: 82%; margin: -12px 10px 0 auto; }
    .ve-intro__video-frame { border-radius: 14px; box-shadow: 0 18px 45px rgb(46 39 31 / 14%); }
    .ve-voices__stage { height: calc(100% - 38px); }
    .ve-voice { width: 230px; height: min(250px, calc(100% - 20px)); min-height: 0; padding: 22px 20px; opacity: .32; }
    .ve-voice p { font-size: 13px; }
    .ve-voice[data-position="active"] { width: calc(100% - 48px); height: min(100%, 320px); min-height: 0; opacity: 1; }
    .ve-voice[data-position="active"] p { font-size: clamp(17px, 4.6vw, 20px); }
    .ve-voice[data-position="previous"],
    .ve-voice[data-position="next"] { opacity: .22; box-shadow: 0 22px 46px rgb(57 45 33 / 20%); }
    .ve-voice[data-position="previous"] { left: -8%; transform: translate(-50%, -50%) translateZ(-120px) rotateY(21deg); }
    .ve-voice[data-position="next"] { left: 108%; transform: translate(-50%, -50%) translateZ(-120px) rotateY(-21deg); }
    .ve-voices__arrow { top: auto; bottom: -7px; width: 46px; height: 46px; transform: none; }
    .ve-voices__arrow--previous { left: calc(50% - 76px); }
    .ve-voices__arrow--next { right: calc(50% - 76px); }
    .ve-voices__arrow:hover,
    .ve-voices__arrow:focus-visible { transform: scale(1.05); }
    .ve-voices__counter { margin-top: 28px; padding-bottom: 6px; }
    .ve-spirit__list { grid-template-columns: 1fr; }
    .ve-next__header { grid-template-columns: 1fr; gap: 38px; }
    .ve-next__date { max-width: 330px; }
    .ve-next__map { grid-column: auto; }
    .ve-next__map-preview img { height: auto; aspect-ratio: 1.55 / 1; }
    .ve-next__facts { grid-template-columns: 1fr; }
    .ve-next__facts article { min-height: 0; }
    .ve-next__footer { align-items: flex-start; flex-direction: column; }
    .ve-next__slide { width: 86vw; border-radius: 14px; }
    .ve-map-dialog { width: calc(100vw - 20px); height: calc(100dvh - 20px); border-radius: 13px; }
    .ve-map-dialog__bar { min-height: 68px; padding: 10px 12px 10px 16px; }
    .ve-map-dialog__bar h2 { font-size: 19px; }
    .ve-map-dialog__actions a { width: 42px; padding: 0; justify-content: center; font-size: 0; }
    .ve-map-dialog__actions a span { font-size: 17px; }
    .ve-map-dialog__image { padding: 8px; }
    .ve-day__item summary { min-height: 98px; grid-template-columns: 125px minmax(0, 1fr) 38px; gap: 16px; }
    .ve-day__item time { font-size: 21px; }
    .ve-day__toggle { width: 36px; height: 36px; }
    .ve-day__panel { padding: 2px 0 40px; grid-template-columns: 1fr; gap: 28px; }
    .ve-day__panel figure { max-width: 620px; }
    .ve-day__copy { max-width: 680px; }
    .ve-practices__mosaic { grid-template-columns: 1fr; }
    .ve-practice, .ve-practice--large { min-height: 500px; grid-row: auto; }
    .ve-collective__photos { grid-template-columns: 1fr 1fr; }
    .ve-collective figure:first-child, .ve-collective figure:last-child { margin: 0; }
    .ve-collective img { min-height: 260px; }
    .ve-years { width: 100%; border-radius: 24px; }
    .ve-years button { min-width: 104px; flex: 1 0 auto; }
    .ve-year { grid-template-columns: 1fr; }
    .ve-year__meta { border-right: 0; border-bottom: 1px solid #e0d9cf; }
    .ve-year__copy { padding-top: 10px; }
    .ve-year > img { height: auto; min-height: 330px; aspect-ratio: 4 / 3; }
    .ve-stories__grid { grid-template-columns: 1fr; }
    .ve-stories article { min-height: 310px; border-right: 0; border-bottom: 1px solid #d8d1c7; }
    .ve-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ve-gallery__card { height: 460px; }
    .ve-practical__list div { grid-template-columns: 1fr; gap: 6px; }
}

@media (max-width: 480px) {
    .ve-voices__header { align-items: center; flex-direction: column; gap: 14px; }
    .ve-voices__logo { width: 155px; }
    .ve-hero__media { object-position: 53% center; transform: scale(1.2); }
    .ve-collective__photos { grid-template-columns: 1fr; }
    .ve-collective img { min-height: 340px; }
    .ve-years { padding: 6px; gap: 4px; border-radius: 22px; }
    .ve-years button { min-width: 82px; padding: 11px 12px 10px; font-size: 23px; }
    .ve-day__logo { width: min(100%, 230px); margin-top: 28px; }
    .ve-day__item summary { min-height: 106px; padding-block: 22px; grid-template-columns: 1fr 38px; gap: 7px 14px; }
    .ve-day__item time { grid-column: 1; font-family: Arial, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
    .ve-day__item h3 { grid-row: 2; grid-column: 1; font-size: 28px; }
    .ve-day__toggle { grid-row: 1 / 3; grid-column: 2; }
    .ve-day__panel { padding: 0 0 32px; gap: 22px; }
    .ve-day__panel figure { border-radius: 15px; }
    .ve-day__panel img { max-height: none; }
    .ve-day__copy p { font-size: 15px; }
    .ve-year__meta, .ve-year__copy { padding: 28px 22px; }
    .ve-year__links a { width: 100%; justify-content: space-between; }
    .ve-year > img { width: calc(100% - 20px); min-height: 280px; margin: 0 10px 10px; border-radius: 20px; }
    .ve-gallery__grid { display: flex; padding: 0 18px 18px; gap: 10px; scrollbar-width: none; scroll-padding-inline: 18px; overflow-x: auto; scroll-snap-type: x mandatory; }
    .ve-gallery__grid::-webkit-scrollbar { display: none; }
    .ve-gallery__card { width: min(82vw, 350px); height: 470px; flex: 0 0 min(82vw, 350px); scroll-snap-align: start; }
    .ve-gallery__card + .ve-gallery__card { border-left: 0; }
    .ve-gallery__card::after { top: 24px; right: 22px; }
    .ve-gallery__year { top: 23px; left: 22px; font-size: 45px; }
    .ve-gallery__action { right: 22px; bottom: 24px; left: 22px; }
    .ve-cta__inner > div, .ve-cta .ve-button, .ve-cta .ve-text-link { width: 100%; }
    .ve-cta .ve-text-link { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .ve-next__rail { animation: none; transform: translateX(-18vw); }
    .ve-button, .ve-day__item h3, .ve-day__toggle, .ve-day__toggle::after, .ve-practice img, .ve-gallery__card img, .ve-gallery__card::after, .ve-gallery__action b, .ve-voice, .ve-voice p { transition: none; }
}

@media (min-width: 1001px) and (max-height: 760px) {
    .village-page main > .ve-next { min-height: 700px; padding-block: 28px; }
    .ve-next__content { gap: 18px; }
    .ve-next__map-preview img { height: 84px; }
    .ve-next__facts article { min-height: 190px; }
}
