/* Days of Carnage in the Gravitas site system (site-system.css).
   Signature section: the cinematic film hero, the series section bar and the case-page program bar are kept as they are.
   Everything below them takes the shared type, labels, buttons and neumorphic panels. */
body.gx-days-of-carnage { --red: var(--gx-gold-deep); background: var(--gx-ground); }

/* ---------- the signature pieces keep their own face ---------- */
body.gx-days-of-carnage .carnage-hero :is(p, a, span, h1),
body.gx-days-of-carnage .carnage-section-nav :is(span, a),
body.gx-days-of-carnage .detail-header :is(a, span, nav) { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
body.gx-days-of-carnage .carnage-hero .hero-tagline { font-size: clamp(22px, 2.15vw, 36px); line-height: 1.3; }

/* ---------- labels ---------- */
body.gx-days-of-carnage main .section-number { font: 700 .8125rem/1.6 var(--gx-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--gx-gold); margin: 0 0 18px; }
body.gx-days-of-carnage main :is(.card-place, .detail-kicker p, .detail-byline span, .detail-byline small, .video-caption span, .account-copy cite, .brief-meta, .next-account > span, .back-link, .brief-note, .card-footer, .comment-form label) {
  font-family: var(--gx-sans); font-weight: 600; font-size: .75rem; line-height: 1.6; letter-spacing: .1em; text-transform: uppercase; font-style: normal;
}
body.gx-days-of-carnage main :is(.card-place, .detail-kicker p) { color: var(--gx-gold); font-weight: 700; }
body.gx-days-of-carnage main .comment-form label span { font: 400 .75rem/1.4 var(--gx-sans); text-transform: none; letter-spacing: 0; }

/* ---------- reading type ---------- */
body.gx-days-of-carnage main :is(.premise h2, .archive h2, .lessons-heading h2, .brief-heading h2, .engage-comment h2) { font: 500 var(--gx-h2)/1.08 var(--gx-serif); letter-spacing: -.02em; }
body.gx-days-of-carnage main .premise h2 { font-size: var(--gx-h3); line-height: 1.22; }
body.gx-days-of-carnage main .engage-comment h2 { font-size: var(--gx-h3); line-height: 1.15; }
body.gx-days-of-carnage main :is(.premise-copy > p, .comment-intro, .closing > p:last-child, .lesson p, .brief-columns li, .video-caption) { font: 400 var(--gx-body)/1.65 var(--gx-text); color: var(--gx-slate); }
body.gx-days-of-carnage main .premise-copy > p { color: var(--gx-ink); }
body.gx-days-of-carnage main :is(.detail-deck, .account-copy > p) { font: 400 var(--gx-lead)/1.45 var(--gx-serif); color: var(--gx-ink); }
body.gx-days-of-carnage main .detail-intro h1 { font: 500 clamp(3rem, 6.4vw, 6rem)/1 var(--gx-serif); letter-spacing: -.025em; }
body.gx-days-of-carnage main .detail-kicker > span { font: 500 4.5rem/1 var(--gx-serif); }
body.gx-days-of-carnage main .detail-byline strong { font: 500 1.5rem/1.2 var(--gx-serif); }
body.gx-days-of-carnage main :is(.card-body h3, .lesson h3) { font: 500 var(--gx-h3)/1.12 var(--gx-serif); letter-spacing: -.015em; }
body.gx-days-of-carnage main .card-body h3 { font-size: clamp(1.625rem, 2.1vw, 2rem); }
body.gx-days-of-carnage main .card-body > p:not(.card-place) { font: 400 1.0625rem/1.65 var(--gx-text); color: var(--gx-slate); }
body.gx-days-of-carnage main .brief-columns h3 { font: 500 var(--gx-h3)/1.1 var(--gx-serif); }
body.gx-days-of-carnage main .next-account h2 { font: 500 var(--gx-h2)/1.06 var(--gx-serif); letter-spacing: -.02em; }
body.gx-days-of-carnage main .next-account p { font: 500 2rem/1 var(--gx-serif); }
body.gx-days-of-carnage main .lesson > span { font: 700 .875rem/2.4 var(--gx-sans); letter-spacing: .1em; color: var(--gx-gold); }
body.gx-days-of-carnage main .method-list strong { font: 700 .8125rem/1.5 var(--gx-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--gx-ink); }
body.gx-days-of-carnage main .method-list li > span { font: 700 .8125rem/1.6 var(--gx-sans); letter-spacing: .1em; color: var(--gx-gold); }
body.gx-days-of-carnage main .method-list p { font: 400 1.0625rem/1.65 var(--gx-text); color: var(--gx-slate); }
body.gx-days-of-carnage main :is(.closing blockquote, .account-copy blockquote) { font: italic 500 var(--gx-h2)/1.12 var(--gx-serif); letter-spacing: -.015em; color: var(--gx-ink); }
body.gx-days-of-carnage main .account-copy blockquote { font-size: var(--gx-h3); line-height: 1.25; }
body.gx-days-of-carnage main :is(.no-results, .share-status, .comment-status) { font: 600 .8125rem/1.6 var(--gx-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--gx-slate); }
body.gx-days-of-carnage main :is(.search input, .comment-form input[type=text], .comment-form input[type=email], .comment-form textarea) { font: 400 1.125rem/1.4 var(--gx-serif); color: var(--gx-ink); text-transform: none; letter-spacing: 0; }
body.gx-days-of-carnage main .search input::placeholder { color: var(--gx-slate); opacity: .8; }

/* ---------- controls ---------- */
body.gx-days-of-carnage main .filter-row button {
  min-height: 44px; padding: 12px 20px; border-radius: var(--gx-r);
  font: 600 .8125rem/1.4 var(--gx-sans); letter-spacing: .06em; text-transform: uppercase;
  color: var(--gx-ink); background: var(--gx-ground); border: 1px solid var(--gx-border); box-shadow: var(--gx-raise-sm);
  transition: box-shadow .15s, color .15s;
}
body.gx-days-of-carnage main .filter-row button:hover { color: var(--gx-gold-deep); background: var(--gx-ground); border-color: var(--gx-border); }
body.gx-days-of-carnage main .filter-row button.active, body.gx-days-of-carnage main .filter-row button:active { box-shadow: var(--gx-inset); color: var(--gx-gold-deep); background: var(--gx-ground); border-color: var(--gx-border); }
body.gx-days-of-carnage main :is(.button, .brief-print) { min-width: 0; justify-content: center; }
body.gx-days-of-carnage main .share-link.text-link { opacity: 1; background: none; cursor: pointer; }
body.gx-days-of-carnage main .back-link { color: var(--gx-ink); text-decoration: none; border-bottom: 1px solid var(--gx-gold); padding-bottom: 3px; }
body.gx-days-of-carnage main .back-link:hover { color: var(--gx-gold-deep); }

/* ---------- panels (screen only: the field brief keeps its own print sheet) ---------- */
@media screen {
  body.gx-days-of-carnage main :is(.behind-scenes, .premise, .archive, .closing, .detail-intro, .video-section, .engage-section, .account-section, .lessons-section, .field-brief, .next-account) {
    box-sizing: border-box; width: var(--gx-frame); margin-inline: auto; border-radius: var(--gx-r);
  }

  /* landing: the series premise as a raised panel, the method as an inset well */
  body.gx-days-of-carnage .premise { margin-top: 28px; padding: clamp(32px, 5vw, 72px); background: var(--gx-ground); box-shadow: var(--gx-raise); }
  body.gx-days-of-carnage .method-list { border: 0; padding: 8px 24px; border-radius: var(--gx-r); box-shadow: var(--gx-inset); }
  body.gx-days-of-carnage .method-list li { border-color: var(--gx-border); }
  body.gx-days-of-carnage .method-list li:last-child { border-bottom: 0; }

  /* the archive: heading on the ground, search as an inset well, accounts as raised cards */
  body.gx-days-of-carnage .archive { margin-top: 28px; padding: clamp(40px, 5vw, 72px) 0 clamp(24px, 3vw, 40px); background: transparent; }
  body.gx-days-of-carnage .search { width: min(340px, 100%); border: 0; padding: 14px 20px; border-radius: var(--gx-r); background: var(--gx-ground); box-shadow: var(--gx-inset); }
  body.gx-days-of-carnage .search i { border-color: var(--gx-ink); flex: none; }
  body.gx-days-of-carnage .crisis-grid { gap: 28px; padding: 6px; background: transparent; border: 0; }
  body.gx-days-of-carnage .crisis-card { background: var(--gx-ground); border-radius: var(--gx-r); box-shadow: var(--gx-raise); overflow: hidden; }
  body.gx-days-of-carnage .crisis-card > a { color: var(--gx-ink); text-decoration: none; }
  body.gx-days-of-carnage .crisis-card > a:active { box-shadow: var(--gx-inset); }
  body.gx-days-of-carnage .card-footer { border-top-color: var(--gx-border); color: var(--gx-ink); }
  body.gx-days-of-carnage .card-footer b { color: var(--gx-gold); }
  body.gx-days-of-carnage .no-results { border-radius: var(--gx-r); box-shadow: var(--gx-inset); }

  /* the practice: the Gravitas closing card, inset with the star */
  body.gx-days-of-carnage .closing { margin-block: 28px 56px; padding: clamp(44px, 6vw, 80px) clamp(24px, 6vw, 96px); background: var(--gx-ground); box-shadow: var(--gx-inset); display: flex; flex-direction: column; align-items: center; }
  body.gx-days-of-carnage .closing::before { content: "✦"; order: -1; margin-bottom: 22px; font-size: 1.75rem; line-height: 1; color: var(--gx-gold); }
  body.gx-days-of-carnage .closing blockquote { margin: 18px auto 28px; max-width: 24ch; }
  body.gx-days-of-carnage .closing > p:last-child { max-width: 52ch; }

  /* footers: raised navy panels inside the frame */
  body.gx-days-of-carnage main > footer { box-sizing: border-box; width: var(--gx-frame); margin: 0 auto 28px; border-radius: var(--gx-r); background: var(--gx-ink); box-shadow: var(--gx-raise); border: 0; }
  body.gx-days-of-carnage main > footer > p { font: 400 1.0625rem/1.65 var(--gx-text); color: #d9dde2; }
  body.gx-days-of-carnage main > footer .copyright, body.gx-days-of-carnage main > footer .copyright a, body.gx-days-of-carnage .detail-footer a { font: 600 .75rem/1.6 var(--gx-sans); letter-spacing: .1em; text-transform: uppercase; color: #e5cf9d; }
  body.gx-days-of-carnage .detail-footer > p { font: 600 .75rem/1.6 var(--gx-sans); letter-spacing: .08em; text-transform: uppercase; color: #d9dde2; }

  /* case pages: the opening sits on the ground; the player in an inset well */
  body.gx-days-of-carnage .detail-intro { padding: clamp(36px, 4vw, 56px) clamp(24px, 6vw, 96px) clamp(48px, 5vw, 72px); background: transparent; min-height: 0; }
  body.gx-days-of-carnage .detail-byline { border-top-color: var(--gx-gold); }
  body.gx-days-of-carnage .video-section { padding: 14px 14px 18px; background: var(--gx-ground); box-shadow: var(--gx-inset); }
  body.gx-days-of-carnage .video-section iframe { border-radius: 12px; }
  body.gx-days-of-carnage .video-caption { margin: 14px 6px 0; }

  /* reflection: a raised panel; fields are inset wells */
  body.gx-days-of-carnage .engage-section { margin-top: 28px; padding: clamp(32px, 4.5vw, 60px); border: 0; background: var(--gx-ground); box-shadow: var(--gx-raise); }
  body.gx-days-of-carnage .comment-form :is(input[type=text], input[type=email], textarea) { border: 0; border-radius: 14px; padding: 13px 16px; background: var(--gx-ground); box-shadow: var(--gx-inset); }
  body.gx-days-of-carnage .comment-form button[type=submit] { font-size: .875rem; padding: 13px 24px; }

  /* the account: a raised panel; the quote sits in an inset well */
  body.gx-days-of-carnage .account-section { margin-top: 28px; padding: clamp(32px, 4.5vw, 60px); background: var(--gx-ground); box-shadow: var(--gx-raise); }
  body.gx-days-of-carnage .account-copy blockquote { margin: 36px 0 0; padding: 28px 32px; border: 0; border-radius: var(--gx-r); background: var(--gx-ground); box-shadow: var(--gx-inset); }

  /* lessons: a raised night panel, as on Gravitas */
  body.gx-days-of-carnage .lessons-section { margin-top: 28px; padding: clamp(36px, 5vw, 80px); background: var(--gx-ink); color: #f3ecdd; box-shadow: var(--gx-raise); border: 0; }
  body.gx-days-of-carnage main .lessons-section :is(h2, h3) { color: #f7f2e8; }
  body.gx-days-of-carnage main .lessons-section .section-number, body.gx-days-of-carnage main .lesson > span { color: #d2b575; }
  body.gx-days-of-carnage main .lessons-section .lessons-list .lesson p { color: #d9dde2; }
  body.gx-days-of-carnage .lesson { border-bottom-color: rgba(255, 255, 255, .16); }

  /* field brief: a raised panel */
  body.gx-days-of-carnage .field-brief { margin-top: 28px; padding: clamp(32px, 4.5vw, 60px); background: var(--gx-ground); box-shadow: var(--gx-raise); }
  body.gx-days-of-carnage .brief-meta { border-top-color: var(--gx-gold); border-bottom-color: var(--gx-border); color: var(--gx-slate); }
  body.gx-days-of-carnage .brief-columns section { border-color: var(--gx-border); }
  body.gx-days-of-carnage .brief-columns li::before { border-color: var(--gx-gold); }
  body.gx-days-of-carnage .brief-note { color: var(--gx-slate); }

  /* next account: an inset well you press into */
  body.gx-days-of-carnage .next-account { margin-block: 28px; padding: clamp(32px, 4.5vw, 60px); background: var(--gx-ground); box-shadow: var(--gx-raise); color: var(--gx-ink); text-decoration: none; transition: box-shadow .15s; }
  body.gx-days-of-carnage .next-account:hover, body.gx-days-of-carnage .next-account:active { box-shadow: var(--gx-inset); }
  body.gx-days-of-carnage .next-account b { color: var(--gx-gold); }
}

@media screen and (max-width: 760px) {
  body.gx-days-of-carnage .crisis-grid { gap: 20px; }
  body.gx-days-of-carnage .archive-heading { flex-direction: column; align-items: stretch; }
  body.gx-days-of-carnage .search { width: 100%; }
  body.gx-days-of-carnage .method-list { padding: 4px 18px; }
  body.gx-days-of-carnage .account-copy blockquote { padding: 22px 20px; }
  body.gx-days-of-carnage .detail-kicker > span { font-size: 3.5rem; }
  body.gx-days-of-carnage .next-account > div { grid-template-columns: 48px 1fr 32px; gap: 14px; }
}

/* correction (Oct 16): the case pages' own top bar was white-on-ivory; it now reads on the light ground */
body.gx-days-of-carnage .detail-header .wordmark-title { color: var(--gx-ink) !important; }
body.gx-days-of-carnage .detail-header .wordmark-subtitle, body.gx-days-of-carnage .detail-header .byline { color: var(--gx-gold) !important; }
body.gx-days-of-carnage .detail-header nav a { color: var(--gx-ink) !important; }
body.gx-days-of-carnage .detail-header { box-sizing: border-box; width: var(--gx-frame); margin: 20px auto 0; padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-radius: var(--gx-r); background: var(--gx-ground); box-shadow: var(--gx-raise-sm); }
body.gx-days-of-carnage .detail-header nav { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
body.gx-days-of-carnage .detail-header nav a, body.gx-days-of-carnage .detail-header .byline { font: 600 .75rem/1.5 var(--gx-sans) !important; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }

/* chaplain names link to their About Us biographies */
.crisis-card { display: flex; flex-direction: column; }
.crisis-card > a { flex: 1 1 auto; }
.crisis-card > .card-footer { margin: 0 30px; padding: 18px 0 26px; }
.bio-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.bio-link:hover, .bio-link:focus-visible { text-decoration-thickness: 2px; }
.card-open { color: inherit; text-decoration: none; }

/* Behind the scenes: why we began */
body.gx-days-of-carnage main .behind-scenes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:center;margin-top:28px;padding:clamp(32px,5vw,72px);background:var(--gx-ground);box-shadow:var(--gx-raise)}
body.gx-days-of-carnage main .behind-copy h2{font:500 var(--gx-h2)/1.08 var(--gx-serif);letter-spacing:-.02em;margin:.4rem 0 1rem}
body.gx-days-of-carnage main .behind-copy p:not(.section-number){font:400 var(--gx-body)/1.65 var(--gx-text);color:var(--gx-slate);margin:0}
body.gx-days-of-carnage main .behind-copy p:not(.section-number)+p{margin-top:30px}
body.gx-days-of-carnage main .behind-copy a,body.gx-days-of-carnage main .behind-video figcaption a{color:inherit;text-decoration:underline;text-underline-offset:.2em}
body.gx-days-of-carnage main .behind-video{margin:0}
body.gx-days-of-carnage main .behind-frame{aspect-ratio:16/9;background:#0c1b29;position:relative;overflow:hidden}
body.gx-days-of-carnage main .behind-frame iframe{width:100%;height:100%;border:0}
body.gx-days-of-carnage main .behind-play{position:absolute;inset:0;width:100%;border:0;cursor:pointer;background-size:cover;background-position:center}
body.gx-days-of-carnage main .behind-play span{position:absolute;inset:0;margin:auto;width:64px;height:64px;border-radius:50%;background:#f3eee4e6}
body.gx-days-of-carnage main .behind-play span::after{content:"";position:absolute;left:26px;top:20px;border-left:18px solid #1b2a38;border-top:12px solid transparent;border-bottom:12px solid transparent}
body.gx-days-of-carnage main .behind-video figcaption{margin-top:.6rem;font:400 .8125rem/1.5 var(--gx-sans)}
@media(max-width:800px){body.gx-days-of-carnage main .behind-scenes{grid-template-columns:1fr}}

/* ---------- hero: prairie storm painting, live wordmark, staged fade-in ---------- */
body.gx-days-of-carnage .carnage-hero{
  background-image:linear-gradient(90deg,rgba(24,26,36,.78) 0%,rgba(30,32,44,.55) 38%,rgba(30,32,44,.12) 70%,rgba(30,32,44,0) 100%),linear-gradient(0deg,rgba(30,32,44,.7),transparent 40%),url('../assets/carnage/days-of-carnage-hero-prairie.webp');
  background-size:cover;background-position:center 60%}
body.gx-days-of-carnage .carnage-hero .live-wordmark{margin:0 0 28px;font-weight:400}
body.gx-days-of-carnage .carnage-hero .dc-title{display:block;font-family:var(--gx-serif);font-weight:500;font-size:clamp(46px,7vw,104px);line-height:.95;letter-spacing:.02em;text-transform:uppercase;color:#f3eee4}
body.gx-days-of-carnage .carnage-hero .dc-title em{color:inherit;font-style:normal;font-size:.62em;text-transform:lowercase;letter-spacing:0;padding:0 .08em}
body.gx-days-of-carnage .carnage-hero .dc-sub{display:block;margin-top:.9rem;font-family:var(--gx-sans);font-weight:600;font-size:clamp(12px,1.35vw,20px);line-height:1.4;letter-spacing:.2em;text-transform:uppercase;color:#d4b779}
@keyframes dc-fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){
  body.gx-days-of-carnage .carnage-hero .dc-title{opacity:0;animation:dc-fade 1.6s ease-out .3s forwards}
  body.gx-days-of-carnage .carnage-hero .dc-sub{opacity:0;animation:dc-fade 1.2s ease-out 1.7s forwards}
  body.gx-days-of-carnage .carnage-hero .hero-tagline{opacity:0;animation:dc-fade 1.2s ease-out 2.6s forwards}
  body.gx-days-of-carnage .carnage-hero .hero-entry{opacity:0;animation:dc-fade 1.2s ease-out 3.3s forwards}
}
