*{box-sizing:border-box;margin:0;padding:0}
:root{
  --purple:#7457d9;
  --purple-dark:#493783;
  --pink:#f28bab;
  --mint:#89cdbf;
  --peach:#f5c6a4;
  --text:#3f4050;
  --muted:#737686;
  --bg:#f8f7fc;
  --surface:#ffffff;
  --line:#ebe7f4;
  --shadow:0 20px 50px rgba(67,49,126,.11)
}
body.dark{
  --text:#f5f2ff;
  --muted:#c7c0d8;
  --bg:#171421;
  --surface:#221d30;
  --line:#372f49;
  --shadow:0 20px 50px rgba(0,0,0,.24)
}
html{scroll-behavior:smooth}
body{
  font-family:Poppins,sans-serif;
  background:var(--bg);
  color:var(--text);
  transition:.25s
}
a{text-decoration:none;color:inherit}
button{font:inherit;cursor:pointer}
.page{max-width:1500px;margin:auto;padding:22px 32px 40px}
.topbar{
  min-height:74px;padding:0 8px;
  display:flex;align-items:center;justify-content:space-between;gap:25px
}
.brand{display:flex;align-items:center;gap:10px}
.brand-icon{
  width:42px;height:42px;display:grid;place-items:center;
  border-radius:14px;background:#eee9fc;font-size:1.2rem
}
.brand strong,.brand small{display:block}
.brand strong{color:var(--purple-dark);font-size:1.1rem}
body.dark .brand strong{color:#cbbcff}
.brand small{margin-top:2px;color:var(--muted);font-size:.61rem}
.topbar nav{display:flex;gap:22px}
.topbar nav a{color:var(--muted);font-size:.76rem;font-weight:500}
.topbar nav a:hover{color:var(--purple)}
.theme-button{
  width:40px;height:40px;border:1px solid var(--line);
  border-radius:12px;background:var(--surface)
}
.hero{
  min-height:540px;padding:55px;
  display:grid;grid-template-columns:1.1fr .9fr;
  align-items:center;gap:40px;border-radius:36px;
  background:
    radial-gradient(circle at top right,rgba(137,205,191,.33),transparent 35%),
    linear-gradient(130deg,#eee8ff,#fff0f5 54%,#e9f8f3);
  box-shadow:var(--shadow)
}
body.dark .hero{
  background:
    radial-gradient(circle at top right,rgba(137,205,191,.15),transparent 35%),
    linear-gradient(130deg,#2a2340,#352439 54%,#21362f)
}
.eyebrow,.section-heading>span,.next-step span{
  color:var(--purple);font-size:.69rem;font-weight:700;letter-spacing:.1em
}
.hero h1{
  max-width:780px;margin-top:12px;
  font-size:3.4rem;line-height:1.08;color:var(--purple-dark)
}
body.dark .hero h1{color:#d7ccff}
.hero p{
  max-width:760px;margin-top:18px;
  color:var(--muted);font-size:1rem;line-height:1.75
}
.hero-actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}
.primary-link,.secondary-link{
  padding:13px 18px;border-radius:13px;font-size:.76rem;font-weight:600
}
.primary-link{background:var(--purple);color:#fff}
.secondary-link{border:1px solid rgba(116,87,217,.2);background:rgba(255,255,255,.6);color:var(--purple-dark)}
body.dark .secondary-link{background:rgba(255,255,255,.06);color:#d7ccff}
.hero-visual{display:grid;gap:18px}
.visual-card{
  padding:26px;display:grid;grid-template-columns:auto 1fr;
  align-items:center;column-gap:16px;border-radius:24px;
  background:rgba(255,255,255,.78);box-shadow:var(--shadow)
}
body.dark .visual-card{background:rgba(34,29,48,.86)}
.visual-card>span{grid-row:1/3;font-size:2.2rem}
.visual-card strong{color:var(--purple-dark)}
body.dark .visual-card strong{color:#d7ccff}
.visual-card small{margin-top:4px;color:var(--muted)}
.cycle-section,.modules{padding-top:70px}
.section-heading{max-width:850px;margin:auto;text-align:center}
.section-heading h2{margin-top:8px;font-size:2rem;color:var(--purple-dark)}
body.dark .section-heading h2{color:#d7ccff}
.section-heading p{margin-top:10px;color:var(--muted);line-height:1.7}
.section-heading.compact{margin-bottom:24px}
.cycle-grid{margin-top:30px;display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.cycle-card{
  padding:30px;display:flex;flex-direction:column;
  border:1px solid var(--line);border-radius:28px;
  background:var(--surface);box-shadow:var(--shadow)
}
.cycle-one{border-top:7px solid var(--mint)}
.cycle-two{border-top:7px solid var(--purple)}
.cycle-top{display:flex;align-items:center;gap:15px}
.cycle-icon{
  width:58px;height:58px;display:grid;place-items:center;
  border-radius:18px;background:#f3effd;font-size:1.8rem
}
.cycle-top small{color:var(--purple);font-size:.65rem;font-weight:700}
.cycle-top h3{margin-top:3px;font-size:1.25rem}
.cycle-card>p{margin-top:18px;color:var(--muted);font-size:.78rem;line-height:1.65}
.cycle-card ul{margin:18px 0 24px;padding-left:20px}
.cycle-card li{margin-top:9px;color:var(--muted);font-size:.75rem}
.cycle-button{
  margin-top:auto;padding:12px;text-align:center;
  border-radius:12px;background:#eee9fc;color:var(--purple-dark);
  font-size:.74rem;font-weight:700
}
body.dark .cycle-button{background:#302842;color:#d7ccff}
.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.module-card{
  min-height:165px;padding:22px;display:flex;flex-direction:column;
  border:1px solid var(--line);border-radius:22px;background:var(--surface)
}
.module-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.module-card>span{font-size:1.5rem}
.module-card strong{margin-top:14px;color:var(--purple-dark)}
body.dark .module-card strong{color:#d7ccff}
.module-card small{margin-top:7px;color:var(--muted);line-height:1.5}
.next-step{
  margin-top:70px;padding:34px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  border-radius:28px;background:#493783;color:#fff
}
.next-step h2{margin-top:6px}
.next-step p{max-width:820px;margin-top:8px;color:rgba(255,255,255,.75);line-height:1.65}
.next-step a{
  flex:0 0 auto;padding:12px 16px;border-radius:12px;
  background:#fff;color:#493783;font-size:.74rem;font-weight:700
}
footer{padding:42px 0 5px;text-align:center}
footer strong{color:var(--purple-dark)}
body.dark footer strong{color:#d7ccff}
footer p{margin-top:5px;color:var(--muted);font-size:.7rem}
@media(max-width:1000px){
  .topbar nav{display:none}
  .hero{grid-template-columns:1fr}
  .hero h1{font-size:2.7rem}
  .module-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .page{padding:14px}
  .hero{min-height:auto;padding:30px 22px}
  .hero h1{font-size:2.05rem}
  .cycle-grid,.module-grid{grid-template-columns:1fr}
  .next-step{align-items:flex-start;flex-direction:column}
}
