:root{
  --ink:#1c1a17;
  --paper:#f6f1e7;
  --green:#2e7d4f;
  --card:rgba(246,241,231,.93);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);
  background:#f7dcc0;
  overflow-x:hidden;
}
#scene{
  position:fixed;inset:0;width:100%;height:100%;
  display:block;z-index:0;
}
.skyfall{ /* fallback gradient if webgl fails: body.no-webgl shows this */
  position:fixed;inset:0;z-index:-1;display:none;
  background:linear-gradient(180deg,#f7dcc0 0%,#cfe6f2 40%,#f9e2b8 70%,#232a4a 100%);
}
body.no-webgl .skyfall{display:block}
body.no-webgl #scene{display:none}

main{position:relative;z-index:1}
.chapter{
  min-height:100vh;min-height:100svh;
  display:flex;align-items:center;
  padding:6vh 6vw;
}
.chapter.right{justify-content:flex-end}
.chapter.left{justify-content:flex-start}
.chapter.cta{justify-content:center;text-align:center}
.chapter.hero{justify-content:flex-start;text-align:left}
.chapter.hero .card{padding-left:clamp(0px,2vw,1.5rem)}
.chapter.hero .lede{margin-left:0}


.card{
  max-width:34rem;
  background:var(--card);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border:1px solid rgba(28,26,23,.14);
  border-radius:22px;
  padding:clamp(1.4rem,3.5vw,2.6rem);
  box-shadow:0 18px 50px rgba(28,26,23,.14);
  opacity:0;transform:translateY(34px) scale(.985);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);
}
.chapter.in .card{opacity:1;transform:none}
.hero .card{background:rgba(246,241,231,.95)}

.eyebrow{
  letter-spacing:.42em;font-weight:700;font-size:.8rem;
  padding:.5em 1.2em;border:1.5px solid var(--ink);border-radius:999px;
  display:inline-block;margin-bottom:1.4rem;background:var(--paper);
}
.step{
  font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--green);margin-bottom:.9rem;
}
h1,h2{
  font-family:ui-serif,Georgia,"Times New Roman",serif;
  font-weight:600;line-height:1.02;letter-spacing:-.015em;
}
h1{font-size:clamp(2.9rem,9.5vw,6.4rem)}
h2{font-size:clamp(2.1rem,6.5vw,4.2rem)}
h2 em{font-style:italic;color:var(--green)}
.lede{margin-top:1.4rem;font-size:clamp(1rem,2.4vw,1.2rem);line-height:1.55;max-width:30rem;margin-left:auto;margin-right:auto}
.chapter p:not(.step):not(.eyebrow):not(.cue):not(.fine){margin-top:1.1rem;font-size:clamp(.98rem,2.2vw,1.13rem);line-height:1.6}
.cue{margin-top:2.6rem;font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;opacity:.65}
.cue .arrow{display:inline-block;animation:bob 1.6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(6px)}}

.actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:1.8rem}
.btn{
  font-weight:700;font-size:1rem;text-decoration:none;color:var(--ink);
  padding:.95em 1.7em;border-radius:999px;border:2px solid var(--ink);
  transition:transform .15s ease,box-shadow .15s ease;
  box-shadow:0 4px 0 var(--ink);
}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}
.btn.primary{background:var(--green);color:#fff;border-color:var(--ink)}
.btn.ghost{background:var(--paper)}
.fine{margin-top:1.4rem;font-size:.82rem;opacity:.62}

footer{
  position:relative;z-index:1;text-align:center;
  padding:2.2rem 1rem 2.6rem;font-size:.85rem;opacity:.75;
}

@media (max-width:640px){
  .chapter{padding:5vh 5vw;align-items:flex-end;padding-bottom:12vh}
  .chapter.hero{align-items:flex-end;justify-content:center;text-align:center;padding-bottom:10vh}
  .chapter.hero .lede{margin-left:auto}
  .card{border-radius:18px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .cue .arrow{animation:none}
  .card{transition:none;opacity:1;transform:none}
}
