/* Nomad Mix demo. Her colors come off the bags (each blend's name color); the white label cards copy the bag label
   (letterspaced lowercase name over the ingredients). Deep forest green, oat and cream around them. Square corners. */
:root{
  --moss:#12241A;--moss-2:#1B3325;--oat:#F3EAD8;--oat-2:#E7DAC1;--cream:#FBF5E9;--ink:#1E231F;--ink-2:#55594F;
  --display:"Bricolage Grotesque","Arial Black",system-ui,sans-serif;--label:Jost,"Century Gothic",system-ui,sans-serif;
  --body:"Work Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--r:2px;--top-h:72px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--top-h) + 10px)}
body{margin:0;background:var(--oat);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0 0 1em}
[hidden]{display:none!important}
.wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(16px,4vw,32px)}
.hp{position:absolute;left:-9999px}
:focus-visible{outline:2px solid #E39B36;outline-offset:3px}
.demo-bar{margin:0;background:#0B1710;color:#A9B8AC;font-size:.86rem;line-height:1.4;text-align:center;padding:.5rem 16px}
.demo-bar a{color:#fff;font-weight:600}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75em 1.4em;border:1.5px solid transparent;border-radius:var(--r);
  font:600 1rem/1.1 var(--body);text-decoration:none;cursor:pointer;transition:background .2s,color .2s,transform .15s}
.btn:active{transform:translateY(1px)}
.btn-cream{background:var(--cream);color:var(--ink)}
.btn-cream:hover{background:#fff}
.btn-line{border-color:rgba(251,245,233,.7);color:var(--cream);background:rgba(18,36,26,.15)}
.btn-line:hover{background:rgba(251,245,233,.12)}
.btn-ink{background:var(--ink);color:var(--cream)}
.btn-ink:hover{background:#000}
.btn-line-ink{border-color:var(--ink);color:var(--ink)}
.btn-sm{min-height:40px;padding:.5em 1em;font-size:.93rem}
.cta-row{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.6rem 0 0}
.linkish{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.arrow{font-weight:600;text-underline-offset:4px}

/* header */
.top{position:sticky;top:0;z-index:50;background:var(--moss);color:var(--cream)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--top-h)}
.brand{display:block;padding:.4rem 0}
.logo{display:block;width:132px;aspect-ratio:2.18;background:var(--cream);-webkit-mask:url(../img/logo-mask.png) center/contain no-repeat;mask:url(../img/logo-mask.png) center/contain no-repeat}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav a:not(.btn){font-weight:500;text-decoration:none;color:#D9E2D6;padding:.35rem 0;border-bottom:2px solid transparent;white-space:nowrap}
.nav a:not(.btn):hover,.nav a[aria-current]{color:#fff;border-bottom-color:#E39B36}
.nav .btn-ink{background:var(--cream);color:var(--ink)}
.menu-btn{display:none;background:none;border:1px solid rgba(251,245,233,.3);color:var(--cream);font:600 .95rem var(--body);padding:.5rem .9rem;border-radius:var(--r);cursor:pointer}

/* ---------------------------------------------------------------- trailhead: the pile */
.trailhead{position:relative;min-height:calc(100svh - var(--top-h) - 34px);display:grid;align-items:center;overflow:hidden;isolation:isolate;
  background:radial-gradient(120% 80% at 70% 0%,#24432F 0%,var(--moss) 60%);color:var(--cream)}
.pile{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.trailhead-in{position:relative;z-index:2;padding-block:clamp(3rem,8vw,6rem) 14rem;pointer-events:none}
.trailhead-in a,.trailhead-in button{pointer-events:auto}
.kicker{font:400 .95rem/1 var(--label);letter-spacing:.32em;text-transform:lowercase;color:#B9CBB6;margin-bottom:1.2rem}
.trailhead h1{font:800 clamp(3.6rem,12vw,10rem)/.86 var(--display);letter-spacing:-.035em}
.lede{max-width:34em;margin-top:1.4rem;font-size:clamp(1.05rem,1.6vw,1.25rem);color:#E2E9DE}
.hint{margin-top:1.4rem;font:italic 400 .95rem var(--body);color:#9FB59C;transition:opacity .6s}

/* ---------------------------------------------------------------- the trail */
.trail{position:relative;background:var(--moss)}
.stop{position:relative;min-height:115vh;overflow:hidden;isolation:isolate;color:var(--cream);display:grid}
.stop-bg{position:absolute;inset:-10% 0;z-index:-2}
.stop-bg img{width:100%;height:100%;object-fit:cover}
.stop::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,20,14,.66) 0%,rgba(10,20,14,.2) 55%,rgba(10,20,14,.35) 100%),linear-gradient(0deg,rgba(10,20,14,.5),transparent 30%)}
@supports (animation-timeline:view()){
  .stop-bg{animation:drift linear both;animation-timeline:view()}
  @keyframes drift{from{transform:translateY(-7%)}to{transform:translateY(7%)}}
}
.stop-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,5rem);align-items:center;padding-block:clamp(4rem,10vh,7rem);padding-left:clamp(16px,9vw,150px)}
.mile{font:400 .95rem/1.4 var(--label);letter-spacing:.18em;text-transform:lowercase;color:#E6EEE2;margin-bottom:1rem;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.mile span{display:block;letter-spacing:.04em;text-transform:none;font-family:var(--body);font-style:italic;color:#C9D6C5;margin-top:.2rem}
/* the white label, like the one on her bags */
.label{display:inline-block;max-width:100%;padding:1.4rem 1.7rem 1.5rem;background:var(--cream);color:var(--ink);text-align:center;box-shadow:0 30px 60px -24px rgba(0,0,0,.65)}
.label-k{margin:0 0 .7rem;font:400 .85rem/1 var(--label);letter-spacing:.42em;color:var(--ink-2)}
.blend-name{font:300 clamp(2.8rem,6.4vw,5.6rem)/1 var(--label);letter-spacing:.22em;margin-right:-.22em;text-transform:lowercase;color:var(--c)}
.items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.1rem .5rem;font-size:1.06rem;color:var(--ink)}
.label .items{justify-content:center;max-width:22rem;margin:.9rem auto 0}
.items li{position:relative}
.items li:not(:last-child)::after{content:",";}
.stop-bowl{position:relative;justify-self:center;width:min(100%,520px)}
.bowl{position:relative;aspect-ratio:1}
.bowl-img{width:100%;height:100%;clip-path:circle(35.8% at 50.2% 50.4%);filter:drop-shadow(0 30px 40px rgba(0,0,0,.5))}
.bowl::after{content:"";position:absolute;inset:16%;border-radius:50%;box-shadow:0 40px 60px -10px rgba(0,0,0,.55);z-index:-1}
.drops{position:absolute;inset:0;pointer-events:none}
.drop{position:absolute;width:var(--s);left:var(--x);top:var(--y);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);transform:rotate(var(--r1));
  animation:fall .95s cubic-bezier(.45,0,.9,.5) var(--d) both}
@keyframes fall{
  0%{transform:translate(var(--dx),-115vh) rotate(var(--r0));opacity:1}
  62%{transform:translate(0,0) rotate(var(--r1));animation-timing-function:cubic-bezier(.2,.6,.4,1)}
  76%{transform:translate(0,calc(var(--s) * -.45)) rotate(calc(var(--r1) + 14deg));animation-timing-function:cubic-bezier(.6,0,.9,.5)}
  88%{transform:translate(0,0) rotate(var(--r1))}
  94%{transform:translate(0,calc(var(--s) * -.1)) rotate(var(--r1))}
  100%{transform:translate(0,0) rotate(var(--r1))}
}
.bag-card{position:absolute;left:-8%;bottom:-4%;width:38%;margin:0;padding:.6rem;background:#fff;box-shadow:0 24px 40px -16px rgba(0,0,0,.6);
  transform:translateX(-30px) rotate(-14deg);opacity:0;transition:transform .9s cubic-bezier(.2,.9,.3,1.2) .5s,opacity .6s .5s}
.is-here .bag-card{transform:rotate(-6deg);opacity:1}

/* the trail map, fixed at the left while you're on the trail (wide screens) */
.trailmap{position:fixed;left:clamp(16px,2.4vw,36px);top:50%;z-index:20;transform:translate(-12px,-50%);display:grid;gap:clamp(1.6rem,6vh,3.4rem);
  opacity:0;pointer-events:none;transition:opacity .4s,transform .4s}
.trailmap.on{opacity:1;transform:translate(0,-50%);pointer-events:auto}
.trailmap-line{position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:repeating-linear-gradient(rgba(251,245,233,.55) 0 6px,transparent 6px 12px)}
.trailmap-line i{position:absolute;inset:0 0 auto;height:0;background:var(--cream)}
.trailmap a{position:relative;display:grid;grid-template-columns:18px auto;align-items:center;column-gap:.7rem;text-decoration:none;color:#D6E0D2}
.trailmap a::before{content:"";grid-row:span 2;width:18px;height:18px;border-radius:50%;background:var(--moss);border:2px solid rgba(251,245,233,.7);transition:background .3s,border-color .3s,transform .3s}
.trailmap a.on::before,.trailmap a.past::before{background:var(--c);border-color:var(--cream)}
.trailmap a.on::before{transform:scale(1.25)}
.trailmap b{font:400 .7rem/1 var(--label);letter-spacing:.2em;text-transform:lowercase;color:#B7C6B3}
.trailmap span{font:500 .92rem/1.2 var(--body);opacity:0;transform:translateX(-4px);transition:opacity .3s,transform .3s}
.trailmap a.on span,.trailmap:hover span{opacity:1;transform:none}

/* ---------------------------------------------------------------- build a handful */
.handful{padding-top:clamp(4rem,9vw,7rem);background:linear-gradient(var(--moss) 0,var(--oat) 0) top/100% 0 no-repeat,var(--oat)}
.handful-head h2{font:800 clamp(2.6rem,7vw,5.4rem)/.9 var(--display);letter-spacing:-.03em}
.handful-head > p{max-width:34em;margin-top:1rem;font-size:1.1rem;color:var(--ink-2)}
.pour{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.pour-btn{min-height:46px;padding:.55rem 1.1rem;border:1.5px solid var(--c);border-radius:var(--r);background:#fff;color:var(--c);font:400 1.05rem/1 var(--label);letter-spacing:.14em;text-transform:lowercase;cursor:pointer;transition:background .2s,color .2s,transform .15s}
.pour-btn:hover{background:var(--c);color:#fff}
.pour-btn:active{transform:translateY(2px)}
.pour-tools{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1rem}
.count{color:var(--ink-2);font-size:.95rem}
.handful-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:end}
.hand-box{position:relative;height:clamp(380px,56vh,540px);border-radius:28px;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 0%,var(--cream) 0%,var(--oat-2) 100%);box-shadow:inset 0 -18px 40px rgba(80,55,25,.18),inset 0 2px 0 #fff,0 24px 50px -24px rgba(60,40,20,.45)}
@media (max-width:860px){.handful-grid{grid-template-columns:1fr}.hand-box{height:clamp(340px,60vh,460px)}}
.hand-box canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab}
.hand-order{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding-block:1.6rem clamp(3rem,7vw,5rem);margin-block:0;color:var(--ink-2)}

/* ---------------------------------------------------------------- story teaser */
.story-teaser{background:var(--moss);color:var(--cream);padding-block:clamp(4rem,9vw,7rem)}
.story-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem)}
.story-quote h2{font:800 clamp(2.4rem,6vw,4.4rem)/.95 var(--display);letter-spacing:-.03em;margin-bottom:1.2rem}
.story-quote p:first-of-type{font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.5;color:#E4EBE1}
.story-friends{align-self:end;border-top:1px solid rgba(251,245,233,.2);padding-top:1.4rem}
.story-friends h3{font:400 1rem/1 var(--label);letter-spacing:.3em;text-transform:lowercase;color:#B9CBB6;margin-bottom:.8rem}
.story-friends p{color:#D3DDCF}

/* ---------------------------------------------------------------- inner pages */
.page-head{background:var(--moss);color:var(--cream);padding-block:clamp(3.5rem,8vw,6rem)}
.page-head h1{font:800 clamp(3rem,9vw,6.4rem)/.9 var(--display);letter-spacing:-.035em}
.page-head p{max-width:36em;margin-top:1.1rem;font-size:1.15rem;color:#DCE5D8}
.mixes{padding-block:clamp(3rem,7vw,5rem)}
.mix{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(1.5rem,5vw,4rem);align-items:center;padding-block:clamp(2rem,5vw,3.5rem);scroll-margin-top:calc(var(--top-h) + 20px)}
.mix + .mix{border-top:1px solid rgba(30,35,31,.12)}
.mix:nth-child(even) .mix-bowl{order:2}
.mix-bowl{position:relative;max-width:440px;justify-self:center;width:100%}
.mix-bowl .bowl-img{filter:drop-shadow(0 22px 26px rgba(60,40,20,.25))}
.mix-text .blend-name{margin-bottom:1rem}
.mix-text .items{padding:0;font-size:1.12rem}
.mix-size{margin-top:1rem;color:var(--ink-2)}
.mix-bag{left:auto;right:-10%;bottom:-2%;width:30%;opacity:1;transform:rotate(7deg)}
.mix:nth-child(even) .mix-bag{right:auto;left:-10%;transform:rotate(-7deg)}
.story{padding-block:clamp(3rem,7vw,5rem)}
.story-cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.prose p{font-size:1.15rem;max-width:36em}
.prose h2{margin:2.2rem 0 .8rem;font:800 clamp(1.8rem,3.6vw,2.6rem)/1 var(--display);letter-spacing:-.02em}
.story-art{display:grid;place-items:center}
.carry{padding-block:clamp(3rem,7vw,5rem)}
.carry-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.carry-text p{font-size:1.1rem;color:var(--ink-2)}
.carry-bags{display:flex;gap:.6rem;margin-bottom:1.6rem}
.carry-bags .bag-card{position:static;opacity:1;transform:rotate(-4deg);width:33%}
.carry-bags .bag-card:nth-child(2){transform:rotate(3deg) translateY(10px)}

.form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem 1.1rem;background:#fff;padding:clamp(1.2rem,3vw,2rem);border-radius:var(--r);box-shadow:0 20px 50px -30px rgba(30,35,31,.4)}
.fld{display:grid;gap:.35rem;min-width:0}
.fld-wide{grid-column:1/-1}
.fld > span{font-weight:600;font-size:.92rem}
.opt{font-weight:400;color:#7a7d74;margin-left:.3em}
.fld input,.fld textarea{width:100%;min-width:0;font:400 1rem/1.4 var(--body);color:var(--ink);background:#FBF8F1;border:1px solid #D6CBB4;border-radius:var(--r);padding:.75rem .85rem}
.fld input:focus,.fld textarea:focus{outline:2px solid #E39B36;outline-offset:0;background:#fff}
.form-msg{margin:0;padding:.9rem 1rem;background:#FFF1D6;border-left:3px solid #E39B36;font-weight:600}

/* sticker art (her "Step outside" sticker, as a mask) */
.sticker{display:block;width:min(100%,300px);aspect-ratio:.98;background:var(--cream);-webkit-mask:url(../img/sticker-mask.png) center/contain no-repeat;mask:url(../img/sticker-mask.png) center/contain no-repeat}
.sticker-ink{background:var(--moss-2)}

/* footer */
.foot{background:#0E1C14;color:#D3DDCF;padding-top:clamp(3rem,7vw,5rem)}
.foot-grid{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(2rem,6vw,5rem);align-items:center}
.foot .sticker{width:min(100%,240px)}
.foot-big{font:800 clamp(2.4rem,6vw,4rem)/.9 var(--display);letter-spacing:-.03em;color:var(--cream)}
.foot-links{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:0 0 .6rem}
.foot-links a{color:var(--cream);text-underline-offset:3px}
.foot-fine{margin:0;padding-block:2rem;font-size:.85rem;color:#7F907E}

/* ---------------------------------------------------------------- narrow screens */
@media (max-width:1100px){.trailmap{display:none}.stop-in{padding-left:clamp(16px,4vw,32px)}}
@media (max-width:900px){
  .menu-btn{display:block}
  .nav{position:absolute;left:0;right:0;top:100%;display:none;flex-direction:column;align-items:stretch;gap:0;padding:.4rem clamp(16px,4vw,32px) 1.2rem;background:var(--moss);border-top:1px solid rgba(251,245,233,.1)}
  .nav.is-open{display:flex}
  .nav a:not(.btn){padding:.85rem 0;border-bottom:1px solid rgba(251,245,233,.1)}
  .nav .btn{margin-top:1rem}
  .stop{min-height:0}
  .stop-in{grid-template-columns:minmax(0,1fr);padding-block:4rem 5rem}
  .stop-bowl{width:min(88%,420px);margin-top:1rem}
  .story-grid,.story-cols,.carry-grid,.mix,.foot-grid{grid-template-columns:minmax(0,1fr)}
  .mix:nth-child(even) .mix-bowl{order:0}
  .mix-bag,.mix:nth-child(even) .mix-bag{left:-2%;right:auto;bottom:-2%;width:28%}
}
@media (max-width:560px){
  body{font-size:16px}
  .form{grid-template-columns:minmax(0,1fr)}
  .trailhead-in{padding-bottom:11rem}
  .label{padding:1.1rem 1.2rem 1.2rem}
  .bag-card{width:34%;left:-4%}
  .logo{width:112px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .bag-card{opacity:1}
}
