/* ═══════════════════════════════════════════════════════════════════
   GoalHero Campaign Template — template.css
   Token defaults come from config.theme, applied via template.js.
   These defaults match the Fog & Film palette as a fallback.
   ═══════════════════════════════════════════════════════════════════ */

/* ── TOKENS (defaults — overridden per campaign via JS) ── */
:root {
  --paper:   #f0ece4;
  --paper2:  #e8e2d8;
  --white:   #ffffff;
  --ink:     #1a1510;
  --ink2:    #2d2820;
  --ink3:    #4a4540;
  --muted:   #7a7268;
  --gold:    #c8902a;
  --gold2:   #e8b050;
  --gold3:   #f5dfa0;
  --crimson: #8a1205;
  --blood:   #5a0a01;
  --dark:    #0d0b09;
  --dark2:   #1a1510;
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; line-height:1.6; font-size:17px; overflow-x:hidden; }

/* ── FILMSTRIP ── */
.filmstrip {
  height:16px; background:var(--ink);
  display:flex; align-items:center; overflow:hidden;
}
.filmstrip::before {
  content:'';
  flex:1; height:8px;
  background: repeating-linear-gradient(90deg, var(--paper) 0px, var(--paper) 10px, transparent 10px, transparent 18px);
  opacity:0.25;
}

/* ── NAV ── */
nav {
  position:sticky; top:0; z-index:900;
  background:var(--dark); color:#fff;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 2.5rem; height:50px;
  border-bottom:2px solid var(--gold);
}
.nav-logo { font-family:'Bebas Neue',sans-serif; font-size:1.5rem; letter-spacing:0.14em; color:var(--gold2); text-decoration:none; }
.nav-logo span { color:#fff; }
.nav-platform { font-size:0.65rem; letter-spacing:0.15em; color:var(--muted); font-family:'Special Elite',serif; }
.nav-platform strong { color:var(--gold); }
.nav-links { display:flex; gap:2rem; }
.nav-links a { font-size:0.68rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.55); text-decoration:none; transition:color .15s; }
.nav-links a:hover { color:var(--gold2); }
@media(max-width:700px){ .nav-links { display:none; } }

/* ── HERO ── */
.hero {
  background:var(--white);
  border-bottom:3px solid var(--ink);
  position:relative; overflow:hidden;
  padding:4rem 2rem 4rem;
  container-type:inline-size;
}
.hero::before, .hero::after {
  content:''; position:absolute;
  width:60px; height:60px;
  border:3px solid var(--gold);
  opacity:0.25;
}
.hero::before { top:2rem; left:2rem; border-right:none; border-bottom:none; }
.hero::after  { bottom:2rem; right:2rem; border-left:none; border-top:none; }

.hero-inner {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:1fr 380px; gap:4rem; align-items:start;
}
.hero-left { display:flex; flex-direction:column; align-items:flex-start; }
.hero-eyebrow {
  display:inline-block;
  font-family:'Bebas Neue',sans-serif;
  font-size:0.7rem; letter-spacing:0.5em;
  color:var(--crimson); margin-bottom:1.5rem;
  border-top:1px solid var(--crimson); border-bottom:1px solid var(--crimson);
  padding:0.25rem 1rem;
}
.hero-title {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(3rem,12cqw,10rem);
  line-height:0.82; letter-spacing:0.03em;
  color:var(--ink);
  margin-bottom:1.2rem; text-align:left;
  word-break:break-word; overflow-wrap:break-word;
}
.hero-title .amp { color:var(--crimson); }
.hero-subtitle {
  font-family:'Special Elite',serif;
  font-size:clamp(1rem,2vw,1.2rem);
  color:var(--ink3); letter-spacing:0.05em;
  margin-bottom:0.4rem;
}
.hero-meta {
  font-size:0.72rem; font-weight:700; letter-spacing:0.22em;
  text-transform:uppercase; color:var(--muted);
  margin-bottom:1.5rem;
}
.hero-meta span { color:var(--gold); }
.hero-tagline {
  font-family:'Special Elite',serif;
  font-size:1rem; color:var(--ink3); line-height:1.75;
  max-width:480px; margin-bottom:2rem;
  border-left:3px solid var(--gold); padding-left:1rem;
}
.hero-btns { display:flex; gap:1rem; flex-wrap:wrap; }

/* progress */
.progress-bar-bg {
  height:8px; background:var(--paper2); overflow:hidden;
  border:1px solid var(--paper2); margin-bottom:0.75rem;
}
.progress-bar-fill {
  height:100%; width:0%;
  background:linear-gradient(90deg,var(--crimson),var(--gold),var(--gold2));
  transition:width 1.4s ease;
}
.progress-meta {
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.3rem 1rem;
  font-size:0.75rem; font-weight:700; letter-spacing:0.1em;
  text-transform:uppercase; color:var(--muted);
}
.progress-meta strong { font-size:1.1rem; color:var(--ink); letter-spacing:0; }

.btn-dark {
  display:inline-block; background:var(--ink); color:var(--white);
  font-family:'Bebas Neue',sans-serif; font-size:1.05rem; letter-spacing:0.2em;
  padding:0.85rem 2.8rem; border:2px solid var(--ink); cursor:pointer; text-decoration:none;
  transition:background .15s, color .15s;
}
.btn-dark:hover { background:var(--crimson); border-color:var(--crimson); }
.btn-outline {
  display:inline-block; background:transparent; color:var(--ink);
  font-family:'Bebas Neue',sans-serif; font-size:1.05rem; letter-spacing:0.2em;
  padding:0.85rem 2.8rem; border:2px solid var(--ink); cursor:pointer; text-decoration:none;
  transition:border-color .15s, color .15s;
}
.btn-outline:hover { border-color:var(--crimson); color:var(--crimson); }

/* success banner */
.success-banner {
  display:none; background:#f0fdf4; border:2px solid #16a34a;
  padding:1.2rem 1.5rem; margin-bottom:2rem; text-align:center;
}
.success-banner.show { display:block; }
.success-banner h3 { color:#16a34a; margin-bottom:0.3rem; }
.success-banner p { font-size:0.9rem; color:var(--ink3); }

/* Fund box */
.hero-fund-box {
  background:var(--white);
  border:3px solid var(--ink);
  padding:2rem;
  box-shadow:6px 6px 0 var(--ink);
  display:flex; flex-direction:column; gap:0.5rem;
}
.fund-box-raised {
  font-family:'Bebas Neue',sans-serif;
  font-size:3.5rem; color:var(--ink); letter-spacing:0.04em; line-height:1;
}
.fund-box-label {
  font-size:0.72rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase;
  color:var(--muted); margin-bottom:0.5rem;
}
.fund-box-meta {
  display:flex; justify-content:space-between;
  font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--muted); margin-bottom:1rem;
}
.fund-box-meta strong { color:var(--ink); font-size:0.9rem; letter-spacing:0; }
.fund-box-btn {
  display:block; width:100%; background:var(--ink); color:var(--white);
  font-family:'Bebas Neue',sans-serif; font-size:1.1rem; letter-spacing:0.2em;
  padding:1rem; text-align:center; text-decoration:none; cursor:pointer;
  border:2px solid var(--ink); transition:background .15s;
  margin-top:0.5rem;
}
.fund-box-btn:hover { background:var(--crimson); border-color:var(--crimson); }
.fund-box-secondary {
  width:100%; background:transparent; color:var(--ink3);
  font-family:'Special Elite',serif; font-size:0.85rem;
  border:1px solid var(--paper2); padding:0.6rem; cursor:pointer;
  text-decoration:underline; transition:color .15s;
}
.fund-box-secondary:hover { color:var(--crimson); }
.fund-box-stats {
  display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
  background:var(--paper2); margin-top:0.5rem;
}
.fund-stat {
  background:var(--white); padding:0.6rem 0.3rem; text-align:center;
}
.fund-stat strong {
  display:block; font-family:'Bebas Neue',sans-serif; font-size:1.5rem;
  color:var(--ink); line-height:1;
}
.fund-stat span {
  font-size:0.6rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--muted);
}
@media(max-width:900px){
  .hero-inner { grid-template-columns:1fr; gap:2.5rem; }
  .hero-left { align-items:center; text-align:center; }
  .hero-title { text-align:center; }
  .hero-tagline { text-align:left; }
  .hero-fund-box { max-width:500px; margin:0 auto; width:100%; }
  .hero-btns { justify-content:center; }
}

/* ── HORIZONTAL RULES ── */
.gold-rule {
  height:3px;
  background:linear-gradient(90deg,transparent,var(--gold) 20%,var(--gold2) 50%,var(--gold) 80%,transparent);
}
.ink-rule { height:3px; background:var(--ink); }

/* ── SECTION CHROME ── */
section { padding:5rem 2rem; }
.container { max-width:1100px; margin:0 auto; }

/* stamp block */
.stamp-block {
  display:inline-block;
  background:var(--ink);
  padding:0.5rem 1.4rem 0.7rem;
  transform:rotate(-1deg);
  margin-bottom:1.5rem;
}
.stamp-block .pre {
  font-family:'Bebas Neue',sans-serif;
  font-size:1.3rem; letter-spacing:0.35em;
  color:var(--gold); text-transform:uppercase; line-height:1;
}
.stamp-block h2 {
  font-family:'Bebas Neue',sans-serif;
  font-size:3.2rem; letter-spacing:0.08em;
  color:var(--white); line-height:0.9;
}

.section-eyebrow {
  font-family:'Bebas Neue',sans-serif;
  font-size:0.7rem; letter-spacing:0.45em;
  color:var(--crimson); margin-bottom:0.5rem;
}
.section-title {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(3rem,7vw,5.5rem);
  letter-spacing:0.05em; line-height:0.88;
  color:var(--ink); margin-bottom:0.8rem;
  border-left:5px solid var(--crimson); padding-left:1rem;
}
.section-body {
  font-family:'Special Elite',serif;
  font-size:1.08rem; color:var(--ink3);
  max-width:640px; margin-bottom:2.5rem; line-height:1.9;
  padding-left:calc(1rem + 5px);
}

/* ── STORY ── */
.story { background:var(--paper); }
.story-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; }
@media(max-width:768px){ .story-grid { grid-template-columns:1fr; gap:2rem; } }
.story-right { display:flex; flex-direction:column; gap:2px; }

.story-text p {
  font-family:'Special Elite',serif;
  color:var(--ink3); margin-bottom:1.2rem; font-size:1.05rem; line-height:1.9;
}
.story-text p strong { color:var(--ink); }

.story-alert {
  padding:1rem 1.2rem;
  border-left:4px solid var(--crimson);
  background:rgba(138,18,5,0.06);
}
.story-alert-label {
  font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase;
  font-weight:700; color:var(--crimson); display:block; margin-bottom:0.4rem;
}
.story-alert p {
  margin-top:0 !important; font-size:0.92rem !important; color:var(--ink3) !important;
}
.story-alert a { color:var(--crimson); font-weight:700; text-decoration:none; }
.story-alert a:hover { text-decoration:underline; }

/* stat grid */
.stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.stat-card { background:var(--ink); padding:1.8rem 1.2rem; text-align:center; }
.stat-val {
  font-family:'Bebas Neue',sans-serif;
  font-size:3rem; letter-spacing:0.06em; color:var(--gold2); line-height:1;
}
.stat-label { font-size:0.62rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:rgba(255,255,255,0.45); margin-top:0.3rem; }

/* ── FILMS CAROUSEL ── */
.films { background:var(--dark); padding-bottom:3rem; }
.films .section-eyebrow { color:var(--gold); }
.films .section-title { color:var(--white); border-left-color:var(--gold); }
.films .section-body { color:rgba(255,255,255,0.5); }
.films .ink-rule { background:rgba(255,255,255,0.08); }
.carousel-wrap { position:relative; display:flex; align-items:center; gap:0.75rem; margin-top:2.5rem; }
.carousel-viewport { overflow:hidden; flex:1; }
.carousel-track { display:flex; gap:2px; transition:transform 0.4s ease; will-change:transform; }
.carousel-slide { flex:0 0 calc(33.333% - 2px); min-width:240px; }
@media(max-width:860px){ .carousel-slide { flex:0 0 calc(50% - 1px); } }
@media(max-width:600px){
  .carousel-wrap { flex-direction:column; }
  .carousel-arrow { display:none; }
  .carousel-viewport { overflow:visible; }
  .carousel-track { flex-direction:column; transform:none !important; }
  .carousel-slide { flex:0 0 auto; width:100%; min-width:unset; }
  .carousel-dots { display:none; }
}
.carousel-arrow {
  flex-shrink:0; width:2.6rem; height:2.6rem; border-radius:50%;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15);
  color:rgba(255,255,255,0.7); cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .2s, color .2s; font-size:1.2rem; line-height:1; z-index:2;
}
.carousel-arrow:hover { background:var(--gold); color:#000; border-color:var(--gold); }
.carousel-dots { display:flex; justify-content:center; gap:0.5rem; margin-top:1.5rem; }
.carousel-dot { width:0.45rem; height:0.45rem; border-radius:50%; background:rgba(255,255,255,0.2); border:none; cursor:pointer; transition:background .2s; }
.carousel-dot.active { background:var(--gold); }
.film-card {
  background:var(--dark2); overflow:hidden;
  display:flex; flex-direction:column; cursor:pointer;
  transition:transform .2s, box-shadow .2s;
}
.film-card:hover { transform:translateY(-4px); box-shadow:0 8px 32px rgba(0,0,0,0.5); }
.film-poster { position:relative; background:#000; }
.film-poster img { width:100%; display:block; object-fit:contain; max-height:380px; }
.film-poster-badge {
  position:absolute; bottom:0.6rem; left:0.6rem;
  background:var(--crimson); color:#fff;
  font-family:'Bebas Neue',sans-serif; font-size:0.58rem; letter-spacing:0.22em;
  padding:0.15rem 0.55rem; text-transform:uppercase;
}
.film-card-body { padding:1.2rem; flex:1; display:flex; flex-direction:column; border-top:2px solid rgba(200,144,42,0.3); }
.film-card:hover .film-card-body { border-top-color:var(--gold); }
.film-title {
  font-family:'Bebas Neue',sans-serif; font-size:1.45rem; letter-spacing:0.06em;
  color:var(--white); line-height:1.1; margin-bottom:0.3rem;
}
.film-status { font-size:0.7rem; color:var(--gold); font-weight:700; letter-spacing:0.1em; margin-bottom:0.6rem; }
.film-dir { font-family:'Special Elite',serif; font-size:0.82rem; color:rgba(255,255,255,0.5); margin-bottom:0.6rem; font-style:italic; }
.film-desc { font-family:'Special Elite',serif; font-size:0.88rem; color:rgba(255,255,255,0.65); line-height:1.7; flex:1; }
.films-cta { text-align:center; margin-top:2.5rem; }

/* ── GUESTS ── */
.guests { background:var(--paper); }
.guests-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:2px; background:var(--paper2); }
.guest-card { background:var(--white); overflow:hidden; display:flex; flex-direction:column; }
.guest-photo { width:100%; height:280px; object-fit:cover; object-position:top center; display:block; filter:contrast(1.05) saturate(0.9); }
.guest-photo.center { object-position:center center; }
.guest-body { padding:1.3rem; flex:1; display:flex; flex-direction:column; border-top:3px solid var(--paper2); }
.guest-name { font-family:'Bebas Neue',sans-serif; font-size:1.5rem; letter-spacing:0.06em; color:var(--ink); line-height:1; margin-bottom:0.2rem; }
.guest-role { font-family:'Special Elite',serif; font-size:0.82rem; color:var(--gold); margin-bottom:0.7rem; font-style:italic; }
.guest-bio { font-family:'Special Elite',serif; font-size:0.9rem; color:var(--ink3); line-height:1.75; flex:1; }
.guest-imdb {
  display:inline-block; margin-top:1rem; padding:0.45rem 1rem;
  background:var(--ink); color:var(--gold2);
  font-family:'Bebas Neue',sans-serif; font-size:0.75rem; letter-spacing:0.22em;
  text-decoration:none; text-transform:uppercase; transition:background .15s;
  align-self:flex-start;
}
.guest-imdb:hover { background:var(--crimson); color:#fff; }

/* ── BUDGET ── */
.budget { background:var(--paper); }
.budget-table { width:100%; border-collapse:collapse; font-size:0.98rem; }
.budget-table th {
  text-align:left; font-size:0.65rem; font-weight:700; letter-spacing:0.22em;
  text-transform:uppercase; color:var(--muted); padding:0.75rem 1rem;
  border-bottom:2px solid var(--ink);
}
.budget-table td { padding:0.8rem 1rem; border-bottom:1px solid var(--paper2); color:var(--ink3); vertical-align:top; }
.budget-table tr:hover td { background:rgba(200,144,42,0.06); }
.budget-table .cat-header td {
  background:var(--ink); color:var(--gold2);
  font-family:'Bebas Neue',sans-serif; font-size:1rem; letter-spacing:0.18em;
  padding:0; cursor:pointer; user-select:none;
  border-left:4px solid var(--gold);
}
.budget-table .cat-header td .cat-inner {
  display:flex; justify-content:space-between; align-items:center;
  width:100%; padding:0.6rem 1rem;
}
.budget-table .cat-header td .cat-name { flex:1; }
.budget-table .cat-header td .cat-name::after { content:' ▾'; font-size:0.7rem; opacity:0.6; display:inline-block; transition:transform .2s; }
.budget-table .cat-header.collapsed td .cat-name::after { transform:rotate(-90deg); }
.budget-table .cat-header td .cat-total { color:var(--gold); font-size:0.9rem; opacity:0.85; white-space:nowrap; }
.budget-table .cat-item.hidden { display:none !important; }
.budget-table .item-name { color:var(--ink); font-weight:500; }
.budget-table .amount { text-align:right; font-family:'Bebas Neue',sans-serif; font-size:1rem; letter-spacing:0.06em; color:var(--ink); white-space:nowrap; }
.budget-table .total-row td {
  border-top:3px solid var(--ink); border-bottom:none;
  font-family:'Bebas Neue',sans-serif; font-size:1.35rem; letter-spacing:0.1em; color:var(--ink);
  padding-top:1.2rem;
}
.budget-table .total-row .amount { color:var(--crimson); }
.budget-note { font-size:0.76rem; color:var(--muted); margin-top:1rem; font-style:italic; }

/* ── MILESTONES ── */
.milestones { background:var(--white); }
.milestones-list { list-style:none; display:flex; flex-direction:column; gap:0; border:2px solid var(--ink); }
.milestone { display:flex; align-items:center; gap:1.2rem; padding:1rem 1.3rem; border-bottom:1px solid var(--paper2); transition:background .15s; }
.milestone:last-child { border-bottom:none; }
.milestone.reached { background:var(--ink); }
.milestone-amount { font-family:'Bebas Neue',sans-serif; font-size:1.5rem; letter-spacing:0.08em; color:var(--muted); white-space:nowrap; min-width:6rem; }
.milestone.reached .milestone-amount { color:var(--gold2); }
.milestone-label { font-family:'Special Elite',serif; font-size:0.95rem; color:var(--ink3); flex:1; }
.milestone.reached .milestone-label { color:rgba(255,255,255,0.75); }
.milestone-check { color:var(--gold); font-size:1.2rem; opacity:0; }
.milestone.reached .milestone-check { opacity:1; }

/* ── TIERS ── */
.tiers-section { background:var(--dark); }
.tiers-section .section-title { color:var(--white); border-left-color:var(--gold); }
.tiers-section .section-body { color:rgba(255,255,255,0.5); }
.tiers-section .section-eyebrow { color:var(--gold); }

.rewards-intro {
  background:rgba(200,144,42,0.1); border-left:4px solid var(--gold);
  padding:1rem 1.5rem; margin-bottom:2.5rem;
  font-family:'Special Elite',serif; font-size:1rem; color:rgba(255,255,255,0.7);
}

.tiers-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:2px; background:rgba(255,255,255,0.08); }

.tier-card { background:var(--dark2); overflow:hidden; display:flex; flex-direction:column; padding:1.5rem; gap:0.6rem; }
.tier-card:hover { background:#252015; }
.tier-card.featured { background:#1a1205; box-shadow:inset 0 0 0 2px var(--gold); position:relative; }
.tier-card.featured::before {
  content:'MOST POPULAR';
  display:block; background:var(--gold); color:var(--ink);
  font-family:'Bebas Neue',sans-serif; font-size:0.72rem; letter-spacing:0.3em;
  text-align:center; padding:0.35rem; margin:-1.5rem -1.5rem 0.6rem;
}
.tier-icon { font-size:2rem; line-height:1; }
.tier-header-text { flex:1; }
.tier-name { font-family:'Bebas Neue',sans-serif; font-size:1.25rem; letter-spacing:0.1em; color:var(--white); line-height:1; margin-bottom:0.1rem; }
.tier-tagline { font-size:0.72rem; color:rgba(255,255,255,0.4); letter-spacing:0.04em; }
.tier-price-badge { font-family:'Bebas Neue',sans-serif; font-size:2.8rem; letter-spacing:0.04em; color:var(--gold2); line-height:1; white-space:nowrap; }
.tier-perks { list-style:none; margin:0.5rem 0 1rem; flex:1; }
.tier-perks li {
  font-family:'Special Elite',serif; font-size:0.92rem; color:rgba(255,255,255,0.65);
  padding:0.3rem 0 0.3rem 1.4rem; position:relative;
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.tier-perks li:last-child { border-bottom:none; }
.tier-perks li::before { content:'▸'; position:absolute; left:0; color:var(--gold); font-size:0.65rem; top:0.5rem; }
.tier-btn {
  width:100%; padding:0.9rem;
  background:var(--gold); color:var(--ink);
  font-family:'Bebas Neue',sans-serif; font-size:1rem; letter-spacing:0.2em;
  border:none; cursor:pointer; transition:background .15s;
  font-weight:900; margin-top:auto;
}
.tier-btn:hover { background:var(--gold2); }

/* ── CHECKOUT MODAL ── */
.modal-backdrop { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.85); z-index:1000; align-items:flex-start; justify-content:center; padding:1rem; overflow-y:auto; }
.modal-backdrop.open { display:flex; }
.modal {
  background:var(--white); border:3px solid var(--ink);
  padding:2.5rem; width:100%; max-width:480px; position:relative;
  margin:auto;
}
@media(max-height:700px){ .modal { margin:1rem auto; } }
.modal::before {
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg,var(--crimson),var(--gold),var(--gold2));
}
.modal-close { position:sticky; top:0; float:right; z-index:10; background:none; border:none; color:var(--muted); font-size:1.4rem; cursor:pointer; margin-bottom:-2rem; }
.modal-close:hover { color:var(--crimson); }
.modal-title { font-family:'Bebas Neue',sans-serif; font-size:2.2rem; letter-spacing:0.1em; color:var(--ink); margin-bottom:0.2rem; }
.modal-sub { font-size:0.8rem; color:var(--muted); margin-bottom:1.5rem; letter-spacing:0.05em; }
.form-group { margin-bottom:1.1rem; }
.form-group label { display:block; font-size:0.68rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); margin-bottom:0.4rem; }
.form-group input, .form-group select, .form-group textarea {
  width:100%; background:var(--paper); border:2px solid var(--paper2);
  padding:0.85rem 1rem; color:var(--ink);
  font-family:'Inter',sans-serif; font-size:1rem; outline:none; transition:border-color .15s;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--ink); }
.form-group select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23333' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; }
.form-group textarea { resize:vertical; min-height:80px; }
.modal-tier-summary { background:var(--ink); padding:0.85rem 1.1rem; margin-bottom:1.5rem; display:flex; justify-content:space-between; align-items:center; }
.modal-tier-name { font-family:'Special Elite',serif; font-size:0.85rem; color:rgba(255,255,255,0.65); }
.modal-tier-amt { font-family:'Bebas Neue',sans-serif; font-size:1.6rem; color:var(--gold2); letter-spacing:0.08em; }
.submit-btn { width:100%; padding:1rem; background:var(--ink); color:var(--white); font-family:'Bebas Neue',sans-serif; font-size:1.1rem; letter-spacing:0.2em; border:none; cursor:pointer; transition:background .15s; }
.submit-btn:hover { background:var(--crimson); }
.submit-btn:disabled { opacity:0.5; cursor:not-allowed; }
.modal-section-label { font-size:0.65rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); margin-bottom:0.6rem; display:block; }
.radio-group { display:flex; flex-direction:row; gap:1rem; margin-bottom:0.9rem; }
.radio-option { display:flex; flex-direction:row; align-items:center; gap:0.4rem; cursor:pointer; }
.link-send-row { display:flex; flex-direction:row; gap:0.75rem; margin-bottom:1rem; }
.link-send-btn { flex:1; padding:0.7rem; border:2px solid var(--ink); background:transparent; font-family:'Special Elite',serif; cursor:pointer; font-size:0.85rem; transition:background .15s, color .15s; }
.link-send-btn:hover { background:var(--ink); color:white; }
.checkbox-row { display:flex; flex-direction:row; align-items:center; gap:0.65rem; margin-bottom:0.9rem; cursor:pointer; }

/* ── PAYMENT METHOD SELECTOR ── */
.payment-method-label { font-size:0.65rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); margin-bottom:0.75rem; display:block; }
.payment-method-row { display:flex; gap:0.6rem; margin-bottom:1.5rem; }
.pm-btn { flex:1; padding:0.75rem 0.4rem; border:2px solid rgba(0,0,0,0.15); background:#f5f2ee; font-family:'Special Elite',serif; font-size:0.82rem; cursor:pointer; transition:all .15s; text-align:center; line-height:1.3; display:flex; flex-direction:column; align-items:center; gap:0.25rem; }
.pm-btn:hover { border-color:var(--ink); background:#ede9e2; }
.pm-btn.active { border-color:var(--ink); background:var(--ink); color:#fff; }
.pm-btn .pm-icon { font-size:1.4rem; }
.pm-btn .pm-name { font-size:0.72rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; }

/* ── MODAL SUCCESS STATE ── */
#modal-success { display:none; text-align:center; padding:1rem 0; }
#modal-success.show { display:block; }
.success-icon { font-size:3rem; margin-bottom:0.75rem; }
.success-heading { font-family:'Bebas Neue',sans-serif; font-size:1.8rem; letter-spacing:0.08em; color:var(--ink); margin-bottom:0.5rem; }
.success-sub { font-size:0.9rem; color:var(--muted); margin-bottom:1.5rem; line-height:1.5; }
.payment-link-btn { display:block; width:100%; padding:1rem; background:var(--ink); color:var(--white); font-family:'Bebas Neue',sans-serif; font-size:1.1rem; letter-spacing:0.2em; border:none; cursor:pointer; text-decoration:none; text-align:center; margin-bottom:0.75rem; transition:background .15s; }
.payment-link-btn:hover { background:var(--crimson); color:var(--white); }

/* ── DISCLAIMER MODAL ── */
.disclaimer-modal { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:9000; align-items:center; justify-content:center; padding:2rem; }
.disclaimer-modal.open { display:flex; }
.disclaimer-box { background:var(--white); border:3px solid var(--ink); max-width:540px; width:100%; padding:2.5rem; position:relative; box-shadow:8px 8px 0 var(--ink); }
.disclaimer-box h2 { font-family:'Bebas Neue',sans-serif; font-size:2rem; letter-spacing:0.06em; color:var(--ink); margin-bottom:1rem; border-bottom:2px solid var(--gold); padding-bottom:0.5rem; }
.disclaimer-box p { font-family:'Special Elite',serif; font-size:0.95rem; color:var(--ink3); line-height:1.75; margin-bottom:0.9rem; }
.disclaimer-box strong { color:var(--ink); }
.disclaimer-sig { font-style:italic; color:var(--crimson) !important; }
.disclaimer-close { position:absolute; top:1rem; right:1rem; background:none; border:none; font-size:1.2rem; cursor:pointer; color:var(--muted); }

/* ── CONTACT MODAL ── */
.contact-box { max-width:400px; text-align:center; }
.contact-box h2 { margin-bottom:0.4rem; }
.contact-founder { font-family:'Special Elite',serif; font-size:1rem; color:var(--muted); margin-bottom:1.8rem; }
.contact-btns { display:flex; flex-direction:column; gap:0.85rem; }
.contact-cta { display:block; padding:1rem 1.5rem; font-family:'Bebas Neue',sans-serif; font-size:1.4rem; letter-spacing:0.1em; text-decoration:none; border:2px solid var(--ink); transition:background .15s, color .15s; cursor:pointer; text-align:center; }
.contact-cta-call { background:var(--ink); color:var(--white); }
.contact-cta-call:hover { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.contact-cta-email { background:transparent; color:var(--ink); }
.contact-cta-email:hover { background:var(--paper2); }

/* ── FILM DETAIL MODAL ── */
.film-modal-backdrop { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.88); z-index:1100; align-items:center; justify-content:center; padding:1.5rem 1rem; overflow-y:auto; }
.film-modal-backdrop.open { display:flex; }
.film-modal { background:#111; border:1px solid rgba(255,255,255,0.1); width:100%; max-width:1000px; position:relative; margin:auto; display:flex; flex-direction:column; overflow:hidden; border-radius:4px; }
.film-modal-close { position:absolute; top:1rem; right:1rem; z-index:10; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); color:rgba(255,255,255,0.8); font-size:1rem; width:2rem; height:2rem; cursor:pointer; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.film-modal-close:hover { background:var(--crimson); border-color:var(--crimson); color:#fff; }
.film-modal-header { display:flex; align-items:center; gap:1rem; padding:1.5rem 2rem 0.75rem; border-bottom:1px solid rgba(255,255,255,0.08); }
.film-modal-type { font-size:0.62rem; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:rgba(255,255,255,0.4); }
.film-modal-badge { display:inline-flex; align-items:center; gap:0.4rem; background:rgba(200,144,42,0.2); border:1px solid var(--gold); color:var(--gold2); font-size:0.62rem; font-weight:700; letter-spacing:0.18em; padding:0.2rem 0.7rem; text-transform:uppercase; }
.film-modal-title { padding:0.6rem 2rem 1rem; font-family:'Bebas Neue',sans-serif; font-size:3rem; letter-spacing:0.04em; color:#fff; line-height:1; }
.film-modal-content { display:flex; flex-direction:row; overflow:hidden; }
.film-modal-images { width:55%; flex-shrink:0; display:flex; flex-direction:column; background:#000; position:relative; }
.film-modal-slideshow { position:relative; overflow:hidden; background:#000; height:420px; }
.film-modal-slide { position:absolute; inset:0; opacity:0; transition:opacity .35s; }
.film-modal-slide.active { opacity:1; }
.film-modal-slide img { width:100%; height:100%; object-fit:contain; display:block; cursor:zoom-in; background:#000; }
.film-modal-slide video { width:100%; height:100%; object-fit:contain; display:block; background:#000; position:relative; z-index:2; }
.fm-slide-btn { position:absolute; top:50%; transform:translateY(-50%); background:rgba(0,0,0,0.5); border:1px solid rgba(255,255,255,0.2); color:rgba(255,255,255,0.8); width:2.2rem; height:2.2rem; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1.2rem; z-index:5; transition:background .15s; }
.fm-slide-btn:hover { background:rgba(0,0,0,0.85); color:#fff; }
.fm-slide-prev { left:0.5rem; }
.fm-slide-next { right:0.5rem; }
.film-modal-thumbs { display:flex; gap:3px; padding:3px; background:#000; overflow-x:auto; flex-shrink:0; }
.film-modal-thumb { width:70px; height:46px; object-fit:cover; flex-shrink:0; cursor:pointer; opacity:0.55; border:2px solid transparent; transition:opacity .15s, border-color .15s; }
.film-modal-thumb.active { opacity:1; border-color:var(--gold); }
.film-modal-body { flex:1; padding:1.5rem 1.8rem; overflow-y:auto; overflow-x:hidden; display:flex; flex-direction:column; background:#111; }
.film-modal-label { font-size:0.6rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.35); margin-bottom:0.3rem; margin-top:1.2rem; }
.film-modal-label:first-child { margin-top:0; }
.film-modal-dir { font-family:'Special Elite',serif; font-size:0.95rem; color:rgba(255,255,255,0.8); margin-bottom:0.2rem; }
.film-modal-desc { font-family:'Special Elite',serif; font-size:0.92rem; color:rgba(255,255,255,0.6); line-height:1.8; }
.film-modal-tags { margin-top:auto; padding-top:1.2rem; display:flex; flex-wrap:wrap; gap:0.5rem; }
.film-modal-tag { font-size:0.6rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.4); border-left:2px solid var(--gold); padding-left:0.5rem; }
@media(max-width:640px){
  .film-modal-content { flex-direction:column; }
  .film-modal-images { width:100%; }
  .film-modal-title { font-size:2rem; padding:0.5rem 1.2rem; }
  .film-modal-header { padding:1rem 1.2rem 0.5rem; }
  .film-modal-body { padding:1rem 1.2rem; }
}

/* ── LIGHTBOX ── */
.lightbox-backdrop { display:none; position:fixed; inset:0; z-index:1200; background:rgba(0,0,0,0.96); align-items:center; justify-content:center; cursor:zoom-out; }
.lightbox-backdrop.open { display:flex; }
.lightbox-img { max-width:92vw; max-height:88vh; object-fit:contain; box-shadow:0 0 80px rgba(0,0,0,0.8); cursor:default; }
.lightbox-close { position:fixed; top:1.2rem; right:1.5rem; background:none; border:none; color:rgba(255,255,255,0.6); font-size:2rem; cursor:pointer; z-index:1201; line-height:1; }
.lightbox-close:hover { color:#fff; }
.lightbox-hint { position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%); font-size:0.68rem; letter-spacing:0.18em; text-transform:uppercase; color:rgba(255,255,255,0.3); pointer-events:none; }

/* ── FAQ ── */
.faq { background:var(--paper); }
.faq-list { display:flex; flex-direction:column; border:2px solid var(--ink); }
.faq-item { border-bottom:1px solid var(--paper2); }
.faq-item:last-child { border-bottom:none; }
.faq-q {
  display:flex; align-items:center; justify-content:space-between;
  padding:1.2rem 1.3rem; cursor:pointer; user-select:none;
  font-family:'Bebas Neue',sans-serif; font-size:1.05rem; letter-spacing:0.08em;
  color:var(--ink); transition:background .15s; gap:1rem;
}
.faq-q:hover { background:rgba(200,144,42,0.06); }
.faq-q .faq-chevron { color:var(--gold); font-size:0.8rem; transition:transform .2s; flex-shrink:0; }
.faq-item.open .faq-chevron { transform:rotate(90deg); }
.faq-a { display:none; padding:0 1.3rem 1.2rem; font-family:'Special Elite',serif; font-size:0.95rem; color:var(--ink3); line-height:1.75; }
.faq-item.open .faq-a { display:block; }

/* ── UPDATES (preview on main page) ── */
.updates { background:var(--white); }
.updates-preview-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; margin:2rem 0 1.5rem; }
.update-preview-card { display:flex; flex-direction:column; gap:0.45rem; background:var(--paper); padding:1.6rem 1.5rem 1.4rem; border-left:4px solid var(--gold); text-decoration:none; color:inherit; transition:transform .15s,box-shadow .15s; }
.update-preview-card:hover { transform:translateY(-3px); box-shadow:0 6px 24px rgba(0,0,0,0.09); }
.update-preview-badge { font-size:0.62rem; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; margin-bottom:0.15rem; }
.update-preview-date { font-size:0.63rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink3); }
.update-preview-title { font-family:'Bebas Neue',sans-serif; font-size:1.45rem; letter-spacing:0.06em; color:var(--ink); line-height:1.1; }
.update-preview-excerpt { font-family:'Special Elite',serif; font-size:0.88rem; color:var(--ink3); line-height:1.7; flex:1; }
.update-preview-cta { font-size:0.7rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin-top:0.4rem; }
/* type accent colours */
.type-thanks .update-preview-badge   { color:var(--gold); }
.type-thanks                          { border-left-color:var(--gold); }
.type-progress .update-preview-badge { color:#2e7d4f; }
.type-progress                        { border-left-color:#2e7d4f; }
.type-journal .update-preview-badge  { color:var(--crimson); }
.type-journal                         { border-left-color:var(--crimson); }
.updates-see-all { text-align:center; margin-top:0.5rem; }
/* fallback: old full-list mode */
.updates-list { display:flex; flex-direction:column; gap:2px; }
.update-card { background:var(--paper); padding:1.5rem; border-left:4px solid var(--gold); }
.update-date { font-size:0.65rem; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--muted); margin-bottom:0.3rem; }
.update-title { font-family:'Bebas Neue',sans-serif; font-size:1.4rem; letter-spacing:0.06em; color:var(--ink); margin-bottom:0.4rem; }
.update-body { font-family:'Special Elite',serif; font-size:0.95rem; color:var(--ink3); line-height:1.75; }
@media(max-width:700px){ .updates-preview-grid { grid-template-columns:1fr; } }

/* ── FOOTER ── */
footer { background:var(--dark); border-top:3px solid var(--gold); padding:3rem 2rem; text-align:center; }
.footer-logo { font-family:'Bebas Neue',sans-serif; font-size:3.5rem; letter-spacing:0.14em; color:var(--white); line-height:1; }
.footer-logo .amp { color:var(--gold); }
.footer-sub { font-size:0.68rem; letter-spacing:0.22em; text-transform:uppercase; color:rgba(255,255,255,0.6); margin:0.4rem 0 1.5rem; }
.footer-links { display:flex; gap:2rem; justify-content:center; flex-wrap:wrap; margin-bottom:1.5rem; }
.footer-links a, .footer-links button { font-size:0.7rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.75); text-decoration:none; transition:color .15s; background:none; border:none; cursor:pointer; font-family:'Inter',sans-serif; }
.footer-links a:hover, .footer-links button:hover { color:var(--gold2); }
.footer-legal { font-size:0.7rem; color:rgba(255,255,255,0.5); max-width:600px; margin:0 auto; line-height:1.8; }
.footer-legal a { color:var(--gold); text-decoration:none; }
.footer-share { margin:0 0 1.8rem; }
.footer-share-label { font-size:0.62rem; letter-spacing:0.25em; text-transform:uppercase; color:rgba(255,255,255,0.3); margin:0 0 0.9rem; }
.footer-share-icons { display:flex; gap:1rem; justify-content:center; }
.share-btn { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; border:none; cursor:pointer; transition:transform .15s, opacity .15s; text-decoration:none; flex-shrink:0; }
.share-btn:hover { transform:scale(1.12); opacity:0.9; }
.share-btn svg { width:22px; height:22px; display:block; }
.share-fb { background:#1877F2; }
.share-x { background:#000; border:1.5px solid rgba(255,255,255,0.18); }
.share-ig { background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }

/* ── RESPONSIVE ── */
@media(max-width:700px){
  .tiers-grid { grid-template-columns:1fr; gap:0.85rem; background:transparent; }
  .tier-card { outline:1px solid rgba(255,255,255,0.18); }
  .tier-card.featured { outline:2px solid var(--gold); }
  .budget-table th:nth-child(2), .budget-table td:nth-child(2) { display:none; }
  .budget-table, .budget-table tbody, .budget-table thead,
  .budget-table tr, .budget-table th, .budget-table td { display:block; width:100%; box-sizing:border-box; }
  .budget-table thead tr { display:flex; }
  .budget-table thead th:nth-child(1) { flex:1; }
  .budget-table thead th:nth-child(2) { display:none; }
  .budget-table thead th:nth-child(3) { text-align:right; }
  .budget-table tr:not(.cat-header):not(.total-row) { display:flex; }
  .budget-table tr:not(.cat-header):not(.total-row) td:nth-child(1) { flex:1; }
  .budget-table tr:not(.cat-header):not(.total-row) td:nth-child(2) { display:none; }
  .budget-table tr:not(.cat-header):not(.total-row) td:nth-child(3) { text-align:right; }
  .budget-table .total-row { display:flex; }
  .budget-table .total-row td:nth-child(1) { flex:1; }
  .budget-table .total-row td:nth-child(2) { display:none; }
  .hero-title { font-size:clamp(1.8rem,11cqw,5rem); }
  .progress-meta { flex-wrap:wrap; row-gap:0.35rem; justify-content:space-between; }
}
@media(max-width:480px){
  .guests-grid { grid-template-columns:1fr 1fr; }
}
@media(min-width:701px){
  .sms-only { display:none !important; }
}
