/* ————————————————————————————————————————————————————————————————
   CAS Audit Center — redesign v2 design system
   Simpler, cleaner presentation: one accent, generous whitespace,
   hairline rules, fluid type. Layers on top of legacy pages; new
   pages should rely on this file alone.
   ———————————————————————————————————————————————————————————————— */

:root {
  --cas-bg: #faf9f7;
  --cas-surface: #ffffff;
  --cas-ink: #1c1b18;
  --cas-body: #45423c;
  --cas-muted: #767268;
  --cas-faint: #9b968a;
  --cas-line: #e8e5de;
  --cas-line-strong: #d6d2c8;
  --cas-orange: #bf5700;
  --cas-orange-deep: #96450a;
  --cas-orange-tint: rgba(191, 87, 0, 0.08);
  --cas-charcoal: #333f48;
  --cas-serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --cas-script: "Caveat", "Bradley Hand", "Segoe Script", cursive;
  --cas-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --cas-radius: 18px;
  --cas-ease: cubic-bezier(0.22, 0.61, 0.2, 1);
}

.cas-v2 {
  margin: 0;
  background: var(--cas-bg);
  color: var(--cas-ink);
  font-family: var(--cas-sans);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.cas-v2 ::selection { background: var(--cas-orange); color: #fff; }
.cas-v2 .hidden { display: none !important; }

.cas-wrap {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 clamp(22px, 5vw, 60px);
}

/* small letterspaced wayfinding label */
.cas-mk {
  font-family: var(--cas-sans);
  font-size: 0.7rem;
  font-weight: 560;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cas-muted);
}
.cas-mk .tick { color: var(--cas-orange); }

/* ————— logo (official asset: img/cas-logo.png) ————— */
.cas-logo { display: inline-flex; text-decoration: none; }
.cas-logo-img { display: block; height: auto; }
.cas-logo-img--nav { height: 44px; width: auto; }
.cas-logo-img--hero { width: clamp(280px, 46vw, 540px); margin: 0 auto; }
.cas-logo-img--footer { height: 78px; width: auto; }

/* ————— header ————— */
.cas-nav {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(250, 249, 247, 0.78);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  backdrop-filter: blur(16px) saturate(1.4);
  border-bottom: 1px solid var(--cas-line);
}
.cas-nav__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: 68px;
}
.cas-nav__links { display: flex; gap: 26px; align-items: center; }
.cas-nav__links a {
  font-size: 0.86rem;
  font-weight: 480;
  color: var(--cas-body);
  text-decoration: none;
  transition: color 0.2s;
  white-space: nowrap;
}
.cas-nav__links a:hover { color: var(--cas-orange); }
.cas-nav__auth { display: flex; align-items: center; gap: 12px; }

/* buttons (also applied to auth-state.js injected links) */
.cas-btn,
.cas-nav__auth a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  font-family: var(--cas-sans);
  font-weight: 520;
  font-size: 0.88rem;
  padding: 10px 20px;
  border-radius: 999px;
  transition: transform 0.25s var(--cas-ease), box-shadow 0.25s var(--cas-ease),
    background 0.2s, color 0.2s;
  cursor: pointer;
}
.cas-btn--solid,
.cas-nav__auth a:last-child {
  background: var(--cas-orange);
  color: #fff;
  box-shadow: 0 1px 2px rgba(28, 27, 24, 0.16);
}
.cas-btn--solid:hover,
.cas-nav__auth a:last-child:hover {
  background: var(--cas-orange-deep);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(150, 69, 10, 0.28);
}
.cas-btn--ghost,
.cas-nav__auth a:not(:last-child) {
  color: var(--cas-ink);
  box-shadow: inset 0 0 0 1px var(--cas-line-strong);
  background: transparent;
}
.cas-btn--ghost:hover,
.cas-nav__auth a:not(:last-child):hover {
  background: var(--cas-surface);
  transform: translateY(-1px);
}
.cas-btn--lg { padding: 13px 26px; font-size: 0.95rem; }

/* keep auth-state.js dropdown/bell usable inside the new nav */
.cas-nav__auth button { border-radius: 999px; }
.cas-nav__auth .user-dropdown a,
.cas-nav__auth .user-dropdown button {
  border-radius: 8px;
  box-shadow: none;
  background: none;
  padding: 8px 12px;
}

/* mobile */
.cas-nav__menu-btn {
  display: none;
  appearance: none;
  background: none;
  border: 0;
  padding: 10px;
  margin: -10px;
  cursor: pointer;
  color: var(--cas-ink);
}
.cas-mobile-menu {
  border-top: 1px solid var(--cas-line);
  background: var(--cas-bg);
  padding: 18px clamp(22px, 5vw, 60px) 26px;
}
.cas-mobile-menu nav { display: grid; gap: 4px; }
.cas-mobile-menu a {
  font-size: 1.15rem;
  font-weight: 520;
  color: var(--cas-ink);
  text-decoration: none;
  padding: 10px 0;
  border-bottom: 1px solid var(--cas-line);
}
.cas-mobile-menu a:hover { color: var(--cas-orange); }
.cas-mobile-menu .mobile-auth-buttons {
  display: flex;
  gap: 12px;
  margin-top: 18px;
  flex-wrap: wrap;
}
.cas-mobile-menu .mobile-auth-buttons a {
  display: inline-flex;
  padding: 10px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 520;
  font-size: 0.9rem;
  border: none;
}
.cas-mobile-menu .mobile-auth-buttons a:last-child { background: var(--cas-orange); color: #fff; }
.cas-mobile-menu .mobile-auth-buttons a:not(:last-child) { box-shadow: inset 0 0 0 1px var(--cas-line-strong); color: var(--cas-ink); }

@media (max-width: 900px) {
  .cas-nav__links { display: none; }
  .cas-nav__auth { display: none; }
  .cas-nav__menu-btn { display: block; }
}

/* ————— hero ————— */
.cas-hero {
  padding: clamp(84px, 13vw, 168px) 0 clamp(64px, 9vw, 120px);
  text-align: center;
}
.cas-hero .cas-mk { justify-content: center; }
.cas-hero__statement {
  margin: 2.4rem auto 0;
  max-width: 30ch;
  font-size: clamp(1.35rem, 3.4vw, 2.05rem);
  font-weight: 470;
  letter-spacing: -0.022em;
  line-height: 1.3;
  color: var(--cas-body);
}
.cas-hero__statement .dim { color: var(--cas-faint); }
.cas-hero__cta {
  display: flex;
  gap: 12px;
  margin-top: 2.4rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ————— sections ————— */
.cas-band { padding: clamp(72px, 10vw, 130px) 0; }
.cas-band + .cas-band { padding-top: 0; }
.cas-marker {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--cas-line);
  margin-bottom: clamp(30px, 4.5vw, 52px);
}
.cas-v2 h2.cas-h2 {
  margin: 0;
  font-size: clamp(1.8rem, 4vw, 2.7rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--cas-ink);
}
.cas-v2 .cas-note {
  margin: 1rem 0 0;
  color: var(--cas-muted);
  font-size: 0.95rem;
  max-width: 44ch;
  line-height: 1.6;
}

/* offerings — one card per destination, no duplicate listings */
.cas-offerings {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 860px) { .cas-offerings { grid-template-columns: 1fr; } }
.cas-offer {
  display: block;
  text-decoration: none;
  color: inherit;
  background: var(--cas-surface);
  border: 1px solid var(--cas-line);
  border-radius: var(--cas-radius);
  padding: clamp(24px, 3vw, 34px);
  transition: transform 0.3s var(--cas-ease), box-shadow 0.3s var(--cas-ease),
    border-color 0.2s;
}
.cas-offer:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(28, 27, 24, 0.07);
  border-color: var(--cas-line-strong);
}
.cas-offer h3 {
  margin: 1.4rem 0 0.5rem;
  font-size: 1.22rem;
  font-weight: 600;
  letter-spacing: -0.015em;
}
.cas-offer p { margin: 0; color: var(--cas-muted); font-size: 0.93rem; line-height: 1.6; }
.cas-offer .go {
  display: inline-block;
  margin-top: 1.2rem;
  font-size: 0.85rem;
  font-weight: 540;
  color: var(--cas-orange);
}
.cas-offer .cas-mk { color: var(--cas-faint); }

/* featured events (content-loader renders into this container) */
#featured-events-container.cas-featured {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
#featured-events-container.cas-featured > * {
  background: var(--cas-surface);
  border: 1px solid var(--cas-line);
  border-radius: var(--cas-radius);
  overflow: hidden;
  box-shadow: none !important;
}

/* ————— footer ————— */
.cas-footer {
  border-top: 1px solid var(--cas-line);
  background: var(--cas-surface);
  margin-top: clamp(60px, 8vw, 110px);
}
.cas-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr) minmax(0, 1.2fr);
  gap: clamp(28px, 5vw, 64px);
  padding: clamp(48px, 6vw, 76px) 0;
}
@media (max-width: 860px) { .cas-footer__grid { grid-template-columns: 1fr; } }
.cas-footer h4, .cas-footer h3 {
  margin: 0 0 14px;
  font-size: 0.7rem;
  font-weight: 560;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cas-muted);
}
.cas-footer p { margin: 0 0 8px; color: var(--cas-body); font-size: 0.92rem; }
.cas-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cas-footer ul a {
  color: var(--cas-body);
  text-decoration: none;
  font-size: 0.92rem;
  transition: color 0.2s;
}
.cas-footer ul a:hover { color: var(--cas-orange); }
.cas-footer .footer-email { cursor: pointer; color: var(--cas-body); }
.cas-footer .footer-email:hover { color: var(--cas-orange); }
.cas-footer textarea {
  width: 100%;
  background: var(--cas-bg);
  border: 1px solid var(--cas-line-strong);
  border-radius: 12px;
  padding: 10px 12px;
  font-family: var(--cas-sans);
  font-size: 0.92rem;
  color: var(--cas-ink);
  resize: vertical;
}
.cas-footer textarea:focus { outline: 2px solid var(--cas-orange); outline-offset: 1px; }
.cas-footer form button {
  margin-top: 10px;
  background: var(--cas-orange);
  color: #fff;
  border: 0;
  border-radius: 999px;
  padding: 9px 20px;
  font-family: var(--cas-sans);
  font-weight: 520;
  font-size: 0.88rem;
  cursor: pointer;
}
.cas-footer form button:hover { background: var(--cas-orange-deep); }
.cas-footer__base {
  border-top: 1px solid var(--cas-line);
  padding: 20px 0 26px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.cas-footer__base p { margin: 0; color: var(--cas-faint); font-size: 0.8rem; }
.cas-footer__base a { color: var(--cas-muted); text-decoration: none; font-size: 0.8rem; }
.cas-footer__base a:hover { color: var(--cas-orange); }
#contact-form-success { color: #1a7f4e !important; font-size: 0.85rem; margin-top: 8px; }

/* ————— homepage index (five destinations, drawers for Library/Initiative) ————— */
.cas-index { display: block; border-top: 1px solid var(--cas-line); }
.cas-index__row {
  display: flex;
  align-items: baseline;
  gap: clamp(16px, 3vw, 34px);
  padding: clamp(18px, 3vw, 28px) 4px;
  border-bottom: 1px solid var(--cas-line);
  text-decoration: none;
  color: var(--cas-ink);
  cursor: pointer;
  transition: background 0.2s;
}
.cas-index__row:hover { background: var(--cas-orange-tint); }
.cas-index__label {
  flex: 1;
  font-size: clamp(1.35rem, 3.4vw, 2.1rem);
  font-weight: 540;
  letter-spacing: -0.025em;
  line-height: 1.15;
}
.cas-index__row:hover .cas-index__label { color: var(--cas-orange); }
.cas-index__glyph { font-size: 1.3rem; color: var(--cas-faint); transition: transform 0.3s var(--cas-ease), color 0.2s; }
.cas-index__row:hover .cas-index__glyph { color: var(--cas-orange); transform: translateX(4px); }

/* ————— experiment: centered Tower backdrop under the content ————— */
.cas-tower-backdrop {
  position: absolute;
  top: 78px;
  left: 50%;
  /* The crown's centerline sits at 63.66% of the artwork's width, so the
     shift centers the Tower itself, not the sheet crop. The scroll handler
     reuses this same X offset when it adds the parallax Y. */
  transform: translateX(-63.66%);
  width: clamp(380px, 42vw, 600px);
  z-index: 0;
  opacity: 0.55;
  will-change: transform;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 24%, rgba(0, 0, 0, 0.42) 50%, rgba(0, 0, 0, 0.16) 74%, transparent 98%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 24%, rgba(0, 0, 0, 0.42) 50%, rgba(0, 0, 0, 0.16) 74%, transparent 98%);
}
.cas-tower-backdrop img { width: 100%; height: auto; display: block; }
.cas-tower-backdrop svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.cas-tower-backdrop line { stroke: currentColor; }
.cas-tower-backdrop circle, .cas-tower-backdrop polygon { fill: currentColor; }
/* Match the clock's ink weight to the ghosted drawing beneath it. */
#tower-clock-face { opacity: 0.62; }
.cas-hero, .cas-band, .cas-footer { position: relative; z-index: 1; }
@media (max-width: 768px) {
  .cas-tower-backdrop { display: none; }
}

/* ————— homepage composition: hero + index left, Tower plate right ————— */
/* The hero is left-justified and flows into the index; the Cret elevation
   owns the right column from the top of the page and is sticky within it,
   staying with the reader through the whole scroll. Separate columns mean
   text and artwork can never overlap. */
.cas-home-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(240px, 23vw, 330px);
  gap: clamp(48px, 6vw, 104px);
  align-items: start;
}
.cas-home-main { min-width: 0; }
.cas-home-main .cas-band { padding-top: clamp(40px, 5vw, 72px); }
.cas-hero--left { text-align: left; }
.cas-hero--left .cas-logo-img--hero { margin: 0; }
.cas-hero--left .cas-hero__statement { margin-left: 0; margin-right: 0; }
.cas-tower-plate {
  /* Aligned with the hero's top padding so the drawing starts at the top. */
  margin: clamp(84px, 13vw, 168px) 0 0;
  position: sticky;
  top: clamp(76px, 10vh, 116px);
  opacity: 0;
  animation: cas-tower-in 1.6s var(--cas-ease) 0.25s forwards;
}
.cas-tower-plate img { width: 100%; height: auto; display: block; }
/* The plate is a quiet interactive: the drawn clock keeps Austin time, and
   pressing the Tower lights its linework burnt orange. */
.cas-tower-btn {
  display: block;
  position: relative;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.cas-tower-btn:focus-visible {
  outline: 2px solid var(--cas-orange);
  outline-offset: 6px;
  border-radius: 8px;
}
.cas-tower-glow {
  position: absolute;
  inset: 0;
  background: var(--cas-orange);
  -webkit-mask-image: url("../img/tower-sketch.png");
  mask-image: url("../img/tower-sketch.png");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  opacity: 0;
  transition: opacity 1.1s var(--cas-ease);
  pointer-events: none;
}
.cas-tower-btn.is-lit .cas-tower-glow { opacity: 0.8; }
#tower-clock {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
#tower-clock line { stroke: currentColor; transition: stroke 1.1s var(--cas-ease); }
#tower-clock circle { fill: currentColor; transition: fill 1.1s var(--cas-ease); }
.cas-tower-btn.is-lit #tower-clock line { stroke: var(--cas-orange); }
.cas-tower-btn.is-lit #tower-clock circle { fill: var(--cas-orange); }
.cas-plate-hint {
  display: block;
  margin-top: 7px;
  font-size: 0.58rem;
  letter-spacing: 0.12em;
  color: var(--cas-line-strong);
}
/* Centered plate for interior pages (e.g. Bevo on the Initiative page). */
.cas-plate { margin: clamp(36px, 5vw, 60px) auto 0; max-width: 420px; }
.cas-plate img { width: 100%; height: auto; display: block; }
.cas-plate figcaption {
  margin-top: 16px;
  text-align: center;
  font-size: 0.66rem;
  font-weight: 560;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cas-faint);
}
.cas-tower-plate figcaption {
  margin-top: 16px;
  text-align: center;
  font-size: 0.66rem;
  font-weight: 560;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cas-faint);
}
@keyframes cas-tower-in {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 0.92; transform: none; }
}
@media (max-width: 1100px) {
  .cas-home-split { grid-template-columns: minmax(0, 1fr); }
  .cas-tower-plate { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .cas-tower-plate { animation: none; opacity: 0.92; }
}

/* Landing-page arrow inside a drawer's header row, beside the + toggle. */
.cas-index__go {
  font-size: 1.3rem;
  color: var(--cas-faint);
  text-decoration: none;
  padding: 0 10px;
  transition: transform 0.3s var(--cas-ease), color 0.2s;
}
.cas-index__go:hover { color: var(--cas-orange); transform: translateX(4px); }

.cas-index__drawer summary { list-style: none; }
.cas-index__drawer summary::-webkit-details-marker { display: none; }
.cas-index__drawer .cas-index__glyph--toggle { transition: transform 0.3s var(--cas-ease); }
.cas-index__drawer:hover .cas-index__glyph--toggle { transform: none; }
.cas-index__drawer[open] .cas-index__glyph--toggle { transform: rotate(45deg); color: var(--cas-orange); }
.cas-index__panel {
  border-bottom: 1px solid var(--cas-line);
  padding: 6px 4px 22px calc(clamp(16px, 3vw, 34px) + 1.6em);
  display: grid;
  gap: 2px;
}
.cas-index__sub {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 0;
  font-size: 1.02rem;
  font-weight: 480;
  color: var(--cas-body);
  text-decoration: none;
}
a.cas-index__sub:hover { color: var(--cas-orange); }
.cas-index__sub--soon { color: var(--cas-faint); }
.cas-soon {
  font-size: 0.66rem;
  font-weight: 560;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--cas-faint);
  border: 1px solid var(--cas-line-strong);
  border-radius: 999px;
  padding: 3px 10px;
  white-space: nowrap;
}

/* ————— category landing pages (library.html, initiative.html) ————— */
.cas-landing__entry .cas-index__row { border-bottom: none; }
.cas-landing__entry { border-bottom: 1px solid var(--cas-line); }
.cas-landing__desc {
  margin: -8px 0 0;
  padding: 0 4px 26px;
  max-width: 62ch;
  color: var(--cas-muted);
  font-size: 0.95rem;
  line-height: 1.6;
}

/* ————— event archive (past-events.html) ————— */
.cas-page-head { padding: clamp(64px, 9vw, 110px) 0 clamp(28px, 4vw, 46px); }
.cas-page-head h1 {
  margin: 0.6rem 0 0;
  font-size: clamp(2.2rem, 5.5vw, 3.6rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1.05;
  color: var(--cas-ink);
}
.cas-page-head .cas-note { max-width: 52ch; }
.cas-archive__year {
  margin: clamp(34px, 5vw, 54px) 0 0;
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--cas-line);
}
.cas-archive__year h2 {
  margin: 0;
  font-family: var(--cas-serif);
  font-size: clamp(1.7rem, 3.6vw, 2.4rem);
  font-weight: 600;
  color: var(--cas-ink);
}
.cas-archive__row {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr) auto;
  gap: clamp(14px, 3vw, 30px);
  align-items: baseline;
  padding: 18px 4px;
  border-bottom: 1px solid var(--cas-line);
  text-decoration: none;
  color: var(--cas-ink);
  transition: background 0.2s;
}
.cas-archive__row:hover { background: var(--cas-orange-tint); }
.cas-archive__date { font-size: 0.82rem; color: var(--cas-muted); white-space: nowrap; }
.cas-archive__title {
  font-size: clamp(1.05rem, 2.2vw, 1.3rem);
  font-weight: 540;
  letter-spacing: -0.015em;
  line-height: 1.3;
}
.cas-archive__row:hover .cas-archive__title { color: var(--cas-orange); }
.cas-archive__meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.cas-archive__meta .cas-mk { font-size: 0.62rem; }
.cas-tag {
  font-size: 0.62rem;
  font-weight: 560;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 3px 10px;
  white-space: nowrap;
}
.cas-tag--type { color: var(--cas-muted); border: 1px solid var(--cas-line-strong); }
.cas-tag--rec { color: var(--cas-orange); border: 1px solid currentColor; }
.cas-archive__empty { padding: 40px 4px; color: var(--cas-muted); }
@media (max-width: 700px) {
  .cas-archive__row { grid-template-columns: 1fr; gap: 6px; }
  .cas-archive__meta { justify-content: flex-start; }
}

/* ————— embedded Library content (Comment File, Evidence Lab) ————— */
.cas-embed-band { padding-bottom: clamp(72px, 10vw, 130px); }
.cas-embed-frame {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  /* graceful fallback height until the embed reports its real size */
  min-height: 78vh;
}
.cas-embed-frame--sized { min-height: 0; }

/* ————— inline recording player (archive) ————— */
.cas-archive__player {
  border-bottom: 1px solid var(--cas-line);
  padding: 18px 4px 26px;
  background: var(--cas-orange-tint);
}
.cas-archive__player iframe {
  display: block;
  width: 100%;
  max-width: 880px;
  aspect-ratio: 16 / 9;
  margin: 0 auto;
  border: 0;
  border-radius: var(--cas-radius);
  background: #000;
}
.cas-archive__player-foot {
  max-width: 880px;
  margin: 10px auto 0;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.cas-archive__player-foot a {
  font-size: 0.8rem;
  color: var(--cas-muted);
  text-decoration: none;
}
.cas-archive__player-foot a:hover { color: var(--cas-orange); }

/* ————— expandable event items inside the past-events drawer ————— */
.cas-event-item { border-bottom: 1px solid transparent; }
.cas-event-item__header {
  width: 100%;
  text-align: left;
  background: none;
  border: 0;
  font: inherit;
  color: var(--cas-body);
  cursor: pointer;
}
.cas-event-item__header:hover .cas-event-item__title { color: var(--cas-orange); }
.cas-event-item__title { flex: 1; }
.cas-event-item__glyph {
  margin-left: auto;
  color: var(--cas-faint);
  font-size: 1.05rem;
  transition: transform 0.3s var(--cas-ease), color 0.2s;
}
.cas-event-item__header--open .cas-event-item__glyph {
  transform: rotate(45deg);
  color: var(--cas-orange);
}
.cas-event-item__panel {
  padding: 6px 0 22px calc(88px + 12px);
}
@media (max-width: 700px) {
  .cas-event-item__panel { padding-left: 0; }
}
.cas-event-item__desc {
  margin: 0 0 14px;
  max-width: 62ch;
  color: var(--cas-muted);
  font-size: 0.93rem;
  line-height: 1.6;
  white-space: pre-line;
}
.cas-event-item__video {
  display: block;
  width: 100%;
  max-width: 720px;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: var(--cas-radius);
  background: #000;
}
.cas-event-item__links { display: flex; gap: 18px; margin-top: 12px; flex-wrap: wrap; }
.cas-event-item__links a {
  font-size: 0.82rem;
  color: var(--cas-muted);
  text-decoration: none;
}
.cas-event-item__links a:hover { color: var(--cas-orange); }

/* Library drawer collection blurbs */
.cas-index__group { padding-bottom: 8px; }
.cas-index__blurb {
  margin: 0;
  padding-right: 12px;
  max-width: 66ch;
  color: var(--cas-faint);
  font-size: 0.84rem;
  line-height: 1.55;
}


/* ————— hand-lettered display type (matches the drawn Tower sheet) ————— */
.cas-hero__statement {
  font-family: var(--cas-script);
  font-weight: 500;
  font-size: clamp(1.7rem, 4vw, 2.5rem);
  letter-spacing: 0;
  line-height: 1.22;
}
.cas-index__label {
  font-family: var(--cas-script);
  font-weight: 600;
  font-size: clamp(1.6rem, 3.9vw, 2.4rem);
  letter-spacing: 0;
}
.cas-page-head h1,
.cas-v2 h2.cas-h2 {
  font-family: var(--cas-script);
  font-weight: 600;
  letter-spacing: 0;
}
.cas-page-head h1 { font-size: clamp(2.4rem, 5.4vw, 3.6rem); }
.cas-archive__year h2 {
  font-family: var(--cas-script);
  font-weight: 600;
  letter-spacing: 0;
}
.cas-tower-plate figcaption,
.cas-plate figcaption { font-family: var(--cas-sans); }

/* ————— drawer previews: graphics over prose ————— */
.cas-preview-icons { display: grid; gap: 10px; padding: 4px 0 2px; }
.cas-index__panel .cas-btn { justify-self: start; }
.cas-preview-icon {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--cas-body);
  font-size: 0.97rem;
}
.cas-preview-icon svg { width: 20px; height: 20px; color: var(--cas-orange); flex: none; }
.cas-facepile { display: flex; padding: 6px 0 2px; text-decoration: none; width: fit-content; }
.cas-facepile img,
.cas-facepile span {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  border: 2px solid var(--cas-bg);
  object-fit: cover;
  margin-left: -12px;
  background: var(--cas-orange-tint);
  color: var(--cas-orange);
  font-weight: 600;
  font-size: 0.88rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.25s var(--cas-ease);
}
.cas-facepile img:first-child { margin-left: 0; }
.cas-facepile:hover img, .cas-facepile:hover span { transform: translateY(-3px); }
.cas-preview-stats { display: flex; gap: 30px; flex-wrap: wrap; margin-top: 14px; }
.cas-preview-stats span { font-size: 0.78rem; color: var(--cas-muted); }
.cas-preview-stats strong {
  display: block;
  font-family: var(--cas-script);
  font-size: 1.9rem;
  font-weight: 600;
  color: var(--cas-ink);
  line-height: 1.05;
}
