/* Tsheilla Events — "Champagne & Rose" couture system
   Layout concept: alternating ivory-paper and velvet-noir bands, editorial serif display, gold light as the motion language. */
:root{
  --paper:#FCF7F4; --paper-2:#F8E9EA; --linen:#EBD2D5; --white:#FFFDF9;
  --noir:#1F1219; --noir-2:#2D1A24; --noir-3:#3B2230;
  --ink:#2A201B; --ink-2:#5B4A3F; --muted:#8B7565;
  --gold:#B08A4F; --gold-hi:#E4C78F; --gold-lo:#8A6733; --gold-soft:#F1E3C8;
  --rose:#C68C95; --rose-deep:#93505C; --blush:#F5E3E1;
  --on-noir:#F8EDE8; --on-noir-2:#D8BEC3;
  --line:rgba(42,32,27,.13); --line-noir:rgba(236,178,190,.22);
  --display:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --body:"Jost","Helvetica Neue",Arial,sans-serif;
  --script:"Pinyon Script","Snell Roundhand","Apple Chancery",cursive;
  --ease:cubic-bezier(.2,.75,.15,1); --ease-io:cubic-bezier(.77,0,.18,1);
  --r:22px; --gut:max(16px,env(safe-area-inset-left,0px));
  --shadow:0 30px 70px -30px rgba(90,30,50,.38);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-weight:400;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.06;margin:0;color:inherit;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
em.i,.i{font-style:italic}
::selection{background:var(--gold-hi);color:var(--noir)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.wrap{width:100%;max-width:1280px;margin-inline:auto;padding-left:max(22px,env(safe-area-inset-left,0px));padding-right:max(22px,env(safe-area-inset-right,0px))}
.skip{position:fixed;left:12px;top:-60px;z-index:999;background:var(--noir);color:var(--on-noir);padding:.6rem 1rem;border-radius:10px;text-decoration:none;font-weight:600}
.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- type helpers ---------- */
.eyebrow{font-family:var(--body);font-weight:500;font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:.9rem}
.eyebrow::before{content:"";width:38px;height:1px;background:currentColor;opacity:.8}
.center .eyebrow::after{content:"";width:38px;height:1px;background:currentColor;opacity:.8}
.h-xl{font-size:clamp(2.9rem,7.6vw,6.4rem)}
.h-lg{font-size:clamp(2.3rem,5.2vw,4.2rem)}
.h-md{font-size:clamp(1.8rem,3.4vw,2.7rem)}
.h-sm{font-size:clamp(1.4rem,2.2vw,1.75rem)}
.gold-i{font-style:italic;color:var(--gold)}
.noir .gold-i{color:var(--gold-hi)}
.rose-i{font-style:italic;color:var(--rose-deep)}
.script{font-family:var(--script);font-weight:400;letter-spacing:0;line-height:1}
.lede{font-size:clamp(1.05rem,1.5vw,1.2rem);color:var(--ink-2);max-width:58ch;font-weight:300}
.noir .lede,.noir p{color:var(--on-noir-2)}
.muted{color:var(--muted)}
.shine{background:linear-gradient(100deg,var(--gold-lo) 0%,var(--gold-hi) 22%,#fff6df 30%,var(--gold-hi) 38%,var(--gold) 60%,var(--gold-lo) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 6s var(--ease-io) infinite}
@keyframes shine{0%{background-position:100% 0}55%,100%{background-position:-60% 0}}

/* ---------- buttons ---------- */
.btn{--bg:var(--noir);--fg:var(--on-noir);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;padding:1rem 1.9rem;border-radius:999px;background:var(--bg);color:var(--fg);font-family:var(--body);font-weight:500;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .5s var(--ease),box-shadow .5s var(--ease),background .4s,color .4s;white-space:nowrap}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,246,222,.55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--ease)}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{box-shadow:0 18px 40px -16px rgba(140,60,80,.55)}
.btn .arr{transition:transform .5s var(--ease)}
.btn:hover .arr{transform:translateX(5px)}
.btn-gold{--bg:linear-gradient(120deg,var(--gold-lo),var(--gold) 40%,var(--gold-hi));--fg:#1C140E;background:var(--bg)}
.btn-rose{--bg:var(--rose-deep);--fg:#FFF5F2}
.btn-line{--bg:transparent;--fg:var(--ink);border-color:var(--ink)}
.btn-line:hover{--bg:var(--ink);--fg:var(--paper)}
.btn-ghost{--bg:rgba(255,248,236,.06);--fg:#FFF6E7;border-color:rgba(255,240,214,.55);backdrop-filter:blur(6px)}
.btn-ghost:hover{--bg:#FFF6E7;--fg:var(--noir)}
.btn-sm{padding:.72rem 1.3rem;font-size:.72rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem}
.link{display:inline-flex;align-items:center;gap:.6rem;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;text-decoration:none;color:var(--rose-deep);padding-bottom:.25rem;background:linear-gradient(currentColor,currentColor) 0 100%/0% 1px no-repeat;transition:background-size .6s var(--ease),gap .4s var(--ease)}
.link:hover{background-size:100% 1px;gap:.9rem}
.noir .link{color:var(--gold-hi)}

/* ---------- header ---------- */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:120;background:var(--noir)}
.progress{position:fixed;top:env(safe-area-inset-top,0px);left:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--gold-lo),var(--gold-hi),var(--rose));z-index:130;pointer-events:none}
.site-header{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:110;transition:transform .6s var(--ease),background .5s,box-shadow .5s,padding .5s;color:#FFF6E7}
.site-header .bar{display:flex;align-items:center;gap:1.4rem;padding-block:1.15rem;transition:padding .5s var(--ease)}
.site-header.scrolled{background:rgba(251,246,239,.86);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 1px 0 var(--line),0 14px 40px -24px rgba(90,30,50,.35);color:var(--ink)}
.site-header.scrolled .bar{padding-block:.6rem}
.site-header.hide{transform:translateY(-110%)}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:inherit;flex:none}
.brand img{width:40px;height:auto;filter:drop-shadow(0 2px 10px rgba(0,0,0,.25));transition:transform .8s var(--ease)}
.brand:hover img{transform:rotate(-6deg) scale(1.06)}
.brand .wm{font-family:var(--display);font-weight:600;font-size:1.32rem;letter-spacing:.24em;line-height:1}
.brand .wm small{display:block;font-family:var(--body);font-weight:500;font-size:.52rem;letter-spacing:.62em;margin-top:.38rem;color:var(--gold-hi)}
.site-header.scrolled .brand .wm small{color:var(--gold)}
.nav{display:flex;align-items:center;gap:1.9rem;margin-left:auto}
.nav a{position:relative;text-decoration:none;font-size:.76rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding-block:.4rem;opacity:.92}
.nav a::after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;background:var(--gold-hi);transition:left .5s var(--ease),right .5s var(--ease)}
.site-header.scrolled .nav a::after{background:var(--gold)}
.nav a:hover::after,.nav a[aria-current="page"]::after{left:0;right:0}
.nav a[aria-current="page"]{opacity:1}
.head-cta{display:flex;align-items:center;gap:.8rem}
.head-phone{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-size:.82rem;letter-spacing:.06em;font-weight:500;white-space:nowrap}
.head-phone svg{width:16px;height:16px}
.site-header:not(.scrolled) .btn-head{--bg:rgba(255,248,236,.1);--fg:#FFF6E7;border-color:rgba(255,240,214,.6)}
.burger{display:none;margin-left:auto;width:48px;height:48px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;position:relative}
.burger span{position:absolute;left:14px;right:14px;height:1.5px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease),opacity .3s}
.burger span:nth-child(1){top:18px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:28px}
.menu-open .burger span:nth-child(1){top:23px;transform:rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){top:23px;transform:rotate(-45deg)}
.menu-open .site-header{color:#FFF6E7;background:transparent;box-shadow:none;backdrop-filter:none}
.menu-open .site-header .brand .wm small{color:var(--gold-hi)}
/* mobile overlay */
.mnav{position:fixed;inset:0;z-index:105;background:radial-gradient(120% 80% at 80% 0%,#4A2333 0%,var(--noir) 60%);color:var(--on-noir);display:flex;flex-direction:column;justify-content:center;padding:6.5rem max(28px,env(safe-area-inset-left,0px)) max(2rem,env(safe-area-inset-bottom,0px));clip-path:circle(0% at calc(100% - 44px) 44px);transition:clip-path .9s var(--ease-io);visibility:hidden}
.menu-open .mnav{clip-path:circle(150% at calc(100% - 44px) 44px);visibility:visible}
.mnav ol{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.mnav li{overflow:hidden}
.mnav a.ml{display:flex;align-items:baseline;gap:1rem;font-family:var(--display);font-size:clamp(2.1rem,9vw,3.2rem);line-height:1.15;text-decoration:none;transform:translateY(110%);transition:transform .9s var(--ease),color .3s}
.mnav a.ml small{font-family:var(--body);font-size:.7rem;letter-spacing:.2em;color:var(--gold-hi)}
.mnav a.ml[aria-current="page"]{color:var(--gold-hi);font-style:italic}
.menu-open .mnav a.ml{transform:none}
.mnav .mfoot{margin-top:2.2rem;display:grid;gap:.4rem;font-size:.95rem;color:var(--on-noir-2);opacity:0;transition:opacity .6s .5s}
.menu-open .mnav .mfoot{opacity:1}
.mnav .mfoot a{color:var(--gold-hi);text-decoration:none}

/* ---------- curtain / preloader ---------- */
.curtain{position:fixed;inset:0;z-index:200;background:var(--noir);display:grid;place-items:center;pointer-events:none;transform:translateY(-101%)}
.js .curtain.is-cover{transform:none;transition:none}
.curtain.lift{transform:translateY(-101%);transition:transform 1s var(--ease-io)}
.curtain.drop{transform:none;transition:transform .7s var(--ease-io);pointer-events:auto}
.curtain::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-hi),transparent)}
.curtain .cmark{width:64px;opacity:.95}
.preload{position:fixed;inset:0;z-index:210;background:var(--noir);display:grid;place-items:center;color:var(--on-noir);transition:transform 1.1s var(--ease-io)}
.preload.done{transform:translateY(-101%)}
.preload .pl-in{display:grid;justify-items:center;gap:1.1rem}
.preload img{width:110px;clip-path:inset(100% 0 0 0);animation:grow 1.4s .15s var(--ease) forwards}
@keyframes grow{to{clip-path:inset(0 0 0 0)}}
.preload .pl-wm{font-family:var(--display);letter-spacing:.5em;font-size:1.1rem;padding-left:.5em;opacity:0;animation:fadeUp .9s .9s var(--ease) forwards}
.preload .pl-line{width:160px;height:1px;background:rgba(228,199,143,.2);position:relative;overflow:hidden}
.preload .pl-line::after{content:"";position:absolute;inset:0;background:var(--gold-hi);transform:scaleX(0);transform-origin:0 50%;animation:bar 1.6s .2s var(--ease-io) forwards}
@keyframes bar{to{transform:scaleX(1)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ---------- hero (home) ---------- */
.hero{position:relative;min-height:min(100svh,980px);display:flex;align-items:flex-end;background:var(--noir);color:#FFF7EA;overflow:hidden;isolation:isolate}
.hero .slides,.hero .slide{position:absolute;inset:0}
.hero .slide{opacity:0;transition:opacity 1.8s var(--ease)}
.hero .slide.on{opacity:1}
.hero .slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.14);transition:transform 9s linear}
.hero .slide.on img{transform:scale(1.02)}
.hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,13,21,.55) 0%,rgba(30,13,21,.08) 35%,rgba(30,13,21,.35) 62%,rgba(30,13,21,.88) 100%),radial-gradient(80% 60% at 15% 85%,rgba(30,13,21,.6),transparent)}
.dust{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;mix-blend-mode:screen}
.hero .inner{position:relative;z-index:2;width:100%;padding-block:9rem 7.5rem}
.hero h1{max-width:13ch;text-shadow:0 6px 40px rgba(20,10,0,.35)}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.08em}
.hero h1 .ln > span{display:inline-block}
.hero .sub{max-width:50ch;color:#F2E3CC;font-weight:300;font-size:clamp(1.05rem,1.6vw,1.22rem);margin:1.6rem 0 2.3rem}
.hero .eyebrow{color:var(--gold-hi)}
.hero-meta{position:absolute;z-index:3;left:0;right:0;bottom:2rem}
.hero-meta .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.slide-ctl{display:flex;gap:.6rem;align-items:center}
.slide-ctl button{position:relative;width:54px;height:30px;border:0;background:none;cursor:pointer;padding:0}
.slide-ctl button::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:rgba(255,240,214,.28)}
.slide-ctl button i{position:absolute;left:0;top:calc(50% - 1px);height:2px;width:0;background:var(--gold-hi)}
.slide-ctl button.on i{animation:fill var(--dur,7s) linear forwards}
@keyframes fill{to{width:100%}}
.slide-cap{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:#EAD8BC;min-width:12ch}
.scroll-cue{display:flex;align-items:center;gap:.8rem;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:#EAD8BC;text-decoration:none}
.scroll-cue .mouse{width:22px;height:34px;border:1.5px solid currentColor;border-radius:12px;position:relative}
.scroll-cue .mouse::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--gold-hi);animation:wheel 1.8s var(--ease) infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(-3px)}30%{opacity:1}100%{opacity:0;transform:translateY(10px)}}

/* ---------- page hero (inner pages) ---------- */
.phero{position:relative;background:var(--noir);color:var(--on-noir);overflow:hidden;isolation:isolate;padding-block:clamp(9rem,18vw,13rem) clamp(4rem,8vw,6.5rem)}
.phero .bg{position:absolute;inset:-8% 0;z-index:-2}
.phero .bg img{width:100%;height:100%;object-fit:cover;opacity:.42;filter:saturate(.9)}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(31,18,25,.6),rgba(31,18,25,.25) 40%,var(--noir) 100%),radial-gradient(60% 80% at 85% 10%,rgba(198,140,149,.22),transparent 70%)}
.phero h1{max-width:16ch;margin-top:1.3rem}
.phero .lede{margin-top:1.4rem;color:var(--on-noir-2)}
.crumbs{display:flex;gap:.6rem;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on-noir-2);margin-top:2.4rem;list-style:none;padding:0}
.crumbs a{color:var(--gold-hi);text-decoration:none}
.crumbs li+li::before{content:"✦";margin-right:.6rem;color:var(--gold);font-size:.6rem}
.phero .big-script{position:absolute;right:-1rem;bottom:-2.2rem;font-family:var(--script);font-size:clamp(6rem,18vw,15rem);color:rgba(228,199,143,.08);line-height:1;pointer-events:none;z-index:-1;white-space:nowrap}

/* ---------- sections ---------- */
.band{padding-block:clamp(4.5rem,10vw,8.5rem);position:relative}
.band.tight{padding-block:clamp(3.5rem,7vw,5.5rem)}
.band.paper2{background:var(--paper-2)}
.noir{background:var(--noir);color:var(--on-noir)}
.noir h2,.noir h3{color:#FFF6E7}
.sec-head{display:grid;gap:1.1rem;max-width:760px;margin-bottom:clamp(2.6rem,5vw,4rem)}
.sec-head.center{text-align:center;justify-items:center;margin-inline:auto}
.sec-head.side{max-width:none;grid-template-columns:1.1fr .9fr;align-items:end;gap:2rem}

/* marquee */
.marquee{background:var(--noir);color:var(--gold-soft);overflow:hidden;border-block:1px solid var(--line-noir);padding-block:1.25rem}
.marquee .track{display:flex;width:max-content;animation:mq 42s linear infinite}
.marquee span{font-family:var(--display);font-style:italic;font-size:clamp(1.4rem,2.6vw,2.1rem);padding-inline:1.6rem;display:inline-flex;align-items:center;gap:3.2rem;white-space:nowrap}
.marquee span::after{content:"✦";font-style:normal;font-size:.8rem;color:var(--gold)}
.marquee:hover .track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}

/* intro */
.intro{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.intro .stack{position:relative;aspect-ratio:4/4.6;max-width:560px}
.intro .stack figure{margin:0;position:absolute;overflow:hidden;border-radius:var(--r);box-shadow:var(--shadow)}
.intro .stack figure img{width:100%;height:100%;object-fit:cover}
.intro .stack .a{inset:0 22% 18% 0}
.intro .stack .b{inset:46% 0 0 40%;border:8px solid var(--paper)}
.intro .stack .seal{position:absolute;left:-14px;bottom:4%;width:132px;height:132px;border-radius:50%;background:var(--noir);display:grid;place-items:center;z-index:2;box-shadow:var(--shadow)}
.intro .stack .seal svg{position:absolute;inset:0;animation:spin 26s linear infinite}
.intro .stack .seal img{width:38px}
@keyframes spin{to{transform:rotate(360deg)}}
.intro .txt{display:grid;gap:1.4rem}
.intro .sig{font-family:var(--script);font-size:3rem;color:var(--rose-deep);line-height:1;margin-top:.4rem}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);margin-top:.6rem}
.facts div{padding:1.2rem 1rem 0 0}
.facts b{display:block;font-family:var(--display);font-weight:500;font-size:1.5rem;line-height:1.1}
.facts span{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* hover reveal list */
.hlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-noir)}
.hlist li{border-bottom:1px solid var(--line-noir)}
.hlist a{display:grid;grid-template-columns:4rem 1fr auto;align-items:center;gap:1.5rem;padding:1.6rem .4rem;text-decoration:none;color:var(--on-noir);position:relative;transition:padding .6s var(--ease),color .4s}
.hlist a .n{font-size:.75rem;letter-spacing:.2em;color:var(--gold)}
.hlist a h3{font-size:clamp(1.7rem,3.8vw,3.1rem);font-weight:400;transition:transform .6s var(--ease)}
.hlist a p{font-size:.92rem;color:var(--on-noir-2);max-width:34ch;text-align:right}
.hlist a .thumb{display:none}
.hlist a:hover{color:var(--gold-hi)}
.hlist a:hover h3{transform:translateX(14px);font-style:italic}
.hpreview{position:fixed;left:0;top:0;width:300px;aspect-ratio:4/5;border-radius:18px;overflow:hidden;pointer-events:none;z-index:60;opacity:0;transform:translate(-50%,-50%) scale(.6) rotate(-6deg);transition:opacity .45s var(--ease),transform .6s var(--ease);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.hpreview.on{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-3deg)}
.hpreview > *{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}
.hpreview > .on{opacity:1}

/* art panels (designed tiles for occasions without photography) */
.art{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 20% 0%,#4A2333 0%,var(--noir) 55%,#140A10 100%);display:grid;place-items:center;color:var(--gold-hi)}
.art.rose{background:radial-gradient(120% 90% at 80% 0%,#5A3138 0%,#2A1519 55%,#140A0C 100%)}
.art.pine{background:radial-gradient(120% 90% at 30% 0%,#22372D 0%,#132019 55%,#0A120E 100%)}
.art svg.motif{width:46%;max-width:180px;height:auto;filter:drop-shadow(0 0 18px rgba(228,199,143,.35))}
.art svg.motif *{fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.art .lbl{position:absolute;left:0;right:0;bottom:1.2rem;text-align:center;font-family:var(--script);font-size:1.9rem;color:var(--gold-soft)}
.art::before{content:"";position:absolute;inset:14px;border:1px solid rgba(228,199,143,.28);border-radius:calc(var(--r) - 8px);pointer-events:none}
.art .twinkle{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--gold-hi);box-shadow:0 0 10px 2px rgba(228,199,143,.7);animation:tw 3.2s ease-in-out infinite}
@keyframes tw{0%,100%{opacity:.15;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}}
.art svg.draw *{stroke-dasharray:var(--len,600);stroke-dashoffset:var(--len,600);transition:stroke-dashoffset 2.6s var(--ease)}
.art.in svg.draw *,.in .art svg.draw *,.no-anim .art svg.draw *{stroke-dashoffset:0}

/* signature teaser (noir) */
.sig-teaser{overflow:hidden}
.sig-fan{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.4vw,2rem);align-items:end;perspective:1200px}
.sig-fan a{display:block;text-decoration:none;color:inherit;position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4.2;box-shadow:0 40px 80px -30px rgba(0,0,0,.8);transition:transform .9s var(--ease),box-shadow .9s}
.sig-fan a:nth-child(2){transform:translateY(-2.4rem)}
.sig-fan a img{width:100%;height:100%;object-fit:cover;object-position:center 18%;transition:transform 1.4s var(--ease)}
.sig-fan a:hover img{transform:scale(1.07)}
.sig-fan a:hover{box-shadow:0 50px 90px -30px rgba(198,140,149,.45)}
.sig-fan .cap{position:absolute;inset:auto 0 0;padding:4rem 1.4rem 1.4rem;background:linear-gradient(transparent,rgba(28,11,19,.92));display:grid;gap:.2rem}
.sig-fan .cap small{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-hi)}
.sig-fan .cap h3{font-size:1.65rem;color:#FFF6E7}
.own{position:absolute;top:1rem;left:1rem;z-index:2;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;font-weight:500;padding:.42rem .8rem;border-radius:999px;color:#1C140E;background:linear-gradient(120deg,var(--gold),var(--gold-hi))}

/* spotlight (real wedding) */
.spot{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.spot .frame{position:relative;max-width:440px;justify-self:center}
.spot .frame::before{content:"";position:absolute;inset:-18px 18px 18px -18px;border:1px solid var(--gold);border-radius:240px 240px var(--r) var(--r)}
.spot .frame .img{border-radius:240px 240px var(--r) var(--r);overflow:hidden;box-shadow:var(--shadow);position:relative}
.spot .frame img{width:100%;aspect-ratio:3/4.3;object-fit:cover}
.quote-big{font-family:var(--display);font-style:italic;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.25;color:var(--ink)}

/* steps (real sequence) */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:2.15rem;height:1px;background:var(--line)}
.step{padding:0 1.6rem 0 0;position:relative}
.step .dot{width:4.3rem;height:4.3rem;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:1px solid var(--gold);font-family:var(--display);font-size:1.35rem;color:var(--gold);position:relative;transition:background .5s,color .5s}
.step:hover .dot{background:var(--noir);color:var(--gold-hi)}
.step h3{font-size:1.55rem;margin:1.4rem 0 .5rem}
.step p{color:var(--ink-2);font-size:.97rem}

/* testimonials */
.testi{max-width:900px;margin-inline:auto;text-align:center;display:grid;gap:1.6rem;justify-items:center}
.testi .q{font-family:var(--display);font-size:5rem;line-height:.5;color:var(--gold);height:2rem}
.tslides{display:grid}
.tslide{grid-area:1/1;opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .8s var(--ease);pointer-events:none}
.tslide.on{opacity:1;transform:none;pointer-events:auto}
.tslide blockquote{margin:0;font-family:var(--display);font-size:clamp(1.55rem,3.2vw,2.5rem);line-height:1.3;font-weight:400}
.tslide .who{margin-top:1.4rem;font-size:.76rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.sample{display:inline-block;margin-top:.8rem;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--linen);border-radius:999px;padding:.3rem .8rem}
.tnav{display:flex;gap:.7rem;align-items:center}
.tnav button{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-size:1.1rem;transition:background .4s,color .4s,border-color .4s}
.tnav button:hover{background:var(--noir);color:var(--gold-hi);border-color:var(--noir)}
.tdots{display:flex;gap:.45rem}
.tdots i{width:7px;height:7px;border-radius:50%;background:var(--linen);transition:background .4s,transform .4s}
.tdots i.on{background:var(--gold);transform:scale(1.3)}

/* faq */
.faq{display:grid;gap:0;max-width:880px;margin-inline:auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.4rem;padding:1.5rem .2rem;font-family:var(--display);font-size:clamp(1.25rem,2.2vw,1.6rem);font-weight:500;transition:color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--rose-deep)}
.faq summary i{flex:none;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);position:relative;transition:transform .5s var(--ease),background .4s}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;margin:-.75px 0 0 -6px;background:var(--gold)}
.faq summary i::after{transform:rotate(90deg);transition:transform .5s var(--ease)}
.faq details[open] summary i{background:var(--noir)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq .ans{overflow:hidden}
.faq .ans p{padding:0 3.5rem 1.6rem .2rem;color:var(--ink-2)}
.noir .faq,.noir .faq details{border-color:var(--line-noir)}

/* cta band */
.cta{position:relative;border-radius:calc(var(--r) + 10px);overflow:hidden;isolation:isolate;color:#FFF6E7;text-align:center;padding:clamp(3.5rem,8vw,6.5rem) clamp(1.4rem,6vw,5rem);display:grid;justify-items:center;gap:1.4rem}
.cta .bg{position:absolute;inset:-10% 0;z-index:-2}
.cta .bg img{width:100%;height:100%;object-fit:cover}
.cta::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,rgba(23,15,11,.88),rgba(110,52,62,.72))}
.cta h2{color:#FFF6E7;max-width:18ch}
.cta p{color:#F1DEC6;max-width:52ch;font-weight:300}

/* ---------- services page ---------- */
.svc{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center;padding-block:clamp(3rem,6vw,5rem);border-bottom:1px solid var(--line)}
.svc:last-child{border-bottom:0}
.svc.flip .media{order:2}
.svc .media{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:5/4;box-shadow:var(--shadow)}
.svc .media img,.svc .media .art{width:100%;height:100%;object-fit:cover}
.svc .media .art{position:absolute;inset:0;border-radius:var(--r)}
.svc .media .duo{position:absolute;right:-1px;bottom:-1px;width:42%;aspect-ratio:3/4;border:8px solid var(--paper);border-radius:18px 0 var(--r) 0;overflow:hidden}
.svc .media .duo img{height:100%}
.svc .txt{display:grid;gap:1.1rem}
.svc .n{font-family:var(--display);font-style:italic;color:var(--gold);font-size:1.15rem}
.ticks{list-style:none;padding:0;margin:.3rem 0 .6rem;display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1.4rem}
.ticks li{display:flex;gap:.6rem;align-items:baseline;font-size:.96rem;color:var(--ink-2)}
.ticks li::before{content:"✦";color:var(--gold);font-size:.7rem;flex:none}
.cloud{display:flex;flex-wrap:wrap;gap:.6rem}
.cloud span{border:1px solid var(--line-noir);border-radius:999px;padding:.55rem 1.1rem;font-size:.88rem;color:var(--on-noir-2);transition:background .4s,color .4s,border-color .4s,transform .4s var(--ease)}
.cloud span:hover{background:var(--gold-hi);color:var(--noir);border-color:var(--gold-hi);transform:translateY(-3px)}

/* ---------- signature page ---------- */
.look{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center;padding-block:clamp(4rem,9vw,7rem);border-bottom:1px solid var(--line-noir)}
.look:last-of-type{border-bottom:0}
.look.flip .lk-img{order:2}
.lk-img{position:relative;max-width:520px;width:100%;justify-self:center}
.lk-img .img{border-radius:300px 300px var(--r) var(--r);overflow:hidden;box-shadow:0 50px 100px -40px rgba(0,0,0,.9)}
.lk-img img{width:100%;aspect-ratio:3/4.1;object-fit:cover;object-position:center 15%}
.lk-img::before{content:"";position:absolute;inset:-16px;border:1px solid var(--line-noir);border-radius:316px 316px calc(var(--r) + 14px) calc(var(--r) + 14px)}
.lk-txt{display:grid;gap:1.2rem}
.lk-txt .num{font-family:var(--script);font-size:3.2rem;color:var(--gold-hi);line-height:1}
.swatches{display:flex;gap:.7rem;flex-wrap:wrap}
.swatches span{display:flex;align-items:center;gap:.55rem;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-noir-2);border:1px solid var(--line-noir);border-radius:999px;padding:.35rem .9rem .35rem .4rem}
.swatches span i{width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.lk-txt ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.lk-txt li{display:flex;gap:.7rem;color:var(--on-noir-2)}
.lk-txt li::before{content:"✦";color:var(--gold);font-size:.75rem;margin-top:.3rem}

/* ---------- gallery ---------- */
.filters{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:2.6rem}
.filters button{font-family:var(--body);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;padding:.75rem 1.35rem;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-2);cursor:pointer;transition:background .4s,color .4s,border-color .4s}
.filters button:hover{border-color:var(--gold);color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--noir);color:var(--gold-hi);border-color:var(--noir)}
.masonry{columns:3 300px;column-gap:1.2rem}
.masonry figure{margin:0 0 1.2rem;break-inside:avoid;position:relative;border-radius:18px;overflow:hidden;cursor:zoom-in;transition:opacity .5s var(--ease),transform .6s var(--ease);background:var(--linen)}
.masonry figure.out{opacity:0;transform:scale(.92)}
.masonry figure.gone{display:none}
.masonry img{width:100%;transition:transform 1.2s var(--ease),filter .6s}
.masonry figure:hover img{transform:scale(1.06)}
.masonry figcaption{position:absolute;inset:auto 0 0;padding:3rem 1.2rem 1.1rem;background:linear-gradient(transparent,rgba(30,13,21,.85));color:#FFF3DE;display:flex;justify-content:space-between;align-items:end;gap:.8rem;transform:translateY(30%);opacity:0;transition:transform .6s var(--ease),opacity .5s}
.masonry figure:hover figcaption,.masonry figure:focus-visible figcaption{transform:none;opacity:1}
.masonry figcaption b{font-family:var(--display);font-weight:500;font-size:1.3rem;line-height:1.15}
.masonry figcaption small{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-hi);white-space:nowrap}
.masonry figure.artfig .art{aspect-ratio:4/5}
@media (hover:none){.masonry figcaption{transform:none;opacity:1}}

/* ---------- lightbox / modal / popup ---------- */
.lb{position:fixed;inset:0;z-index:150;background:rgba(28,11,19,.95);display:grid;grid-template-rows:1fr auto;place-items:center;padding:4.5rem max(16px,env(safe-area-inset-left,0px)) max(1.5rem,env(safe-area-inset-bottom,0px));opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
.lb.open{opacity:1;visibility:visible}
.lb img{max-width:min(1100px,100%);max-height:72vh;border-radius:14px;object-fit:contain;transform:scale(.94);transition:transform .7s var(--ease),opacity .35s}
.lb.open img{transform:none}
.lb .bar{display:flex;align-items:center;gap:1rem;color:#F3E4CC;flex-wrap:wrap;justify-content:center;margin-top:1.2rem}
.lb .cap{font-family:var(--display);font-size:1.3rem;text-align:center}
.icon-btn{width:50px;height:50px;border-radius:50%;border:1px solid rgba(255,240,214,.4);background:rgba(255,246,230,.06);color:#FFF3DE;cursor:pointer;font-size:1.1rem;display:grid;place-items:center;transition:background .4s,color .4s}
.icon-btn:hover{background:var(--gold-hi);color:var(--noir)}
.lb .x{position:absolute;top:max(1rem,env(safe-area-inset-top,0px));right:max(1rem,env(safe-area-inset-right,0px))}
.modal{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));visibility:hidden}
.modal.open{visibility:visible}
.modal .scrim{position:absolute;inset:0;background:rgba(30,13,21,.7);backdrop-filter:blur(6px);opacity:0;transition:opacity .5s}
.modal.open .scrim{opacity:1}
.modal .box{position:relative;width:min(760px,100%);max-height:88vh;overflow:auto;background:var(--paper);border-radius:calc(var(--r) + 6px);box-shadow:0 60px 120px -40px rgba(0,0,0,.7);opacity:0;transform:translateY(40px) scale(.96);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.modal.open .box{opacity:1;transform:none}
.modal .box .x{position:absolute;top:.9rem;right:.9rem;z-index:3;border-color:var(--line);color:var(--ink);background:rgba(251,246,239,.85)}
.modal .box .x:hover{background:var(--noir);color:var(--gold-hi)}
.reader img{width:100%;aspect-ratio:16/8;object-fit:cover}
.reader .art{aspect-ratio:16/8}
.reader .body{padding:clamp(1.6rem,4vw,3rem);display:grid;gap:1rem}
.reader .body p{color:var(--ink-2)}
.reader .body h3{font-size:1.5rem;margin-top:.6rem}
.popup .box{display:grid;grid-template-columns:.9fr 1.1fr;max-width:820px;width:min(820px,100%);overflow:hidden}
.popup .pimg{position:relative;min-height:100%}
.popup .pimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.popup .pbody{padding:clamp(1.8rem,4vw,3rem);display:grid;gap:1rem;align-content:center}
.popup .pbody .script{font-size:2.6rem;color:var(--rose-deep)}
.popup .pbody p{color:var(--ink-2)}
.popup .later{background:none;border:0;color:var(--muted);font:inherit;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;justify-self:start;padding:.3rem 0}

/* toast */
.toast{position:fixed;left:50%;bottom:max(1.4rem,env(safe-area-inset-bottom,0px));z-index:170;transform:translate(-50%,140%);background:var(--noir);color:var(--on-noir);padding:.95rem 1.4rem;border-radius:999px;font-size:.92rem;box-shadow:0 20px 50px -20px rgba(0,0,0,.6);display:flex;gap:.7rem;align-items:center;transition:transform .7s var(--ease);max-width:calc(100% - 32px)}
.toast.show{transform:translate(-50%,0)}
.toast::before{content:"✦";color:var(--gold-hi)}

/* floating actions */
.fab-call{position:fixed;left:max(1rem,env(safe-area-inset-left,0px));bottom:max(1rem,env(safe-area-inset-bottom,0px));z-index:90;display:flex;align-items:center;gap:.6rem;padding:.55rem 1.1rem .55rem .55rem;border-radius:999px;background:var(--noir);color:var(--on-noir);text-decoration:none;font-size:.82rem;letter-spacing:.06em;box-shadow:0 18px 40px -16px rgba(0,0,0,.6);transform:translateY(140%);transition:transform .7s var(--ease)}
.fab-call.show{transform:none}
.fab-call .ring{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(120deg,var(--gold),var(--gold-hi));color:var(--noir);position:relative}
.fab-call .ring::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--gold-hi);animation:pulse 2.4s var(--ease) infinite}
@keyframes pulse{0%{opacity:.9;transform:scale(.85)}100%{opacity:0;transform:scale(1.5)}}
.fab-call svg{width:17px;height:17px}
.to-top{position:fixed;right:max(1rem,env(safe-area-inset-right,0px));bottom:max(1rem,env(safe-area-inset-bottom,0px));z-index:90;width:54px;height:54px;border-radius:50%;border:0;background:var(--paper);color:var(--ink);cursor:pointer;box-shadow:0 14px 34px -14px rgba(90,30,50,.5);display:grid;place-items:center;transform:translateY(140%);transition:transform .7s var(--ease)}
.to-top.show{transform:none}
.to-top svg.ring{position:absolute;inset:0;transform:rotate(-90deg)}
.to-top svg.ring circle{fill:none;stroke-width:2}
.to-top svg.ring .bgc{stroke:var(--linen)}
.to-top svg.ring .fg{stroke:var(--gold);stroke-dasharray:157;stroke-dashoffset:157}

/* cursor */
.cursor{position:fixed;left:0;top:0;width:42px;height:42px;margin:-21px 0 0 -21px;border-radius:50%;border:1px solid var(--gold);pointer-events:none;z-index:180;opacity:0;transition:width .45s var(--ease),height .45s var(--ease),margin .45s var(--ease),background .4s,opacity .4s,border-color .4s;display:grid;place-items:center;mix-blend-mode:normal}
.cursor b{font-weight:500;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--noir);opacity:0;transition:opacity .3s}
.cursor.big{width:92px;height:92px;margin:-46px 0 0 -46px;background:var(--gold-hi);border-color:var(--gold-hi)}
.cursor.big b{opacity:1}
.cursor.link{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(228,199,143,.14)}
.cursor-dot{position:fixed;left:0;top:0;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--rose-deep);pointer-events:none;z-index:181;opacity:0}

/* ---------- about ---------- */
.about-story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.about-story .txt{display:grid;gap:1.3rem}
.about-story .txt p{color:var(--ink-2)}
.mark-story{display:grid;grid-template-columns:auto 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.mark-story .logo-disc{width:clamp(220px,28vw,340px);aspect-ratio:1;border-radius:50%;background:var(--white);display:grid;place-items:center;box-shadow:var(--shadow);position:relative}
.mark-story .logo-disc img{width:72%}
.mark-story .logo-disc::before{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px dashed var(--gold);animation:spin 60s linear infinite}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.value{padding:2.2rem 1.9rem;border-radius:var(--r);background:var(--white);border:1px solid var(--line);display:grid;gap:.9rem;align-content:start;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.value:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.value .ic{width:56px;height:56px;border-radius:50%;background:var(--blush);display:grid;place-items:center;color:var(--rose-deep)}
.value .ic svg{width:26px;height:26px}
.value h3{font-size:1.6rem}
.value p{color:var(--ink-2);font-size:.97rem}

/* ---------- packages ---------- */
.pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;align-items:stretch}
.pkg{border-radius:calc(var(--r) + 4px);background:var(--white);border:1px solid var(--line);padding:2.4rem 2rem 2.2rem;display:flex;flex-direction:column;gap:1.1rem;position:relative;transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.pkg:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.pkg .tier{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.pkg h3{font-size:2rem}
.pkg .price{font-family:var(--display);font-style:italic;font-size:1.25rem;color:var(--rose-deep);padding-bottom:1.1rem;border-bottom:1px solid var(--line)}
.pkg ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;flex:1}
.pkg li{display:flex;gap:.7rem;font-size:.96rem;color:var(--ink-2)}
.pkg li::before{content:"";flex:none;width:16px;height:16px;margin-top:.3rem;border-radius:50%;background:var(--gold-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.3l2.2 2.2 4.8-5' fill='none' stroke='%238A6733' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat}
.pkg .btn{align-self:stretch}
.pkg.feat{background:var(--noir);color:var(--on-noir);border-color:var(--noir);transform:translateY(-14px)}
.pkg.feat:hover{transform:translateY(-22px)}
.pkg.feat h3{color:#FFF6E7}
.pkg.feat li{color:var(--on-noir-2)}
.pkg.feat .price{color:var(--gold-hi);border-color:var(--line-noir)}
.pkg.feat li::before{background-color:rgba(228,199,143,.18)}
.pkg .ribbon{position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;padding:.5rem 1rem;border-radius:999px;background:linear-gradient(120deg,var(--gold),var(--gold-hi));color:var(--noir);white-space:nowrap}
.compare-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);background:var(--white)}
.compare{width:100%;border-collapse:collapse;min-width:640px}
.compare th,.compare td{padding:1rem 1.2rem;text-align:center;border-bottom:1px solid var(--line);font-size:.95rem}
.compare th:first-child,.compare td:first-child{text-align:left;color:var(--ink-2)}
.compare thead th{font-family:var(--display);font-size:1.25rem;font-weight:500;background:var(--paper-2)}
.compare tbody tr:last-child td{border-bottom:0}
.compare .y{color:var(--gold);font-size:1.1rem}
.compare .n{color:var(--linen)}
.addons{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.addon{border:1px solid var(--line-noir);border-radius:18px;padding:1.5rem 1.3rem;display:grid;gap:.5rem;transition:background .5s,border-color .5s}
.addon:hover{background:rgba(228,199,143,.07);border-color:var(--gold)}
.addon svg{width:34px;height:34px;color:var(--gold-hi)}
.addon svg *{fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.addon h3{font-size:1.3rem}
.addon p{font-size:.9rem}

/* ---------- blog ---------- */
.posts{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem}
.post{display:grid;grid-template-rows:auto 1fr;border-radius:var(--r);overflow:hidden;background:var(--white);border:1px solid var(--line);cursor:pointer;text-align:left;font:inherit;color:inherit;padding:0;transition:transform .7s var(--ease),box-shadow .7s var(--ease)}
.post:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.post .pm{aspect-ratio:16/10;overflow:hidden;position:relative}
.post .pm img,.post .pm .art{width:100%;height:100%;object-fit:cover;transition:transform 1.3s var(--ease)}
.post:hover .pm img{transform:scale(1.06)}
.post .pb{padding:1.7rem 1.8rem 1.9rem;display:grid;gap:.75rem;align-content:start}
.post .pb small{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.post .pb h3{font-size:1.8rem}
.post .pb p{color:var(--ink-2);font-size:.97rem}
.post .pb .link{margin-top:.3rem}
.post.wide{grid-column:1/-1;grid-template-columns:1.2fr 1fr;grid-template-rows:none}
.post.wide .pm{aspect-ratio:auto;min-height:360px}
.post.wide .pb{align-content:center;padding:2.6rem}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:.85fr 1.25fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:start}
.cinfo{display:grid;gap:1.1rem;position:sticky;top:6.5rem}
.ccard{border-radius:var(--r);padding:1.6rem;background:var(--white);border:1px solid var(--line);display:flex;gap:1.1rem;align-items:flex-start}
.ccard .ic{flex:none;width:50px;height:50px;border-radius:50%;background:var(--blush);color:var(--rose-deep);display:grid;place-items:center}
.ccard .ic svg{width:22px;height:22px}
.ccard h3{font-family:var(--body);font-weight:500;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.ccard .big{font-family:var(--display);font-size:1.7rem;line-height:1.2;text-decoration:none;color:var(--ink);display:block;margin-top:.2rem;user-select:all}
.ccard p{color:var(--ink-2);font-size:.95rem;margin-top:.3rem}
.copy-btn{margin-top:.6rem;background:none;border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;font:inherit;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;color:var(--ink-2)}
.copy-btn:hover{border-color:var(--gold);color:var(--ink)}
.qform{border-radius:calc(var(--r) + 6px);background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);padding:clamp(1.5rem,4vw,2.8rem);display:grid;gap:1.4rem}
.qsteps{display:flex;gap:.4rem;align-items:center}
.qsteps span{flex:1;height:3px;border-radius:3px;background:var(--linen);position:relative;overflow:hidden}
.qsteps span::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--gold),var(--gold-hi));transform:scaleX(0);transform-origin:0 50%;transition:transform .7s var(--ease)}
.qsteps span.on::after{transform:scaleX(1)}
.qlabel{display:flex;justify-content:space-between;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.qpane{display:none;gap:1.1rem}
.qpane.on{display:grid;animation:paneIn .7s var(--ease) both}
@keyframes paneIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.qpane h2{font-size:clamp(1.7rem,3vw,2.3rem)}
.chips{display:flex;flex-wrap:wrap;gap:.55rem}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-flex;padding:.65rem 1.1rem;border-radius:999px;border:1px solid var(--line);font-size:.92rem;cursor:pointer;transition:background .35s,color .35s,border-color .35s,transform .35s var(--ease)}
.chips span:hover{border-color:var(--gold)}
.chips input:checked+span{background:var(--noir);color:var(--gold-hi);border-color:var(--noir);transform:translateY(-2px)}
.chips input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.field{display:grid;gap:.4rem;position:relative}
.field > span{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);font-weight:500}
.field > span small{letter-spacing:.04em;text-transform:none;color:var(--muted);font-weight:400}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;width:100%;padding:.95rem 1.05rem;border-radius:14px;border:1px solid var(--linen);background:var(--paper);color:var(--ink);transition:border-color .3s,box-shadow .3s,background .3s}
.field textarea{resize:vertical;min-height:120px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);background:var(--white);box-shadow:0 0 0 4px rgba(228,199,143,.28)}
.field .err{display:none;color:#A2382E;font-size:.84rem}
.field.bad .err{display:block}
.field.bad input,.field.bad select{border-color:#C9564B}
.group-err{display:none;color:#A2382E;font-size:.84rem}
.group-err.show{display:block}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:var(--ink-2)}
.consent input{width:20px;height:20px;margin-top:.25rem;accent-color:var(--rose-deep);flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.qnav{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;align-items:center}
.done-box{display:none;gap:1rem;text-align:left}
.done-box.on{display:grid;animation:paneIn .7s var(--ease) both}
.done-box .tick{width:70px;height:70px;border-radius:50%;background:var(--noir);display:grid;place-items:center}
.done-box .tick svg{width:34px;height:34px}
.done-box .tick path{fill:none;stroke:var(--gold-hi);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:tick .9s .3s var(--ease) forwards}
@keyframes tick{to{stroke-dashoffset:0}}
.done-box pre{white-space:pre-wrap;font:inherit;font-size:.92rem;background:var(--paper);border:1px solid var(--linen);border-radius:14px;padding:1.1rem;max-height:280px;overflow:auto;margin:0}

/* ---------- prose ---------- */
.prose{max-width:760px;display:grid;gap:1rem}
.prose h2{font-size:2rem;margin-top:1.6rem}
.prose p{color:var(--ink-2)}

/* ---------- footer ---------- */
.site-footer{background:var(--noir);color:var(--on-noir-2);position:relative;overflow:hidden;isolation:isolate}
.site-footer .fcta{padding-block:clamp(4.5rem,9vw,7rem) clamp(3rem,6vw,4.5rem);display:grid;grid-template-columns:1.4fr auto;gap:2rem;align-items:end;border-bottom:1px solid var(--line-noir)}
.site-footer .fcta h2{color:#FFF6E7;max-width:14ch}
.site-footer .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:2.4rem;padding-block:3.6rem 3rem}
.site-footer h3{font-family:var(--body);font-size:.72rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:1.2rem}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.site-footer a{color:var(--on-noir-2);text-decoration:none;transition:color .3s}
.site-footer a:hover{color:var(--gold-hi)}
.site-footer .fbrand{display:grid;gap:1.1rem;align-content:start}
.site-footer .fbrand .brand{color:#FFF6E7}
.site-footer .fbrand p{max-width:36ch;font-size:.95rem}
.site-footer .tag{font-family:var(--script);font-size:2rem;color:var(--rose);line-height:1.1}
.socials{display:flex;gap:.6rem}
.socials a{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-noir);display:grid;place-items:center;transition:background .4s,color .4s,border-color .4s}
.socials a:hover{background:var(--gold-hi);color:var(--noir);border-color:var(--gold-hi)}
.socials svg{width:18px;height:18px}
.site-footer .fine{border-top:1px solid var(--line-noir);padding-block:1.4rem max(1.6rem,calc(env(safe-area-inset-bottom,0px) + 4.5rem));display:flex;justify-content:space-between;gap:1rem 2rem;flex-wrap:wrap;font-size:.82rem}
.site-footer .fine p{max-width:80ch}
.site-footer .giant{font-family:var(--script);font-size:clamp(7rem,22vw,20rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(228,199,143,.14);text-align:center;white-space:nowrap;margin:0 0 -.12em;user-select:none;pointer-events:none}

/* ---------- reveal motion ---------- */
.js .rv{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv-img{clip-path:inset(12% 12% 12% 12% round var(--r));transition:clip-path 1.5s var(--ease)}
.js .rv-img img{transform:scale(1.25);transition:transform 1.8s var(--ease)}
.js .rv-img.in{clip-path:inset(0 0 0 0 round var(--r))}
.js .rv-img.in img{transform:none}
.js .split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.js .split .w > span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease)}
.js .split.in .w > span{transform:none}
.d1{transition-delay:.1s!important}.d2{transition-delay:.2s!important}.d3{transition-delay:.3s!important}.d4{transition-delay:.4s!important}
.no-anim .rv,.no-anim .rv-img,.no-anim .rv-img img,.no-anim .split .w > span{opacity:1!important;transform:none!important;clip-path:none!important}

/* ---------- responsive ---------- */
@media (max-width:1380px){
  .nav{gap:1.3rem}
  .head-phone{display:none}
}
@media (max-width:1020px){
  .nav,.head-cta{display:none}
  .burger{display:block}
  .intro,.spot,.about-story,.svc,.look,.contact-grid{grid-template-columns:1fr}
  .svc.flip .media,.look.flip .lk-img{order:0}
  .steps{grid-template-columns:1fr 1fr;row-gap:2.6rem}
  .steps::before{display:none}
  .values,.pkgs{grid-template-columns:1fr}
  .pkg.feat{transform:none}.pkg.feat:hover{transform:translateY(-8px)}
  .addons{grid-template-columns:1fr 1fr}
  .site-footer .cols{grid-template-columns:1fr 1fr}
  .site-footer .fcta{grid-template-columns:1fr}
  .sec-head.side{grid-template-columns:1fr}
  .cinfo{position:static}
  .mark-story{grid-template-columns:1fr;justify-items:center;text-align:center}
  .intro .stack{margin-inline:auto;width:100%}
  .post.wide{grid-template-columns:1fr}
  .post.wide .pm{min-height:0;aspect-ratio:16/10}
}
@media (max-width:760px){
  body{font-size:16px}
  .hlist a{grid-template-columns:1fr auto;gap:.6rem 1rem;padding:1.2rem 0}
  .hlist a .n{grid-column:1/-1}
  .hlist a p{display:none}
  .hlist a .thumb{display:block;width:76px;height:76px;border-radius:14px;overflow:hidden;grid-row:2;grid-column:2}
  .hlist a .thumb img,.hlist a .thumb .art{width:100%;height:100%;object-fit:cover}
  .hlist a .thumb .art svg.motif{width:60%}
  .hlist a .thumb .art::before,.hlist a .thumb .art .lbl{display:none}
  .sig-fan{grid-template-columns:1fr 1fr}
  .sig-fan a:nth-child(2){transform:none}
  .sig-fan a:nth-child(3){grid-column:1/-1;aspect-ratio:4/3.4}
  .posts{grid-template-columns:1fr}
  .frow,.ticks{grid-template-columns:1fr}
  .popup .box{grid-template-columns:1fr}
  .popup .pimg{min-height:190px}
  .facts{grid-template-columns:1fr 1fr 1fr}
  .facts b{font-size:1.2rem}
  .facts span{font-size:.64rem;letter-spacing:.08em}
  .hero .inner{padding-block:8rem 7rem}
  .hero-meta .scroll-cue{display:none}
  .site-footer .cols{grid-template-columns:1fr}
  .addons{grid-template-columns:1fr}
  .btn{padding:.95rem 1.5rem;letter-spacing:.16em}
  .faq .ans p{padding-right:0}
  .intro .stack .seal{width:104px;height:104px;left:-6px}
  .fab-call .lbl{display:none}
  .fab-call{padding:.5rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important;scroll-behavior:auto!important}
  .marquee .track{animation:none}
}
.spot .frame .own,.lk-img .own{top:auto;bottom:1.1rem;left:50%;transform:translateX(-50%);white-space:nowrap}
.site-footer .btn,.site-footer .btn:hover{color:var(--fg)}
[hidden]{display:none!important}
.toast{visibility:hidden}.toast.show{visibility:visible}
.nav a{white-space:nowrap}

/* ---------- photo-rich, symmetric grids ---------- */
.mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.8rem,1.6vw,1.3rem)}
.mosaic .tile{position:relative;display:block;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;text-decoration:none;color:#FFF6E7;box-shadow:0 24px 50px -30px rgba(90,30,50,.5);isolation:isolate}
.mosaic .tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .8s}
.mosaic .tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(30,13,21,.82));z-index:1;transition:opacity .6s}
.mosaic .tile:hover img{transform:scale(1.08)}
.mosaic .tile .tcap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.4rem 1.4rem 1.3rem;display:grid;gap:.15rem;transition:transform .7s var(--ease)}
.mosaic .tile .tcap small{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-hi)}
.mosaic .tile .tcap b{font-family:var(--display);font-weight:500;font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.1}
.mosaic .tile:hover .tcap{transform:translateY(-6px)}
.mosaic .tile::before{content:"";position:absolute;inset:12px;border:1px solid rgba(228,199,143,0);border-radius:calc(var(--r) - 8px);z-index:2;transition:border-color .6s;pointer-events:none}
.mosaic .tile:hover::before{border-color:rgba(228,199,143,.6)}
.steps.photo::before{display:none}
.steps.photo{gap:1.4rem}
.steps.photo .step{padding:0;display:grid;align-content:start}
.steps.photo .sph{aspect-ratio:4/3.2;border-radius:var(--r);overflow:hidden;box-shadow:0 20px 40px -26px rgba(90,30,50,.55)}
.steps.photo .sph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.steps.photo .step:hover .sph img{transform:scale(1.06)}
.steps.photo .dot{margin:-2.15rem 0 0 1.2rem;position:relative;z-index:2;background:var(--paper)}
.pkg .pimg{margin:-2.4rem -2rem .4rem;aspect-ratio:16/10;overflow:hidden;border-radius:calc(var(--r) + 3px) calc(var(--r) + 3px) 0 0}
.pkg .pimg img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.pkg:hover .pimg img{transform:scale(1.06)}
.pkg .ribbon{z-index:3}
.masonry.gridded{columns:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.masonry.gridded figure{margin:0;aspect-ratio:4/5}
.masonry.gridded figure img{height:100%;object-fit:cover}
.masonry.gridded figure.halloween img{object-position:center 18%}
.svc .media .duo img{object-fit:cover;width:100%}
@media (max-width:1020px){
  .steps.photo{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .mosaic{grid-template-columns:1fr 1fr}
  .mosaic .tile .tcap{padding:1rem .9rem}
  .mosaic .tile .tcap small{font-size:.56rem;letter-spacing:.18em}
  .masonry.gridded{grid-template-columns:1fr 1fr;gap:.7rem}
  .masonry.gridded figcaption{padding:2rem .8rem .7rem}
  .masonry.gridded figcaption b{font-size:1rem}
  .masonry.gridded figcaption small{display:none}
  .masonry.gridded .own{font-size:.5rem;padding:.3rem .55rem;top:.6rem;left:.6rem}
  .steps.photo{grid-template-columns:1fr 1fr;gap:1.6rem 1rem}
  .steps.photo h3{font-size:1.25rem}
  .steps.photo .dot{width:3.3rem;height:3.3rem;margin-top:-1.65rem;margin-left:.8rem;font-size:1.1rem}
}
.hero .veil{background:linear-gradient(180deg,rgba(30,13,21,.6) 0%,rgba(30,13,21,.2) 32%,rgba(30,13,21,.45) 60%,rgba(30,13,21,.92) 100%),linear-gradient(90deg,rgba(30,13,21,.72) 0%,rgba(30,13,21,.35) 45%,transparent 75%)}

/* ---------- horizontal scroll showcase ---------- */
.hscroll{position:relative;background:var(--noir);color:var(--on-noir)}
.hs-sticky{position:relative;overflow:hidden;padding-block:clamp(4.5rem,9vw,7rem)}
.hs-head{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(1.6rem,3.5vw,2.8rem)}
.hs-head h2{color:#FFF6E7}
.hs-meta{display:grid;gap:.7rem;justify-items:end}
.hs-hint{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--on-noir-2);display:flex;align-items:center;gap:.7rem}
.hs-hint::after{content:"→";color:var(--gold-hi);animation:nudge 1.6s var(--ease) infinite}
@keyframes nudge{0%,100%{transform:none}50%{transform:translateX(6px)}}
.hs-bar{width:min(260px,40vw);height:2px;background:rgba(228,199,143,.18);border-radius:2px;overflow:hidden}
.hs-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--gold),var(--gold-hi),var(--rose));transform-origin:0 50%;transform:scaleX(.08)}
.hs-track{position:relative;z-index:2;display:flex;gap:clamp(1rem,2.2vw,1.8rem);padding-inline:max(22px,calc((100vw - 1280px)/2 + 22px));overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:.5rem}
.hs-track::-webkit-scrollbar{display:none}
.hs-card{flex:0 0 clamp(270px,27vw,400px);scroll-snap-align:center;text-decoration:none;color:inherit;display:grid;gap:1.1rem;align-content:start}
.hs-img{position:relative;aspect-ratio:4/5;border-radius:calc(var(--r) + 4px);overflow:hidden;box-shadow:0 40px 70px -40px rgba(0,0,0,.9);transform:scale(var(--s,1));transition:transform .2s linear}
.hs-img img{width:115%;max-width:none;height:100%;object-fit:cover;transform:translateX(var(--px,-6%));transition:filter .6s}
.hs-img::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,240,210,.32) 50%,transparent 65%);transform:translateX(-110%);transition:transform 1.1s var(--ease)}
.hs-card:hover .hs-img::after{transform:translateX(110%)}
.hs-card:hover .hs-img img{filter:saturate(1.15) brightness(1.05)}
.hs-txt{display:grid;gap:.45rem;padding-inline:.2rem}
.hs-n{font-size:.68rem;letter-spacing:.26em;color:var(--gold)}
.hs-txt h3{font-size:clamp(1.6rem,2.4vw,2.1rem);color:#FFF6E7;transition:color .4s}
.hs-card:hover .hs-txt h3{color:var(--gold-hi);font-style:italic}
.hs-txt p{font-size:.95rem;color:var(--on-noir-2);max-width:36ch}
.hs-end{display:grid;place-items:center;aspect-ratio:4/5;border:1px solid var(--line-noir);border-radius:calc(var(--r) + 4px);background:radial-gradient(90% 70% at 50% 0%,rgba(198,140,149,.22),transparent 70%)}
.hs-endin{display:grid;gap:1rem;justify-items:center;text-align:center;padding:2rem}
.hs-endin .script{font-size:2.6rem;color:var(--rose)}
.hs-endin h3{font-size:1.9rem;color:#FFF6E7}
.hs-dust{position:absolute;inset:0}
/* pinned mode (JS) */
.hs-on .hscroll{height:var(--hs-h,300vh)}
.hs-on .hs-sticky{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;padding-block:5.5rem 2rem}
.hs-on .hs-track{overflow:visible;scroll-snap-type:none;will-change:transform}
@media (max-width:760px){
  .hs-card{flex-basis:76vw}
  .hs-img{aspect-ratio:4/4.6}
  .hs-head{margin-bottom:1.2rem;gap:1rem}
  .hs-head h2{font-size:2rem}
  .hs-meta{justify-items:start}
  .hs-on .hs-sticky{padding-block:5rem 1.2rem}
  .hs-txt p{font-size:.9rem}
}

/* ---------- team band & duo ---------- */
.team-band{position:relative;min-height:min(92vh,820px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate;color:#FFF6E7}
.team-band .tb-img{position:absolute;inset:-10% 0;z-index:-2}
.team-band .tb-img img{width:100%;height:100%;object-fit:cover;animation:slowzoom 22s ease-in-out infinite alternate}
@keyframes slowzoom{from{transform:scale(1)}to{transform:scale(1.1)}}
.team-band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(30,13,21,.15) 20%,rgba(30,13,21,.9) 100%),linear-gradient(90deg,rgba(30,13,21,.7),transparent 70%)}
.team-band .tb-in{display:grid;gap:1.2rem;padding-block:6rem clamp(3.5rem,7vw,5.5rem)}
.team-band h2{color:#FFF6E7;max-width:15ch}
.team-band p{max-width:52ch;color:#F1DEC6;font-weight:300}
.team-duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,1.8vw,1.4rem)}
.team-duo figure{margin:0;position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/4.4}
.team-duo figure.wide{grid-column:1/-1;aspect-ratio:16/7}
.team-duo img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.team-duo figure:hover img{transform:scale(1.06)}
.team-duo figcaption{position:absolute;inset:auto 0 0;padding:3rem 1.5rem 1.3rem;background:linear-gradient(transparent,rgba(28,11,19,.88));display:grid;gap:.2rem}
.team-duo figcaption small{font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-hi)}
.team-duo figcaption b{font-family:var(--display);font-weight:500;font-size:1.6rem;color:#FFF6E7}
@media (max-width:760px){.team-duo figure{aspect-ratio:4/5}.team-duo figure.wide{aspect-ratio:4/3}.team-duo figcaption b{font-size:1.2rem}.team-duo figcaption{padding:2rem .9rem .9rem}}

/* ---------- living image animations ---------- */
.lk-img{animation:floaty 7s ease-in-out infinite}
.look.flip .lk-img{animation-delay:-3.5s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.lk-img::before{animation:glowring 4s ease-in-out infinite}
@keyframes glowring{0%,100%{border-color:rgba(228,199,143,.18);box-shadow:0 0 0 rgba(228,199,143,0)}50%{border-color:rgba(228,199,143,.6);box-shadow:0 0 40px rgba(228,199,143,.18)}}
.lk-img .img{position:relative}
.lk-img .img::after,.sig-fan a::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 38%,rgba(255,240,210,.35) 50%,transparent 62%);transform:translateX(-120%);animation:sweep 6s var(--ease-io) infinite;pointer-events:none;z-index:1}
.sig-fan a:nth-child(2)::after{animation-delay:2s}.sig-fan a:nth-child(3)::after{animation-delay:4s}
@keyframes sweep{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.sig-fan .cap,.sig-fan .own{z-index:2}
.lk-img .img img{animation:breathe 12s ease-in-out infinite alternate}
@keyframes breathe{from{transform:scale(1)}to{transform:scale(1.06)}}
.intro .stack .a .own{top:auto;bottom:1rem;left:auto;right:1rem}
@media (prefers-reduced-motion:reduce){.lk-img,.lk-img .img img,.team-band .tb-img img{animation:none}.lk-img .img::after,.sig-fan a::after{display:none}}
.about-story .intro{display:block}.about-story .intro .stack{max-width:520px;margin-inline:auto}

/* ---------- service bar under hero ---------- */
.svcbar{position:relative;z-index:5;margin-top:-3.6rem}
.sb-in{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1.6rem;background:var(--white);border:1px solid var(--line);border-radius:calc(var(--r) + 6px);padding:1.1rem 1.2rem 1.1rem 1.8rem;box-shadow:0 30px 60px -30px rgba(90,30,50,.45)}
.sb-lead{display:grid;gap:.2rem;padding-right:1.4rem;border-right:1px solid var(--line)}
.sb-lead small{font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.sb-lead b{font-family:var(--display);font-weight:500;font-size:1.45rem;line-height:1.1;white-space:nowrap}
.sb-items{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}
.sb-item{display:grid;justify-items:center;gap:.55rem;text-align:center;text-decoration:none;color:var(--ink);font-size:.8rem;letter-spacing:.04em;padding:.8rem .3rem;border-radius:16px;transition:background .4s,transform .5s var(--ease)}
.sb-item:hover{background:var(--blush);transform:translateY(-4px)}
.sb-ic{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--paper-2);color:var(--gold-lo);transition:background .4s,color .4s}
.sb-item:hover .sb-ic{background:var(--noir);color:var(--gold-hi)}
.sb-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* ---------- detailed service cards ---------- */
.hs-card{flex:0 0 min(860px,70vw);display:grid;grid-template-columns:1fr 1.05fr;gap:0;align-items:stretch;border-radius:calc(var(--r) + 6px);overflow:hidden;background:var(--noir-2);border:1px solid var(--line-noir);height:min(64vh,560px);transition:opacity .6s var(--ease),transform .7s var(--ease),border-color .6s;opacity:.5;transform:scale(.95)}
.hs-card.is-active{opacity:1;transform:none;border-color:rgba(228,199,143,.5);box-shadow:0 40px 90px -40px rgba(0,0,0,.95),0 0 60px -20px rgba(228,199,143,.18)}
.hs-img{aspect-ratio:auto;height:100%;border-radius:0;box-shadow:none;transform:none}
.hs-img img{width:100%;max-width:none;height:100%;object-fit:cover;transform:scale(1.14);will-change:transform;transition:none}
.hs-big{position:absolute;right:.6rem;bottom:-1.6rem;font-family:var(--display);font-style:italic;font-size:clamp(6rem,11vw,9.5rem);line-height:1;color:rgba(255,246,231,.18);-webkit-text-stroke:1px rgba(255,246,231,.45);pointer-events:none}
.hs-img::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,transparent 60%,rgba(35,26,21,.5))}
.hs-txt{padding:clamp(1.4rem,2.6vw,2.4rem);display:flex;flex-direction:column;gap:.75rem;justify-content:center;overflow:hidden}
.hs-txt h3{font-size:clamp(1.7rem,2.6vw,2.4rem)}
.hs-txt p{max-width:none;font-size:.96rem}
.hs-list{list-style:none;margin:.2rem 0;padding:.9rem 0 0;border-top:1px solid var(--line-noir);display:grid;gap:.45rem}
.hs-list li{display:flex;gap:.6rem;font-size:.92rem;color:#EADCC6}
.hs-list li::before{content:"✦";color:var(--gold);font-size:.7rem;margin-top:.3rem}
.hs-for{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.hs-for small{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-right:.3rem}
.hs-for span{font-size:.76rem;padding:.3rem .7rem;border:1px solid var(--line-noir);border-radius:999px;color:var(--on-noir-2)}
.hs-cta{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap;margin-top:.3rem}
.hs-card.is-active .hs-list li{animation:liIn .7s var(--ease) both}
.hs-card.is-active .hs-list li:nth-child(2){animation-delay:.08s}.hs-card.is-active .hs-list li:nth-child(3){animation-delay:.16s}.hs-card.is-active .hs-list li:nth-child(4){animation-delay:.24s}
@keyframes liIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.hs-end{grid-template-columns:1fr;flex-basis:min(520px,60vw);background:radial-gradient(90% 70% at 50% 0%,rgba(198,140,149,.24),var(--noir-2) 70%);aspect-ratio:auto}
.hs-endin p{color:var(--on-noir-2);max-width:34ch}
.hs-now{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-noir-2)}
.hs-now b{font-family:var(--display);font-size:1.6rem;font-weight:500;color:var(--gold-hi);letter-spacing:0}
.hs-now #hsTitle{color:#FFF6E7}
html:not(.hs-on) .hs-card{opacity:1;transform:none}
@media (max-width:1020px){
  .sb-in{grid-template-columns:1fr;padding:1.2rem}
  .sb-lead{border-right:0;padding-right:0;text-align:center}
  .sb-items{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:760px){
  .svcbar{margin-top:-2.4rem}
  .sb-lead b{font-size:1.2rem}
  .sb-item{font-size:.72rem;padding:.6rem .2rem}
  .sb-ic{width:44px;height:44px}
  .hs-card{flex-basis:86vw;grid-template-columns:1fr;grid-template-rows:38% 1fr;height:min(70svh,600px)}
  .hs-txt{padding:1.1rem 1.2rem 1.2rem;gap:.5rem;justify-content:flex-start}
  .hs-txt h3{font-size:1.5rem}
  .hs-txt p{font-size:.86rem;line-height:1.5}
  .hs-list{padding-top:.6rem;gap:.3rem}
  .hs-list li{font-size:.84rem}
  .hs-for span{font-size:.7rem;padding:.22rem .55rem}
  .hs-big{font-size:5rem;bottom:-1rem}
  .hs-meta{justify-items:start;gap:.5rem}
  .hs-hint{display:none}
  .hs-head h2{font-size:1.8rem}
  .hs-end{flex-basis:80vw}
}
@media (max-width:760px){
  .hs-on .hs-sticky{padding-block:4.6rem 4.4rem;justify-content:flex-start}
  .hs-head .eyebrow{display:none}
  .hs-head h2{font-size:1.6rem}
  .hs-head{margin-bottom:.9rem}
  .hs-on .hs-track{flex:1;min-height:0;align-items:stretch}
  .hs-on .hs-card{height:auto;max-height:640px}
  .hs-card{grid-template-rows:minmax(0,40%) 1fr}
  .hs-for{display:none}
  .hs-txt{justify-content:center}
}
@media (max-width:760px) and (max-height:760px){
  .hs-txt{justify-content:flex-start;gap:.35rem;padding-top:.8rem}
  .hs-txt > p,.hs-n{display:none}
  .hs-txt h3{font-size:1.3rem}
  .hs-list li:nth-child(4){display:none}
  .hs-card{grid-template-rows:minmax(0,36%) 1fr}
}

/* ===== v6: host hero ===== */
.hero-host .inner{padding-block:9rem 8rem}
.hero-host .hero-copy{max-width:640px}
.hero-host .slide img{filter:saturate(.85) brightness(.85)}
.hero-host .veil{background:linear-gradient(180deg,rgba(30,13,21,.62) 0%,rgba(30,13,21,.3) 35%,rgba(30,13,21,.55) 70%,rgba(30,13,21,.95) 100%),linear-gradient(90deg,rgba(30,13,21,.82) 0%,rgba(30,13,21,.45) 50%,rgba(30,13,21,.15) 100%)}
.hero-cut{position:absolute;z-index:2;right:max(2vw,calc((100vw - 1280px)/2));bottom:0;height:min(88%,820px);aspect-ratio:1044/1483;display:flex;align-items:flex-end;pointer-events:none}
.hero-cut img{position:relative;z-index:1;width:100%;height:auto;max-height:100%;object-fit:contain;object-position:bottom;-webkit-mask-image:linear-gradient(180deg,#000 82%,transparent 100%);mask-image:linear-gradient(180deg,#000 82%,transparent 100%);animation:hostIn 1.6s .4s var(--ease) both,hostFloat 8s 2s ease-in-out infinite;filter:drop-shadow(0 30px 60px rgba(0,0,0,.45))}
@keyframes hostIn{from{opacity:0;transform:translateY(40px) scale(.97)}to{opacity:1;transform:none}}
@keyframes hostFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.hero-cut .halo{position:absolute;left:8%;right:8%;top:6%;bottom:8%;border-radius:50%;background:radial-gradient(closest-side,rgba(228,199,143,.42),rgba(198,140,149,.25) 55%,transparent 75%);filter:blur(10px);animation:haloPulse 6s ease-in-out infinite}
@keyframes haloPulse{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
.hc-name{position:absolute;z-index:2;left:-1.5rem;bottom:22%;display:grid;gap:.1rem;padding:.8rem 1.2rem;border-radius:16px;background:rgba(31,18,25,.6);backdrop-filter:blur(10px);border:1px solid rgba(228,199,143,.35);animation:hostIn 1.2s 1.4s var(--ease) both}
.hc-name b{font-family:var(--script);font-weight:400;font-size:1.9rem;color:var(--gold-hi);line-height:1}
.hc-name small{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:#EAD8BC}
@media (max-width:1020px){.hero-cut{height:min(62%,620px);right:-4%;opacity:.95}.hero-host .hero-copy{max-width:560px}}
@media (max-width:760px){
  .hero-host{flex-direction:column;align-items:stretch;min-height:auto}
  .hero-host .inner{padding-block:7.5rem 0}
  .hero-cut{position:relative;right:auto;margin:1.2rem auto 0;height:auto;width:min(86vw,380px)}
  .hero-cut img{max-height:none}
  .hc-name{left:0;bottom:16%}
  .hc-name b{font-size:1.5rem}
  .hero-host .hero-meta{position:relative;bottom:auto;padding-block:.4rem 1.2rem;margin-top:-3rem;z-index:3}
}

/* ===== service strip (replaces overlapping card) ===== */
.svcstrip{background:var(--noir);border-top:1px solid var(--line-noir);border-bottom:1px solid var(--line-noir);padding-block:2.2rem 2.4rem;color:var(--on-noir)}
.ss-title{text-align:center;font-family:var(--display);font-size:clamp(1.3rem,2.2vw,1.7rem);margin-bottom:1.4rem;color:#FFF6E7}
.ss-title em{color:var(--gold-hi)}
.ss-row{display:grid;grid-template-columns:repeat(6,1fr)}
.ss-item{display:grid;justify-items:center;gap:.7rem;text-decoration:none;color:var(--on-noir-2);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;text-align:center;padding:.6rem .4rem;position:relative;transition:color .4s}
.ss-item+.ss-item::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:1px;background:linear-gradient(transparent,var(--line-noir),transparent)}
.ss-ic{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(228,199,143,.4);color:var(--gold-hi);transition:background .5s,color .5s,transform .6s var(--ease)}
.ss-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.ss-item:hover{color:#FFF6E7}
.ss-item:hover .ss-ic{background:var(--gold-hi);color:var(--noir);transform:translateY(-4px) rotate(-6deg)}
@media (max-width:760px){
  .svcstrip{padding-block:1.6rem 1.4rem}
  .ss-title{margin-bottom:1rem}
  .ss-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.4rem;margin-inline:-22px;padding-inline:22px;scrollbar-width:none}
  .ss-row::-webkit-scrollbar{display:none}
  .ss-item{flex:0 0 27%;scroll-snap-align:start;font-size:.62rem;letter-spacing:.12em}
  .ss-item+.ss-item::before{display:none}
  .ss-ic{width:50px;height:50px}
}

/* ===== founder ===== */
.fd-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.fd-photo{position:relative;max-width:500px;justify-self:center;width:100%}
.fd-frame{border-radius:260px 260px var(--r) var(--r);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/4.6}
.fd-frame img{width:100%;height:100%;object-fit:cover}
.fd-photo::before{content:"";position:absolute;inset:-16px 16px 16px -16px;border:1px solid var(--gold);border-radius:276px 276px calc(var(--r) + 8px) calc(var(--r) + 8px);pointer-events:none}
.fd-photo .seal{position:absolute;right:-10px;bottom:6%;width:124px;height:124px;border-radius:50%;background:var(--noir);display:grid;place-items:center;box-shadow:var(--shadow)}
.fd-photo .seal svg{position:absolute;inset:0;animation:spin 26s linear infinite}
.fd-photo .seal img{width:36px}
.fd-txt{display:grid;gap:1.3rem}
@media (max-width:1020px){.fd-grid{grid-template-columns:1fr}}
@media (max-width:760px){.fd-photo .seal{width:98px;height:98px;right:-4px}}

/* ===== reviews ===== */
.reviews{overflow:hidden}
.rv-head{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:end;margin-bottom:2.8rem;position:relative}
.rmarq{display:grid;gap:1.2rem;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.rrow{overflow:hidden}
.rtrack{display:flex;gap:1.2rem;width:max-content;animation:mq 60s linear infinite}
.rrow.rev .rtrack{animation-direction:reverse;animation-duration:70s}
.rmarq:hover .rtrack{animation-play-state:paused}
.rcard{margin:0;width:min(420px,80vw);flex:none;padding:1.8rem 1.8rem 1.6rem;border-radius:var(--r);background:linear-gradient(160deg,rgba(255,246,231,.07),rgba(255,246,231,.02));border:1px solid var(--line-noir);display:grid;gap:1rem;transition:border-color .5s,transform .5s var(--ease)}
.rcard:hover{border-color:rgba(228,199,143,.6);transform:translateY(-4px)}
.rcard .stars{color:var(--gold-hi);letter-spacing:.3em;font-size:.95rem}
.rcard blockquote{margin:0;font-family:var(--display);font-style:italic;font-size:1.32rem;line-height:1.4;color:#FFF6E7}
.rcard figcaption{display:flex;align-items:center;gap:.8rem}
.rav{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(228,199,143,.14);color:var(--gold-hi)}
.rav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.rcard b{display:block;font-weight:500;color:#FFF6E7;font-size:.95rem}
.rcard small{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
@media (max-width:1020px){.rv-head{grid-template-columns:1fr}}
@media (max-width:760px){.rcard blockquote{font-size:1.12rem}.rcard{padding:1.3rem}}

/* ===== NYC map ===== */
.nycmap{width:100%;height:auto;display:block}
.nycmap .nj{fill:#F6E2E3;stroke:#fff;stroke-width:2}
.nycmap .li{fill:#F6E2E3;stroke:#fff;stroke-width:2}
.nycmap .b{fill:#E7B4BB;stroke:#FFF6F4;stroke-width:2.5;transition:fill .5s}
.nycmap .b.mh{fill:#C98A93}
.nycmap .b.bk{fill:#DDA2AA}.nycmap .b.qn{fill:#EBC0C5}.nycmap .b.bx{fill:#E3AEB5}.nycmap .b.si{fill:#EFC9CD}
.nycmap .b:hover{fill:#B76E79}
.nycmap .lbl text{font-family:"Jost",Arial,sans-serif;font-size:11px;letter-spacing:2px;text-transform:uppercase;fill:#7A3E49;text-anchor:middle}
.nycmap .lbl .faint{fill:#C9A2A7}
.nycmap .lbl .mlbl{font-size:9.5px}
.nycmap .pin .pulse{fill:rgba(147,80,92,.35);transform-origin:center;animation:pinPulse 2.4s ease-out infinite}
.nycmap .pin .p2{animation-delay:1.2s}
@keyframes pinPulse{from{transform:scale(.4);opacity:.9}to{transform:scale(3.2);opacity:0}}
.nycmap .pin path{animation:pinBob 2.4s ease-in-out infinite}
@keyframes pinBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.map-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.map-card{border-radius:calc(var(--r) + 6px);overflow:hidden;box-shadow:var(--shadow);background:var(--blush)}
@media (max-width:1020px){.map-grid{grid-template-columns:1fr}}

/* ===== footer v2 ===== */
.site-footer .cols{grid-template-columns:1.3fr .8fr .9fr 1.2fr}
.fmap-card{display:block;border-radius:18px;overflow:hidden;border:1px solid var(--line-noir);transition:transform .6s var(--ease),box-shadow .6s}
.fmap-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(198,140,149,.5)}
.nycmap.mini .lbl text{font-size:12px}
.fphone{margin-top:1rem;font-size:.85rem;letter-spacing:.06em}
.fphone a{font-family:var(--display);font-size:1.6rem;color:#FFF6E7!important}
.ftop{color:var(--gold-hi)!important;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase}
@media (max-width:1020px){.site-footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.site-footer .cols{grid-template-columns:1fr 1fr;gap:2rem 1.2rem}.site-footer .fbrand,.site-footer .fmap{grid-column:1/-1}}

/* ===== about host CTA ===== */
.host-cta{position:relative;display:grid;grid-template-columns:1.2fr .8fr;align-items:end;gap:1rem;border-radius:calc(var(--r) + 10px);background:radial-gradient(90% 120% at 85% 100%,#5A3138 0%,var(--noir) 60%);color:#FFF6E7;overflow:hidden;padding:clamp(2.4rem,5vw,4rem) clamp(1.6rem,5vw,4rem) 0}
.hcc-txt{display:grid;gap:1.1rem;padding-bottom:clamp(2.4rem,5vw,4rem)}
.hcc-txt .script{font-size:2.4rem;color:var(--rose)}
.hcc-txt h2{color:#FFF6E7}
.hcc-txt p{color:#F1DEC6;max-width:44ch}
.hcc-img{position:relative;align-self:end;justify-self:center;width:min(380px,100%)}
.hcc-img img{position:relative;z-index:1;width:100%;-webkit-mask-image:linear-gradient(180deg,#000 85%,transparent);mask-image:linear-gradient(180deg,#000 85%,transparent)}
.hcc-img .halo{position:absolute;inset:10% 5% 0;border-radius:50%;background:radial-gradient(closest-side,rgba(228,199,143,.4),transparent 75%)}
@media (max-width:760px){.host-cta{grid-template-columns:1fr}.hcc-txt{padding-bottom:0}.hcc-img{width:78%}}
.nycmap .pin .pulse,.nycmap .pin path{transform-box:fill-box;transform-origin:center}
@media (max-width:760px){
  .hero-host .inner{order:1}
  .hero-host .hero-cut{order:2;margin-top:1.6rem}
  .hero-host .hero-meta{display:none}
  .hero-host .slides,.hero-host .veil,.hero-host .dust{z-index:0}
}

/* ===================== v7: wine & blush double theme ===================== */
.noir,.site-footer,.hscroll{background:radial-gradient(70% 55% at 88% 0%,rgba(201,110,135,.22),transparent 65%),radial-gradient(60% 50% at 0% 100%,rgba(228,199,143,.10),transparent 60%),var(--noir)}
.phero{background:var(--noir)}
.blush-band{background:linear-gradient(180deg,#FBEFF0 0%,#F6DFE3 100%)}
.band.paper2{background:linear-gradient(180deg,var(--paper-2),#FBF2F2)}

/* ---- What we plan (blush cards) ---- */
.svcstrip{position:relative;overflow:hidden;background:linear-gradient(160deg,#FCEFF1 0%,#F5D9DF 55%,#F9E8EA 100%);border:0;padding-block:clamp(3.5rem,7vw,5.5rem);color:var(--ink)}
.ss-orb{position:absolute;border-radius:50%;filter:blur(40px);pointer-events:none;animation:orb 14s ease-in-out infinite alternate}
.ss-orb.o1{width:380px;height:380px;left:-120px;top:-120px;background:rgba(228,199,143,.45)}
.ss-orb.o2{width:420px;height:420px;right:-140px;bottom:-160px;background:rgba(201,110,135,.35);animation-delay:-6s}
@keyframes orb{to{transform:translate(60px,40px) scale(1.15)}}
.ss-head{position:relative;text-align:center;display:grid;justify-items:center;gap:.2rem;margin-bottom:clamp(2rem,4vw,3rem)}
.ss-head .script{font-size:clamp(2.4rem,5vw,3.4rem);color:var(--gold);line-height:1}
.ss-head h2{color:var(--ink)}
.ss-row{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(.7rem,1.4vw,1.1rem)}
.ss-item{position:relative;display:grid;justify-items:center;align-content:start;gap:.55rem;padding:1.7rem .9rem 1.5rem;border-radius:26px;background:rgba(255,255,255,.62);backdrop-filter:blur(8px);border:1px solid rgba(201,110,135,.18);box-shadow:0 18px 40px -26px rgba(147,80,92,.5);color:var(--ink);text-decoration:none;text-transform:none;letter-spacing:0;font-size:1rem;transition:transform .6s var(--ease),box-shadow .6s var(--ease),background .5s,border-color .5s;overflow:hidden}
.ss-item+.ss-item::before{display:none}
.ss-item::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.75) 50%,transparent 65%);transform:translateX(-120%);transition:transform 1s var(--ease)}
.ss-item:hover{transform:translateY(-8px);background:#fff;border-color:rgba(176,138,79,.5);box-shadow:0 30px 60px -28px rgba(147,80,92,.55)}
.ss-item:hover::after{transform:translateX(120%)}
.ss-ic{width:66px;height:66px;border:0;background:linear-gradient(140deg,#F7DADF,#FCEFE6);color:var(--rose-deep);box-shadow:inset 0 0 0 1px rgba(176,138,79,.35),0 10px 24px -14px rgba(147,80,92,.6)}
.ss-ic svg{width:30px;height:30px;stroke-width:1.25}
.ss-item:hover .ss-ic{background:linear-gradient(140deg,var(--rose-deep),#6E2C3D);color:#FFF1E3;transform:rotate(-8deg) scale(1.05)}
.ss-t{font-family:var(--display);font-size:1.32rem;line-height:1.1;text-align:center}
.ss-item small{font-size:.74rem;color:var(--muted);text-align:center;line-height:1.35}
.ss-arr{font-size:.9rem;color:var(--gold);opacity:0;transform:translateX(-6px);transition:opacity .4s,transform .5s var(--ease)}
.ss-item:hover .ss-arr{opacity:1;transform:none}
@media (max-width:1020px){.ss-row{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){
  .ss-row{display:grid;grid-template-columns:1fr 1fr;overflow:visible;margin:0;padding:0;gap:.7rem}
  .ss-item{flex:none;padding:1.2rem .6rem 1.1rem;border-radius:22px}
  .ss-ic{width:56px;height:56px}
  .ss-t{font-size:1.15rem}
  .ss-arr{display:none}
}

/* ---- mobile hero cutout: upper body, tag below ---- */
@media (max-width:760px){
  .hero-host .hero-cut{width:min(84vw,360px);height:min(104vw,440px);overflow:hidden;align-items:flex-start;-webkit-mask-image:linear-gradient(180deg,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,#000 78%,transparent 100%)}
  .hero-host .hero-cut img{-webkit-mask-image:none;mask-image:none;object-position:top}
  .hero-host .hc-name{left:50%;bottom:9%;transform:translateX(-50%);white-space:nowrap;animation:none}
  .hero-host .hero-cut .halo{top:2%;bottom:20%}
}

/* ---- steps with photos on blush ---- */
.blush-band .steps.photo .dot{background:#FFF6F5}
.blush-band .steps.photo .sph{box-shadow:0 24px 44px -26px rgba(147,80,92,.6)}
.blush-band .step h3{color:var(--ink)}

/* ---- mosaic CTA tile ---- */
.mosaic .tile-cta{display:grid;place-content:center;justify-items:center;gap:.8rem;text-align:center;padding:1.5rem;background:radial-gradient(90% 70% at 50% 0%,rgba(201,110,135,.35),transparent 70%),var(--noir)}
.mosaic .tile-cta::after{display:none}
.mosaic .tile-cta .script{font-size:2.6rem;color:var(--rose)}
.mosaic .tile-cta b{font-family:var(--display);font-weight:500;font-size:clamp(1.3rem,2.2vw,1.8rem);color:#FFF6E7;line-height:1.15}

/* ---- map v2 animation ---- */
.nycmap .nj,.nycmap .li{fill:#F9E4E7;stroke:#fff;stroke-width:2}
.nycmap .b{stroke:#FFF8F6;stroke-width:2.5;stroke-linejoin:round;transform-box:fill-box;transform-origin:center;animation:boroIn 1s var(--d,0s) var(--ease) both}
.nycmap .b.bx{fill:#E7B2BB}.nycmap .b.qn{fill:#EDC3CA}.nycmap .b.bk{fill:#DFA0AB}.nycmap .b.si{fill:#F1CDD3}
.nycmap .b:hover{fill:#C97A88;transition:fill .4s}
@keyframes boroIn{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
.nycmap .waves path{animation:wave 6s ease-in-out infinite alternate}
.nycmap .waves path:nth-child(2){animation-delay:-2s}.nycmap .waves path:nth-child(3){animation-delay:-4s}
@keyframes wave{to{transform:translateX(18px)}}
.nycmap .routes path{animation:dash 1.6s linear infinite}
@keyframes dash{to{stroke-dashoffset:-18}}
.nycmap .dots circle{fill:#93505C;transform-box:fill-box;transform-origin:center;animation:dotPop 2.4s ease-in-out infinite}
.nycmap .dots circle:nth-child(2){animation-delay:.6s}.nycmap .dots circle:nth-child(3){animation-delay:1.2s}.nycmap .dots circle:nth-child(4){animation-delay:1.8s}
@keyframes dotPop{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.7);opacity:.5}}
.nycmap .cspin{animation:cspin 18s linear infinite;transform-box:fill-box;transform-origin:center}
@keyframes cspin{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}
.nycmap .pdrop{animation:pinDrop 1.1s .6s cubic-bezier(.3,1.6,.5,1) both}
@keyframes pinDrop{from{transform:translateY(-60px);opacity:0}to{transform:none;opacity:1}}
.nycmap .pdrop path:first-child{animation:pinBob 2.6s 1.8s ease-in-out infinite}
.nycmap .tag{animation:tagIn .8s 1.4s var(--ease) both}
@keyframes tagIn{from{opacity:0;transform:translate(186px,132px)}to{opacity:1;transform:translate(196px,132px)}}
.nycmap .lbl text{font-size:10.5px;fill:#7E3B4B}
.nycmap .lbl .mlbl{font-size:9px}
.map-card{background:#FBEAEC;padding:10px;border:1px solid rgba(201,110,135,.25)}
.map-card .nycmap{border-radius:18px}
.fmap-card{border-color:rgba(236,178,190,.3)}
@media (prefers-reduced-motion:reduce){.nycmap *{animation:none!important}}

/* ---- footer logo & credit ---- */
.flogo{display:block;width:min(230px,70%);margin-bottom:.2rem;filter:drop-shadow(0 10px 30px rgba(201,110,135,.25));transition:transform .8s var(--ease)}
.flogo:hover{transform:scale(1.03)}
.flogo img{width:100%;height:auto}
.site-footer .fine{align-items:center}
.powered{margin-left:auto;font-size:.8rem;letter-spacing:.06em;color:var(--on-noir-2)}
.powered a{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .9rem;border-radius:999px;border:1px solid rgba(166,226,46,.35);color:#F8EDE8!important;transition:background .4s,border-color .4s}
.powered a:hover{background:rgba(166,226,46,.12);border-color:#A6E22E}
.powered b{color:#A6E22E;font-weight:600;letter-spacing:.04em}
@media (max-width:760px){.powered{margin-left:0}.flogo{margin-inline:auto}.site-footer .fbrand{text-align:center;justify-items:center}.site-footer .socials{justify-content:center}}

/* ---- mobile menu v2 ---- */
.mnav{background:radial-gradient(90% 60% at 100% 0%,#5A2238 0%,transparent 60%),radial-gradient(80% 50% at 0% 100%,rgba(228,199,143,.18),transparent 60%),#1A0E15;justify-content:flex-start;padding-top:7rem;overflow-y:auto}
.mn-orb{position:absolute;border-radius:50%;filter:blur(50px);pointer-events:none;opacity:.55}
.mn-orb.a{width:260px;height:260px;right:-80px;top:20%;background:#C96E87;animation:orb 10s ease-in-out infinite alternate}
.mn-orb.b{width:220px;height:220px;left:-90px;bottom:8%;background:#B08A4F;animation:orb 12s ease-in-out infinite alternate-reverse}
.mn-script{position:absolute;right:-1rem;bottom:5.5rem;font-family:var(--script);font-size:7rem;color:rgba(236,178,190,.08);pointer-events:none;line-height:1}
.mn-kick{position:relative;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:1.4rem;opacity:0;transition:opacity .6s .3s}
.menu-open .mn-kick{opacity:1}
.mnav ol{position:relative;gap:0;border-top:1px solid rgba(236,178,190,.14)}
.mnav li{border-bottom:1px solid rgba(236,178,190,.14)}
.mnav a.ml{display:grid;grid-template-columns:2.4rem 1fr auto;align-items:center;gap:.4rem;font-size:clamp(1.9rem,8vw,2.6rem);padding-block:.55rem}
.mnav a.ml small{font-size:.66rem;color:var(--rose)}
.mnav a.ml i{font-style:normal;font-family:var(--body);font-size:1rem;color:var(--gold-hi);width:38px;height:38px;border-radius:50%;border:1px solid rgba(228,199,143,.35);display:grid;place-items:center;transition:background .4s,color .4s,transform .5s var(--ease)}
.mnav a.ml:hover i,.mnav a.ml[aria-current="page"] i{background:var(--gold-hi);color:var(--noir);transform:rotate(-30deg)}
.mnav a.ml[aria-current="page"] span{font-style:italic;background:linear-gradient(90deg,var(--gold-hi),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}
.mnav .mfoot{position:relative;margin-top:1.8rem;gap:1.1rem}
.mnav .mfoot .btn{justify-self:start}
.mf-row{display:flex;align-items:center;gap:.7rem}
.mf-ic{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(236,178,190,.3);color:var(--gold-hi)!important}
.mf-ic svg{width:19px;height:19px}
.mf-row span{display:grid;margin-left:.3rem}
.mf-row small{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--on-noir-2)}
.mf-row span a{font-family:var(--display);font-size:1.45rem;color:#FFF6E7!important}
.mnav .mfoot .btn{color:#1C140E!important}

/* ===================== v8: light / dark mode ===================== */
.theme-tog{width:44px;height:44px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;display:grid;place-items:center;position:relative;flex:none;transition:background .4s,transform .6s var(--ease)}
.theme-tog:hover{transform:rotate(25deg);background:rgba(228,199,143,.15)}
.theme-tog svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;position:absolute;transition:opacity .4s,transform .6s var(--ease)}
.theme-tog .moon{opacity:0;transform:rotate(-60deg) scale(.6)}
[data-theme="dark"] .theme-tog .sun{opacity:0;transform:rotate(60deg) scale(.6)}
[data-theme="dark"] .theme-tog .moon{opacity:1;transform:none}
.theme-tog{margin-left:.2rem}
@media (max-width:1020px){.theme-tog{margin-left:auto}.burger{margin-left:.6rem}}
.theme-anim,.theme-anim *{transition:background-color .6s ease,color .6s ease,border-color .6s ease,fill .6s ease!important}

:root[data-theme="dark"]{
  --paper:#170D13; --paper-2:#21131B; --white:#291820; --linen:#4A2F3C;
  --ink:#F6E9EC; --ink-2:#DCC3CA; --muted:#B0959D;
  --blush:#3A2030; --gold-soft:#3A2D20; --line:rgba(246,233,236,.12);
  --shadow:0 30px 70px -30px rgba(0,0,0,.75);
  color-scheme:dark;
}
[data-theme="dark"] body{background:var(--paper)}
[data-theme="dark"] .site-header.scrolled{background:rgba(23,13,19,.86);box-shadow:0 1px 0 var(--line),0 14px 40px -24px rgba(0,0,0,.7)}
[data-theme="dark"] .svcstrip{background:linear-gradient(160deg,#241420 0%,#2E1726 55%,#1E1018 100%)}
[data-theme="dark"] .ss-orb.o1{background:rgba(176,138,79,.25)}
[data-theme="dark"] .ss-orb.o2{background:rgba(201,110,135,.28)}
[data-theme="dark"] .ss-item{background:rgba(255,255,255,.05);border-color:rgba(236,178,190,.16);box-shadow:0 18px 40px -26px rgba(0,0,0,.8)}
[data-theme="dark"] .ss-item:hover{background:rgba(255,255,255,.09)}
[data-theme="dark"] .ss-item::after{background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.12) 50%,transparent 65%)}
[data-theme="dark"] .ss-ic{background:linear-gradient(140deg,#3A2030,#2A1822);color:var(--rose)}
[data-theme="dark"] .ss-head .script{color:var(--gold-hi)}
[data-theme="dark"] .blush-band{background:linear-gradient(180deg,#1E1118 0%,#28141F 100%)}
[data-theme="dark"] .blush-band .steps.photo .dot{background:var(--paper)}
[data-theme="dark"] .band.paper2{background:linear-gradient(180deg,#1E1118,#170D13)}
[data-theme="dark"] .rose-i{color:var(--rose)}
[data-theme="dark"] .eyebrow{color:var(--gold-hi)}
[data-theme="dark"] .btn-line{--fg:var(--ink);border-color:var(--ink)}
[data-theme="dark"] .btn-line:hover{--bg:var(--ink);--fg:var(--paper)}
[data-theme="dark"] .link{color:var(--rose)}
[data-theme="dark"] .step .dot{background:var(--paper);color:var(--gold-hi)}
[data-theme="dark"] .faq summary:hover{color:var(--rose)}
[data-theme="dark"] .map-card{background:#2A1822;border-color:rgba(236,178,190,.2)}
[data-theme="dark"] .fd-photo .seal,[data-theme="dark"] .intro .stack .seal{box-shadow:0 0 0 1px rgba(236,178,190,.2),var(--shadow)}
[data-theme="dark"] .intro .stack .b{border-color:var(--paper)}
[data-theme="dark"] .svc .media .duo{border-color:var(--paper)}
[data-theme="dark"] .value .ic,[data-theme="dark"] .ccard .ic{background:var(--blush);color:var(--rose)}
[data-theme="dark"] .pkg.feat{background:#2E1726;border-color:rgba(228,199,143,.4)}
[data-theme="dark"] .compare thead th{background:var(--paper-2)}
[data-theme="dark"] .compare .n{color:#5A3C49}
[data-theme="dark"] .filters button[aria-pressed="true"]{background:var(--gold-hi);color:var(--noir);border-color:var(--gold-hi)}
[data-theme="dark"] .chips input:checked+span{background:var(--gold-hi);color:var(--noir);border-color:var(--gold-hi)}
[data-theme="dark"] .field input,[data-theme="dark"] .field select,[data-theme="dark"] .field textarea{background:#1E1118;border-color:var(--linen);color:var(--ink)}
[data-theme="dark"] .field input:focus,[data-theme="dark"] .field select:focus,[data-theme="dark"] .field textarea:focus{background:#24151D}
[data-theme="dark"] .done-box pre{background:#1E1118;border-color:var(--linen)}
[data-theme="dark"] .modal .box .x{background:rgba(23,13,19,.85);color:var(--ink);border-color:var(--line)}
[data-theme="dark"] .to-top{background:#2A1822;color:var(--ink)}
[data-theme="dark"] .sample{border-color:var(--linen);color:var(--muted)}
[data-theme="dark"] .mosaic .tile{box-shadow:0 24px 50px -30px rgba(0,0,0,.9)}
[data-theme="dark"] .masonry figure{background:#2A1822}
[data-theme="dark"] ::selection{background:var(--rose);color:#fff}

/* ===================== v8: performance on phones ===================== */
@media (max-width:760px){
  .hero .slide img{transition:none;transform:none}
  .team-band .tb-img img{animation:none}
  .ss-orb,.mn-orb{filter:blur(30px)}
  .js .rv-img img{transform:scale(1.08)}
}
@media (max-width:1560px){.head-phone{display:none}}

/* ===================== v9: light-first colour play ===================== */
:root{--champ:#F7EEE2;--rose-mist:#F3D5DB;--blush-2:#FBEFF1}
html:not([data-theme="dark"]) .lite{color:var(--ink)}
html:not([data-theme="dark"]) .lite canvas.dust{display:none}
html:not([data-theme="dark"]) .lite h2,html:not([data-theme="dark"]) .lite .hs-head h2{color:var(--ink)}
html:not([data-theme="dark"]) .lite .lede,html:not([data-theme="dark"]) .lite > .wrap p:not(.eyebrow){color:var(--ink-2)}
html:not([data-theme="dark"]) .lite .eyebrow{color:var(--gold-lo)}
html:not([data-theme="dark"]) .lite .gold-i{color:var(--rose-deep)}
html:not([data-theme="dark"]) .lite .btn-ghost{--bg:transparent;--fg:var(--ink);border-color:var(--ink)}
html:not([data-theme="dark"]) .lite .btn-ghost:hover{--bg:var(--ink);--fg:var(--paper)}
html:not([data-theme="dark"]) .lite .sample{border-color:var(--linen)!important;color:var(--muted)!important}
/* tints */
html:not([data-theme="dark"]) .lite-blush{background:radial-gradient(60% 70% at 100% 0%,rgba(228,199,143,.25),transparent 60%),linear-gradient(170deg,#F8DDE2 0%,var(--blush-2) 60%,#FCF4F2 100%)}
html:not([data-theme="dark"]) .lite-rose{background:radial-gradient(60% 80% at 0% 0%,rgba(255,255,255,.6),transparent 60%),linear-gradient(160deg,#EFC2CB 0%,#F6DCE1 55%,#F9E9EB 100%)}
html:not([data-theme="dark"]) .lite-champ{background:radial-gradient(55% 70% at 100% 100%,rgba(201,110,135,.16),transparent 60%),linear-gradient(170deg,#F8F0E4 0%,#F6E6E2 100%)}
html:not([data-theme="dark"]) .lite-ivory{background:radial-gradient(60% 60% at 50% 0%,rgba(228,199,143,.22),transparent 65%),var(--paper)}
html:not([data-theme="dark"]) .band.paper2{background:linear-gradient(180deg,#F8F0E5,#FBF6EF)}
html:not([data-theme="dark"]) .founder{background:radial-gradient(50% 70% at 0% 50%,rgba(243,213,219,.55),transparent 70%),var(--paper)}

/* showcase on champagne: cards stay wine = dark patches */
html:not([data-theme="dark"]) .hscroll.lite .hs-now{color:var(--muted)}
html:not([data-theme="dark"]) .hscroll.lite .hs-now #hsTitle{color:var(--ink)}
html:not([data-theme="dark"]) .hscroll.lite .hs-now b{color:var(--rose-deep)}
html:not([data-theme="dark"]) .hscroll.lite .hs-hint{color:var(--muted)}
html:not([data-theme="dark"]) .hscroll.lite .hs-bar{background:rgba(147,80,92,.15)}
html:not([data-theme="dark"]) .hscroll.lite .hs-card{opacity:.82;box-shadow:0 30px 60px -34px rgba(90,30,50,.55)}
html:not([data-theme="dark"]) .hscroll.lite .hs-card.is-active{opacity:1;box-shadow:0 40px 80px -34px rgba(90,30,50,.7),0 0 0 1px rgba(176,138,79,.45)}
html:not([data-theme="dark"]) .hscroll.lite .hs-card:nth-child(even){background:linear-gradient(160deg,#4A2034,#2D1A24)}
html:not([data-theme="dark"]) .hscroll.lite .hs-end{background:radial-gradient(90% 70% at 50% 0%,rgba(255,255,255,.7),transparent 70%),linear-gradient(160deg,#F3D3D9,#FBEFF1);border-color:rgba(147,80,92,.25)}
html:not([data-theme="dark"]) .hscroll.lite .hs-end h3{color:var(--ink)}
html:not([data-theme="dark"]) .hscroll.lite .hs-end p{color:var(--ink-2)}
html:not([data-theme="dark"]) .hscroll.lite .hs-end .script{color:var(--rose-deep)}
html:not([data-theme="dark"]) .hscroll.lite .hs-end .link{color:var(--rose-deep)}

/* reviews on blush: alternating white and wine cards */
html:not([data-theme="dark"]) .reviews.lite .rcard{background:rgba(255,255,255,.75);border-color:rgba(147,80,92,.16);box-shadow:0 20px 40px -28px rgba(147,80,92,.5)}
html:not([data-theme="dark"]) .reviews.lite .rcard blockquote{color:var(--ink)}
html:not([data-theme="dark"]) .reviews.lite .rcard b{color:var(--ink)}
html:not([data-theme="dark"]) .reviews.lite .rcard .stars{color:var(--gold)}
html:not([data-theme="dark"]) .reviews.lite .rav{background:var(--blush);color:var(--rose-deep)}
html:not([data-theme="dark"]) .reviews.lite .rtrack .rcard:nth-child(3n+2){background:linear-gradient(160deg,#4A2034,#2D1A24);border-color:rgba(228,199,143,.3)}
html:not([data-theme="dark"]) .reviews.lite .rtrack .rcard:nth-child(3n+2) blockquote,html:not([data-theme="dark"]) .reviews.lite .rtrack .rcard:nth-child(3n+2) b{color:#FFF6E7}
html:not([data-theme="dark"]) .reviews.lite .rtrack .rcard:nth-child(3n+2) .stars{color:var(--gold-hi)}
html:not([data-theme="dark"]) .reviews.lite .rtrack .rcard:nth-child(3n+2) .rav{background:rgba(228,199,143,.15);color:var(--gold-hi)}

/* about: kind words cards (inline dark) -> mix */
html:not([data-theme="dark"]) .lite-blush .values .value{background:rgba(255,255,255,.8)!important;border-color:rgba(147,80,92,.16)!important}
html:not([data-theme="dark"]) .lite-blush .values .value p{color:var(--ink)!important}
html:not([data-theme="dark"]) .lite-blush .values .value:nth-child(2){background:linear-gradient(160deg,#4A2034,#2D1A24)!important;border-color:rgba(228,199,143,.3)!important}
html:not([data-theme="dark"]) .lite-blush .values .value:nth-child(2) p{color:#FFF6E7!important}
/* services: occasions on rose */
html:not([data-theme="dark"]) .lite-rose .cloud span{background:rgba(255,255,255,.7);border-color:rgba(147,80,92,.18);color:var(--ink)}
html:not([data-theme="dark"]) .lite-rose .cloud span:nth-child(5n+3){background:var(--noir);color:var(--gold-hi);border-color:var(--noir)}
html:not([data-theme="dark"]) .lite-rose .cloud span:hover{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}
/* packages add-ons on champagne */
html:not([data-theme="dark"]) .lite-champ .addon{background:rgba(255,255,255,.75);border-color:rgba(176,138,79,.25)}
html:not([data-theme="dark"]) .lite-champ .addon h3{color:var(--ink)}
html:not([data-theme="dark"]) .lite-champ .addon p{color:var(--ink-2)}
html:not([data-theme="dark"]) .lite-champ .addon svg{color:var(--rose-deep)}
html:not([data-theme="dark"]) .lite-champ .addon:nth-child(even){background:var(--noir);border-color:var(--noir)}
html:not([data-theme="dark"]) .lite-champ .addon:nth-child(even) h3{color:#FFF6E7}
html:not([data-theme="dark"]) .lite-champ .addon:nth-child(even) p{color:var(--on-noir-2)}
html:not([data-theme="dark"]) .lite-champ .addon:nth-child(even) svg{color:var(--gold-hi)}
/* service strip: one wine card for rhythm */
html:not([data-theme="dark"]) .ss-item:nth-child(3n+2){background:linear-gradient(160deg,#4A2034,#2D1A24);border-color:rgba(228,199,143,.3)}
html:not([data-theme="dark"]) .ss-item:nth-child(3n+2) .ss-t{color:#FFF6E7}
html:not([data-theme="dark"]) .ss-item:nth-child(3n+2) small{color:var(--on-noir-2)}
html:not([data-theme="dark"]) .ss-item:nth-child(3n+2) .ss-ic{background:linear-gradient(140deg,rgba(228,199,143,.25),rgba(228,199,143,.08));color:var(--gold-hi)}
html:not([data-theme="dark"]) .ss-item:nth-child(3n+2)::after{background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.15) 50%,transparent 65%)}
@media (max-width:760px){
  html:not([data-theme="dark"]) .ss-item:nth-child(3n+2){background:rgba(255,255,255,.62);border-color:rgba(201,110,135,.18)}
  html:not([data-theme="dark"]) .ss-item:nth-child(3n+2) .ss-t{color:var(--ink)}
  html:not([data-theme="dark"]) .ss-item:nth-child(3n+2) small{color:var(--muted)}
  html:not([data-theme="dark"]) .ss-item:nth-child(3n+2) .ss-ic{background:linear-gradient(140deg,#F7DADF,#FCEFE6);color:var(--rose-deep)}
  html:not([data-theme="dark"]) .ss-item:nth-child(4n+1){background:linear-gradient(160deg,#4A2034,#2D1A24);border-color:rgba(228,199,143,.3)}
  html:not([data-theme="dark"]) .ss-item:nth-child(4n+1) .ss-t{color:#FFF6E7}
  html:not([data-theme="dark"]) .ss-item:nth-child(4n+1) small{color:var(--on-noir-2)}
  html:not([data-theme="dark"]) .ss-item:nth-child(4n+1) .ss-ic{background:rgba(228,199,143,.18);color:var(--gold-hi)}
  html:not([data-theme="dark"]) .ss-item:nth-child(4n){background:linear-gradient(160deg,#4A2034,#2D1A24);border-color:rgba(228,199,143,.3)}
  html:not([data-theme="dark"]) .ss-item:nth-child(4n) .ss-t{color:#FFF6E7}
  html:not([data-theme="dark"]) .ss-item:nth-child(4n) small{color:var(--on-noir-2)}
  html:not([data-theme="dark"]) .ss-item:nth-child(4n) .ss-ic{background:rgba(228,199,143,.18);color:var(--gold-hi)}
}
@media (max-width:1020px){.burger{margin-left:auto}}

/* ===================== v10: clean footer ===================== */
.site-footer .giant{display:none}
.fbrand2{display:grid;justify-items:center;text-align:center;gap:.7rem;padding-block:3.4rem 2.6rem;border-bottom:1px solid var(--line-noir)}
.fbrand2 .flogo{width:min(200px,55vw);margin:0}
.fbrand2 .tag{font-family:var(--script);font-size:1.9rem;color:var(--rose);line-height:1.1;margin:0}
.fbrand2 .fdesc{max-width:52ch;font-size:.95rem;color:var(--on-noir-2)}
.fgrid{display:grid;grid-template-columns:1fr 1fr 1.1fr 1.2fr;gap:2.4rem;padding-block:2.8rem}
.fcol h3{font-family:var(--body);font-size:.72rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:1.1rem}
.fcol ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.fcontact{display:grid;align-content:start}
.fc-l{font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on-noir-2);opacity:.75;margin:0}
.fc-phone{font-family:var(--display);font-size:1.7rem;color:#FFF6E7!important;line-height:1.2;margin-bottom:.8rem}
.fc-ig{color:#FFF6E7!important;margin-bottom:.8rem}
.fc-v{color:#FFF6E7;margin:0 0 1rem}
.fbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding-block:1.4rem max(1.6rem,calc(env(safe-area-inset-bottom,0px) + 5rem));border-top:1px solid var(--line-noir);font-size:.82rem}
.fbar p{margin:0}
.fbar-links{display:flex;gap:1.4rem;justify-content:center}
.fbar-links a:last-child{color:var(--gold-hi)!important}
.fbar .powered{justify-self:end;margin:0}
@media (max-width:1020px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){
  .fbrand2{padding-block:2.6rem 2rem}
  .fgrid{grid-template-columns:1fr 1fr;gap:2rem 1.2rem;padding-block:2.2rem}
  .fcontact,.fmap{grid-column:1/-1}
  .fcontact{justify-items:center;text-align:center}
  .fcontact .socials{justify-content:center}
  .fmap h3{text-align:center}
  .fmap-card{max-width:360px;margin-inline:auto}
  .fbar{grid-template-columns:1fr;justify-items:center;text-align:center;gap:.8rem}
  .fbar .powered{justify-self:center}
}

/* ===================== v10: image placeholders ===================== */
.hs-img,.mosaic .tile,.steps.photo .sph,.svc .media,.masonry figure,.fd-frame,.intro .stack figure,.team-duo figure,.pkg .pimg,.post .pm,.lk-img .img{background:linear-gradient(110deg,#F3D9DE 30%,#FBEDEF 50%,#F3D9DE 70%);background-size:220% 100%;animation:shimmer 1.6s linear infinite}
@keyframes shimmer{to{background-position:-220% 0}}
img.is-in{animation:none}
.js .rv-img{clip-path:inset(4% 4% 4% 4% round var(--r));transition:clip-path 1s var(--ease)}
.js .rv-img img{transform:scale(1.08);transition:transform 1.2s var(--ease)}
.img-done{animation:none!important;background:none!important}
