@font-face { font-family:"Erin Helvetica"; src:local("HelveticaNeue-Light"); font-style:normal; font-weight:300; font-display:swap }
@font-face { font-family:"Erin Helvetica"; src:local("HelveticaNeue"); font-style:normal; font-weight:400; font-display:swap }
@font-face { font-family:"Erin Helvetica"; src:local("HelveticaNeue-Medium"); font-style:normal; font-weight:500; font-display:swap }
:root {
  --color-paper:#F6F4EF; --color-ink:#292B27; --color-muted:#6A6C64;
  --color-rule:#AAA9A2; --color-stone:#E5E3DB; --color-moss:#6D765E;
  --color-white:#FFFFFF; --color-black:#20211E; --color-blue:#B7C9F2;
  --color-yellow:#F2E982; --color-cobalt:#2E49BA; --color-line:#B1B2AE;
  --font-sans:"Erin Helvetica","Helvetica Neue",Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1); --page-scale:1;
}
* { box-sizing:border-box }
html { scroll-behavior:smooth; scrollbar-gutter:stable }
body { margin:0; background:var(--color-paper); color:var(--color-ink); font-family:var(--font-sans); -webkit-font-smoothing:antialiased }
.site-loader { display:none; position:fixed; inset:0; z-index:500; place-items:center; background:var(--color-paper); opacity:1; transition:opacity 700ms var(--ease) }
.is-loading { overflow:hidden }
.is-loading .site-loader { display:grid }
.site-loader.is-leaving { display:grid; opacity:0; pointer-events:none }
.site-loader img { display:block; width:56px; height:56px; object-fit:contain }
.flower { background-size:contain !important; background-repeat:no-repeat }
.is-loading .hero-headline,.is-loading .hero-note,.is-loading .hero-portrait,.is-loading .hero-portrait .glass { animation-play-state:paused }
@media (prefers-reduced-motion:reduce) { .site-loader { transition:none } }
button,input,textarea { font:inherit; color:inherit }
button { appearance:none; background:none; border:0; cursor:pointer; text-align:inherit; padding:0 }
a { color:inherit; text-decoration:none }
h1,h2,h3,p,figure { margin:0; font-size:inherit; font-weight:inherit }
button:focus-visible,a:focus-visible,[tabindex]:focus-visible,input:focus-visible,textarea:focus-visible { outline:2px solid var(--color-moss); outline-offset:5px }
[hidden] { display:none !important }
.skip-link { position:fixed; z-index:300; top:12px; left:12px; padding:12px 20px; background:var(--color-ink); color:var(--color-paper); transform:translateY(-200%) }
.skip-link:focus { transform:none }
.desktop-layout { zoom:var(--page-scale) }
.desktop-layout .hero { height:calc(100svh / var(--page-scale)) !important; min-height:640px }
.rail-viewport { position:fixed; top:0; left:0; height:calc(100svh / var(--page-scale)) !important; border-right:1px solid var(--color-rule); background:var(--color-paper); z-index:60 }
.rail { position:relative; z-index:100 }
.rail .menu-toggle { width:44px; height:44px; justify-content:center; align-items:center }
.menu-toggle div { transition:transform 500ms var(--ease),opacity 300ms }
.menu-toggle[aria-expanded=true] div:first-child { transform:translateY(3.5px) rotate(45deg) }
.menu-toggle[aria-expanded=true] div:last-child { transform:translateY(-3.5px) rotate(-45deg) }
.rail-progress { position:absolute; right:-3px; top:13%; width:5px; height:5px; border-radius:100%; background:var(--color-moss); transition:top 900ms var(--ease); pointer-events:none }
.mobile-layout { display:none !important }
.photo { position:relative; overflow:hidden; isolation:isolate }
.photo::before { content:""; position:absolute; inset:0; z-index:-1; background-image:inherit; background-size:inherit; background-position:inherit; border-radius:inherit; pointer-events:none; transform:scale(1); transition:transform 1200ms var(--ease) }
.photo.reveal-pending { clip-path:inset(3% round 32px) }
.photo.reveal-pending::before { transform:scale(1.06) }
.photo.is-visible { clip-path:inset(0 round 0); transition:clip-path 1100ms var(--ease) }
.photo > * { position:relative }
.photo > [style*="position:absolute"] { position:absolute }
[data-reveal=rise] { transition:opacity 900ms var(--ease),transform 900ms var(--ease) }
[data-reveal=rise].reveal-pending { opacity:0; transform:translateY(14px) }
[data-reveal=rise].is-visible { opacity:1; transform:none }
.hero-headline { animation:hero-arrive 1100ms var(--ease) both }
.hero-note { animation:hero-arrive 1100ms 150ms var(--ease) both }
.hero-portrait { animation:hero-arrive 1200ms 250ms var(--ease) both }
.hero-portrait .glass { animation:hero-arrive 900ms 700ms var(--ease) both }
.statement-heading [data-word] { transition:color 300ms linear }
.floor-plan { overflow:visible }
.floor-plan path,.floor-plan rect,.floor-plan circle { transition:stroke-dashoffset 1200ms var(--ease),opacity 1200ms var(--ease) }
.floor-plan:not(.is-drawn) path,.floor-plan:not(.is-drawn) rect,.floor-plan:not(.is-drawn) circle { stroke-dasharray:1200; stroke-dashoffset:1200; opacity:0 }
.possibility-card:nth-child(3) { transition-delay:100ms }
.possibility-card:nth-child(4) { transition-delay:200ms }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0 }
.kb-sequence { --kb-stage-height:calc(100svh / var(--page-scale)); position:relative; width:100%; flex-shrink:0 }
.kb-stage { position:relative; width:100% }
.kb-scene { width:100% !important; height:var(--kb-stage-height) !important; min-height:520px; border-radius:0 !important }
.kb-photo-scene > .photo { width:min(880px,calc(100% - 80px)) !important; height:min(620px,calc(100% - 180px)) !important }
.kb-sequence.is-enhanced { height:calc(900svh / var(--page-scale)) }
.is-enhanced .kb-stage { position:absolute; top:0; left:0; height:var(--kb-stage-height); min-height:0; z-index:2 }
.is-enhanced .kb-scene { position:absolute !important; inset:0; height:100% !important; min-height:0; will-change:opacity,transform }
.is-enhanced .kb-photo-scene > .photo { will-change:clip-path; clip-path:inset(var(--kb-mask,0%) round 28px) }
.is-enhanced .kb-photo-scene > .photo::before { transform:scale(var(--kb-image-scale,1)); transition:none }
.kb-progress { position:absolute; bottom:48px; left:50%; translate:-50%; display:flex; gap:8px; width:112px; height:1px }
.kb-progress-button { position:relative; width:32px; height:1px; flex-shrink:0; padding:0; cursor:pointer }
.kb-progress-button::before { content:""; position:absolute; left:0; right:0; top:-12px; bottom:-12px }
.kb-progress-line { position:absolute; inset:0; background:var(--color-rule); pointer-events:none }
.kb-progress-line::after { content:""; position:absolute; inset:0; background:var(--color-ink); transform:scaleX(var(--kb-fill,0)); transform-origin:left }
.mobile-possibilities > div { max-width:100% }
.interiors-heading span { transition:opacity 1000ms 300ms var(--ease) }
.wood-panel { transition:background-color 800ms var(--ease) }
.wood-spec { transition:border-color 1100ms var(--ease) }
.collection-track { width:calc(100% - 56px); height:500px; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; cursor:grab; padding-right:56px; touch-action:pan-x pan-y; user-select:none }
.collection-track::-webkit-scrollbar,.mobile-collection::-webkit-scrollbar { display:none }
.collection-card { scroll-snap-align:start; transition:opacity 600ms var(--ease); user-select:none }
.collection-track.is-dragging { cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto }
.collection-previous,.collection-next { transition:background-color 250ms,opacity 250ms }
.collection-previous:disabled,.collection-next:disabled { opacity:.4; cursor:default }
.contact-cta { transition:filter 200ms }
.contact-cta:hover,.submit-button:hover { filter:brightness(1.15) }
.footer-link:hover { color:var(--color-moss) }
.contact-form { position:relative }
.form-field input,.form-field textarea { appearance:none; width:100%; height:24px; min-height:24px; background:none; border:0; border-radius:0; padding:0; margin:0; font-family:var(--font-sans); font-size:17px; line-height:24px; resize:vertical; color:var(--color-ink) !important }
.form-field textarea { max-height:200px }
.form-field input::placeholder,.form-field textarea::placeholder { color:#B9B8AF; opacity:1 }
.topic-options { flex-wrap:wrap }
.topic-chip { border:1px solid var(--color-rule) !important; background:transparent !important; color:var(--color-ink); padding:9px 15px !important; transition:background-color 350ms var(--ease),border-color 350ms var(--ease),color 350ms var(--ease) }
.topic-chip > div { color:inherit !important }
.topic-chip[aria-checked=true] { background:#0C0C0B !important; border-color:#0C0C0B !important; color:var(--color-paper) }
.topic-chip:hover:not([aria-checked=true]) { background:var(--color-stone) !important }
.submit-button { align-self:flex-start; transition:filter 250ms }
.form-status { position:absolute; top:100%; padding-top:12px; max-width:100%; color:var(--color-muted); font-size:13px; line-height:20px }
.site-menu { position:fixed; z-index:90; top:0; right:0; bottom:0; left:calc(96px * var(--page-scale)); width:auto !important; height:100dvh !important; padding:40px 56px; background:var(--color-paper); overflow:auto !important; animation:menu-arrive 600ms var(--ease) both }
.site-menu .menu-topbar { display:none !important }
.site-menu .menu-body { display:grid !important; grid-template-columns:1fr 1fr; gap:40px 70px; align-content:center; padding:0 !important; max-width:1400px; min-height:100%; margin:auto }
.menu-photos { display:grid !important; grid-template-columns:repeat(3,1fr); align-self:center }
.site-menu .menu-photos > div { height:340px !important }
.menu-links { grid-column:2; grid-row:1 / 3 }
.site-menu .menu-row { transition:color 250ms,transform 600ms var(--ease); padding-block:16px !important }
.site-menu .menu-row > div:first-child { font-size:clamp(36px,4.2vw,68px) !important; line-height:1.2 !important }
.site-menu .menu-row:hover { color:var(--color-moss) }
.site-menu .menu-row:hover > div:first-child { color:var(--color-moss) !important }
.menu-contact { grid-column:1 }
.site-menu:not([hidden]) .menu-photos { animation:menu-arrive 800ms var(--ease) both }
.site-menu:not([hidden]) .menu-row { animation:menu-arrive 800ms var(--ease) both }
.site-menu:not([hidden]) .menu-row:nth-child(2) { animation-delay:60ms }
.site-menu:not([hidden]) .menu-row:nth-child(3) { animation-delay:120ms }
.site-menu:not([hidden]) .menu-row:nth-child(4) { animation-delay:180ms }
.site-menu:not([hidden]) .menu-row:nth-child(5) { animation-delay:240ms }
.site-menu:not([hidden]) .menu-contact { animation:menu-arrive 800ms 300ms var(--ease) both }
.menu-open { overflow:hidden }
.menu-open .desktop-main { pointer-events:none }
@keyframes hero-arrive { from { opacity:0; transform:translateY(12px) } to { opacity:1; transform:none } }
@keyframes menu-arrive { from { opacity:0; transform:translateY(12px) } to { opacity:1; transform:none } }
@media (min-width:1100px) and (hover:hover) and (pointer:fine) {
  .interiors-home > .glass,.interiors-work > .glass {
    opacity:0; transform:translateY(8px); pointer-events:none;
    transition:opacity 350ms var(--ease),transform 350ms var(--ease);
  }
  .interiors-home:hover > .glass,.interiors-work:hover > .glass,
  .interiors-home:focus-within > .glass,.interiors-work:focus-within > .glass {
    opacity:1; transform:none; pointer-events:auto;
  }
}
@media (max-width:1099px) {
  html { scrollbar-gutter:auto; scroll-padding-top:71px }
  .desktop-layout { display:none !important }
  .mobile-layout { display:flex !important; max-width:600px; margin-inline:auto; overflow:clip !important }
  .mobile-topbar { position:sticky; top:0; z-index:100; background:var(--color-paper); flex-shrink:0 }
  .mobile-topbar .menu-toggle { background:none; gap:7px; padding:0 }
  .mobile-layout section { scroll-margin-top:71px }
  .mobile-layout .mobile-hero > .photo { width:100% !important }
  .mobile-layout .mobile-hero h1 { width:100% !important }
  .mobile-collection { overflow-x:auto; overflow-y:hidden; scrollbar-width:none; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; touch-action:pan-x pan-y; padding-inline:12px !important; user-select:none }
  .mobile-collection > div { scroll-snap-align:start; opacity:1 !important; border-radius:20px !important; padding:10px !important }
  .mobile-collection > div > div { padding:14px !important; border-radius:14px !important; gap:4px !important }
  .mobile-collection > div > div > div:first-child { font-size:15px !important; line-height:20px !important }
  .mobile-collection > div > div > div:last-child { font-size:12px !important; line-height:17px !important }
  .mobile-contact form { width:100%; display:flex; flex-direction:column; gap:28px }
  .mobile-contact input,.mobile-contact textarea { height:22px; min-height:22px; font-size:16px; line-height:22px }
  .mobile-contact .submit-button { width:100%; justify-content:space-between }
  .site-menu { left:0; padding:0; z-index:200; overflow-y:auto !important }
  .site-menu .menu-topbar { display:flex !important; position:sticky; top:0; background:var(--color-paper); z-index:2; min-height:71px }
  .site-menu .menu-body { display:flex !important; padding:28px 20px 36px !important; max-width:600px; min-height:calc(100dvh - 71px); gap:40px; justify-content:space-between }
  .menu-photos { display:flex !important; width:100%; align-self:auto }
  .site-menu .menu-photos > div { height:120px !important; flex:1 }
  .site-menu .menu-links { width:100% }
  .site-menu .menu-row { padding-block:14px !important }
  .site-menu .menu-row > div:first-child { font-size:38px !important; line-height:42px !important }
  .site-menu .menu-contact { width:100% }
  .site-menu .menu-contact > div:last-child { flex-wrap:wrap; gap:8px }
  .menu-close { background:none; padding:0 }
}
@media (max-width:374px) {
  .mobile-topbar > div:first-child { gap:8px !important }
  .mobile-topbar > div:first-child > div:last-child { font-size:24px !important }
  .mobile-layout h1 { font-size:38px !important; line-height:42px !important }
  .mobile-about > div:first-child { gap:8px !important }
  .mobile-about > div:first-child > div:first-child { width:65% !important }
  .mobile-about > div:first-child > div:last-child { width:calc(35% - 8px) !important }
  .mobile-interiors > div:nth-last-child(2) > div { flex:1; width:calc((100% - 16px) / 3) !important }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  *,*::before,*::after { animation:none !important; transition-duration:0ms !important; scroll-behavior:auto !important }
  .reveal-pending { opacity:1 !important; transform:none !important; clip-path:none !important }
  .photo.reveal-pending::before { transform:none }
  .floor-plan path,.floor-plan rect,.floor-plan circle { stroke-dashoffset:0 !important; opacity:1 !important }
}
@media (prefers-contrast:more) {
  .desktop-layout span[style*="color"],.mobile-layout span[style*="color"] { color:inherit !important }
  .form-field input::placeholder,.form-field textarea::placeholder { color:var(--color-muted) }
}
