@font-face{font-family:Newsreader;src:url('/vendor/fonts/newsreader-latin-standard-normal.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
/* The final composition is also the functional no-script fallback. */
.page-home .hero-copy{--hero-copy-offset-y:15px;position:absolute;left:calc(var(--gutter) + 80px);right:auto;top:148px;width:max-content;max-width:calc(100% - var(--gutter) - 104px);transform:none;translate:0 var(--hero-copy-offset-y);text-align:left;font-family:Manrope,Arial,sans-serif}
.page-home .hero-copy h1{width:max-content;max-width:100%;font-family:Newsreader,Georgia,serif;font-size:calc(clamp(76px,6.3vw,102px) - 2px);font-weight:450;font-style:normal;line-height:1.02;letter-spacing:-.028em;transform-origin:0 0;text-wrap:nowrap}
.page-home .hero-copy h1 span{display:block}
/* Compensate Newsreader descenders for a tight optical title/subtitle gap. */
.page-home .hero-ui{position:relative;left:var(--hero-ink-inset,0px);width:208px;max-width:100%;margin-top:1px;transform-origin:0 0}
.page-home .hero-copy p{width:max-content;max-width:100%;margin:0;font-size:14px;font-weight:450;color:var(--ink);line-height:1.5;white-space:nowrap}
.page-home .hero-copy p span{display:block}
.page-home .hero-actions{display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;gap:10px;margin-top:12px;width:100%}
.page-home .hero-actions .button{flex:1;min-width:0;min-height:44px;padding:0 10px;font-family:Manrope,Arial,sans-serif;font-size:calc(11px + var(--hero-finale,0) * 1px);font-weight:500;white-space:nowrap;backdrop-filter:none}
.page-home .hero-ui p{transform:translateX(calc(-1 * var(--hero-subtitle-inset,0px)))}
.page-home .questions{align-self:center}
.page-home .contact-close>div{max-width:390px}
.page-home .contact-close p{white-space:normal;text-wrap:pretty}
@media(max-width:1179px){.page-home .hero-copy h1{font-size:calc(clamp(62px,6.3vw,76px) - 2px)}}
@media(max-width:760px){
 .page-home .hero-copy{left:24px;top:112px;max-width:calc(100% - 48px)}
 .page-home .hero-copy h1{font-size:calc(clamp(48px,14.1vw,65px) - 2px);line-height:1.02}
 .page-home .hero-ui{width:238px;margin-top:1px}
 .page-home .hero-copy p{font-size:14px;line-height:1.5}
 .page-home .hero-actions{gap:9px;margin-top:12px}
 .page-home .hero-actions .button{font-size:calc(14px + var(--hero-finale,0) * 1px);padding:0 8px;min-height:44px}
 .page-home .room-poster{object-position:center}
}
@media(max-width:359px){
 .page-home .hero-copy h1{font-size:44px}
 .page-home .hero-copy p{font-size:14px}
 .page-home .hero-actions{gap:7px}
 .page-home .hero-actions .button{font-size:calc(14px + var(--hero-finale,0) * 1px);padding:0 7px}
}
/* Without JS the full navigation wraps above the static room composition. */
@media(scripting:none){.page-home .hero-copy{top:190px!important}}
@media(scripting:none) and (max-width:359px){.page-home .hero-copy{top:210px!important}}

/* The furnished static fallback includes only the requested small end detail. */
@media(prefers-reduced-motion:reduce),(scripting:none){.page-home .hero-copy{--hero-finale:1}.page-home .hero-copy h1{transform:translateY(3px)}}
/* Keep static phone copy above the furnished workstations and below the expanded navigation. */
@media(scripting:none) and (max-width:760px){
 .page-home .hero-copy{top:148px!important}
 .page-home .hero-copy h1{font-size:clamp(32px,9vw,42px)}
}
/* A compact, centered native control row fits the wider phone wall. */
@media(max-width:760px){
 .page-home .hero-ui{width:208px}
 .page-home .hero-ui p{text-align:center;width:100%;font-size:12px}
 .page-home .hero-actions{gap:8px}
 .page-home .hero-actions .button{font-size:calc(12px + var(--hero-finale,0) * 1px);padding:0 6px}
}
@media(max-width:359px){.page-home .hero-ui{width:194px}.page-home .hero-actions .button{font-size:12px}}
/* The extra 25px follows the desktop projection into its finished position.
   The wall mapper cancels the base translation at the opening anchor. */
@media(min-width:761px){.page-home .hero-copy{translate:10px calc(var(--hero-copy-offset-y) - 27px + var(--hero-finished-offset-y,-25px))}}
@media(min-width:761px){.page-home .hero-ui{translate:var(--hero-ui-finished-offset-x,15px) 0}}
/* Keep line spacing and the control row fixed while only the headline ink
   becomes 3pt (4 CSS px) smaller at the foreground endpoint. */
@media(min-width:761px){
 .page-home .hero-copy{--hero-title-base-size:calc(clamp(76px,6.3vw,102px) - 2px)}
 .page-home .hero-copy h1{font-size:calc(var(--hero-title-base-size) - var(--hero-title-finished-reduction,4px));line-height:calc(var(--hero-title-base-size) * 1.02)}
}
@media(min-width:761px) and (max-width:1179px){.page-home .hero-copy{--hero-title-base-size:calc(clamp(62px,6.3vw,76px) - 2px)}}

/* Fill the section with the native camera view. Title placement is measured
   against the same cover mapping in hero-lettering.js. */
.page-home .room-stage{min-height:0!important;height:100svh}
.page-home .room-canvas{position:absolute;inset:0;width:100%;height:100%;container-type:size;isolation:isolate}
.page-home .room-journey[data-room-finale-hold]:not([data-fallback=true]){--room-stage-size:100svh}
.page-home .room-journey[data-fallback=true]{min-height:0}
.page-home .hero-copy{--hero-title-base-size:clamp(44px,6.3cqw,102px);left:0;top:0;right:auto;width:max-content;max-width:none;translate:none;transform-origin:0 0}
.page-home .hero-copy h1{font-size:var(--hero-title-base-size);line-height:1.02;transform:none}
.page-home .hero-ui{left:0;width:350px;max-width:none;margin:14px 0 0 12px;translate:none;transform:none}
.page-home .hero-copy p{font-size:22px}
.page-home .hero-actions{gap:10px;margin-top:12px}
.page-home .hero-actions .button{min-height:64px;font-size:20px}
@media(max-width:760px){
 .page-home .hero-copy h1{font-size:44px;line-height:1.02;margin-inline:auto}
 .page-home .hero-ui{width:238px;margin:10px auto 0}
 .page-home .hero-ui p{width:100%;text-align:left;font-size:14px;white-space:nowrap;transform:none}
 .page-home .hero-actions{position:relative;top:auto;left:auto;width:100%;gap:8px;margin-top:10px}
 .page-home .hero-actions .button{min-height:44px;padding:0 8px;font-size:14px}
}
@media(scripting:none){.page-home .hero-copy{left:10cqw;top:22cqh!important}}
@media(scripting:none) and (max-width:760px){
 .page-home .hero-copy{left:23%;top:max(26cqh,calc(52vw + 20px))!important;width:56%;max-width:56%}
 .page-home .hero-copy h1{font-size:clamp(22px,6vw,30px)}
 .page-home .hero-ui{left:0;width:100%;margin-top:12px}
 .page-home .hero-actions{position:relative;top:auto;left:auto;width:208px;max-width:100%;margin-top:12px}
}

@media(max-width:760px) and (max-aspect-ratio:4/5){.page-home .room-media .room-poster{object-position:center top}}
/* Short windows scroll through the scene rather than crushing the clear wall
   patch between the navigation and furnishings into unreadable lettering. */
@media(min-width:761px){
 .page-home .room-stage{height:max(100svh,620px)}
 .page-home .room-journey[data-room-finale-hold]:not([data-fallback=true]){--room-stage-size:max(100svh,620px)}
 .page-home .room-journey[data-fallback=true]{height:max(100svh,620px)!important}
}
@media(max-width:760px) and (min-aspect-ratio:4/5){
 .page-home .room-stage{height:max(100svh,500px)}
 .page-home .room-journey[data-room-finale-hold]:not([data-fallback=true]){--room-stage-size:max(100svh,500px)}
 .page-home .room-journey[data-fallback=true]{height:max(100svh,500px)!important}
}
