/* ALV-29 · Rotating fellowship announcements: a single reading surface. */
#announcements.announcement-bible-section { background: #101b16; color: #f4efe2; padding-block: clamp(4.5rem, 9vw, 8rem); }
#announcements.announcement-bible-section::before { display: none; }
#announcements .announcement-bible-wrap { width: min(100%, 83rem); }
#announcements .announcement-heading { text-align: left; margin-bottom: clamp(2rem, 4vw, 3rem); max-width: 52rem; }
#announcements .announcement-eyebrow { display: block; color: #e4c66a; text-transform: uppercase; font: 700 .75rem/1.4 'Lato', sans-serif; letter-spacing: .2em; margin-bottom: 1rem; }
#announcements .announcement-heading h2 { color: #f4efe2; font: 400 clamp(2.65rem, 5vw, 5rem)/1.08 'Playfair Display', Georgia, serif; letter-spacing: -.035em; margin: 0 0 1rem; }
#announcements .announcement-intro { color: #c4d0c6; font: 400 1.05rem/1.65 'Lato', sans-serif; margin: 0; }
#announcements .announcement-bible-stage { min-height: 0; padding: 0; }
.announcement-carousel { position: relative; perspective: 1400px; }
.announcement-carousel-stage { position: relative; outline: none; transform-style: preserve-3d; }
.announcement-carousel-stage:focus-visible { outline: 3px solid #e4c66a; outline-offset: 6px; }
.announcement-entry { display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); min-height: 31rem; background: #f8f4e9; color: #20342a; border: 1px solid #d9d6c9; box-shadow: 0 30px 80px rgba(0,0,0,.23), 10px 10px 0 rgba(228,198,106,.13); transform-style: preserve-3d; backface-visibility: hidden; }
.announcement-art { position: relative; min-width: 0; min-height: 31rem; overflow: hidden; background: #e2dccd; border-right: 1px solid #d7d2c6; display: grid; place-items: center; }
.announcement-art img { display: block; width: 100%; height: 100%; max-height: 38rem; object-fit: contain; }
.announcement-art-fallback { background: radial-gradient(circle at 75% 15%, rgba(229,194,92,.27), transparent 45%), linear-gradient(145deg,#113f2a,#10271e 68%,#071810); padding: clamp(2rem, 5vw, 4rem); color: #f8f2e3; align-content: center; justify-items: start; gap: 1.5rem; }
.announcement-art-fallback::before { content: '✦'; color: #dec478; font: 3rem/1 Georgia, serif; }
.announcement-art-kicker { color: #e4cb87; font: 700 .7rem/1.5 'Lato',sans-serif; letter-spacing: .19em; text-transform: uppercase; }
.announcement-art-fallback strong { font: 400 clamp(2rem, 3.2vw, 3.6rem)/1.14 'Playfair Display',Georgia,serif; overflow-wrap: anywhere; }
.announcement-entry-copy { padding: clamp(1.7rem, 4vw, 4.4rem); display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.announcement-meta { display: flex; flex-wrap: wrap; gap: .55rem 1rem; align-items: center; color: #405d4d; font: 700 .74rem/1.5 'Lato',sans-serif; text-transform: uppercase; letter-spacing: .09em; }
.announcement-date { color: #75501c; }
.announcement-category { padding-left: 1rem; border-left: 1px solid #adb8a9; }
.announcement-entry h3 { color: #193625; font: 400 clamp(2rem, 3vw, 3.25rem)/1.13 'Playfair Display',Georgia,serif; margin: 1.35rem 0 1rem; overflow-wrap: anywhere; }
.announcement-description { color: #314538; font: 400 1rem/1.67 'Lato',sans-serif; max-height: 13rem; overflow: auto; overscroll-behavior: contain; padding-right: .5rem; }
.announcement-description p { margin: 0 0 .85rem; }
.announcement-description p:last-child { margin: 0; }
.announcement-reminder { align-self: flex-start; margin-top: 1.65rem; color: #fff; background: #17492f; border: 1px solid #17492f; padding: .85rem 1.15rem; font: 700 .79rem/1.3 'Lato',sans-serif; letter-spacing: .03em; cursor: pointer; min-height: 44px; }
.announcement-reminder:hover { background: #0c2b1b; }
.announcement-carousel-controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.65rem; color: #e8dfca; }
.announcement-arrow { background: transparent; border: 1px solid #a2b4a7; color: inherit; padding: .75rem 1.15rem; min-height: 44px; cursor: pointer; font: 700 .8rem/1.3 'Lato',sans-serif; }
.announcement-arrow:hover { background: #e4c66a; border-color: #e4c66a; color: #172e22; }
.announcement-position { font: 700 .85rem/1.4 'Lato',sans-serif; letter-spacing: .16em; font-variant-numeric: tabular-nums; }
.announcement-arrow:focus-visible,.announcement-reminder:focus-visible,.announcement-reminder-dialog button:focus-visible { outline: 3px solid #b88923; outline-offset: 3px; }
.announcement-exit-next { animation: announcement-away-next .22s ease-in both; }
.announcement-exit-prev { animation: announcement-away-prev .22s ease-in both; }
.announcement-enter-next { animation: announcement-in-next .32s ease-out both; }
.announcement-enter-prev { animation: announcement-in-prev .32s ease-out both; }
@keyframes announcement-away-next { to { opacity: 0; transform: rotateY(-38deg) translateX(-6%); } }
@keyframes announcement-away-prev { to { opacity: 0; transform: rotateY(38deg) translateX(6%); } }
@keyframes announcement-in-next { from { opacity: 0; transform: rotateY(38deg) translateX(6%); } }
@keyframes announcement-in-prev { from { opacity: 0; transform: rotateY(-38deg) translateX(-6%); } }
.announcement-empty { padding: 2.5rem; background: #f8f4e9; color: #20342a; font: 1.1rem/1.6 'Lato',sans-serif; }
.announcement-reminder-dialog { max-width: min(92vw, 32rem); width: 100%; padding: 2rem; border: 1px solid #cfbf9b; background: #fffdf8; color: #20342a; box-shadow: 0 30px 90px #0008; }
.announcement-reminder-dialog::backdrop { background: rgba(3,18,10,.72); }
.announcement-reminder-dialog h3 { margin: 0 0 1rem; font: 400 2rem/1.15 'Playfair Display',Georgia,serif; }
.announcement-reminder-dialog p { line-height: 1.6; margin: 0 0 1.25rem; }
.announcement-reminder-dialog label { display: grid; gap: .5rem; font-weight: 700; }
.announcement-reminder-dialog input { width: 100%; background: #fff; color: #172e22; border: 1px solid #6d8776; padding: .7rem; min-height: 44px; color-scheme: light; }
.announcement-dialog-actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: flex-end; margin-top: 1.5rem; }
.announcement-dialog-actions button { padding: .75rem 1rem; min-height: 44px; cursor: pointer; }
.announcement-dialog-save { color: white; background: #17492f; border: 1px solid #17492f; }
.announcement-dialog-cancel { color: #193625; background: transparent; border: 1px solid #6d8776; }
html.light-mode #announcements.announcement-bible-section { background: #eee8d9; color: #20342a; }
html.light-mode #announcements .announcement-heading h2 { color: #20342a; }
html.light-mode #announcements .announcement-eyebrow { color: #76561d; }
html.light-mode #announcements .announcement-intro { color: #435a4a; }
html.light-mode .announcement-carousel-controls { color: #17492f; }
html.light-mode .announcement-arrow { border-color: #466653; }
@media (max-width: 767px) {
  .announcement-entry { grid-template-columns: 1fr; min-height: 0; }
  .announcement-art { min-height: 15rem; height: 15rem; border-right: 0; border-bottom: 1px solid #d7d2c6; }
  .announcement-art-fallback { padding: 1.5rem; gap: .65rem; }
  .announcement-art-fallback::before { font-size: 1.65rem; }
  .announcement-art-fallback strong { font-size: 1.8rem; }
  .announcement-entry-copy { padding: 1.4rem; }
  .announcement-entry h3 { font-size: 1.8rem; margin: .8rem 0; }
  .announcement-description { max-height: 12rem; }
  .announcement-carousel-controls { margin-top: 1.1rem; }
  .announcement-arrow { padding: .75rem .65rem; }
  .announcement-carousel-stage { touch-action: pan-y; }
}
@media (prefers-reduced-motion: reduce) {
  .announcement-entry { animation: none !important; }
}
