@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Cormorant+Garamond:wght@400;500;600&display=swap');
:root{--ink:#302e2a;--ivory:#f8f6f2;--cream:#eeebe5;--gold:#b18e52;--soft:#dad0c0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:15px;line-height:1.7}a{color:inherit;text-decoration:none}img{max-width:100%}.shell{max-width:1280px;margin:auto;padding:0 6%}.announcement{text-align:center;letter-spacing:.16em;text-transform:uppercase;background:#332f2b;color:#fff;font-size:10px;padding:8px}.nav{background:rgba(220,202,164,.97);position:sticky;top:0;z-index:5;border-bottom:1px solid #ded8d0}.nav-inner{min-height:91px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:13px;font-family:'Cormorant Garamond',serif;font-size:26px;white-space:nowrap}.brand img{height:58px;width:58px;border-radius:50%;object-fit:cover}.links{display:flex;align-items:center;gap:26px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.links a:hover,.links .active{color:var(--gold)}.pill,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 27px;border:1px solid var(--gold);background:var(--gold);color:white;font-size:11px;letter-spacing:.14em;text-transform:uppercase;transition:.2s}.btn:hover,.pill:hover{background:#95703b;border-color:#95703b}.btn-outline{background:transparent;color:var(--ink)}.btn-outline:hover{color:white}.menu{display:none;border:0;background:none;font-size:26px}.hero{min-height:670px;position:relative;display:flex;align-items:center;color:white;background:#635748 url('cozy_tropical_christmas_living_room.jpg') center/cover}.hero:before{content:'';inset:0;position:absolute;background:linear-gradient(90deg,rgba(27,23,19,.65),rgba(27,23,19,.05))}.hero .shell{position:relative;width:100%}.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:11px;color:var(--gold);font-weight:700}.hero .eyebrow{color:#edddbc}h1,h2,h3,.serif{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:1.04}h1{font-size:clamp(62px,9vw,118px);margin:17px 0}h2{font-size:clamp(43px,5.5vw,74px);margin:15px 0 25px}h3{font-size:35px;margin:6px 0 13px}.hero p{max-width:530px;font-size:17px;margin-bottom:30px}.actions{display:flex;gap:12px;flex-wrap:wrap}.section{padding:105px 0}.center{text-align:center}.intro{max-width:780px;margin:auto}.intro p{font-size:17px;color:#70685f}.rule{height:1px;width:80px;background:var(--gold);margin:22px auto}.cols{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.frame{background:#dfd7c9;padding:17px}.frame img{width:100%;height:490px;object-fit:cover;display:block}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}.tile{background:white;border:1px solid #e9e3db;padding:31px;min-height:224px}.num{color:var(--gold);font-family:'Cormorant Garamond';font-size:28px}.tile p,.muted{color:#70685f}.warm{background:#efeae2}.split-banner{background:#332e28;color:#fff;padding:95px 0}.split-banner .muted{color:#e1d7c9}.image-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}.image-grid img{height:370px;width:100%;object-fit:cover}.concept{font-size:12px;color:#777;margin:8px 0 0}.placeholder{min-height:260px;background:linear-gradient(130deg,#e6d9c7,#f4eee5);display:flex;align-items:center;justify-content:center;padding:35px;text-align:center}.quote{font-family:'Cormorant Garamond';font-size:29px}.page-heading{padding:95px 0 65px;background:#efebe5;text-align:center}.page-heading h1{font-size:clamp(60px,8vw,100px);margin:10px 0}.page-heading p{max-width:650px;margin:auto;color:#746b62}.footer{background:#292825;color:#f6f2eb;padding:68px 0 24px}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px}.footer a{display:block;padding:4px 0;color:#e9dfd2}.footer small{color:#beb4a6}.footer .brand img{height:75px;width:75px}.footer .brand{font-size:32px}.copyright{border-top:1px solid #534d45;margin-top:45px;padding-top:22px;font-size:12px;color:#c2b7a8}.contact-area{display:grid;grid-template-columns:1fr 1fr;gap:7%}.form{background:#fff;padding:35px;border:1px solid #e9e3db}.field{display:flex;flex-direction:column;gap:6px;margin:0 0 18px}.field label{font-size:11px;letter-spacing:.12em;text-transform:uppercase}.field input,.field textarea,.field select{border:1px solid #d9d1c6;padding:14px;font:inherit;background:#fcfbf8;border-radius:0;width:100%}.field textarea{min-height:130px}.note{font-size:12px;color:#827569}.stars{color:var(--gold);letter-spacing:.15em}a:focus-visible,button:focus-visible{outline:3px solid #b18e52;outline-offset:3px}@media(max-width:930px){.menu{display:block}.links{display:none;position:absolute;left:0;right:0;top:100%;background:#dccaa4;padding:25px 6%;border-bottom:1px solid #ddd;flex-direction:column;align-items:flex-start;gap:18px}.links.open{display:flex}.nav-inner{min-height:76px}.cols,.cards,.image-grid,.contact-area{grid-template-columns:1fr}.hero{min-height:600px}.section{padding:72px 0}.foot-grid{grid-template-columns:1fr 1fr}.frame img{height:400px}}@media(max-width:540px){.brand{font-size:23px}.brand img{width:45px;height:45px}.hero{min-height:560px}.foot-grid{grid-template-columns:1fr}.form{padding:20px}}
/* About page biographies */
.bio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:48px}.bio-card{background:#fff;border:1px solid #e4dbcf;padding:clamp(26px,4vw,48px);box-shadow:0 7px 28px rgba(39,34,27,.035)}.bio-card h3{font-size:clamp(37px,4vw,55px);margin:12px 0 20px}.bio-card p{color:#655f57;line-height:1.85}.bio-label{font-size:11px;letter-spacing:.2em;color:#a58148;font-weight:700}.source-link{color:#806034;display:inline-block;border-bottom:1px solid #b18e52;padding-bottom:4px;margin-top:15px;font-size:13px}.bio-card .note{font-size:12px;color:#81796f}@media(max-width:760px){.bio-grid{grid-template-columns:1fr}}

.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}.gallery-card img{width:100%;height:310px;object-fit:cover;display:block}.gallery-card .concept{margin-top:10px}.gallery-card{background:#fff;padding:12px;border:1px solid #e9e3db}.wide-feature{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}@media(max-width:930px){.gallery-grid{grid-template-columns:1fr 1fr}.wide-feature{grid-template-columns:1fr}}@media(max-width:540px){.gallery-grid{grid-template-columns:1fr}}

/* Scroll-responsive editorial motion: light, accessible, and mobile-friendly. */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:20;pointer-events:none;transform:scaleX(0);transform-origin:left;background:var(--gold);will-change:transform}
body.motion-ready .reveal{opacity:0;transform:translate3d(0,30px,0);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
body.motion-ready .reveal.in-view{opacity:1;transform:translate3d(0,0,0)}
.hero{background-position:50% calc(50% + var(--hero-drift,0px));background-size:cover}
.hero .shell{transform:translate3d(0,var(--hero-content-drift,0px),0)}
.frame,.gallery-card{overflow:hidden}
.frame img,.gallery-card img{transition:transform .9s cubic-bezier(.2,.7,.2,1);will-change:auto}
.frame:hover img,.gallery-card:hover img{transform:scale(1.035)}
.tile{transition:transform .35s ease, box-shadow .35s ease,border-color .35s ease}
.tile:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(48,46,42,.08);border-color:#d5c6ad}
.nav{transition:box-shadow .3s ease,background .3s ease}
.nav.scrolled{box-shadow:0 7px 22px rgba(35,31,27,.08);background:rgba(248,246,242,.985)}
@media(max-width:930px){.hero{background-position:center}.hero .shell{transform:none}.frame:hover img,.gallery-card:hover img{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body.motion-ready .reveal,body.motion-ready .reveal.in-view{opacity:1;transform:none;transition:none}.hero .shell{transform:none}.frame img,.gallery-card img,.tile,.nav{transition:none}.frame:hover img,.gallery-card:hover img,.tile:hover{transform:none}.scroll-progress{display:none}}

/* Immersive, scroll-directed room walkthrough */
.tour-main{overflow:clip}.tour-headnote{display:flex;justify-content:space-between;gap:20px;background:#332f2b;color:#f5e9d4;padding:10px 6%;font-size:10px;letter-spacing:.18em;position:relative;z-index:2}.tour{position:relative;background:#22201d;isolation:isolate}.tour-canvas{position:sticky;height:calc(100svh - 80px);top:80px;overflow:hidden;z-index:0;background:#24211d}.room-scene{position:absolute;inset:-5%;background-position:center center;background-size:cover;opacity:0;transform:translate3d(0,0,0) scale(1.19);will-change:opacity,transform;transition:opacity .55s ease;pointer-events:none}.room-scene:first-child{opacity:1}.tour-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,13,11,.77),rgba(14,13,11,.42) 55%,rgba(14,13,11,.13)),linear-gradient(0deg,rgba(0,0,0,.23),transparent 45%)}.tour-chapters{position:relative;margin-top:calc(-100svh + 80px);z-index:1;pointer-events:none}.tour-chapter{height:115svh;min-height:630px;display:flex;align-items:center;padding:10vh max(8%,calc((100vw - 1250px)/2));position:relative}.tour-copy{max-width:565px;color:white;opacity:.2;transform:translateY(55px) scale(.95);filter:blur(6px);transition:opacity .5s,transform .5s,filter .5s;pointer-events:none}.tour-chapter.is-current .tour-copy{opacity:1;transform:translateY(0) scale(1);filter:blur(0);pointer-events:auto}.tour-copy .eyebrow{color:#f1d6a4}.tour-copy h1,.tour-copy h2{font-size:clamp(56px,7.8vw,112px);margin:16px 0 19px;text-wrap:balance;line-height:.98}.tour-copy p{font-size:clamp(16px,1.5vw,20px);line-height:1.65;max-width:510px;margin:0 0 30px;text-shadow:0 2px 10px #0008}.tour-copy .btn{background:#b18e52;border-color:#b18e52;pointer-events:auto}.tour-indicator{position:absolute;bottom:105px;left:8%;font-size:10px;color:#eee;letter-spacing:.18em;text-transform:uppercase}.tour-side{position:sticky;bottom:26px;margin-left:auto;margin-right:35px;z-index:4;color:#f2e8d6;display:flex;flex-direction:column;align-items:center;gap:6px;width:34px;font-size:11px;pointer-events:none;transform:translateY(-25px);height:0}.tour-rail{height:90px;width:2px;background:#ffffff66}.tour-fill{width:100%;height:0;background:#d7ac65;transition:height .12s}.tour-scrollhint{position:absolute;top:35px;right:5%;font-size:10px;letter-spacing:.18em;color:#ffefd4;z-index:3;pointer-events:none}.tour-outro{position:relative;z-index:2}.tour-copy .btn:focus-visible{outline-color:white}
@media(max-width:930px){.tour-canvas{top:76px;height:calc(100svh - 76px)}.tour-chapters{margin-top:calc(-100svh + 76px)}.tour-chapter{padding:10vh 8%;min-height:550px}.room-scene{background-position:center center}.tour-indicator{bottom:135px}.tour-side{margin-right:14px}.tour-shade{background:linear-gradient(0deg,rgba(0,0,0,.76),rgba(0,0,0,.45),rgba(0,0,0,.15))}.tour-copy{margin-top:24vh}.tour-scrollhint{display:none}}
@media(max-width:540px){.tour-copy h1,.tour-copy h2{font-size:clamp(52px,15vw,77px)}.tour-chapter{height:108svh;padding:8vh 7%}.tour-copy{margin-top:18vh}.tour-copy p{font-size:16px}.tour-indicator{left:7%;bottom:145px}}
@media(prefers-reduced-motion:reduce){.room-scene,.tour-copy{transition:none!important;transform:none!important;filter:none!important}.tour-copy{opacity:1}.tour-chapter{background:#292622a8}.tour-canvas{position:sticky}.tour-shade{background:#0009}}

/* iPhone layout fix: keep the slide label in normal document flow, never over body copy. */
@media (max-width: 600px) {
  .tour-chapter {
    height: auto;
    min-height: max(760px, 112svh);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 30px;
    padding: 105px 7% 110px;
  }
  .tour-copy {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }
  .tour-copy h1, .tour-copy h2 {
    font-size: clamp(38px, 10.5vw, 55px);
    line-height: 1.06;
    overflow-wrap: break-word;
    margin: 12px 0 18px;
  }
  .tour-copy p {
    font-size: 15px;
    line-height: 1.55;
    margin: 0 0 22px;
  }
  .tour-indicator {
    position: static;
    inset: auto;
    flex: 0 0 auto;
    display: block;
    width: 100%;
    margin: 0;
    padding: 14px 0 0;
    border-top: 1px solid rgba(255,255,255,.3);
    font-size: 11px;
    line-height: 1.6;
    white-space: normal;
  }
  .tour-side {display:none;}
  .tour-copy .btn {max-width: 100%;}
}
@media (max-width: 600px) and (max-height: 720px) {
  .tour-chapter {min-height: 780px; padding-top: 95px; padding-bottom: 95px;}
}

/* Persistent toasted-almond navigation on desktop and mobile, including scrolled state */
:root { --header-almond: #C9AC86; }
.nav, .nav.scrolled { background: var(--header-almond) !important; background-color: var(--header-almond) !important; }
@media (max-width: 930px) {
  .links, .links.open { background: var(--header-almond) !important; background-color: var(--header-almond) !important; }
}

/* Holiday project photographs */
.real-gallery-card {overflow:hidden;}
.real-gallery-card img,.wide-feature .frame img{width:100%;display:block;object-fit:cover;}
.real-gallery-card img{height:310px}.wide-feature .frame img{height:390px}
.real-photo-caption{padding:18px 20px 22px;background:#f7f1e8;color:#403326}
.real-photo-caption strong{font-size:1.08rem}.real-photo-caption p{margin:7px 0 0;font-size:.93rem;line-height:1.55;color:#685849}
.contact-real-photo{margin:30px 0 0;max-width:520px}.contact-real-photo img{display:block;width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:2px}
.contact-real-photo figcaption{padding:12px 0;font-size:.9rem;color:#685849;font-style:italic}
@media(max-width:650px){.real-gallery-card img{height:245px}.wide-feature .frame img{height:260px}.real-photo-caption{padding:14px 15px 18px}}

/* Balanced curated gallery: different rooms and themes */
.curated-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.curated-gallery .real-gallery-card img { height:380px; object-fit:cover; }
@media(max-width:680px){.curated-gallery { grid-template-columns:1fr; }.curated-gallery .real-gallery-card img {height:280px;}}

/* Brand wordmark: elegant connected script echoing the lettering in the round floral logo. */
.nav .brand > span {font-family:'Pinyon Script','Brush Script MT',cursive;font-size:clamp(29px,2.7vw,38px);font-weight:400;letter-spacing:.005em;line-height:1.2;text-transform:none;white-space:nowrap;}
@media(max-width:540px){.nav .brand{gap:9px}.nav .brand > span{font-size:clamp(26px,7vw,33px)}}
