/* The opening life chapter and a quiet musical keepsake. */
:root { --burgundy: #682d38; --burgundy-dark: #452029; }
.life-opening { padding: 30px 0 50px; }
.life-opening-spread { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(230px, .7fr); gap: 70px; align-items: center; }
.life-opening h2 { font-size: clamp(36px, 4vw, 53px); line-height: 1.5; }
.life-dates { display: flex; align-items: center; gap: 14px; margin: 20px 0 22px; color: #8d603a; font-size: 18px; font-weight: 600; }
.life-dates::after { content: ''; flex: 1; height: 1px; background: #b3a37b; max-width: 80px; }
.life-opening-copy > p:not(.life-dates) { font-size: 22px; line-height: 1.95; margin-top: 17px; }
.life-opening-copy > p strong { font-weight: 600; color: var(--forest); }
.life-opening .babuji-portrait { width: min(100%, 270px); }
.life-route { list-style: none; display: flex; gap: 0; align-items: center; flex-wrap: wrap; margin: 30px 0 0; padding: 17px 0 0; border-top: 1px solid #b8ae8b; }
.life-route li { font-size: 17px; font-weight: 600; color: #79613c; }
.life-route li + li::before { content: '·'; margin: 0 13px; color: #a9915c; }
.election-art-keepsake { width: 100%; }
.election-art-keepsake img { width: 100%; height: auto; display: block; mix-blend-mode: multiply; -webkit-mask-image: radial-gradient(ellipse, #000 45%, transparent 76%); mask-image: radial-gradient(ellipse, #000 45%, transparent 76%); }
.tenure-visual { display: block; width: 78px; height: 96px; object-fit: cover; mix-blend-mode: multiply; -webkit-mask-image: radial-gradient(ellipse, #000 38%, transparent 75%); mask-image: radial-gradient(ellipse, #000 38%, transparent 75%); }
.tenure-memory { position: relative; padding-left: 98px; }
.tenure-memory > .tenure-visual { position: absolute; left: 0; top: 3px; }
.song-memory { padding: 65px 0 50px; }
.song-heading { display: flex; align-items: center; gap: 28px; margin-bottom: 22px; }
.song-heading h2 { font-size: 36px; line-height: 1.55; }
.song-heading::after { content: ''; height: 1px; max-width: 180px; flex: 1; background: #b3a37b; }
.song-memory-spread { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); gap: 40px; align-items: center; }
.song-art { min-width: 0; }
.song-illustration { position: relative; display: block; width: calc(100% + 38px); margin-left: -22px; }
.song-illustration img { width: 100%; height: auto; display: block; -webkit-mask-image: radial-gradient(ellipse 77% 75%, #000 57%, transparent 100%); mask-image: radial-gradient(ellipse 77% 75%, #000 57%, transparent 100%); }
.song-art figcaption { font-size: 12px; line-height: 1.7; color: var(--muted); text-align: center; margin-top: 7px; }
.favourite-song { padding: 15px 0 15px 26px; border-left: 1px solid #b29a66; }
.favourite-song > p { font: 400 clamp(25px, 2.5vw, 34px)/1.85 var(--display-font); color: var(--burgundy); }
.favourite-song > footer { margin-top: 20px; font-size: 16px; color: #6b624c; }
.music-toggle { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; margin-top: 18px; padding: 3px 12px; border: 1px solid #b6a581; border-radius: 4px; background: #fff9ed; color: #744938; font-size: 14px; }
.music-toggle[hidden] { display: none; }
.song-note { fill: #9b7440; font: 30px Georgia, serif; opacity: 0; animation: song-note-rise 6s ease-out infinite; }
.song-note-b { animation-delay: -2s; }.song-note-c { animation-delay: -4s; }
.record-spin { transform-origin: 0 0; animation: record-turn 5.5s linear infinite; }
@keyframes record-turn { to { transform: rotate(360deg); } }
@keyframes song-note-rise { 0% { opacity: 0; transform: translate(0, 0) rotate(-7deg); } 25%,60% { opacity: .75; } 100% { opacity: 0; transform: translate(26px, -100px) rotate(10deg); } }

/* A single college introduction, using its own seal and photograph. */
.college-chapter { margin-block: 65px; padding: 32px 0; border-top: 1px solid #b6a682; border-bottom: 1px solid #b6a682; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 48px; align-items: center; }
.college-heading { display: flex; align-items: center; gap: 18px; }
.college-seal { width: 76px; height: 76px; flex: 0 0 76px; object-fit: contain; }
.college-heading h2 { font-size: clamp(27px, 2.8vw, 36px); line-height: 1.6; }
.college-place { font-size: 16px; color: var(--muted); margin: 12px 0 18px; }
.college-copy > p:not(.college-place) { font-size: 20px; line-height: 1.85; }
.college-link { display: inline-flex; min-height: 46px; align-items: center; padding: 8px 19px; margin-top: 23px; text-decoration: none; border: 1px solid #aa8e68; color: var(--burgundy); background: #fff8eb; border-radius: 3px; font-weight: 600; font-size: 17px; }
.college-photo { display: block; padding: 5px; border: 1px solid #c1b08b; background: #fff9ed; box-shadow: 4px 5px 0 #b4a17a22; }
.college-photo img { display: block; width: 100%; height: auto; }
.college-photo figcaption { font-size: 12px; color: var(--muted); padding: 5px 7px 2px; }

/* Burgundy responds as one surface: image, lettering and fine rule. */
.reference-link, .campaign-caption, .college-link { transition: color 240ms ease, background-color 240ms ease, border-color 240ms ease, box-shadow 240ms ease; }
.reference-link { position: relative; isolation: isolate; }
.reference-link::before { content: ''; position: absolute; z-index: -1; inset: 0 -12px; background: linear-gradient(110deg, #682d3811, #682d3803); border-radius: 4px; opacity: 0; transition: opacity 240ms ease; }
.reference-link:hover, .reference-link:focus-visible { color: var(--burgundy); border-color: var(--burgundy); }
.reference-link:hover::before, .reference-link:focus-visible::before { opacity: 1; }
.reference-mark { transition: transform 280ms ease; }
.reference-link:hover .reference-mark, .reference-link:focus-visible .reference-mark { transform: translateY(-3px); }
.reference-link:hover small, .reference-link:focus-visible small { color: #7b4850; }
.campaign-link:hover .campaign-caption, .campaign-link:focus-visible .campaign-caption { color: var(--burgundy); border-color: var(--burgundy); }
.campaign-link:hover .campaign-image, .campaign-link:focus-visible .campaign-image { border-color: var(--burgundy); box-shadow: 3px 4px 0 #682d3820; }
.college-link:hover, .college-link:focus-visible { color: #fff8eb; background: var(--burgundy); border-color: var(--burgundy-dark); box-shadow: inset 0 1px 0 #ffffff25, 0 3px 10px #45202919; }
.reference-link:active, .campaign-link:active .campaign-caption { color: var(--burgundy); }

@media (max-width: 1000px) {
  .life-opening-spread { gap: 35px; grid-template-columns: minmax(0, 1.5fr) minmax(170px, .65fr); }
  .life-opening-copy > p:not(.life-dates) { font-size: 20px; }
  .election-art-keepsake { grid-column: 2; grid-row: 2; align-self: center; }
  .song-memory-spread { gap: 28px; }
  .song-heading h2 { font-size: 31px; }
  .college-chapter { gap: 30px; }
}
@media (max-width: 640px) {
  .life-opening { padding-top: 20px; padding-bottom: 18px; }
  .life-opening-spread { display: grid; grid-template-columns: minmax(0, 1fr) 115px; gap: 20px; align-items: start; }
  .life-opening-copy { display: contents; }
  .life-opening-copy::before { display: none; }
  .life-opening h2 { grid-column: 1 / -1; font-size: 34px; }
  .life-dates { grid-column: 1 / -1; margin: -2px 0 0; font-size: 15px; }
  .life-opening-copy > p:not(.life-dates) { font-size: 19px; line-height: 1.9; margin: 0; }
  .life-opening-copy > .birth-story { grid-column: 1; grid-row: 3; }
  .life-opening-copy > .life-rise { grid-column: 1 / -1; }
  .life-opening .babuji-portrait { grid-column: 2; grid-row: 3; padding: 0; margin: 5px 0 0; background: transparent; }
  .life-opening .babuji-portrait figcaption { margin: 8px 0 0; font-size: 12px; line-height: 1.7; }
  .life-opening .babuji-portrait figcaption span { font-size: 11px; }
  .life-opening .babuji-portrait figcaption small { display: none; }
  .life-route { grid-column: 1 / -1; margin: 0; padding-top: 16px; }
  .life-route li { font-size: 15px; }
  .life-route li + li::before { margin-inline: 8px; }
  .song-memory { padding-block: 36px; }
  .song-memory-spread { display: block; }
  .song-heading { margin-bottom: 5px; }
  .song-heading h2 { font-size: 30px; }
  .song-illustration { width: calc(100% + 30px); margin-left: -15px; }
  .song-art figcaption { font-size: 10px; margin-top: 0; }
  .favourite-song { margin-top: 23px; padding: 4px 0 4px 18px; }
  .favourite-song > p { font-size: 25px; line-height: 1.9; }
  .favourite-song > footer { margin-top: 13px; font-size: 14px; }
  .music-toggle { margin-top: 10px; }
  .college-chapter { grid-template-columns: 1fr; gap: 25px; margin-block: 40px; padding-block: 25px; }
  .college-heading { gap: 13px; }
  .college-seal { flex-basis: 62px; width: 62px; height: 62px; }
  .college-heading h2 { font-size: 28px; }
  .college-place { font-size: 14px; }
  .college-copy > p:not(.college-place) { font-size: 18px; }
  .college-link { width: 100%; justify-content: center; margin-top: 18px; }
}
@media (max-width: 540px) {
  .tenure-memory { padding-left: 0; }
  .tenure-memory > .tenure-visual { position: static; grid-column: 1; grid-row: 1 / span 3; width: 76px; height: 96px; margin-top: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .reference-link, .reference-mark, .reference-link::before, .campaign-caption, .college-link { transition: none; }
  .reference-link:hover .reference-mark, .reference-link:focus-visible .reference-mark { transform: none; }
  .record-spin, .song-note { animation: none !important; }
}

/* One continuous biography, without repeated chapter banners. */
.biography-chapter { padding: 35px 0 20px; }
.biography-chapter .life-opening-spread { gap: 55px; }
.biography-chapter .life-opening-spread h2 { font-size: clamp(33px, 3.5vw, 46px); line-height: 1.65; }
.biography-chapter .life-opening-copy > p:not(.life-dates) { font-size: 20px; line-height: 1.95; }
.biography-chapter .life-dates { font-size: 16px; margin-block: 11px 18px; }
.biography-chapter .sonia-archive { width: min(530px, 100%); margin: 36px auto 20px; }
.biography-chapter .sonia-archive figcaption { font-size: 16px; }
.biography-chapter .chronicle { margin-top: 25px; }
.biography-chapter .chapter-art { height: 170px; }
.biography-chapter .chapter-heading { padding-block: 8px 12px; }
.biography-chapter .chapter-heading h3 { font-size: 26px; }
.biography-chapter .chapter-heading > span { font-size: 23px; }
.biography-chapter .chapter-stops li { padding-top: 13px; gap: 12px; }
.biography-chapter .chapter-stops p { font-size: 17px; }
.chronicle-education { font-size: 13px; line-height: 1.75; color: var(--muted); margin-top: 20px; padding-top: 12px; border-top: 1px solid #b1a38366; }
.biography-chapter .legislative-story { margin-top: 32px; padding-top: 24px; border-top: 1px solid #b7a47d; gap: 40px; }
.biography-chapter .tenure-memory { display: block; padding: 0; }
.biography-chapter .tenure-memory h3 { font-size: 25px; line-height: 1.6; margin-block: 5px; }
.biography-chapter .tenure-memory > p:last-child { font-size: 18px; line-height: 1.85; }
.biography-chapter .tenure-period { font-size: 20px; }
.biography-chapter .song-memory { padding-top: 30px; padding-bottom: 10px; }
.biography-chapter .song-memory-spread { gap: 30px; }
.mobile-legacy-portrait { display: none; }
.biography-chapter .favourite-song > p { font-size: clamp(25px, 2.2vw, 31px); }
@media (max-width: 640px) {
  .biography-chapter { padding-top: 20px; }
  .biography-chapter .life-opening-spread { gap: 18px; }
  .biography-chapter .life-opening-spread h2 { font-size: 31px; }
  .biography-chapter .life-opening-spread h2 { grid-column: 1 / -1; }
  .biography-chapter .babuji-portrait { grid-column: 2; grid-row: 3; width: 115px; margin: 4px 0 0; padding: 0; background: transparent; }
  .biography-chapter .babuji-portrait figcaption { margin: 8px 0 0; font-size: 12px; line-height: 1.7; }
  .biography-chapter .babuji-portrait figcaption span { font-size: 11px; }
  .biography-chapter .babuji-portrait figcaption small { display: none; }
  .biography-chapter .life-opening-copy > p:not(.life-dates) { font-size: 18px; line-height: 1.9; }
  .biography-chapter .life-dates { margin: 0; font-size: 14px; }
  .biography-chapter .sonia-archive { margin-block: 25px 15px; }
  .biography-chapter .sonia-archive figcaption { font-size: 13px; }
  .biography-chapter .chapter-art { height: 175px; }
  .biography-chapter .chapter-heading h3 { font-size: 26px; }
  .biography-chapter .chapter-stops p { font-size: 18px; }
  .biography-chapter .legislative-story { gap: 22px; margin-top: 22px; padding-top: 18px; }
  .biography-chapter .tenure-memory h3 { font-size: 24px; }
  .biography-chapter .tenure-memory > p:last-child { font-size: 17px; }
  .biography-chapter .song-memory { padding-top: 20px; }
  .biography-chapter .favourite-song > p { font-size: 24px; }
  .hero { aspect-ratio: 1 / 1.08; max-height: 560px; }
  .hero .grandfather-picture { display: none; }
  .hero .father-picture { width: 44%; right: 4%; }
  .introduction-clouds { width: calc(100% - 40px); }
  .father-cloud { padding: 16px 0 19px; }
  .father-cloud .cloud-copy h1 { font-size: 30px; }
  .grandfather-cloud { display: flex; align-items: center; gap: 16px; padding: 17px 0; }
  .mobile-legacy-portrait { display: block; flex: 0 0 65px; width: 65px; height: 82px; object-fit: contain; align-self: end; }
  .grandfather-cloud .cloud-copy { flex: 1; }
  .grandfather-cloud .cloud-copy h2 { font-size: 23px; line-height: 1.6; }
  .grandfather-cloud .honorific { display: block; font-size: 13px; }
  .grandfather-cloud .cloud-copy p { font-size: 15px; }
  .grandfather-cloud .cloud-copy a { font-size: 15px; margin-top: 3px; }
}

/* Touch remains native; decorative layers never receive a tap. */
body { overflow-x: clip; }
.hero::after, .journey-art, .footer-art, .section-atmosphere, .hero-atmosphere { pointer-events: none; }
button, a { touch-action: manipulation; }
.header-nav a, .text-button, .cloud-copy a, .build-credit a { min-height: 44px; }
.chapter-corner-controls button, .chronicle-controls > button { -webkit-appearance: none; appearance: none; }
.chapter-corner-controls button:focus-visible, .reference-link:focus-visible { outline-color: var(--burgundy); }
.biography-chapter .tenure-period { color: #8d5a31; }
.chronicle-education, .song-art figcaption, .college-photo figcaption { color: #53624c; }
@media (max-width: 360px) {
  .biography-chapter .life-opening-spread { grid-template-columns: minmax(0, 1fr) 95px; column-gap: 15px; }
  .biography-chapter .babuji-portrait { width: 95px; }
  .site-header { gap: 8px; }
}

/* The music illustration opens across the page rather than sitting in a small card. */
.biography-chapter .song-memory { position: relative; isolation: isolate; width: 100vw; margin-left: calc(50% - 50vw); margin-top: 30px; padding: 35px max(38px, calc((100vw - 1440px) / 2)) 30px; }
.biography-chapter .song-memory::before { content: ''; position: absolute; inset: 17px 25px; z-index: -1; pointer-events: none; background: linear-gradient(#b49a65,#b49a65) left top / 25px 1px no-repeat, linear-gradient(#b49a65,#b49a65) left top / 1px 25px no-repeat, linear-gradient(#b49a65,#b49a65) right top / 25px 1px no-repeat, linear-gradient(#b49a65,#b49a65) right top / 1px 25px no-repeat, linear-gradient(#b49a65,#b49a65) left bottom / 25px 1px no-repeat, linear-gradient(#b49a65,#b49a65) left bottom / 1px 25px no-repeat, linear-gradient(#b49a65,#b49a65) right bottom / 25px 1px no-repeat, linear-gradient(#b49a65,#b49a65) right bottom / 1px 25px no-repeat; opacity: .7; }
.biography-chapter .song-memory-spread { grid-template-columns: minmax(0, 1.5fr) minmax(0, .85fr); max-width: 1440px; margin-inline: auto; gap: 48px; }
.biography-chapter .song-illustration { width: 100%; margin: 0; }
.biography-chapter .favourite-song { border-left: 0; padding-left: 0; background: transparent; }
.biography-chapter .favourite-song::before { display: none; }
.biography-chapter .favourite-song > p { font-size: clamp(28px, 2.55vw, 38px); line-height: 1.9; }
.nehru-interlude::after { display: none !important; }
.nehru-interlude { padding-bottom: 0; }
.nehru-portrait { padding: 5px; border: 1px solid #b7a780; background: #fffaef; box-shadow: 3px 4px 0 #b7a78022; }
.nehru-portrait img { -webkit-mask-image: none; mask-image: none; filter: grayscale(1) sepia(.17) contrast(.96); }
.nehru-portrait figcaption { font-size: 14px; line-height: 1.7; margin: 7px 2px 2px; }
.college-chapter { position: relative; }
.college-chapter::after { content: ''; position: absolute; bottom: -4px; left: -3px; width: 7px; height: 7px; border: 1px solid #a38759; transform: rotate(45deg); background: var(--paper); }
@media (max-width: 640px) {
  .biography-chapter .song-memory { margin-top: 20px; padding: 20px 20px 25px; }
  .biography-chapter .song-memory::before { inset: 8px 10px; background-size: 17px 1px,1px 17px,17px 1px,1px 17px,17px 1px,1px 17px,17px 1px,1px 17px; }
  .biography-chapter .favourite-song { margin: 18px 6px 0; padding: 0 13px; }
  .biography-chapter .favourite-song > p { font-size: 25px; }
  .nehru-portrait { padding: 3px; }
  .nehru-portrait figcaption { display: none; }
}

/* Phone: one full screen of scenery, then two correctly matched identities. */
@media (max-width: 1000px) {
  .hero { aspect-ratio: auto; height: 100vh; height: 100svh; max-height: none; }
  .site-header { display: none; }
  .hero .grandfather-picture { display: block; width: 36%; left: 1%; }
  .hero .father-picture { width: 39%; right: 1%; }
  .mobile-legacy-portrait { display: none; }
  .introduction-clouds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; width: min(760px, calc(100% - 40px)); padding-top: 18px; }
  .grandfather-cloud, .father-cloud { display: block; order: initial; padding: 12px 0 19px; border: 0; text-align: center; }
  .grandfather-cloud .cloud-copy h2, .father-cloud .cloud-copy h1 { font-size: clamp(22px, 3.8vw, 30px); line-height: 1.65; }
  .grandfather-cloud .honorific { display: block; font-size: 13px; margin-right: 0; }
  .grandfather-cloud .cloud-copy p, .father-cloud .cloud-copy p { font-size: 16px; line-height: 1.7; }
  .grandfather-cloud .cloud-copy a, .father-cloud .cloud-copy button { font-size: 15px; margin-top: 9px; }
  .father-cloud .cloud-copy { padding-top: 23px; }
  .introductions .story-bridge { font-size: 21px; margin-top: 10px; }
}
@media (max-width: 380px) {
  .introduction-clouds { gap: 18px; width: calc(100% - 32px); }
  .grandfather-cloud .cloud-copy h2, .father-cloud .cloud-copy h1 { font-size: 22px; }
  .grandfather-cloud .cloud-copy p, .father-cloud .cloud-copy p { font-size: 14px; }
}

.reference-link:hover, .reference-link:focus-visible { color: #3b0d16; border-color: #3b0d16; }
.reference-link:hover::before, .reference-link:focus-visible::before { background: linear-gradient(105deg, #682d3828, #682d380d); }
.reference-link:hover small, .reference-link:focus-visible small { color: #632b36; }
.college-chapter { border-color: #a48a57; background: linear-gradient(100deg, #d2b77912, transparent 65%); padding-inline: 24px; }
.college-heading h2 { color: #0b1f3a; }
.college-place { color: #4c5360; }
.college-seal { filter: drop-shadow(0 2px 2px #0b1f3a14); }
.college-photo { border-color: #b7a069; box-shadow: 5px 5px 0 #0b1f3a0c; background: #fffaf0; }
.college-link { background: #3b0d16; color: #fffaf0; border-color: #3b0d16; box-shadow: inset 0 1px 0 #d2b77977; }
.college-link:hover, .college-link:focus-visible { background: #071528; border-color: #071528; color: #fffaf0; box-shadow: inset 0 1px 0 #d2b77988, 0 3px 9px #0b1f3a20; }
.college-chapter::before { content: ''; position: absolute; inset: 7px 5px; pointer-events: none; border-left: 1px solid #d2b77977; border-right: 1px solid #d2b77977; }
@media (max-width: 640px) { .college-chapter { padding-inline: 16px; } }

/* A rural illustrated margin gives the biography a setting, without a frame. */
.biography-chapter::before { content: ''; position: absolute; z-index: -1; pointer-events: none; top: 0; left: calc((100% - 100vw) / 2); width: 100vw; height: min(820px, 65vw); background: url("assets/biography-village-edges-v1.webp") center top / 100% 100% no-repeat; -webkit-mask-image: linear-gradient(90deg,#000, #000 8%, transparent 23%, transparent 81%, #000 96%); mask-image: linear-gradient(90deg,#000, #000 8%, transparent 23%, transparent 81%, #000 96%); }
.life-dates::after { display: none; }
.public-connections { margin-top: 38px; padding-top: 22px; padding-bottom: 0; }
.connections-heading { display: none; }
.campaign-links { grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 45px; align-items: center; }
.campaign-image { padding: 0; border: 0; background: none; box-shadow: none; -webkit-mask-image: linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent); mask-image: linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent); }
.campaign-image > img { height: auto; width: 100%; object-fit: contain; filter: sepia(.12) saturate(.88); }
.campaign-image .campaign-badge { filter: none; }
.campaign-caption { border: 0; color: #682d38; font-size: 25px; padding-top: 12px; padding-bottom: 3px; }
.campaign-link:hover .campaign-image, .campaign-link:focus-visible .campaign-image { box-shadow: none; }
.reference-links { margin-top: 15px; gap: 26px; }
.reference-link { border: 0; padding: 16px 10px; min-height: 105px; }
.reference-link::before { inset: 3px 0; border-radius: 3px; }
.reference-link:hover::before, .reference-link:focus-visible::before { background: #3b0d16; }
.reference-link:hover, .reference-link:focus-visible, .reference-link:hover small, .reference-link:focus-visible small { color: #fffaf0; }
.college-chapter { border: 0; background: none; padding: 25px 0; margin-top: 38px; grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); gap: 45px; }
.college-chapter::before, .college-chapter::after { display: none; }
.college-photo { order: -1; padding: 0; border: 0; box-shadow: none; background: none; }
.college-photo img { -webkit-mask-image: radial-gradient(ellipse 80% 78%,#000 65%,transparent 100%); mask-image: radial-gradient(ellipse 80% 78%,#000 65%,transparent 100%); }
.college-photo figcaption { text-align: center; font-size: 11px; }
.college-heading { gap: 14px; }
.college-heading h2 { font-size: 32px; }
.college-seal { width: 60px; height: 60px; flex-basis: 60px; }
.college-place { margin-block: 12px; }
@media (max-width: 640px) {
  .biography-chapter::before { height: 550px; background-size: auto 550px; opacity: .5; -webkit-mask-image: linear-gradient(90deg,#0008,transparent 13%,transparent 92%,#0008); mask-image: linear-gradient(90deg,#0008,transparent 13%,transparent 92%,#0008); }
  .campaign-links { grid-template-columns: 1fr; gap: 23px; }
  .campaign-image > img { aspect-ratio: auto; }
  .rahul-feature { grid-template-columns: 110px minmax(0,1fr); }
  .rahul-feature .campaign-image > img { height: 90px; object-fit: cover; }
  .reference-links { gap: 10px; }
  .reference-link { padding-inline: 5px; }
  .reference-link > span:last-child { font-size: 15px; }
  .college-chapter { grid-template-columns: 1fr; gap: 12px; margin-top: 26px; }
  .college-photo { order: 0; }
  .college-heading h2 { font-size: 28px; }
}

/* One quiet scroll seal floats; it becomes a regular link in the footer. */
.back-to-top.is-floating { width: 54px; height: 54px; min-width: 54px; padding: 5px; display: grid; place-items: center; border: 1px solid #a7946d; border-radius: 50%; color: #214f3c; background: #fff9ed; box-shadow: 0 3px 13px #44351e1a, inset 0 1px 0 #fff; right: max(19px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); isolation: isolate; }
.back-to-top.is-floating::before { content: ''; position: absolute; inset: 3px; border-radius: 50%; background: conic-gradient(#947343 var(--page-progress,0deg),#d8cbae 0); z-index: -1; -webkit-mask: radial-gradient(transparent 67%,#000 69%); mask: radial-gradient(transparent 67%,#000 69%); }
.back-to-top.is-floating .back-top-mark { width: 34px; height: 34px; border: 0; border-radius: 0; box-shadow: none; background: transparent; padding: 0; }
.back-to-top.is-floating .back-top-mark::before { display: none; }
.back-to-top.is-floating .back-top-mark svg { width: 25px; height: 29px; }
.back-to-top.is-floating > span:last-child { display: none; }
.back-to-top:hover, .back-to-top:focus-visible { color: #3b0d16; border-color: #7e4d43; }
.back-to-top:not(.is-floating) { background: transparent; box-shadow: none; padding: 0 3px; gap: 8px; border: 0; min-height: 44px; }
.back-to-top:not(.is-floating) .back-top-mark { width: 28px; height: 33px; padding: 0; border: 0; background: none; }
.back-to-top:not(.is-floating) .back-top-mark::before { display: none; }
.back-to-top:not(.is-floating) > span:last-child { font-size: 15px; }
@media (max-width: 540px) { .back-to-top.is-floating { width: 49px; height: 49px; min-width: 49px; right: max(12px,env(safe-area-inset-right)); bottom: max(12px,env(safe-area-inset-bottom)); } }
.chapter-tabs button { min-width: 44px; min-height: 44px; }
@media (max-width: 540px) {
  .chronicle-controls { gap: 10px; }
  .chronicle-controls > button { min-width: 54px; padding-inline: 4px; font-size: 14px; }
  .chapter-tabs { gap: 0; }
}
.biography-chapter .song-memory::before { inset: 0; opacity: .35; background: url("assets/biography-village-edges-v1.webp") center / 100% 100% no-repeat; -webkit-mask-image: linear-gradient(90deg,#000 0%,transparent 9%,transparent 93%,#000); mask-image: linear-gradient(90deg,#000 0%,transparent 9%,transparent 93%,#000); }

/* One campaign display; four equal destinations with shared icon and label rails. */
.campaign-links { display: block; }
.vote-feature { max-width: 920px; margin-inline: auto; }
.vote-feature .campaign-image > img { height: auto; max-height: 440px; object-fit: cover; object-position: center 45%; aspect-ratio: 2.15; }
.vote-feature .campaign-caption { justify-content: space-between; font-size: 25px; }
.campaign-caption small { font: 600 15px/1.7 var(--body-font); }
.reference-links { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; align-items: stretch; margin-top: 25px; }
.reference-link { display: grid; grid-template-rows: 80px minmax(60px,auto); justify-items: center; align-content: start; align-items: start; text-align: center; gap: 13px; min-height: 172px; padding: 14px 9px; }
.reference-mark, .reference-mark.constitution-mark { width: 76px; height: 80px; display: grid; place-items: center; }
.reference-mark > img, .reference-mark.constitution-mark > img, .reference-mark.party-hand > img { max-height: 76px; max-width: 76px; width: auto; height: auto; object-fit: contain; }
.reference-mark.rahul-mark img { width: 70px; height: 70px; border-radius: 50%; }
.reference-link > span:last-child { font-size: 18px; line-height: 1.7; }
.reference-link small { font-size: 13px; margin-top: 3px; }
.reading-section { margin-block: 22px 35px; }
.reading-masthead { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-top: 1px solid #9c9d7f; border-bottom: 1px solid #c0b697; padding: 14px 0; }
.reading-masthead h2 { font-size: 32px; line-height: 1.6; }
.gathari-brand { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; text-decoration: none; color: #682d38; }
.gathari-brand img { width: 43px; height: 36px; object-fit: contain; }
.gathari-brand span { font: 400 24px/1.5 var(--display-font); }
#gathari-stories { list-style: none; margin: 0; padding: 20px 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px; }
.reading-item > a { display: grid; grid-template-columns: 115px minmax(0,1fr); gap: 18px; text-decoration: none; min-height: 105px; border-radius: 3px; padding: 8px; margin: -8px; transition: background-color 230ms,color 230ms; }
.reading-item img { display: block; width: 115px; height: 94px; object-fit: cover; border: 1px solid #c0ad87; padding: 3px; background: #fff8eb; }
.reading-item strong { display: block; font: 600 20px/1.75 var(--body-font); }
.reading-item small { display: block; color: #53624c; font-size: 14px; margin-top: 7px; }
.reading-item a:hover, .reading-item a:focus-visible { color: #3b0d16; background: #682d3817; }
.reading-item a:hover small { color: #632b36; }
.local-news-item { border-radius: 3px; transition: background-color 230ms; }
.local-news-item:hover { background: #682d3817; }
.local-news-item:hover .local-news-headline, .local-news-headline:focus-visible { color: #3b0d16; text-decoration-color: #682d38; }
.family-filmmaker { display: grid; grid-template-columns: 75px minmax(0,1fr); align-items: center; gap: 16px; width: min(390px,100%); margin-right: auto; padding: 9px; border: 1px solid #b9a783; background: #faf4e5e8; border-radius: 4px; text-decoration: none; }
.family-filmmaker > img { width: 75px; height: 90px; display: block; object-fit: cover; object-position: 53% 37%; }
.family-filmmaker small { display: block; font-size: 13px; color: #53624c; }
.family-filmmaker strong { display: block; font: 600 18px/1.65 var(--body-font); margin-top: 4px; }
.family-filmmaker:hover, .family-filmmaker:focus-visible { color: #3b0d16; border-color: #682d38; background: #f3e8dc; }
@media (max-width: 1000px) {
  .site-header { display: flex; }
  .reference-link > span:last-child { font-size: 17px; }
}
@media (max-width: 640px) {
  .reference-links { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 20px; }
  .reference-link { grid-template-rows: 76px minmax(55px,auto); gap: 10px; min-height: 156px; }
  .reference-link > span:last-child { font-size: 16px; }
  .vote-feature .campaign-image > img { aspect-ratio: 1.65; max-height: none; }
  .vote-feature .campaign-caption { font-size: 23px; }
  .campaign-caption small { font-size: 13px; }
  .reading-masthead { gap: 12px; }
  .reading-masthead h2 { font-size: 28px; }
  .gathari-brand { gap: 5px; }
  .gathari-brand img { width: 34px; height: 30px; }.gathari-brand span { font-size: 21px; }
  #gathari-stories { grid-template-columns: 1fr; gap: 23px; }
  .reading-item > a { grid-template-columns: 92px minmax(0,1fr); gap: 15px; }
  .reading-item img { width: 92px; height: 85px; }
  .reading-item strong { font-size: 18px; line-height: 1.75; }
  .reading-item small { font-size: 13px; }
  .closing-namaste { flex-wrap: wrap; gap: 18px; }
  .family-filmmaker { width: 100%; grid-column: 1 / -1; margin: 0 0 10px; }
}
@media (prefers-reduced-motion: reduce) { .reading-item > a, .local-news-item { transition: none; } }
.family-link-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 5px 14px; margin-top: 10px; color: #fffaf0; background: #682d38; border: 1px solid #4c1925; border-radius: 3px; box-shadow: inset 0 1px 0 #ffffff30; font-size: 14px; font-weight: 600; }
.family-filmmaker:hover .family-link-cta, .family-filmmaker:focus-visible .family-link-cta { background: #3b0d16; }
.family-filmmaker { grid-template-columns: 105px minmax(0,1fr); align-items: end; border: 0; padding: 0; background: transparent; gap: 18px; }
.family-filmmaker > img { width: 105px; height: 175px; object-fit: contain; object-position: center bottom; }
.family-filmmaker > span { align-self: center; padding-block: 12px; }
.family-filmmaker:hover, .family-filmmaker:focus-visible { background: transparent; }
.family-filmmaker strong { font-size: 17px; }
@media (max-width: 640px) { .family-filmmaker { grid-template-columns: 105px minmax(0,1fr); } }
.local-news-item:not(.has-thumbnail), .reading-item.photo-unavailable > a { grid-template-columns: minmax(0,1fr); }
@media (max-width: 1000px) { .motion-ready .scene-background { transform: none; inset: 0; } }

/* The address stays on the paper centre, clear of portraits and the footer seal. */
.footer-address { position: relative; isolation: isolate; display: flex; justify-content: space-between; align-items: center; gap: 18px 30px; padding: 18px 0 22px; margin-top: 14px; }
.footer-address::before { content: ''; position: absolute; inset: 0 -12px; z-index: -1; background: #faf4e5f2; box-shadow: 0 0 18px 13px #faf4e5d9; pointer-events: none; border-radius: 12%; }
.footer-address address { font: 500 17px/1.85 var(--body-font); color: var(--ink); }
.footer-address address > span { color: var(--muted); font-size: 16px; }
.footer-address .postal-code { white-space: nowrap; font-variant-numeric: tabular-nums; }
.footer-map-link { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; min-height: 44px; padding: 7px 18px; border: 1px solid #a98d69; border-radius: 3px; color: #682d38; background: #fff9ed; font-size: 16px; font-weight: 600; text-decoration: none; box-shadow: inset 0 1px 0 #fff; transition: color 220ms, background-color 220ms, border-color 220ms; }
.footer-map-link:hover, .footer-map-link:focus-visible { color: #fffaf0; background: #3b0d16; border-color: #3b0d16; }
@media (max-width: 540px) {
  .footer-address { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 10px; padding-block: 16px 19px; }
  .footer-address address { font-size: 16px; }
  .footer-address address > span { font-size: 15px; }
  .footer-map-link { min-height: 44px; padding-inline: 16px; font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .footer-map-link { transition: none; } }

/* The party hand sits beside the name, on the same warm paper as the scene. */
.wordmark { flex-direction: row; align-items: center; gap: 12px; }
.wordmark-copy { display: flex; flex-direction: column; min-width: 0; }
.wordmark-symbol { display: grid; place-items: center; flex: 0 0 46px; width: 46px; height: 46px; padding: 4px; border: 1px solid #b6a682; border-radius: 50%; background: #fff9ed; box-shadow: 0 1px 3px #6c573316; }
.wordmark-symbol img { display: block; width: 100%; height: auto; border-radius: 50%; mix-blend-mode: multiply; filter: saturate(.88) sepia(.08); }
@media (max-width: 1000px) {
  .wordmark { gap: 10px; }
  .wordmark-symbol { flex-basis: 40px; width: 40px; height: 40px; padding: 3px; }
}
@media (max-width: 540px) {
  .site-header { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 1px; padding-top: max(13px, env(safe-area-inset-top)); padding-bottom: 14px; }
  .wordmark { gap: 10px; padding: 0; }
  .wordmark-symbol { flex-basis: 36px; width: 36px; height: 36px; }
  .header-nav { justify-content: flex-start; gap: 22px; margin-left: 46px; }
  .header-nav a { min-height: 44px; font-size: 15px; }
}
