:root{
  --cream:#F3EDE4; --cream-2:#ECE3D7; --cream-3:#F7F2EA;
  --ink:#2B2722; --ink-soft:#7C7367; --ink-faint:#A89E90;
  --green:#84C06A; --green-d:#69aa50; --green-soft:#e7f2df;
  --glass:rgba(255,255,255,.55); --glass-bd:rgba(255,255,255,.75);
  --shadow:0 24px 60px -28px rgba(74,63,48,.45);
  --shadow-sm:0 12px 30px -16px rgba(74,63,48,.4);
  --r:22px;
  --font:"Sora",system-ui,sans-serif; --body:"Inter",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body); color:var(--ink); cursor:none;
  background:
    radial-gradient(1200px 700px at 75% 8%, #fbf7f0 0%, transparent 55%),
    radial-gradient(900px 600px at 12% 80%, #efe6da 0%, transparent 60%),
    linear-gradient(160deg,var(--cream-3),var(--cream-2));
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
em{font-style:normal;color:var(--green-d)}

/* ---------- custom cursor ---------- */
.cursor{
  position:fixed; top:0; left:0; width:26px; height:26px; border-radius:50%;
  border:2px solid rgba(43,39,34,.55); pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%); transition:width .22s,height .22s,background .22s,border-color .22s;
  mix-blend-mode:multiply;
}
.cursor.big{width:54px;height:54px;background:rgba(132,192,106,.18);border-color:transparent}
@media (hover:none){.cursor{display:none} body{cursor:auto}}

/* ---------- nav ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px clamp(20px,4vw,54px);
}
.brand{font-family:var(--font);font-weight:800;font-size:19px;letter-spacing:-.02em;display:flex;gap:8px;align-items:center}
.brand-mark{color:var(--green-d)}
.nav-links{display:flex;gap:30px;font-weight:500;font-size:15px;color:var(--ink-soft)}
.nav-links a{position:relative;transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.nav-cta{display:flex;gap:18px;align-items:center;font-size:15px;font-weight:600}
.link-quiet{color:var(--ink-soft)}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;font-weight:600;
  font-family:var(--font);transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s,background .2s}
.btn-dark{background:var(--ink);color:#fff;padding:10px 20px}
.btn-green{background:var(--green);color:#15300a;padding:15px 26px;box-shadow:0 14px 26px -12px rgba(105,170,80,.8)}
.btn-green:hover{transform:translateY(-3px);background:var(--green-d);color:#fff}
.btn-dark:hover{transform:translateY(-2px)}
.btn-ghost{background:var(--glass);backdrop-filter:blur(8px);border:1px solid var(--glass-bd);color:var(--ink);padding:14px 24px}
.btn-ghost:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.btn-ghost.dark{background:rgba(43,39,34,.06)}

/* ---------- scenes ---------- */
main{position:relative;z-index:2}
.scene{
  position:relative; min-height:100vh; width:100%;
  display:flex; align-items:center; padding:120px clamp(24px,6vw,90px);
}
.scene-copy{max-width:520px;z-index:5}
.scene-copy.center{margin:0 auto;text-align:center}
.eyebrow,.kicker{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:13px;
  letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:22px}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
.kicker{color:var(--green-d)}
.title{font-family:var(--font);font-weight:800;font-size:clamp(40px,6vw,76px);line-height:.98;letter-spacing:-.03em}
.title .line{display:block;overflow:hidden}
.title .line-in{display:block;transform:translateY(110%)}
.scene-copy h2{font-family:var(--font);font-weight:800;font-size:clamp(32px,4.4vw,56px);line-height:1.02;letter-spacing:-.02em}
.subtitle,.scene-copy p{margin-top:22px;font-size:clamp(16px,1.4vw,19px);line-height:1.6;color:var(--ink-soft);max-width:30ch}
.scene-copy.center p{margin-left:auto;margin-right:auto}
.hero-actions{display:flex;gap:16px;margin-top:34px;align-items:center;flex-wrap:wrap}
.hero-actions.center{justify-content:center}
.trust{display:flex;gap:20px;margin-top:24px;color:var(--ink-faint);font-size:13.5px;font-weight:500}
.feat{list-style:none;margin:26px 0;display:grid;gap:16px}
.feat li{display:flex;flex-direction:column}
.feat b{font-family:var(--font);font-weight:700;font-size:15.5px}
.feat span{color:var(--ink-soft);font-size:14px}

.scroll-hint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;
  flex-direction:column;align-items:center;gap:6px;color:var(--ink-faint);font-size:12px;font-weight:600;letter-spacing:.08em}
.scroll-hint i{animation:bob 1.6s ease-in-out infinite;font-style:normal;font-size:16px}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* ---------- glass cards ---------- */
.cards{position:absolute;inset:0;pointer-events:none;z-index:4}
.cards.spread{position:relative;flex:1;min-height:60vh}
.card{
  position:absolute; pointer-events:auto;
  background:var(--glass); backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--glass-bd); border-radius:var(--r);
  box-shadow:var(--shadow); padding:18px 20px;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s;
  will-change:transform;
}
.card:hover{transform:translateY(-10px) scale(1.03);box-shadow:0 34px 70px -28px rgba(74,63,48,.55)}
.card-h{font-family:var(--font);font-weight:700;font-size:14.5px;display:flex;align-items:center;gap:8px;margin-bottom:14px}
.card-h.tiny{font-size:12.5px;color:var(--ink-soft);margin-bottom:10px}
.card-h .pill{margin-left:auto;background:var(--green-soft);color:var(--green-d);font-size:11px;padding:3px 9px;border-radius:999px}
.chk{display:grid;place-items:center;width:18px;height:18px;border-radius:6px;background:var(--green);color:#fff;font-size:11px}

/* hero card positions */
.card-plan{top:16%;right:30%;width:240px}
.card-stat{top:14%;right:7%;width:150px}
.card-cal{top:46%;right:6%;width:210px}
.card-timer{bottom:13%;right:24%;width:160px;text-align:center}

.tasks{list-style:none;display:grid;gap:11px}
.tasks li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-soft)}
.tasks li i{width:15px;height:15px;border-radius:5px;border:2px solid var(--ink-faint);flex:0 0 auto}
.tasks li.done{color:var(--ink);text-decoration:line-through;text-decoration-color:var(--ink-faint)}
.tasks li.done i{background:var(--green);border-color:var(--green)}

.stat-num{font-family:var(--font);font-weight:800;font-size:34px;display:block;line-height:1}
.stat-label{font-size:12px;color:var(--ink-soft)}
.spark{width:100%;height:34px;margin-top:8px;overflow:visible}
.spark polyline{fill:none;stroke:var(--green);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.spark.big{height:54px}

.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;font-size:11px;text-align:center;color:var(--ink-soft)}
.cal-grid span{font-weight:700;color:var(--ink-faint)}
.cal-grid b{font-weight:500;padding:3px 0;border-radius:7px}
.cal-grid b.hi{background:var(--green);color:#fff}

.ring{width:96px;height:96px;border-radius:50%;margin:0 auto 8px;display:grid;place-items:center;
  font-family:var(--font);font-weight:800;font-size:21px;
  background:conic-gradient(var(--green) 72%, rgba(43,39,34,.08) 0);
  box-shadow:inset 0 0 0 9px rgba(255,255,255,.7)}
.timer-label{font-size:12px;color:var(--ink-soft)}

/* planeia board */
.card-board{top:8%;left:6%;width:300px}
.card-week{bottom:14%;right:6%;width:200px}
.row{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink-soft);padding:9px 0;border-top:1px solid rgba(43,39,34,.06)}
.row .ic{width:14px;height:14px;border-radius:5px;background:var(--ink-faint);flex:0 0 auto}
.ic.blue{background:#6fb1fc}.ic.green{background:var(--green)}.ic.amber{background:#ffd166}
.row .time{margin-left:auto;font-size:12px;color:var(--ink-faint)}
.row .grip{margin-left:auto;color:var(--ink-faint)}
.row.drag{background:var(--green-soft);margin:4px -10px;padding:9px 10px;border-radius:10px;border:none;color:var(--ink)}
.bars{display:flex;align-items:flex-end;gap:8px;height:80px;margin:6px 0 10px}
.bars b{flex:1;height:var(--h);background:linear-gradient(var(--green),#aed99a);border-radius:6px}
.muted{font-size:12px;color:var(--ink-soft)}

/* focus scene */
.scene-focus{flex-direction:column;justify-content:center;text-align:center;
  background:radial-gradient(700px 500px at 50% 60%, #e7efe1 0%, transparent 70%)}
.focus-aura{position:absolute;inset:0;background:radial-gradient(420px 420px at 50% 62%,rgba(132,192,106,.18),transparent 70%);pointer-events:none}
.focus-timer{margin-top:40px;z-index:5}
.big-ring{position:relative;width:230px;height:230px;margin:0 auto}
.big-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.big-ring circle{fill:none;stroke-width:12;stroke-linecap:round}
.big-ring .track{stroke:rgba(43,39,34,.08)}
.big-ring .prog{stroke:var(--green);stroke-dasharray:553;stroke-dashoffset:160}
.big-ring span{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font);font-weight:800;font-size:42px}

/* habits */
.habits{position:relative;flex:1;min-height:60vh}
.habit{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--glass-bd);
  border-radius:18px;padding:16px 20px;box-shadow:var(--shadow);font-size:22px;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.habit span{font-size:14px;font-weight:600;font-family:var(--font);color:var(--ink)}
.habit em{font-size:12px;color:var(--c);font-weight:700;font-style:normal}
.habit:hover{transform:translateY(-8px) scale(1.04)}
.habit:nth-child(1){top:12%;left:8%}
.habit:nth-child(2){top:34%;right:14%}
.habit:nth-child(3){bottom:24%;left:18%}
.habit:nth-child(4){bottom:14%;right:8%}

/* report */
.card-report{top:24%;right:8%;width:330px}
.stats{display:flex;gap:22px;margin-bottom:12px}
.stats b{font-family:var(--font);font-weight:800;font-size:24px;display:block;line-height:1}
.stats span{font-size:11.5px;color:var(--ink-soft)}

/* island / final */
.scene-island{flex-direction:column;justify-content:center;text-align:center;overflow:hidden}
.island-glow{position:absolute;bottom:6%;left:50%;width:520px;height:200px;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(132,192,106,.28),transparent);filter:blur(20px)}
.foot{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:var(--ink-faint);font-size:12.5px}

/* ---------- FLUFFY stage ---------- */
.fluffy-stage{position:fixed;inset:0;z-index:6;pointer-events:none}
.fluffy{position:absolute;left:0;top:0;width:clamp(320px,34vw,520px);aspect-ratio:0.95;will-change:transform}
.fluffy-body{position:absolute;inset:0;will-change:transform}
#fluffyCanvas{position:absolute;inset:0;width:100%;height:100%;
  filter:drop-shadow(0 26px 22px rgba(74,63,48,.20))}
.fluffy-shadow{position:absolute;left:50%;bottom:4%;width:46%;height:26px;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(74,63,48,.3),transparent);filter:blur(7px)}

@media (max-width:880px){
  .nav-links{display:none}
  .cards .card{position:relative;display:none}
  .card-plan,.card-timer{display:block;margin:14px 0;right:auto;top:auto;width:100%}
  .fluffy{width:200px}
  .scene{padding-top:110px}
}
