:root{
  --ivory:#f6f1e9;
  --ivory-2:#fbf8f3;
  --paper:#efe8dc;
  --ink:#423a32;
  --ink-soft:#756a5e;
  --gold:#9c8263;
  --line:rgba(66,58,50,.18);
  --white:#fff;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Manrope", Arial, sans-serif;
  --shadow:0 28px 70px rgba(52,42,33,.09);
  --header-h:94px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ivory)}
body{margin:0;color:var(--ink);background:var(--ivory);font-family:var(--sans);font-weight:300;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;width:100%;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:#d8c7b2;color:#2e2823}

.skip-link{position:fixed;left:12px;top:12px;z-index:999;background:#fff;padding:10px 14px;transform:translateY(-160%);transition:.2s}
.skip-link:focus{transform:translateY(0)}
.shell{width:min(1240px,calc(100% - 72px));margin-inline:auto}
.section{padding:130px 0}
.section--compact{padding:88px 0}
.eyebrow{margin:0 0 22px;font-size:11px;line-height:1.35;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);font-weight:500}
.eyebrow span{display:block;margin-top:7px}
h1,h2,h3,h4,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);font-weight:300;letter-spacing:-.025em}
h2{font-size:clamp(50px,6.1vw,92px);line-height:.9;margin-bottom:30px}
h3{font-size:clamp(36px,4.2vw,57px);line-height:.98;margin:0 0 22px}
.lead{font-family:var(--serif);font-size:clamp(24px,2.5vw,34px);line-height:1.25;color:#51463c}
.text-link{display:inline-flex;align-items:center;gap:14px;margin-top:8px;padding-bottom:4px;border-bottom:1px solid rgba(66,58,50,.32);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;transition:gap .35s ease,border-color .35s ease}
.text-link:hover{gap:19px;border-color:var(--gold)}
.button{border:1px solid var(--ink);background:transparent;padding:15px 24px;display:inline-flex;align-items:center;justify-content:center;gap:18px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;transition:background .35s ease,color .35s ease,transform .35s ease}
.button:hover{transform:translateY(-2px)}
.button--dark{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.button--dark:hover{background:#2e2924}

.site-header{position:fixed;z-index:100;inset:0 0 auto;height:var(--header-h);transition:background .4s ease,box-shadow .4s ease,height .4s ease;color:var(--ink)}
.site-header.is-scrolled{background:rgba(246,241,233,.93);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 1px 0 rgba(66,58,50,.08);height:78px}
.header-inner{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px}
.desktop-nav{display:flex;align-items:center;gap:30px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
.desktop-nav--right{justify-content:flex-end}
.desktop-nav a{position:relative}
.desktop-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:currentColor;transition:right .3s ease}
.desktop-nav a:hover::after{right:0}
.nav-cta{border:1px solid rgba(66,58,50,.4);padding:11px 17px;transition:.3s ease}
.nav-cta:hover{background:var(--ink);color:var(--ivory)}
.brand{display:grid;grid-template-columns:auto;justify-items:center;line-height:1;text-transform:uppercase}
.brand-mark{width:46px;height:40px;position:relative;display:block;margin-bottom:1px}
.brand-d{font-family:var(--serif);font-weight:300;font-size:46px;line-height:36px;position:absolute;left:7px;top:1px;color:var(--gold)}
.brand-d::after{content:"D";position:absolute;left:9px;top:2px;opacity:.65;transform:scaleX(-1)}
.brand-wave{position:absolute;width:33px;height:6px;border-top:1px solid var(--gold);border-radius:50%;bottom:0;left:7px}
.brand-wave::after{content:"";position:absolute;width:26px;border-top:1px solid var(--gold);border-radius:50%;top:4px;left:4px}
.brand-name{font-family:var(--serif);font-size:19px;letter-spacing:.14em;white-space:nowrap}
.brand-url{font-family:var(--sans);font-size:7px;letter-spacing:.16em;text-transform:none;margin-top:6px;color:var(--ink-soft)}
.menu-toggle{display:none;border:0;background:transparent;width:46px;height:46px;position:relative;padding:0}
.menu-toggle span{position:absolute;width:24px;height:1px;background:var(--ink);left:11px;transition:.3s ease}
.menu-toggle span:first-child{top:18px}.menu-toggle span:last-child{top:27px}
.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
.mobile-menu{display:none}

.hero{min-height:100svh;position:relative;background:var(--ivory-2);display:grid;grid-template-columns:48% 52%;padding-top:var(--header-h);overflow:hidden}
.hero-copy{display:contents}
.hero-text{align-self:center;padding-left:max(36px,calc((100vw - 1240px)/2));padding-right:6vw;padding-bottom:2vh;z-index:3}
.hero .eyebrow{margin-bottom:28px}
.hero h1{font-size:clamp(72px,8.4vw,134px);line-height:.72;margin:0 0 38px;letter-spacing:-.045em}
.hero-intro{max-width:520px;font-family:var(--serif);font-style:italic;font-size:clamp(24px,2.2vw,33px);line-height:1.32;color:#6c5f52}
.hero-actions{display:flex;flex-wrap:wrap;gap:26px;align-items:center;margin-top:38px}
.hero-actions .text-link{margin-top:0}
.hero-visual{position:relative;overflow:hidden;min-height:calc(100svh - var(--header-h))}
.hero-photo{position:absolute;inset:-6%;background-image:url('../img/hero-couple.jpg');background-size:cover;background-position:50% 48%;transform:scale(1.045);animation:heroSettle 2s cubic-bezier(.2,.7,.2,1) forwards;will-change:transform}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(37,29,23,.03),rgba(37,29,23,.02) 52%,rgba(37,29,23,.13))}
.hero-whisper{position:absolute;right:42px;bottom:76px;margin:0;color:rgba(255,255,255,.88);font-size:9px;letter-spacing:.32em;text-transform:uppercase;line-height:1.65;text-align:center}
.scroll-cue{position:absolute;left:calc(48% - 1px);bottom:0;z-index:4;transform:translateX(-50%);height:98px;width:98px;border-radius:50% 50% 0 0;background:var(--ivory);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:16px;gap:8px;font-size:8px;letter-spacing:.18em;text-transform:uppercase}
.scroll-cue i{display:block;width:1px;height:26px;background:var(--gold);animation:cue 1.8s ease-in-out infinite}
@keyframes heroSettle{to{transform:scale(1)}}
@keyframes cue{0%,100%{transform:scaleY(.55);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}

.intro{background:var(--ivory)}
.intro-grid{display:grid;grid-template-columns:1fr .9fr;gap:10vw;align-items:start}
.intro h2{margin:0}
.intro-copy{padding-top:62px;max-width:590px}
.intro-copy p:not(.lead){max-width:500px;color:var(--ink-soft)}

.experience{padding-top:32px;background:var(--ivory)}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:86px 70px}
.feature-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:34px;align-items:center}
.feature-card--reverse{grid-template-columns:minmax(0,1.06fr) minmax(0,1fr)}
.feature-card--reverse .feature-media{order:2}.feature-card--reverse .feature-copy{order:1}
.feature-media{aspect-ratio:.88;overflow:hidden;background:#e6ded3;box-shadow:var(--shadow)}
.feature-media img{height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.feature-card:hover .feature-media img{transform:scale(1.035)}
.feature-copy p:not(.eyebrow){color:var(--ink-soft);font-size:14px}
.feature-copy .eyebrow{font-size:9px;letter-spacing:.28em;margin-bottom:14px}

.values{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ivory-2)}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.value{text-align:center;padding:10px 36px;position:relative}
.value:not(:last-child)::after{content:"";position:absolute;right:0;top:16%;height:68%;width:1px;background:var(--line)}
.value svg{width:54px;height:54px;fill:none;stroke:var(--gold);stroke-width:1.15;margin:0 auto 18px}
.value h4{font-family:var(--serif);font-size:28px;font-weight:300;margin:0 0 4px}
.value p{font-family:var(--serif);font-style:italic;color:var(--ink-soft);margin:0;font-size:17px}

.story{background:var(--paper);position:relative;overflow:hidden}
.story::before{content:"";position:absolute;inset:0;background:url('../img/paper.jpg') center/cover;opacity:.16;mix-blend-mode:multiply;pointer-events:none}
.story-grid{position:relative;display:grid;grid-template-columns:.88fr 1fr;gap:9vw;align-items:center}
.story-photo{height:min(72vh,760px);overflow:hidden;box-shadow:var(--shadow)}
.story-photo img{height:100%;object-fit:cover;object-position:center 35%;transition:transform 1.2s ease}
.story-photo:hover img{transform:scale(1.025)}
.story-copy{max-width:600px}
.story-copy p:not(.eyebrow){color:var(--ink-soft)}
.signature{font-family:var(--serif);font-size:29px;font-style:italic;color:var(--gold);margin-top:32px}

.gallery{padding-bottom:0;background:var(--ivory-2);overflow:hidden}
.gallery-heading{display:grid;grid-template-columns:1fr .65fr;gap:10vw;align-items:end;margin-bottom:64px}
.gallery-heading h2{margin-bottom:0}.gallery-heading>p{max-width:430px;color:var(--ink-soft);padding-bottom:8px}
.gallery-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.gallery-item{margin:0;aspect-ratio:1/1;overflow:hidden;background:#e7dfd5}
.gallery-item img{height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .6s ease}
.gallery-item:hover img{transform:scale(1.05);filter:saturate(.9)}

.dida-world{background:#e8e0d4}
.world-head{display:grid;grid-template-columns:.75fr 1fr;margin-bottom:52px}
.world-head h2{grid-column:2;font-size:clamp(48px,5vw,74px);margin:0}.world-head .eyebrow{grid-column:1;align-self:start;padding-top:14px}
.world-links{border-top:1px solid rgba(66,58,50,.22)}
.world-link{display:grid;grid-template-columns:60px 1.1fr 1fr 34px;align-items:center;gap:20px;padding:25px 8px;border-bottom:1px solid rgba(66,58,50,.22);transition:padding .35s ease,background .35s ease}
.world-link:hover{padding-left:18px;background:rgba(255,255,255,.24)}
.world-link span{font-size:10px;letter-spacing:.16em;color:var(--gold)}
.world-link strong{font-family:var(--serif);font-size:30px;font-weight:300}
.world-link em{font-family:var(--serif);font-size:19px;color:var(--ink-soft);font-weight:300}
.world-link i{font-style:normal;font-size:20px;color:var(--gold)}

.inquire{position:relative;background:#d8c6ad;color:#332d28;overflow:hidden}
.inquire-bg{position:absolute;inset:0;background:linear-gradient(100deg,rgba(255,255,255,.18),transparent 45%),url('../img/paper.jpg') center/cover;opacity:.22;mix-blend-mode:multiply}
.inquire-grid{position:relative;display:grid;grid-template-columns:.82fr 1fr;gap:9vw;align-items:start}
.inquire-copy{position:sticky;top:130px}
.inquire-copy h2{font-size:clamp(56px,6vw,88px)}
.inquire-copy>p:not(.eyebrow){max-width:540px}
.contact-note{display:flex;gap:22px;margin-top:34px;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.contact-note span+span::before{content:"•";margin-right:22px;color:var(--gold)}
.inquiry-form{background:rgba(251,248,243,.78);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:44px;box-shadow:0 25px 60px rgba(50,40,31,.08)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.inquiry-form label{display:block;margin-bottom:24px}
.inquiry-form label>span{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px;color:#6d6156}
.inquiry-form input,.inquiry-form textarea{width:100%;border:0;border-bottom:1px solid rgba(66,58,50,.32);background:transparent;border-radius:0;padding:11px 0;outline:none;transition:border-color .3s ease;appearance:none}
.inquiry-form input:focus,.inquiry-form textarea:focus{border-color:#5b4f44}
.inquiry-form textarea{resize:vertical;min-height:120px}
.inquiry-form textarea::placeholder{color:#97897c;font-family:var(--serif);font-style:italic;font-size:17px}
.consent{display:grid!important;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.consent input{width:16px;height:16px;margin-top:1px;appearance:auto}.consent span{font-size:10px!important;letter-spacing:.03em!important;text-transform:none!important;line-height:1.5!important}
.form-submit{margin-top:5px;min-width:190px}
.form-status{min-height:24px;margin:16px 0 0;font-size:12px}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.site-footer{background:#38312b;color:#eee6da;padding:70px 0 24px}
.footer-main{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;padding-bottom:52px;border-bottom:1px solid rgba(255,255,255,.18)}
.brand--footer{justify-items:start;color:#f5ede1}.brand--footer .brand-d,.brand--footer .brand-wave{color:#bda88f;border-color:#bda88f}.brand--footer .brand-name{font-size:23px}.brand--footer .brand-url{color:#c9bbaa}
.footer-phrase{text-align:center;font-family:var(--serif);font-style:italic;font-size:23px;color:#cdbca8}
.footer-links{display:flex;justify-content:flex-end;gap:24px;font-size:9px;letter-spacing:.15em;text-transform:uppercase}
.footer-links a{opacity:.78;transition:opacity .25s}.footer-links a:hover{opacity:1}
.footer-bottom{padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:#bdae9e}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.reveal.is-visible{opacity:1;transform:none}
.reveal--early{animation:revealEarly 1s .18s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes revealEarly{to{opacity:1;transform:none}}

@media (max-width:1120px){
  :root{--header-h:84px}
  .desktop-nav{gap:20px}.desktop-nav a:not(.nav-cta){display:none}
  .desktop-nav--left{visibility:hidden}
  .hero{grid-template-columns:45% 55%}
  .hero-text{padding-left:36px;padding-right:4vw}.scroll-cue{left:45%}
  .feature-grid{gap:66px 42px}.feature-card{grid-template-columns:1fr;gap:26px}.feature-card--reverse{grid-template-columns:1fr}.feature-card--reverse .feature-media{order:0}.feature-card--reverse .feature-copy{order:1}
  .feature-media{aspect-ratio:1.04}
}

@media (max-width:820px){
  :root{--header-h:74px}
  .shell{width:min(100% - 36px,720px)}
  .section{padding:92px 0}.section--compact{padding:68px 0}
  .desktop-nav{display:none}.header-inner{grid-template-columns:1fr auto}.brand{justify-items:start}.brand-mark{display:none}.brand-name{font-size:20px}.brand-url{font-size:6.5px}
  .menu-toggle{display:block;justify-self:end}
  .mobile-menu{display:block;position:fixed;inset:var(--header-h) 0 auto;background:rgba(246,241,233,.98);border-top:1px solid var(--line);transform:translateY(-120%);opacity:0;visibility:hidden;transition:.4s ease;box-shadow:0 18px 40px rgba(54,44,36,.08)}
  .mobile-menu.is-open{transform:none;opacity:1;visibility:visible}
  .mobile-menu-inner{width:calc(100% - 36px);margin:auto;display:grid;padding:24px 0 30px}
  .mobile-menu a{font-family:var(--serif);font-size:30px;padding:8px 0;border-bottom:1px solid var(--line)}
  body.menu-open{overflow:hidden}

  .hero{display:flex;flex-direction:column;min-height:auto;padding-top:var(--header-h);background:var(--ivory-2)}
  .hero-copy{display:block;order:2}.hero-text{padding:48px 18px 74px;width:100%}.hero h1{font-size:clamp(68px,20vw,96px);line-height:.78;margin-bottom:28px}.hero-intro{font-size:25px}.hero-actions{gap:20px;margin-top:30px}
  .hero-visual{order:1;min-height:62svh;height:62svh}.hero-photo{background-position:52% 44%;inset:-2%;transform:none!important;animation:none}.hero-whisper{right:18px;bottom:20px}.scroll-cue{display:none}
  .intro-grid{grid-template-columns:1fr;gap:24px}.intro-copy{padding-top:0}
  .feature-grid{grid-template-columns:1fr;gap:72px}.feature-media{aspect-ratio:1.06}.feature-copy{padding:0 5px}.feature-card h3{font-size:45px}
  .values-grid{grid-template-columns:1fr;gap:38px}.value:not(:last-child)::after{display:none}.value{padding:0}.value:not(:last-child){padding-bottom:38px;border-bottom:1px solid var(--line)}
  .story-grid{grid-template-columns:1fr;gap:50px}.story-photo{height:64svh;max-height:620px}.story-copy h2{font-size:58px}
  .gallery-heading{grid-template-columns:1fr;gap:8px;margin-bottom:38px}.gallery-heading>p{padding:0}.gallery-strip{grid-template-columns:repeat(2,1fr)}.gallery-item:last-child{grid-column:1/-1;aspect-ratio:2/1}
  .world-head{display:block}.world-head h2{font-size:54px}.world-link{grid-template-columns:34px 1fr 28px;gap:12px}.world-link strong{font-size:28px}.world-link em{display:none}
  .inquire-grid{grid-template-columns:1fr;gap:48px}.inquire-copy{position:static}.inquire-copy h2{font-size:58px}.inquiry-form{padding:30px 22px}.form-row{grid-template-columns:1fr;gap:0}
  .footer-main{grid-template-columns:1fr;gap:36px;align-items:start}.footer-phrase{text-align:left}.footer-links{justify-content:flex-start;flex-wrap:wrap}.footer-bottom{flex-direction:column;gap:6px}
}

@media (max-width:480px){
  .shell{width:calc(100% - 28px)}
  .section{padding:78px 0}.section--compact{padding:58px 0}
  .site-header.is-scrolled{height:70px}
  .hero-visual{height:58svh;min-height:480px}.hero-text{padding:42px 14px 64px}.hero h1{font-size:19vw}.hero-intro{font-size:23px}.hero-actions{align-items:flex-start;flex-direction:column}.button{width:100%}.hero-actions .text-link{width:auto}
  h2{font-size:52px}.lead{font-size:25px}.eyebrow{letter-spacing:.27em}
  .feature-grid{gap:62px}.feature-card h3{font-size:41px}.feature-copy p:not(.eyebrow){font-size:13.5px}
  .story-photo{height:58svh}.story-copy h2,.inquire-copy h2,.world-head h2{font-size:49px}
  .gallery-strip{gap:3px}.gallery-item{aspect-ratio:.9}.gallery-item:last-child{aspect-ratio:1.8}
  .contact-note{display:block}.contact-note span{display:block;margin-bottom:6px}.contact-note span+span::before{display:none}
  .world-link{padding-block:21px}.world-link strong{font-size:25px}
  .inquiry-form{margin-inline:-2px}.footer-links{gap:16px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.hero-photo{animation:none;transform:none!important}.scroll-cue i{animation:none}.reveal,.reveal--early{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}.feature-media img,.gallery-item img,.story-photo img{transition:none!important}
}
