/* ============================================================
   SECRET SOLSTICE GAMES — "The Gilded Invitation"
   Midnight navy drench · radiant solstice gold · cream ledger
   ============================================================ */

:root{
  --night-deep:#020817;
  --night:#000f33;            /* brand navy */
  --night-panel:#061640;
  --night-edge:#1b2c63;
  --gold:#facd00;             /* brand gold */
  --gold-warm:#f8bd24;
  --gold-deep:#b8860b;
  --cream:#fdf0e6;            /* brand cream */
  --parchment:#f6e7cf;
  --body:rgba(253,240,230,.86);
  --body-dim:rgba(253,240,230,.62);
  --ink:#0d1230;
  --ink-soft:rgba(13,18,48,.78);
  --display:"Inknut Antiqua",Georgia,serif;
  --sans:"Nunito Sans",system-ui,sans-serif;
  --glow:0 0 40px rgba(250,205,0,.28), 0 0 120px rgba(250,205,0,.12);
  --wrap:1180px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--body);
  background:
    radial-gradient(1200px 700px at 85% -10%, rgba(250,205,0,.07), transparent 60%),
    radial-gradient(900px 600px at -10% 30%, rgba(27,44,99,.55), transparent 65%),
    linear-gradient(180deg, var(--night-deep) 0%, var(--night) 22%, var(--night) 100%);
  background-color:var(--night);
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:var(--gold);text-decoration:none}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.15;color:var(--cream)}
.gilt{color:var(--gold)}
.gilt-dark{color:var(--gold-deep)}

::selection{background:var(--gold);color:var(--night)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.45em;
  font-family:var(--sans);font-weight:800;font-size:1rem;
  padding:.85em 1.6em;border-radius:999px;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  white-space:nowrap;
}
.btn small{font-weight:600;font-size:.82em;opacity:.85}
.btn-gold{
  background:linear-gradient(160deg,var(--gold) 10%,var(--gold-warm) 55%,#e8a213 100%);
  color:var(--night);
  box-shadow:0 4px 18px rgba(250,205,0,.35), inset 0 1px 0 rgba(255,255,255,.5);
}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(250,205,0,.5), inset 0 1px 0 rgba(255,255,255,.5)}
.btn-ghost{
  color:var(--cream);
  border:1px solid rgba(250,205,0,.45);
  background:rgba(250,205,0,.04);
}
.btn-ghost:hover{border-color:var(--gold);background:rgba(250,205,0,.1);transform:translateY(-2px)}
.btn-line{
  color:var(--gold);border:1px solid rgba(250,205,0,.4);
  padding:.55em 1.3em;font-size:.95rem;
}
.btn-line:hover{background:var(--gold);color:var(--night)}

/* ---------- header ---------- */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:50;
  display:flex;align-items:center;gap:2rem;
  padding:.7rem clamp(1rem,4vw,2.5rem);
  background:linear-gradient(180deg, rgba(2,8,23,.92), rgba(2,8,23,.78));
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(250,205,0,.16);
}
.brand{display:flex;align-items:center;gap:.7rem}
.brand img{width:46px;height:auto;filter:drop-shadow(0 0 8px rgba(250,205,0,.45))}
.brand-name{
  font-family:var(--display);font-size:1.02rem;font-weight:600;color:var(--cream);
  line-height:1.1;display:flex;flex-direction:column;
}
.brand-name em{font-style:normal;color:var(--gold);font-size:.78em;letter-spacing:.28em;text-transform:uppercase}
.site-nav{display:flex;gap:1.6rem;margin-left:auto}
.site-nav a{
  color:var(--body);font-weight:700;font-size:.98rem;position:relative;padding:.2em 0;
}
.site-nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;
  background:var(--gold);transition:right .25s ease;
}
.site-nav a:hover{color:var(--gold)}
.site-nav a:hover::after{right:0}
.header-cta{font-size:.92rem;padding:.65em 1.35em}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:44px;height:40px;flex-direction:column;justify-content:center;gap:6px;align-items:center}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--gold);transition:.25s}
.mobile-menu{display:none}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;align-items:center;
  padding:7.5rem clamp(1rem,4vw,2.5rem) 4rem;
}
.hero-sky{position:absolute;inset:0;pointer-events:none}
.star{
  position:absolute;width:3px;height:3px;border-radius:50%;
  background:var(--cream);opacity:.5;
  animation:twinkle 4s ease-in-out infinite;
}
.star.s1{top:12%;left:8%}.star.s2{top:22%;left:28%;animation-delay:1.2s}
.star.s3{top:9%;left:55%;animation-delay:2.1s}.star.s4{top:30%;left:72%;animation-delay:.6s}
.star.s5{top:16%;left:90%;animation-delay:1.7s}.star.s6{top:55%;left:5%;animation-delay:2.6s}
.star.s7{top:68%;left:18%;animation-delay:.9s}.star.s8{top:80%;left:40%;animation-delay:2s}
.star.s9{top:62%;left:60%;animation-delay:1.4s;width:2px;height:2px}
.star.s10{top:75%;left:83%;animation-delay:.3s}.star.s11{top:42%;left:94%;animation-delay:2.8s;width:2px;height:2px}
.star.s12{top:38%;left:45%;animation-delay:1.9s;width:2px;height:2px}
@keyframes twinkle{0%,100%{opacity:.15;transform:scale(.8)}50%{opacity:.7;transform:scale(1.2)}}

.hero-inner{
  width:min(var(--wrap),100%);margin:0 auto;
  display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:clamp(2rem,5vw,4rem);align-items:center;
}
.hero-meta{
  display:flex;align-items:center;gap:.8em;flex-wrap:wrap;
  font-weight:800;font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);margin-bottom:1.4rem;
}
.hero-meta i{font-style:normal;font-size:.7em;opacity:.7}
.hero h1{
  font-size:clamp(2.5rem,5.6vw,4.6rem);
  letter-spacing:-.01em;
  margin-bottom:1.4rem;
}
.hero-sub{
  font-size:clamp(1.05rem,1.5vw,1.22rem);
  max-width:34em;color:var(--body);
  margin-bottom:2rem;
}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem}
.hero-hours{font-size:.95rem;color:var(--body-dim)}
.hero-hours strong{color:var(--cream)}

/* sun centrepiece */
.hero-sun{
  position:relative;
  display:grid;place-items:center;
  min-height:340px;
}
.sun-logo{
  width:min(100%,460px);height:auto;position:relative;z-index:3;
  filter:drop-shadow(0 0 24px rgba(250,205,0,.35));
}
.sun-glow{
  position:absolute;width:120%;aspect-ratio:1;border-radius:50%;z-index:1;
  background:radial-gradient(circle, rgba(250,205,0,.22) 0%, rgba(250,205,0,.08) 38%, transparent 68%);
  animation:breathe 6s ease-in-out infinite;
}
@keyframes breathe{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.08);opacity:1}}
.sun-rays{
  position:absolute;width:96%;aspect-ratio:1;border-radius:50%;z-index:2;
  filter:blur(7px);opacity:.55;
  background:conic-gradient(
    rgba(250,205,0,.14) 0deg 4deg, transparent 4deg 30deg,
    rgba(250,205,0,.14) 30deg 34deg, transparent 34deg 60deg,
    rgba(250,205,0,.14) 60deg 64deg, transparent 64deg 90deg,
    rgba(250,205,0,.14) 90deg 94deg, transparent 94deg 120deg,
    rgba(250,205,0,.14) 120deg 124deg, transparent 124deg 150deg,
    rgba(250,205,0,.14) 150deg 154deg, transparent 154deg 180deg,
    rgba(250,205,0,.14) 180deg 184deg, transparent 184deg 210deg,
    rgba(250,205,0,.14) 210deg 214deg, transparent 214deg 240deg,
    rgba(250,205,0,.14) 240deg 244deg, transparent 244deg 270deg,
    rgba(250,205,0,.14) 270deg 274deg, transparent 274deg 300deg,
    rgba(250,205,0,.14) 300deg 304deg, transparent 304deg 330deg,
    rgba(250,205,0,.14) 330deg 334deg, transparent 334deg 360deg);
  -webkit-mask:radial-gradient(circle, transparent 40%, #000 41%, #000 70%, transparent 71%);
          mask:radial-gradient(circle, transparent 40%, #000 41%, #000 70%, transparent 71%);
  animation:spin 90s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.orbit-star{
  position:absolute;color:var(--gold);z-index:4;font-size:1.1rem;
  animation:twinkle 5s ease-in-out infinite;
}
.orbit-star.o1{top:8%;right:14%}
.orbit-star.o2{bottom:12%;left:10%;animation-delay:1.6s}
.orbit-star.o3{top:40%;left:2%;animation-delay:3s;font-size:.85rem}

/* ---------- ticker ---------- */
.ticker{
  background:linear-gradient(90deg,#e8a213,var(--gold) 30%,var(--gold-warm) 70%,#e8a213);
  border-block:1px solid rgba(2,8,23,.35);
  overflow:hidden;padding:.65rem 0;
  transform:rotate(-.4deg) scale(1.01);
}
.ticker-track{
  display:flex;width:max-content;
  animation:ticker 28s linear infinite;
}
.ticker-track span{
  font-family:var(--display);font-weight:600;font-size:1.05rem;
  color:var(--night);letter-spacing:.14em;text-transform:uppercase;
  white-space:nowrap;
}
@keyframes ticker{to{transform:translateX(-50%)}}

/* ---------- sections shared ---------- */
section{padding:clamp(4rem,8vw,7rem) clamp(1rem,4vw,2.5rem)}
.section-head{width:min(var(--wrap),100%);margin:0 auto clamp(2.2rem,4vw,3.5rem)}
.section-head h2{font-size:clamp(1.9rem,3.6vw,3rem);margin-bottom:.6rem}
.section-head p{max-width:44em;color:var(--body-dim);font-size:1.08rem}

.gild-rule{
  display:flex;align-items:center;gap:1.2rem;
  width:min(var(--wrap),92%);margin:0 auto;color:var(--gold);
}
.gild-rule::before,.gild-rule::after{
  content:"";flex:1;height:3px;
  border-block:1px solid rgba(250,205,0,.35);
}
.gild-rule span{font-size:.85rem}

/* ---------- chambers bento ---------- */
.chamber-grid{
  width:min(var(--wrap),100%);margin:0 auto;
  display:grid;gap:1.4rem;
  grid-template-columns:repeat(12,1fr);
}
.chamber{
  grid-column:span 4;
  background:linear-gradient(170deg,var(--night-panel),rgba(6,22,64,.4));
  border:1px solid rgba(250,205,0,.22);
  border-radius:18px;overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.chamber:hover{transform:translateY(-6px);border-color:rgba(250,205,0,.55);box-shadow:var(--glow)}
.chamber-lg{grid-column:span 12;flex-direction:row;align-items:stretch}
.chamber figure{position:relative;overflow:hidden;aspect-ratio:16/10;flex:1 1 52%}
.chamber-lg figure{aspect-ratio:auto;min-height:320px}
.chamber figure::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(190deg,transparent 55%,rgba(0,15,51,.65));
}
.chamber img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.chamber:hover img{transform:scale(1.045)}
.chamber-body{padding:1.6rem 1.7rem 1.8rem;display:flex;flex-direction:column;gap:.75rem;flex:1 1 48%}
.chamber-lg .chamber-body{justify-content:center;padding:2.4rem 2.6rem}
.chamber h3{font-size:1.35rem;color:var(--gold)}
.chamber-lg h3{font-size:1.75rem}
.chamber-body p{color:var(--body);font-size:1rem}
.chamber-body strong{color:var(--cream)}
.chamber-link{
  margin-top:auto;font-weight:800;font-size:.98rem;color:var(--cream);
  display:inline-flex;gap:.4em;align-items:center;width:fit-content;
  border-bottom:1px solid rgba(250,205,0,.4);padding-bottom:.15em;
  transition:color .25s,border-color .25s;
}
.chamber-link:hover{color:var(--gold);border-color:var(--gold)}
.chamber-link span{transition:transform .25s}
.chamber-link:hover span{transform:translateX(4px)}

/* ---------- events ---------- */
.event-list{width:min(900px,100%);margin:0 auto;display:flex;flex-direction:column}
.event-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:1.6rem;align-items:center;
  padding:1.5rem .6rem;
  border-bottom:1px solid rgba(250,205,0,.18);
  transition:background .25s ease, padding .25s ease;
}
.event-row:first-child{border-top:1px solid rgba(250,205,0,.18)}
.event-row:hover{background:rgba(250,205,0,.05);padding-inline:1.1rem}
.event-day{
  width:76px;height:76px;border-radius:50%;
  border:1px solid rgba(250,205,0,.5);
  background:radial-gradient(circle at 35% 30%, rgba(250,205,0,.2), rgba(250,205,0,.05));
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:var(--gold);flex-shrink:0;
}
.event-day b{font-family:var(--display);font-size:1.15rem;font-weight:600;line-height:1}
.event-day small{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--body-dim);margin-top:.25em}
.event-info h3{font-size:1.28rem;margin-bottom:.2rem}
.event-info p{color:var(--body-dim);font-size:.98rem}
.events-note{margin:1.8rem auto 0;color:var(--body-dim);font-size:.95rem}
.events-note a{border-bottom:1px solid rgba(250,205,0,.4)}
.events-layout{
  width:min(var(--wrap),100%);margin:0 auto;
  display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);
  grid-template-areas:"list art" "note art";
  gap:1rem clamp(2rem,4vw,4rem);align-items:center;
}
.events-layout .event-list{width:auto;grid-area:list}
.events-layout .events-note{grid-area:note}
.events-layout .events-art{grid-area:art;align-self:center}
.events-art{position:relative;transform:rotate(1.6deg)}
.events-art img{
  width:100%;height:auto;border-radius:10px;
  border:1px solid rgba(250,205,0,.45);
  box-shadow:0 20px 50px rgba(0,0,0,.55), var(--glow);
}
.events-art p{
  font-family:var(--display);font-size:.95rem;color:var(--body-dim);
  text-align:center;margin-top:.9rem;letter-spacing:.06em;
}

/* ---------- house rules (cream band) ---------- */
.rules{
  background:
    radial-gradient(800px 400px at 90% 0%, rgba(250,205,0,.25), transparent 60%),
    linear-gradient(180deg,var(--cream),var(--parchment));
  color:var(--ink);
}
.rules-inner{width:min(var(--wrap),100%);margin:0 auto}
.rules .section-head h2{color:var(--ink)}
.rules .section-head p{color:var(--ink-soft)}
.rules-grid{
  display:grid;gap:1.3rem;
  grid-template-columns:repeat(3,1fr);
}
.rule-card{
  background:rgba(255,255,255,.55);
  border:1px solid rgba(13,18,48,.14);
  border-radius:16px;padding:1.7rem 1.6rem;
  box-shadow:0 2px 10px rgba(13,18,48,.06);
  transition:transform .3s ease, box-shadow .3s ease;
}
.rule-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(13,18,48,.12)}
.rule-num{
  font-family:var(--display);font-weight:700;font-size:2rem;line-height:1;
  color:var(--gold-deep);display:block;margin-bottom:.7rem;
}
.rule-card h3{color:var(--ink);font-size:1.15rem;margin-bottom:.4rem}
.rule-card p{color:var(--ink-soft);font-size:.98rem}
.rule-hours dl{display:flex;flex-direction:column;gap:.45rem;margin-top:.6rem}
.rule-hours dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dashed rgba(13,18,48,.18);padding-bottom:.4rem}
.rule-hours dt{font-weight:800;color:var(--ink)}
.rule-hours dd{color:var(--ink-soft)}

/* ---------- bounty board ---------- */
.bounty{
  background:
    radial-gradient(900px 500px at 10% 10%, rgba(27,44,99,.5), transparent 65%),
    var(--night-deep);
}
.bounty-grid{
  width:min(var(--wrap),100%);margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;
}
.quest{
  position:relative;
  background:
    radial-gradient(400px 200px at 80% -10%, rgba(184,134,11,.18), transparent 60%),
    linear-gradient(175deg,var(--parchment),#eedbbd);
  color:var(--ink);
  border-radius:6px;
  padding:2.1rem 1.5rem 1.5rem;
  box-shadow:0 8px 22px rgba(0,0,0,.45);
  transition:transform .3s ease, box-shadow .3s ease;
}
.quest:nth-child(odd){transform:rotate(-1.3deg)}
.quest:nth-child(even){transform:rotate(1.1deg)}
.quest:hover,.quest:focus{transform:rotate(0) translateY(-6px);box-shadow:0 16px 34px rgba(0,0,0,.55);outline:none}
.quest-pin{
  position:absolute;top:-11px;left:50%;transform:translateX(-50%);
  width:22px;height:22px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,var(--gold),#c98f06 70%);
  box-shadow:0 3px 6px rgba(0,0,0,.5), inset 0 -2px 4px rgba(0,0,0,.3);
}
.quest-tag{
  font-size:.72rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-deep);margin-bottom:.5rem;
}
.quest h3{color:var(--ink);font-size:1.18rem;margin-bottom:.5rem}
.quest p{font-size:.95rem;color:var(--ink-soft)}
.quest-reward{
  margin-top:.9rem;padding-top:.7rem;
  border-top:1px dashed rgba(13,18,48,.3);
  font-size:.9rem;
}
.quest-reward b{color:var(--gold-deep)}
.bounty-cta{
  width:min(var(--wrap),100%);margin:2.6rem auto 0;
  display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;
}
.bounty-cta p{color:var(--body-dim);font-style:italic}

/* ---------- vault ---------- */
.vault-grid{
  width:min(var(--wrap),100%);margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.3rem;
}
.ware{
  background:linear-gradient(170deg,var(--night-panel),rgba(6,22,64,.35));
  border:1px solid rgba(250,205,0,.2);
  border-radius:14px;padding:1.5rem 1.4rem 1.4rem;
  display:flex;flex-direction:column;gap:.45rem;
  transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.ware:hover{transform:translateY(-5px);border-color:rgba(250,205,0,.55);box-shadow:var(--glow)}
.ware-tag{
  font-size:.72rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:var(--body-dim);display:flex;align-items:center;gap:.6em;
}
.sale-flag{
  background:var(--gold);color:var(--night);
  padding:.15em .6em;border-radius:999px;font-size:.85em;letter-spacing:.1em;
}
.ware h3{font-size:1.08rem;color:var(--cream);flex:1}
.ware h3 small{display:block;font-family:var(--sans);font-weight:600;font-size:.78rem;color:var(--body-dim);margin-top:.3em}
.ware-price{
  font-family:var(--display);font-weight:700;font-size:1.5rem;color:var(--gold);
}
.ware-price s{font-size:.7em;color:var(--body-dim);font-weight:400;margin-left:.4em}
.ware-local{border-style:dashed}
.vault-foot{
  width:min(var(--wrap),100%);margin:2.6rem auto 0;
  display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;
}
.vault-foot p{font-size:1.05rem}

/* ---------- quote band ---------- */
.quote-band{
  position:relative;
  background:url("../assets/art-table-wide.webp") center/cover no-repeat;
  min-height:52vh;
  display:flex;align-items:center;justify-content:center;
  isolation:isolate;
}
.quote-band::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg, rgba(0,15,51,.72), rgba(2,8,23,.55) 45%, rgba(0,15,51,.8));
}
.quote-band blockquote{max-width:52rem;text-align:center;padding:2rem 1rem}
.quote-band p{
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.5rem,3.4vw,2.5rem);line-height:1.4;
  color:var(--cream);
  text-shadow:0 2px 22px rgba(2,8,23,.9);
  margin-bottom:1.2rem;
}
.quote-band cite{
  font-style:normal;font-size:.95rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
}
@media (max-width:700px){.bq-br{display:none}}

/* ---------- story ---------- */
.story{
  background:
    radial-gradient(1000px 600px at 100% 100%, rgba(250,205,0,.06), transparent 60%),
    var(--night);
}
.story-inner{
  width:min(var(--wrap),100%);margin:0 auto;
  display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:center;
}
.story-copy h2{font-size:clamp(1.9rem,3.4vw,2.8rem);margin-bottom:1.2rem}
.story-copy p{margin-bottom:1.1rem}
.story-copy strong{color:var(--cream)}
.story-copy em{color:var(--gold);font-style:italic}
.story-photos{position:relative;display:grid;gap:1.4rem;grid-template-columns:1fr 1fr;align-items:start}
.ph{
  border:6px solid var(--cream);
  border-radius:4px;
  box-shadow:0 14px 34px rgba(0,0,0,.5);
  background:var(--cream);
}
.ph img{width:100%;height:auto;object-fit:cover;aspect-ratio:4/5}
.ph figcaption{
  font-size:.8rem;font-weight:700;color:var(--ink);
  padding:.5em .2em .2em;text-align:center;
}
.ph1{transform:rotate(-2.4deg)}
.ph2{transform:rotate(1.8deg) translateY(2.2rem)}

/* ---------- visit ---------- */
.visit{
  background:
    radial-gradient(700px 420px at 15% 20%, rgba(250,205,0,.09), transparent 60%),
    var(--night-deep);
}
.visit-inner{
  width:min(var(--wrap),100%);margin:0 auto;
  display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:1.5rem;
}
.visit-card,.visit-hours{
  border:1px solid rgba(250,205,0,.3);
  border-radius:18px;
  padding:clamp(1.8rem,3.5vw,3rem);
  background:linear-gradient(165deg,var(--night-panel),rgba(6,22,64,.35));
}
.visit-card h2{font-size:clamp(1.8rem,3.2vw,2.6rem);margin-bottom:1.2rem}
.visit-card address{font-style:normal;font-size:1.25rem;line-height:1.5;color:var(--cream);margin-bottom:1rem}
.visit-lines{margin-bottom:1rem}
.visit-lines a{border-bottom:1px solid rgba(250,205,0,.35)}
.visit-access{color:var(--body-dim);font-size:.95rem;margin-bottom:1.8rem}
.visit-ctas{display:flex;gap:1rem;flex-wrap:wrap}
.visit-hours h3{color:var(--gold);font-size:1.3rem;margin-bottom:1.2rem}
.visit-hours dl{display:flex;flex-direction:column;gap:.7rem}
.visit-hours dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid rgba(250,205,0,.14);padding-bottom:.55rem}
.visit-hours dt{font-weight:700;color:var(--body)}
.visit-hours dd{color:var(--body-dim)}
.visit-hours .open dd{color:var(--gold);font-weight:800}

/* ---------- footer ---------- */
.site-footer{
  border-top:1px solid rgba(250,205,0,.2);
  background:var(--night-deep);
  text-align:center;
  padding:3.5rem 1.5rem 2.5rem;
}
.site-footer img{margin:0 auto 1rem;opacity:.9;width:72px;height:auto}
.foot-line{font-family:var(--display);color:var(--cream);font-size:1.05rem;margin-bottom:1.4rem}
.site-footer nav{display:flex;gap:1.6rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.6rem}
.site-footer nav a{color:var(--body-dim);font-weight:700;font-size:.95rem}
.site-footer nav a:hover{color:var(--gold)}
.foot-small{color:var(--body-dim);font-size:.85rem;line-height:1.8}
.foot-credit{opacity:.65}

/* ---------- reveal system (JS-gated: content visible without JS) ---------- */
html.js .reveal{
  opacity:0;transform:translateY(26px);
  transition:opacity .7s ease, transform .7s ease;
}
html.js .reveal.in,
html.js.all-in .reveal{opacity:1;transform:none}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  html.js .reveal{opacity:1;transform:none}
}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .chamber{grid-column:span 6}
  .chamber-lg{grid-column:span 12;flex-direction:column}
  .chamber-lg figure{aspect-ratio:16/9;min-height:0}
  .bounty-grid{grid-template-columns:repeat(2,1fr)}
  .vault-grid{grid-template-columns:repeat(2,1fr)}
  .rules-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:880px){
  .site-nav,.header-cta{display:none}
  .nav-toggle{display:flex}
  .mobile-menu{
    display:flex;flex-direction:column;gap:1.3rem;align-items:flex-start;
    position:fixed;inset:0;z-index:40;
    background:rgba(2,8,23,.97);
    padding:6.5rem 2rem 2rem;
    transform:translateY(-100%);
    transition:transform .35s ease;
  }
  .mobile-menu.open{transform:none}
  .mobile-menu a{font-family:var(--display);font-size:1.5rem;color:var(--cream)}
  .mobile-menu .btn{font-family:var(--sans);font-size:1.05rem;margin-top:.5rem;color:var(--night)}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

  .hero{padding-top:6.5rem;min-height:0}
  .hero-inner{grid-template-columns:1fr}
  .hero-sun{order:-1;min-height:0;margin-bottom:.5rem}
  .sun-logo{width:min(62vw,300px)}
  .events-layout{grid-template-columns:1fr;grid-template-areas:"list" "art" "note"}
  .events-art{max-width:440px;margin:0 auto}
  .story-inner{grid-template-columns:1fr}
  .story-photos{max-width:520px}
  .visit-inner{grid-template-columns:1fr}
  .event-row{grid-template-columns:auto 1fr;grid-template-rows:auto auto}
  .event-row .btn-line{grid-column:2;justify-self:start}
}
@media (max-width:560px){
  body{font-size:1rem}
  .chamber{grid-column:span 12}
  .bounty-grid{grid-template-columns:1fr}
  .vault-grid{grid-template-columns:1fr}
  .rules-grid{grid-template-columns:1fr}
  .event-day{width:62px;height:62px}
  .hero-ctas .btn{width:100%;justify-content:center}
  .ph2{transform:rotate(1.8deg)}
}
