/* Robyn Irwin site, v1 (7 Oct 2026).
   Direction: cream and white ground, forest and sage, stone text, one accent (fireweed), quiet serif + plain sans,
   her photographs as the only imagery. Inspiration for the feel (Ema, 7 Oct): tengilemalamala.com, i.e. full-screen
   video, very large taglines, nature close-ups behind text, sliding screens, slow reveals, generous space.
   Order: tokens, base, shell, home sections, inner pages, motion, small screens. */

:root{
  color-scheme:light;
  --cream:#FAF8F3; --white:#FFFFFF; --mist:#F2F3EE;
  --ink:#27312B; --ink-mid:#55635B; --ink-dim:#7E8B84; --line:#E1E5DE;
  --forest:#3F6B4A; --forest-deep:#24402D; --sage:#9DB89A; --sage-soft:#DCE5D8;
  --accent:#B9667C; --accent-soft:#F4E4E9;
  --p1:#3F6B4A; --p1-tint:#E6EFE6; --p2:#2C6C8C; --p2-tint:#E3EEF3; --p3:#B4633B; --p3-tint:#F8EBE2;
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --body:"Nunito Sans","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
p{margin:0;max-width:62ch;}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:300;letter-spacing:-.015em;text-wrap:balance;}
h1 em,h2 em,h3 em,.giant em,.big em{font-style:italic;font-weight:400;}
a{color:var(--forest);}
.wrap{max-width:1120px;margin:0 auto;padding-inline:24px;}

/* type scale */
.giant{font-family:var(--display);font-weight:300;font-size:clamp(2.8rem,8.5vw,6.4rem);line-height:.98;letter-spacing:-.025em;}
.big{font-family:var(--display);font-weight:300;font-size:clamp(2rem,5.2vw,3.9rem);line-height:1.06;letter-spacing:-.02em;}
.eyebrow{display:block;font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;}
.lead{font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--ink-mid);max-width:56ch;}
.small{font-size:15px;color:var(--ink-mid);}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;}

/* buttons */
.btn{display:inline-block;background:var(--forest);color:var(--white);text-decoration:none;padding:14px 26px;border-radius:2px;font-weight:600;font-size:14.5px;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--forest);transition:background .3s,color .3s,transform .3s var(--ease),border-color .3s;}
.btn:hover{background:var(--forest-deep);border-color:var(--forest-deep);transform:translateY(-2px);}
.btn.ghost{background:transparent;color:var(--forest);}
.btn.ghost:hover{background:var(--forest);color:var(--white);}
.btn.light{background:var(--white);color:var(--forest-deep);border-color:var(--white);}
.btn.light:hover{background:var(--cream);}
.btn.sm{padding:9px 16px;font-size:12.5px;}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* shell */
nav.site-nav{position:fixed;top:0;left:0;right:0;z-index:20;padding-top:env(safe-area-inset-top,0px);background:linear-gradient(rgba(39,49,43,.45),transparent);transition:background .4s;}
nav.site-nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:18px;flex-wrap:wrap;}
nav.site-nav .brand{font-family:var(--display);font-size:1.3rem;color:var(--white);text-decoration:none;letter-spacing:.02em;}
nav.site-nav .links{display:flex;flex-wrap:wrap;gap:4px 22px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;}
nav.site-nav .links a{color:rgba(255,255,255,.88);text-decoration:none;}
nav.site-nav .links a:hover{color:var(--white);}
nav.site-nav .btn.sm{background:transparent;color:var(--white);border-color:rgba(255,255,255,.6);}
nav.site-nav .btn.sm:hover{background:var(--white);color:var(--forest-deep);border-color:var(--white);}
body:not(.over) nav.site-nav{position:sticky;background:var(--cream);border-bottom:1px solid var(--line);}
body:not(.over) nav.site-nav .brand,body:not(.over) nav.site-nav .links a{color:var(--ink);}
body:not(.over) nav.site-nav .btn.sm{color:var(--forest);border-color:var(--forest);}
body:not(.over) nav.site-nav .btn.sm:hover{background:var(--forest);color:var(--white);}
footer.site-footer{background:var(--forest-deep);color:#C9D6CB;}
footer.site-footer .wrap{padding-block:40px 48px;display:flex;flex-wrap:wrap;gap:12px 40px;font-size:14px;}
footer.site-footer a{color:var(--white);text-decoration:none;}
footer.site-footer b{color:var(--white);}

/* hero */
.video-hero{position:relative;overflow:hidden;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;color:var(--white);}
.video-hero .hero-media{position:absolute;inset:0;overflow:hidden;background:var(--forest-deep);}
.video-hero video{position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;filter:blur(6px) saturate(.9);transform:scale(1.02);}
.video-hero .veil{position:absolute;inset:0;background:linear-gradient(115deg,rgba(36,64,45,.78) 0%,rgba(36,64,45,.42) 45%,rgba(250,248,243,.14) 70%,rgba(36,64,45,.6) 100%);background-size:220% 220%;animation:veil 30s ease-in-out infinite alternate;}
.video-hero .hero-text{position:relative;padding-block:0 112px;max-width:1120px;}
.video-hero .eyebrow{color:#E7CBD4;}
.video-hero .giant{color:var(--white);max-width:12ch;}
.video-hero .sub{color:#E3EBE2;font-size:clamp(1.05rem,1.7vw,1.35rem);margin-top:26px;max-width:40ch;}
.video-hero .ctas{margin-top:28px;}
.video-hero .btn.ghost{color:var(--white);border-color:rgba(255,255,255,.7);}
.video-hero .btn.ghost:hover{background:var(--white);color:var(--forest-deep);}
.scroll-cue{position:absolute;left:50%;bottom:28px;width:26px;height:42px;border:1.5px solid rgba(255,255,255,.7);border-radius:14px;transform:translateX(-50%);}
.scroll-cue span{position:absolute;left:50%;top:8px;width:3px;height:8px;margin-left:-1.5px;background:var(--white);border-radius:2px;animation:cue 2.2s ease-in-out infinite;}
@keyframes veil{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes cue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(14px);opacity:0}100%{opacity:0}}

/* statement sections: big text over a nature close-up */
.statement{position:relative;overflow:hidden;padding-block:clamp(96px,14vw,180px);isolation:isolate;}
.statement .bg{position:absolute;inset:-12% 0;background-size:cover;background-position:center;opacity:.22;transform:scale(1.15);will-change:transform;z-index:-1;}
.statement::before{content:"";position:absolute;inset:0;background:linear-gradient(var(--cream),rgba(250,248,243,.6) 50%,var(--cream));z-index:-1;}
.statement.light .bg{opacity:.16;}
.statement .wrap{display:flex;flex-direction:column;gap:22px;}
.statement .big{max-width:16ch;}
.connect{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:end;}
.connect>div{display:flex;flex-direction:column;gap:18px;}

/* sliding screens */
.slider-section{padding-block:clamp(72px,10vw,120px) 0;background:var(--white);}
.slider-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:36px;}
.slider-nav{display:flex;align-items:center;gap:14px;font-family:var(--display);font-size:1.1rem;color:var(--ink-mid);}
.slider-nav button{width:50px;height:50px;border-radius:50%;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:20px;cursor:pointer;transition:background .3s,color .3s,transform .3s var(--ease);}
.slider-nav button:hover{background:var(--forest-deep);color:var(--white);border-color:var(--forest-deep);transform:translateY(-2px);}
.slider-nav .count b{color:var(--ink);font-weight:400;}
.slider{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.slider::-webkit-scrollbar{display:none;}
.slide{position:relative;flex:0 0 100%;scroll-snap-align:start;height:clamp(460px,78vh,760px);overflow:hidden;color:var(--white);}
.slide img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform:scale(1.08);transition:transform 1.6s var(--ease);}
.slide.active img{transform:scale(1);}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(36,64,45,.82) 0%,rgba(36,64,45,.25) 55%,rgba(36,64,45,.1) 100%);}
.slide-text{position:absolute;left:0;right:0;bottom:0;padding:0 clamp(24px,6vw,96px) clamp(40px,6vw,72px);z-index:1;max-width:760px;opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease) .2s,transform .9s var(--ease) .2s;}
.slide.active .slide-text{opacity:1;transform:none;}
.slide-text .eyebrow{color:#E7CBD4;margin-bottom:10px;}
.slide-text h3{font-size:clamp(2.2rem,5.5vw,4.2rem);line-height:1;color:var(--white);margin-bottom:16px;}
.slide-text p{color:#E3EBE2;font-size:1.1rem;max-width:46ch;margin-bottom:22px;}
.slide-text .btn{background:var(--white);color:var(--forest-deep);border-color:var(--white);}
.slide-text .btn:hover{background:var(--cream);}

/* three steps */
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:28px;}
.tri{display:flex;flex-direction:column;gap:8px;min-width:0;border-top:1px solid var(--ink);padding:24px 18px 28px;cursor:default;background:transparent;
  opacity:0;transform:translateX(-48px);
  transition:opacity .8s var(--ease),transform .8s var(--ease),background-color .35s,border-color .35s,color .35s;}
.trio .tri:nth-child(2){transition-delay:.15s,.15s,0s,0s,0s;}
.trio .tri:nth-child(3){transition-delay:.3s,.3s,0s,0s,0s;}
.trio.in .tri{opacity:1;transform:none;}
.tri .n{width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;margin-bottom:8px;transition:background-color .35s,color .35s;}
.tri b{font-family:var(--display);font-weight:400;font-size:1.5rem;line-height:1.15;}
.tri span:not(.n){font-size:15px;color:var(--ink-mid);transition:color .35s;}
.tri:hover,.tri:focus-within{background:var(--forest-deep);border-top-color:var(--forest-deep);color:var(--white);transform:translateY(-4px);}
.tri:hover b,.tri:hover span:not(.n){color:var(--white);}
.tri:hover .n{background:var(--accent);color:var(--white);}

/* full-bleed photo section (immersion) */
.full-bleed{position:relative;overflow:hidden;color:var(--white);padding-block:clamp(120px,18vw,240px);isolation:isolate;}
.full-bleed .bg{position:absolute;inset:-12% 0;background-size:cover;background-position:50% 30%;transform:scale(1.15);will-change:transform;z-index:-2;}
.full-bleed::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(36,64,45,.86),rgba(36,64,45,.55) 60%,rgba(36,64,45,.35));z-index:-1;}
.full-bleed .wrap{display:flex;flex-direction:column;gap:22px;}
.full-bleed .eyebrow{color:#E7CBD4;}
.full-bleed .giant{color:var(--white);max-width:12ch;}
.full-bleed .lead{color:#E3EBE2;}

/* events */
.events-section{background:var(--white);padding-block:clamp(96px,12vw,160px);}
.events-section .wrap{display:flex;flex-direction:column;gap:22px;}
.events{display:flex;flex-direction:column;margin-top:18px;}
.ev{display:grid;grid-template-columns:220px 1fr auto;gap:24px;align-items:baseline;padding:26px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit;transition:padding .4s var(--ease),color .3s;}
.ev:last-child{border-bottom:1px solid var(--line);}
.ev:hover{padding-left:16px;color:var(--forest);}
.ev .when{font-family:var(--display);font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:300;color:var(--accent);white-space:nowrap;}
.ev .what{font-family:var(--display);font-size:clamp(1.3rem,2.6vw,2rem);font-weight:300;line-height:1.15;}
.ev .len{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);}

/* continuum: the movement sequence as a full-bleed background */
.continuum-section{position:relative;overflow:hidden;color:var(--white);padding-block:clamp(120px,18vw,240px);isolation:isolate;}
.continuum-section .sequence{position:absolute;inset:0;z-index:-1;background:var(--forest-deep);}
.sequence img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%;opacity:0;animation:frames 30s infinite;}
.sequence img:nth-child(2){animation-delay:6s}
.sequence img:nth-child(3){animation-delay:12s}
.sequence img:nth-child(4){animation-delay:18s}
.sequence img:nth-child(5){animation-delay:24s}
.sequence .veil{position:absolute;inset:0;background:linear-gradient(to right,rgba(36,64,45,.85),rgba(36,64,45,.45));}
@keyframes frames{0%{opacity:0;transform:scale(1.06)}6%{opacity:1}20%{opacity:1;transform:scale(1)}27%{opacity:0;transform:scale(1)}100%{opacity:0}}
.continuum-section .wrap{display:flex;flex-direction:column;gap:22px;}
.continuum-section .eyebrow{color:#E7CBD4;}
.continuum-section .giant{color:var(--white);max-width:12ch;}
.continuum-section .lead{color:#E3EBE2;}

/* stay connected form */
form.list{display:flex;flex-direction:column;gap:10px;max-width:420px;}
form.list label{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mid);}
form.list input{padding:14px 16px;border:0;border-bottom:1px solid var(--ink);background:transparent;font-family:var(--body);font-size:16px;color:var(--ink);}
form.list button{align-self:flex-start;margin-top:8px;}
.thanks{font-size:15px;color:var(--forest);}

/* closing */
.closing-section{padding-block:clamp(96px,14vw,180px);background:var(--cream);}
.closing-section .wrap{display:flex;flex-direction:column;gap:32px;}
.quote-giant{font-family:var(--display);font-weight:300;font-style:italic;font-size:clamp(1.8rem,4.6vw,3.6rem);line-height:1.15;max-width:22ch;color:var(--ink);}
.sign{color:var(--ink-mid);font-size:1.05rem;}

/* ---- inner pages ---- */
.hero:not(.video-hero){position:relative;background:var(--cream);}
.hero:not(.video-hero) .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding-block:120px 72px;}
.hero-text{display:flex;flex-direction:column;gap:20px;}
.hero:not(.video-hero) h1{font-size:clamp(2.4rem,6.4vw,4.4rem);line-height:1.02;}
.hero .sub{font-size:1.15rem;color:var(--ink-mid);}
.photo{position:relative;overflow:hidden;background:var(--sage-soft);aspect-ratio:4/5;max-width:100%;}
.photo img{width:100%;height:100%;object-fit:cover;}
.photo.wide{aspect-ratio:16/10;}
section{padding-block:72px;}
section.tint{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.stack{display:flex;flex-direction:column;gap:20px;}
section h2:not(.big):not(.giant){font-size:clamp(1.7rem,4vw,2.4rem);line-height:1.15;}
.two{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.two.top{align-items:start;}
.story{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.story .stack{gap:18px;}
.sticky{position:sticky;top:90px;}
.list2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0;padding:0;list-style:none;}
.list2 li{border-top:1px solid var(--line);padding:12px 0;font-size:15px;color:var(--ink-mid);}
.lineage{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;}
.ln{border-top:2px solid var(--sage);padding-top:12px;}
.ln b{display:block;font-size:15px;}
.ln span{font-size:14.5px;color:var(--ink-mid);}
.how{background:var(--white);border:1px solid var(--line);padding:26px;display:flex;flex-direction:column;gap:14px;}
.how h3{font-size:1.4rem;}
.steps{display:flex;flex-direction:column;gap:12px;}
.step{display:flex;gap:14px;align-items:flex-start;}
.step i{flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;font-size:13px;margin-top:3px;}
.step p{font-size:15.5px;}
.step b{color:var(--ink);}
ul.soft{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;color:var(--ink-mid);max-width:60ch;}
.quote{font-family:var(--display);font-style:italic;font-weight:300;font-size:clamp(1.3rem,3vw,1.8rem);line-height:1.35;color:var(--ink);max-width:34ch;}
.band{position:relative;height:clamp(240px,36vw,420px);overflow:hidden;}
.band img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.person{display:flex;flex-direction:column;gap:10px;min-width:0;border-top:1px solid var(--line);padding-top:18px;}
.person h3{font-size:1.4rem;}
.person p{font-size:15.5px;color:var(--ink-mid);}
.parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;}
.part{display:flex;flex-direction:column;gap:8px;min-width:0;border-top:2px solid var(--line);padding-top:18px;}
.part .tag{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
.part h3{font-size:1.5rem;}
.part p{font-size:15px;color:var(--ink-mid);}
.part.a .tag,.part.a h3{color:var(--p1);} .part.a{border-top-color:var(--p1);}
.part.b .tag,.part.b h3{color:var(--p2);} .part.b{border-top-color:var(--p2);}
.part.c .tag,.part.c h3{color:var(--p3);} .part.c{border-top-color:var(--p3);}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;}
.card{display:flex;flex-direction:column;gap:10px;min-width:0;border-top:1px solid var(--line);padding-top:18px;}
.card h3{font-family:var(--body);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--forest);}
.card ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px;font-size:15px;color:var(--ink-mid);}
.rhythm{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.beat{border-top:2px solid var(--sage);padding-top:12px;}
.beat b{display:block;font-size:15px;}
.beat span{font-size:14.5px;color:var(--ink-mid);}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.fact{border-top:1px solid var(--line);padding-top:14px;}
.fact b{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:4px;}
.fact span{font-size:1.05rem;}
form.apply{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:760px;}
form.apply label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--ink-mid);min-width:0;}
form.apply label.full{grid-column:1/-1;}
form.apply input,form.apply textarea,form.apply select{padding:12px 14px;border:1px solid var(--line);background:var(--white);color:var(--ink);font-family:var(--body);font-size:15px;width:100%;}
form.apply textarea{min-height:110px;resize:vertical;}
form.apply .btn{justify-self:start;grid-column:1/-1;}
.note{font-size:14.5px;color:var(--ink-mid);background:var(--accent-soft);border-left:3px solid var(--accent);padding:12px 16px;max-width:62ch;}

/* ---- motion ---- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.rise{transform:translateY(14px);transition:transform .9s var(--ease);}
.rise.in{transform:none;}

/* ---- small screens ---- */
@media (max-width:860px){
  .connect,.two,.story,.pair,form.apply,.hero:not(.video-hero) .wrap{grid-template-columns:1fr;}
  .sticky{position:static;}
  .ev{grid-template-columns:1fr;gap:4px;}
  .ev .when{white-space:normal;}
  nav.site-nav .links{display:none;}
  .video-hero .hero-text{padding-bottom:96px;}
  .photo{aspect-ratio:4/3;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal,.rise,.trio .tri,.slide-text{opacity:1;transform:none;transition:none;}
  .tri:hover{transform:none;}
  .video-hero .veil,.scroll-cue span,.sequence img,.slide img{animation:none;transition:none;}
  .video-hero video{display:none;}
  .video-hero .hero-media{background:url(/assets/img/hero-poster.jpg) center/cover;}
  .sequence img:first-child{opacity:1;}
  .statement .bg,.full-bleed .bg{transform:none;}
}

/* ---- fixes after the first look, 7 Oct ---- */
/* nav turns into a solid cream bar once the hero has scrolled past */
body.over nav.site-nav.scrolled{background:rgba(250,248,243,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
body.over nav.site-nav.scrolled .brand,body.over nav.site-nav.scrolled .links a{color:var(--ink);}
body.over nav.site-nav.scrolled .btn.sm{color:var(--forest);border-color:var(--forest);}
body.over nav.site-nav.scrolled .btn.sm:hover{background:var(--forest);color:var(--white);}
/* hero copy needs more contrast over the light poster frame */
.video-hero .veil{background:linear-gradient(115deg,rgba(36,64,45,.82) 0%,rgba(36,64,45,.55) 45%,rgba(36,64,45,.3) 70%,rgba(36,64,45,.62) 100%),linear-gradient(to top,rgba(36,64,45,.75),transparent 55%);background-size:220% 220%,100% 100%;}
.video-hero .giant,.video-hero .sub{text-shadow:0 2px 24px rgba(20,36,26,.45);}
.video-hero .sub{color:var(--white);font-weight:600;}
/* event rows: let the date breathe */
.ev{grid-template-columns:minmax(220px,.5fr) 1.5fr auto;}
.ev .when{white-space:normal;}
/* keep the Continuum tagline off her face: picture sits to the right, text to the left */
.sequence img{object-position:70% 35%;}
.sequence .veil{background:linear-gradient(to right,rgba(36,64,45,.9) 0%,rgba(36,64,45,.7) 45%,rgba(36,64,45,.25) 100%);}
.ev{grid-template-columns:minmax(260px,.55fr) 1.45fr auto;}

/* ---- the three steps, 7 Oct: each one fades in with a soft pink glow as it scrolls into view, and fades out again when it leaves ---- */
.trio .tri{
  opacity:0;transform:translateY(26px) scale(.98);box-shadow:0 0 0 rgba(185,102,124,0);
  transition:opacity .9s var(--ease),transform .9s var(--ease),box-shadow 1.4s ease,background-color .35s,border-color .35s,color .35s;
  border-radius:4px;padding:28px 22px 30px;
}
.trio .tri:nth-child(2){transition-delay:.12s,.12s,.12s,0s,0s,0s;}
.trio .tri:nth-child(3){transition-delay:.24s,.24s,.24s,0s,0s,0s;}
.trio .tri.in{opacity:1;transform:none;animation:glow 2.6s ease-out forwards;}
.trio .tri.in:nth-child(2){animation-delay:.12s;}
.trio .tri.in:nth-child(3){animation-delay:.24s;}
.trio .tri.out{opacity:0;transform:translateY(-18px) scale(.98);box-shadow:0 0 0 rgba(185,102,124,0);animation:none;}
@keyframes glow{
  0%{box-shadow:0 0 0 rgba(185,102,124,0);background-color:transparent;}
  35%{box-shadow:0 0 60px 8px rgba(185,102,124,.38);background-color:rgba(244,228,233,.75);}
  100%{box-shadow:0 0 28px 0 rgba(185,102,124,.14);background-color:rgba(244,228,233,.28);}
}
.trio .tri:hover,.trio .tri:focus-within{animation:none;background:var(--forest-deep);box-shadow:0 0 40px 2px rgba(185,102,124,.25);}
@media (prefers-reduced-motion:reduce){.trio .tri,.trio .tri.in,.trio .tri.out{opacity:1;transform:none;animation:none;box-shadow:none;}}

/* ---- the three steps as a scroll stage, 7 Oct: the section pins while you scroll through it;
   step 1 fades in then out, then step 2, then step 3, each in the same place ---- */
.stage{padding-block:0;height:320vh;}
.stage .stage-inner{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;}
.stage .wrap{display:flex;flex-direction:column;gap:22px;width:100%;}
.trio.seq{display:grid;grid-template-columns:minmax(0,520px);margin-top:28px;min-height:190px;}
.trio.seq .tri{grid-area:1/1;opacity:0;transform:translateY(24px);transition:none;animation:none;will-change:opacity,transform;pointer-events:none;}
.trio.seq .tri.on{pointer-events:auto;}
.trio.seq .tri .n{transition:box-shadow 1.2s ease,background-color .6s;}
.trio.seq .tri.on .n{background:var(--accent);color:var(--white);box-shadow:0 0 36px 6px rgba(185,102,124,.45);}
.trio.seq .tri.on{box-shadow:0 0 56px 4px rgba(185,102,124,.22);background-color:rgba(244,228,233,.45);}
.trio.seq .tri{transition:box-shadow 1s ease,background-color .8s ease;}
.stage .dots{display:flex;gap:8px;margin-top:6px;}
.stage .dots i{width:28px;height:2px;background:var(--line);transition:background .4s;}
.stage .dots i.on{background:var(--accent);}
@media (max-width:860px){.stage{height:300vh;}}
@media (prefers-reduced-motion:reduce){
  .stage{height:auto;padding-block:clamp(96px,14vw,180px);}
  .stage .stage-inner{position:static;height:auto;}
  .trio.seq{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;}
  .trio.seq .tri{grid-area:auto;opacity:1!important;transform:none!important;pointer-events:auto;}
}
/* overflow:hidden on the section stops position:sticky from working; clip the background with clip-path instead */
.stage{overflow:visible;clip-path:inset(0);}
.stage .bg{inset:-12% 0;}

/* ---- ways to work with me as stacked panels, 7 Oct: each panel appears as you scroll, and its title's
   letters start scattered and drift back together as the panel reaches the middle of the screen ---- */
.panels{padding-block:clamp(72px,10vw,120px) 0;background:var(--white);}
.panels-head{margin-bottom:36px;}
.panel{position:relative;height:clamp(460px,82vh,780px);overflow:hidden;color:var(--white);
  clip-path:inset(12% 6% 12% 6% round 2px);transition:clip-path 1.2s var(--ease);}
.panel.seen{clip-path:inset(0 0 0 0 round 0);}
.panel img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform:scale(1.12);transition:transform 2.2s var(--ease);}
.panel.seen img{transform:scale(1);}
.panel::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(36,64,45,.85) 0%,rgba(36,64,45,.3) 55%,rgba(36,64,45,.1) 100%);}
.panel-text{position:absolute;left:0;right:0;bottom:0;padding:0 clamp(24px,6vw,96px) clamp(40px,6vw,72px);z-index:1;max-width:820px;}
.panel-text .eyebrow{color:#E7CBD4;margin-bottom:10px;}
.panel-text h3{font-size:clamp(2.2rem,6vw,4.6rem);line-height:1;color:var(--white);margin-bottom:18px;}
.panel-text h3 .ch{display:inline-block;will-change:transform,opacity;}
.panel-text h3 .sp{display:inline-block;width:.28em;}
.panel-text p{color:#E3EBE2;font-size:1.1rem;max-width:46ch;margin-bottom:22px;opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease) .3s,transform .9s var(--ease) .3s;}
.panel-text .btn{background:var(--white);color:var(--forest-deep);border-color:var(--white);opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease) .45s,transform .9s var(--ease) .45s,background .3s;}
.panel.seen .panel-text p,.panel.seen .panel-text .btn{opacity:1;transform:none;}
.panel-text .btn:hover{background:var(--cream);}
@media (prefers-reduced-motion:reduce){
  .panel{clip-path:none;} .panel img{transform:none;transition:none;}
  .panel-text p,.panel-text .btn,.panel-text h3 .ch{opacity:1!important;transform:none!important;transition:none;}
}
.panel-text h3 .word{display:inline-block;white-space:nowrap;}
.panel-text h3 .sp{display:inline;width:auto;}

/* ---- the three steps, larger, on textured dark green (Ema, 7 Oct) ---- */
.trio.seq{grid-template-columns:minmax(0,980px);min-height:clamp(300px,42vh,420px);margin-top:36px;}
.trio.seq .tri{
  padding:clamp(36px,5vw,64px) clamp(28px,5vw,64px);border:0;border-radius:4px;
  color:var(--white);
  background:linear-gradient(120deg,rgba(28,52,36,.9),rgba(36,64,45,.78) 60%,rgba(28,52,36,.88)),url(/assets/img/tex-moss.jpg) center/cover;
  box-shadow:0 30px 60px -30px rgba(20,36,26,.55);
  gap:14px;
}
.trio.seq .tri .n{width:48px;height:48px;font-size:16px;background:rgba(255,255,255,.12);color:var(--white);margin-bottom:10px;}
.trio.seq .tri b{font-size:clamp(1.9rem,4vw,3rem);line-height:1.05;color:var(--white);}
.trio.seq .tri span:not(.n){font-size:clamp(1.05rem,1.6vw,1.3rem);color:#DCE5D8;max-width:48ch;}
.trio.seq .tri.on{background:linear-gradient(120deg,rgba(28,52,36,.9),rgba(36,64,45,.78) 60%,rgba(28,52,36,.88)),url(/assets/img/tex-moss.jpg) center/cover;
  box-shadow:0 0 90px 10px rgba(185,102,124,.28),0 30px 60px -30px rgba(20,36,26,.55);}
.trio.seq .tri.on .n{background:var(--accent);box-shadow:0 0 36px 8px rgba(185,102,124,.55);}
.trio.seq .tri:hover,.trio.seq .tri:focus-within{transform:none;}
.stage .dots i{background:rgba(39,49,43,.18);}
.stage .dots i.on{background:var(--accent);}

/* ---- phone menu, 7 Oct ---- */
.nav-actions{display:flex;align-items:center;gap:12px;}
.menu-btn{display:none;width:44px;height:44px;border:0;background:transparent;padding:10px;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;}
.menu-btn span{display:block;height:1.5px;background:var(--white);transition:transform .3s,opacity .3s,background .3s;}
body:not(.over) .menu-btn span,body.over nav.site-nav.scrolled .menu-btn span{background:var(--ink);}
.drawer-overlay{position:fixed;inset:0;background:rgba(36,64,45,.45);z-index:30;opacity:0;transition:opacity .35s;}
.drawer-overlay.show{opacity:1;}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(86vw,380px);background:var(--cream);z-index:31;padding:24px 28px 40px;padding-top:calc(24px + env(safe-area-inset-top,0px));display:flex;flex-direction:column;gap:28px;transform:translateX(102%);transition:transform .45s var(--ease);box-shadow:-20px 0 60px rgba(20,36,26,.2);overflow-y:auto;}
.drawer.open{transform:none;}
.drawer-top{display:flex;align-items:center;justify-content:space-between;}
.drawer-top .brand{font-family:var(--display);font-size:1.25rem;color:var(--ink);}
.drawer-close{width:44px;height:44px;border:0;background:transparent;font-size:30px;line-height:1;color:var(--ink);cursor:pointer;}
.drawer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.drawer-links a{display:block;padding:14px 0;border-top:1px solid var(--line);font-family:var(--display);font-size:1.6rem;font-weight:300;color:var(--ink);text-decoration:none;}
.drawer-links li:last-child a{border-bottom:1px solid var(--line);}
.drawer .btn{align-self:flex-start;}
.drawer-foot{font-size:14px;color:var(--ink-dim);margin-top:auto;}
body.menu-open{overflow:hidden;}
@media (max-width:860px){
  nav.site-nav .links{display:none;}
  nav.site-nav .btn.sm{display:none;}
  .menu-btn{display:flex;}
  nav.site-nav .wrap{flex-wrap:nowrap;padding-block:12px;}
}
@media (prefers-reduced-motion:reduce){.drawer,.drawer-overlay{transition:none;}}

/* ---- hero CTA in fireweed (Ema, 7 Oct): the green button was lost on the green video ---- */
.video-hero .ctas .btn:not(.ghost){background:var(--accent);border-color:var(--accent);color:var(--white);}
.video-hero .ctas .btn:not(.ghost):hover{background:#A3566B;border-color:#A3566B;}

/* ---- gatherings: phone layout for the key dates, and the gatherings page (7 Oct) ---- */
@media (max-width:860px){
  .ev{grid-template-columns:1fr;gap:6px;padding:20px 0;}
  .ev .when{font-size:1.15rem;white-space:normal;}
  .ev .what{font-size:1.35rem;}
  .ev .len{font-size:12px;}
  .ev:hover{padding-left:0;}
  .events-section .ctas .btn{width:100%;text-align:center;}
}
.events2{display:flex;flex-direction:column;}
.ev2{display:grid;grid-template-columns:minmax(220px,.4fr) 1.6fr;gap:24px;padding:32px 0;border-top:1px solid var(--line);}
.ev2:last-child{border-bottom:1px solid var(--line);}
.ev2 .when{font-family:var(--display);font-size:clamp(1.4rem,2.6vw,2rem);font-weight:300;color:var(--accent);line-height:1.15;}
.ev2 h3{font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.1;margin-bottom:10px;}
.ev2 p{color:var(--ink-mid);margin-bottom:10px;}
.ev2 .len{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);}
@media (max-width:860px){.ev2{grid-template-columns:1fr;gap:8px;padding:24px 0;}}

/* ---- moving leaves and flowers inside the step boxes (Ema, 7 Oct) ---- */
.trio.seq .tri{position:relative;overflow:hidden;}
.trio.seq .tri>*:not(.flora){position:relative;z-index:1;}
.trio.seq .tri .flora{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:0;transition:opacity 1.6s ease .2s;pointer-events:none;}
.trio.seq .tri.on .flora{opacity:.75;}
.flora .fl{transform-box:fill-box;transform-origin:50% 100%;animation:leaf-sway 7s ease-in-out infinite alternate;animation-play-state:paused;}
.trio.seq .tri.on .flora .fl{animation-play-state:running;}
.flora .l2{animation-duration:9s;animation-delay:-2s;} .flora .l3{animation-duration:8s;animation-delay:-4s;} .flora .l4{animation-duration:6.5s;animation-delay:-1s;} .flora .l5{animation-duration:10s;animation-delay:-5s;}
.flora .f1,.flora .f2,.flora .f3,.flora .f4{transform-origin:50% 50%;animation:flower-drift 11s ease-in-out infinite alternate;}
.flora .f2{animation-duration:13s;animation-delay:-6s;} .flora .f3{animation-duration:9s;animation-delay:-3s;} .flora .f4{animation-duration:12s;animation-delay:-8s;}
@keyframes leaf-sway{from{transform:rotate(-6deg) translateY(0)}to{transform:rotate(6deg) translateY(-6px)}}
@keyframes flower-drift{0%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(-10px,-14px) rotate(20deg)}100%{transform:translate(8px,-6px) rotate(-12deg)}}
@media (prefers-reduced-motion:reduce){.flora .fl{animation:none;} .trio.seq .tri .flora{opacity:.6;}}
.trio.seq .tri b .w{display:inline-block;will-change:opacity,transform;}
@media (prefers-reduced-motion:reduce){.trio.seq .tri b .w{opacity:1!important;transform:none!important;letter-spacing:0!important;}}

/* ---- stay connected page (7 Oct) ---- */
.calendly-inline-widget{width:100%;max-width:960px;border:1px solid var(--line);background:var(--cream);}
#book .stack{gap:24px;}
#list-section .connect{align-items:start;}
form.list{position:relative;}
/* step titles, larger (Ema, 7 Oct) */
.trio.seq .tri b{font-size:clamp(2.4rem,5.6vw,4.4rem);line-height:1.02;letter-spacing:-.02em;}
.trio.seq .tri span:not(.n){font-size:clamp(1.1rem,1.8vw,1.4rem);}
.trio.seq{min-height:clamp(340px,48vh,480px);}
/* step titles, larger again (Ema, 7 Oct) */
.trio.seq .tri b{font-size:clamp(2.8rem,7.4vw,6rem);line-height:.98;letter-spacing:-.025em;}
.trio.seq{grid-template-columns:minmax(0,1080px);min-height:clamp(380px,54vh,540px);}
.trio.seq .tri{gap:18px;}
/* the title's word spans were picking up the small copy size from ".tri span"; make them inherit the title */
.trio.seq .tri b .w{font-size:inherit;color:inherit;max-width:none;line-height:inherit;}

/* ---- 7 Oct evening: nav on one row; the steps stage fits short screens ---- */
nav.site-nav .wrap{flex-wrap:nowrap;max-width:1280px;}
nav.site-nav .links{flex-wrap:nowrap;gap:4px clamp(12px,1.5vw,22px);white-space:nowrap;font-size:12.5px;}
nav.site-nav .btn.sm{white-space:nowrap;}
@media (max-width:1180px){
  nav.site-nav .links,nav.site-nav .btn.sm{display:none;}
  .menu-btn{display:flex;}
  nav.site-nav .wrap{padding-block:12px;}
}
.stage .stage-inner{padding-top:72px;}
.stage .wrap{gap:clamp(12px,2vh,22px);}
.trio.seq{min-height:clamp(250px,40vh,480px);margin-top:clamp(8px,2vh,28px);}
.trio.seq .tri{padding-block:clamp(24px,4.5vh,64px);gap:clamp(10px,1.6vh,18px);}
.trio.seq .tri b{font-size:clamp(2.4rem,min(7.4vw,10vh),6rem);}
@media (max-height:760px){.stage .lead{display:none;} .stage .big{font-size:clamp(1.7rem,4vw,2.6rem);}}
/* the box texture: the mossy rock at the foot of the photo, not the figure */
.trio.seq .tri,.trio.seq .tri.on,.dk{background:linear-gradient(120deg,rgba(28,52,36,.9),rgba(36,64,45,.8) 60%,rgba(28,52,36,.9)),url(/assets/img/tex-moss.jpg) 30% 100%/240% auto;}

/* ---- 7 Oct evening: inner pages in the v1 look. Hero over a nature close-up with the portrait at its own size,
   large statements, long copy in a reading column beside a pinned heading, dark moss cards, large-type rows ---- */
.page-hero{position:relative;overflow:hidden;isolation:isolate;color:var(--white);min-height:min(88vh,860px);display:flex;align-items:flex-end;background:var(--forest-deep);}
.page-hero .bg{position:absolute;inset:-12% 0;background-size:cover;background-position:center;transform:scale(1.15);will-change:transform;z-index:-2;filter:saturate(.85);}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,rgba(28,52,36,.93) 0%,rgba(36,64,45,.8) 50%,rgba(36,64,45,.55) 100%);}
.page-hero .wrap{width:100%;display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,5vw,80px);align-items:end;padding-block:150px clamp(56px,7vw,96px);}
.page-hero.solo .wrap{grid-template-columns:1fr;}
.page-hero .hero-text{gap:22px;}
.page-hero .eyebrow{color:#E7CBD4;margin-bottom:0;}
.page-hero .giant{color:var(--white);font-size:clamp(2.6rem,6.6vw,5.4rem);max-width:13ch;}
.page-hero .sub{color:#E3EBE2;font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:46ch;}
.page-hero .btn:not(.ghost){background:var(--accent);border-color:var(--accent);}
.page-hero .btn:not(.ghost):hover{background:#A3566B;border-color:#A3566B;}
.page-hero .btn.ghost{color:var(--white);border-color:rgba(255,255,255,.7);}
.page-hero .btn.ghost:hover{background:var(--white);color:var(--forest-deep);}
.ph-photo{position:relative;overflow:hidden;aspect-ratio:4/5;max-width:400px;width:100%;justify-self:end;border-radius:2px;box-shadow:0 40px 80px -40px rgba(10,20,14,.8);}
.ph-photo.wide{aspect-ratio:3/2;max-width:520px;}
.ph-photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);transition:transform 2.4s var(--ease);}
.ph-photo.in img{transform:scale(1);}
.ph-photo .sequence{position:absolute;inset:0;}
.ph-photo .sequence img{object-position:50% 40%;transition:none;}

.sec{padding-block:clamp(80px,11vw,150px);}
.sec.white{background:var(--white);}
.sec>.wrap.col{display:flex;flex-direction:column;gap:26px;}
.split2{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,96px);align-items:start;}
.split2>.head{position:sticky;top:120px;display:flex;flex-direction:column;gap:18px;}
.prose{display:flex;flex-direction:column;gap:22px;}
.prose p{font-size:1.08rem;}
.prose .lead{color:var(--ink);}
.prose h3{font-size:clamp(1.5rem,2.6vw,2rem);margin-top:18px;}
.full-bleed .quote-giant{color:var(--white);max-width:24ch;}
.full-bleed.soft{padding-block:clamp(96px,13vw,180px);}

.rows{list-style:none;margin:0;padding:0;}
.rows li{border-top:1px solid var(--line);padding:22px 0;font-family:var(--display);font-weight:300;font-size:clamp(1.3rem,2.5vw,1.95rem);line-height:1.15;transition:padding .4s var(--ease),color .3s;}
.rows li:last-child{border-bottom:1px solid var(--line);}
.rows li:hover{padding-left:16px;color:var(--forest);}
.rows li span{display:block;font-family:var(--body);font-weight:400;font-size:15.5px;line-height:1.6;color:var(--ink-mid);margin-top:8px;max-width:58ch;}
.rows li em{font-style:normal;display:block;font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
.rows.two-col{display:grid;grid-template-columns:1fr 1fr;column-gap:48px;}
.rows.two-col li:nth-last-child(2){border-bottom:1px solid var(--line);}

.cards-dark{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;}
.dk{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:300px;color:var(--white);border-radius:4px;padding:clamp(28px,3.4vw,44px);box-shadow:0 30px 60px -30px rgba(20,36,26,.55);transition:box-shadow .8s ease,transform .5s var(--ease),opacity .9s var(--ease);}
.dk:hover{box-shadow:0 0 80px 8px rgba(185,102,124,.3),0 30px 60px -30px rgba(20,36,26,.55);transform:translateY(-4px);}
.dk .n{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;transition:background-color .5s,box-shadow .8s;}
.dk:hover .n{background:var(--accent);box-shadow:0 0 30px 6px rgba(185,102,124,.5);}
.dk .tag{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#E7CBD4;}
.dk b{font-family:var(--display);font-weight:300;font-size:clamp(1.7rem,2.6vw,2.3rem);line-height:1.06;letter-spacing:-.015em;}
.dk p{color:#DCE5D8;font-size:1.02rem;}
.dk ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;color:#DCE5D8;font-size:1rem;}
.dk .btn{align-self:flex-start;margin-top:auto;background:var(--white);color:var(--forest-deep);border-color:var(--white);}

.band.px{position:relative;height:clamp(300px,52vw,620px);overflow:hidden;}
.band.px .bg{position:absolute;inset:-14% 0;background-size:cover;background-position:50% 40%;transform:scale(1.15);will-change:transform;}
.facts.lg{gap:0 32px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.facts.lg .fact{padding:20px 0;}
.facts.lg .fact span{font-family:var(--display);font-weight:300;font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.2;}
.pair .photo{aspect-ratio:4/5;}
.pair .photo.empty{display:flex;align-items:flex-end;padding:20px;background:var(--sage-soft);color:var(--forest-deep);font-family:var(--display);font-size:1.4rem;}
.person h3{font-size:clamp(1.5rem,2.6vw,2rem);}
form.apply input,form.apply textarea{border:0;border-bottom:1px solid var(--ink);background:transparent;padding:12px 2px;font-size:16px;}
footer.site-footer .wrap{gap:12px 28px;}
@media (max-width:860px){
  .page-hero{min-height:0;}
  .page-hero .wrap,.split2,.rows.two-col{grid-template-columns:1fr;}
  .page-hero .wrap{padding-block:120px 48px;}
  .ph-photo{justify-self:start;max-width:320px;}
  .split2>.head{position:static;}
  .rows.two-col li:nth-last-child(2){border-bottom:0;}
  .rows li:hover{padding-left:0;}
  .dk{min-height:0;}
}
@media (prefers-reduced-motion:reduce){.page-hero .bg,.band.px .bg{transform:none;} .ph-photo img{transform:none;transition:none;} .dk,.dk:hover{transform:none;}}
.photo.side{max-width:340px;margin-top:10px;}
@media (max-width:860px){.photo.side{aspect-ratio:4/5;max-width:300px;}}
html{scroll-padding-top:90px;}
/* the header booking button stays hidden while the hero is on screen and fades in once it has scrolled away (Ema, 7 Oct evening) */
body.over nav.site-nav .btn.sm{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s,visibility .4s,background .3s,color .3s,border-color .3s;}
body.over nav.site-nav.scrolled .btn.sm{opacity:1;visibility:visible;pointer-events:auto;}

/* ---- 7 Oct evening, Ema's second round (reference: palominoprod.com/en) ---- */
/* menu bar on scroll: see-through glass with no solid bar, type a little larger. The glass blurs and dims whatever is behind it so the
   white type reads over both the cream sections and the photos (a fully clear bar was unreadable over mid-tone photos) */
nav.site-nav .links,nav.site-nav .brand{transition:font-size .4s var(--ease),color .3s;}
body.over nav.site-nav.scrolled{background:rgba(36,64,45,.16);backdrop-filter:blur(14px) brightness(.55);-webkit-backdrop-filter:blur(14px) brightness(.55);border-bottom:0;}
body.over nav.site-nav.scrolled .brand,body.over nav.site-nav.scrolled .links a{color:#fff;}
body.over nav.site-nav.scrolled .brand{font-size:1.5rem;}
body.over nav.site-nav.scrolled .links{font-size:14.5px;}
body.over nav.site-nav.scrolled .btn.sm{background:transparent;color:#fff;border-color:rgba(255,255,255,.8);font-size:13.5px;}
body.over nav.site-nav.scrolled .btn.sm:hover{background:#fff;color:var(--forest-deep);}
body.over nav.site-nav.scrolled .menu-btn span{background:#fff;}

/* home hero title: larger, the two lines pushed to opposite sides */
.video-hero .hero-text{width:100%;}
.video-hero .giant{max-width:none;font-size:clamp(3.2rem,min(12.5vw,19vh),10rem);line-height:.94;}
.video-hero .giant .hl{display:block;width:fit-content;will-change:transform;}
.video-hero .giant .hl:nth-child(2){margin-left:auto;}

/* page-load intro on the home page: a drawn frame with her name, a dot, then a circle opens from the centre onto the hero and the menu fades in */
@property --hole{syntax:"<length>";inherits:false;initial-value:0px;}
.intro{position:fixed;inset:0;z-index:100;background:var(--cream);
  -webkit-mask:radial-gradient(circle at 50% calc(50% - 34px),transparent var(--hole),#000 calc(var(--hole) + 1px));
  mask:radial-gradient(circle at 50% calc(50% - 34px),transparent var(--hole),#000 calc(var(--hole) + 1px));
  animation:intro-hole 1.5s cubic-bezier(.75,0,.2,1) 2.7s forwards,intro-gone .01s 4.2s forwards;}
.intro .l{position:absolute;background:var(--ink);}
/* the outer frame, then two upright lines that close off a narrow rectangle at each side; every line fades before the circle opens */
.intro .t{top:24px;left:24px;right:24px;height:1px;transform:scaleX(0);transform-origin:left;animation:draw-x .9s var(--ease) .1s forwards,line-fade .5s ease 2.1s forwards;}
.intro .r{top:24px;right:24px;bottom:24px;width:1px;transform:scaleY(0);transform-origin:top;animation:draw-y .9s var(--ease) .3s forwards,line-fade .5s ease 2.1s forwards;}
.intro .b{bottom:24px;left:24px;right:24px;height:1px;transform:scaleX(0);transform-origin:right;animation:draw-x .9s var(--ease) .5s forwards,line-fade .5s ease 2.1s forwards;}
.intro .lf{top:24px;left:24px;bottom:24px;width:1px;transform:scaleY(0);transform-origin:bottom;animation:draw-y .9s var(--ease) .7s forwards,line-fade .5s ease 2.1s forwards;}
.intro .v1{top:24px;bottom:24px;left:calc(24px + 18%);width:1px;transform:scaleY(0);transform-origin:top;animation:draw-y .9s var(--ease) .9s forwards,line-fade .5s ease 2.1s forwards;}
.intro .v2{top:24px;bottom:24px;right:calc(24px + 18%);width:1px;transform:scaleY(0);transform-origin:bottom;animation:draw-y .9s var(--ease) 1.05s forwards,line-fade .5s ease 2.1s forwards;}
@keyframes line-fade{to{opacity:0}}
.intro-name{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;font-family:var(--display);font-weight:300;font-size:clamp(1.5rem,3.2vw,2.4rem);color:var(--ink);opacity:0;letter-spacing:.22em;animation:intro-name 1.3s var(--ease) .4s forwards;}
.intro-dot{position:absolute;left:50%;top:calc(50% - 34px);width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--accent);transform:scale(0);animation:intro-dot .6s var(--ease) 2s forwards;}
@keyframes draw-x{to{transform:scaleX(1)}}
@keyframes draw-y{to{transform:scaleY(1)}}
@keyframes intro-name{to{opacity:1;letter-spacing:.04em}}
@keyframes intro-dot{60%{transform:scale(1.5)}100%{transform:scale(1)}}
@keyframes intro-hole{to{--hole:150vmax}}
@keyframes intro-gone{to{visibility:hidden}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
html:not(.no-intro) body.home nav.site-nav{animation:fade-in 1.1s ease 3.5s both;}
html:not(.no-intro) body.home .video-hero .hero-text{transition-delay:3.4s!important;}
html:not(.no-intro) body.home .scroll-cue{animation:fade-in 1s ease 4.1s both;}
.no-intro .intro{display:none;}

/* a heart in a soft bubble that follows the pointer (desktop only) */
.heart-bubble{position:fixed;left:0;top:0;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;pointer-events:none;z-index:90;opacity:0;
  background:rgba(244,228,233,.6);border:1px solid rgba(185,102,124,.45);box-shadow:0 0 22px 2px rgba(185,102,124,.28);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  transition:opacity .5s;will-change:transform;}
.heart-bubble.show{opacity:1;}
.heart-bubble svg{width:16px;height:16px;fill:var(--accent);animation:heart-beat 1.8s ease-in-out infinite;transition:transform .3s;}
@keyframes heart-beat{0%,100%{transform:scale(1)}40%{transform:scale(1.18)}}
.page-hero.solo .giant{max-width:16ch;}
.page-hero.solo{min-height:min(76vh,720px);}

/* ---- page to page (Ema, 7 Oct evening): the page you leave folds back, hinged at the top of the screen, and the page you arrive on folds forward, hinged at the bottom ---- */
html.fold-out body,html.fold-in body{background:var(--forest-deep);}
html.fold-out main{transform-origin:50% var(--fold-y,0px);animation:fold-out .6s cubic-bezier(.6,0,.8,.4) forwards;}
html.fold-in main{transform-origin:50% 100vh;animation:fold-in .9s var(--ease) both;}
html.fold-out footer.site-footer{opacity:0;}
html.fold-out nav.site-nav,html.fold-in nav.site-nav{transition:opacity .4s;}
html.fold-out nav.site-nav{opacity:0;}
@keyframes fold-out{to{transform:perspective(1400px) rotateX(-42deg) scale(.9);opacity:0;}}
@keyframes fold-in{from{transform:perspective(1400px) rotateX(42deg) scale(.9);opacity:0;}to{transform:perspective(1400px) rotateX(0) scale(1);opacity:1;}}
html.fold-in body.home main{animation:none;} html.fold-in body.home{background:var(--cream);}

/* ---- phone menu (Ema, 7 Oct evening): textured green ground; a plain list; the wheel was removed 8 Oct, the glow stays ---- */
.drawer{color:var(--white);background:linear-gradient(160deg,rgba(24,46,32,.94),rgba(36,64,45,.84) 55%,rgba(24,46,32,.95)),url(/assets/img/tex-fern.jpg) center/cover;}
.drawer-top .brand,.drawer-close{color:var(--white);}
.drawer-links a{color:#DCE5D8;border-top-color:rgba(255,255,255,.14);transition:color .3s,text-shadow .5s;-webkit-tap-highlight-color:transparent;}
.drawer-links li:last-child a{border-bottom-color:rgba(255,255,255,.14);}
.drawer-links li.on a,.drawer-links a:hover,.drawer-links a:focus-visible{color:var(--white);text-shadow:0 0 14px rgba(231,150,174,.95),0 0 38px rgba(185,102,124,.75);}
.drawer-links li.tap a{animation:tap-glow .55s ease-out;}
@keyframes tap-glow{0%{text-shadow:0 0 0 rgba(231,150,174,0)}40%{text-shadow:0 0 22px rgba(255,190,208,1),0 0 70px rgba(185,102,124,1)}100%{text-shadow:0 0 14px rgba(231,150,174,.95),0 0 38px rgba(185,102,124,.75)}}
.drawer .btn{background:var(--accent);border-color:var(--accent);}
.drawer-foot{color:#C9D6CB;}

/* ---- 13 Oct 2026: immersion page, less text (Ema: "very text heavy") ----
   .glance  the year at a glance, a dark strip under the hero
   .more    a details block: the short version shows, the longer copy opens in place
   .timeline  opening retreat, the year between, closing retreat on one line
   .explore  the explore rows beside the "leave with" card */
.glance{background:var(--forest-deep);color:var(--white);padding-block:clamp(38px,5vw,66px);}
.glance .wrap{display:grid;grid-template-columns:repeat(6,1fr);gap:0 26px;}
.glance .wrap>div{border-top:1px solid rgba(255,255,255,.24);padding-top:16px;}
.glance b{display:block;font-family:var(--display);font-weight:300;font-size:clamp(1.3rem,1.9vw,1.75rem);line-height:1.1;letter-spacing:-.01em;}
.glance span{display:block;margin-top:8px;font-size:13.5px;line-height:1.5;color:#DCE5D8;}
details.more{border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:64ch;}
details.more summary{cursor:pointer;list-style:none;padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--forest);}
details.more summary::-webkit-details-marker{display:none;}
details.more summary::after{content:"+";font-size:20px;font-weight:400;letter-spacing:0;line-height:1;color:var(--accent);}
details.more[open] summary::after{content:"\2013";}
details.more summary:hover{color:var(--accent);}
details.more[open] .c,details.more:not([open]) .o{display:none;}
.more-body{display:flex;flex-direction:column;gap:20px;padding:4px 0 24px;}
.more-body p{font-size:1.04rem;color:var(--ink-mid);}
.timeline{position:relative;display:grid;grid-template-columns:1fr 1.8fr 1fr;gap:clamp(22px,3.4vw,52px);padding-top:40px;margin-top:10px;}
.timeline::before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:var(--sage);}
.stop{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;}
.stop::before{content:"";position:absolute;top:-40px;left:0;width:15px;height:15px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px var(--accent-soft);}
.stop .when{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
.stop h3{font-size:clamp(1.6rem,2.8vw,2.3rem);line-height:1.05;}
.stop p{color:var(--ink-mid);font-size:1rem;}
.stop ul{list-style:none;margin:6px 0 0;padding:0;}
.stop li{border-top:1px solid var(--line);padding:13px 0;}
.stop li b{display:block;font-family:var(--display);font-weight:300;font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.2;}
.stop li span{display:block;font-size:14.5px;color:var(--ink-mid);margin-top:3px;}
.explore{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(32px,5vw,80px);align-items:start;}
.explore .big{margin-bottom:26px;}
.explore .dk{position:sticky;top:120px;min-height:0;}
@media (max-width:1100px){.glance .wrap{grid-template-columns:repeat(3,1fr);row-gap:28px;}}
@media (max-width:860px){
  .explore{grid-template-columns:1fr;} .explore .dk{position:static;}
  .timeline{grid-template-columns:1fr;padding-top:0;padding-left:34px;gap:36px;}
  .timeline::before{left:7px;right:auto;top:6px;bottom:0;width:1px;height:auto;}
  .stop::before{top:4px;left:-34px;}
}
@media (max-width:560px){.glance .wrap{grid-template-columns:1fr 1fr;}}

/* ---- 13 Oct 2026: Continuum page (Ema: "too much text... more animation to make the scroll feel interactive")
   .read   a pinned line over the water close-up whose words light up one by one as you scroll
   (the inner block is .pin, not .sticky: the old .sticky rule sits at top:90px and goes static under 860px)
   .film   the five movement photos, scrubbed by scrolling instead of a timed crossfade
   the four steps reuse the pinned .stage from the old home page; the timeline and rows are shared parts */
.read{position:relative;height:220vh;padding:0;background:var(--forest-deep);color:var(--white);clip-path:inset(0);}
.read .pin{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;overflow:hidden;}
.read .bg{position:absolute;inset:-12% 0;background-size:cover;background-position:center;opacity:.38;transform:scale(1.15);will-change:transform;}
.read .pin::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(36,64,45,.55),rgba(36,64,45,.15));}
.read .wrap{position:relative;}
.read p{margin:0;font-family:var(--display);font-weight:300;font-size:clamp(1.9rem,4.6vw,4rem);line-height:1.12;letter-spacing:-.015em;max-width:24ch;}
.read .w{opacity:.2;transition:opacity .35s ease;}
.read .w.on{opacity:1;}
.photo.side.wide{max-width:440px;aspect-ratio:16/10;}
.film{position:relative;height:320vh;padding:0;background:var(--forest-deep);}
.film .pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;}
.film .frames img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 35%;opacity:0;will-change:opacity,transform;}
.film .frames img:first-child{opacity:1;}
.film .veil{position:absolute;inset:0;background:linear-gradient(to top,rgba(36,64,45,.85),rgba(36,64,45,.25) 50%,rgba(36,64,45,.05));}
.film .text{position:absolute;left:0;right:0;bottom:clamp(44px,9vh,100px);color:var(--white);}
.film .text .eyebrow{color:#E7CBD4;margin-bottom:12px;}
.film .text .giant{margin:0;color:var(--white);font-size:clamp(2.6rem,7vw,6rem);}
.film .bar{margin-top:26px;height:1px;background:rgba(255,255,255,.25);max-width:420px;}
.film .bar i{display:block;height:100%;width:0;background:var(--accent);box-shadow:0 0 14px 2px rgba(185,102,124,.5);}
.timeline.even{grid-template-columns:1fr 1fr 1fr;}
@media (max-width:860px){.timeline.even{grid-template-columns:1fr;} .read{height:180vh;} .film{height:260vh;}}
@media (prefers-reduced-motion:reduce){
  .read{height:auto;} .read .pin{position:static;height:auto;padding-block:clamp(96px,14vw,180px);} .read .w{opacity:1;}
  .film{height:auto;} .film .pin{position:static;height:72vh;} .film .bar{display:none;}
}

/* ---- 13 Oct 2026, later: Continuum fixes (Ema) ----
   no visible edge between the hero and the water line: the hero fades to solid forest green at its foot and the
   pinned block fades in from the same green; the step panels are smaller, titled at the section-title size, numberless,
   and sit on a slow water clip (one <video> in the grid cell behind the stacked panels, faded with the active panel) */
body.page-continuum .page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;z-index:-1;background:linear-gradient(to bottom,rgba(36,64,45,0),var(--forest-deep));}
.read .pin::after{content:"";position:absolute;left:0;right:0;top:0;height:46%;background:linear-gradient(to bottom,var(--forest-deep),rgba(36,64,45,0));pointer-events:none;}
.read .wrap{z-index:1;}
.stage .trio.seq{grid-template-columns:minmax(0,600px);min-height:clamp(160px,22vh,210px);margin-top:clamp(8px,2vh,24px);}
.stage .trio.seq .tri{padding:clamp(20px,3vh,30px) clamp(24px,3vw,40px);gap:8px;position:relative;z-index:1;background:none;justify-content:center;}
.stage .trio.seq .tri.on{background:none;}
.stage .trio.seq .tri .n{display:none;}
.stage .trio.seq .tri b{font-size:clamp(2rem,5.2vw,3.9rem);line-height:1.06;letter-spacing:-.02em;}
.stage .trio.seq .tri>span:not(.n){font-size:clamp(1rem,1.3vw,1.12rem);max-width:52ch;}
.stage .trio.seq .water{grid-area:1/1;position:relative;overflow:hidden;border-radius:4px;opacity:0;z-index:0;background:var(--forest-deep);}
.stage .trio.seq .water video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.45) brightness(.62);}
.stage .trio.seq .water::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(28,52,36,.72),rgba(36,64,45,.5) 60%,rgba(28,52,36,.7));}
@media (prefers-reduced-motion:reduce){.stage .trio.seq .water{display:none;} .stage .trio.seq .tri,.stage .trio.seq .tri.on{background:linear-gradient(120deg,rgba(28,52,36,.9),rgba(36,64,45,.8));}}

/* ---- 13 Oct 2026, evening: the same feel on every page (Ema: "make all of the pages sync with this feedback")
   .progress   a thin fireweed line under the top edge showing how far down the page you are
   .words      headings whose words rise one after another as they come into view (site.js wraps the words)
   hero drift  the page-hero text slides up and fades as you scroll away from it (site.js)
   photo settle  framed photos settle from a slight zoom as they appear
   .marquee    a slow ticker of what Robyn facilitates (about page)
   .timeline.four  the gatherings as four stops on one line */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:21;pointer-events:none;}
.progress i{display:block;height:100%;width:0;background:var(--accent);box-shadow:0 0 10px 1px rgba(185,102,124,.45);}
.words .wd{display:inline-block;opacity:0;transform:translateY(.55em) rotate(1.2deg);transition:opacity .8s var(--ease),transform .95s var(--ease);transition-delay:calc(var(--i)*65ms);will-change:opacity,transform;}
.reveal.in .words .wd,.words.reveal.in .wd{opacity:1;transform:none;}
h2.big.words.reveal,h2.giant.words.reveal{opacity:1;transform:none;}
.page-hero .wrap{will-change:transform,opacity;}
.photo.side.reveal img{transform:scale(1.1);transition:transform 1.8s var(--ease);}
.photo.side.reveal.in img{transform:scale(1);}
.dk.reveal.in{animation:dkglow 2.4s ease-out;}
@keyframes dkglow{35%{box-shadow:0 0 70px 10px rgba(185,102,124,.32),0 30px 60px -30px rgba(20,36,26,.55);}}
.facilitate .marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin:10px 0 34px;}
.facilitate .track{display:flex;align-items:center;width:max-content;animation:ticker 48s linear infinite;}
.facilitate .track:hover{animation-play-state:paused;}
.facilitate .track span{font-family:var(--display);font-weight:300;font-size:clamp(1.7rem,3.4vw,2.8rem);letter-spacing:-.015em;white-space:nowrap;padding:0 22px;}
.facilitate .track i{font-style:normal;color:var(--accent);font-size:1.6rem;}
@keyframes ticker{to{transform:translateX(-50%);}}
.timeline.four{grid-template-columns:repeat(4,1fr);}
.stop .len{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-top:4px;}
@media (max-width:1100px){.timeline.four{grid-template-columns:1fr 1fr;row-gap:48px;} .timeline.four .stop::before{top:-40px;}}
@media (max-width:860px){.timeline.four{grid-template-columns:1fr;} .timeline.four .stop::before{top:4px;}}
@media (prefers-reduced-motion:reduce){
  .progress{display:none;} .words .wd{opacity:1;transform:none;transition:none;} .photo.side.reveal img{transform:none;transition:none;}
  .dk.reveal.in{animation:none;} .facilitate .track{animation:none;flex-wrap:wrap;width:auto;row-gap:10px;} .facilitate .track span:nth-child(n+17),.facilitate .track i:nth-child(n+17){display:none;}
}

/* 21 Oct 2026: contact form (replaces the Calendly embed) */
form.contact{max-width:820px;margin-top:8px;}
form.contact select{border:0;border-bottom:1px solid var(--ink);background:transparent;padding:12px 2px;font-size:16px;font-family:var(--body);color:var(--ink);border-radius:0;}
form.contact .thanks{grid-column:1/-1;margin:0;}
form.contact .hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden;}

/* 21 Oct 2026, later: immersion page in Robyn's order */
.three-lists{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.three-lists .dk{min-height:0;}
.three-lists .dk ul{font-size:.98rem;line-height:1.5;}
.rows.steps{margin-top:36px;}
.person p a{color:var(--forest);font-weight:600;}
.pair.guides details.more{max-width:none;margin-top:auto;}
.pair.guides .more-body p{font-size:15.5px;}
.faq details.more{max-width:none;}
.faq details.more+details.more{border-top:0;}
.faq details.more summary{text-transform:none;letter-spacing:0;font-size:17px;font-weight:600;color:var(--ink);}
.faq details.more summary:hover{color:var(--forest);}
.faq .more-body p{max-width:64ch;}

/* 21 Oct 2026: videos in the home panels (Ema: water ripples for Sessions, misty clouds for the immersion) */
.panel video{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 2.2s var(--ease);}
.panel.seen video{transform:scale(1);}
@media (prefers-reduced-motion:reduce){.panel video{transform:none;transition:none;}}
.photo video{display:block;width:100%;height:100%;object-fit:cover;}
.photo.side.reveal video{transform:scale(1.1);transition:transform 1.8s var(--ease);}
.photo.side.reveal.in video{transform:scale(1);}
@media (prefers-reduced-motion:reduce){.photo.side.reveal video{transform:none;transition:none;}}
