html,body { min-height:100%; }
.announcements-app { margin:0; background:var(--surface); color:var(--headline); }
p { margin:0; }
.screen { width:100%; min-height:100vh; min-height:100dvh; padding:3.5vh 4vw 2.5vh; display:flex; flex-direction:column; outline:none; }
.screen:fullscreen { overflow:auto; background:var(--surface); }
.screen-top { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-bottom:2.8vh; border-bottom:2px solid var(--red); flex-shrink:0; }
.screen-top h1 { font-size:clamp(26px,2.6vw,56px); display:flex; align-items:center; gap:1.5vw; }
.screen-brand { display:flex; align-items:center; gap:1.1vw; line-height:1; }
.screen-brand img { display:block; width:clamp(210px,16vw,350px); height:auto; }
.announcement-list { display:grid; grid-template-rows:repeat(var(--item-count,4),minmax(0,1fr)); gap:1.4vh; flex:1; }
.announcement { display:grid; grid-template-columns:20% 1fr; column-gap:3vw; align-items:center; padding:1.9vh 0; border-bottom:1px solid var(--hairline); }
.announcement-when { white-space:pre-line; font-family:var(--font-mono); color:var(--headline); font-size:clamp(22px,1.8vw,40px); letter-spacing:-.04em; line-height:1.35; }
.announcement-copy { min-width:0; }
.announcement-title { font-family:var(--font-display); font-weight:400; text-transform:uppercase; letter-spacing:-.015em; font-size:clamp(25px,2.2vw,48px); line-height:1.07; margin:0 0 .75vh; }
.announcement-body { font-size:clamp(18px,1.4vw,31px); line-height:1.3; color:var(--body-dark); max-width:100%; }
.screen-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:2vh; flex-shrink:0; font-family:var(--font-mono); font-size:clamp(13px,1vw,22px); letter-spacing:.06em; line-height:1.4; }
#screen-mode { color:var(--label-dark); }
.welcome { flex:1; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:3vh; padding:8vh 0; }
.welcome p { font-size:clamp(22px,2vw,40px); }
[hidden] { display:none !important; }
.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; }
@media (min-width:900px) and (min-aspect-ratio:3/2) {
  .screen { height:100vh; height:100dvh; }
  .announcement-list { min-height:0; }
  .screen[data-many="true"] { height:auto; }
  .screen[data-many="true"] .announcement-list { grid-template-rows:none; }
  .screen[data-many="true"] .announcement { min-height:18vh; }
}
@media (max-width:899px), (max-aspect-ratio:3/2) {
  .screen { padding:24px; }
  .screen-top { align-items:flex-start; gap:18px; flex-direction:column; padding-bottom:24px; }
  .screen-top h1 { font-size:32px; gap:14px; }
  .screen-brand { gap:12px; }
  .screen-brand img { width:210px; }
  .announcement-list { grid-template-rows:none; }
  .announcement { display:block; padding:25px 0; }
  .announcement-when { font-size:19px; white-space:normal; margin-bottom:12px; }
  .announcement-title { font-size:28px; margin-bottom:12px; }
  .announcement-body { font-size:19px; }
  .screen-bottom { font-size:12px; padding-top:20px; }
  #screen-mode { display:none; }
}
