:root{
  --red:#F33624; --red-deep:#C8261A; --cream:#FAF0E4; --cream-2:#F3E2CF; --ink:#2A1210;
  --night:#170B0D; --night-2:#24101A; --pink:#FF3EA5; --amber:#FFB43A; --sea:#1F5C78; --sea-light:#CFE6EE;
  --bg:var(--cream); --fg:var(--ink); --accent:var(--red);
  --serif:"Fraunces", Georgia, serif; --sans:"Outfit", system-ui, sans-serif;
  --pad:clamp(20px,5vw,72px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:clamp(16px,1.15vw,19px);line-height:1.6;transition:background-color .6s ease,color .6s ease;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
em{font-style:italic}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--red);color:var(--cream);padding:8px 14px;z-index:100;border-radius:99px}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px}

/* topbar */
.topbar{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:12px var(--pad);color:var(--accent);transition:transform .4s ease,color .6s ease;pointer-events:none}
.topbar>*{pointer-events:auto}
.topbar.is-hidden{transform:translateY(-110%)}
.topbar__logo{width:92px;display:block;color:inherit}
.topbar__logo svg{width:100%;height:auto;fill:currentColor;display:block;margin:-4px 0 -40px}
.topbar__nav{display:flex;gap:clamp(10px,2vw,28px);align-items:center;font-weight:500;font-size:15px}
.topbar__nav a{text-decoration:none;color:var(--fg);transition:color .3s}
.topbar__nav a:hover{color:var(--accent)}
.topbar__cta{background:var(--accent);color:var(--bg)!important;padding:6px 18px;border-radius:99px}
.progress{position:absolute;left:0;right:0;bottom:0;height:3px}
.progress span{display:block;height:100%;width:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(0)}
@media (max-width:720px){.topbar__nav a:not(.topbar__cta){display:none}.topbar__logo{width:74px}}

/* type */
.big{font-family:var(--serif);font-weight:800;font-size:clamp(44px,7.4vw,124px);line-height:.92;letter-spacing:-.025em;margin:.2em 0 .4em;font-variation-settings:"opsz" 144}
.big em{color:var(--accent);font-weight:600}
.chapter__label{font-size:13px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;display:flex;gap:12px;align-items:center;color:var(--accent)}
.chapter__label b{font-family:var(--serif);font-size:15px;border:1.5px solid currentColor;border-radius:99px;padding:2px 10px;letter-spacing:.05em}
.muted{opacity:.7}.small{font-size:.85em}
.chapter{position:relative;padding:clamp(90px,14vh,170px) var(--pad)}
.line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.line>span{display:block}

/* hero */
.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;padding:90px var(--pad) 120px;background:radial-gradient(ellipse at 50% 30%,#fff7ee 0%,var(--cream) 55%,var(--cream-2) 100%)}
.hero__glow{position:absolute;width:70vmax;height:70vmax;border-radius:50%;background:radial-gradient(circle,rgba(255,180,58,.35),rgba(243,54,36,.08) 45%,transparent 70%);top:-20vmax;right:-20vmax;pointer-events:none}
.hero__inner{position:relative;text-align:center;z-index:2}
.hero__logo{position:relative;width:min(560px,78vw);aspect-ratio:1646/1681;margin:0 auto;color:var(--red)}
.hero__logo svg{position:absolute;inset:0;width:100%;height:100%;fill:currentColor;overflow:visible}
.hero__woman{transform-origin:45% 75%}
.hero__claim{display:flex;justify-content:center;flex-wrap:wrap;gap:.2em 1.2em;font-family:var(--serif);font-size:clamp(20px,2.4vw,34px);font-weight:700;color:var(--ink);margin:18px 0 6px}
.hero__claim em{color:var(--red);font-weight:500}
.hero__claim span{display:inline-block}
.hero__where{letter-spacing:.2em;text-transform:uppercase;font-size:12px;font-weight:600;opacity:.75}
.hero__scroll{position:absolute;bottom:78px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;font-size:12px;letter-spacing:.2em;text-transform:uppercase;z-index:3}
.hero__scroll i{width:2px;height:40px;background:linear-gradient(var(--red),transparent);animation:drip 1.8s ease-in-out infinite;transform-origin:top}
@keyframes drip{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.hero__ticker{position:absolute;bottom:0;left:0;right:0;background:var(--red);color:var(--cream);padding:12px 0;overflow:hidden;transform:rotate(-1.5deg) translateY(6px);transform-origin:center}
.ticker,.marquee{display:flex;width:max-content;white-space:nowrap}
.ticker span{font-family:var(--serif);font-style:italic;font-weight:600;font-size:clamp(18px,2vw,26px);padding-right:.4em}
.ticker{animation:tick 40s linear infinite}
@keyframes tick{to{transform:translateX(-50%)}}

/* plaza */
.plaza__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px);align-items:center;margin-top:30px}
.plaza__text p{max-width:34em}
.rename{display:flex;align-items:center;gap:18px;margin-top:34px;font-family:var(--serif);font-size:clamp(28px,3.4vw,52px);font-weight:700}
.rename__old{position:relative;opacity:.55}
.rename__old::after{content:"";position:absolute;left:-4%;right:-4%;top:52%;height:4px;background:var(--red);transform:scaleX(var(--strike,0));transform-origin:0 50%;border-radius:4px}
.rename__new{color:var(--red);font-style:italic}
.parallax-wrap{overflow:hidden;border-radius:28px}
.plaza__photo{margin:0;position:relative;border-radius:28px 28px 28px 200px;overflow:hidden;box-shadow:0 30px 80px -30px rgba(42,18,16,.45)}
.plaza__photo img{width:100%;height:120%;object-fit:cover;aspect-ratio:4/4.6}
.plaza__photo figcaption,.founders__photo figcaption{position:absolute;left:18px;bottom:16px;background:var(--cream);color:var(--ink);padding:6px 14px;border-radius:99px;font-size:13px;font-weight:600}
@media (max-width:900px){.plaza__grid{grid-template-columns:1fr}}

/* founders */
.founders{overflow:hidden}
.founders__date{font-family:var(--serif);font-weight:900;font-size:clamp(64px,15vw,260px);line-height:.85;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px var(--cream);display:flex;gap:.08em;margin:20px 0 10px;white-space:nowrap;font-variant-numeric:tabular-nums}
.founders__date i{font-style:normal;color:var(--cream);-webkit-text-stroke:0}
.founders__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,100px);align-items:center}
.founders .big em{color:var(--amber)}
.founders__photo{margin:0;position:relative;border-radius:24px;overflow:hidden;transform:rotate(2.5deg);box-shadow:0 40px 80px -30px rgba(0,0,0,.5);border:10px solid var(--cream)}
.founders__photo img{width:100%;aspect-ratio:1024/692;object-fit:cover}
@media (max-width:900px){.founders__grid{grid-template-columns:1fr}}

/* day-night */
.daynight{position:relative;height:340vh;color:var(--cream)}
.daynight__pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(20px,5vw,80px);padding:90px var(--pad) 40px}
.sky,.sky>div{position:absolute;inset:0}
.sky__day{background:linear-gradient(180deg,#FFD9A8 0%,#FFE9CC 45%,var(--cream) 100%)}
.sky__dusk{background:linear-gradient(180deg,#5B2A6E 0%,#E2543A 55%,#FFB43A 100%);opacity:0}
.sky__night{background:radial-gradient(ellipse at 30% 80%,#4A1236 0%,var(--night-2) 45%,var(--night) 100%);opacity:0}
.sky__stars{opacity:0;background-image:radial-gradient(1.5px 1.5px at 20% 30%,#fff,transparent),radial-gradient(1px 1px at 70% 20%,#fff,transparent),radial-gradient(1.5px 1.5px at 40% 12%,#fff,transparent),radial-gradient(1px 1px at 85% 45%,#fff,transparent),radial-gradient(1px 1px at 10% 60%,#fff,transparent),radial-gradient(1.5px 1.5px at 55% 40%,#fff,transparent),radial-gradient(1px 1px at 92% 10%,#fff,transparent)}
.sky .sky__sun,.sky .sky__moon{inset:auto;width:clamp(90px,12vw,170px);height:clamp(90px,12vw,170px);border-radius:50%;left:46%;top:12%}
.sky__sun{background:radial-gradient(circle,#FFE29A 0%,#FFB43A 55%,rgba(255,140,40,0) 72%)}
.sky__moon{background:radial-gradient(circle at 35% 35%,#FFF6E8 0%,#F3E2CF 60%,rgba(243,226,207,0) 72%);box-shadow:0 0 80px 10px rgba(255,62,165,.25);opacity:0;transform:translateY(60vh)}
.daynight__label{position:absolute;top:96px;left:var(--pad);z-index:3;color:var(--red)}
.daynight__photos{position:relative;z-index:2;height:min(72vh,640px);aspect-ratio:3/4;justify-self:center;border-radius:200px 200px 28px 28px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
.dn-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dn-photo--night{opacity:0}
.daynight__steps{position:relative;z-index:2;min-height:340px}
.dn-step{position:absolute;inset:0 0 auto 0;opacity:0;transform:translateY(40px);transition:none}
.dn-step.is-active{opacity:1;transform:none}
.dn-step__time{display:inline-block;font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;background:var(--red);color:var(--cream);padding:5px 14px;border-radius:99px}
.dn-step h3{font-family:var(--serif);font-weight:800;font-size:clamp(40px,5.6vw,92px);line-height:.95;margin:.3em 0 .3em;letter-spacing:-.02em}
.dn-step h3 em{color:var(--pink);text-shadow:0 0 24px rgba(255,62,165,.6)}
.dn-step p{max-width:28em;font-size:1.05em}
.daynight[data-phase="0"] .dn-step{color:var(--ink)}
@media (max-width:900px){
  .daynight__pin{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-content:start;padding-top:130px;gap:24px}
  .daynight__photos{height:42vh;height:42svh}
  .daynight__steps{min-height:250px}
  .dn-step h3{font-size:clamp(34px,10vw,52px)}
  .daynight__label{top:84px}
}

/* drinks */
.drinks{padding-left:0;padding-right:0;overflow:hidden}
.drinks__intro{padding:0 var(--pad);max-width:900px}
.drinks .big em{color:var(--amber)}
.hscroll{margin-top:40px}
.hscroll__track{display:flex;gap:24px;padding:0 var(--pad);width:max-content;align-items:stretch}
.card{flex:0 0 auto;width:clamp(260px,26vw,380px);height:clamp(360px,54vh,520px);border-radius:26px;margin:0;overflow:hidden;position:relative}
.card--photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.card--photo:hover img{transform:scale(1.05)}
.card--type{background:var(--night-2);border:1.5px solid rgba(250,240,228,.18);padding:30px;display:flex;flex-direction:column;justify-content:flex-end}
.card--red{background:var(--red);border:0}
.card--cream{background:var(--cream);color:var(--ink);border:0}
.card__n{position:absolute;top:24px;left:30px;font-family:var(--serif);font-size:15px;opacity:.7}
.card h3{font-family:var(--serif);font-size:clamp(40px,4vw,64px);line-height:.95;margin:0 0 .3em;font-weight:800;font-style:italic}
@media (max-width:900px){
  .hscroll{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .hscroll::-webkit-scrollbar{display:none}
  .card{scroll-snap-align:center;width:76vw;height:62vh;height:62svh}
}

/* party */
.party{overflow:hidden;background:transparent}
.party__marquee{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-around;pointer-events:none;opacity:.12}
.marquee span{font-family:var(--serif);font-weight:900;font-size:clamp(60px,10vw,170px);text-transform:uppercase;letter-spacing:-.02em;padding-right:.3em;line-height:1}
.marquee--a{animation:tick 50s linear infinite}
.marquee--b{animation:tick 60s linear infinite reverse;color:transparent;-webkit-text-stroke:2px var(--pink)}
.party__grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,100px);align-items:center}
.party .chapter__label{color:var(--pink)}
.neon em{color:var(--pink);text-shadow:0 0 10px rgba(255,62,165,.9),0 0 40px rgba(255,62,165,.6)}
.neon.is-flicker em{animation:flicker 3.5s infinite}
@keyframes flicker{0%,19%,21%,23%,55%,57%,100%{opacity:1}20%,22%,56%{opacity:.35}}
.party__photo{margin:0;border-radius:28px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 0 0 1.5px rgba(255,62,165,.6),0 0 60px -10px rgba(255,62,165,.6),0 0 120px -30px rgba(255,180,58,.6)}
.party__photo img{width:100%;height:115%;object-fit:cover}
.btn{display:inline-block;margin-top:14px;padding:14px 26px;border-radius:99px;text-decoration:none;font-weight:600}
.btn--neon{border:2px solid var(--pink);color:var(--cream);box-shadow:0 0 18px rgba(255,62,165,.5),inset 0 0 14px rgba(255,62,165,.3);transition:background .3s}
.btn--neon:hover{background:var(--pink)}
@media (max-width:900px){.party__grid{grid-template-columns:1fr}}

/* sada */
.sada{background:linear-gradient(180deg,var(--sea-light),#EAF4F2 60%,var(--cream));color:#0F2E3C;padding-top:clamp(110px,16vh,190px)}
.sada__waves{position:absolute;top:-1px;left:0;right:0;height:80px;transform:scaleY(-1)}
.sada__waves svg{width:200%;height:100%;fill:var(--night);animation:wave 14s linear infinite}
@keyframes wave{to{transform:translateX(-50%)}}
.sada .chapter__label{color:var(--sea)}
.sada .big em{color:var(--red)}
.sada__head{max-width:900px}
.sada__gallery{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;margin-top:40px;align-items:end}
.sada__gallery figure{margin:0;border-radius:28px;overflow:hidden}
.sada__big img{width:100%;height:115%;aspect-ratio:4/3;object-fit:cover}
.sada__small{transform:translateY(-60px);box-shadow:0 30px 60px -30px rgba(15,46,60,.5)}
.sada__small img{width:100%;aspect-ratio:16/10;object-fit:cover}
.sada__where{font-size:13px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;color:var(--sea)}
@media (max-width:900px){.sada__gallery{grid-template-columns:1fr}.sada__small{transform:none}}

/* visit */
.visit__slogan{font-family:var(--serif);font-weight:800;font-size:clamp(40px,6.4vw,110px);line-height:.95;letter-spacing:-.025em;margin:.4em 0 .7em}
.visit__slogan em{color:var(--cream);background:var(--ink);padding:0 .15em;border-radius:.12em;font-weight:700}
.visit__grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(30px,5vw,80px)}
.visit__info{display:grid;gap:32px}
.info-block h3{font-family:var(--serif);font-style:italic;font-size:30px;margin:0 0 6px;font-weight:700}
.info-block p{margin:0 0 8px}
.hours{list-style:none;padding:0;margin:0 0 6px;max-width:360px}
.hours li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed rgba(250,240,228,.4);font-variant-numeric:tabular-nums}
.hours .closed{opacity:.65}
.link{font-weight:600;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.visit__map{border-radius:28px;overflow:hidden;min-height:420px;border:8px solid var(--cream);box-shadow:0 30px 70px -30px rgba(0,0,0,.45)}
.visit__map iframe{width:100%;height:100%;min-height:420px;border:0;display:block;filter:saturate(.8) contrast(1.05)}
.visit .chapter__label{color:var(--cream)}
@media (max-width:900px){.visit__grid{grid-template-columns:1fr}}

/* footer */
.footer{background:var(--night);color:var(--cream);text-align:center;padding:80px var(--pad) 60px}
.footer__logo{width:180px;height:auto;fill:var(--cream);margin:0 auto 10px;display:block}

/* themes on body */
body[data-theme="cream"]{--bg:var(--cream);--fg:var(--ink);--accent:var(--red)}
body[data-theme="red"]{--bg:var(--red);--fg:var(--cream);--accent:var(--cream)}
body[data-theme="night"]{--bg:var(--night);--fg:var(--cream);--accent:var(--pink)}
body[data-theme="sea"]{--bg:var(--sea-light);--fg:#0F2E3C;--accent:var(--red)}
body[data-theme="red"] .topbar__cta{color:var(--red)!important}

/* reveal initial states only when JS motion is on */
.js-motion .reveal{opacity:0;transform:translateY(40px)}
.js-motion .reveal-lines .line>span{transform:translateY(110%)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .daynight{height:auto}
  .daynight__pin{position:relative;height:auto;grid-template-columns:1fr;padding:120px var(--pad)}
  .sky__night,.sky__stars{opacity:1}.sky__day,.sky__sun{opacity:0}
  .dn-step{position:relative;opacity:1;transform:none;margin-bottom:40px}
  .daynight__steps{min-height:0}
  .dn-photo--night{opacity:1}
}

/* fallback when motion JS is off (reduced motion / no JS): sections carry their own colors */
html:not(.js-motion) section[data-theme="red"]{background:var(--red);--fg:var(--cream);--accent:var(--cream);color:var(--cream)}
html:not(.js-motion) section[data-theme="night"]{background:var(--night);--fg:var(--cream);--accent:var(--pink);color:var(--cream)}
html:not(.js-motion) section[data-theme="cream"]{background:var(--cream)}
html:not(.js-motion) .hero{background:radial-gradient(ellipse at 50% 30%,#fff7ee 0%,var(--cream) 55%,var(--cream-2) 100%)}
html:not(.js-motion) .daynight{height:auto}
html:not(.js-motion) .daynight__pin{position:relative;height:auto;grid-template-columns:1fr;padding:120px var(--pad)}
html:not(.js-motion) .sky__night,html:not(.js-motion) .sky__stars{opacity:1}
html:not(.js-motion) .sky__day,html:not(.js-motion) .sky__sun{opacity:0}
html:not(.js-motion) .dn-step{position:relative;opacity:1;transform:none;margin-bottom:40px}
html:not(.js-motion) .daynight__steps{min-height:0}
html:not(.js-motion) .dn-photo--night{opacity:1}
html:not(.js-motion) .hscroll{overflow-x:auto;scroll-snap-type:x mandatory}

/* --- fixes after first review --- */

.sada,.sada__waves{overflow:hidden}
.hero__logo{width:min(560px,78vw,50vh)}
@media (max-height:760px) and (min-width:721px){.hero__scroll{display:none}}
.hero__scroll{bottom:74px}
.hero__where{margin-bottom:56px}
.plaza__photo,.sada__big,.party__photo{position:relative}
.plaza__photo{aspect-ratio:4/4.4;border-radius:28px 200px 28px 28px}
.plaza__photo img,.sada__big img,.party__photo img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;aspect-ratio:auto}
.sada__big{aspect-ratio:4/3}
.visit__slogan{line-height:1.04}
.visit__slogan .line{padding-bottom:.12em}
@media (max-width:720px){.visit__slogan{font-size:clamp(34px,10vw,48px)}.big{font-size:clamp(40px,12vw,64px)}}
.sky .sky__moon{left:auto;right:7%;top:9%}
@media (max-width:900px){.sky .sky__moon{right:4%;top:11%;width:70px;height:70px}}
