
:root{
  --bg:#130019;
  --bg2:#22002c;
  --purple:#5a0b7a;
  --violet:#8c22b9;
  --magenta:#eb32ca;
  --pink:#ff66da;
  --text:#fff8ff;
  --muted:#cdbed1;
  --line:rgba(255,255,255,.15);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:"DM Sans",sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:40;height:72px;
  display:flex;align-items:center;justify-content:space-between;padding:0 4vw;
  background:linear-gradient(to bottom,rgba(8,0,12,.82),rgba(8,0,12,.08));
  backdrop-filter:blur(8px)
}
.brand{font:600 14px "Manrope";letter-spacing:.18em}
#site-nav{display:flex;gap:26px;align-items:center;font-size:13px}
#site-nav a{opacity:.8} #site-nav a:hover{opacity:1}
.book{border:1px solid rgba(255,255,255,.45);border-radius:99px;padding:9px 15px}
.menu-toggle{display:none;background:none;color:#fff;border:0;font:inherit}
.hero{min-height:100vh;position:relative;display:flex;align-items:flex-end;overflow:hidden}
.hero-image{position:absolute;inset:0;background:url("hero.jpg") center 32%/cover no-repeat;transform:scale(1.03)}
.hero-shade{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(13,0,18,.88) 0%,rgba(13,0,18,.45) 48%,rgba(13,0,18,.3) 100%),
  linear-gradient(0deg,var(--bg) 0%,rgba(19,0,25,.1) 35%,rgba(19,0,25,.25) 100%)}
.hero-copy{position:relative;z-index:2;max-width:900px;padding:0 7vw 8vw}
.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:600;color:#efb6e8}
h1,h2,h3{font-family:"Manrope",sans-serif;letter-spacing:-.045em;line-height:.96;margin:0}
h1{font-size:clamp(58px,8.8vw,138px);font-weight:500}
h1 span{color:var(--pink)}
h2{font-size:clamp(40px,5vw,76px);font-weight:500}
h3{font-size:29px;font-weight:500}
.lead{font-size:clamp(19px,2.1vw,27px);max-width:690px;margin:28px 0 0;color:#f3e8f4}
.hero-actions{display:flex;align-items:center;gap:25px;margin-top:36px;flex-wrap:wrap}
.cta{display:inline-block;padding:15px 22px;border-radius:999px;background:var(--magenta);font-weight:600;font-size:14px;box-shadow:0 10px 35px rgba(235,50,202,.25)}
.subtle-link{font-size:14px;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:4px}
.hero-note{position:absolute;right:4vw;bottom:3vw;z-index:3;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:#d9bddf}
.statement{padding:11vw 10vw;background:radial-gradient(circle at 85% 20%,rgba(140,34,185,.22),transparent 35%)}
.statement .kicker{font-size:13px;text-transform:uppercase;letter-spacing:.16em;color:var(--pink)}
.statement h2{max-width:1150px}
.statement>p:last-child{max-width:750px;font-size:20px;color:var(--muted);margin-top:34px}
.attraction-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.attraction-strip div{padding:34px 4vw;border-right:1px solid var(--line);display:flex;flex-direction:column}
.attraction-strip span{font-size:11px;color:var(--pink);margin-bottom:22px}
.attraction-strip strong{font:500 30px "Manrope";letter-spacing:-.03em}
.attraction-strip small{margin-top:7px;color:var(--muted)}
.journey{padding:10vw 7vw;background:linear-gradient(180deg,var(--bg),var(--bg2))}
.section-title{max-width:850px;margin-bottom:5vw}
.section-title p:last-child{max-width:650px;font-size:18px;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.journey-card{min-height:330px;padding:28px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.025);display:flex;flex-direction:column}
.journey-card span{color:var(--pink);font-size:11px}
.journey-card h3{margin-top:auto;margin-bottom:12px}
.journey-card p{color:var(--muted);font-size:14px}
.journey-card.featured{background:linear-gradient(155deg,rgba(235,50,202,.28),rgba(90,11,122,.28));border-color:rgba(255,102,218,.42);box-shadow:inset 0 0 80px rgba(235,50,202,.08)}
.pleasure{position:relative;overflow:hidden;padding:12vw 10vw;min-height:670px;display:flex;align-items:center;background:#0e0013}
.pleasure-copy{position:relative;z-index:2;max-width:780px;margin-left:auto}
.pleasure-copy p:not(.eyebrow){font-size:20px;color:var(--muted);max-width:650px}
.pleasure-orb{position:absolute;width:min(58vw,760px);height:min(58vw,760px);border-radius:50%;left:-8vw;top:50%;transform:translateY(-50%);background:
  radial-gradient(circle at 50% 50%,rgba(255,102,218,.2) 0 11%,transparent 12%),
  repeating-radial-gradient(circle,rgba(255,102,218,.19) 0 2px,transparent 2px 36px);
  filter:drop-shadow(0 0 45px rgba(235,50,202,.18))
}
.consent{padding:10vw 7vw;background:#f2e8f4;color:#200a25}
.consent .eyebrow{color:#8e287f}
.consent .section-title p:last-child{color:#5d4d61}
.consent-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(32,10,37,.18)}
.consent-item{padding:32px 34px 32px 0;border-bottom:1px solid rgba(32,10,37,.18)}
.consent-item strong{font-size:18px}.consent-item p{color:#67576a;max-width:330px}
.facilitators{padding:10vw 8vw;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:6vw;background:linear-gradient(145deg,#190020,#2a0036)}
.facilitator-copy p:last-child{font-size:19px;color:var(--muted);max-width:640px}
.circle-graphic{aspect-ratio:1;max-width:500px;position:relative;display:grid;place-items:center;margin:auto}
.ring{position:absolute;border:1px solid rgba(255,102,218,.5);border-radius:50%}
.r1{inset:8%}.r2{inset:21%}.r3{inset:34%}
.circle-graphic span{text-align:center;font:600 16px "Manrope";letter-spacing:.2em;line-height:1.7;color:#f4b3eb}
.dates{padding:6vw 7vw 10vw;background:#100014}
.date-panel{padding:7vw;border-radius:34px;background:
  radial-gradient(circle at 95% 10%,rgba(255,102,218,.28),transparent 30%),
  linear-gradient(145deg,#4a075f,#24002e);border:1px solid rgba(255,255,255,.18)}
.date-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:50px 0}
.date-meta div{border-top:1px solid rgba(255,255,255,.28);padding-top:16px}
.date-meta small{display:block;text-transform:uppercase;letter-spacing:.15em;color:#e2b8e3;margin-bottom:8px}
.date-meta strong{font-size:22px;font-weight:500}
.cta.light{background:#fff;color:#2a0033;box-shadow:none}
.note{font-size:11px;color:#cda7cf;margin-top:16px}
footer{display:grid;grid-template-columns:1fr auto 1fr;gap:30px;padding:45px 7vw;border-top:1px solid var(--line);font-size:12px;color:#bda8c3}
footer span:last-child{text-align:right}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}
.reveal.visible{opacity:1;transform:none}

@media(max-width:900px){
  .menu-toggle{display:block}
  #site-nav{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;align-items:flex-start;padding:25px 5vw;background:rgba(15,0,20,.98)}
  #site-nav.open{display:flex}
  .hero-copy{padding:0 6vw 11vw}
  .hero-note{display:none}
  .attraction-strip{grid-template-columns:1fr 1fr}
  .cards{grid-template-columns:1fr 1fr}
  .consent-grid{grid-template-columns:1fr 1fr}
  .facilitators{grid-template-columns:1fr}
}
@media(max-width:600px){
  .hero{min-height:92vh}
  .hero-image{background-position:56% 28%}
  .statement,.journey,.consent,.facilitators,.dates{padding-left:6vw;padding-right:6vw}
  .attraction-strip,.cards,.consent-grid,.date-meta{grid-template-columns:1fr}
  .attraction-strip div{border-right:0;border-bottom:1px solid var(--line)}
  .pleasure{padding:25vw 6vw 16vw}
  .pleasure-orb{width:115vw;height:115vw;left:-45vw;opacity:.7}
  .pleasure-copy{margin-top:70vw}
  footer{grid-template-columns:1fr}
  footer span:last-child{text-align:left}
}

/* Day Into Night v2 additions */
.attraction-strip{grid-template-columns:repeat(5,1fr)}
.vibe{position:absolute;pointer-events:none;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 34px,rgba(255,102,218,.23) 35px 36px)}
.hero-vibe{width:72vw;height:72vw;right:-27vw;top:-24vw;z-index:1;opacity:.75}
.day-flow{position:relative;z-index:2}
.flow{display:grid;grid-template-columns:100px minmax(210px,.65fr) 1fr;gap:30px;padding:32px 0;border-top:1px solid var(--line);align-items:start}
.flow .time{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#d3b9d8;padding-top:8px}
.flow small{display:block;color:var(--pink);font-size:10px;margin-bottom:8px}
.flow p{margin:0;color:var(--muted);max-width:650px}
.flow.intimate{background:linear-gradient(90deg,rgba(235,50,202,.08),transparent);padding-left:22px;padding-right:22px}
.side-vibe{width:70vw;height:70vw;right:-40vw;top:7vw;opacity:.55}
.community{position:relative;overflow:hidden;min-height:690px;padding:10vw;display:flex;align-items:center;background:#0d0012}
.community-copy{position:relative;z-index:2;max-width:760px;margin-left:auto}
.community-copy p:last-child{max-width:620px;font-size:20px;color:var(--muted)}
.centre-vibe{width:min(75vw,900px);height:min(75vw,900px);left:-18vw;top:50%;transform:translateY(-50%);opacity:.85}
.image-split{display:grid;grid-template-columns:1fr 1fr;min-height:720px;background:#25002e}
.split-photo{background:url("hero.jpg") center/cover no-repeat}
.split-copy{padding:9vw 7vw;align-self:center}
.split-copy p:not(.eyebrow){font-size:19px;color:var(--muted);max-width:600px}
.date-intro{max-width:720px;font-size:19px;color:#e4cce7}
.date-meta{grid-template-columns:repeat(4,1fr)}
.circle-graphic .r4{inset:20%}.circle-graphic .r5{inset:32%}
@media(max-width:900px){
 .attraction-strip{grid-template-columns:1fr 1fr}.attraction-strip div:last-child{grid-column:1/-1}
 .flow{grid-template-columns:75px 180px 1fr}.image-split{grid-template-columns:1fr}.split-photo{min-height:70vw}
 .date-meta{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
 .attraction-strip,.date-meta{grid-template-columns:1fr}.attraction-strip div:last-child{grid-column:auto}
 .flow{grid-template-columns:1fr;gap:8px}.flow.intimate{padding-left:0;padding-right:0;background:none}
 .community{padding:20vw 6vw 14vw;align-items:flex-end}.community-copy{margin-top:65vw}
 .centre-vibe{width:125vw;height:125vw;left:-60vw;top:35%}
}


/* Workshop participant reflections */
.workshop-quote {
  margin: 2.25rem 0;
  padding: 0 0 0 1.25rem;
  border-left: 1px solid currentColor;
  max-width: 46rem;
}
.workshop-quote p {
  margin: 0;
  font-size: clamp(1.05rem, 1.7vw, 1.35rem);
  line-height: 1.55;
}
.workshop-quote cite {
  display: block;
  margin-top: .7rem;
  font-size: .78rem;
  font-style: normal;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .7;
}
.facilitator-quote {
  margin-top: 0;
  margin-bottom: 2rem;
}

/* Dark-background participant reflections: hot pink quote treatment */
.journey .workshop-quote,
.facilitators .workshop-quote {
  color: var(--pink);
  border-left-color: var(--pink);
}
.journey .workshop-quote p,
.facilitators .workshop-quote p {
  font-style: italic;
  text-shadow: 0 0 12px rgba(255,102,218,.42), 0 0 28px rgba(235,50,202,.22);
}
.journey .workshop-quote cite,
.facilitators .workshop-quote cite {
  color: var(--pink);
}

/* Distributed workshop photography: preserve complete square compositions */
.square-photo-row,
.standalone-square{
  width:min(44vw,560px);
  aspect-ratio:1;
  margin:42px 0 58px;
}
.photo-left{margin-right:auto}
.photo-right{margin-left:auto}
.square-photo-row img,
.standalone-square img,
.section-square-photo img,
.facilitator-photo>img{
  width:100%;
  height:auto;
  aspect-ratio:1;
  display:block;
  object-fit:contain;
}

/* Text + full square image blocks */
.community{
  position:relative;
  overflow:hidden;
  min-height:0;
  padding:10vw;
  display:grid;
  grid-template-columns:minmax(280px,520px) minmax(0,1fr);
  gap:8vw;
  align-items:center;
  background:#0d0012;
}
.community .section-square-photo{grid-column:1;grid-row:1;position:relative;z-index:2}
.community-copy{grid-column:2;grid-row:1;position:relative;z-index:2;max-width:760px;margin:0}
.community-copy p:last-child{max-width:620px;font-size:20px;color:var(--muted)}
.community::after{display:none}
.centre-vibe{z-index:1}

.image-split{
  display:grid;
  grid-template-columns:minmax(280px,1fr) minmax(0,1fr);
  min-height:0;
  background:#25002e;
  align-items:center;
}
.image-split .section-square-photo{padding:6vw;align-self:center}
.split-copy{padding:9vw 7vw;align-self:center}

.pleasure{
  position:relative;
  overflow:hidden;
  padding:10vw;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,520px);
  gap:8vw;
  align-items:center;
  background:#0e0013;
}
.pleasure .section-square-photo{grid-column:2;grid-row:1;position:relative;z-index:2}
.pleasure-copy{grid-column:1;grid-row:1;position:relative;z-index:2;max-width:780px;margin:0}
.pleasure-orb{z-index:1}
.pleasure::after{display:none}

.facilitator-photo{position:relative;aspect-ratio:1;max-width:540px;margin:auto;overflow:visible}
.facilitator-photo .circle-graphic{position:absolute;inset:0;width:100%;height:100%;z-index:2}

@media(max-width:900px){
  .square-photo-row,.standalone-square{width:min(68vw,540px)}
  .community,.pleasure{grid-template-columns:1fr;gap:7vw}
  .community .section-square-photo,.community-copy,
  .pleasure .section-square-photo,.pleasure-copy{grid-column:1;grid-row:auto}
  .community .section-square-photo{width:min(70vw,520px);margin-right:auto}
  .pleasure .section-square-photo{width:min(70vw,520px);margin-left:auto}
  .image-split{grid-template-columns:1fr}
  .image-split .section-square-photo{width:min(76vw,560px);padding:8vw 0 0;margin-left:auto;margin-right:8vw}
  .pleasure-copy{margin-top:0}
}
@media(max-width:600px){
  .square-photo-row,.standalone-square{width:88vw;margin-top:32px;margin-bottom:44px}
  .community,.pleasure{padding:16vw 6vw}
  .community .section-square-photo,.pleasure .section-square-photo{width:88vw;margin-left:auto;margin-right:auto}
  .image-split .section-square-photo{width:88vw;margin:0 auto;padding:8vw 0 0}
}


/* September photo layout refinement */
.movement-attraction{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);
  align-items:stretch;
  background:var(--bg);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.movement-square{aspect-ratio:1;min-width:0}
.movement-square img{width:100%;height:100%;display:block;object-fit:contain}
.movement-attraction .attraction-strip{
  display:grid;
  grid-template-columns:1fr;
  border:0;
  align-content:stretch;
}
.movement-attraction .attraction-strip div{
  min-height:0;
  padding:18px 3vw;
  border-right:0;
  border-bottom:1px solid var(--line);
  justify-content:center;
}
.movement-attraction .attraction-strip div:last-child{border-bottom:0}
.movement-attraction .attraction-strip span{margin-bottom:5px}
.movement-attraction .attraction-strip strong{font-size:clamp(21px,2.2vw,30px)}
.movement-attraction .attraction-strip small{margin-top:2px}

.journey-photo-trio{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin:40px 0 46px;
}
.journey-photo-trio img{
  width:100%;
  height:auto;
  aspect-ratio:1;
  display:block;
  object-fit:contain;
}

@media(max-width:900px){
  .movement-attraction{grid-template-columns:1fr}
  .movement-square{width:100%}
  .movement-attraction .attraction-strip{grid-template-columns:1fr 1fr}
  .movement-attraction .attraction-strip div:last-child{grid-column:1/-1}
  .movement-attraction .attraction-strip div{padding:24px 5vw}
}
@media(max-width:600px){
  .movement-attraction .attraction-strip{grid-template-columns:1fr}
  .movement-attraction .attraction-strip div:last-child{grid-column:auto}
  .journey-photo-trio{gap:8px;margin:30px 0 38px}
}


/* Connection section stacked square images */
.connection-photo-stack{grid-column:2;grid-row:1;position:relative;z-index:2;display:grid;gap:18px;align-self:center}
.connection-photo-stack .section-square-photo{grid-column:auto;grid-row:auto;width:100%;margin:0}
.connection-photo-stack .section-square-photo img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;display:block}
@media(max-width:900px){
  .connection-photo-stack{grid-column:1;grid-row:auto;width:min(70vw,520px);margin-left:auto}
  .connection-photo-stack .section-square-photo{width:100%;margin:0}
}
@media(max-width:600px){
  .connection-photo-stack{width:88vw;margin-left:auto;margin-right:auto;gap:10px}
}
