:root{--bg:#0c0906;--bg2:#15100a;--ink:#f6efe1;--mute:#b9a990;--gold:#f2a93b;--amber:#e08a1e;--deep:#7a3f0c;--line:rgba(246,239,225,.12);--r:22px;--f:'Fraunces',Georgia,serif;--s:'Inter',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--bg);color:var(--ink);font:400 17px/1.65 var(--s);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--f);font-weight:600;line-height:1.05;letter-spacing:-.02em}
h2{font-size:clamp(2.1rem,5vw,3.8rem)}
em,.amber{font-style:italic;background:linear-gradient(100deg,#ffd27a,var(--gold) 40%,var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font:600 .78rem/1 var(--s);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:1.1rem}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.95rem 1.7rem;border-radius:999px;font:600 .95rem var(--s);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s}
.btn-gold{background:linear-gradient(135deg,#ffcf6e,var(--gold) 45%,var(--amber));color:#1c1006;box-shadow:0 10px 30px -10px rgba(242,169,59,.7)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 16px 40px -10px rgba(242,169,59,.9)}
.btn-ghost{border-color:rgba(246,239,225,.35);color:var(--ink);background:rgba(255,255,255,.04);backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-dark{background:#1c1006;color:#ffe2a8}
.btn-dark:hover{transform:translateY(-2px)}
.fine{max-width:780px;margin:2.5rem auto 0;text-align:center;color:var(--mute);font-size:.85rem}
section{position:relative}
.section-head{max-width:820px;margin:0 auto 3.5rem;text-align:center;padding:0 1.25rem}
.section-head h2{margin-bottom:1rem}
.section-head p{color:var(--mute)}

/* reveal — opacity/transform only, runs once */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}*{animation:none!important}}

/* gate */
.gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1.5rem;background:radial-gradient(ellipse at 70% 30%,rgba(224,138,30,.35),transparent 60%),rgba(8,6,4,.92);backdrop-filter:blur(10px)}
.gate.hide{display:none}
.gate-card{max-width:440px;text-align:center;padding:2.6rem 2rem;border:1px solid var(--line);border-radius:var(--r);background:rgba(21,16,10,.85)}
.gate-logo{width:230px;margin:0 auto 1.6rem}
.gate-card h2{font-size:2rem;margin-bottom:.6rem}
.gate-card p{color:var(--mute);margin-bottom:1.6rem}
.gate-btns{display:flex;gap:.8rem;justify-content:center;margin-bottom:1.2rem}
.gate small{color:var(--mute)}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1.1rem clamp(1.1rem,4vw,3rem);transition:background .35s,padding .35s,box-shadow .35s}
.nav.solid{background:rgba(12,9,6,.86);backdrop-filter:blur(14px);padding-top:.7rem;padding-bottom:.7rem;box-shadow:0 1px 0 var(--line)}
.brand img{height:34px;width:auto}
.nav nav{display:flex;gap:2rem;align-items:center}
.nav nav a{text-decoration:none;font-size:.92rem;font-weight:500;color:rgba(246,239,225,.85);transition:color .2s}
.nav nav a:hover{color:var(--gold)}
.nav-cta{border:1px solid rgba(242,169,59,.6);padding:.5rem 1.1rem;border-radius:999px;color:var(--gold)!important}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:var(--ink);transition:transform .3s}
.burger span:first-child{top:17px}.burger span:last-child{top:25px}
.burger[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}

/* hero */
.hero{min-height:100svh;display:flex;align-items:center;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:70% 50%;animation:heroZoom 18s ease-out both}
@keyframes heroZoom{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,9,6,.92) 0%,rgba(12,9,6,.55) 45%,rgba(12,9,6,0) 75%),linear-gradient(0deg,var(--bg) 0%,transparent 30%)}
.hero-inner{padding:7rem clamp(1.25rem,6vw,6rem) 9rem;max-width:880px}
.hero h1{font-size:clamp(3rem,8.4vw,7.2rem);font-weight:800;margin-bottom:1.5rem}
.hero h1 em{display:block;font-weight:400}
.lede{font-size:clamp(1.05rem,1.6vw,1.3rem);color:#e6d8bf;max-width:520px;margin-bottom:2.3rem}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.hero .reveal:nth-child(2){transition-delay:.12s}.hero .reveal:nth-child(3){transition-delay:.24s}.hero .reveal:nth-child(4){transition-delay:.36s}
.scroll-cue{position:absolute;left:50%;bottom:110px;width:26px;height:42px;border:2px solid rgba(246,239,225,.45);border-radius:14px;transform:translateX(-50%)}
.scroll-cue span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--gold);animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}40%{opacity:1}100%{opacity:0;transform:translateY(14px)}}

/* liquid waves (pure horizontal translation — no jitter) */
.wave{position:absolute;left:0;width:200%;height:90px;pointer-events:none}
.wave-bottom{bottom:-1px}
.wave path{will-change:transform}
.wave-bottom .w1{fill:rgba(224,138,30,.55);animation:drift 14s linear infinite}
.wave-bottom .w2{fill:var(--bg);animation:drift 9s linear infinite reverse}
.wave-top{top:-1px}
.wave-top .w1{fill:var(--bg);animation:drift 12s linear infinite}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ticker */
.ticker{overflow:hidden;border-block:1px solid var(--line);background:linear-gradient(90deg,#1a1108,#251607,#1a1108)}
.ticker-track{display:flex;width:max-content;animation:tick 38s linear infinite}
.ticker span{font:500 1.05rem var(--f);font-style:italic;color:#ffd994;padding:1.1rem 2.2rem;white-space:nowrap;position:relative}
.ticker span::after{content:"";position:absolute;right:-4px;top:50%;width:7px;height:7px;border-radius:50%;background:var(--amber);transform:translateY(-50%)}
@keyframes tick{to{transform:translateX(-50%)}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);max-width:1180px;margin:0 auto;padding:5rem 1.25rem}
.stat{text-align:center;padding:1rem;border-right:1px solid var(--line)}
.stat:last-child{border:0}
.stat b{display:block;font:800 clamp(2.4rem,5vw,3.8rem)/1 var(--f);background:linear-gradient(180deg,#ffe0a0,var(--amber));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.5rem;font-variant-numeric:tabular-nums}
.stat span{color:var(--mute);font-size:.9rem}

/* range */
.range{padding:4rem clamp(1rem,4vw,3rem) 7rem;background:radial-gradient(ellipse at 50% 0%,rgba(224,138,30,.14),transparent 60%)}
.filters{display:inline-flex;gap:.3rem;margin-top:1.8rem;padding:.3rem;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.03)}
.filters button{border:0;background:none;color:var(--mute);font:600 .9rem var(--s);padding:.6rem 1.2rem;border-radius:999px;cursor:pointer;transition:background .25s,color .25s}
.filters button.on{background:var(--gold);color:#1c1006}
.cider-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.4rem;max-width:1280px;margin:0 auto}
.cider{border-radius:var(--r);background:linear-gradient(180deg,#1b140c,#120d08);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .45s,box-shadow .45s,opacity .9s}
.cider.hidden{display:none}
.cider:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:0 30px 60px -30px var(--accent)}
.cider-img{position:relative;aspect-ratio:4/4.2;overflow:hidden;background:#efe3cc}
.cider-img img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.cider:hover .cider-img img{transform:scale(1.05)}
.cider-img .glow{position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(0deg,rgba(18,13,8,.55),transparent);z-index:1;pointer-events:none}
.cider-body{padding:1.4rem 1.4rem 1.6rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.abv{font:700 .8rem var(--s);letter-spacing:.08em;color:var(--accent);filter:brightness(1.35)}
.abv span{color:var(--mute);font-weight:500;letter-spacing:0;filter:none}
.cider h3{font-size:1.45rem}
.desc{color:#d9cbb3;font-size:.94rem;line-height:1.6}
.medals{display:flex;flex-wrap:wrap;gap:.35rem}
.medal{font:700 .7rem var(--s);letter-spacing:.04em;padding:.28rem .6rem;border-radius:999px;white-space:nowrap}
.medal.gold{background:linear-gradient(135deg,#ffe08a,#d79a1c);color:#2a1800}
.medal.silver{background:linear-gradient(135deg,#f1f1f1,#a9adb3);color:#1d1f22}
.medal.bronze{background:linear-gradient(135deg,#f0b07a,#a7612c);color:#2a1406}
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:.5rem}
.tags li{font-size:.72rem;color:var(--mute);border:1px solid var(--line);padding:.22rem .55rem;border-radius:6px}

/* pour */
.pour{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,6vw,6rem);align-items:center;max-width:1240px;margin:0 auto;padding:6rem clamp(1.25rem,4vw,3rem);overflow:hidden}
.pour-media{border-radius:28px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(224,138,30,.45);aspect-ratio:3/4}
.pour-media img{width:100%;height:100%;object-fit:cover}
.pour-copy h2{margin-bottom:1.4rem}
.pour-copy p{color:#d9cbb3;margin-bottom:1rem;max-width:520px}
.link-arrow{display:inline-block;margin-top:.8rem;color:var(--gold);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(242,169,59,.4);padding-bottom:2px}
.bubbles{position:absolute;inset:0;pointer-events:none;z-index:-1}
.bubbles i{position:absolute;bottom:-20px;width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,206,120,.45);background:radial-gradient(circle at 30% 30%,rgba(255,230,170,.5),rgba(242,169,59,.05));animation:rise linear infinite}
.bubbles i:nth-child(1){left:5%;animation-duration:11s}.bubbles i:nth-child(2){left:14%;width:6px;height:6px;animation-duration:8s;animation-delay:2s}.bubbles i:nth-child(3){left:27%;width:14px;height:14px;animation-duration:13s;animation-delay:4s}.bubbles i:nth-child(4){left:39%;animation-duration:9s;animation-delay:1s}.bubbles i:nth-child(5){left:48%;width:5px;height:5px;animation-duration:7s;animation-delay:3s}.bubbles i:nth-child(6){left:58%;width:12px;height:12px;animation-duration:12s}.bubbles i:nth-child(7){left:66%;animation-duration:10s;animation-delay:5s}.bubbles i:nth-child(8){left:74%;width:7px;height:7px;animation-duration:8.5s;animation-delay:1.5s}.bubbles i:nth-child(9){left:82%;width:16px;height:16px;animation-duration:14s;animation-delay:2.5s}.bubbles i:nth-child(10){left:90%;animation-duration:9.5s;animation-delay:6s}.bubbles i:nth-child(11){left:95%;width:6px;height:6px;animation-duration:7.5s;animation-delay:.5s}.bubbles i:nth-child(12){left:33%;width:8px;height:8px;animation-duration:10.5s;animation-delay:7s}
@keyframes rise{from{transform:translateY(0);opacity:0}10%{opacity:1}to{transform:translateY(-900px);opacity:0}}

/* process */
.process{min-height:100vh;display:flex;align-items:center;overflow:hidden;isolation:isolate;padding:7rem 0}
.process-bg{position:absolute;inset:0;z-index:-2}
.process-bg img{width:100%;height:100%;object-fit:cover}
.process-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--bg) 0%,rgba(12,9,6,.55) 22%,rgba(12,9,6,.6) 60%,var(--bg) 100%),linear-gradient(90deg,rgba(12,9,6,.85),rgba(12,9,6,.2))}
.process-inner{max-width:1240px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem);width:100%}
.process h2{max-width:720px;margin-bottom:3rem}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.steps li{padding:1.6rem 1.4rem;border-radius:var(--r);background:linear-gradient(160deg,rgba(220,225,230,.13),rgba(120,125,130,.05));border:1px solid rgba(220,225,230,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.steps li:nth-child(2){transition-delay:.1s}.steps li:nth-child(3){transition-delay:.2s}.steps li:nth-child(4){transition-delay:.3s}
.steps .n{font:800 2.4rem/1 var(--f);background:linear-gradient(180deg,#fafbfc,#8f969d);-webkit-background-clip:text;background-clip:text;color:transparent}
.steps h3{font-size:1.3rem;margin:.9rem 0 .5rem}
.steps p{color:#d9d3c7;font-size:.92rem}

/* awards */
.awards{padding:7rem clamp(1rem,4vw,3rem);background:radial-gradient(ellipse at 50% 20%,rgba(242,169,59,.12),transparent 55%)}
.trophies{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1180px;margin:0 auto 3rem}
.trophy{padding:2rem 1.6rem;border-radius:var(--r);text-align:center;background:linear-gradient(160deg,#2a1a08,#140d06);border:1px solid rgba(242,169,59,.35);position:relative;overflow:hidden}
.trophy::before{content:"";position:absolute;inset:-40% -40% auto;height:120%;background:radial-gradient(circle,rgba(255,200,100,.25),transparent 60%)}
.trophy span{font:600 .8rem var(--s);letter-spacing:.2em;color:var(--gold)}
.trophy b{display:block;font:700 1.7rem/1.15 var(--f);margin:.6rem 0}
.trophy p{color:var(--mute);font-size:.92rem;position:relative}
.award-list{list-style:none;max-width:980px;margin:0 auto;border-top:1px solid var(--line)}
.award-list li{display:grid;grid-template-columns:70px 1fr auto 90px;align-items:center;gap:1rem;padding:1rem .4rem;border-bottom:1px solid var(--line)}
.yr{font:700 1.05rem var(--f);color:var(--gold)}
.nm{font-weight:500}
.nm small{display:block;color:var(--mute);font-size:.8rem;font-weight:400}
.award-list a{font-size:.82rem;color:var(--mute);text-align:right;text-decoration:none}
.award-list a:hover{color:var(--gold)}

/* story */
.story{padding:2rem clamp(1rem,4vw,3rem) 7rem;max-width:1280px;margin:0 auto}
.story-media{border-radius:28px;overflow:hidden;margin-bottom:4rem;box-shadow:0 40px 90px -40px rgba(242,169,59,.5)}
.story-media img{width:100%;aspect-ratio:2.8/1;object-fit:cover}
.story-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(2rem,6vw,5rem)}
.story-copy h2{margin-bottom:1.4rem}
.story-copy p{color:#d9cbb3;margin-bottom:1rem}
.eco{padding:2rem;border-radius:var(--r);background:#120d08;border:1px solid var(--line)}
.eco h3{font-size:1.5rem;margin-bottom:1.2rem}
.eco ul{list-style:none;display:grid;gap:1rem}
.eco li{color:var(--mute);font-size:.92rem;padding-left:1.4rem;position:relative}
.eco li::before{content:"";position:absolute;left:0;top:.45rem;width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,#ffd27a,var(--amber))}
.eco b{display:block;color:var(--ink);font-weight:600}

/* stockists */
.stockists{padding:5rem clamp(1rem,4vw,3rem) 9rem;border-top:1px solid var(--line)}
.search{margin-top:1.8rem;width:min(420px,100%);padding:.9rem 1.3rem;border-radius:999px;border:1px solid var(--line);background:#120d08;color:var(--ink);font:500 1rem var(--s);outline:none}
.search:focus{border-color:var(--gold)}
.chains{columns:4 260px;column-gap:1.4rem;max-width:1240px;margin:0 auto}
.chain{break-inside:avoid;margin-bottom:1.4rem;padding:1.4rem;border-radius:18px;background:#120d08;border:1px solid var(--line)}
.chain h4{font:600 1.15rem var(--f);margin-bottom:.8rem;display:flex;justify-content:space-between}
.chain h4 span{font:600 .75rem var(--s);color:#1c1006;background:var(--gold);border-radius:999px;padding:.15rem .55rem}
.chain ul{list-style:none;columns:2;column-gap:1rem}
.chain li{font-size:.88rem;color:var(--mute);padding:.15rem 0}
.chain li.hit{color:var(--gold)}
.chain.none{display:none}

/* contact */
.contact{background:linear-gradient(135deg,#ffcd6b,#f2a93b 40%,#d97a14 80%,#b45f0a);color:#1c1006;padding:9rem 1.25rem 7rem;text-align:center;overflow:hidden}
.contact .wave-top{height:80px}
.contact h2{font-size:clamp(3rem,9vw,7rem);font-weight:800;margin-bottom:1rem}
.contact p{font-size:1.15rem;margin-bottom:2rem;opacity:.85}
.big-mail{display:inline-block;font:600 clamp(1.3rem,4vw,2.6rem) var(--f);text-decoration:none;border-bottom:2px solid rgba(28,16,6,.4);margin-bottom:2.4rem;word-break:break-all}
.big-mail:hover{border-color:#1c1006}

/* footer */
.foot{text-align:center;padding:4rem 1.25rem 3rem;color:var(--mute)}
.foot-logo{width:220px;margin:0 auto 1.2rem;opacity:.9}
.foot .small{font-size:.78rem;margin-top:1rem;opacity:.75;max-width:720px;margin-inline:auto}

/* responsive */
@media (max-width:980px){
  .steps{grid-template-columns:repeat(2,1fr)}
  .pour,.story-grid{grid-template-columns:1fr}
  .pour-media{max-width:520px;aspect-ratio:4/3.4}
  .trophies{grid-template-columns:1fr}
}
@media (max-width:820px){
  .burger{display:block;z-index:2}
  .nav nav{position:fixed;inset:0;flex-direction:column;justify-content:center;gap:1.6rem;background:rgba(12,9,6,.97);opacity:0;pointer-events:none;transition:opacity .3s}
  .nav nav.open{opacity:1;pointer-events:auto}
  .nav nav a{font:600 1.6rem var(--f)}
  .brand img{height:28px}
  .stats{grid-template-columns:repeat(2,1fr);gap:1.5rem 0;padding:3.5rem 1rem}
  .stat:nth-child(2){border:0}
  .hero-shade{background:linear-gradient(0deg,rgba(12,9,6,.97) 8%,rgba(12,9,6,.75) 50%,rgba(12,9,6,.25) 100%)}
  .hero{align-items:flex-end}
  .hero-inner{padding-bottom:8rem}
  .hero-bg img{object-position:78% 30%}
  .scroll-cue{display:none}
  .wave{height:60px}
}
@media (max-width:560px){
  body{font-size:16px}
  .steps{grid-template-columns:1fr}
  .award-list li{grid-template-columns:52px 1fr;row-gap:.4rem}
  .award-list .medal{grid-column:2;justify-self:start}
  .award-list a{grid-column:2;text-align:left}
  .story-media img{aspect-ratio:16/9}
  .hero-cta .btn{flex:1}
  .gate-btns{flex-direction:column}
  .cider-grid{grid-template-columns:1fr}
}

/* fixes */
em,.amber{padding-right:.14em;margin-right:-.06em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.btn{white-space:nowrap}
.process-shade{background:linear-gradient(180deg,var(--bg) 0%,rgba(12,9,6,.25) 18%,rgba(12,9,6,.3) 65%,var(--bg) 100%),linear-gradient(90deg,rgba(12,9,6,.75),rgba(12,9,6,0) 70%)}
.chains{columns:auto;display:grid;grid-template-columns:2fr 1fr;gap:1.4rem;align-items:start}
.chain{margin:0}
.chain:first-child{grid-row:span 3}
.chain:first-child ul{columns:3}
@media (max-width:820px){.chains{grid-template-columns:1fr}.chain:first-child{grid-row:auto}.chain:first-child ul{columns:2}}
@media (max-width:560px){.cider-img{aspect-ratio:4/3}.hero-cta .btn{padding:.9rem 1.1rem;font-size:.9rem}}

/* stockists v2: by island */
.islands{max-width:1240px;margin:0 auto;display:grid;gap:3rem}
.island-h{font:600 1.6rem var(--f);margin-bottom:1.2rem;display:flex;align-items:baseline;gap:.8rem}
.island-h span{font:500 .9rem var(--s);color:var(--gold)}
.island.none{display:none}
.islands .chains{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.2rem;align-items:start}
.islands .chain:first-child{grid-row:auto;grid-column:span 2}
.islands .chain:first-child ul{columns:3}
.chain ul{columns:2}
@media (max-width:620px){.islands .chain:first-child{grid-column:auto}.islands .chain:first-child ul{columns:2}}
.island{min-width:0}
@media (max-width:620px){.islands .chains{grid-template-columns:1fr}}

/* ===== 2026-10-31: berry palette, more motion, pour, map ===== */
:root{--pink:#e8719f;--rose:#f4a6c0;--plum:#9a4fc9;--violet:#6d3aa8}
.berry{font-style:italic;background:linear-gradient(100deg,var(--rose),var(--pink) 45%,var(--plum));-webkit-background-clip:text;background-clip:text;color:transparent}
.awards{background:radial-gradient(ellipse at 50% 20%,rgba(242,169,59,.12),transparent 55%),radial-gradient(ellipse at 90% 80%,rgba(154,79,201,.1),transparent 50%)}
.story{position:relative;isolation:isolate}
.story::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 10% 30%,rgba(232,113,159,.09),transparent 55%);pointer-events:none}
.stockists{background:radial-gradient(ellipse at 85% 10%,rgba(154,79,201,.09),transparent 50%)}
.contact{isolation:isolate}
.eco li:nth-child(3n+2)::before{background:linear-gradient(135deg,var(--rose),var(--pink))}
.eco li:nth-child(3n)::before{background:linear-gradient(135deg,#c79bf0,var(--plum))}
/* bubble colours */
.bubbles i:nth-child(3n+2){border-color:rgba(244,166,192,.5);background:radial-gradient(circle at 30% 30%,rgba(255,205,225,.55),rgba(232,113,159,.06))}
.bubbles i:nth-child(3n){border-color:rgba(190,140,240,.5);background:radial-gradient(circle at 30% 30%,rgba(225,200,255,.5),rgba(154,79,201,.06))}
.bubbles-light i{border-color:rgba(255,255,255,.55)!important;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.6),rgba(255,255,255,.05))!important}
/* hover polish */
.btn-gold:hover{box-shadow:0 14px 36px -10px rgba(232,113,159,.55),0 10px 30px -10px rgba(242,169,59,.7)}
.chain{transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,box-shadow .35s,opacity .9s}
.chain:hover{transform:translateY(-3px);border-color:rgba(232,113,159,.35);box-shadow:0 20px 40px -28px rgba(154,79,201,.8)}
.award-list li{transition:background .3s}
.award-list li:hover{background:linear-gradient(90deg,rgba(242,169,59,.06),rgba(154,79,201,.06))}
.eco li,.steps li{transition:transform .35s}
.steps li:hover{transform:translateY(-4px)}
.reveal.in:nth-child(2){transition-delay:.08s}.reveal.in:nth-child(3){transition-delay:.16s}.reveal.in:nth-child(4){transition-delay:.24s}
.parallax{will-change:transform}

/* squish game */
.squish{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:2.5rem;max-width:1140px;margin:0 auto;padding:6rem clamp(1rem,4vw,3rem);isolation:isolate;overflow:hidden}
.squish::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(closest-side at 70% 50%,rgba(232,113,159,.14),transparent),radial-gradient(closest-side at 30% 60%,rgba(242,169,59,.08),transparent);pointer-events:none}
.squish h2{font-size:clamp(2.1rem,4.6vw,3.4rem);margin-bottom:1rem}
.squish .sq-copy p:not(.eyebrow){color:var(--mute)}
.sq-game{border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(180deg,#1b140c,#100b07);overflow:hidden;box-shadow:0 30px 60px -36px rgba(154,79,201,.7)}
.sq-hud{display:flex;gap:1.2rem;padding:.75rem 1.1rem;border-bottom:1px solid var(--line);font:500 .85rem var(--s);color:var(--mute)}
.sq-hud b{color:var(--gold);font-variant-numeric:tabular-nums}.sq-best b{color:var(--rose)}
.sq-play{position:relative;height:min(440px,64vh);display:flex}
#sq-canvas{flex:1;min-width:0;height:100%;display:block;touch-action:manipulation;cursor:pointer;-webkit-tap-highlight-color:transparent}
.sq-gauge{width:70px;padding:1rem .6rem;display:flex;align-items:flex-end;border-left:1px solid var(--line)}
.sq-gauge svg{width:100%;height:auto;max-height:100%}
#sq-fill{fill:var(--sqc,#f2a93b);transition:y .35s cubic-bezier(.2,.7,.2,1),fill .5s}
.sq-over{position:absolute;inset:0;display:grid;place-items:center;background:rgba(12,9,6,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:opacity .35s;padding:1rem;text-align:center}
.sq-over.hide{opacity:0;pointer-events:none}
.sq-big{font:700 clamp(1.6rem,4vw,2.2rem)/1.1 var(--f);margin-bottom:.5rem;background:linear-gradient(100deg,#ffd27a,var(--gold) 35%,var(--pink) 70%,var(--plum));-webkit-background-clip:text;background-clip:text;color:transparent}
.sq-sub{color:var(--mute);margin-bottom:1.2rem;font-size:.95rem}
@media (max-width:860px){.squish{grid-template-columns:1fr;text-align:center;padding-block:4.5rem}.sq-hud{justify-content:center}}
@media (max-width:560px){.sq-play{height:400px}.sq-gauge{width:54px}}

/* store map */
.map-wrap{max-width:1240px;margin:0 auto 2.4rem;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:#120d08;box-shadow:0 30px 60px -40px rgba(154,79,201,.6)}
.map{height:min(520px,62vh);width:100%;background:#1a140d}
.map-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.8rem 1rem;border-top:1px solid var(--line)}
.map-reset{border:1px solid rgba(242,169,59,.5);background:none;color:var(--gold);font:600 .85rem var(--s);padding:.45rem 1rem;border-radius:999px;cursor:pointer}
.map-reset:hover{background:rgba(242,169,59,.1)}
.map-note{color:var(--mute);font-size:.8rem}
.map .leaflet-tile-pane{filter:brightness(.72) saturate(.55) sepia(.3) hue-rotate(-12deg) contrast(1.05)}
.map .leaflet-control-zoom a{background:#1b140c;color:var(--ink);border-color:var(--line)}
.map .leaflet-control-attribution{background:rgba(12,9,6,.75);color:var(--mute)}.map .leaflet-control-attribution a{color:var(--gold)}
.om-pin{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:linear-gradient(135deg,#ffcf6e,var(--amber));border:2px solid #1c1006;box-shadow:0 4px 10px rgba(0,0,0,.5)}
.om-pin.approx{background:linear-gradient(135deg,var(--rose),var(--plum))}
.om-pin.active{outline:3px solid rgba(255,255,255,.8);outline-offset:2px}
.marker-cluster{background:rgba(232,113,159,.25)!important}
.marker-cluster div{background:linear-gradient(135deg,#ffcf6e,var(--amber))!important;color:#1c1006!important;font:700 .8rem var(--s)!important}
.map .leaflet-popup-content-wrapper,.map .leaflet-popup-tip{background:#1b140c;color:var(--ink);border:1px solid var(--line)}
.map .leaflet-popup-content{font:500 .9rem/1.4 var(--s);margin:.8rem 1rem}
.map .leaflet-popup-content b{font:600 1.05rem var(--f);display:block}
.map .leaflet-popup-content small{color:var(--mute)}
.map a.leaflet-popup-close-button{color:var(--mute)}
.chain li[data-i]{cursor:pointer;border-radius:6px;transition:color .2s}
.chain li[data-i]:hover,.chain li[data-i]:focus-visible{color:var(--rose);outline:none}
.chain li.sel{color:var(--gold)}
@media (max-width:560px){.map{height:380px}}

.sq-over.fail .sq-big{background:linear-gradient(100deg,#ff9a8a,var(--pink) 60%,var(--plum));-webkit-background-clip:text;background-clip:text}


/* festival announcement banner */
:root{--fest-h:8.2rem}
html{scroll-padding-top:calc(80px + var(--fest-h))}
.nav{top:var(--fest-h)}
.hero-inner{padding-top:calc(7rem + var(--fest-h))}
html.fest-closed{--fest-h:0px}
html.fest-closed .fest,.fest.is-closed{display:none}
.fest{position:fixed;top:0;left:0;right:0;z-index:55;overflow:hidden;background:linear-gradient(105deg,#1c0e12 0%,#3a1528 38%,#3d1a48 68%,#1a1014 100%);border-bottom:1px solid rgba(242,169,59,.38);box-shadow:0 10px 28px rgba(0,0,0,.35)}
.fest-pattern{position:absolute;inset:-50%;background-image:url(img/nzcf-logo-official.png);background-size:150px auto;background-repeat:repeat;opacity:.18;transform:rotate(-11deg);pointer-events:none;filter:saturate(1.15)}
.fest::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(18,8,10,.78) 0%,rgba(42,16,40,.42) 48%,rgba(18,8,12,.78) 100%)}
.fest-inner{position:relative;z-index:1;display:flex;align-items:center;gap:1.15rem 1.5rem;max-width:1240px;margin:0 auto;padding:.65rem clamp(1rem,4vw,2.4rem);padding-right:max(3.2rem,clamp(1rem,4vw,2.4rem))}
.fest-logo{flex-shrink:0;display:block;line-height:0}
.fest-logo img{height:76px;width:auto;max-width:none;filter:drop-shadow(0 4px 14px rgba(0,0,0,.5))}
.fest-copy{flex:1;min-width:0}
.fest-headline{font:700 clamp(1.12rem,2.3vw,1.68rem)/1.15 var(--f);background:linear-gradient(100deg,#ffe7b0,var(--gold) 42%,var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent;margin:0 0 .22rem;padding-right:.14em}
.fest-meta{color:#e6d8bf;font-size:.95rem;margin:0}
.fest-stall-line{color:var(--ink);font-size:.95rem;margin:.22rem 0 0;font-weight:500}
.fest-awards{color:#e6d8bf;font-size:.88rem;margin:.28rem 0 0;max-width:46rem;line-height:1.4}
.fest-stall{display:inline-block;margin-left:.2rem;padding:.16rem .62rem;border-radius:999px;background:linear-gradient(135deg,#ffcf6e,var(--gold) 45%,var(--amber));color:#1c1006;font:700 .85rem var(--s);letter-spacing:.02em;box-shadow:0 4px 14px -4px rgba(242,169,59,.85);vertical-align:baseline}
.fest-cta{display:flex;align-items:center;gap:.85rem;flex-shrink:0}
.fest-cta .btn{padding:.7rem 1.35rem}
.fest-more{color:var(--gold);font:600 .9rem var(--s);text-decoration:none;border-bottom:1px solid rgba(242,169,59,.45);padding-bottom:1px;white-space:nowrap}
.fest-more:hover{color:var(--rose);border-color:var(--rose)}
.fest-close{position:absolute;top:max(.3rem,env(safe-area-inset-top,0px));right:max(.3rem,env(safe-area-inset-right,0px));z-index:2;box-sizing:border-box;width:2.4rem;height:2.4rem;padding:0;border:1px solid rgba(255,231,176,.28);border-radius:999px;background:rgba(0,0,0,.35);color:#ffe7b0;cursor:pointer;display:grid;place-items:center;font:700 1.55rem/1 var(--s),system-ui,sans-serif;box-shadow:0 4px 12px rgba(0,0,0,.35)}
.fest-close:hover,.fest-close:focus-visible{background:rgba(255,255,255,.16);color:#fff;border-color:var(--gold);outline:2px solid var(--gold);outline-offset:2px}
.fest-close span{display:block;margin-top:-.08em}
@media (max-width:980px){:root{--fest-h:10.2rem}}
@media (max-width:820px){
  :root{--fest-h:12.2rem}
  .fest-inner{flex-wrap:wrap;padding:.7rem 2.8rem .8rem 1.1rem;gap:.7rem 1rem}
  .fest-logo img{height:64px}
  .fest-copy{flex:1 1 200px}
  .fest-cta{margin-left:auto}
}
@media (max-width:600px){
  :root{--fest-h:11rem}
  .fest-pattern{display:none}
  .fest-inner{display:grid;grid-template-columns:auto 1fr;gap:.28rem .65rem;align-items:center;padding:.42rem 2.55rem .45rem .7rem}
  .fest-logo{align-self:center}
  .fest-logo img{height:44px}
  .fest-headline{font-size:.98rem;line-height:1.15;margin:0 0 .12rem}
  .fest-meta,.fest-stall-line{font-size:.72rem;margin:0;display:inline}
  .fest-stall-line::before{content:" "}
  .fest-awards{font-size:.7rem;margin:.12rem 0 0;line-height:1.3;max-width:none}
  .fest-stall{padding:.06rem .4rem;font-size:.68rem;margin-left:.12rem}
  .fest-cta{grid-column:1/-1;justify-content:flex-start;margin:0;padding:0;gap:.5rem}
  .fest-cta .btn{padding:.38rem .85rem;font-size:.78rem}
  .fest-more{display:none}
  .fest-close{width:2.2rem;height:2.2rem;font-size:1.4rem;top:.22rem;right:.22rem}
}
@media (prefers-reduced-motion:reduce){.fest-pattern{transform:none;inset:-8%}}
