:root{
  --red:#741a1f;
  --red2:#9c352d;
  --red3:#4b1115;
  --cream:#f7efe3;
  --paper:#fffaf3;
  --ink:#191a17;
  --olive:#3e4935;
  --olive2:#657053;
  --gold:#c69545;
  --muted:#6f6d65;
  --line:rgba(25,26,23,.13);
  --radius:28px;
  --shadow:0 24px 70px rgba(70,35,25,.14);
  --wrap:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"DM Sans",Arial,sans-serif;line-height:1.6;
}
img{display:block;max-width:100%}
a{color:inherit}
button,input{font:inherit}
.wrap{width:min(calc(100% - 40px),var(--wrap));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;top:10px;z-index:1000;background:white;padding:10px 16px}
.skip-link:focus{left:10px}
.announcement{background:var(--ink);color:#f7efe3;font-size:.88rem}
.announcement-inner{min-height:38px;display:flex;align-items:center;justify-content:center;gap:18px;text-align:center}
.announcement a{color:#f2c1b4;font-weight:800;text-decoration:none}
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,250,243,.92);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line)
}
.nav{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;line-height:1.05}
.brand-icon{
  width:45px;height:45px;border-radius:50%;display:grid;place-items:center;
  background:var(--red);font-size:1.3rem;box-shadow:0 8px 22px rgba(116,26,31,.2)
}
.brand span:last-child{display:grid;gap:5px}
.brand strong{font-family:"League Spartan",Arial,sans-serif;letter-spacing:.035em;font-size:1.05rem}
.brand small{font-size:.63rem;letter-spacing:.19em;color:var(--olive);font-weight:800}
.main-nav{display:flex;align-items:center;gap:25px}
.main-nav a{font-size:.91rem;font-weight:700;text-decoration:none}
.main-nav a:hover{color:var(--red)}
.nav-cta{background:var(--red);color:white!important;padding:10px 16px;border-radius:999px}
.menu-button{display:none;border:0;background:none;padding:8px}
.menu-button span{display:block;width:24px;height:2px;background:var(--ink);margin:4px}
.menu-button em{display:none}
.hero{
  position:relative;overflow:hidden;padding:90px 0 100px;
  background:
    radial-gradient(circle at 86% 8%,rgba(156,53,45,.15),transparent 33%),
    linear-gradient(145deg,#fffaf3 0%,#f3e3d1 100%)
}
.hero:after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;
  background-image:linear-gradient(rgba(116,26,31,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(116,26,31,.10) 1px,transparent 1px);
  background-size:55px 55px;mask-image:linear-gradient(to left,#000,transparent 65%)
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;position:relative;z-index:1}
.eyebrow{
  margin:0 0 13px;color:var(--red);font-size:.76rem;font-weight:900;
  letter-spacing:.18em;text-transform:uppercase
}
.eyebrow.light{color:#efc5b9}
.hero h1,.section h2,.pulse h2{
  font-family:"League Spartan",Arial,sans-serif;text-transform:uppercase;
  letter-spacing:-.045em;line-height:.94
}
.hero h1{font-size:clamp(4rem,8.5vw,7.8rem);margin:0 0 10px}
.hero h1 span{color:var(--red)}
.hero-big{
  max-width:700px;margin:0 0 20px;font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(1.55rem,3vw,2.25rem);font-style:italic;color:var(--olive)
}
.hero-lead{font-size:1.08rem;max-width:680px;color:#44443f}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.button{
  display:inline-flex;align-items:center;justify-content:center;min-height:49px;
  padding:13px 21px;border-radius:999px;border:1px solid transparent;
  text-decoration:none;font-weight:900;cursor:pointer;transition:.2s transform,.2s box-shadow
}
.button:hover{transform:translateY(-2px)}
.button.primary{background:var(--red);color:white;box-shadow:0 13px 30px rgba(116,26,31,.22)}
.button.ghost{border-color:var(--ink);background:rgba(255,255,255,.35)}
.button.cream{background:var(--cream);color:var(--red3)}
.button.dark{background:var(--ink);color:white}
.button.outline-light{border-color:rgba(255,255,255,.6);color:white}
.button.full{width:100%}
.hero-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}
.hero-chips span{padding:7px 11px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.55);font-size:.78rem}
.hero-card{position:relative}
.image-wrap{border-radius:34px;padding:10px;background:#fff8ee;border:1px solid rgba(116,26,31,.14);box-shadow:var(--shadow);transform:rotate(1deg)}
.image-wrap img{border-radius:25px;aspect-ratio:1/1;object-fit:cover}
.scribble-note{
  position:absolute;right:-20px;bottom:-25px;width:240px;padding:18px 20px;border-radius:20px;
  background:var(--olive);color:white;box-shadow:var(--shadow);transform:rotate(-2deg)
}
.scribble-note span{display:block;font-family:"Playfair Display",serif;font-style:italic;font-size:1.28rem}
.scribble-note strong{display:block;margin-top:4px;font-size:.87rem;letter-spacing:.08em;text-transform:uppercase}
.pulse{background:var(--olive);color:white;padding:54px 0}
.pulse-grid{display:grid;grid-template-columns:.8fr 1.25fr;gap:42px;align-items:center}
.pulse h2{font-size:clamp(2.1rem,4vw,3.8rem);margin:0}
.pulse-options{display:grid;gap:9px}
.pulse-options button{
  text-align:left;border:1px solid rgba(255,255,255,.16);color:white;
  background:rgba(255,255,255,.07);padding:13px 15px;border-radius:15px;cursor:pointer
}
.pulse-options button:hover,.pulse-options button.selected{background:var(--red);border-color:var(--red)}
.pulse-result{
  grid-column:2;background:#f6ebd9;color:var(--ink);padding:15px 17px;border-radius:15px;
  font-weight:700;min-height:58px
}
.section{padding:105px 0}
.section-head h2{font-size:clamp(3rem,6vw,5.7rem);margin:0}
.section-head.split{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:end;margin-bottom:50px}
.section-head.split>p{font-size:1.05rem;color:#56564f;margin:0 0 7px}
.section-head h2 span{color:var(--red)}
.section-head.centered{text-align:center;max-width:850px;margin:0 auto 55px}
.section-head.centered p:last-child{color:#66645d}
.sessions{background:#f4eadc}
.next-session{
  display:grid;grid-template-columns:1.4fr .6fr;position:relative;overflow:hidden;
  background:var(--ink);color:white;border-radius:38px;box-shadow:var(--shadow);margin-bottom:22px
}
.next-session:before{content:"";position:absolute;width:380px;height:380px;border:70px solid rgba(116,26,31,.23);border-radius:50%;right:-130px;top:-150px}
.next-badge{
  position:absolute;top:20px;left:24px;background:#f2cbbf;color:var(--red3);
  border-radius:999px;padding:7px 12px;font-weight:900;font-size:.7rem;letter-spacing:.13em
}
.next-copy{padding:78px 45px 45px}
.micro{font-size:.73rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase;color:#d9a89b;margin:0 0 12px}
.next-copy h3{
  font-family:"League Spartan",Arial,sans-serif;font-size:clamp(3.4rem,7vw,6.7rem);
  line-height:.86;letter-spacing:-.05em;margin:0 0 13px;text-transform:uppercase
}
.strap{font-family:"Playfair Display",serif!important;font-size:1.55rem!important;font-style:italic;color:#efc7ba!important}
.next-copy>p{color:#d7d4cc;max-width:780px}
.session-meta{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}
.session-meta span{background:#2a2b27;border:1px solid rgba(255,255,255,.11);padding:7px 10px;border-radius:999px;font-size:.79rem}
.takeaways{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:28px}
.takeaways div{display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;background:#252622;border-radius:16px;padding:13px}
.takeaways strong{font-family:"League Spartan";font-size:1.4rem;color:#e4a593}
.takeaways span{font-size:.88rem;color:#e1dfd8}
.next-actions{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-top:28px}
.text-link{font-weight:900;color:#efc7ba;text-decoration:none}
.next-side{position:relative;z-index:1;padding:40px 35px 40px 10px;display:grid;align-content:center;gap:14px}
.date-card,.quote-card{border-radius:24px;padding:27px}
.date-card{background:var(--red);min-height:290px;display:flex;flex-direction:column;justify-content:center}
.date-label{font-size:.7rem;font-weight:900;letter-spacing:.18em}
.date-card strong{font-family:"League Spartan";font-size:3.2rem;line-height:.85;margin:14px 0}
.date-card small{color:#f0d3cc}
.quote-card{background:var(--cream);color:var(--ink)}
.quote-card p{font-family:"Playfair Display",serif;font-style:italic;font-size:1.25rem;margin-top:0}
.quote-card span{font-size:.83rem;color:#646259}
.coming-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.topic-card{
  background:#fffaf3;border:1px solid var(--line);border-radius:25px;padding:25px;
  min-height:350px;display:flex;flex-direction:column;transition:.2s transform,.2s box-shadow
}
.topic-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.topic-icon{font-size:1.7rem;margin-bottom:28px}
.topic-card h3{font-family:"League Spartan";font-size:1.75rem;line-height:1;text-transform:uppercase;margin:5px 0 14px}
.topic-card p:not(.micro){color:#66645d;font-size:.92rem}
.status{margin-top:auto;font-size:.68rem;font-weight:900;letter-spacing:.14em;color:var(--red)}
.how{background:#fffaf3}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.step{border-top:5px solid var(--red);background:#f4eadc;padding:27px;min-height:270px}
.step>span{font-family:"League Spartan";font-weight:900;color:var(--red)}
.step h3{font-family:"League Spartan";font-size:1.5rem;text-transform:uppercase;margin:45px 0 8px}
.step p{color:#67655e}
.tools{background:var(--red);color:white}
.tools-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;align-items:start}
.tool-feature{position:sticky;top:125px}
.tool-feature h2{font-size:clamp(3rem,5.2vw,5.1rem);margin:0 0 18px}
.tool-feature p{color:#efd8d2;max-width:530px}
.tool-feature .button{margin-top:17px}
.tool-list{display:grid;gap:11px}
.tool-item{background:var(--red3);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:22px}
.tool-item>div{display:flex;gap:14px}
.tool-number{font-family:"League Spartan";font-size:1.35rem;color:#e6aa9b}
.tool-item h3{font-family:"League Spartan";font-size:1.45rem;text-transform:uppercase;margin:0 0 4px}
.tool-item p{margin:0;color:#d9c5c1;font-size:.92rem}
.tool-item>a,.tool-item>span{display:block;margin-top:18px;padding-top:13px;border-top:1px solid rgba(255,255,255,.12);font-size:.68rem;font-weight:900;letter-spacing:.13em;text-decoration:none;color:#f4d0c7}
.tool-item.active{background:var(--cream);color:var(--ink)}
.tool-item.active p{color:#69665f}
.tool-item.active>a{color:var(--red);border-color:var(--line)}
.topics{background:#f4eadc}
.topic-cloud{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.topic-cloud span{background:#fffaf3;border:1px solid var(--line);padding:12px 15px;border-radius:999px;font-weight:700;font-size:.9rem}
.vote-box{
  margin-top:50px;border-radius:30px;background:var(--gold);padding:36px;
  display:flex;align-items:center;justify-content:space-between;gap:35px
}
.vote-box h3{font-family:"League Spartan";font-size:2.2rem;text-transform:uppercase;margin:0}
.vote-box p:last-child{margin-bottom:0}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.about-title h2{font-size:clamp(3rem,5.6vw,5.2rem);margin:0}
.about-copy{font-size:1.07rem;color:#4d4d48}
.values{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}
.values span{border:1px solid var(--line);border-radius:999px;padding:8px 11px;color:var(--red);font-size:.8rem;font-weight:900}
.for-who{padding-top:0}
.for-who-card{
  background:var(--olive);color:white;border-radius:36px;padding:50px;
  display:grid;grid-template-columns:1fr 1fr;gap:60px
}
.for-who-card h2{font-size:clamp(2.7rem,5vw,4.8rem);margin:0}
.who-list p{margin:0 0 10px;color:#e1e5da;font-weight:700}
.faq{background:#f4eadc}
.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px}
.faq .section-head h2{font-size:clamp(2.8rem,5vw,4.8rem)}
.accordion details{border-top:1px solid var(--line);padding:18px 0}
.accordion details:last-child{border-bottom:1px solid var(--line)}
.accordion summary{cursor:pointer;font-family:"League Spartan";font-size:1.2rem;font-weight:800;text-transform:uppercase}
.accordion p{color:#62615a}
.join{background:#1b1c19}
.join-card{
  background:var(--red);color:white;border-radius:38px;padding:55px;
  display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center;overflow:hidden;position:relative
}
.join-card:before{content:"";position:absolute;right:-100px;top:-150px;width:390px;height:390px;border:70px solid rgba(255,255,255,.06);border-radius:50%}
.join-copy h2{font-size:clamp(3rem,5.8vw,5.5rem);margin:0}
.join-copy>p{color:#f0d3cc;max-width:650px}
.join-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:26px}
.join-stamp{
  width:280px;height:280px;border-radius:50%;margin:auto;border:2px dashed rgba(255,255,255,.55);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:rotate(4deg);position:relative;z-index:1
}
.join-stamp>span{font-size:2rem}
.join-stamp strong{font-family:"League Spartan";font-size:2.3rem;line-height:.85;margin:11px 0}
.join-stamp small{color:#efc9bf}
footer{background:#10110f;color:white;padding:70px 0 25px}
.footer-grid{display:grid;grid-template-columns:1.7fr .7fr 1fr;gap:55px}
.footer-grid>div{display:grid;align-content:start;gap:9px}
.footer-grid>div>strong{font-size:.7rem;letter-spacing:.16em;color:#d8a99d}
.footer-grid a{text-decoration:none;color:#d6d5cf}
.footer-grid span,.footer-grid p{color:#9f9e98}
.brand.inverse small{color:#d8a99d}
.footer-bottom{display:grid;grid-template-columns:auto 1fr;gap:30px;margin-top:45px;padding-top:20px;border-top:1px solid rgba(255,255,255,.11);font-size:.76rem;color:#8e8d87}
.footer-bottom span:last-child{text-align:right}
.floating-cta{position:fixed;right:18px;bottom:18px;z-index:45}
.floating-cta a{display:block;background:var(--olive);color:white;border-radius:999px;padding:11px 15px;text-decoration:none;font-size:.73rem;font-weight:900;letter-spacing:.08em;box-shadow:0 12px 30px rgba(0,0,0,.22)}
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68)}
.modal-card{position:relative;z-index:1;background:var(--paper);width:min(520px,100%);border-radius:28px;padding:35px;box-shadow:0 30px 100px rgba(0,0,0,.35)}
.modal-card h2{font-family:"League Spartan";font-size:2.8rem;line-height:.95;text-transform:uppercase;margin:0 0 13px}
.modal-card small{display:block;margin-top:13px;color:#77746c}
.modal-close{position:absolute;right:16px;top:14px;width:36px;height:36px;border:0;border-radius:50%;background:#eee4d8;font-size:1.5rem;cursor:pointer}
.reveal{opacity:0;transform:translateY(22px);transition:.65s opacity,.65s transform}
.reveal.visible{opacity:1;transform:none}
@media(max-width:980px){
  .menu-button{display:block}
  .main-nav{position:absolute;left:20px;right:20px;top:81px;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:18px;display:none;flex-direction:column;align-items:stretch;box-shadow:var(--shadow)}
  .main-nav.open{display:flex}
  .hero-grid,.section-head.split,.pulse-grid,.tools-grid,.about-grid,.faq-grid,.for-who-card,.join-card{grid-template-columns:1fr}
  .hero-card{max-width:650px}
  .pulse-result{grid-column:1}
  .next-session{grid-template-columns:1fr}
  .next-side{padding:0 35px 35px;grid-template-columns:1fr 1fr}
  .date-card{min-height:220px}
  .coming-grid,.steps{grid-template-columns:1fr 1fr}
  .tool-feature{position:static}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
}
@media(max-width:640px){
  .wrap{width:min(calc(100% - 24px),var(--wrap))}
  .announcement-inner{padding:7px 0;flex-direction:column;gap:1px}
  .brand small{display:none}
  .hero{padding:65px 0 82px}
  .hero h1{font-size:3.9rem}
  .scribble-note{position:relative;right:auto;bottom:auto;width:auto;margin:-12px 14px 0}
  .section{padding:76px 0}
  .section-head.split{gap:20px}
  .next-copy{padding:72px 24px 28px}
  .next-copy h3{font-size:3.7rem}
  .takeaways{grid-template-columns:1fr}
  .next-side{grid-template-columns:1fr;padding:0 24px 24px}
  .coming-grid,.steps{grid-template-columns:1fr}
  .topic-card{min-height:300px}
  .vote-box{align-items:flex-start;flex-direction:column}
  .for-who-card,.join-card{padding:30px}
  .join-stamp{width:230px;height:230px}
  .footer-grid{grid-template-columns:1fr}
  .footer-brand{grid-column:auto}
  .footer-bottom{grid-template-columns:1fr}
  .footer-bottom span:last-child{text-align:left}
  .floating-cta{left:12px;right:12px;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
}
