:root{
  --ink:#17150F;
  --cream:#FAF6EF;
  --greige:#E8E3D9;
  --bone:#D8D1C4;
  --muted:#55503F;
  --accent:#C77A8E;
  --wrap:1280px;
}
*,*::before,*::after{box-sizing:border-box;}
html,body{max-width:100%;overflow-x:hidden;}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:"Jost",system-ui,sans-serif;font-weight:300;font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;overflow-wrap:break-word;
}
img,svg,iframe,video{max-width:100%;height:auto;display:block;}
a{color:inherit;}
h1,h2,h3{margin:0;}
p{margin:0 0 1.1em;}
ul{margin:0;padding:0;list-style:none;}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.skip{position:absolute;left:-9999px;}
.skip:focus{left:12px;top:12px;z-index:200;background:var(--ink);color:var(--cream);padding:10px 16px;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

.display{
  font-family:"Bodoni Moda",Didot,Georgia,serif;font-weight:400;line-height:0.98;
  letter-spacing:-0.01em;text-transform:uppercase;
}
.display em{font-style:italic;text-transform:none;font-weight:400;}
.sticky-label,.foot-h,.cap,.hero-facts li,.nav-desktop a,.btn,.link-arrow,.topbar,.clients-cap,.work-sub{
  font-family:"Jost",sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:12px;
}

/* buttons */
.btn{
  display:inline-block;background:var(--ink);color:var(--cream);
  padding:16px 30px;text-decoration:none;font-size:12px;border:1px solid var(--ink);
  transition:background .3s,color .3s;min-height:44px;
}
.btn:hover{background:transparent;color:var(--ink);}
.btn-light{background:var(--cream);color:var(--ink);border-color:var(--cream);}
.btn-light:hover{background:transparent;color:var(--cream);}
.link-arrow{
  text-decoration:none;border-bottom:1px solid var(--bone);padding-bottom:4px;
  display:inline-block;transition:border-color .3s,color .3s;
}
.link-arrow:hover{border-color:var(--accent);color:var(--accent);}
.link-arrow.light{color:#fff;border-color:rgba(255,255,255,.5);}
.link-arrow.light:hover{color:#fff;border-color:#fff;}

/* topbar + header */
.topbar{background:var(--ink);color:#EFE9DE;}
.topbar-in{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;padding-top:9px;padding-bottom:9px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;}
.dot{opacity:.5;}
.site-header{position:sticky;top:0;z-index:90;background:rgba(250,246,239,.9);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s,background .3s;}
.site-header.is-stuck{border-color:var(--bone);box-shadow:0 12px 34px -28px rgba(23,21,15,.6);}
.header-in{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:12px;padding-bottom:12px;min-width:0;}
.brand{display:flex;align-items:center;min-width:0;text-decoration:none;flex:0 1 auto;}
.brand-img{height:42px;width:auto;object-fit:contain;}
.brand-fallback{display:none;font-family:"Bodoni Moda",serif;letter-spacing:.16em;text-transform:uppercase;font-size:13px;}
.brand.no-img .brand-img{display:none;}
.brand.no-img .brand-fallback{display:block;}
.header-right{display:flex;align-items:center;gap:10px;min-width:0;}
.header-cta{
  display:none;font-family:"Jost";font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:11px;
  text-decoration:none;background:var(--ink);color:var(--cream);padding:11px 18px;
}
.header-cta:hover{background:var(--accent);}
.nav-desktop{display:none;}
.nav-desktop ul{display:flex;gap:24px;align-items:center;}
.nav-desktop a{text-decoration:none;font-size:11.5px;position:relative;padding:6px 0;}
.nav-desktop a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--accent);transition:right .3s;}
.nav-desktop a:hover::after{right:0;}
.nav-book{border-bottom:1px solid var(--ink);}
.burger{display:flex;align-items:center;gap:9px;background:none;border:0;cursor:pointer;padding:11px 2px;min-height:44px;font-family:"Jost";text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:inherit;}
.burger-lines{display:block;width:22px;}
.burger-lines i{display:block;height:1px;background:var(--ink);margin:5px 0;}
@media(min-width:520px){ .header-cta{display:inline-block;} }
@media(min-width:1080px){
  .nav-desktop{display:block;}
  .burger{display:none;}
  .header-cta{display:none;}
}

/* mobile menu */
.mobile-menu{position:fixed;inset:0;z-index:95;background:var(--ink);color:var(--cream);overflow-y:auto;}
.mm-in{padding:88px 22px 48px;max-width:620px;margin:0 auto;}
.mm-eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.6;}
.mobile-menu ul li a{
  display:block;text-decoration:none;font-family:"Bodoni Moda",serif;font-size:clamp(26px,8vw,42px);
  text-transform:uppercase;line-height:1.3;padding:10px 0;border-bottom:1px solid rgba(250,246,239,.14);
}
.mobile-menu ul li a em{text-transform:none;color:var(--accent);}
.mm-meta{margin-top:28px;font-size:13px;letter-spacing:.06em;}
.mm-meta a{color:var(--cream);}

/* HERO */
.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;overflow:hidden;background:#0d0c09;}
.hero-media{position:absolute;inset:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1);animation:kb 22s ease-out forwards;}
@keyframes kb{from{transform:scale(1.12);}to{transform:scale(1);}}
.hero-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(8,7,5,.86) 0%,rgba(8,7,5,.55) 45%,rgba(8,7,5,.18) 78%),
    linear-gradient(180deg,rgba(8,7,5,.55) 0%,rgba(8,7,5,.15) 35%,rgba(8,7,5,.85) 100%);
}
.hero-in{position:relative;padding-top:120px;padding-bottom:100px;color:#fff;}
.hero-title{font-family:"Bodoni Moda",serif;font-weight:400;text-transform:uppercase;line-height:.94;letter-spacing:-.015em;
  font-size:clamp(2.05rem,7.6vw,6.6rem);max-width:16ch;text-shadow:0 2px 34px rgba(0,0,0,.5);}
.hero-title em{font-style:italic;text-transform:none;}
.hero-sub{margin-top:24px;max-width:42ch;font-size:15.5px;color:#F2EDE4;line-height:1.65;}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:24px;}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:30px;font-size:10px;color:#EDE6DA;}
.hero-facts li{position:relative;padding-left:16px;}
.hero-facts li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:1px;background:var(--accent);}
.scroll-cue{position:absolute;right:14px;bottom:30px;color:#fff;text-decoration:none;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;writing-mode:vertical-rl;}
.scroll-cue span::after{content:"";display:block;width:1px;height:40px;background:rgba(255,255,255,.6);margin:12px auto 0;}
@media(max-width:520px){ .scroll-cue{display:none;} }

/* reveals — only active when JS is running */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;}
.js .reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .js .reveal{opacity:1!important;transform:none!important;transition:none;}
  .hero-media img{animation:none;}
  .marquee-in{animation:none!important;}
}

/* ABOUT */
.about{padding:90px 0;}
.about-grid{display:grid;gap:40px;}
.about-left h2{font-size:clamp(1.85rem,5.4vw,3.5rem);}
.sticky-label{color:var(--muted);margin-bottom:16px;font-size:11px;}
.prose{max-width:68ch;color:var(--muted);font-size:17px;}
.prose p{color:var(--muted);}
.founder{border-left:2px solid var(--accent);padding:2px 0 2px 18px;margin:32px 0 42px;}
.founder-name{font-family:"Bodoni Moda",serif;font-size:22px;margin:0;}
.founder-role{font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin:2px 0 8px;color:var(--muted);}
.founder-bio{margin:0;color:var(--muted);max-width:52ch;}

/* accordion */
.accordion{border-top:1px solid var(--bone);}
.acc-item{border-bottom:1px solid var(--bone);}
.acc-btn{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;
  background:none;border:0;cursor:pointer;padding:20px 2px;text-align:left;color:inherit;
  font-family:"Bodoni Moda",serif;font-size:clamp(18px,3.4vw,24px);line-height:1.25;min-height:48px;
}
.acc-btn:hover{color:var(--accent);}
.chev{width:11px;height:11px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform .3s;flex:none;}
.acc-btn[aria-expanded="true"] .chev{transform:rotate(-135deg) translateY(-3px);}
.acc-panel{padding:0 0 22px;max-width:62ch;color:var(--muted);}
.acc-panel p{margin:0;}

/* WORK */
.work{padding:76px 0 96px;background:var(--greige);}
.work-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:34px;}
.work-title{font-size:clamp(2.1rem,7vw,4.6rem);}
.work-sub{color:var(--muted);max-width:34ch;font-size:11.5px;line-height:1.9;letter-spacing:.12em;margin:0;}
.statement{margin:0 0 26px;position:relative;}
.statement img{width:100%;height:clamp(260px,52vh,620px);object-fit:cover;}
.statement figcaption{
  position:absolute;left:20px;bottom:16px;color:#fff;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  text-shadow:0 1px 12px rgba(0,0,0,.7);
}
.bento{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.tile{position:relative;overflow:hidden;background:var(--bone);min-width:0;}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.tile:hover img{transform:scale(1.045);}
.tile .cap{
  position:absolute;left:12px;bottom:12px;color:#fff;font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s;text-shadow:0 1px 10px rgba(0,0,0,.8);
}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.5));opacity:0;transition:opacity .35s;}
.tile:hover::after,.tile:focus-within::after{opacity:1;}
.tile:hover .cap,.tile:focus-within .cap{opacity:1;transform:none;}
.t-por{aspect-ratio:2/3;}
.t-land{aspect-ratio:3/2;}
.t-wide{grid-column:1 / -1;aspect-ratio:16/9;}
.work-more{margin-top:34px;}

/* CLIENTS */
.clients{background:var(--ink);color:var(--cream);padding:92px 0;}
.clients-title{font-size:clamp(2.1rem,7vw,4.4rem);}
.clients-cap{color:#B9B1A0;margin:14px 0 36px;font-size:11px;}
.client-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid rgba(250,246,239,.16);}
.client-list li{
  font-family:"Bodoni Moda",serif;font-size:clamp(13.5px,3.4vw,19px);padding:12px 6px;
  border-bottom:1px solid rgba(250,246,239,.12);color:#F1EBDF;
}
.clients-cta{margin-top:40px;}

/* SERVICES */
.services{padding:92px 0;}
.services-grid{display:grid;gap:40px;}
.services-copy h2{font-size:clamp(2.1rem,7vw,4.2rem);margin-bottom:28px;}
.svc-list{border-top:1px solid var(--bone);margin-bottom:28px;columns:1;}
.svc-list li{border-bottom:1px solid var(--bone);padding:11px 4px;font-size:15px;color:var(--ink);break-inside:avoid;}
.svc-list li::before{content:"";display:inline-block;width:8px;height:1px;background:var(--accent);vertical-align:middle;margin-right:12px;}
.svc-sheet{margin:0 0 30px;max-width:420px;}
.svc-sheet img{width:100%;border:1px solid var(--bone);filter:saturate(0);}
.svc-sheet figcaption{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:10px;line-height:1.7;}
.services-fig{margin:0;}
.services-fig img{width:100%;height:clamp(300px,60vh,720px);object-fit:cover;}
.services-fig figcaption{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:12px;}

/* PACKAGES */
.packages{background:var(--greige);}
.pack-grid{display:grid;gap:0;}
.pack-fig{margin:0;}
.pack-fig img{width:100%;height:clamp(280px,58vh,760px);object-fit:cover;}
.pack-copy{padding:64px 20px 74px;max-width:720px;margin:0 auto;width:100%;}
.pack-copy h2{font-size:clamp(2rem,6.6vw,3.8rem);margin-bottom:24px;}
.pack-cta{margin-top:26px;}

/* COUNTERS */
.counters{padding:64px 0;border-bottom:1px solid var(--bone);}
.counter-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center;}
.counter .num{font-family:"Bodoni Moda",serif;font-size:clamp(28px,7vw,58px);}
.counter .plus{font-family:"Bodoni Moda",serif;font-size:clamp(19px,4vw,34px);color:var(--accent);}
.counter p{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:6px 0 0;}

/* FLORALS */
.florals{padding:92px 0;}
.flo-head{display:grid;gap:24px;margin-bottom:36px;}
.flo-head h2{font-size:clamp(1.8rem,5.6vw,3.6rem);text-transform:lowercase;}
.flo-head h2 em{text-transform:none;}
.flo-side{color:var(--muted);max-width:44ch;}
.flo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.flo-grid figure{margin:0;overflow:hidden;}
.flo-grid img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.flo-grid figure:hover img{transform:scale(1.04);}

/* BACKDROPS */
.backdrops{padding:0 0 92px;}
.bd-head{padding:82px 20px 40px;max-width:1100px;}
.bd-head h2{font-size:clamp(1.8rem,5.4vw,3.4rem);text-transform:lowercase;}
.bd-sub{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:16px;}
.bd-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:28px;}
.bd-grid figure{margin:0;overflow:hidden;}
.bd-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.bd-grid figure:hover img{transform:scale(1.04);}
.bd-grid figcaption{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:8px;}

/* TESTIMONIALS */
.testi{background:var(--greige);padding:92px 0;}
.testi-title{font-size:clamp(2.1rem,7vw,4.4rem);margin-bottom:32px;}
.testi-box{border-top:1px solid var(--bone);border-bottom:1px solid var(--bone);padding:40px 0;}
.slide{margin:0;max-width:62ch;}
.slide[hidden]{display:none;}
.slide p{font-family:"Bodoni Moda",serif;font-size:clamp(18px,3.2vw,28px);line-height:1.45;font-style:italic;color:var(--ink);}
.slide cite{font-style:normal;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.testi-nav{display:flex;align-items:center;gap:16px;margin-top:28px;}
.tbtn{width:46px;height:46px;border:1px solid var(--ink);background:none;cursor:pointer;font-size:15px;color:inherit;transition:background .3s,color .3s;}
.tbtn:hover{background:var(--ink);color:var(--cream);}
.dots{display:flex;gap:9px;}
.dot-btn{width:10px;height:10px;border-radius:50%;border:1px solid var(--ink);background:none;padding:0;cursor:pointer;}
.dot-btn.is-on{background:var(--accent);border-color:var(--accent);}
.testi-more{margin-top:32px;}

/* INSTAGRAM */
.insta{padding:64px 0 92px;}
.marquee{overflow:hidden;border-top:1px solid var(--bone);border-bottom:1px solid var(--bone);padding:14px 0;margin-bottom:30px;}
.marquee-in{display:flex;width:max-content;animation:slide 34s linear infinite;}
.marquee-in span{font-family:"Bodoni Moda",serif;font-style:italic;font-size:clamp(18px,4.4vw,38px);white-space:nowrap;padding-right:8px;}
@keyframes slide{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.ig-link{text-align:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:20px;}
.ig-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.ig-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:opacity .3s,transform 1s cubic-bezier(.2,.7,.2,1);}
.ig-grid a:hover img{opacity:.86;transform:scale(1.03);}
.ig-grid li{overflow:hidden;}

/* FINAL CTA */
.final{background:var(--ink);color:var(--cream);padding:100px 0;}
.final-in h2{font-size:clamp(2rem,7vw,5rem);text-transform:none;margin-bottom:22px;max-width:16ch;}
.final-in h2 em{color:var(--accent);}
.final-body{max-width:46ch;color:#C6BEAC;}
.final-meta{margin-top:24px;font-size:12px;letter-spacing:.1em;}
.final-meta a{color:#EDE6DA;text-decoration:none;border-bottom:1px solid rgba(237,230,218,.4);}
.final-meta a:hover{border-color:var(--accent);color:var(--accent);}

/* FOOTER */
.site-footer{padding:64px 0 30px;background:var(--cream);}
.foot-grid{display:grid;gap:40px;}
.site-footer p{margin:0 0 8px;font-size:14px;color:var(--muted);}
.site-footer a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--bone);}
.site-footer a:hover{color:var(--accent);border-color:var(--accent);}
.foot-word{font-family:"Bodoni Moda",serif;text-transform:uppercase;letter-spacing:.18em;font-size:14px;color:var(--ink)!important;margin-top:14px;}
.foot-brand .brand-img{height:38px;width:auto;}
.foot-h{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)!important;margin-bottom:14px;}
.foot-nav li{margin-bottom:9px;}
.foot-nav a{font-size:14px;}
.ig-glyph{border:0!important;display:inline-block;margin-top:6px;color:var(--ink);}
.map-city{font-size:26px;color:var(--ink);margin-bottom:10px!important;}
.foot-map{border:1px solid var(--bone);padding:22px;background:var(--greige);}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border-top:1px solid var(--bone);margin-top:44px;padding-top:20px;}
.foot-bottom p{font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin:0;}

/* ---------- breakpoints ---------- */
@media(min-width:700px){
  body{font-size:18px;}
  .bento{grid-template-columns:repeat(12,1fr);gap:16px;}
  .tile{grid-column:span 4;}
  .t-land{grid-column:span 6!important;}
  .t-wide{grid-column:1 / -1!important;}
  .flo-grid{grid-template-columns:repeat(4,1fr);gap:12px;}
  .flo-a{grid-column:span 2;grid-row:span 2;}
  .flo-a img{aspect-ratio:1/1;height:100%;}
  .bd-grid{grid-template-columns:repeat(3,1fr);gap:12px;}
  .ig-grid{grid-template-columns:repeat(3,1fr);gap:10px;}
  .client-list{grid-template-columns:repeat(3,1fr);}
  .svc-list{columns:2;column-gap:40px;}
  .flo-head{grid-template-columns:1.3fr .8fr;align-items:end;}
}
@media(min-width:1000px){
  .about{padding:150px 0;}
  .about-grid{grid-template-columns:5fr 6fr;gap:80px;}
  .about-left{position:sticky;top:120px;align-self:start;}
  .work{padding:130px 0 150px;}
  .services{padding:150px 0;}
  .services-grid{grid-template-columns:1fr 1fr;gap:70px;align-items:start;}
  .pack-grid{grid-template-columns:1fr 1fr;align-items:stretch;}
  .pack-fig img{height:100%;min-height:640px;}
  .pack-copy{padding:130px 70px;margin:0;}
  .florals{padding:150px 0;}
  .clients{padding:150px 0;}
  .client-list{grid-template-columns:repeat(4,1fr);}
  .testi{padding:150px 0;}
  .foot-grid{grid-template-columns:1.4fr .8fr 1fr;gap:60px;}
  .statement img{height:78vh;}
  .bd-head{padding:130px 20px 50px;margin:0 auto;width:100%;max-width:var(--wrap);}
  .final{padding:160px 0;}
}