@font-face{font-family:'Libre Baskerville';src:url('../fonts/libre-baskerville.ttf') format('truetype');font-weight:400 700;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../fonts/source-sans-3.ttf') format('truetype');font-weight:200 900;font-display:swap}
:root{--paper:#f6f2ea;--ink:#123a2f;--sage:#e9ede2;--line:#bcc5b8;--serif:'Libre Baskerville',Georgia,serif;--sans:'Source Sans 3',Arial,sans-serif;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:18px;line-height:1.5;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #99441f;outline-offset:5px}h1,h2{font-family:var(--serif);line-height:1.4;margin:0 0 24px;font-weight:700}h1{font-size:clamp(32px,3.62vw,52px)}h2{font-size:clamp(24px,2.5vw,36px)}h3{font-size:inherit;margin:28px 0 0}p{margin:0 0 28px}main:focus{outline:none}.page-shell{max-width:1440px;margin:auto;min-height:100vh;display:flex;flex-direction:column}.review-strip{padding:6px 48px 0;font-size:14px;min-height:30px}.site-header{padding:28px 48px 0;position:relative;z-index:2}.council-review-brand{display:inline-flex;flex-direction:column;text-decoration:none}.council-review-brand strong{font:700 clamp(23px,2.37vw,34px)/1.45 var(--serif)}.council-review-brand span{font-size:24px;text-transform:uppercase}.skip-link{position:absolute;left:16px;top:-100px;padding:12px;background:var(--ink);color:white;z-index:10}.skip-link:focus{top:12px}.site-footer{background:var(--ink);color:white;display:flex;justify-content:space-between;gap:24px;padding:22px 48px;margin-top:auto;font-size:16px}.site-footer span:first-child{font-size:18px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero{position:relative;min-height:452px;padding:64px 78px 80px}.hero-copy{position:relative;z-index:1;pointer-events:none}.hero h1{font-size:clamp(38px,4.31vw,62px);line-height:1.32;max-width:660px;margin:0 0 50px}.hero-copy p{font-size:25px;line-height:1.45;max-width:550px;margin:0}.hero-art{position:absolute;width:67%;right:2.7%;top:-30px;bottom:0;overflow:hidden}.hero-art img{position:absolute;width:100%;height:100%;object-fit:cover}.kirk{opacity:0;animation:landscape-fade 28s ease-in-out infinite}.art-caption{position:absolute;bottom:18px;right:42px;left:52%;display:flex;justify-content:flex-end;align-items:center;gap:16px;font-size:12px;z-index:2}.art-caption label{white-space:nowrap;text-decoration:underline;cursor:pointer;padding:8px 4px}.pause-art{position:absolute;bottom:28px;right:152px;width:16px;height:16px;z-index:3;opacity:0}.pause-art:focus-visible~.art-caption label{outline:3px solid #99441f;outline-offset:3px}.pause-art:checked~.hero-art .kirk{animation-play-state:paused}.pause-art:checked~.art-caption label{font-weight:700;text-decoration-style:double}@keyframes landscape-fade{0%,38%,100%{opacity:0}48%,88%{opacity:1}}.next-meeting{display:flex;align-items:center;gap:32px;padding:32px 85px;background:var(--sage)}.date-tile{width:145px;flex-shrink:0;text-align:center;color:white;background:#bc633e;display:flex;flex-direction:column}.date-tile span{background:#a94e2b;font-size:16px;font-weight:700;text-transform:uppercase;padding:4px}.date-tile strong{font:700 64px/1.1 var(--serif)}.date-tile b{font-size:18px;line-height:1.3;text-transform:uppercase;padding-bottom:5px}.next-meeting h2{font-size:clamp(24px,2.36vw,34px);margin:8px 0 0}.next-meeting p{margin:0;font-size:25px}.next-meeting .eyebrow{font-size:16px;font-weight:600;text-transform:uppercase}.home-content{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-template-areas:"about aside" "members aside";column-gap:72px;align-items:start;padding:84px 48px 120px 78px}#about{grid-area:about}#members{grid-area:members}.council-info{font-size:24px;line-height:1.45}.council-info h2{white-space:normal}.council-info p{margin-bottom:36px}.council-info h3+p{margin-top:0}.home-aside{grid-area:aside;display:flex;flex-direction:column;gap:40px}.latest-minutes{background:var(--sage);padding:36px 28px}.latest-minutes h2{font-size:33px;margin-bottom:20px}.latest-minutes p{font-size:24px;margin-bottom:26px}.button{display:flex;align-items:center;justify-content:center;background:var(--ink);color:white;min-height:60px;padding:12px 18px;text-align:center;text-decoration:none;font-weight:600;font-size:22px}.button:hover{background:#205441}.archive-link{display:inline-flex;align-items:center;min-height:44px;margin-top:22px;font-size:22px}.contact-card{padding:34px 28px;background:#faebdd}.contact-card h2{font-size:28px;margin-bottom:20px}.contact-card p{font-size:20px;line-height:1.45;margin-bottom:20px}.contact-card>a{color:#99441f;font-weight:600;font-size:22px;overflow-wrap:anywhere}.archive-page{padding:48px 64px 100px;min-height:calc(100vh - 210px)}.back-link{display:inline-flex;align-items:center;min-height:44px;margin-bottom:30px}.archive-page h1{margin-bottom:12px}.archive-page p{font-size:21px;margin-bottom:10px}.archive-page .intro{font-size:25px}.records-list{margin-top:60px}.records-list h2{font-size:30px;margin-bottom:34px}.minutes-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 20px;min-height:76px;border-top:1px solid var(--line);font-size:23px}.minutes-row.latest{background:var(--sage);min-height:106px}.record-date{font-size:25px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}.minutes-row>a[download]{min-height:44px;display:flex;align-items:center}
.important-links{padding:34px 28px;background:var(--sage)}.important-links h2{font-size:28px;margin-bottom:18px}.important-links ul{list-style:none;margin:0;padding:0}.important-links li+li{margin-top:12px}.important-links a{display:block;min-height:44px;padding-block:6px;font-size:20px;font-weight:600}.important-links a span{display:block;margin-top:2px;font-size:.82em;font-weight:400;white-space:nowrap}
@media(min-width:1100px){.council-info h2{font-size:34px}.hero-art{mask-image:linear-gradient(to right,transparent,black 18%)}}
@media(max-width:1000px){.hero{padding-left:40px;padding-right:40px}.hero h1{font-size:48px;max-width:500px}.hero-copy p{max-width:430px;font-size:22px}.hero-art{width:72%;right:0;opacity:.7;mask-image:linear-gradient(to right,transparent,black 55%)}.home-content{column-gap:36px;padding:60px 40px 80px;grid-template-columns:1.2fr 1fr}.council-info{font-size:21px}.latest-minutes h2{font-size:27px}.next-meeting{padding:28px 40px}.art-caption{left:40%;right:30px}.contact-card>a{font-size:19px}}
@media(max-width:700px){.review-strip{padding:8px 24px;font-size:12px}.site-header{padding:20px 24px 0}.council-review-brand span{font-size:17px}.hero{padding:40px 24px 290px;min-height:0}.hero h1{font-size:clamp(36px,7vw,48px);margin-bottom:24px}.hero-copy p{font-size:21px;max-width:100%}.hero-art{width:100%;height:270px;top:auto;bottom:28px;opacity:1;mask-image:none;right:0}.hero-art img{object-fit:contain}.art-caption{font-size:10px;left:24px;right:24px;bottom:0;gap:8px;justify-content:space-between}.art-caption span{max-width:65%}.art-caption label{white-space:normal}.pause-art{right:24px;bottom:5px}.next-meeting{padding:24px;gap:20px;align-items:flex-start}.date-tile{width:80px}.date-tile span{font-size:10px}.date-tile strong{font-size:40px}.date-tile b{font-size:13px}.next-meeting h2{font-size:23px;line-height:1.4;margin:6px 0}.next-meeting p{font-size:19px}.next-meeting .eyebrow{font-size:13px}.home-content{display:flex;flex-direction:column;padding:44px 24px 60px;gap:34px}.council-info{font-size:20px}.council-info h2{font-size:26px}.council-info p{margin-bottom:28px}.home-aside{gap:24px}.latest-minutes,.contact-card{padding:26px 22px}.latest-minutes h2{font-size:26px}.latest-minutes p{font-size:22px}.contact-card h2{font-size:24px}.contact-card>a{font-size:19px}.site-footer{padding:24px;flex-direction:column;gap:8px;font-size:14px}.site-footer span:first-child{font-size:16px}.archive-page{padding:34px 24px 60px}.archive-page p{font-size:18px}.archive-page .intro{font-size:21px}.records-list{margin-top:40px}.records-list h2{font-size:24px;margin-bottom:24px}.minutes-row{font-size:18px;padding:14px 12px;gap:8px;flex-wrap:wrap}.record-date{font-size:20px}.minutes-row.latest{min-height:90px}}
@media(max-width:700px){.important-links{padding:26px 22px}.important-links h2{font-size:24px}.important-links a{font-size:18px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.kirk{animation:none;opacity:0}.pause-art,.art-caption label{display:none}}

/* Fade through paper, with a discrete caption switch and one shared pause. */
.tower { animation: tower-out-in 28s ease-in-out infinite; }
.kirk { animation: kirk-in-out 28s ease-in-out infinite; }
.place-captions { display: grid; }
.place-captions > span { grid-area: 1 / 1; }
.place-tower { animation: tower-label 28s steps(1, end) infinite; }
.place-kirk { opacity: 0; animation: kirk-label 28s steps(1, end) infinite; }
.pause-art:checked ~ .hero-art img,
.pause-art:checked ~ .art-caption .place-captions > span { animation-play-state: paused; }
@keyframes tower-out-in {
  0%, 38%, 100% { opacity: 1; }
  46%, 96% { opacity: 0; }
}
@keyframes kirk-in-out {
  0%, 48%, 96%, 100% { opacity: 0; }
  56%, 88% { opacity: 1; }
}
@keyframes tower-label { 0%, 96%, 100% { opacity: 1; } 46% { opacity: 0; } }
@keyframes kirk-label { 0%, 96%, 100% { opacity: 0; } 46% { opacity: 1; } }
@media (max-width: 700px) {
  .art-caption .place-captions > span { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .tower, .place-tower { animation: none; opacity: 1; }
  .kirk, .place-kirk { animation: none; opacity: 0; }
}

/* Compact three-line wordmark; both lower lines share the same width. */
.council-review-brand { width: max-content; font-size: clamp(23px, 2.37vw, 34px); }
.council-review-brand strong { font-size: inherit; }
.council-review-brand strong > span { display: block; font: inherit; text-transform: none; }
.council-review-brand .brand-subtitle { display: flex; justify-content: space-between; font-size: .56em; line-height: 1.5; }
.council-review-brand .brand-subtitle > span { font: inherit; text-transform: none; }
/* Figma calendar: separate weekday, numeral and month rows. */
.next-meeting { display: grid; grid-template-columns: 148px minmax(0, 1fr); column-gap: 32px; row-gap: 10px; padding: 30px 78px; }
.meeting-details { display: contents; }
.next-meeting .eyebrow { grid-column: 2; grid-row: 1; align-self: start; font-size: 14px; }
.next-meeting h2 { grid-column: 2; grid-row: 2; margin: 0; font-size: clamp(24px, 2.36vw, 34px); line-height: 1.25; }
.date-short { display: none; }
.next-meeting .date-tile { grid-column: 1; grid-row: 1 / 4; align-self: center; width: 148px; aspect-ratio: 515 / 423; background: #ef9c77; display: grid; grid-template-rows: 25% 51% 24%; }
.date-tile span { background: #bb6037; padding: 0; display: grid; place-items: center; font-size: 19px; line-height: 1; }
/* Balance the visible numerals, accounting for Libre Baskerville’s baseline space. */
.date-tile strong { display: grid; place-items: center; padding-top: .12em; min-height: 0; font-size: 64.8px; line-height: .9; }
.date-tile b { padding: 2px 0 0; min-height: 0; font-size: 20px; line-height: 1; display: grid; place-items: center; }
.meeting-details > p:last-child { grid-column: 2; grid-row: 3; font-size: 22px; }
.officer { display: inline-block; white-space: nowrap; margin-right: .6em; }
@media (max-width: 700px) {
  .next-meeting { display: grid; grid-template-columns: clamp(80px, 25.6vw, 100px) minmax(0, 1fr); column-gap: clamp(12px, 4vw, 18px); padding: 24px; align-items: start; }
  .next-meeting .date-tile { display: grid; grid-column: 1; grid-row: 1; align-self: start; width: 100%; }
  .date-tile span { font-size: clamp(10px, 3vw, 12px); }
  .date-tile strong { font-size: clamp(37.8px, 11.7vw, 45.9px); }
  .date-tile b { font-size: clamp(12px, 3.6vw, 14px); }
  /* Match the calendar rows so both columns share the top and bottom guides. */
  .meeting-details { display: grid; grid-template-rows: 25% 51% 24%; grid-column: 2; grid-row: 1; min-width: 0; align-self: stretch; align-items: center; }
  .next-meeting .eyebrow { grid-column: 1; align-self: center; margin: 0; font-size: clamp(11px, 3.3vw, 13px); line-height: 1; text-align: left; }
  .next-meeting h2 { grid-column: 1; margin: 0; padding: 0; background: none; color: var(--ink); font: 700 clamp(18px, 5.4vw, 22px)/1.25 var(--serif); text-align: left; }
  .date-long { display: none; }
  .date-short { display: block; white-space: nowrap; }
  .meeting-details > p:last-child { grid-column: 1; margin: 0; padding: 0; background: none; color: var(--ink); font-size: clamp(13px, 3.8vw, 16px); font-weight: 400; line-height: 1; text-align: left; white-space: nowrap; }
  #members { font-size: clamp(16px, 4.5vw, 20px); }
  .officer { display: block; margin-right: 0; font-size: inherit; }
}
.council-review-brand strong > span:first-child { font-size: .95em; }
.council-review-brand .brand-subtitle { font-size: .74em; }
/* Selected transparent church-and-tower logo, shared across council pages. */
.council-review-brand { width: 120px; max-width: 100%; }
.brand-art { display: block; width: 100%; }
.brand-art img { display: block; width: 100%; height: auto; }
/* Mobile: compact masthead, readable copy above a subdued landscape. */
@media (max-width: 700px) {
  .home .site-header { position: relative; padding: 12px 24px 0; }
  .home .hero { display: flex; flex-direction: column; padding: 26px 24px 24px; min-height: 0; }
  .home .hero-art { position: absolute; inset: 0; width: 100%; height: auto; opacity: .5; pointer-events: none; }
  .home .hero-art img { object-fit: cover; object-position: 65% center; }
  .home .hero-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, var(--paper), #f6f2ea88 65%, var(--paper)); }
  .home .hero-copy { order: 0; }
  .home .hero h1 { font-size: 32px; line-height: 1.3; margin-bottom: 20px; }
  .home .hero-copy p { font-size: 20px; }
  .home .art-caption { position: relative; inset: auto; order: 1; margin-top: 44px; z-index: 1; }
}

@media (min-width: 701px) {
  .officer:not(:last-child)::after { content: ","; }
}

/* Constitution: a continuous reading page in the existing council identity. */
.constitution-page { width: 100%; max-width: 920px; padding: 40px 48px 80px; margin-inline: auto; }
.constitution-page .back-link { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 24px; }
.constitution-intro { font-size: 23px; max-width: 60ch; }
.constitution-status { background: var(--sage); padding: 24px 28px; margin-block: 32px; }
.constitution-status h2 { font: 600 20px/1.4 var(--sans); margin-bottom: 8px; }
.constitution-status p { margin: 0; }
.constitution-contents { border-block: 1px solid var(--line); margin-bottom: 48px; }
.constitution-contents summary { padding-block: 18px; cursor: pointer; font-weight: 600; }
.constitution-contents ol { columns: 2; column-gap: 40px; margin: 0 0 24px; padding-left: 28px; }
.constitution-contents li { break-inside: avoid; padding: 4px 0 4px 4px; }
.constitution-contents a { display: inline-block; padding-block: 5px; }
.constitution-text { overflow-wrap: anywhere; max-width: 72ch; font-size: 19px; line-height: 1.65; }
.constitution-text section { margin-bottom: 44px; scroll-margin-top: 24px; }
.constitution-text h2 { font-size: 26px; line-height: 1.4; padding-top: 24px; border-top: 1px solid var(--line); margin-bottom: 18px; }
.constitution-text section:first-child h2 { border: 0; padding-top: 0; }
.constitution-text p { margin-bottom: 20px; }
.constitution-subclauses { list-style: none; padding-left: 24px; margin: 0 0 24px; }
.constitution-subclauses li { margin-bottom: 16px; }
.clause-number { font-weight: 600; margin-right: .35em; }
.constitution-note { font-size: 18px; background: var(--sage); padding: 16px 20px; }
.adoption-template { margin: 24px 0; padding-left: 20px; border-left: 1px solid var(--line); }
.constitution-source { border-top: 1px solid var(--line); padding-top: 28px; font-size: 17px; }
.constitution-source h2 { font-size: 24px; margin-bottom: 16px; }
.constitution-source p { margin-bottom: 18px; }
.constitution-page ::selection { color: var(--paper); background: var(--ink); }
@media (max-width: 700px) {
  .constitution-page { padding: 30px 24px 60px; }
  .constitution-intro { font-size: 21px; }
  .constitution-status { padding: 20px; }
  .constitution-contents ol { columns: 1; }
  .constitution-text { font-size: 18px; }
  .constitution-text h2 { font-size: 23px; }
  .constitution-subclauses { padding-left: 16px; }
}
@media print {
  .constitution-page { max-width: none; padding: 0; }
  .inner:has(.constitution-page) .review-strip,
  .inner:has(.constitution-page) .site-header,
  .inner:has(.constitution-page) .site-footer,
  .constitution-page .back-link,
  .constitution-contents { display: none; }
  .constitution-text h2 { break-after: avoid; }
  .constitution-text p, .constitution-text li { orphans: 3; widows: 3; }
}
