/* ============ style.css — ATELIER ============ */
:root{
  --black:#0D0A08;
  --cream:#F5F0E8;
  --rose:#C8536A;
  --rose-text:#FFF5F0;
  --champagne:#D4A96A;
  --champagne-text:#1A1008;
  --charcoal:#1a1714;
  --font-display:'Instrument Serif','Georgia',serif;
  --font-body:'Satoshi','Inter',system-ui,sans-serif;
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --tr:0.6s cubic-bezier(0.16,1,0.3,1);
  --pad:clamp(1.25rem,5vw,5rem);
}

/* ---- theme system (animates body bg/fg) ---- */
html{background:#fff;}
body{
  font-family:var(--font-body);
  background:var(--theme-bg,#fff);
  color:var(--theme-fg,#000);
  transition:background var(--tr),color var(--tr);
  overflow-x:hidden;
}
html[data-theme="default"]{--theme-bg:#FFFFFF;--theme-fg:#000000;}
html[data-theme="dark"]{--theme-bg:var(--black);--theme-fg:var(--cream);}
html[data-theme="rose"]{--theme-bg:var(--rose);--theme-fg:var(--rose-text);}
html[data-theme="champagne"]{--theme-bg:var(--champagne);--theme-fg:var(--champagne-text);}

/* ============ NAV ============ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem var(--pad);
  color:#fff;
  transition:background .45s var(--ease-out),color .45s var(--ease-out),backdrop-filter .45s,border-color .45s;
  border-bottom:1px solid rgba(255,255,255,0);
}
.nav.scrolled{
  background:rgba(13,10,8,.82);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(245,240,232,.1);
  color:#fff;
}
.nav__logo{font-family:var(--font-display);font-style:italic;font-size:22px;letter-spacing:.5px;line-height:1;}
.nav__links{display:flex;gap:clamp(1.2rem,2.5vw,2.4rem);align-items:center;}
.nav__links a{font-size:13px;letter-spacing:.04em;opacity:.88;transition:opacity .18s var(--ease-out);}
.nav__links a:hover{opacity:1;}
.nav__cta{
  background:#fff;color:#0D0A08;
  padding:.5rem 1.1rem;border-radius:100px;
  font-size:12.5px;font-weight:500;letter-spacing:.03em;
  transition:transform .18s var(--ease-out),background .18s var(--ease-out);
}
.nav__cta:hover{transform:translateY(-1px);background:var(--rose);color:#fff;}
.nav__burger{display:none;flex-direction:column;gap:5px;}
.nav__burger span{width:24px;height:1.5px;background:currentColor;display:block;}

/* ============ HERO ============ */
.hero{position:relative;height:100svh;min-height:600px;width:100%;overflow:hidden;background:#0D0A08;}
.hero__slides{position:absolute;inset:0;}
.hero__slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.4s ease;
  transform:scale(1.04);
}
.hero__slide.active{opacity:1;animation:kenburns 7s linear forwards;}
@keyframes kenburns{from{transform:scale(1.04);}to{transform:scale(1.12);}}
.hero__overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);
  background-image:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.5) 100%);}
.hero__content{
  position:absolute;left:var(--pad);bottom:clamp(2rem,6vh,4.5rem);right:var(--pad);
  color:#fff;z-index:2;
}
.hero__badge{
  display:inline-block;border:1px solid rgba(255,255,255,.5);
  padding:.45rem .9rem;border-radius:4px;
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;margin-bottom:1.4rem;
}
.hero__title{font-family:var(--font-display);font-size:clamp(4rem,18vw,16rem);line-height:.86;font-weight:400;letter-spacing:-.01em;}
.hero__tag{font-size:clamp(1rem,1.6vw,1.35rem);margin-top:1rem;opacity:.9;font-weight:300;max-width:30ch;}
.hero__dots{position:absolute;right:var(--pad);bottom:clamp(2rem,6vh,4.5rem);display:flex;gap:.5rem;z-index:3;}
.hero__dots button{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.35);transition:background .3s,width .3s;}
.hero__dots button.active{background:#fff;width:24px;border-radius:6px;}

/* ============ generic section ============ */
.section{padding:clamp(4rem,11vh,9rem) var(--pad);position:relative;}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);}
.reveal.in{opacity:1;transform:none;}
.eyebrow{font-size:11px;letter-spacing:.24em;text-transform:uppercase;opacity:.6;}
.arrow-link{display:inline-flex;align-items:center;gap:.45rem;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:2px;transition:gap .25s var(--ease-out),opacity .2s;}
.arrow-link:hover{gap:.85rem;}

/* ============ AWARDS / RECOGNITION ============ */
.awards{display:flex;align-items:center;justify-content:center;min-height:90vh;}
.awards__inner{position:relative;width:min(900px,100%);text-align:center;}
.awards__photo{width:min(360px,55vw);aspect-ratio:3/4;object-fit:cover;border-radius:6px;margin:0 auto;filter:grayscale(.15);}
.awards__float{position:absolute;font-family:var(--font-display);line-height:1;pointer-events:none;}
.awards__float.f1{top:6%;left:2%;font-size:clamp(2rem,6vw,4.5rem);font-style:italic;}
.awards__float.f2{bottom:18%;right:0%;font-size:clamp(1.6rem,4.5vw,3.2rem);}
.awards__float.f3{top:42%;right:4%;font-size:clamp(1rem,2vw,1.5rem);letter-spacing:.1em;font-family:var(--font-body);font-weight:300;}
.awards__story{margin-top:2.5rem;}

/* ============ SERVICES (giant type) ============ */
.services{padding:clamp(3rem,7vh,6rem) 0;}
.services__row{
  display:flex;align-items:center;justify-content:center;
  width:100%;padding:clamp(.7rem,2.2vw,1.6rem) var(--pad);
  border-top:1px solid color-mix(in srgb,currentColor 22%,transparent);
  font-family:var(--font-display);font-size:clamp(2.4rem,7vw,7rem);line-height:1;
  text-align:center;transition:background .4s var(--ease-out),color .4s var(--ease-out),letter-spacing .4s var(--ease-out);
  position:relative;
}
.services__row:last-child{border-bottom:1px solid color-mix(in srgb,currentColor 22%,transparent);}
.services__row a{display:block;width:100%;padding:inherit;}
.services__row:hover{background:var(--rose);color:var(--rose-text);letter-spacing:.01em;}
.services__row .num{position:absolute;left:var(--pad);font-family:var(--font-body);font-size:13px;opacity:.45;letter-spacing:.1em;align-self:center;}
.services__row.book{animation:pulse 2.6s var(--ease-out) infinite;}
@keyframes pulse{0%,100%{opacity:.55;}50%{opacity:1;}}
.services__row.book:hover{animation:none;opacity:1;}

/* ============ ABOUT ============ */
.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center;}
.about__img-wrap{overflow:hidden;border-radius:6px;}
.about__img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s var(--ease-out);transform:scale(1.08);}
.about__img-wrap.in .about__img{transform:scale(1);}
.about__quote{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.18;font-weight:400;}
.about__support{margin-top:1.6rem;font-size:1.05rem;opacity:.78;font-weight:300;max-width:42ch;}
.about__links{margin-top:2rem;display:flex;gap:2rem;flex-wrap:wrap;}

/* ============ WORK GALLERY (rose) ============ */
.work__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2.5rem;}
.work__head h2{font-family:var(--font-display);font-size:clamp(2.2rem,6vw,5rem);line-height:1;font-weight:400;}
.work__head .count{font-family:var(--font-body);font-size:14px;opacity:.8;letter-spacing:.05em;}
.work__grid{columns:3;column-gap:1.25rem;}
.work__grid img{width:100%;margin-bottom:1.25rem;border-radius:8px;object-fit:cover;break-inside:avoid;transition:transform .6s var(--ease-out),filter .6s;}
.work__grid img:hover{transform:scale(.985);filter:brightness(1.05);}
.work__grid img:nth-child(1){aspect-ratio:3/4;}
.work__grid img:nth-child(2){aspect-ratio:1/1;}
.work__grid img:nth-child(3){aspect-ratio:4/5;}
.work__grid img:nth-child(4){aspect-ratio:1/1;}
.work__grid img:nth-child(5){aspect-ratio:3/4;}
.work__grid img:nth-child(6){aspect-ratio:4/5;}

/* ============ BOOKING / EXTRAS (champagne) ============ */
.extras__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);}
.extras__card{}
.extras__card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;transition:transform .6s var(--ease-out);}
.extras__card:hover img{transform:scale(1.02);}
.extras__card h3{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,3rem);line-height:1.05;margin:1.2rem 0 .8rem;font-weight:400;}

/* ============ FOOTER ============ */
.footer{padding:clamp(3rem,8vh,7rem) var(--pad) 2.5rem;}
.footer__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin-bottom:clamp(3rem,8vh,6rem);}
.footer__cols h4{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.5;margin-bottom:1.1rem;}
.footer__cols li{margin-bottom:.6rem;}
.footer__cols a{font-size:15px;opacity:.85;transition:opacity .18s;}
.footer__cols a:hover{opacity:1;}
.footer__address{font-family:var(--font-display);font-size:clamp(2rem,6vw,6vw);line-height:1.08;font-weight:400;font-style:italic;}
.footer__address .sym{font-style:normal;opacity:.55;}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;margin-top:clamp(2.5rem,7vh,5rem);padding-top:1.5rem;border-top:1px solid rgba(245,240,232,.14);font-size:13px;opacity:.6;flex-wrap:wrap;gap:1rem;}

/* ============ RESPONSIVE ============ */
@media(max-width:880px){
  .nav__links{display:none;}
  .nav__burger{display:flex;}
  .about__grid{grid-template-columns:1fr;}
  .extras__grid{grid-template-columns:1fr;}
  .work__grid{columns:2;}
  .footer__cols{grid-template-columns:repeat(2,1fr);}
  .awards__photo{width:70vw;}
}
@media(max-width:520px){
  .work__grid{columns:1;}
  .footer__cols{grid-template-columns:1fr 1fr;}
  .hero__title{font-size:22vw;}
}
