@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');

:root {
  --ink: #090909;
  --ink-soft: #151515;
  --cream: #f2eee7;
  --gold: #f2b52b;
  --gold-light: #ffd85b;
  --red: #d6081d;
  --red-dark: #a50414;
  --line-light: rgba(242, 238, 231, .22);
  --line-dark: rgba(9, 9, 9, .15);
  --sans: "DM Sans", Arial, sans-serif;
  --serif: "Playfair Display", Georgia, serif;
  --mono: "DM Mono", monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--cream); font-family: var(--sans); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.skip-link { background: var(--gold); color: var(--ink); font-weight: 700; left: 1rem; padding: .8rem 1rem; position: fixed; top: -5rem; z-index: 100; }
.skip-link:focus { top: 1rem; }

.site-header { align-items: center; display: grid; grid-template-columns: 1fr auto 1fr; left: 0; min-height: 5.5rem; padding: 1rem clamp(1.3rem, 4vw, 4.8rem); position: absolute; right: 0; top: 0; z-index: 10; }
.brand { align-items: center; display: inline-flex; gap: .65rem; justify-self: start; line-height: .82; text-transform: uppercase; }
.brand-mark { display: block; flex: 0 0 3rem; height: 3rem; object-fit: contain; width: 3rem; }
.brand-name { color: var(--cream); font-size: .72rem; font-weight: 700; letter-spacing: .16em; }
.brand-name em { color: var(--gold); font-family: var(--serif); font-size: .86rem; font-weight: 600; letter-spacing: .02em; text-transform: none; }
nav { align-items: center; display: flex; gap: clamp(1rem, 3vw, 2.6rem); }
nav a, .header-dm { color: rgba(242,238,231,.83); font-size: .76rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
nav a { position: relative; }
nav a::after { background: var(--gold); bottom: -.35rem; content: ""; height: 1px; left: 0; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; width: 100%; }
nav a:hover::after, nav a:focus-visible::after { transform: scaleX(1); }
.header-dm { color: var(--gold); justify-self: end; }

.hero { background: var(--ink); display: grid; min-height: min(850px, 100svh); overflow: hidden; padding: clamp(8.5rem, 12vw, 11.5rem) clamp(1.3rem, 8vw, 9rem) 5.2rem; position: relative; }
.hero::before { background: radial-gradient(circle at 65% 52%, rgba(210,8,29,.43), transparent 24%), radial-gradient(circle at 73% 48%, rgba(242,181,43,.25), transparent 19%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.hero-noise { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E"); inset: 0; mix-blend-mode: soft-light; opacity: .13; pointer-events: none; position: absolute; }
.hero-copy { align-self: center; max-width: 48rem; position: relative; z-index: 2; }
.eyebrow { align-items: center; color: var(--gold); display: flex; font-family: var(--mono); font-size: .68rem; font-weight: 500; gap: .6rem; letter-spacing: .12em; margin: 0 0 1.25rem; text-transform: uppercase; }
.eyebrow > span { background: currentColor; display: inline-block; height: 1px; width: 2rem; }
.eyebrow-dark { color: var(--red-dark); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-weight: 600; letter-spacing: -.055em; line-height: .94; }
h1 { font-size: clamp(3.4rem, 7.5vw, 7.2rem); margin-bottom: 1.75rem; max-width: 47rem; }
h1 i, h2 i { color: var(--gold); font-family: var(--serif); font-weight: 600; }
.hero-intro { color: rgba(242,238,231,.78); font-size: clamp(1.02rem, 1.4vw, 1.19rem); line-height: 1.6; max-width: 32rem; }
.hero-actions, .recruiting-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.25rem; }
.button { align-items: center; appearance: none; border: 0; cursor: pointer; display: inline-flex; font-family: inherit; font-size: .76rem; font-weight: 700; gap: 1.3rem; justify-content: center; letter-spacing: .065em; min-height: 3.45rem; padding: 0 1.2rem; text-transform: uppercase; transition: background .25s, color .25s, border-color .25s, transform .25s; }
.button:hover, .button:focus-visible { transform: translateY(-3px); }
.button-gold { background: var(--gold); color: var(--ink); }
.button-gold:hover, .button-gold:focus-visible { background: var(--gold-light); }
.button-outline { border: 1px solid rgba(242,238,231,.43); color: var(--cream); }
.button-outline:hover, .button-outline:focus-visible { border-color: var(--gold); color: var(--gold); }
.hero-notes { align-items: center; display: flex; gap: .65rem; margin-top: clamp(2.5rem, 5vw, 4.3rem); }
.hero-notes span { color: rgba(242,238,231,.46); font-family: var(--mono); font-size: .61rem; letter-spacing: .1em; }
.hero-notes b { background: var(--red); border-radius: 50%; height: .23rem; width: .23rem; }
.hero-art { bottom: 0; height: 100%; pointer-events: none; position: absolute; right: 0; width: min(58vw, 56rem); }
.hero-image-wrap { bottom: -8%; filter: drop-shadow(0 20px 38px rgba(0,0,0,.6)); position: absolute; right: 1%; transform: rotate(-6deg); width: min(48vw, 42rem); z-index: 2; }
.hero-image-wrap img { mix-blend-mode: screen; opacity: .98; width: 100%; }
.sun { background: radial-gradient(circle, var(--gold-light) 0, var(--gold) 31%, var(--red) 58%, transparent 69%); border-radius: 50%; filter: blur(1px); height: min(39vw, 33rem); opacity: .68; position: absolute; right: 7%; top: 20%; width: min(39vw, 33rem); }
.ring { border: 1px solid rgba(242,181,43,.36); border-radius: 50%; position: absolute; }
.ring-one { height: min(52vw, 48rem); right: -19%; top: 5%; width: min(52vw, 48rem); }
.ring-two { border-color: rgba(242,238,231,.14); height: min(36vw, 32rem); right: 10%; top: 17%; width: min(36vw, 32rem); }
.art-side-label { bottom: 18%; color: rgba(242,238,231,.48); font-family: var(--mono); font-size: .6rem; letter-spacing: .14em; position: absolute; right: -2.1rem; transform: rotate(90deg); z-index: 3; }
.scroll-cue { align-items: center; bottom: 1.8rem; color: rgba(242,238,231,.65); display: flex; font-family: var(--mono); font-size: .62rem; gap: .6rem; letter-spacing: .08em; position: absolute; text-transform: uppercase; z-index: 3; }
.scroll-cue span { border: 1px solid rgba(242,238,231,.42); border-radius: 50%; height: .6rem; width: .6rem; }

.audience-section { background: var(--cream); color: var(--ink); padding: clamp(5.5rem, 9vw, 9rem) clamp(1.3rem, 8vw, 9rem); position: relative; }
.section-kicker { color: rgba(9,9,9,.55); display: flex; font-family: var(--mono); font-size: .68rem; gap: .8rem; letter-spacing: .11em; margin-bottom: clamp(4rem, 7vw, 7.2rem); text-transform: uppercase; }
.section-kicker span { color: var(--red); }
.audience-grid { display: grid; gap: 3rem; grid-template-columns: minmax(0, .95fr) minmax(19rem, .8fr); }
h2 { font-size: clamp(2.85rem, 5.2vw, 5.4rem); margin-bottom: 1.5rem; }
.audience-section h2 i, .materials-section h2 i { color: var(--red-dark); }
.audience-body > p, .format-intro > p, .recruiting-copy > p { font-size: 1.05rem; line-height: 1.65; }
.audience-body > p { max-width: 30rem; }
.feature-list { border-top: 1px solid var(--line-dark); list-style: none; margin: 2.2rem 0; padding: 0; }
.feature-list li { align-items: center; border-bottom: 1px solid var(--line-dark); display: flex; font-size: .9rem; font-weight: 600; gap: 1.1rem; padding: .92rem 0; }
.feature-list span { color: var(--red); font-family: var(--mono); font-size: .68rem; }
.text-link { border-bottom: 1px solid var(--red); color: var(--red-dark); display: inline-flex; font-size: .78rem; font-weight: 700; gap: 1rem; letter-spacing: .06em; padding-bottom: .35rem; text-transform: uppercase; }

.format-section { background: var(--red); padding: clamp(5.5rem, 9vw, 9rem) clamp(1.3rem, 8vw, 9rem); }
.format-heading { display: grid; grid-template-columns: 1fr 1fr; }
.format-section h2 { color: var(--cream); margin-bottom: 0; }
.format-section h2 i { color: var(--gold-light); }
.format-intro { display: grid; gap: 2rem; grid-template-columns: 1fr minmax(16rem, .72fr); margin: clamp(3.5rem, 7vw, 6rem) 0 3rem; max-width: 75rem; }
.format-intro > p { color: rgba(255,255,255,.86); max-width: 36rem; }
.download-card { align-items: center; background: var(--gold); color: var(--ink); display: grid; gap: .85rem; grid-template-columns: auto 1fr auto; padding: 1.15rem; transition: transform .25s, background .25s; }
.download-card:hover, .download-card:focus-visible { background: var(--gold-light); transform: translateY(-3px); }
.file-icon { align-items: center; border: 1px solid rgba(9,9,9,.5); display: inline-flex; font-family: var(--mono); font-size: .59rem; height: 2.15rem; justify-content: center; width: 2.15rem; }
.download-card strong { display: block; font-size: .82rem; letter-spacing: .02em; }
.download-card small { display: block; font-size: .72rem; margin-top: .22rem; opacity: .73; }
.download-card > b { font-size: 1.15rem; }
.format-cards { border-top: 1px solid rgba(255,255,255,.3); display: grid; grid-template-columns: repeat(3, 1fr); }
.format-cards article { border-right: 1px solid rgba(255,255,255,.3); min-height: 16rem; padding: 1.5rem 1.55rem 1.2rem 0; }
.format-cards article + article { padding-left: 1.55rem; }
.format-cards article:last-child { border-right: 0; }
.card-number { color: var(--gold-light); font-family: var(--serif); font-size: 1.35rem; font-style: italic; margin-bottom: 3.1rem; }
.format-cards h3 { font-size: 1.35rem; letter-spacing: -.035em; margin-bottom: .7rem; }
.format-cards p:last-child { color: rgba(255,255,255,.81); font-size: .91rem; line-height: 1.55; max-width: 19rem; }

.ludovico-section { background: var(--ink); display: grid; grid-template-columns: minmax(18rem, .85fr) minmax(13rem, .54fr) minmax(13rem, .54fr); min-height: 43rem; overflow: hidden; padding: clamp(4rem, 8vw, 8rem) clamp(1.3rem, 8vw, 9rem); position: relative; }
.ludovico-section::before { background: radial-gradient(circle at 21% 34%, rgba(214,8,29,.46), transparent 25%), radial-gradient(circle at 68% 62%, rgba(242,181,43,.18), transparent 29%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.ludovico-copy { align-self: center; padding-right: clamp(2rem, 5vw, 5rem); position: relative; z-index: 1; }
.ludovico-copy h2 { color: var(--cream); font-size: clamp(2.8rem, 4.6vw, 5rem); }
.ludovico-copy h2 i { color: var(--gold); }
.ludovico-copy > p:not(.ludovico-signature) { color: rgba(242,238,231,.76); font-size: 1.04rem; line-height: 1.65; max-width: 27rem; }
.ludovico-signature { border-left: 1px solid var(--gold); color: var(--cream); font-family: var(--serif); font-size: 1.15rem; font-style: italic; line-height: 1.1; margin: 2.5rem 0 0; padding-left: .85rem; }
.ludovico-signature span { color: var(--gold); display: inline-block; font-family: var(--mono); font-size: .56rem; font-style: normal; letter-spacing: .11em; margin-top: .4rem; }
.ludovico-photo { margin: 0; overflow: hidden; position: relative; z-index: 1; }
.ludovico-photo::after { border: 1px solid rgba(242,181,43,.58); content: ""; inset: 1rem; pointer-events: none; position: absolute; }
.ludovico-photo img { height: 100%; object-fit: cover; width: 100%; }
.ludovico-photo-stage { transform: translateY(clamp(1.5rem, 4vw, 4.5rem)); }
.ludovico-photo-beach { transform: translateY(clamp(-2rem, -3vw, -3.5rem)); }

.recruiting-section { background: var(--ink-soft); padding: clamp(5.5rem, 9vw, 9rem) clamp(1.3rem, 8vw, 9rem); }
.recruiting-grid { align-items: center; display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: minmax(18rem, .9fr) 1fr; margin: auto; max-width: 83rem; }
.recruiting-image { background: var(--red); position: relative; }
.recruiting-image::before { border: 1px solid var(--gold); content: ""; inset: 1rem; pointer-events: none; position: absolute; z-index: 1; }
.recruiting-image img, .recruiting-video { aspect-ratio: 4 / 5; display: block; object-fit: cover; width: 100%; }
.recruiting-video { background: #050505; }
.recruiting-copy h2 { color: var(--cream); }
.recruiting-copy h2 i { color: var(--gold); }
.recruiting-copy > p { color: rgba(242,238,231,.74); max-width: 31rem; }
.small-note { color: rgba(242,238,231,.48) !important; font-family: var(--mono); font-size: .67rem !important; margin-top: 1.2rem; }

.materials-section { background: var(--cream); color: var(--ink); display: grid; gap: 4rem; grid-template-columns: .8fr 1.2fr; padding: clamp(5.5rem, 9vw, 9rem) clamp(1.3rem, 8vw, 9rem); }
.materials-heading h2 { margin-bottom: 0; }
.materials-list { border-top: 1px solid var(--line-dark); }
.material-row { align-items: center; border-bottom: 1px solid var(--line-dark); display: grid; gap: 1rem; grid-template-columns: 2.5rem 1fr auto; min-height: 6.6rem; transition: color .2s, padding .2s; }
.material-row:hover, .material-row:focus-visible { color: var(--red-dark); padding-left: .35rem; }
.material-index { color: var(--red); font-family: var(--mono); font-size: .67rem; }
.material-title { font-size: clamp(1rem, 1.6vw, 1.23rem); font-weight: 600; letter-spacing: -.025em; }
.material-title small { color: rgba(9,9,9,.55); display: block; font-size: .75rem; font-weight: 400; letter-spacing: 0; margin-top: .23rem; }
.material-action { align-items: center; display: flex; font-family: var(--mono); font-size: .66rem; gap: .8rem; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.material-action b { color: var(--red); font-size: 1rem; }

.final-cta { align-items: center; background: var(--ink); display: flex; flex-direction: column; min-height: 39rem; overflow: hidden; padding: 5rem 1.3rem; position: relative; text-align: center; }
.final-cta::before { background: radial-gradient(circle, rgba(210,8,29,.62), rgba(210,8,29,.16) 37%, transparent 70%); content: ""; height: 45rem; pointer-events: none; position: absolute; top: -22rem; width: 45rem; }
.final-cta > * { position: relative; z-index: 1; }
.final-emblem { display: block; height: 4.7rem; margin-bottom: 2.2rem; object-fit: contain; width: 4.7rem; }
.final-cta h2 { color: var(--cream); font-size: clamp(2.75rem, 5.2vw, 5.4rem); margin-bottom: 2.1rem; }
.final-cta h2 i { color: var(--gold); }

footer { align-items: center; background: #050505; border-top: 1px solid rgba(242,238,231,.14); color: rgba(242,238,231,.6); display: grid; font-size: .72rem; gap: 1.5rem; grid-template-columns: 1fr auto 1fr; padding: 1.8rem clamp(1.3rem, 4vw, 4.8rem); }
footer p { margin: 0; text-align: center; }
footer > a:last-child { color: var(--gold); justify-self: end; }

.villages-page { background: var(--cream); color: var(--ink); }
.villages-hero { background: var(--ink); display: grid; gap: clamp(3rem, 8vw, 9rem); grid-template-columns: minmax(0, 1.02fr) minmax(17rem, .68fr); min-height: min(52rem, 100svh); overflow: hidden; padding: clamp(8.5rem, 13vw, 11rem) clamp(1.3rem, 8vw, 9rem) clamp(4rem, 8vw, 7rem); position: relative; }
.villages-hero::before { background: radial-gradient(circle at 70% 35%, rgba(214,8,29,.52), transparent 21%), radial-gradient(circle at 70% 58%, rgba(242,181,43,.21), transparent 30%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.villages-hero-copy { align-self: center; max-width: 43rem; position: relative; z-index: 1; }
.villages-hero h1 { color: var(--cream); font-size: clamp(3.15rem, 6vw, 6.4rem); max-width: 40rem; }
.villages-hero h1 i { color: var(--gold); }
.villages-hero-copy > p:not(.eyebrow) { color: rgba(242,238,231,.78); font-size: clamp(1.03rem, 1.4vw, 1.17rem); line-height: 1.65; max-width: 34rem; }
.villages-hero-photo { align-self: end; border: 1px solid var(--gold); height: min(39rem, 68vw); margin: 0; overflow: hidden; position: relative; z-index: 1; }
.villages-hero-photo img { height: 100%; object-fit: cover; object-position: center; width: 100%; }
.villages-hero-photo figcaption { background: rgba(9,9,9,.78); bottom: 0; color: var(--cream); font-family: var(--mono); font-size: .61rem; left: 0; letter-spacing: .12em; padding: .85rem 1rem; position: absolute; right: 0; }

.villages-proposal { background: var(--cream); padding: clamp(5.5rem, 9vw, 9rem) clamp(1.3rem, 8vw, 9rem); }
.villages-intro { align-items: end; display: grid; gap: 3rem; grid-template-columns: 1fr minmax(18rem, .72fr); }
.villages-intro h2 { margin-bottom: 0; }
.villages-intro > p { font-size: 1.06rem; line-height: 1.68; margin: 0; max-width: 32rem; }
.villages-offer-grid { border-top: 1px solid var(--line-dark); display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(3.5rem, 7vw, 6.5rem); }
.villages-offer-card { border-right: 1px solid var(--line-dark); min-height: 18rem; padding: 1.5rem 1.55rem 1.5rem 0; }
.villages-offer-card + .villages-offer-card { padding-left: 1.55rem; }
.villages-offer-card:last-child { border-right: 0; }
.villages-offer-card > span { color: var(--red); font-family: var(--serif); font-size: 1.4rem; font-style: italic; }
.villages-offer-card h3 { font-size: 1.35rem; letter-spacing: -.035em; margin: 3rem 0 .75rem; }
.villages-offer-card p { color: rgba(9,9,9,.67); font-size: .93rem; line-height: 1.62; max-width: 19rem; }

.villages-process { background: var(--red); color: var(--cream); display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: .82fr 1.18fr; padding: clamp(5.5rem, 9vw, 9rem) clamp(1.3rem, 8vw, 9rem); }
.villages-process-heading h2 { margin-bottom: 0; }
.villages-process-heading h2 i { color: var(--gold-light); }
.villages-steps { border-top: 1px solid rgba(255,255,255,.3); list-style: none; margin: 0; padding: 0; }
.villages-steps li { align-items: start; border-bottom: 1px solid rgba(255,255,255,.3); display: grid; gap: 1.2rem; grid-template-columns: 2.4rem 1fr; padding: 1.35rem 0; }
.villages-steps span { color: var(--gold-light); font-family: var(--mono); font-size: .68rem; padding-top: .25rem; }
.villages-steps h3 { font-size: 1.16rem; letter-spacing: -.025em; margin: 0 0 .42rem; }
.villages-steps p { color: rgba(255,255,255,.8); font-size: .93rem; line-height: 1.55; margin: 0; }

.villages-contact { align-items: center; background: var(--gold); color: var(--ink); display: grid; gap: clamp(3rem, 8vw, 9rem); grid-template-columns: .88fr 1.12fr; padding: clamp(5.5rem, 9vw, 9rem) clamp(1.3rem, 8vw, 9rem); }
.villages-contact h2 { margin-bottom: 1.4rem; }
.villages-contact h2 i { color: var(--red-dark); }
.villages-contact > div > p:not(.eyebrow) { font-size: 1.05rem; line-height: 1.65; max-width: 31rem; }
.villages-contact-card { background: var(--ink); color: var(--cream); padding: clamp(2rem, 4vw, 3.5rem); }
.villages-contact-card p { color: var(--gold); font-family: var(--mono); font-size: .65rem; letter-spacing: .1em; margin-bottom: 1.2rem; }
.villages-contact-card a { border-bottom: 1px solid var(--gold); color: var(--cream); display: inline-block; font-size: clamp(1.08rem, 2vw, 1.65rem); font-weight: 600; letter-spacing: -.03em; overflow-wrap: anywhere; padding-bottom: .4rem; }
.villages-contact-card span { color: rgba(242,238,231,.67); display: block; font-size: .91rem; line-height: 1.6; margin-top: 1.25rem; }
.small-note a { color: var(--gold); text-decoration: underline; text-underline-offset: .24rem; }

.radio-promo { align-items: center; background: var(--gold); color: var(--ink); display: grid; gap: clamp(3rem, 9vw, 10rem); grid-template-columns: minmax(0, 1fr) minmax(18rem, .62fr); min-height: 34rem; padding: clamp(5.5rem, 9vw, 9rem) clamp(1.3rem, 8vw, 9rem); }
.radio-promo-copy { max-width: 42rem; }
.radio-promo h2 { font-size: clamp(3rem, 5.4vw, 5.7rem); }
.radio-promo h2 i { color: var(--red-dark); }
.radio-promo-copy > p:not(.eyebrow) { font-size: 1.05rem; line-height: 1.68; max-width: 34rem; }
.radio-promo-card { align-items: flex-start; background: var(--ink); color: var(--cream); display: flex; flex-direction: column; justify-content: space-between; min-height: 22rem; overflow: hidden; padding: clamp(1.7rem, 3vw, 2.75rem); position: relative; }
.radio-promo-card::before { border: 1px solid rgba(242,181,43,.55); border-radius: 50%; content: ""; height: 19rem; position: absolute; right: -7rem; top: -7rem; width: 19rem; }
.radio-promo-card::after { background: var(--red); border-radius: 50%; content: ""; height: 5rem; position: absolute; right: 3rem; top: 4rem; width: 5rem; }
.radio-promo-card > * { position: relative; z-index: 1; }
.radio-promo-frequency { color: var(--gold); font-family: var(--mono); font-size: .68rem; letter-spacing: .13em; }
.radio-promo-card strong { font-size: clamp(2.2rem, 3.4vw, 3.5rem); letter-spacing: -.06em; line-height: .94; }
.radio-promo-card strong em { color: var(--gold); font-family: var(--serif); font-weight: 600; }
.radio-promo-card p { color: rgba(242,238,231,.7); font-size: .86rem; line-height: 1.55; margin: 0; }

.radio-page { background: var(--cream); color: var(--ink); }
.radio-hero { background: var(--ink); color: var(--cream); display: grid; gap: clamp(3rem, 8vw, 9rem); grid-template-columns: minmax(0, 1fr) minmax(17rem, .62fr); min-height: min(44rem, 90svh); overflow: hidden; padding: clamp(8.5rem, 13vw, 11rem) clamp(1.3rem, 8vw, 9rem) clamp(4rem, 8vw, 7rem); position: relative; }
.radio-hero::before { background: radial-gradient(circle at 72% 31%, rgba(214,8,29,.58), transparent 20%), radial-gradient(circle at 69% 68%, rgba(242,181,43,.26), transparent 28%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.radio-hero-copy, .radio-dial { position: relative; z-index: 1; }
.radio-hero-copy { align-self: center; max-width: 43rem; }
.radio-hero h1 { color: var(--cream); font-size: clamp(3.5rem, 7vw, 7.3rem); }
.radio-hero h1 i { color: var(--gold); }
.radio-hero-copy > p:not(.eyebrow) { color: rgba(242,238,231,.78); font-size: clamp(1.03rem, 1.5vw, 1.18rem); line-height: 1.67; max-width: 34rem; }
.radio-dial { align-self: center; aspect-ratio: 1; border: 1px solid rgba(242,181,43,.68); border-radius: 50%; display: grid; place-items: center; transform: rotate(-9deg); width: min(30vw, 22rem); }
.radio-dial::before, .radio-dial::after { border: 1px solid rgba(242,238,231,.28); border-radius: 50%; content: ""; position: absolute; }
.radio-dial::before { inset: 1rem; }
.radio-dial::after { inset: 3rem; }
.radio-dial span { color: var(--gold); font-family: var(--mono); font-size: .72rem; letter-spacing: .14em; text-align: center; }
.radio-dial strong { color: var(--cream); display: block; font-family: var(--serif); font-size: 1.6rem; font-style: italic; letter-spacing: -.04em; margin-top: .35rem; }
.radio-form-section { background: var(--cream); color: var(--ink); display: grid; gap: clamp(3rem, 8vw, 9rem); grid-template-columns: minmax(0, .68fr) minmax(20rem, 1fr); padding: clamp(5.5rem, 9vw, 9rem) clamp(1.3rem, 8vw, 9rem); }
.radio-form-intro h2 { font-size: clamp(2.9rem, 5vw, 5rem); }
.radio-form-intro h2 i { color: var(--red-dark); }
.radio-form-intro > p:not(.eyebrow) { font-size: 1.05rem; line-height: 1.68; max-width: 28rem; }
.radio-delivery-note { border-left: 2px solid var(--red); color: rgba(9,9,9,.68); font-family: var(--mono); font-size: .69rem; letter-spacing: .04em; line-height: 1.7; margin-top: 2rem; max-width: 26rem; padding-left: 1rem; }
.radio-form-card { background: var(--ink); color: var(--cream); padding: clamp(1.5rem, 4vw, 3.25rem); }
.radio-form-card h3 { font-size: clamp(1.55rem, 2.5vw, 2.2rem); letter-spacing: -.05em; margin-bottom: 1.75rem; }
.radio-form { display: grid; gap: 1.25rem; }
.radio-type-options { display: grid; gap: .75rem; grid-template-columns: 1fr 1fr; }
.radio-choice { border: 1px solid rgba(242,238,231,.32); cursor: pointer; display: block; min-height: 6.2rem; padding: 1rem; transition: background .2s, border-color .2s, color .2s; }
.radio-choice.is-selected { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.radio-choice input { accent-color: var(--red); margin: 0 .4rem 0 0; }
.radio-choice strong { display: block; font-size: .88rem; letter-spacing: -.015em; margin-top: .65rem; }
.radio-choice small { color: inherit; display: block; font-size: .7rem; line-height: 1.4; margin-top: .25rem; opacity: .75; }
.radio-field-row { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.form-field { display: grid; gap: .55rem; }
.form-field label, .radio-fieldset legend { color: rgba(242,238,231,.72); font-family: var(--mono); font-size: .66rem; letter-spacing: .09em; text-transform: uppercase; }
.form-field input, .form-field textarea { appearance: none; background: transparent; border: 0; border-bottom: 1px solid rgba(242,238,231,.46); border-radius: 0; color: var(--cream); font: inherit; min-height: 2.7rem; outline: none; padding: .35rem 0; width: 100%; }
.form-field textarea { line-height: 1.5; min-height: 6rem; resize: vertical; }
.form-field input:focus, .form-field textarea:focus { border-color: var(--gold); }
.form-field input::placeholder, .form-field textarea::placeholder { color: rgba(242,238,231,.36); }
.radio-fieldset { border: 0; margin: 0; padding: 0; }
.radio-slot-options { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .8rem; }
.radio-slot-options label { border: 1px solid rgba(242,238,231,.35); cursor: pointer; font-family: var(--mono); font-size: .68rem; padding: .68rem .8rem; }
.radio-slot-options input { accent-color: var(--gold); margin-right: .35rem; }
.radio-field-group.is-hidden { display: none; }
.radio-form-submit { margin-top: .5rem; width: fit-content; }
.radio-result { border-top: 1px solid rgba(242,238,231,.25); margin-top: 1.5rem; padding-top: 1.5rem; }
.radio-result[hidden] { display: none; }
.radio-result p { color: rgba(242,238,231,.76); line-height: 1.58; }
.radio-result textarea { background: #101010; border: 1px solid rgba(242,238,231,.25); color: var(--cream); font-family: var(--mono); font-size: .75rem; line-height: 1.6; min-height: 10rem; padding: 1rem; resize: vertical; width: 100%; }
.radio-result-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.radio-result-actions .button { cursor: pointer; }
.radio-status { color: var(--gold); font-family: var(--mono); font-size: .7rem; line-height: 1.5; margin-top: 1rem; min-height: 1.1rem; }
.visually-hidden { height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; clip: rect(0 0 0 0); white-space: nowrap; }

@media (max-width: 800px) {
  .site-header { grid-template-columns: 1fr auto; }
  nav { display: none; }
  .hero { min-height: 48rem; padding-top: 8rem; }
  .hero-art { opacity: .72; width: 86vw; }
  .hero-image-wrap { bottom: -2%; right: -7%; width: 70vw; }
  .sun { height: 60vw; right: 0; top: 24%; width: 60vw; }
  .ring-one { height: 75vw; width: 75vw; }
  .ring-two { height: 53vw; width: 53vw; }
  .audience-grid, .format-heading, .format-intro, .radio-promo, .ludovico-section, .recruiting-grid, .materials-section, .villages-hero, .villages-intro, .villages-process, .villages-contact, .radio-hero, .radio-form-section { grid-template-columns: 1fr; }
  .format-heading { gap: 1rem; }
  .format-intro { margin-top: 2.7rem; }
  .format-cards { grid-template-columns: 1fr; }
  .format-cards article, .format-cards article + article { border-bottom: 1px solid rgba(255,255,255,.3); border-right: 0; min-height: auto; padding: 1.5rem 0; }
  .format-cards article:last-child { border-bottom: 0; }
  .card-number { margin-bottom: 1.4rem; }
  .ludovico-section { gap: 1.3rem; min-height: auto; }
  .ludovico-copy { padding-right: 0; }
  .ludovico-photo { height: min(34rem, 110vw); transform: none; }
  .recruiting-grid { gap: 3rem; }
  .materials-section { gap: 2.5rem; }
  .villages-hero { min-height: auto; }
  .villages-hero-photo { height: min(38rem, 110vw); max-width: 34rem; }
  .villages-offer-grid { grid-template-columns: 1fr; }
  .villages-offer-card, .villages-offer-card + .villages-offer-card { border-bottom: 1px solid var(--line-dark); border-right: 0; min-height: auto; padding: 1.5rem 0; }
  .villages-offer-card:last-child { border-bottom: 0; }
  .villages-offer-card h3 { margin: 1.35rem 0 .6rem; }
}

@media (max-width: 520px) {
  .site-header { min-height: 4.8rem; padding-inline: 1.1rem; }
  .header-dm { font-size: .62rem; }
  .hero { min-height: 44rem; padding-inline: 1.25rem; }
  .hero-copy { padding-bottom: 7rem; }
  .hero-image-wrap { bottom: -1%; opacity: .62; right: -22%; width: 94vw; }
  .sun { height: 83vw; top: 32%; width: 83vw; }
  .hero-intro { max-width: 21rem; }
  .button { width: 100%; }
  .hero-actions, .recruiting-actions { max-width: 22rem; }
  .hero-notes { gap: .45rem; }
  .hero-notes span { font-size: .52rem; }
  .audience-section, .format-section, .radio-promo, .recruiting-section, .materials-section, .villages-proposal, .villages-process, .villages-contact, .radio-hero, .radio-form-section { padding-inline: 1.25rem; }
  .villages-hero { padding-inline: 1.25rem; }
  .radio-promo-card { min-height: 18rem; }
  .radio-dial { justify-self: center; width: min(70vw, 19rem); }
  .radio-field-row, .radio-type-options { grid-template-columns: 1fr; }
  .material-row { grid-template-columns: 1.8rem 1fr; padding: 1.15rem 0; }
  .material-action { grid-column: 2; justify-self: start; }
  footer { grid-template-columns: 1fr; justify-items: start; }
  footer p { text-align: left; }
  footer > a:last-child { justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
