
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#f5f2ec;--bg2:#ede9e1;--surface:#fff;--surface2:#f7f4ef;
  --border:#e0dcd4;--border2:#ccc7bd;
  --ink:#0f0f0f;--ink2:#3a3a3a;--muted:#888;
  --accent:#c8401a;--accent-dim:rgba(200,64,26,.1);--accent-glow:rgba(200,64,26,.2);
  --green:#2a7a4b;--radius:12px;--radius-sm:8px;
}
html{scroll-behavior:smooth;}
body{font-family:"DM Sans",system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;}

/* NAV */
.nav{position:sticky;top:0;z-index:200;background:rgba(245,242,236,.92);border-bottom:1px solid var(--border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);}
.nav-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:60px;gap:24px;}
.nav-logo{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:800;letter-spacing:-.5px;color:var(--ink);text-decoration:none;}
.nav-logo img{width:28px;height:28px;border-radius:7px;}
.nav-links{display:flex;align-items:center;gap:2px;}
.nav-link{font-size:13px;font-weight:500;color:var(--ink2);text-decoration:none;padding:6px 12px;border-radius:var(--radius-sm);transition:background .14s,color .14s;}
.nav-link:hover{background:var(--surface2);color:var(--ink);}
.nav-actions{display:flex;align-items:center;gap:8px;}
.btn-ghost{font-family:inherit;font-size:13px;font-weight:600;color:var(--ink2);background:none;border:1px solid var(--border);padding:7px 16px;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;transition:all .14s;}
.btn-ghost:hover{background:var(--surface2);}
.btn-primary{font-family:inherit;font-size:13px;font-weight:800;color:#fff;background:var(--accent);border:none;padding:8px 18px;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;box-shadow:0 2px 0 #8f2e12;transition:opacity .15s;}
.btn-primary:hover{opacity:.88;}
.dark-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:6px;border-radius:var(--radius-sm);transition:background .14s;}
.dark-btn:hover{background:var(--surface2);}

/* HERO */
.hero-section{background:var(--ink);padding:140px 28px 96px;position:relative;overflow:hidden;}
.hero-section::before{content:'';position:absolute;top:-100px;right:-80px;width:600px;height:600px;background:radial-gradient(circle,rgba(200,64,26,.15) 0%,transparent 65%);pointer-events:none;}
.hero-wrap{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 420px;align-items:center;gap:64px;position:relative;z-index:1;}
.hero-pill{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:rgba(200,64,26,.12);padding:5px 12px;border-radius:100px;border:1px solid rgba(200,64,26,.25);margin-bottom:24px;}
.hero-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);}
.hero-h1{font-family:"DM Serif Display",serif;font-size:clamp(44px,5.5vw,68px);line-height:1.05;letter-spacing:-.04em;color:#fff;margin-bottom:22px;}
.hero-h1 em{font-style:italic;color:var(--accent);}
.hero-sub{font-size:17px;color:rgba(255,255,255,.5);line-height:1.65;max-width:460px;margin-bottom:40px;}
.hero-ctas{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.cta-main{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:14px;font-weight:800;color:#fff;background:var(--accent);border:none;padding:14px 28px;border-radius:var(--radius);cursor:pointer;text-decoration:none;box-shadow:0 3px 0 #8f2e12;transition:opacity .15s;}
.cta-main:hover{opacity:.88;}
.cta-secondary{font-size:13px;font-weight:600;color:rgba(255,255,255,.45);text-decoration:none;display:flex;align-items:center;gap:4px;transition:color .14s;}
.cta-secondary:hover{color:rgba(255,255,255,.75);}
.hero-stats{display:flex;gap:32px;margin-top:44px;padding-top:32px;border-top:1px solid rgba(255,255,255,.08);}
.hero-stat-num{font-size:22px;font-weight:800;color:#fff;}
.hero-stat-lbl{font-size:11px;color:rgba(255,255,255,.35);margin-top:2px;letter-spacing:.04em;text-transform:uppercase;}

/* MOCK UI */
.hero-visual{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:20px;}
.mock-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.mock-greeting{font-size:14px;font-weight:700;color:#fff;}
.mock-xp{background:var(--accent);color:#fff;font-size:10px;font-weight:800;padding:4px 10px;border-radius:100px;}
.mock-sub{font-size:10px;color:rgba(255,255,255,.35);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em;}
.mock-prog-track{background:rgba(255,255,255,.07);border-radius:100px;height:4px;margin-bottom:16px;overflow:hidden;}
.mock-prog-fill{height:100%;background:var(--accent);border-radius:100px;width:60%;}
.mock-habit{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(255,255,255,.07);border-radius:8px;margin-bottom:6px;background:rgba(255,255,255,.03);}
.mock-habit.done{background:rgba(255,255,255,.05);}
.mock-check{width:17px;height:17px;border-radius:4px;border:1.5px solid rgba(255,255,255,.2);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;}
.mock-habit.done .mock-check{background:var(--green);border-color:var(--green);color:#fff;}
.mock-habit-name{font-size:12px;font-weight:600;color:rgba(255,255,255,.8);flex:1;}
.mock-habit.done .mock-habit-name{color:rgba(255,255,255,.35);text-decoration:line-through;}
.mock-streak{font-size:10px;font-weight:700;color:var(--accent);}
.mock-streak-cold{color:rgba(255,255,255,.2);}

/* PROOF */
.proof-strip{background:var(--surface);border-bottom:1px solid var(--border);padding:36px 28px;}
.proof-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:56px;flex-wrap:wrap;}
.proof-stat{text-align:center;}
.proof-num{font-size:30px;font-weight:800;color:var(--ink);}
.proof-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:3px;}

/* SECTIONS */
.section-wrap{max-width:1100px;margin:0 auto;padding:88px 28px;}
.section-head{text-align:center;margin-bottom:56px;}
.eyebrow{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;}
.section-h2{font-family:"DM Serif Display",serif;font-size:clamp(34px,4vw,50px);line-height:1.08;letter-spacing:-.03em;margin-bottom:12px;}
.section-h2 em{font-style:italic;color:var(--accent);}
.section-p{font-size:15px;color:var(--muted);max-width:500px;margin:0 auto;line-height:1.7;}

/* FEATURES */
.features-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:16px;overflow:hidden;}
.feature-card:nth-child(1){grid-column:span 3;grid-row:span 2;padding:36px 32px;}
.feature-card:nth-child(2){grid-column:span 3;}
.feature-card:nth-child(3){grid-column:span 3;}
.feature-card:nth-child(4){grid-column:span 2;}
.feature-card:nth-child(5){grid-column:span 2;}
.feature-card:nth-child(6){grid-column:span 2;}
.feature-card:nth-child(1) .feature-title{font-size:18px;}
.feature-card:nth-child(1) .feature-desc{font-size:13px;max-width:340px;}
.feature-card:nth-child(1) .feature-icon-wrap{width:52px;height:52px;}
.feature-card:nth-child(1) .feature-icon-wrap .material-icons-round{font-size:26px;}
.feature-card{background:var(--surface);padding:30px 26px;transition:background .14s;}
.feature-card:hover{background:var(--surface2);}
.feature-num{font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--muted);display:block;margin-bottom:16px;}
.feature-icon-wrap{width:40px;height:40px;border-radius:10px;background:var(--accent-dim);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.feature-icon-wrap .material-icons-round{font-size:20px;color:var(--accent);}
.feature-title{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:7px;}
.feature-desc{font-size:12px;color:var(--muted);line-height:1.6;}
.feature-badge{display:inline-block;margin-top:12px;font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-dim);padding:3px 9px;border-radius:100px;}

/* PRICING */
.billing-row{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:44px;}
.billing-toggle{display:flex;background:var(--surface2);border:1px solid var(--border);border-radius:100px;padding:3px;}
.billing-opt{font-family:inherit;font-size:12px;font-weight:700;background:none;border:none;padding:6px 18px;border-radius:100px;cursor:pointer;color:var(--muted);transition:all .15s;}
.billing-opt.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.08);}
.save-pill{font-size:11px;font-weight:700;color:var(--green);background:rgba(42,122,75,.1);padding:5px 12px;border-radius:100px;}
.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:720px;margin:0 auto;}
.pricing-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:30px;}
.pricing-card.featured{background:var(--ink);border-color:var(--ink);}
.plan-badge{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:4px 10px;border-radius:100px;display:inline-block;margin-bottom:18px;}
.free-badge{background:var(--surface2);color:var(--muted);}
.pro-badge{background:var(--accent);color:#fff;}
.price-main{font-size:40px;font-weight:800;color:var(--ink);line-height:1;}
.pricing-card.featured .price-main{color:#fff;}
.price-currency{font-size:20px;vertical-align:super;}
.price-cents{font-size:20px;}
.price-period{font-size:12px;color:var(--muted);margin-top:5px;}
.pricing-card.featured .price-period{color:rgba(255,255,255,.4);}
.price-billed{font-size:11px;color:var(--muted);margin-top:2px;min-height:16px;}
.pricing-card.featured .price-billed{color:rgba(255,255,255,.3);}
.pricing-div{border-top:1px solid var(--border);margin:22px 0;}
.pricing-card.featured .pricing-div{border-color:rgba(255,255,255,.1);}
.pricing-features{list-style:none;display:flex;flex-direction:column;gap:9px;margin-bottom:26px;}
.pricing-features li{font-size:13px;color:var(--ink2);display:flex;align-items:center;gap:9px;}
.pricing-card.featured .pricing-features li{color:rgba(255,255,255,.7);}
.pricing-features li.locked{color:var(--muted);}
.ck{font-size:12px;width:16px;flex-shrink:0;font-weight:800;}
.ck.yes{color:var(--green);}
.pricing-card.featured .ck.yes{color:rgba(255,255,255,.7);}
.ck.no{color:var(--border2);}
.btn-pricing{width:100%;font-family:inherit;font-size:13px;font-weight:800;padding:13px;border-radius:var(--radius);cursor:pointer;border:none;transition:opacity .15s;}
.free-btn{background:var(--surface2);color:var(--ink);border:1px solid var(--border);}
.free-btn:hover{background:var(--border);}
.pro-btn{background:var(--accent);color:#fff;box-shadow:0 2px 0 #8f2e12;}
.pro-btn:hover{opacity:.88;}

/* FOOTER */
.site-footer{background:var(--ink);padding:48px 28px 36px;}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;}
.footer-logo{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;color:#fff;text-decoration:none;}
.footer-logo img{width:24px;height:24px;border-radius:6px;}
.footer-tagline{font-size:13px;color:rgba(255,255,255,.3);}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;}
.footer-links a{font-size:12px;color:rgba(255,255,255,.3);text-decoration:none;transition:color .14s;}
.footer-links a:hover{color:rgba(255,255,255,.65);}
.footer-copy{font-size:11px;color:rgba(255,255,255,.2);}

/* REVEAL */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease;}
.reveal.visible{opacity:1;transform:none;}
.reveal-delay-1{transition-delay:.12s;}
.reveal-delay-2{transition-delay:.24s;}

/* RESPONSIVE */
@media(max-width:900px){
  .hero-wrap{grid-template-columns:1fr;gap:48px;}
  .hero-visual{display:none;}
  .features-grid{grid-template-columns:1fr 1fr;}
  .pricing-grid{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .features-grid{grid-template-columns:1fr;}
  .nav-links{display:none;}
  .hero-section{padding:120px 20px 80px;}
  .section-wrap{padding:64px 20px;}
}

/* ── Floating badges ── */
.hero-visual-wrap{position:relative;}
.float-badge{position:absolute;background:rgba(20,18,15,.9);border:1px solid rgba(255,255,255,.12);border-radius:100px;padding:8px 14px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#fff;box-shadow:0 8px 32px rgba(0,0,0,.3);white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10;}
.float-badge-label{font-size:11px;font-weight:800;color:#fff;line-height:1.2;}
.float-badge-sub{font-size:9px;color:rgba(255,255,255,.45);font-weight:500;}
.float-badge-1{top:-18px;right:-20px;animation:floatBob1 4s ease-in-out infinite;}
.float-badge-2{bottom:20px;left:-24px;animation:floatBob2 4s ease-in-out infinite;}
@keyframes floatBob1{0%,100%{transform:translateY(0) rotate(-1.5deg);}50%{transform:translateY(-8px) rotate(.5deg);}}
@keyframes floatBob2{0%,100%{transform:translateY(0) rotate(1deg);}50%{transform:translateY(-6px) rotate(-1.5deg);}}

/* ── 4. Grain texture on hero ── */
.hero-grain{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;}

/* ── 5. Gradient border on featured card ── */
.pricing-card.featured{background:var(--ink);border:none;position:relative;isolation:isolate;}
.pricing-card.featured::before{content:'';position:absolute;inset:-1px;border-radius:21px;background:linear-gradient(160deg,rgba(200,64,26,.6) 0%,rgba(255,255,255,.08) 50%,rgba(200,64,26,.15) 100%);z-index:-1;}

/* Responsive bento */
@media(max-width:880px){
  .features-grid{grid-template-columns:1fr 1fr;}
  .feature-card:nth-child(n){grid-column:span 1;grid-row:span 1;padding:26px 22px;}
  .feature-card:nth-child(1) .feature-title{font-size:14px;}
  .feature-card:nth-child(1) .feature-icon-wrap{width:40px;height:40px;}
  .feature-card:nth-child(1) .feature-icon-wrap .material-icons-round{font-size:20px;}
}
@media(max-width:560px){
  .features-grid{grid-template-columns:1fr;}
}
