:root{
  --dark:#1F1F1F; --dark-2:#2C2C2C; --ink:#1F1F1F; --stone:#EFEBE6; --stone-2:#E3DED9; --line:#D2CBC3;
  --muted:#5A554F; --acc:#661515; --acc-ink:#FFFFFF; --wa:#25D366; --wa-ink:#0E2A17; --on-dark:#EFEBE6; --on-dark-muted:#B3ADA6;
  --paper:var(--stone); --text:var(--ink);
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root{--paper:#171717; --text:#ECE8E3; --muted:#ABA59F; --line:#333; --stone-2:#232323}
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--paper);color:var(--text);font-family:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:1.0625rem;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:3px solid var(--acc);outline-offset:3px;border-radius:4px}
.wrap{max-width:70rem;margin:0 auto;padding:0 1.25rem}
.narrow{max-width:40rem}

/* dark bands */
.dark{background:var(--dark);color:var(--on-dark)}
.dark .lede,.dark p{color:var(--on-dark-muted)}
.dark h1,.dark h2,.dark h3{color:var(--on-dark)}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 0}
.brand{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;font-stretch:75%;font-size:1.25rem;letter-spacing:.02em;text-decoration:none}
.brand svg{height:1.6rem;width:auto;fill:currentColor}
.nav{display:flex;gap:1.25rem;font-weight:600;font-size:.98rem}
.nav a{text-decoration:none;border-bottom:3px solid transparent;padding-bottom:2px;white-space:nowrap}
.nav a:hover,.nav a[aria-current]{border-color:var(--acc)}
@media (max-width:26rem){.nav{gap:.9rem;font-size:.9rem}.brand{font-size:1.05rem}.brand svg{height:1.3rem}}

/* type */
.display{font-weight:800;font-stretch:62%;line-height:.92;letter-spacing:-.005em;margin:0}
h1.display{font-size:clamp(3.4rem,11vw,8rem)}
h2.display{font-size:clamp(2.4rem,6.5vw,4.2rem)}
h3{font-weight:700;font-size:1.2rem;margin:0 0 .35rem}
p{margin:0 0 1rem}
.lede{font-size:clamp(1.1rem,2.2vw,1.35rem);color:var(--muted);max-width:34rem}
.bar{display:block;width:4.5rem;height:.5rem;background:var(--acc);margin:1.6rem 0 1.2rem}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;font:inherit;font-weight:800;font-size:1.05rem;padding:1rem 1.5rem;border-radius:999px;text-decoration:none;border:0;cursor:pointer;background:var(--acc);color:var(--acc-ink)}
.btn:hover{filter:brightness(1.07)}
.btn svg{width:1.3em;height:1.3em;flex:none}
.btn-dark{background:var(--dark);color:#fff}

/* hero */
.hero{position:relative;overflow:hidden;padding-bottom:4rem}
.hero-grid{display:grid;gap:2.5rem;align-items:end;padding-top:clamp(2rem,7vw,5rem)}
@media (min-width:56rem){.hero-grid{grid-template-columns:1.25fr 1fr}}
.hero h1{max-width:11ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem;align-items:center}
.hero-note{font-size:.95rem;margin:1rem 0 0}
/* photo placeholders */
.ph{position:relative;border-radius:18px;overflow:hidden;background:repeating-linear-gradient(135deg,var(--dark-2) 0 14px,#262626 14px 28px);color:var(--on-dark-muted);display:grid;place-items:center;text-align:center;font-weight:600;font-size:.95rem}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph span{background:var(--dark);padding:.45rem .8rem;border-radius:999px}
.ph-hero{aspect-ratio:4/5;max-height:34rem;border-bottom:.5rem solid var(--acc)}
.ph-about{aspect-ratio:4/5;max-width:22rem;width:100%;border-left:.5rem solid var(--acc)}
.ph-light{background:repeating-linear-gradient(135deg,var(--stone-2) 0 14px,#DAD4CE 14px 28px);color:var(--muted)}
.ph-light span{background:var(--paper)}

/* sections */
section.band{padding:clamp(3.5rem,8vw,6.5rem) 0}
.split{display:grid;gap:2.5rem}
@media (min-width:52rem){.split{grid-template-columns:1fr 1.4fr;gap:4rem}}
.points{display:grid;gap:1.4rem}
.point{padding:1.4rem 1.4rem 1.4rem 1.5rem;background:var(--stone-2);border-left:.45rem solid var(--acc);border-radius:0 14px 14px 0}
.point p{color:var(--muted);margin:0}

.steps{list-style:none;padding:0;margin:2.2rem 0 0;display:grid;gap:1rem;counter-reset:s}
@media (min-width:52rem){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{counter-increment:s;padding:1.5rem;border:1px solid #3A3A3A;border-radius:16px;background:var(--dark-2)}
.steps li::before{content:counter(s);display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:50%;background:var(--acc);color:var(--acc-ink);font-weight:800;font-stretch:62%;font-size:1.9rem;line-height:1;margin-bottom:1rem}
.steps p{margin:0}

.about{display:grid;gap:2.5rem;align-items:center}
@media (min-width:52rem){.about{grid-template-columns:22rem 1fr;gap:4rem}}

.closer{background:var(--acc);color:var(--acc-ink)}
.closer .lede{color:inherit;opacity:.85}

footer{background:var(--dark);color:var(--on-dark-muted);padding:2rem 0 3rem;font-size:.95rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}

/* floating WhatsApp (mobile) */
.fab{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));width:3.6rem;height:3.6rem;border-radius:50%;background:var(--acc);color:var(--acc-ink);display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.35);z-index:10}
.fab svg{width:1.8rem;height:1.8rem}
@media (min-width:52rem){.fab{display:none}}

/* sessions page */
.page-head{position:relative;overflow:hidden;padding-bottom:3rem}
.page-head .filter{margin:2rem 0 0;width:100%;max-width:28rem;font:inherit;padding:.85rem 1rem;border-radius:10px;border:2px solid var(--line);background:transparent;color:inherit}
.filter:focus{border-color:var(--acc);outline:none}
.group{margin:2.8rem 0}
.group h2{font-weight:800;font-stretch:62%;font-size:2.2rem;margin:0 0 1rem;display:flex;align-items:center;gap:.7rem}
.group h2::before{content:"";width:.9rem;height:.9rem;background:var(--acc);border-radius:50%}
.links{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.links li{display:flex;align-items:center;gap:.75rem;background:var(--stone-2);border-radius:14px;padding:.25rem .75rem .25rem 1.1rem;border-left:.35rem solid transparent}
.links li:hover{border-left-color:var(--acc)}
.links a.item{flex:1;display:block;padding:.9rem 0;text-decoration:none;min-width:0}
.label{font-weight:700;display:block}
.desc{color:var(--muted);font-size:.95rem;display:block}
.copy{font:inherit;font-size:.9rem;font-weight:700;background:var(--dark);color:var(--on-dark);border:0;border-radius:999px;padding:.5rem .95rem;cursor:pointer;flex:none}
.copy:hover{background:var(--acc);color:var(--acc-ink)}
.status{padding:2rem 0;color:var(--muted)}

@media (prefers-reduced-motion:no-preference){
  .hero-grid>div:first-child>*{animation:rise .6s ease-out both}
  .hero-grid>div:first-child>*:nth-child(2){animation-delay:.08s}
  .hero-grid>div:first-child>*:nth-child(3){animation-delay:.16s}
  @keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
}
@media (max-width:26rem){.brand .word{display:none}.brand svg{height:1.6rem}}

/* circles */
.hero,.page-head,section.band{position:relative;overflow:hidden}
.hero>.wrap,section.band>.wrap,.page-head>.wrap{position:relative;z-index:1}
.hero{padding-bottom:5rem}
.ring{position:absolute;width:var(--s);height:var(--s);border-radius:50%;pointer-events:none;will-change:translate}
.ring-acc{border:calc(var(--s)*.08) solid var(--acc)}
.ring-acc::after{content:"";position:absolute;inset:calc(var(--s)*.17);border-radius:50%;border:calc(var(--s)*.035) solid var(--dark-2)}
.ring-ghost{border:calc(var(--s)*.07) solid rgba(255,255,255,.055)}
.ring-ghost::after{content:"";position:absolute;inset:calc(var(--s)*.3);border-radius:50%;border:calc(var(--s)*.03) solid rgba(255,255,255,.04)}
.ring-line{border:3px solid var(--acc);opacity:.7}
@media (max-width:40rem){.ring{scale:.6}.hero .ring-acc{right:-10rem!important;top:auto!important;bottom:-4rem!important}}
.plate-mark{position:absolute;right:-7rem;top:50%;transform:translateY(-50%) rotate(-12deg);width:clamp(20rem,40vw,32rem);color:rgba(0,0,0,.14);pointer-events:none}
.ring-soft{border:calc(var(--s)*.07) solid rgba(0,0,0,.045)}
.ring-soft::after{content:"";position:absolute;inset:calc(var(--s)*.3);border-radius:50%;border:calc(var(--s)*.03) solid rgba(0,0,0,.035)}
.ring-closer{border:calc(var(--s)*.09) solid rgba(0,0,0,.14)}
.closer{position:relative;overflow:hidden}
.closer>.wrap{position:relative;z-index:1}
.sessions-main{position:relative}
body{overflow-x:hidden}
@media (prefers-color-scheme:dark){.ring-soft{border-color:rgba(255,255,255,.05)}.ring-soft::after{border-color:rgba(255,255,255,.035)}}
/* WhatsApp elements keep WhatsApp brand green */
.btn.wa-link,.fab{background:var(--wa);color:var(--wa-ink)}
.btn.wa-link:hover{filter:brightness(1.05)}
.nav a.wa-link:hover{border-color:var(--wa)}
.btn-icon{width:4.2rem;height:4.2rem;padding:0;justify-content:center;flex:none}
.btn-icon svg{width:2rem;height:2rem}
.hero-actions:has(.btn-icon){flex-direction:column;align-items:flex-start;gap:.9rem}
.hero-actions .hero-note{margin:0;max-width:22rem}
/* clickable step boxes */
.steps li{padding:0}
.step-link{display:flex;flex-direction:column;height:100%;padding:1.5rem;text-decoration:none;color:inherit;border-radius:16px;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.steps li:has(.step-link){counter-increment:s}
.steps li::before{content:none}
.step-link::before{content:counter(s);display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:50%;background:var(--acc);color:var(--acc-ink);font-weight:800;font-stretch:62%;font-size:1.9rem;line-height:1;margin-bottom:1rem}
.step-link:hover{background:#333;transform:translateY(-3px)}
.step-link p{flex:1}
.step-cta{display:inline-block;margin-top:1.1rem;font-weight:700;color:var(--on-dark);border-bottom:2px solid var(--acc);align-self:flex-start;padding-bottom:2px}
.step-cta-wa{border-color:var(--wa)}
@media (prefers-reduced-motion:reduce){.step-link{transition:none}.step-link:hover{transform:none}}
.steps li{overflow:hidden}
.step-link{border-bottom:5px solid var(--acc)}
.closer-logo{position:absolute;left:-3rem;top:50%;margin-top:-9rem;width:clamp(14rem,30vw,26rem);fill:rgba(0,0,0,.14);pointer-events:none;rotate:-8deg}
@media (max-width:52rem){.closer-logo{left:auto;right:-3rem;top:auto;bottom:-2rem;margin-top:0;width:15rem}}
.closer-logo-2{left:auto;right:30%;top:-2.5rem;margin-top:0;width:clamp(8rem,13vw,11rem);rotate:10deg}
@media (max-width:52rem){.closer-logo-2{right:auto;left:-2.5rem;top:-2rem;bottom:auto;width:8rem}}
.bg-logo{position:absolute;pointer-events:none;rotate:-8deg}
.bg-logo-light{fill:rgba(0,0,0,.045)}
.bg-logo-dark{fill:rgba(255,255,255,.05)}
@media (max-width:40rem){.bg-logo{scale:.6}}
@media (prefers-color-scheme:dark){.bg-logo-light{fill:rgba(255,255,255,.05)}}
/* darker text boxes on light sections */
.point{background:var(--dark-2)}
.point h3{color:var(--on-dark)}
.point p{color:#D2CCC5}
/* photos */
.ph-hero img{object-position:50% 0%}
.ph-about img{object-position:50% 30%}
