:root{
  --forest-deep: #14210f;
  --forest-mid: #24371c;
  --olive-accent: #8fae4a;
  --olive-accent-light: #b6d17a;
  --cream: #f6f4ec;
  --cream-dim: rgba(246,244,236,0.82);
  --line: rgba(246,244,236,0.35);
  --font-display: 'Anton', sans-serif;
  --font-script: 'Caveat', cursive;
  --font-body: 'Work Sans', sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--cream);
  background:var(--forest-deep);
  -webkit-font-smoothing:antialiased;
}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100vh;
  width:100%;
  overflow:hidden;
  background:
    linear-gradient(90deg, rgba(10,18,8,0.72) 0%, rgba(10,18,8,0.42) 42%, rgba(10,18,8,0.12) 65%, rgba(10,18,8,0.28) 100%),
    linear-gradient(rgba(8,14,6,0.15), rgba(8,14,6,0.5)),
    url('https://images.unsplash.com/photo-1760019185488-907418046670?fm=jpg&q=80&w=2400&auto=format&fit=crop') center/cover no-repeat fixed;
  display:flex;
  flex-direction:column;
}

.hero__overlay{
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 15% 30%, rgba(10,18,8,0.35), transparent 55%);
  pointer-events:none;
}

/* ---------- HEADER ---------- */
.site-header{
  position:relative;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:2.2rem clamp(1.25rem, 4vw, 3.5rem) 0;
}

.logo{
  display:flex;
  align-items:center;
  text-decoration:none;
}
.logo__img{
  display:block;
  height:clamp(38px, 5.5vw, 52px);
  width:auto;
  background:var(--cream);
  border-radius:8px;
  padding:0.4rem 0.75rem;
  box-shadow:0 4px 16px rgba(0,0,0,0.25);
}

.header__right{
  display:flex;
  align-items:center;
  gap:1rem;
}
.header__follow{
  font-size:0.85rem;
  color:var(--cream);
  display:none;
}
@media (min-width:640px){ .header__follow{display:inline;} }
.header__divider{
  width:1px;height:18px;
  background:var(--line);
  display:none;
}
@media (min-width:640px){ .header__divider{display:block;} }

.social{display:flex;gap:0.6rem;}
.social__link{
  width:34px;height:34px;
  border-radius:50%;
  background:rgba(246,244,236,0.95);
  color:var(--forest-deep);
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;
  transition:transform .2s ease, background .2s ease;
}
.social__link svg{width:16px;height:16px;}
.social__link:hover{transform:translateY(-2px);background:var(--olive-accent-light);}

/* ---------- SCROLL DOTS ---------- */
.scroll-dots{
  position:absolute;
  right:clamp(1rem,3vw,2.5rem);
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:0.7rem;
  z-index:5;
}
.dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(246,244,236,0.35);
}
.dot--active{background:var(--olive-accent);width:10px;height:10px;}
.dot--light{background:var(--cream);}
@media (max-width:768px){ .scroll-dots{display:none;} }

/* ---------- MAIN CONTENT ---------- */
.hero__content{
  position:relative;
  z-index:4;
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:1.5rem;
  padding:2rem clamp(1.25rem,4vw,3.5rem) 3rem;
  max-width:640px;
}

.headline{
  margin:0;
  font-family:var(--font-display);
  text-transform:uppercase;
  line-height:0.92;
  letter-spacing:1px;
}
.headline__line{
  display:block;
  font-size:clamp(2.6rem, 6.2vw, 4.5rem);
  color:var(--cream);
  text-shadow:0 3px 18px rgba(0,0,0,0.35);
}
.headline__script{
  display:block;
  font-family:var(--font-script);
  font-weight:700;
  text-transform:none;
  font-size:clamp(3rem, 7vw, 5.2rem);
  color:var(--olive-accent-light);
  line-height:1;
  margin-top:0.1em;
  letter-spacing:0;
}

.divider{
  display:flex;
  align-items:center;
  gap:0.9rem;
  width:100%;
  max-width:420px;
}
.divider__line{flex:1;height:1px;background:var(--line);}
.divider__icon{width:34px;height:20px;color:var(--olive-accent-light);flex-shrink:0;}

.subcopy{
  margin:0;
  font-size:1.05rem;
  line-height:1.55;
  color:var(--cream-dim);
  max-width:420px;
}

/* ---------- PROGRESS ---------- */
.progress{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.6rem 0.9rem;
  max-width:420px;
}
.progress__label{
  display:flex;
  align-items:center;
  gap:0.45rem;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--olive-accent-light);
  width:100%;
}
.progress__leaf{width:16px;height:16px;}
.progress__track{
  flex:1;
  height:9px;
  border-radius:999px;
  background:rgba(246,244,236,0.15);
  border:1px solid var(--line);
  overflow:hidden;
}
.progress__fill{
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, var(--olive-accent), var(--olive-accent-light));
  transition:width 1s ease;
}
.progress__value{
  font-size:0.95rem;
  font-weight:600;
  color:var(--cream);
  min-width:2.6rem;
}

/* ---------- COUNTDOWN ---------- */
.countdown-block__title{
  margin:0 0 0.7rem;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--olive-accent-light);
}
.countdown{
  display:flex;
  align-items:baseline;
  gap:0.9rem;
}
.countdown__unit{display:flex;flex-direction:column;align-items:flex-start;}
.countdown__num{
  font-family:var(--font-display);
  font-size:clamp(1.9rem, 4vw, 2.6rem);
  color:var(--cream);
  line-height:1;
}
.countdown__label{
  font-size:0.65rem;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--cream-dim);
  margin-top:0.35rem;
}
.countdown__sep{
  font-family:var(--font-display);
  font-size:1.6rem;
  color:var(--line);
  align-self:flex-start;
  margin-top:-0.2rem;
}

/* ---------- SIGNUP ---------- */
.signup{max-width:440px;}
.signup__title{
  margin:0 0 0.7rem;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--olive-accent-light);
}
.signup__form{
  display:flex;
  gap:0.6rem;
  flex-wrap:wrap;
}
.signup__form input{
  flex:1;
  min-width:200px;
  padding:0.85rem 1.1rem;
  border-radius:8px;
  border:1px solid rgba(246,244,236,0.3);
  background:rgba(20,33,15,0.55);
  color:var(--cream);
  font-family:var(--font-body);
  font-size:0.95rem;
  outline:none;
  transition:border-color .2s ease, background .2s ease;
}
.signup__form input::placeholder{color:rgba(246,244,236,0.55);}
.signup__form input:focus{border-color:var(--olive-accent-light);background:rgba(20,33,15,0.75);}
.signup__form input:focus-visible{outline:2px solid var(--olive-accent-light); outline-offset:2px;}

.signup__form button{
  padding:0.85rem 1.6rem;
  border-radius:8px;
  border:none;
  background:var(--olive-accent);
  color:var(--forest-deep);
  font-family:var(--font-body);
  font-weight:700;
  font-size:0.85rem;
  letter-spacing:1px;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.signup__form button:hover{background:var(--olive-accent-light); transform:translateY(-1px);}
.signup__form button:focus-visible{outline:2px solid var(--cream); outline-offset:2px;}
.signup__form button:disabled{opacity:0.6;cursor:default;transform:none;}

.signup__note{
  display:flex;
  align-items:center;
  gap:0.4rem;
  margin:0.75rem 0 0;
  font-size:0.8rem;
  color:var(--cream-dim);
}
.signup__note svg{width:14px;height:14px;flex-shrink:0;}
.signup__note.is-success{color:var(--olive-accent-light);font-weight:600;}
.signup__note.is-error{color:#e2a25a;}

/* ---------- TAGLINE ---------- */
.tagline{
  position:fixed;
  right:clamp(1.25rem,4vw,3.5rem);
  bottom:clamp(11rem,26vw,13.5rem);
  z-index:6;
  margin:0;
  font-family:var(--font-script);
  font-weight:700;
  font-size:clamp(1.3rem,2.4vw,1.8rem);
  line-height:1.15;
  text-align:right;
  color:var(--cream);
  text-shadow:0 2px 12px rgba(0,0,0,0.4);
}
@media (max-width:640px){ .tagline{display:none;} }

/* ---------- MUG ---------- */
.mug{
  position:fixed;
  right:clamp(1.5rem,5vw,4.5rem);
  bottom:clamp(1.5rem,4vw,3rem);
  z-index:6;
  width:clamp(120px,14vw,180px);
  filter:drop-shadow(0 14px 28px rgba(0,0,0,0.55));
}
.mug__body{
  display:block;
  width:100%;
  height:auto;
  position:relative;
  z-index:2;
}
.mug__beans{
  display:block;
  width:78%;
  height:auto;
  margin:-6% 0 0 4%;
  position:relative;
  z-index:1;
}
.mug__steam{
  position:absolute;
  left:12%;
  bottom:78%;
  width:56%;
  height:auto;
  z-index:3;
  pointer-events:none;
}
.steam__wisp{
  transform-origin:center bottom;
  animation:steam-rise 3.6s ease-in-out infinite;
}
.steam__wisp--2{ animation-delay:0.9s; }
.steam__wisp--3{ animation-delay:1.8s; }

@keyframes steam-rise{
  0%   { opacity:0;   transform:translateY(6px) scaleY(0.9); }
  20%  { opacity:0.85;}
  60%  { opacity:0.55;}
  100% { opacity:0;   transform:translateY(-14px) scaleY(1.08); }
}

@media (max-width:640px){
  .mug{
    right:1.1rem;
    bottom:1.1rem;
    width:96px;
  }
}
@media (max-width:400px){
  .mug{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  .steam__wisp{ animation:none; opacity:0.5; }
}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .progress__fill, .social__link, .signup__form button{transition:none;}
}

/* ---------- SMALL SCREENS ---------- */
@media (max-width:480px){
  .hero{background-attachment:scroll;}
  .countdown{gap:0.6rem;}
  .countdown__sep{display:none;}
  .signup__form{flex-direction:column;}
  .signup__form button{width:100%;}
}
