@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap');
:root{--ink:#242621;--paper:#f7f7f2;--soft:#e9e9e1;--accent:#b8a07d;--line:#d4d6cc;--body:'DM Sans',Arial,sans-serif;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #ba996d;outline-offset:6px}img{display:block;width:100%}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.06;letter-spacing:-.045em}h2{font-size:clamp(38px,4.4vw,70px)}em{font-weight:400}h3{font-size:22px;font-weight:500;letter-spacing:-.025em}p{color:#65685e}header{height:96px;position:absolute;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 4.6%;color:white;border-bottom:1px solid #ffffff38}.wordmark{display:inline-flex;flex-direction:column;align-items:center;font:500 31px/1 'Manrope',Arial,sans-serif;letter-spacing:.12em}.wordmark span{font-size:10px;letter-spacing:.58em;padding-left:.45em;margin-top:8px}header nav{display:flex;gap:36px;font-size:14px}header a:not(.wordmark):hover{opacity:.7}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border:1px solid currentColor;font-size:14px;font-weight:500;transition:background .2s,color .2s}.button:hover{background:var(--ink);color:white}.solid{background:var(--ink);color:white;border-color:var(--ink)}.solid:hover{background:#44493e}#menu-toggle{display:none}#mobile-nav[hidden]{display:none}.skip{position:fixed;top:-100px;left:16px;padding:12px;background:white;z-index:100}.skip:focus{top:10px}.story{height:440vh;background:#393d32}.stage{position:sticky;top:0;height:100svh;min-height:560px;overflow:hidden;color:white}.scene{position:absolute;inset:0;overflow:hidden}.scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.part,.finished{opacity:0;will-change:opacity,transform}.part.back{clip-path:polygon(9% 24%,47% 28%,47% 67%,8% 69%)}.part.left{clip-path:polygon(0% 54%,34% 53%,35% 100%,0 100%)}.part.island{clip-path:polygon(40% 37%,71% 35%,72% 88%,40% 88%)}.part.dining{clip-path:polygon(68% 51%,100% 48%,100% 100%,68% 100%)}.part.lighting{clip-path:polygon(49% 20%,88% 19%,88% 51%,49% 51%)}.shade{position:absolute;inset:0;background:linear-gradient(180deg,#10170f70,transparent 48%,#151910ad)}.hero-copy{position:absolute;top:20%;left:7%;max-width:800px;will-change:opacity,transform}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:500}.hero-copy .eyebrow{color:#fff;margin-bottom:22px}.hero-copy h1{font-size:clamp(66px,7.6vw,120px)}.hero-copy h1 em{color:#e4dfd2}.hero-description{color:white;margin-top:24px;font-size:17px}.story-caption{position:absolute;left:7%;bottom:14%;max-width:640px}.story-caption .eyebrow{color:#eee2ca}.story-caption h2{font-size:clamp(28px,3.6vw,52px);margin:15px 0}.story-caption p{color:#e4e6de;font-size:15px}.story-bottom{position:absolute;bottom:30px;left:4.6%;right:4.6%;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:30px;font-size:12px}.story-bottom button{background:transparent;border:0;color:white;text-align:left;font-size:12px;text-decoration:underline;text-underline-offset:5px;min-height:44px}.story-progress{height:2px;background:#ffffff44;overflow:hidden}.story-progress span{display:block;width:100%;height:100%;background:#fff;transform:scaleX(0);transform-origin:left}.scroll-label{text-align:right;letter-spacing:.1em}.section{padding:100px 7%}.section-label{display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding-bottom:27px;border-bottom:1px solid var(--line);margin-bottom:64px}.section-label a{border-bottom:1px solid}.intro-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:8%}.intro-grid p{max-width:490px;margin-bottom:20px}.services{display:grid;grid-template-columns:repeat(3,1fr);margin-top:75px;gap:4%}.services article{border-top:1px solid var(--line);padding-top:25px}.service-num{font-size:12px;color:#777d6e}.services h3{margin:24px 0 15px}.services p{font-size:15px;max-width:330px;min-height:100px}.services a{font-size:14px;display:inline-block;border-bottom:1px solid #a1a598;margin-top:20px}.projects{background:var(--soft)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:50px}.section-heading p{font-size:15px}.project-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:6%}figure{margin:0}.photo-button{display:block;padding:0;position:relative;width:100%;border:none;background:#d8d4c9;overflow:hidden}.photo-button img{height:660px;object-fit:cover;transition:transform .8s}.photo-button:hover img{transform:scale(1.035)}.photo-button span{position:absolute;right:20px;bottom:20px;background:#fffdf2;padding:8px 15px;font-size:12px;opacity:0;transition:opacity .3s}.photo-button:hover span,.photo-button:focus-visible span{opacity:1}figcaption{display:flex;justify-content:space-between;gap:15px;font-size:13px;margin-top:18px}figcaption span:last-child{color:#707567;font-size:12px}.detail-project{padding-top:120px}.detail-project .photo-button img{height:460px}.detail-project>p{margin-top:30px;max-width:390px;font-size:15px}.process{background:#272c24;color:#f5f4ec}.process p{color:#b6beae}.process .section-label{border-color:#505648;color:#d4d9cc}.process-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%}.process h2 em{color:#bcc7ae}.steps article{display:flex;gap:25px;padding:28px 0;border-bottom:1px solid #4b5145}.steps article:first-child{padding-top:0}.steps article>span{color:#9eac91;font-size:12px;padding-top:5px}.steps h3{margin-bottom:8px;font-size:20px}.steps p{font-size:15px;max-width:420px}.studio{position:relative;min-height:760px;padding:90px 7%;display:flex;justify-content:flex-end;align-items:center;background:#9a9687}.studio>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.studio-card{position:relative;max-width:440px;padding:48px;background:var(--paper)}.studio-card h2{font-size:53px;margin:28px 0}.studio-card p{font-size:15px}.studio-card .eyebrow{font-size:12px}.studio-card address{font-style:normal;margin:28px 0;font-size:16px}.studio-card address span{font-size:13px;color:#6f7567}.studio-card .button{font-size:13px;padding:14px 17px}.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:12%}.contact h2{font-size:clamp(44px,5.5vw,86px)}.contact-grid p{margin:30px 0}.contact-mail{display:block;font-size:clamp(22px,3vw,38px);font-family:var(--serif);letter-spacing:-.025em;margin-top:45px}.contact-phone{display:inline-block;font-size:20px;margin-top:10px}.contact-details{padding-top:12px}.contact-details h3{font-size:16px}.contact-details h3:not(:first-child){margin-top:45px}.contact-details p{margin:12px 0;font-size:15px}.contact-details a{display:inline-block;margin-top:10px;border-bottom:1px solid;font-size:14px}footer{display:flex;justify-content:space-between;align-items:center;padding:40px 7%;border-top:1px solid var(--line)}footer p,footer>a:last-child{font-size:12px}footer .wordmark{font-size:24px}footer .wordmark span{font-size:8px}dialog{border:0;padding:24px;background:#20231f;color:white;max-width:95vw;max-height:95svh}dialog::backdrop{background:#000d}dialog img{max-height:75svh;max-width:85vw;object-fit:contain}dialog p{color:white;font-size:14px;padding-top:15px}.close-dialog{display:block;margin:0 0 15px auto;background:none;border:0;color:white;min-height:32px;font-size:14px}
@media(min-aspect-ratio:4000/2447){.scene{width:100vw;height:61.175vw;top:50%;bottom:auto;transform:translateY(-50%)}}
@media(max-aspect-ratio:4000/2447){.scene{height:100%;width:163.465vh;left:50%;right:auto;transform:translateX(-50%)}}
@media(max-width:760px){header{height:80px;padding:0 6%}header nav,.header-cta{display:none}.wordmark{font-size:26px}#menu-toggle{display:block;background:none;color:white;border:1px solid #ffffff80;padding:7px 14px;font-size:14px}#mobile-nav{position:absolute;top:80px;right:0;left:0;z-index:25;background:#272c24;padding:24px 6%;color:white}#mobile-nav a{display:block;padding:12px;border-bottom:1px solid #ffffff30}.story{height:330vh}.stage{min-height:540px}.hero-copy{left:7%;top:22%;right:7%}.hero-copy h1{font-size:64px}.hero-description{font-size:15px;max-width:250px}.hero-copy .eyebrow{font-size:10px;letter-spacing:.13em}.story-caption{bottom:15%;right:7%}.story-caption h2{font-size:32px;max-width:320px}.story-caption p{font-size:14px;max-width:270px}.story-bottom{grid-template-columns:1fr 1fr;left:7%;right:7%;bottom:25px;gap:15px}.scroll-label{display:none}.story-bottom button{font-size:11px}.section{padding:65px 7%}.section-label{font-size:10px;margin-bottom:40px;gap:30px}.section-label>span:last-child{text-align:right}.intro-grid,.process-grid,.contact-grid{grid-template-columns:1fr;gap:35px}.intro-grid h2{font-size:39px}.services{grid-template-columns:1fr;margin-top:35px;gap:30px}.services h3{margin-top:12px}.services p{min-height:0;max-width:none}.services a{margin-top:12px}.section-heading{display:block}.section-heading p{margin-top:24px}.project-grid{grid-template-columns:1fr;gap:45px}.photo-button img{height:auto;max-height:600px}.detail-project{padding-top:0}.detail-project .photo-button img{height:440px;object-position:center 55%}.photo-button span{opacity:1}figcaption{font-size:12px;flex-wrap:wrap}.studio{padding:300px 7% 40px;min-height:0}.studio>img{object-position:38% center}.studio-card{padding:30px;max-width:100%;width:100%}.studio-card h2{font-size:45px}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.contact-details h3{grid-column:1/-1;margin-top:20px!important}.contact-details p{margin:0}.contact-details a{margin:0;align-self:start}.contact-mail{font-size:29px;margin-top:30px}.contact h2{font-size:49px}footer{flex-wrap:wrap;gap:25px}footer p{margin-left:auto}footer>a:last-child{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.story{height:100svh}.finished{opacity:1!important}.hero-copy{opacity:1!important;transform:none!important}.story-caption{display:none}.story-bottom{display:none}.photo-button img{transition:none}}

/* Exact transparent brand assets, animated once as each logo enters view. */
.wordmark{position:relative;display:block;width:86px;height:78px;overflow:visible;flex-shrink:0;mix-blend-mode:normal}
.wordmark img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;max-width:100%;filter:none;transform:none}
header .wordmark,footer .wordmark{mix-blend-mode:normal}
header .wordmark img{filter:none}
.brand-contour{clip-path:polygon(0 0,100% 0,100% 100%,79% 100%,79% 65%,0 65%)}
.brand-type{clip-path:polygon(0 65%,79% 65%,79% 100%,0 100%)}
.wordmark.logo-animate .brand-contour{animation:brand-frame 1.4s cubic-bezier(.22,.61,.36,1) both}
.wordmark.logo-animate .brand-type{animation:brand-name .75s .75s cubic-bezier(.22,.61,.36,1) both}
@keyframes brand-frame{0%{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%,0 65%,0 65%)}15%{opacity:1}100%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,79% 100%,79% 65%,0 65%)}}
@keyframes brand-name{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.wordmark{width:70px;height:64px}}
@media(prefers-reduced-motion:reduce){.wordmark.logo-animate img{animation:none!important;transform:none}}

/* Photographic stages share one fixed camera; only furniture and final lighting change. */
.story{height:460vh;background:#d7d1c6}.scene.model-scene{inset:0;width:100%;height:100%;transform:none;background:#d7d1c6}.model-scene img{object-fit:contain;object-position:center}.model-frame{opacity:0;will-change:opacity}.model-frame:first-child{opacity:1}.shade{background:linear-gradient(180deg,#10170f95,transparent 35%,transparent 62%,#151910a8)}.story-caption h2{font-size:clamp(26px,3vw,44px)}.hero-copy{top:21%}.story-caption{bottom:12%}.hero-copy h1{font-size:clamp(56px,6.5vw,100px)}
@media(max-width:760px){.story{height:370vh}.stage{min-height:650px;background:#272c24}.scene.model-scene{top:29%;bottom:auto;height:auto;aspect-ratio:1440/920;background:#d7d1c6}.model-scene img{object-fit:contain}.shade{background:linear-gradient(180deg,#15191055,transparent 25%,transparent 65%,#15191055)}.hero-copy{top:15%;z-index:2}.hero-copy h1{font-size:45px;line-height:.98}.hero-copy .eyebrow{margin-bottom:14px}.hero-description{display:none}.story-caption{bottom:14%}.story-caption h2{font-size:29px;max-width:350px}.story-caption p{max-width:330px}.story-bottom{bottom:4%}}
@media(prefers-reduced-motion:reduce){.story{height:100svh}.model-frame:last-child{opacity:1!important}.hero-copy{display:none}.story-caption{display:block}}

.story-caption{transition:opacity .25s ease}.model-scene{isolation:isolate}.model-frame{backface-visibility:hidden}

.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:30px 0}.gallery-toolbar>div{display:flex;align-items:center;gap:18px}.gallery-toolbar button{padding:12px 16px;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;font:inherit}.gallery-carousel{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:18px}.gallery-slide{flex:0 0 48%;margin:0;scroll-snap-align:start}.gallery-slide .photo-button{width:100%;height:560px}.gallery-slide img{width:100%;height:100%;object-fit:contain;background:#ecece8}.booking-section iframe{display:block;width:100%;height:900px;border:1px solid #ddd;margin-top:30px;background:white}.booking-section h2{font-size:clamp(2rem,4vw,3.5rem)}@media(max-width:700px){.gallery-toolbar{align-items:flex-start;flex-direction:column}.gallery-slide{flex-basis:90%}.gallery-slide .photo-button{height:450px}.gallery-toolbar>div{gap:10px}.booking-section iframe{height:850px}}
.booking-tabs{display:flex;gap:10px;margin:30px 0;border-bottom:1px solid #ccc;padding-bottom:12px}.booking-tabs button{font:inherit;padding:14px 20px;border:1px solid #aaa;background:transparent;cursor:pointer}.booking-tabs [aria-selected=true]{background:#22231f;color:white;border-color:#22231f}.booking-form{max-width:960px}.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:24px 0}.booking-form label{display:flex;flex-direction:column;gap:8px;font-size:1rem}.booking-form input:not([type=checkbox]),.booking-form select,.booking-form textarea{width:100%;min-width:0;padding:14px;border:1px solid #aaa;border-radius:0;background:white;color:#22231f;font:inherit}.booking-form small,.booking-note{font-size:.9rem;line-height:1.6;color:#53534f}.booking-form fieldset{border:0;padding:0;margin:28px 0}.booking-form legend{margin-bottom:14px}.booking-options{display:flex;flex-wrap:wrap;gap:14px 26px}.booking-options label{display:flex;flex-direction:row;align-items:center}.booking-options input{width:20px;height:20px;accent-color:#22231f}.booking-form button{cursor:pointer;font:inherit}.booking-form :focus-visible,.booking-tabs :focus-visible{outline:3px solid #94784d;outline-offset:3px}.booking-form .booking-note{margin:20px 0}.booking-section [hidden]{display:none!important}@media(max-width:650px){.booking-fields{grid-template-columns:1fr}.booking-tabs button{flex:1;padding:12px 8px}.booking-options{flex-direction:column}}
/* Both gallery views show every photograph; zoom stays inside each frame. */
.gallery-toolbar .gallery-view-controls{flex-wrap:wrap;gap:10px}.gallery-view-controls #gallery-count{font-size:.9rem;margin-right:10px;color:#52594b}.gallery-view-controls button{font-size:.9rem;padding:11px 16px}.gallery-view-controls button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:white}.gallery-all{overflow:visible;scroll-snap-type:none;padding:0;gap:22px}.gallery-all .gallery-slide{margin:0;min-width:0;scroll-snap-align:none;break-inside:avoid}.gallery-all .photo-button{height:auto;overflow:hidden;isolation:isolate;background:#e1e2db}.gallery-all img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;transform:scale(1);transition:transform .5s cubic-bezier(.2,.65,.3,1);transform-origin:center}.gallery-all.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.gallery-grid .photo-button{aspect-ratio:4/3}.gallery-all.gallery-mosaic{display:block;columns:3;column-gap:22px}.gallery-mosaic .gallery-slide{margin-bottom:22px}.gallery-mosaic .photo-button{aspect-ratio:auto}.gallery-mosaic img{height:auto;object-fit:contain}.gallery-all .photo-button:focus-visible img{transform:scale(1.2)}@media(hover:hover) and (pointer:fine){.gallery-all .photo-button:hover img{transform:scale(1.2)}}@media(max-width:1000px){.gallery-all.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-all.gallery-mosaic{columns:2}}@media(max-width:700px){.gallery-toolbar .gallery-view-controls{width:100%;gap:8px}.gallery-view-controls #gallery-count{width:100%;margin-bottom:6px}.gallery-view-controls button{flex:1;min-width:0}.gallery-all{gap:14px}.gallery-all.gallery-mosaic{column-gap:14px}.gallery-mosaic .gallery-slide{margin-bottom:14px}.gallery-all .gallery-slide .photo-button{height:auto}}@media(max-width:480px){.gallery-all.gallery-grid{grid-template-columns:1fr}.gallery-all.gallery-mosaic{columns:1}}@media(prefers-reduced-motion:reduce){.gallery-all img{transition:none}}
