/* Ever After Events by Sam: built on the CI kit palette (proposed, pending Sam's approval) */
@font-face{font-family:"Cormorant Garamond";src:url(fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(fonts/cormorant-garamond-latin-700-normal.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(fonts/cormorant-garamond-latin-600-italic.woff2) format("woff2");font-weight:600;font-style:italic;font-display:swap}
@font-face{font-family:"Manrope";src:url(fonts/manrope-latin-wght-normal.woff2) format("woff2");font-weight:200 800;font-display:swap}

:root{
  --blush:#F0A8CC;--dusty:#E2528B;--ivory:#FFFFFF;--champagne:#F4F3F3;--charcoal:#303030;--white:#fff;--deep:#D81F4B;--deep-dark:#B01540;
  --blush-soft:#FDF0F6;--line:#ebe8e9;--mute:#5c5a5b;
  --serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",Arial,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);--r:12px;
}
@view-transition{navigation:auto}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5.5rem}
body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:var(--sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.lock{overflow:hidden}
img{max-width:100%;display:block}a{color:inherit}
:focus-visible{outline:3px solid var(--deep);outline-offset:3px;border-radius:4px}
.wrap{max-width:1360px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1;margin:0}
.d1{font-size:clamp(3.4rem,10.5vw,9.5rem);line-height:.9;letter-spacing:-.03em;font-weight:600}
.d2{font-size:clamp(2.6rem,7vw,6rem);line-height:.95;letter-spacing:-.025em}
.d3{font-size:clamp(1.9rem,3.6vw,3rem)}
em,.it{font-style:italic;font-weight:600}
.lead{font-size:clamp(1.15rem,1.9vw,1.4rem);line-height:1.55;max-width:42rem}
.mute{color:var(--mute)}.rose{color:var(--deep)}
.kicker{font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--deep);margin:0 0 1.25rem;display:flex;align-items:center;gap:.75rem}
.kicker::before{content:"";width:2.5rem;height:2px;background:currentColor;transform-origin:left;animation:grow 1s var(--ease) both}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 1.9rem;border-radius:999px;font:700 1rem var(--sans);text-decoration:none;border:2px solid transparent;cursor:pointer;min-height:54px;position:relative;overflow:hidden;isolation:isolate;transition:transform .35s var(--ease),color .35s,border-color .35s}
.btn::after{content:"";position:absolute;inset:0;background:var(--charcoal);transform:translateY(101%);transition:transform .45s var(--ease);z-index:-1;border-radius:inherit}
.btn:hover::after{transform:none}
.btn-deep{background:var(--deep);color:#fff}.btn-deep:hover{color:#fff}
.btn-line{border-color:currentColor}.btn-line:hover{color:var(--ivory);border-color:var(--charcoal)}
.btn-light{border-color:rgba(250,247,243,.75);color:var(--ivory)}.btn-light::after{background:var(--ivory)}.btn-light:hover{color:var(--charcoal);border-color:var(--ivory)}
.btn .ar{transition:transform .35s var(--ease)}.btn:hover .ar{transform:translateX(5px)}
.row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.25rem}

/* header + animated menu */
.top{position:sticky;top:0;z-index:50;background:rgba(250,247,243,.92);backdrop-filter:blur(10px);transition:box-shadow .3s,background .3s;view-transition-name:header}
.top.scrolled{box-shadow:0 1px 0 var(--line),0 10px 30px rgba(48,48,48,.06)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:76px}
.top .logo img{height:46px;width:auto}
.nav{display:flex;gap:2.2rem}
.nav a{position:relative;text-decoration:none;font-weight:600;font-size:1rem;padding:.4rem 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--deep);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1);transform-origin:left}
.top .cta{padding:.7rem 1.4rem;min-height:0;font-size:.95rem}
.burger{display:none;width:54px;height:54px;border-radius:50%;border:2px solid var(--charcoal);background:transparent;cursor:pointer;position:relative;z-index:70;transition:background .3s,border-color .3s}
.burger span{position:absolute;left:15px;right:15px;height:2px;background:var(--charcoal);transition:transform .5s var(--ease),opacity .3s,background .3s}
.burger span:nth-child(1){top:19px}.burger span:nth-child(2){top:26px}.burger span:nth-child(3){top:33px;right:25px}
.burger[aria-expanded=true]{border-color:var(--ivory)}
.burger[aria-expanded=true] span{background:var(--ivory)}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);right:15px}
.menu{position:fixed;inset:0;z-index:45;background:var(--charcoal);color:var(--ivory);clip-path:circle(0 at calc(100% - 3rem) 2.7rem);visibility:hidden;transition:clip-path .8s var(--ease),visibility 0s .8s;display:flex;flex-direction:column;justify-content:center;padding:6rem clamp(1.25rem,6vw,4rem) 3rem;overflow:auto}
.menu.open{clip-path:circle(150% at calc(100% - 3rem) 2.7rem);visibility:visible;transition:clip-path .9s var(--ease),visibility 0s}
.menu nav{display:grid;gap:.15rem}
.menu nav a{font-family:var(--serif);font-weight:600;font-size:clamp(2.6rem,11vw,5rem);line-height:1.05;text-decoration:none;display:flex;align-items:baseline;gap:1rem;opacity:0;transform:translateY(40px);transition:opacity .5s,transform .7s var(--ease),color .3s}
.menu nav a small{font:700 .8rem var(--sans);letter-spacing:.14em;color:var(--blush)}
.menu nav a:hover{color:var(--blush);font-style:italic}
.menu.open nav a{opacity:1;transform:none}
.menu.open nav a:nth-child(1){transition-delay:.25s}.menu.open nav a:nth-child(2){transition-delay:.31s}.menu.open nav a:nth-child(3){transition-delay:.37s}.menu.open nav a:nth-child(4){transition-delay:.43s}.menu.open nav a:nth-child(5){transition-delay:.49s}.menu.open nav a:nth-child(6){transition-delay:.55s}
.menu .foot{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:1.5rem 3rem;opacity:0;transition:opacity .6s .7s}
.menu.open .foot{opacity:1}
.menu .foot a{color:var(--blush);text-decoration:none;font-weight:600}
@media(max-width:960px){.nav,.top .cta{display:none}.burger{display:block}}

/* hero */
.hero{position:relative;min-height:min(86svh,860px);display:flex;align-items:flex-end;color:var(--ivory);overflow:hidden;isolation:isolate;background:var(--charcoal)}
.hero picture,.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero img.bg{animation:kb 22s ease-out both;object-position:68% 50%}
@keyframes kb{from{transform:scale(1.12)}to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(48,48,48,.82) 0%,rgba(48,48,48,.55) 45%,rgba(48,48,48,.08) 100%),linear-gradient(0deg,rgba(48,48,48,.55),transparent 45%)}
.hero .wrap{width:100%;padding-top:7rem;padding-bottom:clamp(3rem,7vw,5.5rem)}
.hero h1{max-width:19ch;font-size:clamp(3rem,8.2vw,7.6rem)}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.hero h1 .w>span{display:inline-block;transform:translateY(110%);animation:up 1.1s var(--ease) forwards;animation-delay:calc(.15s + var(--i)*.09s)}
@keyframes up{to{transform:none}}
.hero .lead{margin-top:1.75rem;opacity:0;animation:fade 1s .9s var(--ease) forwards;max-width:34rem}
.hero .row{opacity:0;animation:fade 1s 1.1s var(--ease) forwards}
@keyframes fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hero .cap{position:absolute;right:clamp(1.25rem,4vw,3rem);bottom:1.1rem;font-size:.75rem;opacity:.75}
.scrollcue{position:absolute;left:50%;bottom:1.25rem;width:2px;height:48px;background:rgba(250,247,243,.3);overflow:hidden;display:none}
.scrollcue::after{content:"";position:absolute;inset:0;background:var(--ivory);animation:cue 2s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
@media(min-width:900px){.scrollcue{display:block}}
.page-hero{background:#fff;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.page-hero .wrap{padding-top:clamp(4rem,9vw,8rem);padding-bottom:clamp(3rem,7vw,6rem);position:relative;z-index:1}
.page-hero::after{content:"";position:absolute;right:-8vw;top:-12vw;width:36vw;height:36vw;border-radius:50%;background:var(--blush);opacity:.4;animation:float 14s ease-in-out infinite}
@keyframes float{50%{transform:translate(-3vw,3vw) scale(1.06)}}

/* marquee */
.band{background:var(--champagne);overflow:hidden;padding:1.2rem 0;border-block:1px solid var(--line)}
.marquee{display:flex;width:max-content;animation:m 45s linear infinite;font-family:var(--serif);font-style:italic;font-weight:600;font-size:clamp(1.8rem,3.6vw,3rem);color:var(--deep)}
.marquee:hover{animation-play-state:paused}
.marquee span{padding-right:2.5rem;white-space:nowrap}.marquee b{color:var(--charcoal);font-style:normal;font-weight:400;padding-left:2.5rem}
@keyframes m{to{transform:translateX(-50%)}}

.sec{padding:clamp(4.5rem,10vw,9rem) 0}
.sec.tight{padding-top:0}
.sec.soft{background:var(--blush-soft)}
.sec.dark{background:var(--charcoal);color:var(--ivory)}
.two{display:grid;gap:2.5rem 5rem;align-items:start}
@media(min-width:900px){.two{grid-template-columns:1fr 1fr}.two.wide-l{grid-template-columns:1.2fr 1fr}}

/* service tabs */
.tabs{display:inline-flex;position:relative;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:5px;margin-top:2.5rem}
.tabs button{position:relative;z-index:1;background:none;border:0;font:700 1rem var(--sans);padding:.8rem 1.5rem;border-radius:999px;cursor:pointer;color:var(--charcoal);transition:color .3s}
.tabs button[aria-selected=true]{color:#fff}
.tabs .pill{position:absolute;z-index:0;top:5px;bottom:5px;left:0;width:0;border-radius:999px;background:var(--deep);transition:transform .5s var(--ease),width .5s var(--ease)}
.panel{display:grid;gap:1rem;margin-top:2rem}
@media(min-width:760px){.panel{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.panel{grid-template-columns:repeat(3,1fr)}}
html.js .panel[hidden]{display:none}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:1.75rem;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(212,30,76,.14);border-color:var(--blush)}
.card h3{font-size:1.75rem;line-height:1.05}.card p{margin:.8rem 0 0;color:var(--mute);font-size:1rem}
html.js .panel.show .card{animation:pop .7s var(--ease) both;animation-delay:calc(var(--i)*.07s)}
@keyframes pop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}

/* gallery + lightbox */
.mosaic{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
@media(min-width:768px){.mosaic{grid-template-columns:repeat(4,1fr);gap:1.1rem}.mosaic .big{grid-column:span 2;grid-row:span 2}.mosaic.few{grid-template-columns:repeat(var(--n),1fr)}}
.g{position:relative;display:block;border:0;padding:0;background:var(--champagne);border-radius:var(--r);overflow:hidden;cursor:zoom-in;aspect-ratio:4/5}.mosaic .big{aspect-ratio:auto}
.g img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.g:hover img{transform:scale(1.07)}
.g::after{content:"+";position:absolute;right:.9rem;bottom:.9rem;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--ivory);color:var(--deep);font:700 1.5rem/2.6rem var(--sans);text-align:center;transform:scale(0);transition:transform .45s var(--ease)}
.g:hover::after,.g:focus-visible::after{transform:scale(1)}
dialog.lb{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100%;height:100%;color:var(--ivory)}
dialog.lb::backdrop{background:rgba(48,48,48,.94)}
dialog.lb[open]{display:grid;place-items:center;animation:fade .4s var(--ease)}
.lb img{max-width:min(92vw,1100px);max-height:82vh;border-radius:var(--r);animation:pop .6s var(--ease)}
.lb p{margin:1rem auto 0;max-width:40rem;text-align:center;font-size:.95rem;opacity:.85}
.lb button{position:absolute;width:52px;height:52px;border-radius:50%;border:2px solid rgba(250,247,243,.6);background:transparent;color:var(--ivory);font:600 1.5rem var(--sans);cursor:pointer;transition:background .3s,color .3s}
.lb button:hover{background:var(--ivory);color:var(--charcoal)}
.lb .x{top:1rem;right:1rem}.lb .pv{left:1rem;top:50%}.lb .nx{right:1rem;top:50%}

/* social rail */
.rail{display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 clamp(1.25rem,4vw,3rem) 1.2rem;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail>div{flex:none;scroll-snap-align:start;width:min(84vw,360px);background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);transition:transform .45s var(--ease)}
.rail>div:hover{transform:translateY(-6px)}
.rail iframe,.fb iframe{border:0;width:100%;display:block}.rail iframe{height:620px}
.arrows{display:flex;gap:.6rem}
.arrows button{width:52px;height:52px;border-radius:50%;border:2px solid var(--charcoal);background:transparent;font:600 1.3rem var(--sans);cursor:pointer;transition:background .3s,color .3s,transform .3s var(--ease)}
.arrows button:hover{background:var(--charcoal);color:var(--ivory);transform:scale(1.08)}
.fb{max-width:500px;margin:3.5rem auto 0;background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem}

/* process timeline */
.tl{position:relative;display:grid;gap:3rem;padding-left:3.5rem;--p:0}
.tl::before{content:"";position:absolute;left:1rem;top:.5rem;bottom:.5rem;width:2px;background:var(--line)}
.tl::after{content:"";position:absolute;left:1rem;top:.5rem;width:2px;height:calc((100% - 1rem)*var(--p));background:var(--deep)}
.tl .st{position:relative;opacity:.35;transition:opacity .6s}
.tl .st.on{opacity:1}
.tl .st::before{content:attr(data-n);position:absolute;left:-3.5rem;top:-.1rem;width:2rem;height:2rem;border-radius:50%;background:var(--ivory);border:2px solid var(--line);display:grid;place-items:center;font:700 .85rem var(--sans);transition:background .5s,border-color .5s,color .5s,transform .5s var(--ease)}
.tl .st.on::before{background:var(--deep);border-color:var(--deep);color:#fff;transform:scale(1.15)}
.tl h3{font-size:clamp(1.9rem,3.4vw,2.8rem)}.tl p{margin:.6rem 0 0;color:var(--mute);max-width:34rem;font-size:1.1rem}

/* closing cta */
.closing{position:relative;overflow:hidden;background:var(--deep);color:#fff;text-align:center}
.closing .wrap{padding-top:clamp(5rem,11vw,10rem);padding-bottom:clamp(5rem,11vw,10rem);position:relative;z-index:1}
.closing .o{position:absolute;border-radius:50%;background:var(--blush);opacity:.18;animation:float 16s ease-in-out infinite}
.closing .o1{width:34vw;height:34vw;left:-10vw;top:-12vw}.closing .o2{width:26vw;height:26vw;right:-6vw;bottom:-10vw;animation-delay:-6s}
.closing .row{justify-content:center}
.closing .btn-deep{background:var(--ivory);color:var(--deep)}.closing .btn-deep::after{background:var(--charcoal)}.closing .btn-deep:hover{color:#fff}

/* footer */
.foot{background:var(--charcoal);color:var(--ivory)}
.foot .wrap{padding-top:4rem;padding-bottom:2rem}
.foot .cols{display:grid;gap:2.5rem;padding-bottom:3rem;border-bottom:1px solid rgba(250,247,243,.15)}
@media(min-width:800px){.foot .cols{grid-template-columns:1.4fr 1fr 1fr}}
.foot h4{margin:0 0 .8rem;font:700 .8rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--blush)}
.foot a{display:block;text-decoration:none;padding:.15rem 0;width:fit-content;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease),color .3s}
.foot a:hover{color:var(--blush);background-size:100% 1px}
.foot .brand{font-family:var(--serif);font-size:2rem;font-weight:600;line-height:1.1;margin:0}
.foot small{display:block;padding-top:1.5rem;opacity:.55;font-size:.85rem}

/* forms */
form.q{display:grid;gap:1.9rem;max-width:54rem}
label,legend{display:block;font-weight:700;font-size:.95rem;margin-bottom:.45rem;padding:0}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=time],input[type=number],input[type=file],select,textarea{width:100%;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:.9rem 1rem;font:inherit;min-height:52px;transition:border-color .25s,box-shadow .25s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--deep);box-shadow:0 0 0 4px rgba(240,168,204,.45)}
fieldset{border:0;margin:0;padding:0}
.g2{display:grid;gap:1.5rem}@media(min-width:640px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr 1fr}}
.opts{display:flex;flex-wrap:wrap;gap:.55rem}.opts.big{display:grid;gap:.65rem}@media(min-width:640px){.opts.big{grid-template-columns:1fr 1fr}}
.opts label{margin:0;cursor:pointer;font-weight:600}.opts input{position:absolute;opacity:0;pointer-events:none}
.opts span{display:block;border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:.7rem 1.35rem;transition:all .3s var(--ease)}
.opts.big span{border-radius:10px;padding:.95rem 1.1rem}
.opts label:hover span{border-color:var(--dusty);transform:translateY(-2px)}
.opts input:checked+span{background:var(--deep);border-color:var(--deep);color:#fff}
.opts input:focus-visible+span{outline:3px solid var(--deep);outline-offset:3px}
.hint{font-size:.9rem;color:var(--mute);margin:.35rem 0 0}
.consent{background:var(--blush-soft);border-radius:var(--r);padding:1.4rem;display:grid;gap:1rem;font-size:.98rem}
.consent label{display:flex;gap:.75rem;font-weight:400;margin:0}.consent input{width:1.25rem;height:1.25rem;margin-top:.25rem;accent-color:var(--deep);flex:none}
.hp{position:absolute;left:-9999px}
.sticky{display:none}
@media(max-width:767px){.sticky{display:block;position:fixed;left:0;right:0;bottom:0;padding:.7rem;z-index:30;transform:translateY(120%);transition:transform .5s var(--ease)}.sticky.show{transform:none}.sticky .btn{width:100%;box-shadow:0 10px 30px rgba(48,48,48,.3)}}
.prose{max-width:46rem}.prose p{margin:0 0 1.25rem}

/* scroll reveal (only when JS is on) */
html.js .rv{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--d,0)*.09s)}
html.js .rv.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  .marquee{animation:none}.hero img.bg{animation:none}.page-hero::after,.closing .o{animation:none}.scrollcue::after{animation:none}
  html{scroll-behavior:auto}
}

.hero h1 em{color:var(--blush)}
.hero .btn-deep{animation:pulse 3.2s 2.5s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(212,30,76,.55)}70%,100%{box-shadow:0 0 0 18px rgba(212,30,76,0)}}
.logo img{transition:transform .5s var(--ease)}.logo:hover img{transform:scale(1.05) rotate(-1.5deg)}
.card h3{transition:color .3s}.card:hover h3{color:var(--deep)}
.marquee b{display:inline-block;animation:spin 6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.tabs{display:none}html.js .tabs{display:inline-flex}
.cat-h{font-family:var(--serif);font-size:2rem;margin:2.5rem 0 0}html.js .cat-h{display:none}
.cap-note{font-size:.85rem;color:var(--mute);margin-top:1rem}
.portrait{border-radius:var(--r);overflow:hidden;aspect-ratio:4/5}.portrait img{width:100%;height:100%;object-fit:cover}
.links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.big-link{display:block;font-family:var(--serif);font-weight:600;font-size:clamp(1.6rem,4vw,3rem);text-decoration:none;line-height:1.15;overflow-wrap:anywhere;background:linear-gradient(var(--deep),var(--deep)) 0 100%/0 2px no-repeat;transition:background-size .5s var(--ease)}
.big-link:hover{background-size:100% 2px}
.skip{position:absolute;left:8px;top:-60px;background:#fff;padding:.6rem 1rem;z-index:99;border-radius:8px}.skip:focus{top:8px}
body.lock .top{background:transparent;backdrop-filter:none;box-shadow:none}body.lock .top .logo{opacity:0}.top .logo{transition:opacity .3s}

/* ===== red + white pass ===== */
h1,h2{color:inherit}
.sec h2,.head-row h2{color:var(--deep)}
.sec h2 em,.sec h2 .it{color:var(--dusty)}
.hero video.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::before{background:linear-gradient(90deg,rgba(170,14,52,.9) 0%,rgba(216,31,75,.62) 48%,rgba(48,48,48,.12) 100%),linear-gradient(0deg,rgba(60,10,25,.45),transparent 45%)}
.hero h1 em{color:#FFD6E8}
.hero .btn-deep{background:#fff;color:var(--deep);animation:pulseW 3.2s 2.5s ease-out infinite}
.hero .btn-deep:hover{color:#fff}
@keyframes pulseW{0%{box-shadow:0 0 0 0 rgba(255,255,255,.6)}70%,100%{box-shadow:0 0 0 18px rgba(255,255,255,0)}}
.page-hero{background:var(--deep);color:#fff;border:0}
.page-hero .kicker{color:#fff}.page-hero h1{color:#fff}.page-hero h1 em{color:#FFD6E8}
.page-hero::after{background:var(--blush);opacity:.22}
.band{background:var(--deep);border:0}
.marquee{color:#fff}.marquee b{color:var(--blush)}
.closing{background:var(--deep)}.closing h2{color:#fff}.closing h2 em{color:#FFD6E8}
.foot{background:var(--deep);color:#fff}.foot h4{color:#FFD6E8}.foot a:hover{color:#FFD6E8}
.menu{background:var(--deep)}
.menu .foot{background:none;padding:0}.menu .foot a{color:#fff}.menu nav a small{color:#FFD6E8}.menu nav a:hover{color:#FFD6E8}
.burger[aria-expanded=true]{border-color:#fff}.burger[aria-expanded=true] span{background:#fff}
.sec.soft{background:#FFF4F8}
.tl .st.on::before{background:var(--deep)}
/* work tiles */
.wgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
@media(min-width:768px){.wgrid{grid-template-columns:repeat(3,1fr);gap:1.1rem}}
@media(min-width:1100px){.wgrid{grid-template-columns:repeat(4,1fr)}}
.g video{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--ease)}
.g:hover video{transform:scale(1.07)}
.g .play{position:absolute;left:.8rem;top:.8rem;width:2.1rem;height:2.1rem;border-radius:50%;background:rgba(255,255,255,.92);color:var(--deep);font-size:.7rem;display:grid;place-items:center;padding-left:2px}
.reelrail{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:2.5rem clamp(1.25rem,4vw,3rem) 1rem;scrollbar-width:none}
.reelrail::-webkit-scrollbar{display:none}
.reelrail .g{flex:none;width:min(62vw,250px);aspect-ratio:9/16;scroll-snap-align:start}
.lb .stage{display:flex;flex-direction:column;align-items:center;max-width:100%}
.lb .media img,.lb .media video{max-width:min(92vw,1000px);max-height:80vh;border-radius:var(--r);display:block;background:#000;animation:pop .6s var(--ease)}
.lb .pv,.lb .nx{transform:translateY(-50%)}
.lb .pv:hover,.lb .nx:hover{background:var(--deep);border-color:var(--deep);color:#fff}
.lb::backdrop,dialog.lb::backdrop{background:rgba(40,8,18,.94)}
.lb button:hover{background:#fff;color:var(--deep)}
.reelrail{scroll-padding-left:clamp(1.25rem,4vw,3rem)}
.hero img.bg{object-position:50% 38%}
.hero::before{background:linear-gradient(90deg,rgba(170,14,52,.88) 0%,rgba(216,31,75,.55) 45%,rgba(48,48,48,.05) 100%),linear-gradient(0deg,rgba(60,10,25,.4),transparent 40%)}
.hero::before{background:linear-gradient(90deg,rgba(150,12,45,.86) 0%,rgba(190,20,60,.55) 30%,rgba(190,20,60,.12) 58%,rgba(0,0,0,0) 75%),linear-gradient(0deg,rgba(60,10,25,.45),transparent 40%)}
.hero h1{max-width:13ch}
.hero img.bg{object-position:50% 30%}
.hero h1{max-width:18ch;font-size:clamp(2.8rem,6.3vw,6rem);text-shadow:0 2px 24px rgba(120,10,40,.35)}
.hero::before{background:linear-gradient(90deg,rgba(150,12,45,.88) 0%,rgba(185,20,58,.62) 32%,rgba(185,20,58,.15) 55%,rgba(0,0,0,0) 68%),linear-gradient(0deg,rgba(60,10,25,.4),transparent 40%)}
.portrait{aspect-ratio:1280/1117}

.two.wide-r{grid-template-columns:1fr}@media(min-width:900px){.two.wide-r{grid-template-columns:5fr 6fr;align-items:center}}
.portrait.tall{aspect-ratio:2/3;margin:0;max-width:520px}
.story h2{margin-bottom:1.5rem}.story p{font-size:1.1rem}.story .lead{font-size:clamp(1.25rem,2vw,1.5rem);color:var(--charcoal)}
.pull{font-family:var(--serif);font-style:italic;font-weight:600;font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.05;color:var(--deep);margin:2.5rem 0;padding:0}
.family{margin:0;border-radius:var(--r);overflow:hidden}.family img{width:100%;height:auto}

/* ===== About: Meet Sam ===== */
@font-face{font-family:"Archivo Black";src:url(fonts/archivo-black-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
:root{--black:"Archivo Black","Arial Black",Impact,sans-serif}
.deco{position:absolute;pointer-events:none;display:block}
.deco svg{width:100%;height:100%;display:block}
.mh{position:relative;overflow:hidden;background:#fff;isolation:isolate}
.mh-grid{display:grid;gap:1rem;align-items:center;padding-top:clamp(2.5rem,6vw,5rem);padding-bottom:clamp(3rem,6vw,5rem)}
@media(min-width:960px){.mh-grid{grid-template-columns:1fr 1.05fr;min-height:min(88svh,860px)}}
.mh-copy{position:relative;z-index:3}
.meet{font-family:var(--serif);font-style:italic;font-weight:600;font-size:clamp(5rem,15vw,12rem);line-height:.82;color:var(--deep);letter-spacing:-.03em;margin:.4rem 0 1.5rem}
.meet .w>span{display:inline-block;transform:translateY(110%);animation:up 1.1s var(--ease) .1s forwards}
.mh-lead{font-family:var(--serif);font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:1.08;font-weight:600;max-width:20ch;margin:0}
.mh-lead em{color:var(--deep)}
.mh-sub{font-size:1.15rem;color:var(--mute);margin:1.25rem 0 0;max-width:28rem}
.mh-stage{position:relative;min-height:clamp(520px,92vw,820px);display:flex;justify-content:center;align-items:flex-end}
.giant{position:absolute;left:50%;top:6%;transform:translateX(-50%);font-family:var(--black);font-size:clamp(9rem,31vw,27rem);line-height:.8;color:var(--deep);letter-spacing:-.05em;z-index:1;white-space:nowrap;animation:sink 1.3s var(--ease) .2s both}
@keyframes sink{from{opacity:0;transform:translate(-50%,-30px) scale(.94)}to{opacity:1;transform:translateX(-50%)}}
@media(min-width:960px){.giant{font-size:clamp(9rem,22vw,22rem);top:10%}}
.fig{position:relative;z-index:2;margin:0;height:clamp(480px,88vw,800px);animation:rise 1.2s var(--ease) .35s both;filter:drop-shadow(0 30px 40px rgba(120,10,40,.25))}
.fig img{height:100%;width:auto;max-width:none;display:block}
@keyframes rise{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}
.sticker{position:absolute;z-index:4;font:700 clamp(.85rem,1.5vw,1.1rem)/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:.7rem 1.1rem;border-radius:6px;box-shadow:0 8px 20px rgba(48,48,48,.18);white-space:nowrap}
.st1{background:var(--blush);color:var(--charcoal);left:6%;top:38%;transform:rotate(-8deg);animation:wob 5s ease-in-out infinite}
.st2{background:#fff;color:var(--deep);right:2%;top:30%;transform:rotate(6deg);animation:wob 6s ease-in-out -2s infinite}
.st3{background:var(--charcoal);color:#fff;left:12%;bottom:12%;transform:rotate(4deg);animation:wob 5.5s ease-in-out -1s infinite}
.st4{background:var(--deep);color:#fff;right:-.5rem;bottom:1.2rem;transform:rotate(-5deg);animation:wob 5s ease-in-out infinite}
@keyframes wob{50%{translate:0 -8px;rotate:2deg}}
.petal{color:var(--blush);animation:spin 40s linear infinite}
@keyframes spin{to{rotate:360deg}}
.p1{width:min(42vw,520px);height:min(42vw,520px);right:-8vw;top:-6vw;opacity:.8;z-index:0}
.p2{width:min(24vw,300px);height:min(24vw,300px);left:-6vw;bottom:-5vw;color:var(--deep);opacity:.15;z-index:0}
.p3{width:min(50vw,560px);height:min(50vw,560px);right:-12vw;bottom:-14vw;color:#fff;opacity:.12}
.star{color:var(--deep);animation:spin 18s linear infinite}
.s1{width:clamp(60px,9vw,120px);height:clamp(60px,9vw,120px);left:46%;bottom:6%;z-index:3}
.spark{color:var(--deep);animation:twinkle 3s ease-in-out infinite}
.k1{width:34px;height:34px;left:5%;top:14%}.k2{width:22px;height:22px;right:12%;bottom:18%;animation-delay:-1.4s;color:var(--dusty)}
@keyframes twinkle{50%{transform:scale(.45) rotate(45deg);opacity:.5}}
.band.alt{background:var(--charcoal)}.marquee.rev{animation-direction:reverse;animation-duration:55s;color:#fff}
.band.alt .marquee b{color:var(--blush)}
/* story */
.hi{display:grid;gap:3rem;align-items:center}
@media(min-width:960px){.hi{grid-template-columns:1.25fr .9fr;gap:5rem}}
.big-quote{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,3.8vw,3.2rem);line-height:1.12;letter-spacing:-.01em;margin:0 0 2rem}
.big-quote em{color:var(--deep)}
.cols2{display:grid;gap:1.25rem;color:var(--charcoal)}@media(min-width:760px){.cols2{grid-template-columns:1fr 1fr;gap:2.5rem}}
.cols2 p{margin:0}
.polaroid{position:relative;margin:0;background:#fff;padding:.9rem .9rem 3.2rem;box-shadow:0 30px 60px rgba(48,48,48,.18);transform:rotate(3deg);border:1px solid var(--line);transition:transform .6s var(--ease)}
.polaroid:hover{transform:rotate(0) scale(1.02)}
.polaroid::before{content:"";position:absolute;inset:-14px 14px 14px -14px;background:var(--blush);z-index:-1;border-radius:4px}
.polaroid img{width:100%;height:auto;display:block}
/* the feeling */
.feel{position:relative;background:var(--deep);color:#fff;overflow:hidden;padding:clamp(5rem,11vw,9rem) 0}
.feel .wrap{position:relative;z-index:1}
.feel-lead{font-family:var(--serif);font-weight:600;font-size:clamp(2rem,5vw,4.4rem);line-height:1.02;letter-spacing:-.02em;max-width:22ch;margin:0 0 3rem}
.feel-lead em{color:#FFD6E8}
.feel-list{list-style:none;margin:0 0 3.5rem;padding:0;display:grid;gap:0;border-top:1px solid rgba(255,255,255,.3)}
.feel-list li{padding:1.4rem 0;border-bottom:1px solid rgba(255,255,255,.3);font-family:var(--serif);font-size:clamp(1.4rem,2.8vw,2.3rem);line-height:1.15;transition:padding .5s var(--ease),color .3s}
.feel-list li:hover{padding-left:1.5rem;color:#FFD6E8}
.feel-end{font-family:var(--black);font-size:clamp(2.6rem,8vw,7rem);line-height:.95;letter-spacing:-.03em;margin:0;text-transform:uppercase}
.feel-end em{font-family:var(--serif);text-transform:none;color:#FFD6E8;font-weight:600}
/* vision */
.vision p{margin:1.25rem 0 0}
/* trio */
.trio{display:grid;gap:1.25rem;margin-top:3rem}@media(min-width:900px){.trio{grid-template-columns:repeat(3,1fr)}}
.tile{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:2rem;position:relative;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.tile:hover{transform:translateY(-8px) rotate(-.6deg);box-shadow:0 26px 50px rgba(212,30,76,.16)}
.tile .ico{display:block;width:44px;height:44px;color:var(--deep);margin-bottom:1.5rem;transition:transform .8s var(--ease)}
.tile:hover .ico{transform:rotate(180deg) scale(1.15)}
.tile h3{font-size:1.9rem;line-height:1.05;color:var(--deep)}.tile p{margin:.9rem 0 0;color:var(--mute);font-size:1rem}
.journey{display:flex;align-items:center;gap:1rem;margin-top:3rem;font:700 .8rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--deep)}
.journey i{flex:1;height:2px;background:linear-gradient(90deg,var(--deep),var(--blush));transform-origin:left;transform:scaleX(0);transition:transform 1.4s var(--ease) .3s}
.journey.in i{transform:none}
.journey span{max-width:11rem}.journey span:last-child{text-align:right}
@media(max-width:700px){.sticker{font-size:.75rem;padding:.55rem .8rem}.st1{left:0}.st2{right:0}.st3{left:4%}.giant{top:12%}.mh-sub{font-size:1.05rem}}
.foot{background:var(--deep-dark)}.menu .foot{background:none}

/* ===== page headers + reviews (Meet Sam style) ===== */
.ph{position:relative;overflow:hidden;background:#fff;border-bottom:1px solid var(--line);isolation:isolate}
.ph .wrap{position:relative;z-index:2;padding-top:clamp(3.5rem,8vw,7rem);padding-bottom:clamp(3.5rem,8vw,7rem)}
.ph h1{color:var(--charcoal);max-width:16ch}.ph h1 em{color:var(--deep)}
.ph .lead{max-width:34rem}
.giantw{position:absolute;right:-1vw;bottom:-.08em;font-family:var(--black);font-size:clamp(6rem,23vw,21rem);line-height:.8;color:#FDE0EC;letter-spacing:-.05em;z-index:0;white-space:nowrap;animation:slidew 1.4s var(--ease) both}
@keyframes slidew{from{opacity:0;transform:translateX(8%)}to{opacity:1;transform:none}}
.ph .p1{width:min(30vw,360px);height:min(30vw,360px);right:auto;left:62%;top:-8vw;opacity:.7}
.ph .k1{left:auto;right:22%;top:18%;width:30px;height:30px}.ph .k2{right:6%;bottom:24%}
.st-ph{right:clamp(1rem,7vw,7rem);top:clamp(2rem,6vw,5rem);background:var(--deep);color:#fff;transform:rotate(5deg);animation:wob 5s ease-in-out infinite}
.intro{position:relative;overflow:hidden}.intro .big-quote{max-width:30ch;font-size:clamp(2.2rem,5.2vw,4.6rem)}
.intro .k1{left:auto;right:8%;top:12%;width:44px;height:44px}.intro .k2{right:20%;bottom:10%}
.love{position:relative;overflow:hidden;background:#fff;padding:clamp(4.5rem,10vw,9rem) 0;isolation:isolate}
.love .p3{color:var(--blush);opacity:.5;right:-14vw;top:-10vw;bottom:auto;z-index:-1}
.s2{width:70px;height:70px;left:3%;bottom:6%;color:var(--deep);opacity:.9;z-index:0}
.feat{position:relative;margin:3rem 0;padding:clamp(2rem,5vw,4rem);background:var(--deep);color:#fff;border-radius:var(--r);overflow:visible}
.feat .qmark{position:absolute;left:clamp(1rem,3vw,2.5rem);top:-.1em;font-family:var(--black);font-size:clamp(8rem,16vw,15rem);line-height:1;color:var(--blush);opacity:.55}
.feat blockquote{position:relative;margin:0;padding-top:2rem;font-family:var(--serif);font-weight:600;font-size:clamp(1.35rem,2.6vw,2.2rem);line-height:1.25}
.feat figcaption{margin-top:2rem;display:flex;flex-direction:column;gap:.2rem}
.feat figcaption b{font:700 1.1rem var(--sans);letter-spacing:.04em}.feat figcaption span{font-size:.9rem;opacity:.85}
.st-q{right:clamp(1rem,4vw,3rem);top:-1rem;background:var(--blush);color:var(--charcoal);transform:rotate(4deg);animation:wob 5s ease-in-out infinite}
.rgrid{columns:1;column-gap:1.25rem}
@media(min-width:760px){.rgrid{columns:2}}@media(min-width:1100px){.rgrid{columns:3}}
.rc{position:relative;break-inside:avoid;margin:0 0 1.25rem;padding:2.2rem 1.8rem 1.8rem;border-radius:var(--r);transform:rotate(var(--tilt,0deg));transition:transform .6s var(--ease),box-shadow .6s var(--ease);overflow:hidden}
html.js .rc.rv{transform:translateY(34px) rotate(var(--tilt,0deg))}html.js .rc.rv.in{transform:rotate(var(--tilt,0deg))}
.rc:hover,html.js .rc.rv.in:hover{transform:rotate(0deg) translateY(-6px);box-shadow:0 26px 50px rgba(212,30,76,.2)}
.rc .qmark{position:absolute;right:1rem;top:-.25em;font-family:var(--black);font-size:6.5rem;line-height:1;opacity:.22}
.rc blockquote{position:relative;margin:0;font-family:var(--serif);font-weight:600;font-size:1.5rem;line-height:1.22}
.rc figcaption{position:relative;margin-top:1.4rem;display:flex;flex-direction:column;font-size:.9rem}.rc figcaption b{font:700 1rem var(--sans)}
.c-pink{background:var(--blush);color:var(--charcoal)}.c-red{background:var(--deep);color:#fff}.c-dark{background:var(--charcoal);color:#fff}.c-white{background:#fff;color:var(--charcoal);border:2px solid var(--deep)}
.c-dark .qmark{color:var(--blush)}.c-red .qmark{color:var(--blush)}.c-white .qmark{color:var(--deep);opacity:.18}
.shortq blockquote{font-family:var(--black);font-weight:400;font-size:clamp(1.9rem,3.4vw,2.8rem);line-height:1;letter-spacing:-.02em;text-transform:uppercase;padding-top:1rem}
.love .links{margin-top:2rem}
.hero img.bg{object-position:60% 50%}
.hero::before{background:linear-gradient(90deg,rgba(150,12,45,.9) 0%,rgba(190,20,60,.7) 34%,rgba(190,20,60,.25) 58%,rgba(0,0,0,0) 75%),linear-gradient(0deg,rgba(60,10,25,.4),transparent 40%)}

/* WhatsApp button */
.wa{position:fixed;right:max(1rem,env(safe-area-inset-right,0px));bottom:max(1rem,env(safe-area-inset-bottom,0px));z-index:40;display:flex;align-items:center;gap:.6rem;height:58px;min-width:58px;padding:0 1.15rem 0 1rem;border-radius:999px;background:var(--deep);color:#fff;text-decoration:none;font:700 .95rem var(--sans);box-shadow:0 12px 30px rgba(212,30,76,.45);transition:transform .4s var(--ease),background .3s}
.wa svg{width:30px;height:30px;flex:none}
.wa::before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid var(--deep);animation:waring 2.6s ease-out infinite;pointer-events:none}
@keyframes waring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.5,1.9);opacity:0}}
.wa:hover{transform:translateY(-4px) scale(1.04);background:var(--deep-dark)}
.wa span{white-space:nowrap}
@media(max-width:767px){.wa{bottom:calc(5.2rem + env(safe-area-inset-bottom,0px));padding:0;width:58px;justify-content:center}.wa span{display:none}}
body.lock .wa{display:none}
