@font-face{font-family:EditorialFallback;
src:local("Georgia")}
 :root{--paper:#f4f3ee;
--ink:#162b48;
--muted:#5b6570;
--line:#c8cbc9;
--dark:#14253c;
--white:#f4f3ee;
--space:clamp(64px,9vw,140px)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;
scroll-padding-top:35px}
body{margin:0;
background:var(--paper);
color:var(--ink);
font:16px/1.6 Arial,Helvetica,sans-serif}
img{max-width:100%;
display:block}
a{color:inherit;
text-decoration:none}
button{font:inherit;
cursor:pointer}
a,button{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,video:focus-visible{outline:3px solid #b87923;
outline-offset:6px}
h1,h2,h3,h4,p,figure{margin:0}
h1,h2,h3,h4{font-weight:500;
line-height:1.05}
em{font-family:EditorialFallback,Georgia,serif;
font-weight:400}
button{color:inherit}
.wrap{width:min(1440px,92%);
margin-inline:auto}
.section{padding-block:var(--space)}
.eyebrow{font-size:.75rem;
text-transform:uppercase;
letter-spacing:.13em;
font-weight:600}
.header{min-height:104px;
display:flex;
align-items:center;
justify-content:space-between;
border-bottom:1px solid var(--line);
gap:28px}
.brand{font-size:1.25rem;
font-weight:900;
letter-spacing:-.07em;
line-height:1.1}
.brand span{display:block;
font-size:.6rem;
letter-spacing:.27em;
margin-top:7px;
font-weight:500}
.header nav{display:flex;
gap:clamp(20px,3vw,48px);
font-size:.875rem}
.header nav a{padding-block:14px}
.header nav a:hover,.text-link:hover{opacity:.65}
.hero{padding-top:34px}
.hero-top{display:flex;
justify-content:space-between;
gap:16px}
.hero h1{font-size:clamp(3rem,13.25vw,207px);
letter-spacing:-.079em;
font-weight:900;
line-height:1.18;
margin-left:-.01em;
padding-block:22px 10px;
white-space:nowrap}
.hero h1 span{font-family:Georgia,serif;
font-weight:400;
font-style:italic;
letter-spacing:-.09em}
.hero-bottom{display:flex;
align-items:flex-end;
justify-content:space-between;
padding:12px 0 40px;
gap:25px}
.hero-bottom p{font-size:clamp(1.2rem,2vw,2rem);
line-height:1.25}
.text-link{font-size:.875rem;
border-bottom:1px solid var(--ink);
padding-bottom:9px;
display:flex;
gap:40px;
align-items:center}
.hero-image{position:relative;
display:block;
overflow:hidden}
.hero-image>img{width:100%;
height:min(57vw,670px);
object-fit:cover;
object-position:50% 53%;
transition:transform .7s}
.hero-image:hover>img{transform:scale(1.015)}
.image-label{position:absolute;
bottom:0;
left:0;
right:0;
padding:70px 28px 22px;
display:flex;
justify-content:space-between;
gap:12px;
color:white;
font-size:.875rem;
background:linear-gradient(transparent,rgba(0,0,0,.65))}
.section-head{display:grid;
grid-template-columns:1fr 2fr 1fr;
align-items:start;
gap:30px;
margin-bottom:64px}
.section-head h2,.about h2{font-size:clamp(3rem,5.5vw,5.75rem);
letter-spacing:-.055em}
.section-head>p:last-child:not(.eyebrow){font-size:.9rem;
align-self:end;
color:var(--muted)}
.section-head .eyebrow{padding-top:10px}
.project-heading{display:flex;
justify-content:space-between;
gap:40px;
padding-top:35px;
border-top:1px solid var(--line);
margin-bottom:36px}
.project-heading h3{font-size:clamp(1.8rem,3vw,3rem);
letter-spacing:-.04em;
margin-top:13px}
.project-heading>p{max-width:390px;
color:var(--muted)}
.gallery{display:grid;
grid-template-columns:1fr 1fr;
gap:38px 24px}
.photo-link{display:block;
position:relative;
overflow:hidden;
background:#d5d6cf}
.photo img{aspect-ratio:3/2;
object-fit:cover;
width:100%;
height:auto;
transition:transform .6s}
.photo-link:hover img{transform:scale(1.025)}
.enlarge{position:absolute;
bottom:16px;
right:16px;
border-radius:50%;
width:40px;
height:40px;
display:grid;
place-items:center;
background:var(--paper);
font-size:1.3rem}
.photo figcaption{display:flex;
justify-content:space-between;
gap:10px;
font-size:.875rem;
padding-top:12px}
.photo figcaption span:last-child{font-size:.75rem;
color:var(--muted)}
.film-heading{display:flex;
justify-content:space-between;
align-items:end;
gap:20px;
margin-top:75px;
margin-bottom:24px}
.film-heading h4{font-size:clamp(1.8rem,3.5vw,3.25rem);
letter-spacing:-.04em}
.property-video{display:block;
width:100%;
aspect-ratio:16/9;
background:#0c1522;
object-fit:contain}
.project-foot{display:flex;
justify-content:space-between;
gap:20px;
padding-top:18px;
font-size:.75rem;
color:var(--muted)}
.dark{background:var(--dark);
color:var(--white)}
.dreamcon-top{display:flex;
justify-content:space-between}
.dreamcon h2{font-size:clamp(3.8rem,8vw,8rem);
letter-spacing:-.055em;
margin:65px 0 75px}
.dreamcon h2 em{color:#bac6d5}
.dreamcon-bottom{display:grid;
grid-template-columns:1fr 1fr;
gap:30px;
align-items:end;
border-top:1px solid #ffffff40;
padding-top:28px}
.dreamcon-bottom h3{font-size:2rem}
.dreamcon-bottom p{max-width:400px}
.film-pending{color:#bdc6d1;
font-size:.875rem;
margin-top:16px}
.services{display:grid;
grid-template-columns:1fr 1.5fr;
gap:50px}
.services .section-head{display:block}
.services .section-head h2{margin-top:35px}
.service-list article{padding:30px 0;
display:grid;
grid-template-columns:35px 1fr auto;
gap:16px;
border-top:1px solid var(--line)}
.service-list h3{font-size:1.65rem;
letter-spacing:-.035em}
.service-list p{color:var(--muted);
max-width:440px;
margin-top:16px}
.service-tag{font-size:.75rem;
color:var(--muted)}
.about{display:grid;
grid-template-columns:1fr 3fr;
border-top:1px solid var(--line);
gap:30px}
.about .eyebrow{padding-top:10px}
.about>div{display:grid;
grid-template-columns:1.3fr 1fr;
gap:45px}
.about h2{font-size:clamp(2.6rem,4.5vw,4.75rem)}
.about-copy{align-self:end;
color:var(--muted)}
.about-copy p+p{margin-top:24px}
.contact{padding-bottom:28px}
.contact h2{font-size:clamp(2.8rem,6.5vw,6.7rem);
letter-spacing:-.055em;
margin-top:45px}
.contact-bottom{margin-top:55px;
display:flex;
justify-content:space-between;
align-items:end;
gap:30px}
.contact-bottom p{color:#bdc6d1}
.contact-link{font-size:clamp(1.5rem,3vw,3rem);
letter-spacing:-.04em;
border-bottom:1px solid #bdc6d1;
padding-bottom:8px;
display:flex;
gap:60px;
align-items:center}
.contact-link:hover{color:#c2cee0}
footer{border-top:1px solid #ffffff40;
margin-top:100px;
padding-top:28px;
display:flex;
justify-content:space-between;
gap:24px;
align-items:center;
font-size:.75rem}
footer .brand{font-size:1.05rem}
.sr-only{position:absolute;
width:1px;
height:1px;
padding:0;
overflow:hidden;
clip:rect(0,0,0,0);
white-space:nowrap;
border:0}
.skip-link{position:fixed;
top:-80px;
left:16px;
padding:12px 20px;
background:var(--ink);
color:white;
z-index:100}
.skip-link:focus{top:12px}
.menu-toggle{border:0;
background:none;
padding:12px 0;
font-size:.9rem}
[hidden]{display:none!important}
dialog{border:0;
padding:20px 28px;
background:#101923;
color:white;
width:min(1250px,96vw);
max-height:96dvh;
overflow:auto}
dialog::backdrop{background:#03070bea}
dialog img{width:100%;
height:min(70dvh,800px);
object-fit:contain}
.lightbox-toolbar,.lightbox-controls{display:flex;
align-items:center;
justify-content:space-between;
gap:16px;
padding:6px 0 16px}
.lightbox-controls{padding:16px 0 0}
.lightbox-toolbar p{font-size:1rem}
.lightbox-controls p{font-size:.875rem}
.lightbox-toolbar button,.lightbox-controls button{border:1px solid #ffffff60;
background:none;
color:white;
padding:10px 16px;
font-size:.875rem}
body:has(dialog[open]){overflow:hidden}
.video-error{padding:16px;
background:#e6e3d9}
.video-error a{text-decoration:underline}
@media(max-width:1000px){.section-head{grid-template-columns:1fr 2fr}
.section-head>p:last-child:not(.eyebrow){grid-column:2}
.about>div{grid-template-columns:1fr}
.about-copy{max-width:570px}
.services{grid-template-columns:1fr 1.6fr;
gap:30px}
.contact-link{gap:24px}
}
@media(max-width:700px){.wrap{width:90%}
.header{min-height:88px;
flex-wrap:wrap;
gap:0;
padding-block:22px}
.brand{font-size:1.1rem}
.header nav{width:100%;
gap:0;
justify-content:space-between;
margin-top:20px;
font-size:.8rem}
.js .menu-toggle{display:block}
.js .header nav{display:none;
flex-direction:column;
margin-top:18px;
border-top:1px solid var(--line);
padding-top:12px;
font-size:1rem}
.js .header nav.open{display:flex}
.hero{padding-top:22px}
.hero-top{font-size:.75rem;
letter-spacing:.09em;
flex-wrap:wrap}
.hero h1{font-size:12.8vw;
padding-block:26px 18px}
.hero-bottom{align-items:start;
padding:5px 0 28px}
.hero-bottom p{font-size:1.25rem}
.text-link{font-size:.75rem;
gap:15px;
padding-bottom:7px;
margin-top:4px;
max-width:135px}
.hero-image>img{height:62vh;
max-height:570px;
min-height:360px;
object-position:50% 50%}
.image-label{padding:70px 16px 18px;
font-size:.75rem;
flex-direction:column;
gap:2px}
.section-head{display:block;
margin-bottom:38px}
.section-head h2{margin-top:22px;
font-size:3.35rem}
.section-head>p:last-child:not(.eyebrow){margin-top:24px}
.project-heading{display:block;
padding-top:26px}
.project-heading>p{margin-top:22px}
.gallery{grid-template-columns:1fr;
gap:28px}
.film-heading{margin-top:50px;
align-items:start;
flex-direction:column;
gap:12px}
.project-foot{flex-wrap:wrap;
gap:6px 18px}
.dreamcon-top{gap:20px}
.dreamcon h2{font-size:3.65rem;
margin:45px 0 55px}
.dreamcon-bottom{grid-template-columns:1fr;
gap:20px}
.services{display:block}
.service-list article{grid-template-columns:25px 1fr;
gap:12px}
.service-tag{display:none}
.service-list h3{font-size:1.5rem}
.about{grid-template-columns:1fr;
gap:28px}
.about>div{gap:28px}
.contact h2{font-size:clamp(2.6rem,9vw,4.1rem)}
.contact-bottom{flex-direction:column;
align-items:start;
gap:30px}
.contact-link{font-size:2rem}
footer{margin-top:70px;
flex-wrap:wrap}
footer .brand{flex-basis:100%}
dialog{padding:16px;
width:100vw;
max-height:100dvh}
.lightbox-controls button{padding:10px}
.lightbox-toolbar p{font-size:.875rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;
transition:none!important}
}

.dreamcon-video{display:block;
width:100%;
aspect-ratio:16/9;
margin-top:48px;
background:#080d13;
object-fit:contain}
.dark .video-error{background:#203952;
color:#fff}
.brand span{font-size:.75rem;
letter-spacing:.16em}
.header .menu-toggle{display:none}
@media(max-width:700px){.js .header .menu-toggle{display:block}
}


/* Brand refinement: official 94 mark, monochrome editorial surfaces, navy accents. */
:root{--paper:#fff;
--ink:#151515;
--muted:#606060;
--line:#d7d7d7;
--dark:#111;
--white:#fff;
--accent:#193a65}

.brand{display:flex;
align-items:center;
gap:16px;
letter-spacing:0}

.brand .logo-mark,.logo-mark{display:block;
position:relative;
overflow:hidden;
flex:none;
width:65px;
aspect-ratio:1.23;
margin:0;
mix-blend-mode:multiply}

.logo-mark img{position:absolute;
display:block;
width:310%;
height:auto;
max-width:none;
left:-104%;
top:-53%}

.brand .brand-name{font-size:.875rem;
font-weight:700;
letter-spacing:.02em;
margin:0;
line-height:1.3}

.brand-name small{display:block;
font-size:.75rem;
letter-spacing:.13em;
margin-top:5px;
font-weight:400}

.hero-identity{display:grid;
grid-template-columns:1fr 1.15fr;
gap:7%;
align-items:center;
padding-block:55px 60px}

.hero .hero-mark{width:100%;
max-width:530px;
justify-self:center}

.hero h1{font-family:Arial,Helvetica,sans-serif;
font-size:clamp(3.8rem,6.7vw,7rem);
line-height:1.01;
letter-spacing:-.065em;
font-weight:600;
white-space:normal;
margin:22px 0 0;
padding:0}

.hero h1 em{font-weight:400}

.hero-bottom{border-top:1px solid var(--line);
padding-top:22px}

.hero-bottom p{font-size:clamp(1rem,1.5vw,1.5rem);
line-height:1.4}

.hero-statement .eyebrow,.service-number{color:var(--accent)}

.text-link{border-color:var(--accent);
color:var(--accent)}

.dreamcon h2 em{color:#adadad}
.film-pending,.contact-bottom p{color:#bcbcbc}

.services{grid-template-columns:.85fr 1.65fr;
gap:70px}

.service-list article{padding-block:36px 44px;
gap:24px}

.service-list h3{font-size:clamp(1.65rem,2.4vw,2.5rem);
max-width:600px;
line-height:1.12}

.service-list p{max-width:590px}

.service-list .service-intro{color:var(--ink);
font-size:1.15rem;
line-height:1.4;
margin-top:18px}

.service-details{list-style:none;
padding:0;
margin:25px 0;
font-size:.95rem;
color:#404040}

.service-details li{border-bottom:1px solid #ebebeb;
padding:11px 0 11px 20px;
position:relative}

.service-details li:before{content:'+';
position:absolute;
left:0;
color:var(--accent)}

.service-list .service-use{font-size:.875rem;
margin-top:22px;
line-height:1.6}

.service-use span{display:block;
text-transform:uppercase;
font-weight:600;
font-size:.75rem;
letter-spacing:.12em;
color:var(--accent);
margin-bottom:5px}

.footer-brand .logo-mark{background:#fff;
mix-blend-mode:normal;
border-radius:0;
width:58px}

.contact-link{border-color:#777}
.contact-link:hover{color:#ccc}

.skip-link{top:0;
transform:translateY(-120%)}
.skip-link:focus{top:12px;
transform:none}

@media(max-width:1000px){.services{gap:35px;
grid-template-columns:.8fr 1.6fr}
.hero h1{font-size:7.5vw}
.service-list article{gap:16px}
}

@media(max-width:700px){.header{padding-block:18px}
.brand .logo-mark{width:48px}
.brand .brand-name{font-size:.75rem}
.brand-name small{font-size:.75rem}
.hero-identity{grid-template-columns:1fr;
gap:35px;
padding-block:35px}
.hero .hero-mark{width:65%;
max-width:290px;
justify-self:start}
.hero h1{font-size:clamp(3.4rem,12vw,5rem);
margin-top:16px}
.hero-statement .eyebrow{font-size:.75rem}
.hero-bottom{display:block}
.hero-bottom p{font-size:1.05rem}
.hero-bottom .text-link{max-width:unset;
width:max-content;
margin-top:23px;
font-size:.875rem;
gap:36px}
.hero-image>img{min-height:320px;
height:52vh}
.hero-top{font-size:.75rem;
gap:10px}
.services{display:block}
.service-list article{padding-block:28px 34px}
.service-list h3{font-size:1.8rem}
.service-list .service-intro{font-size:1.1rem}
.service-details{font-size:.95rem}
.footer-brand .brand-name{font-size:.875rem}
footer .brand{flex-basis:auto}
.footer-brand .logo-mark{width:45px}
}


.brand-filter{position:absolute;
pointer-events:none}
.logo-mark img{filter:url(#logo-background)}
.brand .logo-mark,.logo-mark{aspect-ratio:1.19}
.logo-mark img{top:-51.5%}
.footer-brand .logo-mark{background:#fff;
padding:0}


/* Booking contact */
.contact-options{min-width:0;max-width:100%}
.email-link{font-size:clamp(1.05rem,2.35vw,2.3rem);gap:16px;overflow-wrap:anywhere}
.instagram-link{display:inline-block;margin-top:18px;font-size:.875rem;color:#bcbcbc;text-decoration:underline;text-underline-offset:5px}
.instagram-link:hover{color:#fff}
@media(max-width:700px){.email-link{font-size:clamp(1.05rem,4.7vw,1.75rem)}}

/* Hosted films keep their responsive cinematic frame. */
.property-video,.dreamcon-video{border:0}
.film-direct{margin-top:12px;font-size:.75rem;color:var(--muted)}
.film-direct a{text-decoration:underline;text-underline-offset:4px}
.dark .film-direct{color:#bcbcbc}
