/* ══════════════════════════════════════════════════════════════
   THE COFFEE PLANET — style.css
   Palette: cosmic espresso · kraft tan · walnut · warm amber · cream
══════════════════════════════════════════════════════════════ */
:root{
  --space:#0c0a08;        /* deep cosmic espresso */
  --space-2:#15110c;
  --cream:#f5ede0;        /* kraft-paper light / cup */
  --cream-2:#ece2d2;
  --kraft:#c2a079;        /* kraft tan */
  --kraft-deep:#a87f50;
  --espresso:#2a1d12;     /* dark coffee */
  --walnut:#46301f;       /* counter wood */
  --amber:#d6a24a;        /* edison glow / gold accent */
  --amber-bright:#ecbd66;
  --ink:#1a1510;          /* text on cream */
  --muted-d:rgba(245,237,224,.55);  /* muted on dark */
  --muted-l:rgba(42,29,18,.62);     /* muted on light */
  --line-d:rgba(245,237,224,.16);
  --line-l:rgba(42,29,18,.14);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--space);
  color:var(--cream);
  font-family:'Inter',system-ui,sans-serif;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;            /* keep sticky working (not hidden) */
}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;font-weight:600;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

.eyebrow{
  display:inline-block;font-family:'Space Grotesk',sans-serif;
  font-size:11px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;
  color:var(--amber);margin-bottom:18px;
}

/* ── Navigation ─────────────────────────────── */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px clamp(20px,5vw,56px);
  background:rgba(12,10,8,0);
  border-bottom:1px solid transparent;
  transform:translateY(-100%);
  transition:transform .5s ease,background .4s ease,border-color .4s ease;
  backdrop-filter:blur(8px);
}
#nav.show{transform:translateY(0)}
#nav.scrolled{background:rgba(12,10,8,.82);border-bottom-color:var(--line-d)}
.nav-logo{display:flex;align-items:center;gap:12px}
.nav-logo img{width:34px;height:34px}
.nav-logo span{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14px;letter-spacing:.18em}
.nav-links{display:flex;gap:clamp(18px,2.4vw,38px)}
.nav-links a{
  font-size:13px;letter-spacing:.08em;color:var(--muted-d);
  position:relative;padding:4px 0;transition:color .25s;
}
.nav-links a:hover{color:var(--cream)}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--amber);transition:width .3s;
}
.nav-links a:hover::after{width:100%}

/* ── Skip button ────────────────────────────── */
#skip-btn{
  position:fixed;top:22px;right:clamp(20px,5vw,56px);z-index:70;
  background:rgba(245,237,224,.08);color:var(--cream);
  border:1px solid var(--line-d);border-radius:100px;
  padding:9px 18px;font-family:'Space Grotesk',sans-serif;font-size:12px;
  letter-spacing:.06em;cursor:pointer;backdrop-filter:blur(6px);
  transition:background .25s,opacity .4s,transform .4s;
}
#skip-btn:hover{background:rgba(245,237,224,.16)}
#skip-btn.is-hidden{opacity:0;pointer-events:none;transform:translateY(-8px)}

/* ── Film / scroll-scrub ────────────────────── */
#film{position:relative;height:640vh;z-index:1}
.film-stage{
  position:sticky;top:0;height:100vh;overflow:hidden;
  background:var(--space);
}
#film-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.film-vignette{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% 42%,transparent 55%,rgba(12,10,8,.55) 100%),
    linear-gradient(to bottom,rgba(12,10,8,.35),transparent 22%,transparent 72%,rgba(12,10,8,.55));
}

/* Hero overlay */
#hero{
  position:absolute;inset:0;z-index:5;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:0 24px;pointer-events:none;
}
#hero-logo{
  width:clamp(96px,13vw,150px);height:auto;margin-bottom:26px;
  filter:drop-shadow(0 8px 40px rgba(0,0,0,.6));
  animation:floatIn 1.3s cubic-bezier(.2,.7,.2,1) both;
}
#hero h1{
  font-size:clamp(34px,7vw,86px);line-height:.98;letter-spacing:.04em;
  text-shadow:0 4px 38px rgba(0,0,0,.7);
  animation:floatIn 1.3s .15s cubic-bezier(.2,.7,.2,1) both;
}
.hero-tag{
  margin-top:20px;font-family:'Caveat',cursive;font-weight:600;
  font-size:clamp(22px,3.4vw,34px);color:var(--amber-bright);
  text-shadow:0 2px 20px rgba(0,0,0,.6);
  animation:floatIn 1.3s .3s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes floatIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

/* Captions */
#captions{position:absolute;inset:0;z-index:6;pointer-events:none}
.caption{
  position:absolute;left:0;right:0;bottom:18vh;text-align:center;
  font-family:'Space Grotesk',sans-serif;font-weight:500;
  font-size:clamp(22px,4vw,46px);letter-spacing:.01em;
  color:var(--cream);text-shadow:0 3px 30px rgba(0,0,0,.85);
  opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s;
  padding:0 24px;
}
.caption.is-active{opacity:1;transform:none}

/* Scroll hint */
#scroll-hint{
  position:absolute;left:0;right:0;bottom:34px;z-index:6;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  pointer-events:none;transition:opacity .5s;
}
#scroll-hint span{font-family:'Space Grotesk',sans-serif;font-size:10px;letter-spacing:.42em;color:var(--muted-d)}
.scroll-line{width:1px;height:46px;background:linear-gradient(var(--amber),transparent);position:relative;overflow:hidden}
.scroll-line::after{content:'';position:absolute;top:-50%;left:0;width:100%;height:50%;background:var(--cream);animation:scrollDot 2s ease-in-out infinite}
@keyframes scrollDot{0%{top:-50%}60%,100%{top:100%}}

/* ── Content shell ──────────────────────────── */
#content{position:relative;z-index:10;background:var(--cream);color:var(--ink)}
section{padding:clamp(72px,11vw,150px) clamp(22px,6vw,90px)}
.section-head{text-align:center;max-width:680px;margin:0 auto clamp(44px,6vw,72px)}
.section-head h2{font-size:clamp(30px,5vw,58px);line-height:1.04}

.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}

.btn{display:inline-block;font-family:'Space Grotesk',sans-serif;font-size:13px;letter-spacing:.08em;padding:14px 28px;border-radius:100px;transition:.25s}
.btn-line{border:1px solid var(--ink);color:var(--ink);margin-top:30px}
.btn-line:hover{background:var(--ink);color:var(--cream)}

/* Story */
.story{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(36px,6vw,90px);align-items:center;max-width:1240px;margin:0 auto}
.story h2{font-size:clamp(32px,5.4vw,68px);line-height:1.02;margin-bottom:26px}
.story p{font-size:clamp(15px,1.3vw,18px);line-height:1.85;color:var(--muted-l);max-width:46ch;margin-bottom:18px}
.story-img{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/5;background:var(--space)}
.story-img img{width:100%;height:100%;object-fit:cover}

/* Stats strip */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;background:var(--espresso);color:var(--cream);border-radius:18px;max-width:1240px;margin:0 auto;padding:clamp(34px,5vw,56px)}
.strip-item{text-align:center;display:flex;flex-direction:column;gap:8px}
.strip-item .num{font-family:'Space Grotesk',sans-serif;font-size:clamp(30px,4vw,50px);font-weight:600;color:var(--amber-bright)}
.strip-item .lbl{font-size:12px;letter-spacing:.06em;color:var(--muted-d)}

/* Menu */
.menu{background:var(--cream)}
.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,44px);max-width:980px;margin:0 auto}
.menu-card{border-bottom:1px solid var(--line-l);padding-bottom:18px}
.menu-row{display:flex;align-items:baseline;gap:10px;font-family:'Space Grotesk',sans-serif;font-size:clamp(18px,2vw,23px);font-weight:500}
.menu-row .dots{flex:1;border-bottom:1px dotted rgba(42,29,18,.35);transform:translateY(-4px)}
.menu-row .price{color:var(--kraft-deep);font-weight:600}
.menu-card p{margin-top:8px;font-size:14px;color:var(--muted-l);line-height:1.6}

/* Beans */
.beans{background:var(--espresso);color:var(--cream)}
.beans .eyebrow{color:var(--amber-bright)}
.beans-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px);max-width:1240px;margin:0 auto}
.bean-card{
  background:linear-gradient(180deg,rgba(245,237,224,.06),rgba(245,237,224,.02));
  border:1px solid var(--line-d);border-radius:16px;
  padding:clamp(22px,2.4vw,32px);text-align:center;transition:transform .35s,border-color .35s;
}
.bean-card:hover{transform:translateY(-6px);border-color:rgba(214,162,74,.5)}
.bean-coin{
  width:64px;height:64px;margin:0 auto 18px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--cream);
  background:radial-gradient(circle at 35% 30%,var(--kraft),var(--walnut));
  box-shadow:0 6px 24px rgba(0,0,0,.4);
}
.bean-coin svg{width:34px;height:34px}
.bean-card h3{font-size:20px;margin-bottom:10px}
.bean-card .notes{font-size:13px;color:var(--muted-d);line-height:1.6;margin-bottom:8px}
.bean-card .roast{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);margin-bottom:16px}
.bean-card .bean-price{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:15px}

/* Visit */
.visit{background:var(--cream)}
.visit-card{display:grid;grid-template-columns:1fr 1.1fr;max-width:1240px;margin:0 auto;border-radius:20px;overflow:hidden;box-shadow:0 30px 80px rgba(42,29,18,.12)}
.visit-info{background:var(--walnut);color:var(--cream);padding:clamp(34px,4.5vw,68px);display:flex;flex-direction:column;justify-content:center}
.visit-info .eyebrow{color:var(--amber-bright)}
.visit-info h2{font-size:clamp(30px,4vw,52px);line-height:1.04;margin-bottom:30px}
.visit-list{list-style:none;display:flex;flex-direction:column;gap:20px}
.visit-list li{display:grid;grid-template-columns:88px 1fr;gap:16px;align-items:start;padding-top:18px;border-top:1px solid var(--line-d)}
.visit-list li:first-child{border-top:none;padding-top:0}
.vk{font-family:'Space Grotesk',sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);padding-top:3px}
.vv{font-size:15px;line-height:1.6;color:rgba(245,237,224,.85)}
.vv a{border-bottom:1px solid var(--amber)}
.visit-img{background:var(--space)}
.visit-img img{width:100%;height:100%;object-fit:cover;min-height:340px}

/* Footer */
.footer{background:var(--space);color:var(--cream);text-align:center;padding:clamp(56px,8vw,96px) 24px}
.footer-logo{width:72px;margin:0 auto 22px}
.footer-tag{font-family:'Caveat',cursive;font-size:26px;color:var(--amber-bright);margin-bottom:30px}
.footer-links{display:flex;justify-content:center;gap:30px;margin-bottom:34px}
.footer-links a{font-size:13px;letter-spacing:.06em;color:var(--muted-d);transition:color .25s}
.footer-links a:hover{color:var(--cream)}
.footer-copy{font-size:12px;color:rgba(245,237,224,.38);letter-spacing:.04em}

/* ── Responsive ─────────────────────────────── */
@media(max-width:860px){
  .story{grid-template-columns:1fr;text-align:center}
  .story p{margin-left:auto;margin-right:auto}
  .story-img{aspect-ratio:16/11;order:-1}
  .strip{grid-template-columns:repeat(2,1fr);gap:30px}
  .menu-grid{grid-template-columns:1fr}
  .beans-grid{grid-template-columns:repeat(2,1fr)}
  .visit-card{grid-template-columns:1fr}
  .visit-img{order:-1}
}
@media(max-width:560px){
  .nav-logo span{display:none}
  .nav-links{gap:16px}
  .nav-links a{font-size:12px}
  #film{height:560vh}
  .beans-grid{grid-template-columns:1fr}
  .visit-list li{grid-template-columns:1fr;gap:4px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
}
