/* Layout: full-bleed color-blocked bands (cream, blush, burgundy) in the Goldenrod style. Wide-tracked caps headings with script lead-ins,
   marquee tickers between sections, arch-framed photos, lines that run into pill buttons. Single committed light look. */
:root{
  --cream:#F7EEE7;
  --blush:#EED8D1;
  --rose:#D9A9A2;
  --burgundy:#7A1A2B;
  --wine:#4A0D19;
  --gold:#C69A4C;
  --ink:#3A1A20;
  --soft:#7C5A5F;
  --white:#FFFDFB;
  --font-wide:"Syncopate","Arial Black",Arial,sans-serif;
  --font-script:"Rochester","Brush Script MT",cursive;
  --font-body:"Jost","Futura","Century Gothic",system-ui,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.7}
.wrap{max-width:72rem;margin-inline:auto;padding-inline:clamp(16px,4vw,48px)}
a{color:inherit}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
h1,h2,h3{margin:0;font-weight:700;text-wrap:balance}
p{margin:0}

/* type system */
.wide{font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.08em;line-height:1.15}
.title{display:grid;gap:0;margin-bottom:clamp(1.4rem,3vw,2rem)}
.title .lead{font-family:var(--font-script);font-weight:400;font-size:clamp(2rem,4vw,2.8rem);line-height:.8;color:var(--burgundy);margin-left:-.1em}
.title h2{font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.06em;font-size:clamp(1.5rem,3.6vw,2.5rem);line-height:1.1;margin-left:clamp(1.2rem,4vw,2.6rem);color:var(--ink)}
.title.center{justify-items:center;text-align:center}
.title.center h2{margin-left:0}
.caps{text-transform:uppercase;letter-spacing:.09em;font-size:.86rem;line-height:1.95;text-align:justify;hyphens:auto}
.label{font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:var(--soft)}

/* pills and line-into-pill links */
.pill{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:700;padding:.85rem 1.5rem;border-radius:999px;text-decoration:none;border:0;cursor:pointer;background:var(--blush);color:var(--wine);transition:background .3s,color .3s,transform .3s var(--ease)}
.pill:hover{background:var(--burgundy);color:var(--white);transform:translateY(-2px)}
.pill.dark{background:var(--burgundy);color:var(--white)}
.pill.dark:hover{background:var(--wine)}
.pill.light{background:var(--white);color:var(--burgundy)}
.pill.light:hover{background:var(--gold);color:var(--wine)}
.line-link{display:flex;align-items:center;gap:1rem;margin-top:2rem}
.line-link::before{content:"";flex:1;height:1px;background:var(--gold);transform-origin:left;transition:transform 1.1s var(--ease)}
.line-link.pre::before{transform:scaleX(0)}
.line-link.right{flex-direction:row-reverse}
.line-link.right::before{transform-origin:right}

/* announcement bar + header */
.announce{background:var(--wine);color:var(--blush);text-align:center;font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.3em;font-size:.62rem;padding-block:.55rem;padding-inline:16px}
.announce a{text-decoration:none}
.announce a:hover{color:var(--white)}
.topbar{position:absolute;left:0;right:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(16px,4vw,48px)}
.wordmark{font-family:var(--font-wide);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.66rem;line-height:1.5;color:var(--white);text-decoration:none}
.wordmark:hover{color:var(--blush)}
.topbar .brand img{width:clamp(54px,7vw,72px);height:auto;border-radius:50%;display:block;box-shadow:0 6px 20px -8px rgba(0,0,0,.4)}
.menu-btn{font-family:var(--font-wide);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:var(--wine);background:var(--blush);border:0;cursor:pointer;padding:.9rem 1.2rem;border-radius:58% 42% 55% 45% / 50% 60% 40% 50%;transition:border-radius .6s var(--ease),background .3s}
.menu-btn:hover{border-radius:42% 58% 45% 55% / 60% 40% 60% 40%;background:var(--white)}

/* menu overlay */
.menu{position:fixed;inset:0;z-index:60;background:var(--burgundy);color:var(--white);display:grid;place-items:center;padding:calc(2rem + env(safe-area-inset-top,0px)) 16px calc(2rem + env(safe-area-inset-bottom,0px));clip-path:circle(0% at calc(100% - 3.5rem) 3.5rem);transition:clip-path .7s var(--ease);visibility:hidden}
.menu.open{clip-path:circle(150% at calc(100% - 3.5rem) 3.5rem);visibility:visible}
.menu ul{list-style:none;margin:0;padding:0;display:grid;gap:clamp(.6rem,2vh,1.2rem);text-align:center}
.menu li{opacity:0;transform:translateY(16px);transition:opacity .5s,transform .5s var(--ease)}
.menu.open li{opacity:1;transform:none}
.menu a{font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.1em;font-size:clamp(1.2rem,4vw,2rem);font-weight:700;text-decoration:none;transition:color .2s}
.menu a:hover{color:var(--gold)}
.menu .close{position:absolute;top:calc(1.2rem + env(safe-area-inset-top,0px));right:clamp(16px,4vw,48px);background:var(--white);color:var(--burgundy)}
.menu .script{font-family:var(--font-script);font-size:1.8rem;color:var(--blush);margin-bottom:.4rem}

/* hero */
.hero{position:relative;background:var(--burgundy);color:var(--white);overflow:hidden;padding-top:clamp(6rem,12vw,7rem);padding-bottom:clamp(3rem,7vw,4.5rem)}
.hero::before{content:"";position:absolute;width:44rem;height:44rem;left:-18rem;bottom:-26rem;border-radius:46% 54% 60% 40% / 50% 45% 55% 50%;background:var(--wine);opacity:.55;animation:morph 18s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;width:30rem;height:30rem;right:-12rem;top:-14rem;border-radius:60% 40% 45% 55% / 55% 60% 40% 45%;background:#8E2436;opacity:.6;animation:morph 22s ease-in-out infinite alternate-reverse}
@keyframes morph{to{border-radius:40% 60% 50% 50% / 40% 55% 45% 60%;transform:rotate(25deg) scale(1.05)}}
.hero .inner{position:relative;z-index:1;display:grid;justify-items:center;text-align:center;gap:1.4rem}
.orbit-wrap{--size:clamp(15rem,52vw,22rem);width:var(--size);height:var(--size);position:relative;display:grid;place-items:center;max-width:100%}
.orbit-wrap > img{width:64%;height:64%;border-radius:50%;position:relative;z-index:1;box-shadow:0 24px 50px -24px rgba(0,0,0,.55);animation:float 6s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-6px)}}
.orbit{position:absolute;inset:0;animation:spin 34s linear infinite}
.orbit.reverse{animation-duration:48s;animation-direction:reverse}
.orbit .h{position:absolute;left:50%;top:50%;width:0;height:0;transform:rotate(var(--a)) translateY(calc(var(--size) * var(--rr) * -1))}
.orbit .h svg{position:absolute;width:var(--s);height:var(--s);left:calc(var(--s) / -2);top:calc(var(--s) / -2);fill:var(--white);opacity:var(--o,1);animation:beat 2.4s ease-in-out infinite;animation-delay:var(--dl,0s);filter:drop-shadow(0 2px 4px rgba(0,0,0,.18))}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(.95)}45%{transform:scale(1.12)}}
.hero h1{font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.08em;font-size:clamp(1.25rem,3.4vw,2.1rem);line-height:1.3;max-width:42rem}
.hero .script{font-family:var(--font-script);font-size:clamp(1.8rem,4vw,2.6rem);color:var(--blush);line-height:1;margin-top:-.3rem}
.hero .ctas{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:.4rem}

/* chevron strip */
.strip{background:var(--gold);padding-block:.9rem;padding-inline:16px;display:flex;justify-content:center;align-items:center;gap:clamp(1rem,6vw,5rem)}
.chev{display:flex;gap:.15rem;color:var(--wine);font-family:var(--font-wide);font-weight:700;font-size:1rem}
.chev span{animation:nudge 1.6s ease-in-out infinite}
.chev span:nth-child(2){animation-delay:.15s}.chev span:nth-child(3){animation-delay:.3s}
.chev.l span{animation-name:nudgeL}
@keyframes nudge{0%,100%{opacity:.35;transform:translateX(0)}50%{opacity:1;transform:translateX(4px)}}
@keyframes nudgeL{0%,100%{opacity:.35;transform:translateX(0)}50%{opacity:1;transform:translateX(-4px)}}
@media (max-width:520px){.chev{display:none}}

/* bands */
.band{padding-block:clamp(4.5rem,10vw,8rem);position:relative;overflow:hidden}
.band.cream{background:var(--cream)}
.band.blush{background:var(--blush)}
.band.burg{background:var(--burgundy);color:var(--white)}
.band.burg .title .lead{color:var(--blush)}
.band.burg .title h2{color:var(--white)}
.band.burg .label{color:var(--blush)}

/* marquee */
.marquee{overflow:hidden;background:var(--wine);color:var(--blush);padding-block:.75rem;white-space:nowrap}
.marquee.gold{background:var(--gold);color:var(--wine)}
.marquee .run{display:inline-flex;animation:marq 26s linear infinite}
.marquee .run span{font-family:var(--font-wide);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;padding-inline:.9rem;display:inline-flex;align-items:center;gap:1.8rem}
.marquee .run span::after{content:"";width:12px;height:12px;background:currentColor;clip-path:path("M6 11 C2 8 0 6 0 3.6 C0 1.6 1.5 0 3.3 0 C4.4 0 5.4 .6 6 1.5 C6.6 .6 7.6 0 8.7 0 C10.5 0 12 1.6 12 3.6 C12 6 10 8 6 11Z")}
@keyframes marq{to{transform:translateX(-50%)}}

/* meet / about */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.split.flip{grid-template-columns:.9fr 1.1fr}
.split > *{min-width:0}
@media (max-width:820px){.split,.split.flip{grid-template-columns:1fr}}
.frame{border:2px solid var(--gold);border-radius:22px;overflow:hidden;position:relative}
.frame .ph{aspect-ratio:4/3}
.frame.arch{border-radius:999px 999px 26px 26px}
.frame.arch .ph{aspect-ratio:3/4.4}
.frame.oval{border-radius:999px}
.frame.oval .ph{aspect-ratio:3/4.6}
.offers{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.8rem}
.offer{background:var(--blush);border-radius:20px;padding:1.2rem 1.3rem}
.offer h3{font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;line-height:1.4;color:var(--burgundy);margin-bottom:.4rem}
.offer p{font-size:.92rem;color:var(--soft);line-height:1.55}
@media (max-width:520px){.offers{grid-template-columns:1fr}}

/* henna */
.arches{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,2vw,1.4rem);align-items:end}
.arches .frame:nth-child(2){margin-bottom:2.4rem}
.blob-deco{position:absolute;width:15rem;height:15rem;border-radius:58% 42% 60% 40% / 45% 55% 45% 55%;background:var(--rose);opacity:.55;left:-5rem;bottom:-4rem;animation:morph 14s ease-in-out infinite alternate}
.squiggle{position:absolute;left:-1rem;bottom:1rem;width:14rem;height:auto;stroke:var(--white);fill:none;stroke-width:1.5;opacity:.8}
.natural{display:flex;align-items:center;gap:1rem;margin-top:1.6rem;background:var(--white);border-radius:999px;padding:.6rem .6rem .6rem 1.4rem;width:fit-content;max-width:100%}
.natural b{font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--burgundy)}
.natural span{background:var(--burgundy);color:var(--white);border-radius:999px;padding:.45rem .9rem;font-family:var(--font-wide);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}

/* impact */
.impact{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
@media (max-width:820px){.impact{grid-template-columns:1fr}}
.tally .amount{display:block;font-family:var(--font-wide);font-weight:700;font-size:clamp(3rem,10vw,6rem);line-height:1;letter-spacing:.02em;color:var(--white);font-variant-numeric:tabular-nums;margin-block:.6rem .3rem}
.tally .asof{font-size:.85rem;color:var(--blush)}
.why{position:relative;text-align:center;padding-block:1rem}
.why .dots{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:0;pointer-events:none}
.why .dots i{display:block;width:6.5rem;height:6.5rem;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--gold),transparent 72%);opacity:.55;margin-block:-1.2rem;animation:bob 6s ease-in-out infinite}
.why .dots i:nth-child(2){animation-delay:-2s}.why .dots i:nth-child(3){animation-delay:-4s}
@keyframes bob{50%{transform:translateY(-8px)}}
.why .rows{position:relative;display:grid;gap:.7rem}
.why .rows p{font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.1em;font-size:clamp(.8rem,1.8vw,.98rem)}
.why .rows .big{font-size:clamp(1.1rem,2.6vw,1.5rem);color:var(--white)}
.why .rows .sub{color:var(--blush);font-size:.66rem;letter-spacing:.24em;margin-top:.6rem}

/* carousels: swipe/scroll or auto-advance; progress bars, no arrows */
.track{position:relative;display:flex;gap:clamp(.9rem,2vw,1.4rem);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-block:.4rem;overscroll-behavior-x:contain}
.track::-webkit-scrollbar{display:none}
.track > *{scroll-snap-align:start;flex:none}
.bars{display:flex;gap:.45rem;margin-top:1.4rem;max-width:22rem}
.bars button{position:relative;flex:1;height:3px;border:0;padding:0;background:color-mix(in srgb,var(--burgundy) 18%,transparent);cursor:pointer;border-radius:2px;overflow:hidden}
.bars button::before{content:"";position:absolute;inset:-10px 0}
.bars .fill{position:absolute;inset:0;background:var(--burgundy);transform:scaleX(0);transform-origin:left}
.bars button.on .fill{animation:fill var(--dur,4s) linear forwards}
.bars.paused button.on .fill{animation-play-state:paused}
@keyframes fill{to{transform:scaleX(1)}}

/* placeholders */
.ph{position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(165deg,#F0DCD5,#E2BFB7)}
.ph svg{width:32%;max-width:110px;height:auto;color:#B27F77;opacity:.7}
.ph .ph-label{position:absolute;left:0;right:0;bottom:.9rem;text-align:center;font-family:var(--font-wide);font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:#9C6A63}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* officers (flip cards) */
.officer{width:clamp(13rem,23vw,15rem);perspective:1200px;cursor:pointer;border-radius:999px 999px 22px 22px}
.flip{display:grid;transition:transform .8s var(--ease);transform-style:preserve-3d}
.officer.flipped .flip{transform:rotateY(180deg)}
.face{grid-area:1/1;backface-visibility:hidden;-webkit-backface-visibility:hidden;min-width:0}
.face.front{display:grid;gap:.9rem;align-content:start;text-align:center}
.face.front .ph{aspect-ratio:3/4;border-radius:999px 999px 22px 22px;border:2px solid var(--gold);transition:transform .5s var(--ease)}
.officer:hover .face.front .ph{transform:translateY(-5px)}
.face.front .ph svg{width:44%}
.officer .name{font-family:var(--font-wide);text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:.8rem;line-height:1.4}
.officer .role{font-family:var(--font-script);font-size:1.35rem;color:var(--burgundy);line-height:1}
.officer .cue{font-family:var(--font-wide);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin-top:.2rem}
.face.back{transform:rotateY(180deg);background:var(--burgundy);color:var(--white);border-radius:999px 999px 22px 22px;padding:3.2rem 1.3rem 1.2rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem}
.face.back .role{color:var(--blush)}
.face.back .bio{font-size:.9rem;line-height:1.55;color:#F2DCD6;flex:1;overflow:auto;margin-top:.4rem}
.face.back .cue{color:var(--blush)}

/* events */
.events{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1.3rem}
.event{background:var(--white);border-radius:26px;padding:1.6rem 1.7rem;display:grid;gap:.8rem;align-content:start;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.event:hover{transform:translateY(-4px) rotate(-.4deg);box-shadow:0 20px 40px -26px rgba(74,13,25,.5)}
.event.open{background:var(--burgundy);color:var(--white)}
.event .top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.event .when{font-family:var(--font-wide);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}
.status{font-family:var(--font-wide);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;padding:.35rem .7rem;border-radius:999px;background:var(--blush);color:var(--wine)}
.event.open .status{background:var(--gold)}
.event h3{font-family:var(--font-script);font-weight:400;font-size:2rem;line-height:1;color:var(--burgundy)}
.event.open h3{color:var(--blush)}
.meta{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;font-size:.92rem;margin:0}
.meta dt{font-family:var(--font-wide);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;padding-top:.35rem;opacity:.7}
.meta dd{margin:0}
.prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.price{background:var(--blush);border-radius:14px;padding:.55rem;text-align:center}
.price b{display:block;font-family:var(--font-wide);font-size:1.05rem;color:var(--burgundy)}
.price small{font-size:.75rem;color:var(--soft)}
.event .pill{justify-self:start}
.event.open .pill{background:var(--white);color:var(--burgundy)}
.event.open .pill:hover{background:var(--gold);color:var(--wine)}
.subhead{font-family:var(--font-wide);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--soft);margin:2.8rem 0 1.1rem;display:flex;align-items:center;gap:1rem}
.subhead::after{content:"";flex:1;height:1px;background:var(--gold)}
.subhead.first{margin-top:0}

/* gallery preview */
.slide{width:min(76%,38rem);margin:0}
.slide .ph{aspect-ratio:3/2;border-radius:24px;border:2px solid var(--gold)}
.slide figcaption{font-size:.88rem;color:var(--soft);margin-top:.6rem}
@media (max-width:640px){.slide{width:86%}.slide .ph{aspect-ratio:4/5}}

/* contact + footer */
.contact{background:var(--wine);color:var(--white)}
.contact .grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,6vw,5rem);align-items:center}
@media (max-width:820px){.contact .grid{grid-template-columns:1fr}}
.contact .title .lead{color:var(--blush)}
.contact .title h2{color:var(--white)}
.email-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.4rem}
.email-row .addr{font-family:var(--font-wide);font-size:clamp(.85rem,2.4vw,1.25rem);letter-spacing:.04em;overflow-wrap:anywhere;min-width:0}
.mail{position:relative;display:inline-grid;gap:.35rem;text-decoration:none;color:var(--white);cursor:pointer;padding-bottom:.35rem}
.mail .txt{position:relative;transition:color .3s}
.mail::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.mail .hint{font-family:var(--font-body);font-size:.85rem;letter-spacing:.02em;text-transform:none;color:var(--gold);opacity:0;transform:translateY(-4px);transition:opacity .3s,transform .3s var(--ease)}
.mail .arr{display:inline-block;transition:transform .3s var(--ease)}
.mail:hover .txt,.mail:focus-visible .txt{color:var(--blush)}
.mail:hover::after,.mail:focus-visible::after{transform:scaleX(1)}
.mail:hover .hint,.mail:focus-visible .hint{opacity:1;transform:none}
.mail:hover .arr{transform:translateX(4px)}
@media (hover:none){.mail .hint{opacity:1;transform:none}}
.socials{display:grid;gap:.7rem}
.socials a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.3rem;border-radius:999px;background:color-mix(in srgb,var(--white) 8%,transparent);text-decoration:none;font-family:var(--font-wide);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;transition:background .3s,padding .3s var(--ease)}
.socials a:hover{background:var(--burgundy);padding-left:1.6rem}
.socials span{font-family:var(--font-body);text-transform:none;letter-spacing:0;font-size:.85rem;color:var(--blush)}
footer{background:var(--blush);padding-block:2.2rem;font-size:.85rem;color:var(--soft)}
footer .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center}
footer nav{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem}
footer nav a{font-family:var(--font-wide);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--wine)}
footer nav a:hover{color:var(--burgundy)}
footer .brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-family:var(--font-wide);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--wine)}
footer .brand img{width:44px;height:44px;border-radius:50%}

/* back to top blob */
.to-top{position:fixed;left:clamp(12px,3vw,28px);bottom:calc(clamp(12px,3vw,28px) + env(safe-area-inset-bottom,0px));z-index:40;width:4.8rem;height:4.2rem;border:0;cursor:pointer;background:var(--gold);color:var(--wine);font-family:var(--font-wide);font-weight:700;font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;border-radius:62% 38% 54% 46% / 48% 60% 40% 52%;opacity:0;transform:translateY(20px) scale(.8);pointer-events:none;transition:opacity .4s,transform .4s var(--ease),border-radius .6s var(--ease)}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{border-radius:40% 60% 45% 55% / 60% 40% 60% 40%;background:var(--blush)}

/* reveal-on-scroll: visible at rest; only off-screen items start hidden */
.reveal{transition:opacity .9s var(--ease),transform .9s var(--ease),clip-path 1.1s var(--ease);transition-delay:var(--d,0s)}
.reveal.pre{opacity:0;transform:translateY(30px)}
.reveal.unveil.pre{opacity:1;transform:none}
.reveal.unveil > *{transition:clip-path 1.2s var(--ease);transition-delay:var(--d,0s)}
.reveal.unveil.pre > *{clip-path:inset(100% 0 0 0)}
.reveal.slide-l.pre{transform:translateX(-40px)}
.reveal.slide-r.pre{transform:translateX(40px)}

@media (prefers-reduced-motion:reduce){
  html,.track{scroll-behavior:auto}
  .reveal,.reveal.pre,.reveal.unveil > *{opacity:1;transform:none;clip-path:none;transition:none}
  .line-link.pre::before{transform:none}
  .orbit,.orbit .h svg,.orbit-wrap > img,.hero::before,.hero::after,.blob-deco,.chev span,.marquee .run,.why .dots i{animation:none}
  .flip,.menu,.menu li{transition:none}
  .bars button.on .fill{animation:none;transform:scaleX(1)}
}

/* gallery page */
.g-head{position:relative;z-index:30;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem clamp(16px,4vw,48px);background:var(--burgundy)}
.g-head .brand img{width:56px;height:56px;border-radius:50%;display:block}
.g-hero{background:var(--burgundy);color:var(--white);padding-block:clamp(2rem,6vw,3.5rem) clamp(3rem,7vw,4.5rem);position:relative;overflow:hidden}
.g-hero .title .lead{color:var(--blush)}
.g-hero .title h2{color:var(--white);font-size:clamp(2rem,6vw,3.6rem)}
.g-hero p{color:#F2DCD6;max-width:34rem}
.g-hero .ctas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem}
.masonry{columns:3 15rem;column-gap:1.1rem}
.masonry figure{break-inside:avoid;margin:0 0 1.1rem;cursor:zoom-in}
.masonry .ph{border-radius:22px;border:2px solid var(--gold);transition:transform .5s var(--ease)}
.masonry figure:nth-child(4n+1) .ph{border-radius:999px 999px 22px 22px}
.masonry figure:hover .ph{transform:translateY(-4px)}
.masonry figcaption{font-size:.85rem;color:var(--soft);margin-top:.5rem}
.lightbox{position:fixed;inset:0;z-index:70;background:rgba(40,8,14,.9);display:grid;place-items:center;padding:clamp(16px,4vw,48px);opacity:0;transition:opacity .3s}
.lightbox.open{opacity:1}
.lightbox .frame-lb{width:min(100%,54rem);display:grid;gap:.9rem;transform:scale(.96);transition:transform .35s var(--ease)}
.lightbox.open .frame-lb{transform:none}
.lightbox .ph{max-height:72vh;border-radius:22px}
.lightbox .bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;color:var(--blush);font-family:var(--font-wide);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}
.lightbox .nav{display:flex;gap:.5rem;flex-wrap:wrap}
