/* Innchant — landing page styles
   Dark, candle-lit. Type-led. WebGL hero behind, content forward. */

:root{
  --ink-0:#0d0907;        /* deepest ground */
  --ink-1:#14100c;
  --ink-2:#1a120b;        /* primary background */
  --ink-3:#241811;
  --ink-4:#3d2418;        /* warm shadow */
  --ember:#c97b3c;        /* primary accent */
  --ember-dim:#8a4f24;
  --parch:#f4d9a8;        /* highlight / paper */
  --parch-dim:#c8b48a;
  --bone:#ece2cf;
  --mist:rgba(244,217,168,.55);

  --serif:'Cormorant Garamond', 'EB Garamond', Georgia, serif;
  --sans:'Inter', ui-sans-serif, system-ui, sans-serif;
  --mono:'JetBrains Mono', ui-monospace, monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--ink-2);color:var(--bone);font-family:var(--sans);
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden}
body{min-height:100vh}

/* ---------------- WebGL canvas ---------------- */
#webgl{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;
  background:radial-gradient(ellipse at 50% 60%, #2a160d 0%, #0d0907 70%)}
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(13,9,7,.6) 90%)}
.grain{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.06;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='0.8'/></svg>")}

main{position:relative;z-index:3}

/* ---------------- Top bar ---------------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;justify-content:space-between;align-items:center;
  padding:20px 32px;
  background:linear-gradient(180deg, rgba(13,9,7,.78) 0%, rgba(13,9,7,.62) 70%, rgba(13,9,7,0) 100%);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px)}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);
  font-size:22px;font-weight:500;letter-spacing:.01em;color:var(--parch);
  text-decoration:none}
.brand.brand-link{transition:opacity .3s}
.brand.brand-link:hover{opacity:.82}
.brand .mark{width:32px;height:32px;display:inline-block;color:var(--ember);
  filter:drop-shadow(0 0 6px rgba(201,123,60,.25))}
.nav-links{display:flex;gap:28px;font-size:13px;color:var(--parch-dim);
  font-feature-settings:'ss01';letter-spacing:.02em}
.nav-links a{color:inherit;text-decoration:none;transition:color .3s}
.nav-links a:hover{color:var(--parch)}
.nav-meta{font-family:var(--mono);font-size:11px;color:rgba(244,217,168,.4);
  letter-spacing:.08em;text-transform:uppercase}

/* ---------------- Hero ---------------- */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-start;
  padding:140px 32px 80px;position:relative;max-width:1280px;margin:0 auto}
.hero h1{font-family:var(--serif);font-weight:400;
  font-size:clamp(32px,5vw,72px);line-height:1.04;letter-spacing:-.015em;
  color:var(--parch);max-width:22ch;text-wrap:balance}
.hero h1 em{font-style:italic;color:var(--ember);font-weight:400}
.hero-badge{display:inline-flex;align-items:center;align-self:flex-start;
  margin-top:24px;padding:6px 14px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ember);
  background:rgba(201,123,60,.08);
  border:.5px solid rgba(201,123,60,.45);border-radius:999px;
  box-shadow:0 0 14px rgba(201,123,60,.12)}
.hero-badge::before{content:"";display:inline-block;width:6px;height:6px;
  border-radius:50%;background:var(--ember);margin-right:10px;
  box-shadow:0 0 8px var(--ember);
  animation:badge-pulse 2.2s ease-in-out infinite}
@keyframes badge-pulse{
  0%,100%{opacity:.55;transform:scale(.85)}
  50%{opacity:1;transform:scale(1)}
}
.hero-sub{margin-top:32px;font-family:var(--serif);font-style:italic;
  font-size:clamp(18px,1.6vw,22px);font-weight:400;color:var(--parch-dim);
  max-width:42ch;line-height:1.45;text-wrap:pretty}
.hero-foot.scroll-cue{position:absolute;left:0;right:0;bottom:36px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  font-family:var(--mono);font-size:11px;color:rgba(244,217,168,.55);
  letter-spacing:.18em;text-transform:uppercase;text-decoration:none;
  width:max-content;transition:color .3s}
.hero-foot.scroll-cue:hover{color:var(--parch)}
.cue-chevron{width:24px;height:12px;color:var(--ember);
  animation:scroll-hint 2.0s ease-in-out infinite}
@keyframes scroll-hint{
  0%,100%{transform:translateY(0);opacity:.55}
  50%{transform:translateY(6px);opacity:1}
}

/* ---------------- Section scaffolding ---------------- */
.section{position:relative;padding:140px 32px;max-width:1280px;margin:0 auto}
.section-tag{font-family:var(--mono);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ember);margin-bottom:24px;
  display:flex;align-items:center;gap:14px}
.section-tag::before{content:"";width:28px;height:1px;background:var(--ember);opacity:.6}
.section h2{font-family:var(--serif);font-weight:400;
  font-size:clamp(36px,4.5vw,64px);line-height:1.05;letter-spacing:-.015em;
  color:var(--parch);max-width:18ch;margin-bottom:18px;text-wrap:balance}
.section h2 em{font-style:italic;color:var(--ember-dim)}
.section .lede{font-family:var(--serif);font-style:italic;font-size:20px;
  color:var(--parch-dim);max-width:54ch;text-wrap:pretty;line-height:1.45}

/* ---------------- How it works ---------------- */
.steps{margin-top:80px;display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.step{position:relative;padding-top:48px}
.step .num{position:absolute;top:0;left:0;font-family:var(--serif);font-style:italic;
  font-size:54px;color:var(--ember);line-height:1;font-weight:400}
.step .num::after{content:"";display:block;width:32px;height:1px;
  background:var(--parch-dim);opacity:.4;margin-top:18px}
.step h3{font-family:var(--serif);font-weight:500;font-size:26px;
  color:var(--parch);margin-top:48px;margin-bottom:14px;letter-spacing:-.005em}
.step p{font-size:15px;color:var(--parch-dim);line-height:1.6;max-width:34ch}

/* ---------------- Feature list (paired rows, airy) ---------------- */
.features{margin-top:96px;display:flex;flex-direction:column;
  gap:0}
.feature{display:grid;grid-template-columns:80px 1fr;align-items:start;
  gap:48px;padding:48px 0;
  border-top:.5px solid rgba(244,217,168,.10);
  transition:background .4s ease}
.feature:last-child{border-bottom:.5px solid rgba(244,217,168,.10)}
.feature:hover{background:linear-gradient(90deg, transparent 0%, rgba(201,123,60,.04) 50%, transparent 100%)}
.feature .glyph{width:48px;height:48px;color:var(--ember);opacity:.9}
.feature .body{display:flex;flex-direction:column;gap:10px}
.feature h4{font-family:var(--serif);font-weight:500;font-size:26px;
  color:var(--parch);letter-spacing:-.005em;line-height:1.15}
.feature p{font-size:15px;color:var(--parch-dim);line-height:1.55;max-width:48ch}
.feature .meta{font-family:var(--mono);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(244,217,168,.4);
  padding-top:8px;text-align:right}

/* old span helpers no longer drive layout — kept as no-ops so the JSX stays clean */
.feature.f-wide,.feature.f-tall,.feature.f-2,.feature.f-3,.feature.f-4{}

/* ---------------- Footer ---------------- */
.foot{padding:80px 32px 48px;max-width:1280px;margin:0 auto;
  border-top:.5px solid rgba(244,217,168,.12);
  display:flex;justify-content:space-between;align-items:flex-end;
  font-family:var(--mono);font-size:11px;color:rgba(244,217,168,.4);
  letter-spacing:.08em;text-transform:uppercase}
.foot .tag{font-family:var(--serif);font-style:italic;text-transform:none;
  letter-spacing:0;font-size:18px;color:var(--parch-dim);max-width:30ch}

/* ---------------- Reveal on scroll ---------------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 1.1s ease,transform 1.1s ease}
.reveal.in{opacity:1;transform:none}

@media (max-width:880px){
  .nav{padding:16px 20px}
  .nav-links{display:none}
  .hero{padding:100px 20px 60px}
  .section{padding:80px 20px}
  .steps{grid-template-columns:1fr;gap:48px}
  .features{margin-top:64px}
  .feature{grid-template-columns:1fr;gap:18px;padding:36px 0}
  .feature .meta{text-align:left;padding-top:0}
  .foot{flex-direction:column;align-items:flex-start;gap:24px}
}
