*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0f1012;color:#f4f1eb;font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}.grid{width:calc(100% - (2 * clamp(22px,3.2vw,58px)));margin-inline:auto}.site-header{height:72px;position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,3.2vw,58px);background:linear-gradient(#0f1012 0%,rgba(15,16,18,.86) 62%,transparent)}.site-header a{color:rgba(244,241,235,.85);text-decoration:none;font-size:11px;letter-spacing:.26em}.site-header nav{display:flex;gap:34px}.intro{min-height:470px;padding:128px 0 72px;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}.intro h1{margin:0;font:400 clamp(62px,5.1vw,76px)/.98 "Playfair Display",serif;letter-spacing:-.038em}.intro h2{margin:17px 0 0;font:400 24px/1.22 "Playfair Display",serif;letter-spacing:-.012em}.intro p{max-width:760px;margin:25px auto 0;color:#c8c4be;font-size:clamp(15px,1.02vw,17px);line-height:1.72;letter-spacing:-.008em}.gallery{display:flex;flex-direction:column;gap:20px;padding-bottom:145px}.gallery figure{margin:0;overflow:hidden;border-radius:18px}.gallery .hero{border-radius:0}.gallery img{display:block;width:100%;height:auto}.pair{display:grid;grid-template-columns:1.72fr 1fr;gap:20px;align-items:stretch}.pair figure{height:100%}.pair img{height:100%;object-fit:cover}.more{padding:30px 0 145px}.eyebrow{margin:0 0 26px;color:#b8a792;font-size:9px;letter-spacing:.2em}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project{text-decoration:none;color:inherit}.pic{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:#17181b}.pic img{width:100%;height:100%;object-fit:cover;display:block;transition:.45s}.pic:after{content:"";position:absolute;inset:0;background:#0f1012;opacity:0;transition:.35s}.pic i{position:absolute;left:22px;bottom:20px;z-index:2;font-style:normal;font-size:9px;letter-spacing:.2em;opacity:0;transition:.35s}.project:hover .pic img{transform:scale(1.025)}.project:hover .pic:after{opacity:.3}.project:hover .pic i{opacity:1}.project small{display:block;margin-top:14px;color:rgba(244,241,235,.68);font-size:9px;letter-spacing:.2em}.project strong{display:block;margin-top:7px;font:400 25px/1 "Playfair Display",serif}.contact-old-unused{background:#f4f0eb;color:#0f1012;min-height:610px;padding:90px clamp(22px,3.2vw,58px) 28px;display:flex;flex-direction:column;justify-content:space-between}.contact-old-inner{max-width:1120px;width:100%;margin:auto;display:grid;grid-template-columns:1fr 1px 1fr;gap:70px;align-items:center}.label{display:block;font-size:9px;letter-spacing:.25em;color:#8f8171}.contact-old-unused b{display:block;margin-top:16px;font:400 clamp(72px,8vw,126px)/.78 "Playfair Display",serif;letter-spacing:-.055em}.vline-old{width:1px;height:250px;background:#d9d1c7}.details-old{display:flex;flex-direction:column;align-items:flex-start}.details-old a{color:#0f1012;text-decoration:none;font:400 clamp(25px,2.4vw,39px)/1.2 "Playfair Display",serif;margin-top:12px}.line-old{width:54px;height:1px;background:#cfc5b9;margin:34px 0}.contact-old-unused footer{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.16em}.contact-old-unused footer a{color:inherit;text-decoration:none}.cursor{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:0}.cursor.show{opacity:1}.ring,.dot{position:fixed;left:0;top:0;border-radius:50%;will-change:transform}.ring{width:30px;height:30px;border:1px solid #b8a792;display:grid;place-items:center;transition:width .3s,height .3s,background .3s}.dot{width:3px;height:3px;background:#b8a792}.ring em{font:500 7px/1 Inter,sans-serif;letter-spacing:.14em;color:#b8a792;font-style:normal;opacity:0}.cursor.project .ring{width:64px;height:64px;background:rgba(15,16,18,.74);backdrop-filter:blur(4px)}.cursor.project .dot{opacity:0}.cursor.project .ring em{opacity:1}@media(hover:hover) and (pointer:fine){body,a{cursor:none}}@media(max-width:900px){.site-header nav{display:none}.intro{text-align:left;align-items:flex-start;min-height:auto;padding:136px 0 68px}.intro h1{font-size:clamp(48px,12vw,64px)}.intro h2{font-size:22px}.intro p{font-size:15px}.gallery{display:block;padding-bottom:84px}.gallery>*{margin-bottom:16px}.pair{grid-template-columns:1fr;gap:16px}.pair figure{height:auto}.pair img{height:auto;object-fit:initial}.cards{grid-template-columns:1fr}.contact-old-inner{grid-template-columns:1fr;gap:36px}.vline-old{width:54px;height:1px}.contact-old-unused b{font-size:74px}.details-old a{font-size:28px}}
/* HARMONY V2 — SCALE + APPROVED CONTACT */
:root{
  --pad:clamp(22px,3.2vw,58px);
  --ui-accent:#b8a792;
  --contact-bg:#f4f0eb;
  --contact-ink:#17181b;
  --contact-muted:#67645f;
  --contact-line:#d7d0c6;
}
@media(min-width:901px){
  .gallery{
    width:min(calc(100% - (2 * var(--pad))), 1440px) !important;
  }
}

/* Approved homepage V36 contact */
.contact-v22{
  position:relative;
  z-index:3;
  background:var(--contact-bg);
  color:var(--contact-ink);
  scroll-margin-top:72px;
}
.contact-v22 a{text-decoration:none}
.contact-v22__inner{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:326px;
  padding:42px var(--pad) 34px;
  position:relative;
}
.contact-final{
  position:absolute;
  left:50%;
  top:50%;
  display:grid;
  grid-template-columns:210px 1px 210px;
  column-gap:20px;
  width:461px;
  height:168px;
  margin:0;
  transform:translate(-50%,-50%);
}
.contact-final__left{
  display:grid;
  grid-template-rows:18px 58px 58px;
  row-gap:17px;
  width:210px;
  height:168px;
  align-items:start;
}
.contact-final__label{
  margin:0;
  padding:0;
  font-family:Inter,Arial,sans-serif;
  font-size:8px;
  font-weight:500;
  line-height:18px;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:#7a766f;
}
.contact-final__word{
  display:block;
  margin:0;
  padding:0;
  font-family:"Playfair Display",serif;
  font-size:68px;
  font-weight:400;
  line-height:58px;
  letter-spacing:-.046em;
  color:var(--contact-ink);
  white-space:nowrap;
}
.contact-final__word--lets{grid-row:2}
.contact-final__word--talk{grid-row:3}
.contact-final__separator{
  display:block;
  width:1px;
  height:168px;
  background:var(--contact-ink);
  opacity:.52;
}
.contact-final__right{
  position:relative;
  display:grid;
  grid-template-rows:18px 58px 58px;
  row-gap:17px;
  width:210px;
  height:168px;
  align-items:start;
}
.contact-final__email-label{grid-row:1}
.contact-final__email{
  grid-row:2;
  align-self:start;
  margin-top:7px;
}
.contact-final__phone-label{
  position:absolute;
  left:0;
  top:111px;
}
.contact-final__phone{
  grid-row:3;
  align-self:end;
}
.contact-final__small-divider{
  position:absolute;
  left:0;
  top:91px;
  width:38px;
  height:1px;
  background:var(--ui-accent);
  opacity:.68;
}
.contact-final__right a{
  display:inline-block;
  font-family:Inter,Arial,sans-serif;
  font-size:15px;
  font-weight:400;
  line-height:1.2;
  letter-spacing:-.015em;
  color:var(--contact-ink);
}
.contact-v22__footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:40px;
  width:min(calc(100% - (2 * var(--pad))),1120px);
  margin:0 auto;
  padding:20px 0 25px;
  border-top:1px solid var(--contact-line);
  font-family:Inter,Arial,sans-serif;
  font-size:9px;
  line-height:1;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:#77736c;
}
.contact-v22__footer a{color:var(--contact-ink)}

@media(max-width:900px){
  .contact-v22__inner{
    width:100%;
    min-height:0;
    padding:68px 24px 62px;
    display:flex;
    justify-content:center;
    align-items:flex-start;
  }
  .contact-final{
    position:static;
    display:grid;
    grid-template-columns:1fr;
    justify-items:center;
    align-items:start;
    gap:30px;
    width:min(100%,430px);
    height:auto;
    margin:0 auto;
    transform:none;
    text-align:center;
  }
  .contact-final__left,.contact-final__right{
    width:100%;
    height:auto;
    justify-items:center;
    text-align:center;
  }
  .contact-final__left{display:grid;grid-template-rows:auto;gap:14px}
  .contact-final__label,.contact-final__word{width:100%;text-align:center}
  .contact-final__word{font-size:clamp(58px,15vw,72px);line-height:.86}
  .contact-final__separator{width:86px;height:1px;margin:2px auto 0}
  .contact-final__right{
    position:static;
    display:grid;
    grid-template-rows:auto;
    gap:13px;
  }
  .contact-final__email-label,.contact-final__email,.contact-final__phone-label,
  .contact-final__phone,.contact-final__small-divider{
    position:static;
    grid-row:auto;
    justify-self:center;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }
  .contact-final__small-divider{width:38px;height:1px;margin-top:8px;margin-bottom:8px}
  .contact-v22__footer{
    width:100%;
    padding:22px 24px 30px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:28px;
    text-align:center;
  }
}

/* HARMONY V3 — full site grid width; reduce height only */
@media(min-width:901px){
  .gallery{
    width:calc(100% - (2 * var(--pad))) !important;
    max-width:none !important;
  }

  .gallery > figure,
  .pair > figure{
    position:relative;
    overflow:hidden;
  }

  /* Wide hero: keep grid width, shorten only vertically */
  .gallery > .hero{
    height:clamp(500px,46vw,700px);
  }
  .gallery > .hero img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }

  /* Main overview: keep full width but less vertical mass */
  .gallery > figure:not(.hero){
    height:clamp(560px,50vw,760px);
  }
  .gallery > figure:not(.hero) img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }

  /* Bottom pair stays on the same grid; both cards shorter */
  .pair{
    width:100%;
    height:clamp(500px,43vw,650px);
  }
  .pair > figure{
    height:100% !important;
  }
  .pair > figure img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
  }
}

/* HARMONY V4 — final re-exported desktop visuals */
@media(min-width:901px){
  .gallery > .hero,
  .gallery > figure:not(.hero){
    height:auto !important;
  }
  .gallery > .hero{
    border-radius:18px !important;
  }
  .gallery > .hero img,
  .gallery > figure:not(.hero) img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    object-fit:initial !important;
    object-position:initial !important;
    transform:none !important;
  }

  /* Bottom row keeps the approved site grid and uses the dedicated iPad export without crop. */
  .pair{
    width:100% !important;
    height:auto !important;
    align-items:stretch !important;
  }
  .pair > figure{
    height:auto !important;
  }
  .pair > figure:first-child img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
  }
  .pair > figure:last-child img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    object-fit:initial !important;
    object-position:initial !important;
    transform:none !important;
  }
}

/* HARMONY V5 — dedicated mobile exports, no crop */
.hm-mobile-note{display:none}
.gallery picture{display:block;width:100%}

@media(max-width:900px){
  .gallery{
    display:block !important;
    padding-bottom:84px !important;
  }
  .gallery > figure,
  .pair > figure{
    width:100% !important;
    height:auto !important;
    margin:0 0 16px !important;
    border-radius:14px !important;
    overflow:hidden !important;
  }
  .gallery > figure picture,
  .pair > figure picture{
    display:block !important;
    width:100% !important;
    height:auto !important;
  }
  .gallery > figure img,
  .pair > figure img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    object-fit:initial !important;
    object-position:initial !important;
    transform:none !important;
  }
  .pair{
    display:block !important;
    width:100% !important;
    height:auto !important;
  }
  .pair > figure:last-child{margin-bottom:0 !important}
}
