/* ---------- Fonts (original site wali Marcellus, self-hosted) ---------- */
@font-face { font-family: 'Marcellus'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/marcellus-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Marcellus'; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/marcellus-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* =========================================================
   CHARCOAL - main stylesheet (v2: lighter, warmer, flame effects)
   Inspect me: colors, fonts, animation speeds sab :root me hain.
   ========================================================= */

:root {
  /* ---- Colors (dark sections - ab pure black nahi, warm brown) ---- */
  --color-bg:        #29241f;
  --color-surface:   #342d26;
  --color-surface-2: #403730;
  --color-text:      #f7f1d9;
  --color-muted:     #cfc6ad;
  --color-heading:   #fffbea;
  --color-line:      rgba(241, 232, 220, 0.16);
  --field-bg:        #403730;

  /* ---- Light sections (cream) - ye site ko halka banate hain ---- */
  --light-bg:        #f7f1d9;
  --light-text:      #3b322a;
  --light-muted:     #6d6253;
  --light-heading:   #29241f;
  --light-line:      rgba(41, 36, 31, 0.18);

  /* ---- Flame colors ---- */
  --color-accent:       #f47920;
  --color-accent-hover: #ff9648;
  --color-gold:         #e9aa3c;
  --color-accent-dark:  #c2511a;   /* cream par readable orange */

  /* ---- Fonts ---- */
  --font-heading: 'Marcellus', 'Optima', 'Candara', Georgia, serif;
  --font-body:    'Helvetica Neue', Helvetica, Arial, sans-serif;

  /* ---- Animation: slow & smooth. Bada number = slow ---- */
  --anim-duration:  1.4s;     /* reveal speed */
  --anim-distance:  24px;
  --anim-ease:      cubic-bezier(0.22, 0.61, 0.36, 1);
  --hover-duration: 0.6s;
  --word-duration:  1.2s;     /* heading words ka reveal */
  --word-stagger:   0.09s;    /* har word ke beech gap (JS me bhi 0.09) */
  --curtain-duration: 1.8s;   /* image reveal */
  --hero-zoom-duration: 28s;
  --flame-speed:    1;        /* flame flicker ka scale, JS nahi - bas reference */
  --marquee-duration: 55s;    /* scrolling band ki speed */

  --section-space: 7rem;
  --header-height: 84px;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; transition: color var(--hover-duration) ease; }
a:hover { color: var(--color-accent); }
::selection { background: var(--color-accent); color: #1f150e; }
.skip-link { position: absolute; z-index: 2000; left: 1rem; top: 1rem; background: var(--color-accent); color: #1f150e; padding: .5rem 1rem; }

/* ---------- Typography ---------- */
h1, h2, h3, h4, h5, .brand, .display-title, .hero-title {
  font-family: var(--font-heading);
  font-weight: 400;
  letter-spacing: .01em;
  line-height: 1.12;
  color: var(--color-heading);
}
.hero-title    { font-size: clamp(2.8rem, 7vw, 6rem); margin-bottom: 1.5rem; }
.display-title { font-size: clamp(2.2rem, 4.5vw, 4rem); margin-bottom: 1.25rem; }
h3 { font-size: 1.7rem; }
.lead-text { font-size: 1.15rem; color: var(--color-muted); max-width: 40rem; }
.muted { color: var(--color-muted); }
.brand { font-size: 1.5rem; letter-spacing: .4em; font-weight: 400; color: #fff; display: inline-flex; align-items: center; }

/* Italic words = flame text (halka glow flicker) */
em {
  color: var(--color-accent);
  font-style: italic;
  animation: flameText 4.5s ease-in-out infinite alternate;
}
@keyframes flameText {
  from { text-shadow: 0 0 10px rgba(238,122,44,.25), 0 -2px 18px rgba(247,182,79,.15); }
  to   { text-shadow: 0 0 22px rgba(238,122,44,.6),  0 -4px 32px rgba(247,182,79,.35); }
}

/* ---------- Sections (dark / warm / light) ---------- */
.section        { padding: var(--section-space) 0; }
.section-warm   { background: var(--color-surface); }
.section-light {
  /* Light section apne variables override karta hai, baaki sab auto badal jata hai */
  background: var(--light-bg);
  --color-text:    var(--light-text);
  --color-muted:   var(--light-muted);
  --color-heading: var(--light-heading);
  --color-line:    var(--light-line);
  --color-accent:  var(--color-accent-dark);
  --color-accent-hover: #a63f0f;
  --field-bg: #ffffff;
  --color-surface-2: #e7dccd;
  color: var(--light-text);
}
.section-light em { animation: none; text-shadow: none; }
.section-light .btn-ember { color: #fff; }
.section-light .btn-ghost { border-color: rgba(74,57,45,.5); color: var(--light-heading); }

/* ---------- Header / Navbar ---------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1030; transition: background var(--hover-duration) ease, box-shadow var(--hover-duration) ease; }
.site-header .navbar { padding: 1.4rem 0; transition: padding var(--hover-duration) ease; }
.site-header.is-scrolled { background: rgba(38, 29, 23, .94); backdrop-filter: blur(8px); box-shadow: 0 1px 0 var(--color-line); }
.site-header.is-scrolled .navbar { padding: .8rem 0; }
.navbar .nav-link { color: #f7f1d9; font-size: .72rem; text-transform: uppercase; letter-spacing: .2em; padding: .5rem .85rem; position: relative; }
.navbar .nav-link::after { content: ""; position: absolute; left: .85rem; right: .85rem; bottom: .15rem; height: 1px; background: linear-gradient(90deg, var(--color-accent), var(--color-gold)); transform: scaleX(0); transform-origin: left; transition: transform var(--hover-duration) var(--anim-ease); }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--color-gold); }
.navbar .nav-link:hover::after, .navbar .nav-link.active::after { transform: scaleX(1); }
.navbar-toggler { border: 1px solid var(--color-line); }

.scroll-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1100; transform: scaleX(0); transform-origin: left; background: linear-gradient(90deg, #c2511a, var(--color-accent), var(--color-gold)); box-shadow: 0 0 10px rgba(238,122,44,.7); }

.mobile-menu { background: var(--color-bg); color: var(--color-text); }
.mobile-link { display: block; padding: .8rem 0; font-family: var(--font-heading); font-size: 1.8rem; border-bottom: 1px solid var(--color-line); }
.mobile-link.active { color: var(--color-accent); }

/* Brand ke saath chhoti flickering flame */
.brand-flame { width: 15px; height: 22px; margin-right: .6rem; transform-origin: 50% 100%; animation: flameFlicker 2.6s ease-in-out infinite alternate; filter: drop-shadow(0 0 6px rgba(238,122,44,.8)); }
@keyframes flameFlicker {
  0%   { transform: scale(1, 1) skewX(0deg); }
  30%  { transform: scale(.92, 1.1) skewX(-4deg); }
  60%  { transform: scale(1.05, .95) skewX(3deg); }
  100% { transform: scale(.95, 1.15) skewX(-2deg); }
}

/* ---------- Buttons ---------- */
.btn { border-radius: 0; letter-spacing: .16em; text-transform: uppercase; font-size: .74rem; padding: .7rem 1.6rem; transition: all var(--hover-duration) ease; }
.btn-lg { padding: .95rem 2.2rem; }
.btn-ember { background: linear-gradient(135deg, var(--color-accent), #f7873a); border: 1px solid var(--color-accent); color: #1f150e; font-weight: 500; }
.btn-ember:hover { background: linear-gradient(135deg, var(--color-accent-hover), var(--color-gold)); border-color: var(--color-gold); color: #1f150e; box-shadow: 0 0 26px rgba(247,182,79,.55); transform: translateY(-2px); }
.section-light .btn-ember:hover { color: #fff; }
.btn-glow { animation: btnGlow 3.6s ease-in-out infinite; }   /* hero/cta buttons ka halka pulse */
@keyframes btnGlow { 0%,100% { box-shadow: 0 0 0 rgba(238,122,44,0); } 50% { box-shadow: 0 0 28px rgba(238,122,44,.55); } }
.btn-outline-ember { border: 1px solid var(--color-accent); color: var(--color-accent); background: transparent; }
.btn-outline-ember:hover { background: var(--color-accent); color: #1f150e; box-shadow: 0 0 22px rgba(238,122,44,.45); }
.btn-ghost { border: 1px solid rgba(255,255,255,.55); color: #fff; background: transparent; }
.btn-ghost:hover { border-color: var(--color-gold); color: var(--color-gold); }
.text-link { color: var(--color-accent); letter-spacing: .04em; }
.text-link:hover { color: var(--color-accent-hover); }

/* ---------- Image-background blocks (hero, page hero, cta) ---------- */
.bg-image { position: relative; isolation: isolate; background: var(--color-bg); overflow: hidden; color: var(--color-text); }
.bg-image::before {            /* photo: slow zoom + parallax (--py JS set karta hai) */
  content: ""; position: absolute; inset: -12% 0; z-index: -2;
  background: var(--bg) center / cover no-repeat;
  translate: 0 var(--py, 0px);
  animation: slowZoom var(--hero-zoom-duration) ease-out forwards;
}
.bg-image::after {             /* overlay - pehle se halka; aur halka karna ho to opacity kam karo */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(ellipse at 50% 105%, rgba(238,122,44,.45), transparent 62%),
    linear-gradient(180deg, rgba(30,18,10,.38) 0%, rgba(30,18,10,.28) 45%, rgba(38,29,23,.92) 100%);
}
@keyframes slowZoom { from { transform: scale(1); } to { transform: scale(1.1); } }
.bg-image > .container-xl { position: relative; z-index: 3; }
.bg-image h1, .bg-image h2, .bg-image h3 { color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.35); }
.bg-image .lead-text { color: #f0e4d4; }

.hero { min-height: 100vh; display: flex; align-items: center; padding: calc(var(--header-height) + 3rem) 0 6rem; }
.hero .lead-text { margin-bottom: 2.2rem; }
.page-hero { min-height: 62vh; display: flex; align-items: flex-end; padding: calc(var(--header-height) + 4rem) 0 6rem; }
.cta-band { padding: 8rem 0 9rem; }

/* ---------- FLAME EFFECTS ---------- */
.embers { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }   /* udte angaare (canvas, JS) */
.fire-edge { position: absolute; left: 0; right: 0; bottom: -30px; height: 260px; z-index: 1; pointer-events: none; overflow: hidden; mix-blend-mode: screen; }
.fire-edge i {                  /* har blob ek flame ki lau hai */
  position: absolute; bottom: -70px;
  width: var(--w, 260px); height: var(--h, 220px);
  border-radius: 50% 50% 45% 45% / 70% 70% 30% 30%;
  background: radial-gradient(ellipse at 50% 85%, rgba(255,210,100,.95), rgba(240,110,30,.55) 42%, rgba(200,50,10,0) 72%);
  filter: blur(22px);
  transform-origin: 50% 100%;
  opacity: .75;
  animation: flicker var(--d, 4s) ease-in-out var(--dl, 0s) infinite alternate;
}
@keyframes flicker {
  0%   { transform: scale(.9, .8)   translateX(-6px); opacity: .5; }
  30%  { transform: scale(1.05, 1.15) translateX(8px); opacity: .85; }
  60%  { transform: scale(.95, .95)  translateX(-4px); opacity: .65; }
  100% { transform: scale(1.1, 1.25) translateX(5px); opacity: .9; }
}

/* Scrolling band */
.marquee { background: linear-gradient(90deg, #c2511a, var(--color-accent), var(--color-gold), var(--color-accent), #c2511a); background-size: 200% 100%; animation: heat 14s linear infinite; color: #1f150e; overflow: hidden; padding: 1.1rem 0; position: relative; z-index: 4; }
@keyframes heat { to { background-position: 200% 0; } }
.marquee-track { display: flex; width: max-content; animation: marquee var(--marquee-duration) linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-item { font-family: var(--font-heading); font-style: italic; font-size: clamp(1.5rem, 3vw, 2.2rem); white-space: nowrap; display: inline-flex; align-items: center; gap: 2rem; padding-right: 2rem; }
.marquee-item svg { width: 14px; height: 20px; fill: #1f150e; flex: none; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Heading word-by-word reveal (JS words wrap karta hai) ---------- */
.word { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .06em .14em; margin: 0 -.06em -.14em; }
.word > span { display: inline-block; transform: translateY(115%); transition: transform var(--word-duration) var(--anim-ease); }
.is-split.is-visible .word > span { transform: none; }
.hero-title.anim-load { animation: none; opacity: 1; }

/* ---------- Image frames (curtain reveal + slow hover zoom) ---------- */
.img-frame { overflow: hidden; background: var(--color-surface-2); position: relative; }
.img-frame img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--anim-ease), scale var(--curtain-duration) var(--anim-ease); }
.img-frame:hover img { transform: scale(1.06); }
.img-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(238,122,44,.3), transparent 55%); opacity: 0; transition: opacity var(--hover-duration) ease; pointer-events: none; }
.img-frame:hover::after { opacity: 1; }
.js .curtain { clip-path: inset(0 0 100% 0); transition: clip-path var(--curtain-duration) var(--anim-ease); }
.js .curtain img { scale: 1.25; }
.js .curtain.is-visible { clip-path: inset(0 0 0 0); }
.js .curtain.is-visible img { scale: 1; }
.ratio-tall { aspect-ratio: 4 / 5; }
.ratio-wide { aspect-ratio: 16 / 10; }

/* ---------- Dish cards ---------- */
.dish-card { transition: transform var(--hover-duration) var(--anim-ease); }
.dish-card:hover { transform: translateY(-8px); }
.dish-card .img-frame { aspect-ratio: 4 / 5; margin-bottom: 1.1rem; }
.dish-card h3 { font-size: 1.5rem; margin-bottom: .4rem; }
.dish-card:hover h3 { color: var(--color-gold); }
.dish-card p { color: var(--color-muted); font-size: .95rem; margin: 0; }

/* ---------- Craft columns ---------- */
.craft-item { border-top: 1px solid var(--color-line); padding-top: 1.5rem; height: 100%; position: relative; }
.craft-item::before { content: ""; position: absolute; top: -1px; left: 0; height: 2px; width: 0; background: linear-gradient(90deg, var(--color-accent), var(--color-gold)); transition: width 1.4s var(--anim-ease); }
.reveal.is-visible .craft-item::before { width: 100%; }
.craft-num { font-family: var(--font-heading); font-size: 2.4rem; color: var(--color-accent); line-height: 1; display: block; margin-bottom: .8rem; }

/* ---------- Gallery (mosaic + filter) ---------- */
.gallery-filter { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 2rem; }
.gallery-filter button { background: transparent; border: 1px solid var(--color-line); color: var(--color-text); padding: .5rem 1.3rem; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; transition: all var(--hover-duration) ease; }
.gallery-filter button:hover, .gallery-filter button.active { border-color: var(--color-accent); background: var(--color-accent); color: #fff; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; grid-auto-flow: dense; gap: .9rem; }
.gallery-grid .img-frame { cursor: zoom-in; border: 0; padding: 0; display: block; width: 100%; height: 100%; }
.gallery-grid .g-w2 { grid-column: span 2; }
.gallery-grid .g-h2 { grid-row: span 2; }
.gallery-grid [hidden] { display: none; }
@media (max-width: 767px) { .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; } }
.modal-content { background: #1a120d; border: 1px solid var(--color-line); border-radius: 0; }
.modal-body img { width: 100%; max-height: 80vh; object-fit: contain; }

/* ---------- Experiences ---------- */
.exp-row { padding: 4rem 0; border-top: 1px solid var(--color-line); }
.exp-row:first-child { border-top: 0; }

/* ---------- Menu ---------- */
.menu-nav { position: sticky; top: 72px; z-index: 1000; background: rgba(38,29,23,.95); border-bottom: 1px solid rgba(241,232,220,.16); backdrop-filter: blur(8px); }
.menu-nav .nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.menu-nav .nav::-webkit-scrollbar { display: none; }
.menu-nav a { white-space: nowrap; padding: 1rem 1rem; font-size: .88rem; color: #c4b6a6; }
.menu-nav a:hover { color: var(--color-gold); }
.menu-note { border: 1px solid var(--color-line); padding: 1rem 1.25rem; color: var(--color-muted); font-size: .92rem; }
.menu-section { padding: 4rem 0 1rem; }
.menu-section h2 { font-size: clamp(2rem, 3.5vw, 3rem); margin-bottom: 2rem; }
.menu-item { padding: 1.4rem 0; border-bottom: 1px solid var(--color-line); transition: padding-left var(--hover-duration) var(--anim-ease); }
.menu-item:hover { padding-left: .8rem; }
.menu-item h3 { font-size: 1.5rem; margin: 0 0 .25rem; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.menu-item:hover h3 { color: var(--color-accent); }
.menu-item p { margin: 0; color: var(--color-muted); }
.diet-tag { font-family: var(--font-body); font-size: .68rem; border: 1px solid var(--color-accent); color: var(--color-accent); padding: .05rem .45rem; border-radius: 2px; letter-spacing: .05em; }
.menu-photo { aspect-ratio: 4 / 3; }

/* ---------- Journal ---------- */
.post-card { display: block; height: 100%; }
.post-card .img-frame { aspect-ratio: 16 / 10; margin-bottom: 1.1rem; }
.post-card h3 { font-size: 1.6rem; margin-bottom: .4rem; transition: color var(--hover-duration) ease; }
.post-card:hover h3 { color: var(--color-accent); }
.post-meta { color: var(--color-muted); font-size: .85rem; }
.post-body p { font-size: 1.08rem; margin-bottom: 1.4rem; }

/* ---------- FAQ accordion ---------- */
.accordion { --bs-accordion-bg: transparent; --bs-accordion-color: var(--color-text); --bs-accordion-border-color: var(--color-line); --bs-accordion-btn-focus-box-shadow: none; --bs-accordion-active-bg: transparent; --bs-accordion-active-color: var(--color-accent); }
.accordion-button { font-family: var(--font-heading); font-size: 1.5rem; background: transparent; color: var(--color-heading); padding: 1.4rem 0; box-shadow: none; }
.accordion-button:not(.collapsed) { color: var(--color-accent); background: transparent; box-shadow: none; }
.accordion-button::after { filter: invert(1); }
.section-light .accordion-button::after { filter: none; }
.accordion-item { border-left: 0; border-right: 0; border-radius: 0 !important; }
.accordion-body { padding: 0 0 1.5rem; color: var(--color-muted); }

/* ---------- Forms ---------- */
.form-label { font-size: .85rem; color: var(--color-muted); letter-spacing: .03em; }
.form-control, .form-select {
  background: var(--field-bg); color: var(--color-text);
  border: 1px solid var(--color-line); border-radius: 0; padding: .8rem 1rem;
  transition: border-color var(--hover-duration) ease, box-shadow var(--hover-duration) ease;
}
.form-control:focus, .form-select:focus { background: var(--field-bg); color: var(--color-text); border-color: var(--color-accent); box-shadow: 0 0 14px rgba(238,122,44,.3); }
.form-control::placeholder { color: #8c7d6d; }
.form-select option { background: #31261e; color: #f1e8dc; }
.hp-field { position: absolute; left: -9999px; height: 0; overflow: hidden; }   /* "Leave empty" honeypot */
.alert-ember { border: 1px solid var(--color-accent); background: rgba(238,122,44,.1); color: var(--color-text); border-radius: 0; }
.invalid-text { color: #ff8a7a; font-size: .82rem; }
.notice { border-left: 2px solid var(--color-accent); padding: .8rem 1.2rem; background: var(--color-surface); color: var(--color-muted); }

/* ---------- Contact ---------- */
.contact-label { color: var(--color-muted); font-size: .85rem; margin-bottom: .1rem; }
.contact-value { font-family: var(--font-heading); font-size: 1.5rem; color: var(--color-heading); margin-bottom: 1.4rem; }

/* ---------- Legal pages ---------- */
.legal h2 { font-size: 1.8rem; margin: 2.2rem 0 .8rem; }
.legal p, .legal li { color: var(--color-muted); }

/* ---------- Footer ---------- */
.site-footer { background: #1d1511; padding: 5rem 0 2rem; border-top: 1px solid var(--color-line); position: relative; }
.site-footer::before { content: ""; position: absolute; top: -1px; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--color-accent), var(--color-gold), var(--color-accent), transparent); animation: footerGlow 5s ease-in-out infinite alternate; }
@keyframes footerGlow { from { opacity: .45; } to { opacity: 1; } }
.footer-text { color: var(--color-muted); max-width: 22rem; }
.footer-title { font-family: var(--font-heading); font-size: 1.3rem; margin-bottom: 1rem; color: #fff7ee; }
.footer-links li { margin-bottom: .45rem; color: #c4b6a6; font-size: .92rem; }
.footer-links a { color: #c4b6a6; }
.footer-links a:hover { color: var(--color-gold); }
.footer-bottom { margin-top: 4rem; padding-top: 1.5rem; border-top: 1px solid rgba(241,232,220,.16); color: #c4b6a6; font-size: .85rem; }

/* =========================================================
   REVEAL ANIMATIONS (slow & smooth)
   .reveal    -> scroll par dheere se fade + upar aata hai
   .anim-load -> page load par ek ke baad ek
   .delay-1/2/3 -> stagger
   ========================================================= */
.js .reveal { opacity: 0; transform: translateY(var(--anim-distance)); transition: opacity var(--anim-duration) var(--anim-ease), transform var(--anim-duration) var(--anim-ease); }
.js .reveal.is-visible { opacity: 1; transform: none; }

.anim-load { opacity: 0; animation: fadeUp var(--anim-duration) var(--anim-ease) .3s forwards; }
.anim-load.delay-1 { animation-delay: .7s; }
.anim-load.delay-2 { animation-delay: 1.1s; }
.anim-load.delay-3 { animation-delay: 1.5s; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(var(--anim-distance)); } to { opacity: 1; transform: none; } }

.delay-1 { transition-delay: .15s; }
.delay-2 { transition-delay: .3s; }
.delay-3 { transition-delay: .45s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; }
  .anim-load { opacity: 1; }
  .js .reveal, .js .curtain, .js .curtain img, .word > span { opacity: 1; transform: none; clip-path: none; scale: 1; transition: none; }
  .fire-edge, .embers { display: none; }
}

@media (max-width: 991px) {
  :root { --section-space: 5rem; }
  .site-header { background: rgba(38,29,23,.94); }
  .fire-edge { height: 180px; }
}

/* ---------- Print (menu Print button) ---------- */
@media print {
  body { background: #fff; color: #000; }
  .site-header, .scroll-progress, .site-footer, .menu-nav, .cta-band, .page-hero, .btn, .img-frame, .marquee { display: none !important; }
  h1, h2, h3 { color: #000; }
  .section-light, .section-warm { background: #fff; }
  .js .reveal { opacity: 1 !important; transform: none !important; }
  .menu-item p, .menu-note { color: #333; }
}

/* ---------- Journal article extras ---------- */
.post-lede { font-family: var(--font-heading); font-size: clamp(1.4rem, 2.4vw, 1.9rem); line-height: 1.5; color: var(--color-heading); margin-bottom: 2rem; }
.share-row { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--color-line); }
.share-row .btn { padding: .5rem 1.2rem; }
