:root{
  --teal-900:#0b2b2b;
  --teal-850:#0e3433;
  --teal-800:#123e3c;
  --teal-700:#17524e;
  --teal-600:#1d6460;
  --cream:#f4ead0;
  --cream-2:#efe2c1;
  --cream-dim:#cdbd95;
  --sun-gold:#f6c64a;
  --sun-amber:#f0a637;
  --sun-orange:#ec7a28;
  --coral:#e1452d;
  --rust:#b5472a;
  --leaf:#6f8c3a;
  --leaf-deep:#3d5a2e;
  --ink:#19140f;
  --ink-text:#241c12;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--teal-900);color:var(--cream);font-family:'DM Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 26px}
.disp{font-family:'Bagel Fat One',cursive;font-weight:400;line-height:.92;letter-spacing:.005em}
.wood{font-family:'Rye',serif;font-weight:400;line-height:1.04}
.eyebrow{font-family:'DM Sans',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.22em;font-size:.78rem;color:var(--sun-gold)}

/* ---- decorative diamond frame strip ---- */
.frame{height:16px;background-color:var(--rust);
  background-image:
    linear-gradient(45deg,var(--cream) 25%,transparent 25%),
    linear-gradient(-45deg,var(--cream) 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,var(--cream) 75%),
    linear-gradient(-45deg,transparent 75%,var(--cream) 75%);
  background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;
  border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}

/* ---- logo coin (masks any photo halo with an inset ring) ---- */
.coin{border-radius:50%;overflow:hidden;position:relative;background:var(--ink);
  box-shadow:inset 0 0 0 3px var(--cream),inset 0 0 0 7px var(--ink),0 8px 24px rgba(0,0,0,.45)}
.coin img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:50;background:rgba(11,43,43,.86);backdrop-filter:blur(10px);border-bottom:2px solid rgba(244,234,208,.14)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 26px;max-width:1300px;margin:0 auto}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand .coin{width:46px;height:46px;flex:none}
.brand b{font-family:'Bagel Fat One',cursive;font-weight:400;font-size:1.15rem;color:var(--cream);letter-spacing:.01em;line-height:1}
.brand small{display:block;font-family:'DM Sans';font-weight:700;font-size:.6rem;letter-spacing:.32em;color:var(--sun-amber);text-transform:uppercase;margin-top:3px}
.nav-links{display:flex;align-items:center;gap:6px}
.nav-links a{text-decoration:none;font-weight:700;font-size:.92rem;color:var(--cream);padding:9px 14px;border-radius:999px;letter-spacing:.02em;opacity:.85;transition:.15s}
.nav-links a:hover{opacity:1;background:rgba(244,234,208,.1)}
.nav-links a.active{opacity:1;color:var(--sun-gold)}
.nav-toggle{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;flex:none;border:2.5px solid var(--cream);border-radius:13px;background:rgba(244,234,208,.06);cursor:pointer;padding:0 10px;box-shadow:0 3px 0 var(--ink)}
.hamburger span{display:block;height:2.5px;background:var(--cream);border-radius:2px;transition:transform .22s,opacity .22s}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:'DM Sans';font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.92rem;border-radius:999px;padding:14px 26px;text-decoration:none;cursor:pointer;border:2.5px solid var(--ink);transition:transform .12s,box-shadow .12s}
.btn-sun{background:linear-gradient(180deg,var(--sun-gold),var(--sun-orange));color:#2c1606;box-shadow:0 4px 0 var(--ink)}
.btn-sun:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--ink)}
.btn-sun:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}
.btn-cream{background:var(--cream);color:var(--ink-text);box-shadow:0 4px 0 var(--ink)}
.btn-cream:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--ink)}
.btn-ghost{background:transparent;color:var(--cream);border-color:var(--cream)}
.btn-ghost:hover{background:rgba(244,234,208,.12)}
.btn-sm{padding:10px 18px;font-size:.8rem;box-shadow:0 3px 0 var(--ink)}

/* ---- pills ---- */
.pill{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;padding:7px 15px;border-radius:999px;border:2px solid var(--cream);color:var(--cream)}

/* ---- sections ---- */
section{position:relative}
.pad{padding:84px 0}
.pad-sm{padding:56px 0}
.cream-sec{background:var(--cream);color:var(--ink-text)}
.cream-sec .eyebrow{color:var(--rust)}
.h2{font-family:'Rye',serif;font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.05;margin:.3em 0 .4em}
.lead{font-size:1.08rem;color:var(--cream-dim);max-width:60ch}
.cream-sec .lead{color:#5e5236}

/* ---- sunburst hero ---- */
.sun-bg{position:absolute;inset:0;overflow:hidden;z-index:0}
.sun-bg::before{content:"";position:absolute;left:50%;top:34%;width:160vw;height:160vw;transform:translate(-50%,-50%);
  background:repeating-conic-gradient(from 0deg at 50% 50%,rgba(246,198,74,.16) 0 4deg,transparent 4deg 10deg)}
.sun-bg::after{content:"";position:absolute;left:50%;top:34%;width:min(720px,92vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle,var(--sun-gold) 0%,var(--sun-amber) 22%,var(--sun-orange) 40%,var(--coral) 56%,rgba(225,69,45,0) 70%);opacity:.92}
.hero{position:relative;z-index:1;text-align:center;padding:70px 0 90px}
.hero-coin{width:min(330px,72vw);aspect-ratio:1;margin:0 auto 26px}
.hero-meta{display:flex;flex-wrap:wrap;gap:14px 30px;justify-content:center;align-items:center;margin:22px 0 30px}
.date-big{font-family:'Bagel Fat One',cursive;font-size:clamp(2.4rem,6vw,4.2rem);color:var(--cream);line-height:1;text-shadow:0 3px 0 var(--ink)}
.loc{font-weight:700;letter-spacing:.04em;font-size:1.05rem;color:var(--cream)}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

/* ---- cards / grids ---- */
.card{background:var(--cream);color:var(--ink-text);border:2.5px solid var(--ink);border-radius:22px;box-shadow:0 7px 0 rgba(0,0,0,.4);padding:26px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.card h3{font-family:'Rye',serif;font-weight:400;font-size:1.35rem;margin:.2em 0 .4em}
.card p{color:#5e5236;font-size:.98rem;margin:0}
.card .ico{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:1.6rem;border:2.5px solid var(--ink);background:linear-gradient(180deg,var(--sun-gold),var(--sun-orange));margin-bottom:6px}

/* ---- lineup teaser chips ---- */
.bill{display:flex;flex-wrap:wrap;gap:10px 14px;justify-content:center}
.bill .name{font-family:'Rye',serif;color:var(--cream);font-size:clamp(1.1rem,2.4vw,1.9rem);opacity:.92}
.bill .dot{color:var(--sun-amber);align-self:center;font-size:.7rem}

/* ---- footer ---- */
.foot{background:var(--teal-850);border-top:2px solid rgba(244,234,208,.14);padding:54px 0 30px}
.foot-grid{display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between}
.foot a{color:var(--cream-dim);text-decoration:none;display:block;padding:5px 0;font-size:.95rem}
.foot a:hover{color:var(--sun-gold)}
.foot h4{font-family:'Rye',serif;font-weight:400;color:var(--cream);font-size:1.05rem;margin:0 0 10px}
.foot .copy{margin-top:34px;padding-top:20px;border-top:1px solid rgba(244,234,208,.12);color:var(--cream-dim);font-size:.84rem;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}

/* ---- page hero (interior) ---- */
.phero{text-align:center;padding:64px 0 50px;position:relative;z-index:2}
.phero .disp{font-size:clamp(2.6rem,8vw,5.4rem);color:var(--cream);text-shadow:0 4px 0 var(--ink)}

/* ---- interior photo hero ---- */
.phero-photo{position:absolute;inset:0;overflow:hidden;z-index:0}
.phero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.02)}
.phero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,43,43,.62) 0%,rgba(11,43,43,.5) 45%,rgba(11,43,43,.8) 78%,var(--teal-900) 100%)}
.has-photo .sun-bg::after{opacity:.6;mix-blend-mode:screen}
.has-photo .sun-bg::before{opacity:.5}

/* ---- scroll-reveal ---- */
@keyframes riseIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.reveal{animation:riseIn linear both;animation-timeline:view();animation-range:entry 2% cover 20%}
@media(prefers-reduced-motion:reduce){.reveal{animation:none}}
@supports not (animation-timeline:view()){.reveal{animation:none}}

/* ---- full-bleed photo band ---- */
.pband{position:relative;min-height:420px;display:flex;align-items:center;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);overflow:hidden}
.pband-media{position:absolute;inset:0}
.pband-media img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05)}
.pband-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,43,43,.94) 0%,rgba(11,43,43,.76) 42%,rgba(11,43,43,.24) 100%)}
.pband-inner{position:relative;z-index:1;width:100%;padding:54px 0}
.pband-card{max-width:520px}

@media(max-width:860px){
  .grid3{grid-template-columns:1fr}
  .grid2{grid-template-columns:1fr}
  .pad{padding:60px 0}
  .nav-in{position:relative}
  .hamburger{display:flex}
  .nav-links{position:absolute;top:calc(100% + 12px);right:0;left:0;flex-direction:column;align-items:stretch;gap:6px;background:var(--teal-850);border:2.5px solid var(--ink);border-radius:18px;box-shadow:0 10px 0 rgba(0,0,0,.45);padding:14px;z-index:60;opacity:0;transform:translateY(-8px);pointer-events:none;visibility:hidden;transition:opacity .2s,transform .2s,visibility .2s}
  .nav-toggle:checked ~ .nav-links{opacity:1;transform:none;pointer-events:auto;visibility:visible}
  .nav-links a{padding:13px 15px;font-size:1.02rem;border-radius:12px;opacity:1}
  .nav-links a:hover{background:rgba(244,234,208,.1)}
  .nav-links a.btn{margin-top:6px;justify-content:center;font-size:.9rem}
  .nav-toggle:checked ~ .hamburger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .nav-toggle:checked ~ .hamburger span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .hamburger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
}
