/* Campfire has its own palette; the public site retains the global daylight tokens. */
.campfire-page { --cf-forest:#192721; --cf-moss:#28392f; --cf-ember:#d7a365; --cf-parchment:#f1e7d4; --cf-sage:#bfc8bd; --cf-ink:#30291f; --cf-muted:#625744; --cf-line:#536254; --cf-paper-line:#cdbfa9; background:var(--cf-forest); color:var(--cf-parchment); }
.campfire-page .not-found-header, .campfire-page .footer { background:var(--cf-forest); color:var(--cf-parchment); }
.campfire-page .footer { border-top:1px solid var(--cf-line); }
.campfire-page .footer-brand p:last-child, .campfire-page .footer-contact a, .campfire-page .footer-bottom { color:var(--cf-sage); }
.campfire-page .footer-bottom { border-color:var(--cf-line); }
.campfire-page .footer-contact a:hover { color:var(--cf-ember); }
.campfire-page .footer-contact a:focus-visible { outline-color:var(--cf-ember); }
.campfire-page .eyebrow { color:var(--cf-ember); }
.campfire-page .button-dark { background:var(--cf-ember); color:var(--cf-ink); }
.campfire-page .button-dark:hover { background:#e3b781; }
.campfire-page .prose { color:var(--cf-sage); }
.campfire-page :focus-visible { outline-color:var(--cf-ember); }
.campfire-page .skip-link { background:var(--cf-parchment); color:var(--cf-ink); }
.campfire-page .campfire-welcome { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:var(--content-gap); align-items:center; padding-block:clamp(60px,7vw,96px); }
.campfire-page .campfire-intro h1 { font-size:clamp(58px,6.5vw,88px); margin-bottom:18px; }
.campfire-page .campfire-supporting { font-family:var(--heading); font-size:31px; color:var(--cf-ember); margin-bottom:24px; }
.campfire-page .campfire-intro .prose { font-size:16px; }
.campfire-page .campfire-mascot { width:min(330px,75%); margin:30px auto 0; }
.campfire-page .campfire-mascot img { width:100%; height:auto; }
.campfire-page .campfire-login { border-left:1px solid var(--cf-line); padding-left:42px; }
.campfire-page .campfire-login h2 { font-size:48px; margin-bottom:20px; }
.campfire-page .campfire-small { font-size:12px; color:var(--cf-sage); line-height:1.8; }
.campfire-page .campfire-login-form { margin-top:28px; }
.campfire-page .campfire-login-form fieldset { border:0; padding:0; margin:0; min-width:0; }
.campfire-page .campfire-login-form label { display:block; font-size:13px; margin-bottom:8px; }
.campfire-page .campfire-login-form input { width:100%; border:1px solid var(--cf-line); border-radius:5px; padding:14px; font:inherit; font-size:15px; background:var(--cf-moss); color:var(--cf-parchment); margin-bottom:22px; opacity:1; }
.campfire-page .campfire-login-form input::placeholder { color:var(--cf-sage); }
.campfire-page .campfire-login-form button { width:100%; opacity:.7; cursor:not-allowed; transform:none; }
.campfire-page .campfire-recovery { display:inline-block; margin-top:20px; font-size:12px; color:var(--cf-sage); }
.campfire-page .campfire-join-link { border-top:1px solid var(--cf-line); padding-top:22px; margin-top:30px; }
.campfire-page .campfire-join-link a { color:var(--cf-ember); text-decoration:underline; text-underline-offset:4px; }
.campfire-page .cf-entrance-note { border-top:1px solid var(--cf-line); padding-block:35px 70px; }
.cf-entrance-note p { max-width:640px; font-size:14px; line-height:1.85; color:var(--cf-sage); }
.campfire-page .visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.cf-icon { width:20px; height:20px; flex-shrink:0; }
.cf-preview-banner { font-size:11px; line-height:1.7; color:var(--cf-sage); max-width:660px; }
.cf-hero { position:relative; isolation:isolate; min-height:650px; display:flex; align-items:center; background:var(--cf-forest); }
.cf-hero > img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 60%; }
.cf-hero::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(25,39,33,.95),rgba(25,39,33,.65) 55%,rgba(25,39,33,.15)),linear-gradient(0deg,rgba(25,39,33,.55),transparent); }
.cf-hero-copy { padding-block:80px; }
.cf-hero-scroll { color:var(--cf-parchment); }
.cf-hero-scroll:hover .arrow-icon { transform:translateY(4px); }
.cf-hero-scroll .arrow-icon { transition:transform 220ms ease; }
.cf-hero h1 { font-size:clamp(62px,6.4vw,92px); max-width:820px; margin-bottom:30px; }
.cf-hero-copy > p:not([class]) { max-width:530px; font-size:16px; line-height:1.9; }
.cf-image-note { margin:38px 0 0; font-size:10px; color:var(--cf-sage); }
.cf-index-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:35px; margin-bottom:45px; }
.cf-index-heading h2 { margin-bottom:20px; }
.cf-index-heading > div > p:last-child { color:var(--cf-sage); font-size:16px; max-width:580px; margin-bottom:0; }
.cf-volume { color:var(--cf-ember); font-size:10px; letter-spacing:.12em; text-align:right; line-height:2; white-space:nowrap; margin-bottom:0; }
.cf-index { padding:0 40px; margin:0; list-style:none; background:var(--cf-moss); }
.cf-index li + li { border-top:1px solid var(--cf-line); }
.cf-index a { display:grid; grid-template-columns:55px minmax(0,1fr) 24px; gap:25px; align-items:center; padding-block:32px; }
.cf-entry { color:var(--cf-ember); font-size:12px; letter-spacing:.12em; }
.cf-index h3 { font-size:clamp(28px,3vw,39px); margin-bottom:10px; }
.cf-index a p { margin:0; color:var(--cf-sage); font-size:9px; letter-spacing:.12em; }
.cf-index a > .cf-icon { color:var(--cf-ember); transition:transform var(--transition); }
.cf-index a:hover h3 { color:var(--cf-ember); }
.cf-index a:hover > .cf-icon { transform:translate(3px,-3px); }
.cf-closing { padding-bottom:var(--section-space); text-align:center; }
.cf-closing h2 { font-size:clamp(36px,4vw,54px); }
.cf-closing p { max-width:600px; margin:0 auto; color:var(--cf-sage); font-size:15px; line-height:1.9; }
.cf-resource-header { padding-block:55px 60px; }
.cf-back { display:inline-block; color:var(--cf-sage); font-size:12px; margin-block:15px 32px; }
.cf-back:hover { color:var(--cf-ember); }
.cf-resource-header h1 { font-size:clamp(56px,6.5vw,88px); max-width:870px; margin-bottom:28px; }
.cf-introduction { max-width:630px; color:var(--cf-sage); font-size:17px; line-height:1.85; }
.cf-metadata { font-size:9px; color:var(--cf-ember); letter-spacing:.12em; margin:25px 0 0; }
.cf-resource-layout { display:grid; grid-template-columns:minmax(0,2.15fr) minmax(0,1fr); gap:40px; align-items:start; }
.cf-paper { background:var(--cf-parchment); color:var(--cf-ink); min-width:0; }
.cf-before-area { padding:40px 42px 0; }
.cf-before-area:empty { display:none; }
.cf-paper-body { padding:35px 42px 45px; }
.cf-paper .eyebrow { color:#805429; }
.cf-paper h2 { font-size:39px; margin-bottom:22px; }
.cf-paper h3 { font-size:28px; }
.cf-paper p, .cf-paper li { color:var(--cf-muted); font-size:15px; line-height:1.9; }
.cf-before { padding-bottom:30px; border-bottom:1px solid var(--cf-paper-line); }
.cf-before dl { margin:25px 0 0; }
.cf-before dl > div { display:grid; grid-template-columns:100px minmax(0,1fr); gap:20px; padding-block:12px; border-top:1px solid var(--cf-paper-line); }
.cf-before dt { font-size:12px; text-transform:capitalize; }
.cf-before dd { margin:0; }
.cf-before ul { padding-left:16px; margin:0; }
.cf-before li { font-size:12px; }
.cf-draft-label { font-size:12px; line-height:1.8; color:var(--cf-sage); }
.cf-paper .cf-draft-label { font-size:12px; color:var(--cf-muted); }
.cf-image-placeholder { border:1px dashed var(--cf-paper-line); color:var(--cf-muted); padding:30px 20px; font-size:11px; line-height:1.8; margin-block:28px 38px; }
.cf-instruction-section { border-left:1px solid var(--cf-paper-line); padding-left:22px; margin-top:38px; }
.cf-section-number { color:#805429!important; font-size:10px!important; letter-spacing:.15em; margin-bottom:15px; }
.cf-paper img { width:100%; height:auto; border-radius:8px; margin-block:25px; }
.cf-paper figcaption { color:var(--cf-muted); font-size:11px; line-height:1.8; }
.cf-paper a { text-decoration:underline; text-underline-offset:4px; }
.cf-paper ul, .cf-paper ol { padding-left:22px; }
.cf-teaching-note { padding:25px; margin-top:40px; background:#e6d9c1; }
.cf-teaching-note h2 { font-size:30px; }
.cf-teaching-note p:last-child { margin-bottom:0; }
.cf-table-scroll { overflow-x:auto; margin-block:30px; }
.cf-paper table { width:100%; border-collapse:collapse; font-size:13px; }
.cf-paper th, .cf-paper td { text-align:left; padding:12px; border-bottom:1px solid var(--cf-paper-line); }
.cf-video iframe { width:100%; aspect-ratio:16/9; border:0; }
.cf-files { background:var(--cf-moss); padding:27px; position:sticky; top:25px; max-height:calc(100svh - 50px); overflow:auto; }
.cf-files-heading { display:flex; gap:13px; align-items:center; margin-bottom:18px; }
.cf-files-heading .cf-icon { color:var(--cf-ember); }
.cf-files h2 { font-size:29px; margin:0; }
.cf-files > p { color:var(--cf-sage); font-size:12px; line-height:1.8; }
.cf-files ul { margin:25px 0 15px; padding:0; list-style:none; }
.cf-files li { border-top:1px solid var(--cf-line); }
.cf-files li > a, .cf-file-pending { display:flex; gap:12px; align-items:start; padding-block:18px; }
.cf-file-pending > .cf-icon, .cf-files li > a > .cf-icon { color:var(--cf-ember); margin-top:3px; }
.cf-files strong { display:block; font-size:12px; font-weight:400; }
.cf-files small { color:var(--cf-sage); display:block; font-size:10px; margin-top:5px; }
.cf-files li > a:hover { color:var(--cf-ember); }
.cf-files .cf-files-note { font-size:10px; }
.cf-files > a { color:var(--cf-ember); font-size:11px; }
.cf-album h2 { margin-bottom:24px; }
.cf-album > p:not(.eyebrow) { max-width:650px; color:var(--cf-sage); font-size:15px; line-height:1.8; }
.cf-album > .cf-draft-label { font-size:12px!important; }
.cf-mosaic { display:grid; grid-template-columns:1.4fr 1fr; gap:24px; margin-top:35px; }
.cf-photo { display:block; width:100%; }
.cf-photo img { width:100%; height:100%; aspect-ratio:1.35; object-fit:cover; border-radius:10px; }
.cf-photo:nth-child(3n+2) img { aspect-ratio:1; }
.cf-photo:nth-child(3n+2) { align-self:center; }
.cf-photo:hover { opacity:.9; }
.cf-quiet-link { display:inline-flex; align-items:center; gap:15px; color:var(--cf-ember); font-size:12px; margin-top:25px; }
.cf-sharing { margin-top:45px; padding-top:32px; display:flex; align-items:center; justify-content:space-between; gap:35px; }
.cf-sharing h3 { font-size:30px; margin-bottom:15px; }
.cf-sharing p { max-width:540px; font-size:14px; color:var(--cf-sage); line-height:1.8; margin-bottom:0; }
.cf-sharing .button { flex-shrink:0; gap:16px; }
.cf-questions { border-top:1px solid var(--cf-line); padding-block:42px; }
.cf-questions h2, .cf-related h2 { font-size:40px; }
.cf-questions p { max-width:650px; color:var(--cf-sage); font-size:15px; line-height:1.85; }
.cf-questions a { display:inline-flex; align-items:center; gap:15px; color:var(--cf-ember); font-size:13px; margin-right:25px; }
.cf-related { padding-block:25px 60px; }
.cf-related a { display:flex; justify-content:space-between; align-items:center; max-width:650px; gap:20px; border-top:1px solid var(--cf-line); padding-block:17px; color:var(--cf-sage); font-size:15px; }
.cf-related a:hover { color:var(--cf-ember); }
.cf-note-nav { display:flex; justify-content:space-between; gap:30px; border-top:1px solid var(--cf-line); padding-block:30px 70px; font-size:13px; }
.cf-note-nav a:last-child { text-align:right; }
.cf-note-nav span { display:block; color:var(--cf-sage); font-size:11px; margin-top:8px; }
.cf-album-return a { color:var(--cf-ember); font-size:13px; }
.campfire-page .cf-lightbox, .campfire-page .cf-submission { color:var(--cf-parchment); background:var(--cf-moss); width:calc(100% - 40px); max-width:1000px; border-radius:10px; padding:25px; }
.campfire-page .cf-submission { max-width:620px; }
.cf-lightbox-bar { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.cf-lightbox h2 { font-size:25px; margin:0; }
.cf-close { min-width:44px; min-height:44px; font-size:30px; line-height:1; }
.cf-lightbox > img { max-height:65svh; width:100%; object-fit:contain; margin-block:20px; }
.cf-lightbox-controls { display:flex; align-items:center; justify-content:space-between; gap:15px; font-size:12px; }
.cf-lightbox-controls button { min-height:44px; }
.cf-lightbox-controls p { margin:0; }
.cf-lightbox-controls button:disabled { color:var(--cf-sage); opacity:.6; cursor:not-allowed; }
.cf-submission-content { position:relative; padding-top:45px; }
.cf-submission .cf-close { position:absolute; top:0; right:0; }
.cf-submission h2 { font-size:40px; }
.cf-submission p { color:var(--cf-sage); font-size:13px; line-height:1.8; }
.cf-submission fieldset { min-width:0; border:0; padding:0; margin-top:25px; }
.cf-submission legend { font-size:11px; color:var(--cf-ember); margin-bottom:20px; }
.cf-submission label { display:block; font-size:12px; margin-bottom:8px; }
.cf-submission input[type=file], .cf-submission textarea { width:100%; color:var(--cf-parchment); background:var(--cf-forest); border:1px solid var(--cf-line); border-radius:5px; padding:12px; margin-bottom:20px; font:inherit; font-size:13px; }
.cf-submission .cf-consent { display:flex; align-items:flex-start; gap:12px; color:var(--cf-sage); line-height:1.8; }
.cf-consent input { flex-shrink:0; margin-top:5px; }
.cf-submission .button { margin-top:20px; opacity:.7; cursor:not-allowed; transform:none; }
@media (max-width:900px) {
 .cf-resource-layout { gap:25px; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); }
 .cf-paper-body, .cf-before-area { padding-inline:28px; }
 .cf-files { padding:20px; }
 .campfire-page .navigation { background:var(--cf-forest); }
 .cf-sharing { align-items:flex-start; flex-direction:column; gap:24px; }
}
@media (max-width:700px) {
 .campfire-page .campfire-welcome { grid-template-columns:1fr; padding-block:45px 60px; gap:35px; }
 .campfire-page .campfire-login { padding:30px 0 0; border-left:0; border-top:1px solid var(--cf-line); }
 .campfire-page .campfire-mascot { width:min(230px,70%); }
 .cf-hero { min-height:580px; }
 .cf-hero-copy { padding-block:55px; }
 .cf-hero h1 { font-size:clamp(48px,11vw,66px); }
 .cf-index-heading { align-items:flex-start; flex-direction:column; gap:20px; }
 .cf-volume { text-align:left; }
 .cf-index { padding-inline:22px; }
 .cf-index a { grid-template-columns:30px minmax(0,1fr) 20px; gap:15px; padding-block:27px; }
 .cf-index h3 { font-size:28px; }
 .cf-resource-header { padding-block:35px 40px; }
 .cf-resource-header h1 { font-size:clamp(46px,11vw,62px); overflow-wrap:anywhere; }
 .cf-resource-layout { grid-template-columns:1fr; gap:25px; }
 .cf-paper { display:contents; }
 .cf-before-area { grid-row:1; background:var(--cf-parchment); color:var(--cf-ink); padding:28px; }
 .cf-files { grid-row:2; position:static; max-height:none; overflow:visible; }
 .cf-paper-body { grid-row:3; background:var(--cf-parchment); color:var(--cf-ink); padding:30px 28px; }
 .cf-before { padding-bottom:0; border:0; }
 .cf-before-area .eyebrow, .cf-paper-body .eyebrow { color:#805429; }
 .cf-before-area h2, .cf-paper-body h2 { font-size:34px; margin-bottom:22px; }
 .cf-before-area p, .cf-before-area li, .cf-paper-body p { color:var(--cf-muted); font-size:14px; line-height:1.9; }
 .cf-before-area .cf-draft-label, .cf-paper-body .cf-draft-label { font-size:12px; }
 .cf-before dl > div { grid-template-columns:1fr; gap:5px; }
 .cf-mosaic { grid-template-columns:1fr; gap:18px; }
 .cf-photo img, .cf-photo:nth-child(3n+2) img { aspect-ratio:1.35; }
 .cf-note-nav { font-size:12px; gap:20px; }
 .cf-note-nav span { max-width:150px; }
 .cf-lightbox-controls { flex-wrap:wrap; }
 .cf-lightbox-controls p { order:3; width:100%; text-align:center; }
}
