/* ============ The Fires page (loads after styles.css; .sr-only/.wir-cap-free) ============ */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* hero */
.fr-hero { display: flex; flex-direction: column; gap: 24px; margin-top: 0; padding-top: clamp(32px, 4vw, 56px); max-width: 980px; }
.fr-hero h1 { font-family: var(--serif); font-weight: 300; font-size: clamp(44px, 6.4vw, 92px); line-height: 1.02; letter-spacing: -.01em; text-wrap: balance; }
.has-gsap .fr-hero .reveal { opacity: 1; transform: none; }
.fr-embers { display: flex; gap: 18px; margin-top: 10px; }
.fr-ember { width: 12px; height: 12px; border-radius: 50%; background: var(--rule-2); transition: background .8s, transform .8s, border-radius .8s; }
.fr-ember.is-lit { background: #ff5c47; }
.fr-ember.is-rained { background: var(--green); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }

/* case files */
.fr-file { display: flex; flex-direction: column; gap: clamp(24px, 3vw, 40px); padding-top: 22px; position: relative; border-top: 2px solid var(--ink); }
.has-gsap .fr-file { border-top-color: transparent; }
.has-gsap .fr-file::before { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 100%; background: var(--ink); transform: scaleX(var(--sx, 0)); transform-origin: left; }
.fr-file::after { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 100%; background: linear-gradient(90deg, #ff5c47, var(--green)); transform: scaleX(var(--qx, 0)); transform-origin: left; }
.fr-file__head { display: flex; align-items: baseline; gap: 20px; }
.fr-file__n { font-size: clamp(28px, 3vw, 44px); color: var(--ink-3); }
.fr-file__mark { width: 12px; height: 12px; border-radius: 50%; background: #ff5c47; align-self: center; transition: background .8s, border-radius .8s, transform .8s; }
.fr-file.is-rained .fr-file__mark { background: var(--green); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
.fr-file__head h2 { font-size: clamp(30px, 3.4vw, 48px); }
.fr-file__cols { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(24px, 4vw, 64px); align-items: start; }
.fr-file__fire, .fr-file__rain { display: flex; flex-direction: column; gap: 12px; }
.fr-file__fire p:not(.eyebrow) { font-size: 16px; color: var(--ink-2); max-width: 62ch; }
.fr-file__rain { border-left: 2px solid var(--green); padding-left: 20px; }
.fr-file__rain p:not(.eyebrow) { font-family: var(--serif); font-size: clamp(18px, 1.5vw, 21px); line-height: 1.45; color: var(--ink); }
.fr-file__rain .eyebrow { color: var(--green); }
/* alternate files swap columns */
.fr-file--alt .fr-file__cols { grid-template-columns: 5fr 7fr; }
.fr-file--alt .fr-file__fire { order: 2; }
.fr-file--alt .fr-file__rain { order: 1; }

/* one rain */
.fr-one { margin-top: clamp(72px, 9vw, 130px); }
.fr-one__band { background: var(--green); color: var(--paper); margin: 0 calc(-1 * var(--gutter)); padding: clamp(64px, 9vw, 130px) var(--gutter); display: flex; flex-direction: column; gap: 24px; }
.fr-one__band .eyebrow { color: var(--green-tint); }
.fr-one__line { font-size: clamp(30px, 3.8vw, 56px); max-width: 24ch; color: var(--paper); }
.has-gsap .fr-one__line .dw > span { color: rgba(246,243,236,.48); }
.fr-one__sub { font-size: clamp(17px, 1.4vw, 20px); color: var(--green-tint-2); max-width: 50ch; }
.fr-one__actions { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
.fr-one__actions .btn--paper { margin-top: 0; }
.link--paper { color: var(--paper); border-bottom: 1px solid var(--green-tint); padding-bottom: 2px; font-weight: 500; font-size: 14px; }
.link--paper:hover { color: var(--green-tint-2); border-color: var(--green-tint-2); }

/* asks (shared look with what-is-rain) */
.asks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ask { display: flex; flex-direction: column; gap: 14px; padding: 32px; background: var(--white); border: 1px solid var(--rule); }
.ask p { font-size: 15px; color: var(--ink-2); max-width: 44ch; }
.ask__form { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.ask__form input { flex: 1 1 220px; height: 50px; padding: 0 16px; font: inherit; font-size: 15px; color: var(--ink); background: var(--paper); border: 1px solid var(--rule-2); }
.ask__form input:focus { border-color: var(--green); outline: none; }
.ask__form input:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.ask .btn--outline { align-self: flex-start; margin-top: 6px; }
.ask__note { font-size: 13px; }

/* finale */
.rainband--fr { margin-top: clamp(72px, 9vw, 130px); }
.finale { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; min-height: 60vh; justify-content: center; margin-top: 0; padding: clamp(48px, 6vw, 96px) 0; }
.finale__l1 { font-size: clamp(22px, 2.4vw, 34px); color: var(--ink-2); max-width: 30ch; }
.finale__l2 { font-size: clamp(64px, 10vw, 160px); line-height: .98; letter-spacing: -.015em; color: var(--ink); }
.finale__btn { margin-top: 18px; }

@media (max-width: 1100px) {
  .fr-file__cols, .fr-file--alt .fr-file__cols { grid-template-columns: 1fr; }
  .fr-file--alt .fr-file__fire { order: 1; }
  .fr-file--alt .fr-file__rain { order: 2; }
}
@media (max-width: 760px) {
  .asks { grid-template-columns: 1fr; }
  .fr-file__head { gap: 14px; }
  .finale { min-height: 46vh; }
}
@media (prefers-reduced-motion: reduce) {
  .fr-ember { background: var(--green); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
  .fr-file__mark { background: var(--green); border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }
}
