:root{
  --ink:#12100E; --ink-2:#1B1815; --moss:#24312A;
  --bone:#F7F3EC; --bone-2:#EFE8DB; --paper:#FCFAF5;
  --gold:#A98142; --gold-deep:#7A5C28; --gold-pale:#C9B48A;
  --text:#332F29; --muted:#5A544C; --rule:#DED4C2;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Jost",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --wrap:1180px;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--paper); color:var(--text); font-family:var(--sans);
  font-weight:300; font-size:clamp(1rem,.96rem + .18vw,1.075rem); line-height:1.7; overflow-x:hidden; }
img{ max-width:100%; display:block; height:auto; }
h1,h2,h3{ margin:0; font-family:var(--serif); font-weight:400; line-height:1.06; color:var(--ink); }
p{ margin:0 0 1rem; } ul{ margin:0; padding:0; list-style:none; } a{ color:inherit; }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 clamp(1.2rem,4vw,2.6rem); }
.eyebrow{ font-size:.72rem; letter-spacing:.34em; text-transform:uppercase; color:var(--gold-deep); }
.h2{ font-family:var(--serif); font-size:clamp(2.1rem,1.3rem + 3vw,3.4rem); line-height:1.04; }
.h2 em{ font-style:italic; color:var(--gold-deep); }
.lede{ font-family:var(--serif); font-size:clamp(1.15rem,1rem + .8vw,1.5rem); line-height:1.45; color:var(--ink-2); }
.lede em{ color:var(--gold-deep); }
.rule{ height:1px; background:var(--gold); opacity:.6; width:60px; margin:1.4rem 0; }
section{ padding:clamp(3.4rem,6vw,6rem) 0; }
.small{ font-size:.86rem; line-height:1.6; color:var(--muted); }

/* ---- top bar ---- */
.top{ position:fixed; inset:0 0 auto 0; z-index:60; display:flex; justify-content:space-between;
  align-items:center; padding:.9rem clamp(1.2rem,4vw,2.6rem); background:rgba(18,16,14,.82);
  backdrop-filter:blur(8px); color:#F2EADC; }
.top a{ text-decoration:none; }
.top .brand{ font-family:var(--serif); font-size:1.06rem; letter-spacing:.04em; }
.top .langs{ display:flex; gap:.55rem; align-items:center; font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; }
.top .langs a{ color:#A79E90; padding:.25rem .1rem; }
.top .langs a.on{ color:var(--gold-pale); border-bottom:1px solid var(--gold); }

/* ---- hero ---- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; padding:6rem 0 3rem; color:#F2EADC; }
.hero .bg{ position:absolute; inset:0; overflow:hidden; }
.hero .bg img{ width:100%; height:100%; object-fit:cover; }
.hero .bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(12,10,8,.86) 0%,rgba(12,10,8,.52) 34%,rgba(12,10,8,.62) 66%,rgba(12,10,8,.93) 100%); }
.hero .inner{ position:relative; z-index:2; max-width:760px; }
.hero h1{ color:#FAF5EA; font-size:clamp(2.6rem,1.6rem + 5.2vw,5.2rem); line-height:.98; }
.hero h1 em{ font-style:italic; color:var(--gold-pale); }
.hero .dates{ font-size:.78rem; letter-spacing:.3em; text-transform:uppercase; color:#EFE4CD; }
.hero .sub{ font-family:var(--serif); font-style:italic; font-size:clamp(1.05rem,.95rem + .6vw,1.32rem);
  color:#E4D9C4; max-width:56ch; line-height:1.42; }
.hero .eyebrow{ color:var(--gold-pale); }

/* ---- countdown ---- */
.count{ display:flex; gap:clamp(.7rem,2vw,1.6rem); margin:2rem 0 2.4rem; flex-wrap:wrap; }
.count div{ min-width:76px; border:1px solid rgba(201,180,138,.5); padding:.75rem .5rem; text-align:center; }
.count b{ display:block; font-family:var(--sans); font-weight:400; letter-spacing:.02em; font-size:clamp(1.7rem,1.2rem + 1.6vw,2.6rem);
  line-height:1; color:var(--gold-pale); }
.count span{ font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:#BDAF90; }
#liveNote{ font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--gold-pale); }

/* ---- buttons ---- */
.btns{ display:flex; gap:.9rem; flex-wrap:wrap; }
.btn{ display:inline-block; text-decoration:none; font-size:.76rem; letter-spacing:.2em;
  text-transform:uppercase; padding:1.05rem 1.7rem; border:1px solid var(--gold); transition:.25s; }
.btn--solid{ background:var(--gold); color:#14120F; }
.btn--solid:hover{ background:var(--gold-deep); border-color:var(--gold-deep); color:#FAF5EA; }
.btn--ghost{ color:var(--gold-pale); }
.btn--ghost:hover{ background:rgba(169,129,66,.16); }
.btn--dark{ background:var(--ink); color:#F2EADC; border-color:var(--ink); }
.btn--dark:hover{ background:var(--moss); border-color:var(--moss); }

/* ---- blocks ---- */
.band{ background:var(--bone); }
.band--dark{ background:var(--moss); color:#E9E2D3; }
.band--dark h2,.band--dark .h2{ color:#F4EEE0; }
.band--dark .eyebrow{ color:var(--gold-pale); }
.band--dark .lede{ color:#DED6C6; }
.grid4{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(1.2rem,2.4vw,2.2rem); }
.grid3{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:clamp(1.2rem,2.4vw,2.2rem); }
.two{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(1.6rem,4vw,3.4rem); align-items:center; }
.card{ background:var(--paper); border:1px solid var(--rule); padding:clamp(1.3rem,2.2vw,1.9rem); }
.band--dark .card{ background:rgba(255,255,255,.05); border-color:rgba(201,180,138,.3); }
.card-img{ width:100%; height:190px; object-fit:cover; display:block; margin:0 0 1.1rem; }
.card-img--tall{ height:230px; }
.card-img--full{ width:100%; max-width:250px; height:auto; object-fit:fill; margin:0 auto 1.2rem; }
.card h3{ font-size:1.5rem; margin-bottom:.5rem; }
.band--dark .card h3{ color:#F4EEE0; }
.card .k{ font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); }
.band--dark .card .k{ color:var(--gold-pale); }
.card li{ padding:.42rem 0; font-size:.95rem; line-height:1.5; border-bottom:1px solid var(--rule); }
.band--dark .card li{ border-color:rgba(201,180,138,.22); color:#DED6C6; }
.card li:last-child{ border-bottom:0; }
.rules li{ display:flex; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--rule); font-size:1rem; line-height:1.45; }
.rules li:last-child{ border-bottom:0; }
.rules .n{ font-family:var(--serif); font-size:1.15rem; color:var(--gold-deep); min-width:1.9rem; }
figure{ margin:0; }
figure img{ width:100%; }
.fcap{ font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); padding-top:.7rem; }
.check li{ display:flex; gap:.8rem; align-items:flex-start; padding:.44rem 0; font-size:.95rem; line-height:1.5; }
.check i{ width:9px; height:9px; border:1px solid var(--gold); flex:0 0 auto; margin-top:.45rem; display:block; }

/* ---- form ---- */
.form{ display:flex; gap:.7rem; flex-wrap:wrap; margin-top:1.2rem; }
.form input{ flex:1 1 260px; background:transparent; border:1px solid var(--rule); color:var(--text);
  font:inherit; font-size:.95rem; padding:1rem 1.1rem; }
.band--dark .form input{ border-color:rgba(201,180,138,.42); color:#F2EADC; }
.form input:focus{ outline:2px solid var(--gold); outline-offset:2px; }
.form button{ font:inherit; cursor:pointer; font-size:.76rem; letter-spacing:.2em; text-transform:uppercase;
  padding:1rem 1.7rem; background:var(--gold); color:#14120F; border:1px solid var(--gold); }
.form button:hover{ background:var(--gold-deep); color:#FAF5EA; }
.dl{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; margin-top:1.4rem; }
.dl a{ text-decoration:none; border:1px solid var(--rule); padding:1.1rem 1.3rem; display:block; transition:.25s; }
.band--dark .dl a{ border-color:rgba(201,180,138,.34); }
.dl a:hover{ border-color:var(--gold); }
.dl .lang{ font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); }
.band--dark .dl .lang{ color:var(--gold-pale); }
.dl .name{ font-family:var(--serif); font-size:1.22rem; }
footer{ background:var(--ink); color:#A79E90; padding:3rem 0 2.4rem; font-size:.8rem; }
footer a{ color:#E8E1D5; text-decoration:none; }
.faq h3{ font-size:1.25rem; margin-bottom:.35rem; }
.faq > div{ padding:1.1rem 0; border-bottom:1px solid var(--rule); }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

/* ---- accountability ---- */
.acct{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:clamp(1.1rem,2.4vw,2rem); }
.acct .step{ border-top:2px solid var(--gold); padding-top:1.1rem; }
.acct .num{ font-family:var(--serif); font-size:2.2rem; line-height:1; color:var(--gold-deep); display:block; margin-bottom:.5rem; }
.acct h3{ font-size:1.35rem; margin-bottom:.4rem; }
.band--dark .acct h3{ color:#F4EEE0; }
.tag-big{ font-family:var(--serif); font-size:clamp(1.25rem,.35rem + 4.5vw,3.4rem); color:var(--gold-deep); line-height:1.1; white-space:nowrap; letter-spacing:-.01em; }
.band--dark .tag-big{ color:var(--gold-pale); }
.punch{ font-family:var(--serif); font-size:clamp(1.5rem,1.1rem + 1.8vw,2.3rem); line-height:1.25; color:var(--ink); margin:0 0 1rem; }
.band--dark .punch{ color:#F4EEE0; }
.punch em{ font-style:italic; color:var(--gold-deep); }
.band--dark .punch em{ color:var(--gold-pale); }
.stack > * + *{ margin-top:1.5rem; }
.pill-row{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.2rem; }
.pill-row span{ border:1px solid var(--rule); padding:.5rem 1rem; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.band--dark .pill-row span{ border-color:rgba(201,180,138,.34); color:#C9B48A; }
.day1{ font-family:var(--serif); font-size:clamp(2rem,1.2rem + 3vw,3.2rem); line-height:1.05; color:var(--ink); }
.band--dark .day1{ color:#F4EEE0; }
