:root{--paper:#f8f7f2;--white:#fffefa;--ink:#2d4234;--sage:#58724e;--muted:#687064;--line:#d6ddcf;--wash:#eff0e6;--header:78px;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 Arial,sans-serif}body.dark{--paper:#18241d;--white:#213026;--ink:#e6ebdf;--sage:#b3c6a2;--muted:#b6c1ae;--line:#43523e;--wash:#263329;color-scheme:dark}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--sage);outline-offset:5px}button{border:0}img{max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:normal;letter-spacing:-.04em;line-height:1.08}h2{font-size:clamp(35px,4vw,58px)}h2 em,h1 em{color:var(--sage);font-weight:normal}h3{font-size:20px;font-weight:normal;line-height:1.3}p{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:500;color:var(--sage)}.button{display:inline-flex;align-items:center;justify-content:center;padding:13px 24px;background:#546b4a;color:white;font-size:13px;font-weight:600;border-radius:2px;transition:background .2s}.button:hover{background:#3f5738}.text-link{display:inline-block;padding-bottom:4px;border-bottom:1px solid;font-size:14px}.site-header{height:var(--header);position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;background:var(--paper);padding:0 3.3%;border-bottom:1px solid var(--line);gap:24px}.brand{width:104px;line-height:0}.brand img{width:104px;height:59px;object-fit:contain;mix-blend-mode:multiply}body.dark .brand img{mix-blend-mode:screen;filter:invert(1)}nav{display:flex;gap:28px;align-items:center}nav button{background:transparent;padding:8px 0;font-size:14px}nav a{font-size:14px}nav [aria-expanded=true]{color:var(--sage)}.header-actions{display:flex;gap:20px;align-items:center}.circle{width:39px;height:39px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:21px}.mobile-toggle{display:none;background:transparent;font-size:24px}.mega{position:fixed;top:var(--header);left:2.2%;right:2.2%;z-index:19;border-top:3px solid #7b9071;padding:36px 38px;background:var(--white);box-shadow:0 20px 50px #15251c30;border-radius:0 0 5px 5px;max-height:calc(100dvh - 100px);overflow:auto}.projects-menu{display:grid;grid-template-columns:24% 23% 28% 25%;font-size:13px}.mega h2{font-size:36px;margin:20px 0}.menu-intro{padding-right:26px;border-right:1px solid var(--line)}.menu-intro>p:not(.eyebrow){font-size:13px;max-width:260px}.menu-intro .text-link{margin:8px 0 22px}.profile-link{display:block;border-top:1px solid var(--line);padding:16px 0;font-size:12px}.menu-column{padding-left:28px}.menu-column h3{font-size:12px;color:var(--sage);font-weight:600;letter-spacing:.5px;margin-bottom:18px}.menu-project{display:flex;gap:10px;text-align:left;width:100%;background:transparent;padding:7px 0;margin-bottom:8px;font-size:13px;line-height:1.55}.menu-project small{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;margin-top:4px}.menu-project svg{width:18px;height:18px;flex-shrink:0;margin-top:3px;stroke:var(--sage);stroke-width:1.4;fill:none;stroke-linecap:round;stroke-linejoin:round}.menu-project:hover,.menu-project:focus-visible{color:var(--sage)}.menu-hero{margin:24px 0 0;position:relative;aspect-ratio:16/9;border-radius:4px;overflow:hidden;background:var(--wash)}.menu-hero img{width:100%;height:100%;object-fit:cover;display:block}.menu-hero figcaption{position:absolute;bottom:0;left:0;right:0;padding:28px 12px 10px;background:linear-gradient(transparent,#102219dc);color:white;font-size:11px;line-height:1.4}.menu-hero small{display:block;font-size:9px;opacity:.85;margin-top:3px}.menu-hint{font-size:10px;margin:10px 0 0}.architecture{height:162px;border-radius:4px;background:var(--wash);position:relative;overflow:hidden}.architecture svg{width:100%;height:100%;stroke:var(--sage);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;fill:none}.architecture .faint{opacity:.25}.draw{stroke-dasharray:900;stroke-dashoffset:900;animation:draw 9s ease-in-out infinite}.architecture>span{position:absolute;left:13px;bottom:8px;font-size:8px;letter-spacing:1.4px;color:var(--sage)}@keyframes draw{0%,8%{stroke-dashoffset:900}55%,90%{stroke-dashoffset:0}100%{stroke-dashoffset:900}}.expertise-menu{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.expertise-menu>a{border-left:1px solid var(--line);padding:14px 24px}.expertise-menu h3{font-size:18px;margin:16px 0}.service-number{font:28px Georgia;color:var(--sage)}.hero{position:relative;min-height:650px;height:calc(100svh - var(--header));max-height:1000px;overflow:hidden}.hero-image{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#f8f7f2e8 0%,#f8f7f2c5 28%,#f8f7f22b 64%,transparent 90%)}.hero-copy{position:relative;padding:clamp(80px,13vh,170px) 8% 90px;max-width:900px;color:#2d4234}.hero-copy .eyebrow{color:#526b4d}.hero h1{font-size:clamp(50px,6.7vw,98px);margin:25px 0}.hero h1 em{color:#5b724f}.hero-copy>p:not(.eyebrow){font-size:18px;color:#4c5e4d;max-width:400px}.hero-buttons{display:flex;gap:28px;align-items:center;margin-top:40px}.hero-credit{position:absolute;right:20px;bottom:20px;color:white;text-shadow:0 1px 6px #000;font-size:10px}.scroll-link{position:absolute;left:8%;bottom:32px;font-size:10px;letter-spacing:1.6px;color:#2d4234}.section{padding:100px 8%;scroll-margin-top:25px}.company{display:grid;grid-template-columns:1fr 1fr;gap:45px}.company-story p{max-width:580px}.lead{font-size:20px;line-height:1.65;color:var(--ink)}.stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding-top:30px;border-top:1px solid var(--line);margin-top:20px}.stats>div{display:flex;flex-direction:column}.stats strong{font:48px Georgia;font-weight:normal}.stats span{font-size:10px;letter-spacing:1.2px;color:var(--sage);margin-top:10px}.expertise{background:var(--wash)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:42px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:360px;margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.service-grid article{background:var(--white);scroll-margin-top:100px}.service-grid article>img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.service-grid article>div{padding:26px}.service-grid h3{font:25px Georgia;margin:13px 0}.service-grid p{font-size:14px}.service-grid .detail{font-size:12px;padding-top:15px;border-top:1px solid var(--line)}.source-note{font-size:11px;line-height:1.6;color:var(--muted);margin:26px 0 0}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:35px}.filters button{padding:8px 18px;border:1px solid var(--line);background:transparent;border-radius:30px;font-size:12px}.filters button.active{background:#546b4a;color:white;border-color:#546b4a}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px}.project-tile{position:relative;background:transparent;padding:23px 35px 23px 0;border-top:1px solid var(--line);text-align:left}.project-tile small{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--sage);margin-bottom:9px}.project-tile h3{font:22px/1.3 Georgia;margin:0 0 9px}.project-tile p{font-size:12px;margin:0}.project-tile>span{position:absolute;right:8px;top:35px;font-size:22px;color:var(--sage);transition:transform .2s}.project-tile:hover>span{transform:translate(3px,-3px)}.approach{background:var(--wash)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.steps article{border-top:1px solid var(--line);padding-top:20px}.steps span{font:32px Georgia;color:var(--sage)}.steps h3{margin:20px 0 12px;font:24px Georgia}.steps p{font-size:13px}.contact{display:grid;grid-template-columns:1.2fr 1fr;gap:70px}.contact-details{display:flex;flex-direction:column;gap:30px;justify-content:center}.contact-details>div{padding-bottom:20px;border-bottom:1px solid var(--line)}.contact-details p{margin:8px 0 0}.contact-details a{display:block;margin-top:9px}footer{padding:30px 8% 90px;background:#2d4234;color:#f8f7f2;display:flex;align-items:center;gap:30px;justify-content:space-between}footer>a{font:bold 35px Georgia;letter-spacing:-2px}footer p,footer span{font-size:10px;color:#cdd7c4;margin:0;letter-spacing:1px}.music-control{position:fixed;right:20px;bottom:18px;z-index:30;border:1px solid var(--line);border-radius:28px;background:var(--white);color:var(--ink);box-shadow:0 3px 15px #0001;padding:9px 16px;display:flex;gap:10px;align-items:center;font-size:11px}.music-control>span:first-child{font-size:20px}.music-control[aria-pressed=true]{background:#546b4a;color:white}.skip{position:fixed;left:12px;top:-100px;z-index:100;background:var(--white);padding:12px}.skip:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(max-width:1050px){nav{gap:18px}.header-actions{gap:10px}.header-actions .button{padding:10px 14px}.mega{padding:26px}.projects-menu{grid-template-columns:1fr 1fr;gap:24px}.menu-intro{border:0}.menu-column{padding-left:0}.section{padding:75px 6%}.hero-copy{padding-left:6%}.expertise-menu{grid-template-columns:1fr 1fr}.service-grid{gap:16px}.service-grid article>div{padding:20px}.steps{gap:20px}}@media(max-width:760px){:root{--header:70px}.site-header{gap:16px;padding:0 5%}.brand,.brand img{width:86px;height:49px}.mobile-toggle{display:block;margin-left:auto}.header-actions .button{display:none}.header-actions{gap:0}nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);padding:20px 6%;border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:center}nav.open{display:flex}.mega{top:125px;max-height:calc(100dvh - 145px);left:3%;right:3%;padding:22px}.projects-menu,.expertise-menu{grid-template-columns:1fr;gap:24px}.menu-intro{padding:0}.menu-intro h2{font-size:30px}.architecture{height:130px;max-width:320px}.menu-project{padding:8px 0}.expertise-menu>a{border-left:0;border-top:1px solid var(--line);padding:16px 0}.menu-hero{max-width:450px}.hero{min-height:650px;height:calc(100svh - 70px)}.hero-image{object-position:65% center}.hero-shade{background:linear-gradient(90deg,#f8f7f2ee,#f8f7f2b0 60%,#f8f7f247)}.hero-copy{padding:95px 7% 100px}.hero h1{font-size:56px}.hero-copy .eyebrow{font-size:9px}.hero-copy>p:not(.eyebrow){font-size:16px;max-width:280px}.hero-buttons{gap:20px;flex-wrap:wrap}.scroll-link{left:7%}.section{padding:65px 7%}.company,.contact{grid-template-columns:1fr;gap:25px}.stats{gap:15px}.stats strong{font-size:36px}.stats span{font-size:8px}.section-heading{display:block}.section-heading>p{margin:22px 0 0}.service-grid{grid-template-columns:1fr;gap:25px}.project-grid{grid-template-columns:1fr 1fr;gap:0 20px}.project-tile h3{font-size:19px}.steps{grid-template-columns:1fr 1fr;gap:24px}.contact-details{margin-top:20px}footer{align-items:flex-start;flex-direction:column;gap:18px}.dialog-copy{padding:24px}.dialog-copy h2{font-size:32px}.dialog-copy dl{grid-template-columns:1fr}.hero-credit{font-size:8px;bottom:12px;right:12px}}@media(max-width:420px){.hero h1{font-size:48px}.hero-buttons .text-link{font-size:12px}.project-grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr;gap:18px}.stats strong{font-size:29px}.filters button{padding:7px 11px;font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.draw{stroke-dashoffset:0}}
:root .hero-credit{bottom:76px}@media(max-width:760px){nav.open{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding:14px 6%;text-align:center}nav.open>a,nav.open>button{line-height:24px}nav.open>button{padding:0}.mega{top:154px;max-height:calc(100dvh - 174px)}}
:is(.menu-hero,.dialog-image):has(img[data-loaded="false"])::after{content:"Loading project image…";position:absolute;inset:0;display:grid;place-items:center;background:var(--wash);color:var(--sage);font-size:12px;z-index:1}:is(.menu-hero,.dialog-image):has(img[data-loaded="error"])::after{content:"Image unavailable. Please try again.";position:absolute;inset:0;display:grid;place-items:center;background:var(--wash);color:var(--ink);font-size:12px;z-index:1}

/* Keep the two intended headline lines at every desktop width. */
.hero-copy{width:100%;max-width:1100px;padding-right:32px}
.hero h1>span,.hero h1>em{display:block;white-space:nowrap}
@media(min-width:761px){.hero h1{font-size:clamp(50px,5.3vw,92px)}}
@media(max-width:760px){.hero-copy{max-width:none;padding-right:7%}.hero h1{font-size:clamp(34px,8.8vw,56px)}}
[data-menu][aria-expanded="true"]{color:var(--sage)}
[data-menu][aria-expanded="true"] span{display:inline-block;transform:rotate(180deg)}

/* Shared alignment and section-aware navigation. */
:root{--page-gutter:clamp(24px,4.7vw,72px);--content-gutter:max(var(--page-gutter),calc((100% - 1440px)/2))}
html{scroll-padding-top:calc(var(--header) + 24px)}
.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding-inline:var(--content-gutter)}
.header-actions{justify-self:end}.section,footer{padding-inline:var(--content-gutter)}
.section,.service-grid article{scroll-margin-top:0}.hero-copy{padding-left:var(--content-gutter)}.scroll-link{left:var(--content-gutter)}
nav [aria-current="location"]{color:var(--sage);text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}
.music-setting{background:none;color:inherit;font-size:11px;padding:4px 0;border-bottom:1px solid currentColor;white-space:nowrap}
.hero-credit{bottom:20px!important}.project-view #main>section:not(#project-page){display:none}
.project-hero .hero-copy{max-width:1080px;padding-top:clamp(55px,9vh,110px)}
.project-hero h1{font-size:clamp(38px,4.5vw,72px);margin:18px 0;line-height:1.1}
.project-hero .hero-copy>p:not(.eyebrow){max-width:540px;font-size:17px}
.project-back{display:inline-block;font-size:12px;margin-bottom:35px}.project-hero .eyebrow{margin-bottom:0}
.project-details{display:grid;grid-template-columns:1.2fr 1fr;gap:70px}
#project-facts{margin:0;align-self:center}#project-facts>div{padding:22px 0;border-bottom:1px solid var(--line)}
#project-facts dt{text-transform:uppercase;font-size:11px;letter-spacing:1.4px;color:var(--sage)}#project-facts dd{margin:10px 0 0;font-size:18px}
.project-hero:has(img[data-loaded="false"])::after{content:'Loading project image…';position:absolute;bottom:20px;right:var(--page-gutter);color:var(--ink);background:var(--paper);padding:5px 12px;font-size:11px}
.project-hero:has(img[data-loaded="error"])::after{content:'Image unavailable. Please reload the page.';position:absolute;bottom:20px;right:var(--page-gutter);color:var(--ink);background:var(--paper);padding:5px 12px;font-size:11px}
@media(max-width:1050px) and (min-width:761px){.site-header{gap:18px}nav{gap:16px}.header-actions .button{font-size:11px;padding:10px}}
@media(max-width:760px){.site-header{display:flex;padding-inline:var(--page-gutter)}.hero-copy{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}.section,footer{padding-inline:var(--page-gutter)}.project-details{grid-template-columns:1fr;gap:25px}.project-hero h1{font-size:clamp(34px,8vw,54px)}.project-hero .hero-copy{padding-top:55px}.project-back{margin-bottom:25px}.project-hero .hero-copy>p:not(.eyebrow){font-size:15px}.project-hero .hero-buttons{margin-top:25px}}

.project-hero h1:focus{outline:none}

/* Image-led expertise menu. */
nav .menu-indicator{display:inline-block;margin-left:6px;font-size:17px;line-height:1;transform:none;transition:transform .2s}
nav [aria-expanded="true"] .menu-indicator{transform:rotate(45deg)}
.expertise-menu{grid-template-columns:.9fr 1fr 1fr 1fr;gap:24px;padding:32px}
.expertise-intro{padding:8px 20px 0 0}.expertise-intro h2{font-size:35px}.expertise-intro>p:not(.eyebrow){font-size:13px}.expertise-intro .text-link{font-size:12px;margin-top:10px}
.expertise-menu>a.expertise-card{padding:0;border:0;background:var(--paper);border-radius:4px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.expertise-card-image{aspect-ratio:4/3;overflow:hidden;background:var(--wash)}.expertise-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s}
.expertise-card-copy{padding:20px}.expertise-menu .expertise-card h3{font:22px Georgia;margin:0 0 12px}.expertise-card-copy p{font-size:12px;line-height:1.7;margin-bottom:18px}.expertise-card-copy>span{font-size:11px;color:var(--sage);border-bottom:1px solid var(--line);padding-bottom:3px}
.expertise-card-list{display:flex;flex-wrap:wrap;gap:6px 8px;list-style:none;margin:-7px 0 18px;padding:0}.expertise-card-list li{padding:4px 8px;border:1px solid var(--line);border-radius:20px;color:var(--sage);font-size:9px;line-height:1.2;letter-spacing:.35px}
.expertise-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #17291b14}.expertise-card:hover img{transform:scale(1.035)}
.site-footer{display:block;padding-top:55px;padding-bottom:22px;background:#2d4234;color:#f8f7f2}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .9fr 1.3fr;gap:35px}.footer-grid h3{font-size:12px;font-weight:600;letter-spacing:.7px;margin:5px 0 22px;color:#dce5d5}.footer-grid a{display:block;font-size:12px;line-height:1.65;margin-bottom:10px;color:#dce5d5;letter-spacing:0}.footer-grid a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-brand img{width:145px;height:82px;object-fit:contain;filter:invert(1);mix-blend-mode:screen}.footer-brand p{font-size:14px;line-height:1.65;margin:16px 0 14px;letter-spacing:0;color:#dce5d5}.footer-brand span{font-size:10px;letter-spacing:.4px;line-height:1.7}.footer-contact p{font-size:12px;line-height:1.8;margin-bottom:16px;letter-spacing:0;color:#dce5d5}
.footer-bottom{display:flex;align-items:center;gap:24px;justify-content:space-between;border-top:1px solid #ffffff25;padding-top:20px;margin-top:42px}.footer-bottom a{font-size:11px}.footer-bottom span{font-size:10px;letter-spacing:.3px}
.lead-section{display:grid;grid-template-columns:1fr 1.15fr;gap:70px;background:var(--wash)}.lead-section>div>p:not(.eyebrow){max-width:390px}.enquiry-contact{color:var(--ink);font-size:18px}
#lead-form label{display:block;font-size:12px;color:var(--ink);line-height:1.5;margin-bottom:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}#lead-form input,#lead-form select,#lead-form textarea{display:block;width:100%;margin-top:8px;padding:12px 13px;border:1px solid var(--line);border-radius:2px;color:var(--ink);background:var(--white);font:14px Arial;line-height:1.4}#lead-form textarea{resize:vertical}#lead-form :is(input,select,textarea):focus{outline:2px solid var(--sage);outline-offset:2px}.form-note,#lead-status{font-size:11px;line-height:1.6;margin:14px 0 0}
.whatsapp-widget,.assistant-toggle{position:fixed;right:22px;z-index:31;display:flex;align-items:center;gap:10px;border-radius:30px;padding:12px 16px;box-shadow:0 5px 22px #0002;font-size:12px}.whatsapp-widget{bottom:20px;background:#21704a;color:white}.whatsapp-widget svg,.assistant-toggle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.assistant-toggle{bottom:83px;background:var(--white);color:var(--ink);border:1px solid var(--line)}
.assistant-panel{position:fixed;right:22px;bottom:145px;width:360px;max-height:calc(100dvh - 180px);z-index:32;background:var(--white);border:1px solid var(--line);box-shadow:0 15px 45px #0002;border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.assistant-heading{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#2d4234;color:white}.assistant-heading strong{font-size:15px}.assistant-heading span{display:block;font-size:11px;color:#dce5d5}.assistant-heading button{font-size:25px;background:none;color:white}#assistant-connection{font-size:11px;margin:0;padding:14px 18px;background:var(--wash);line-height:1.6}#assistant-messages{padding:15px 18px;overflow:auto;min-height:110px;max-height:220px}.chat-message{font-size:12px;white-space:pre-wrap;padding:12px;border-radius:8px;margin:0 0 10px;background:var(--wash);color:var(--ink);line-height:1.7}.chat-message.user{margin-left:28px;background:#546b4a;color:white}.chat-message.pending{opacity:.65}.assistant-contact{margin:0 18px 15px;font-size:11px;text-decoration:underline}#assistant-form{display:flex;border-top:1px solid var(--line);padding:12px;gap:8px}#assistant-input{min-width:0;width:100%;font:12px Arial;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);padding:10px}#assistant-send{background:#546b4a;color:white;padding:8px 12px;border-radius:4px;font-size:12px}#assistant-send:disabled{opacity:.4;cursor:default}

.motion-ready .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease var(--reveal-delay,0ms),transform .7s ease var(--reveal-delay,0ms)}.motion-ready .reveal.revealed{opacity:1;transform:translateY(0)}.hero-copy{animation:hero-arrive .9s ease both}@keyframes hero-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1050px){.expertise-menu{grid-template-columns:1fr 1fr;gap:20px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.lead-section{gap:35px}}
@media(max-width:760px){.expertise-menu{grid-template-columns:1fr;padding:22px}.expertise-intro{padding:0}.expertise-card-image{aspect-ratio:16/9}.lead-section{grid-template-columns:1fr;gap:25px}.footer-grid{grid-template-columns:1fr 1fr;gap:30px 20px}.footer-brand,.footer-contact{grid-column:1/-1}.footer-bottom{flex-wrap:wrap;justify-content:flex-start;padding-bottom:80px}.whatsapp-widget,.assistant-toggle{right:15px;padding:12px}.whatsapp-widget>span,.assistant-toggle>span{display:none}.whatsapp-widget{bottom:15px}.assistant-toggle{bottom:75px}.assistant-panel{right:15px;left:15px;width:auto;bottom:135px;max-height:calc(100dvh - 160px)}.form-row{grid-template-columns:1fr;gap:0}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal{opacity:1;transform:none}.hero-copy{animation:none}}

.hero-credit{right:var(--page-gutter);bottom:28px!important;padding-right:175px}.project-view .hero-credit{padding-right:175px}@media(max-width:760px){.hero-credit,.project-view .hero-credit{right:76px;padding-right:0;font-size:8px}}

.footer-brand img{filter:url(#brand-white);mix-blend-mode:normal}

.footer-bottom{padding-right:170px}@media(max-width:760px){.footer-bottom{padding-right:65px}}

/* Expertise: suspended ceiling layers assemble into one coordinated system. */
.craft-motion{height:182px;margin-top:24px;border:1px solid var(--line);border-radius:4px;background:linear-gradient(145deg,var(--paper),var(--wash));position:relative;overflow:hidden}
.craft-motion svg{display:block;width:100%;height:calc(100% - 24px);overflow:visible}
.craft-motion>span{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:8px;letter-spacing:1.5px;color:var(--sage)}
.craft-motion i{font-style:normal;margin:0 5px;opacity:.5}
.suspension-shadow{fill:var(--ink);opacity:.08;transform-origin:165px 139px;animation:suspension-shadow 8s ease-in-out infinite}
.suspension-layer{transform-box:fill-box;transform-origin:center}
.slab-face{fill:#e7ded0;stroke:#b8ae9e;stroke-width:.8}.slab-edge{fill:#b8ae9e;stroke:#948977;stroke-width:.8}
.slab-seams{fill:none;stroke:#c3b8a5;stroke-width:.8}
.suspension-rods{fill:none;stroke:#58724e;stroke-width:1.2;stroke-linecap:round;stroke-dasharray:48;animation:suspension-rods 8s ease-in-out infinite}
.hanger-clips{stroke-width:2}
.suspension-frame{fill:none;stroke:#58724e;stroke-width:2;stroke-linejoin:round;animation:suspension-frame 8s cubic-bezier(.22,.61,.36,1) infinite}
.frame-cross{stroke:#7b9071;stroke-width:1.2}
.ceiling-edge{fill:#b2c3ca;stroke:#879da8;stroke-width:.8}.ceiling-face{fill:#eef2ef;stroke:#b2c3ca;stroke-width:.8}
.ceiling-joints{fill:none;stroke:#c6d0c8;stroke-width:.8}
.suspension-slab{animation:suspension-slab 8s cubic-bezier(.22,.61,.36,1) infinite}
.suspension-ceiling{animation:suspension-ceiling 8s cubic-bezier(.22,.61,.36,1) infinite}
.suspension-highlight{fill:none;stroke:#bc9a59;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:42 430;animation:suspension-finish 8s ease-in-out infinite}
.suspension-guides{fill:none;stroke:var(--sage);stroke-width:1;opacity:.3}
@keyframes suspension-slab{0%,5%,100%{opacity:0;transform:translateY(-16px)}16%,88%{opacity:1;transform:translateY(0)}96%{opacity:0;transform:translateY(-16px)}}
@keyframes suspension-rods{0%,17%,100%{opacity:0;stroke-dashoffset:48}30%,84%{opacity:1;stroke-dashoffset:0}94%{opacity:0;stroke-dashoffset:0}}
@keyframes suspension-frame{0%,28%,100%{opacity:0;transform:translateY(-12px)}43%,81%{opacity:1;transform:translateY(0)}92%{opacity:0;transform:translateY(-12px)}}
@keyframes suspension-ceiling{0%,41%,100%{opacity:0;transform:translateY(24px)}58%,78%{opacity:1;transform:translateY(0)}90%{opacity:0;transform:translateY(24px)}}
@keyframes suspension-finish{0%,56%,100%{opacity:0;stroke-dashoffset:42}60%{opacity:1;stroke-dashoffset:42}77%{opacity:1;stroke-dashoffset:-390}82%,92%{opacity:0;stroke-dashoffset:-390}}
@keyframes suspension-shadow{0%,100%{opacity:.02;transform:scale(.75)}52%,82%{opacity:.08;transform:scale(1)}}


/* Dedicated Company and Approach pages open at their hero. */
body.editorial-view #main>section:not(.editorial-page){display:none}
.editorial-hero h1{font-size:clamp(48px,6.3vw,88px);max-width:800px}
.editorial-hero .hero-copy>p:not(.eyebrow){max-width:450px}
.editorial-hero h1:focus{outline:none}
.editorial-next{background:var(--wash)}
/* An interior emerges from its architectural outline over three seconds. */
html.is-loading,html.is-loading body{overflow:hidden}
html.is-loading body>:not(#site-loader){pointer-events:none}
#site-loader{position:fixed;inset:0;height:100dvh;z-index:1000;overflow:hidden;background:#18241d;color:#fffefa;opacity:1;visibility:visible;transition:opacity .35s ease,visibility .35s ease;pointer-events:auto}
.site-loaded #site-loader,html:not(.is-loading) #site-loader{opacity:0;visibility:hidden;pointer-events:none}
.loader-room,.loader-room-shade,.loader-wall-panels,.loader-interior-lines{position:absolute;inset:0;width:100%;height:100%}
.loader-room img{width:100%;height:100%;display:block;object-fit:cover;object-position:65% center;animation:interior-emerge 2.2s cubic-bezier(.22,.61,.36,1) both}
.loader-room-shade{background:linear-gradient(90deg,rgba(15,29,22,.87),rgba(15,29,22,.64) 35%,rgba(15,29,22,.16) 75%),linear-gradient(0deg,rgba(15,29,22,.36),transparent 55%)}
.loader-interior-lines{fill:none;stroke:#dccfbf;stroke-width:1;opacity:.22;animation:interior-outline 3s ease both}
.loader-interior-lines g{stroke-dasharray:2000;stroke-dashoffset:2000;animation:interior-plan 2.2s ease both}
.loader-wall-panels{display:flex;pointer-events:none}
.loader-wall-panels>span{flex:1;background:#18241d;transform-origin:right;animation:interior-panel 1.65s cubic-bezier(.65,0,.35,1) both}
.loader-wall-panels>span:nth-child(2){animation-delay:.18s;background:#213026}
.loader-wall-panels>span:nth-child(3){animation-delay:.36s;background:#29372e}
.loader-interior-copy{position:absolute;top:50%;left:8%;transform:translateY(-50%);width:min(540px,84%);z-index:2}
.loader-kicker{margin:0 0 22px;font-size:9px;letter-spacing:3px;color:#dccfbf;animation:interior-copy .7s .25s both}
.loader-logo{width:144px;height:82px;object-fit:contain;filter:url(#brand-white);mix-blend-mode:normal;animation:interior-copy .7s .4s both}
.loader-tagline{margin:24px 0 34px;font:clamp(46px,5.4vw,76px)/1.04 Georgia,serif;letter-spacing:-.04em;color:#fffefa;animation:interior-copy .7s .55s both}
.loader-tagline em{font-weight:normal;color:#dccfbf}
.loader-progress{width:170px;height:2px;margin:0 0 18px;background:rgba(255,254,250,.22);overflow:hidden}
.loader-progress>span{display:block;width:100%;height:100%;background:#dccfbf;transform-origin:left;animation:interior-progress 3s linear both}
.loader-caption{font-size:8px;letter-spacing:1.6px;color:#dccfbf;animation:interior-copy .7s .65s both}
html.is-loading .hero-copy{animation:none}
html.is-loading:not(.intro-bridging) .hero-copy{opacity:0}
html.intro-bridging .hero-copy{animation:hero-arrive .6s .2s ease both}
.site-loaded .hero-copy{animation:none}
@keyframes interior-emerge{0%{opacity:.1;transform:scale(1.09)}45%{opacity:.85}100%{opacity:1;transform:scale(1)}}
@keyframes interior-plan{0%{stroke-dashoffset:2000}100%{stroke-dashoffset:0}}
@keyframes interior-outline{0%,35%{opacity:.65}100%{opacity:.13}}
@keyframes interior-panel{0%,10%{transform:scaleX(1)}100%{transform:scaleX(0)}}
@keyframes interior-copy{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes interior-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:760px){.craft-motion{height:166px;max-width:320px}.editorial-hero h1{font-size:48px}.loader-interior-copy{left:7%;width:86%}.loader-logo{width:122px;height:69px}.loader-tagline{font-size:50px}.loader-room img{object-position:65% center}.loader-room-shade{background:linear-gradient(90deg,rgba(15,29,22,.85),rgba(15,29,22,.4)),linear-gradient(0deg,rgba(15,29,22,.4),transparent)}.loader-kicker{font-size:8px;letter-spacing:2px}.loader-caption{font-size:7px;letter-spacing:1.1px}}
@media(prefers-reduced-motion:reduce){.suspension-layer{opacity:1;transform:none}.suspension-highlight{opacity:0}.suspension-shadow{opacity:.08}#site-loader{transition:none}.loader-room img,.loader-logo,.loader-tagline,.loader-kicker,.loader-caption{opacity:1;transform:none}.loader-wall-panels>span{transform:scaleX(0)}.loader-interior-lines{opacity:.13}.loader-interior-lines g{stroke-dashoffset:0}.loader-progress>span{transform:none}.site-loaded .hero-copy{animation:none}}

/* Match the intro camera, image and lighting to the incoming hero. */
html{scrollbar-gutter:stable}
.loader-room{bottom:auto;right:auto;top:0;left:0;width:100%;height:100%;transition:top .8s cubic-bezier(.22,.61,.36,1),left .8s cubic-bezier(.22,.61,.36,1),width .8s cubic-bezier(.22,.61,.36,1),height .8s cubic-bezier(.22,.61,.36,1)}
.loader-matched-shade{opacity:0;transition:opacity .8s ease}
.loader-room-shade{transition:opacity .8s ease}
.loader-interior-lines{transition:opacity .45s ease}
.loader-interior-copy{transition:opacity .35s ease}
html.intro-bridging #site-loader{background:var(--paper);animation:intro-handoff .8s ease both}
html.intro-bridging .loader-room{top:var(--intro-hero-top,0px);left:var(--intro-hero-left,0px);width:var(--intro-hero-width,100%);height:var(--intro-hero-height,100%)}
html.intro-bridging .loader-matched-shade{opacity:1}
html.intro-bridging .loader-room-shade,html.intro-bridging .loader-interior-copy{opacity:0}
html.intro-bridging .loader-interior-lines{animation:none;opacity:0}
@keyframes intro-handoff{0%,60%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.loader-room,.loader-matched-shade,.loader-room-shade,.loader-interior-copy,.loader-interior-lines{transition:none}html.intro-bridging .hero-copy{animation:none;opacity:1}}


/* Profile access sits alongside the primary navigation on every page. */
.site-header{grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(16px,2.2vw,36px)}
.site-header nav{justify-content:center;gap:clamp(16px,2.2vw,30px)}
.header-actions{gap:12px}.header-actions>.button{padding:11px 16px;font-size:12px}
.profile-button{position:relative;display:inline-flex;gap:10px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--sage);border-radius:3px;padding:11px 14px;font-size:12px;overflow:hidden;white-space:nowrap;transition:background .25s,color .25s,transform .25s}
.profile-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;animation:profile-arrow 4s ease-in-out infinite}
.profile-button::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,#bacaa23b 48%,transparent 65%);transform:translateX(-120%);animation:profile-shimmer 6s ease-in-out infinite;pointer-events:none}
.profile-button:hover{background:var(--sage);color:var(--paper);transform:translateY(-1px)}
@keyframes profile-arrow{0%,70%,100%{transform:translateY(0)}78%{transform:translateY(3px)}86%{transform:translateY(-1px)}}
@keyframes profile-shimmer{0%,65%{transform:translateX(-120%)}90%,100%{transform:translateX(120%)}}
.profile-dialog{padding:0;border:1px solid var(--line);border-radius:5px;background:var(--white);color:var(--ink);width:min(980px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-shadow:0 30px 100px #0005;overflow:auto}
.profile-dialog[open]{display:grid;grid-template-columns:.78fr 1.22fr;animation:profile-enter .4s ease both}
.profile-dialog::backdrop{background:#14251ccc;backdrop-filter:blur(7px)}
.profile-close{position:absolute;right:15px;top:12px;width:32px;height:32px;display:grid;place-items:center;z-index:2;border:1px solid var(--line);border-radius:50%;background:var(--white);font-size:24px;line-height:1}
.profile-visual{position:relative;min-height:650px;overflow:hidden;background:#2d4234}.profile-visual img{width:100%;height:100%;object-fit:cover;object-position:61% center;position:absolute;inset:0}.profile-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,#132719bb)}.profile-visual>span{position:absolute;left:26px;bottom:26px;z-index:1;color:white;font-size:11px;letter-spacing:3px}
.profile-copy{padding:38px 38px 32px}.profile-copy h2{font-size:43px;margin:11px 0 15px}.profile-copy>p:not(.eyebrow){font-size:13px;line-height:1.65;margin-bottom:18px}.download-picker{border:0;padding:0;margin:0 0 18px}.download-picker legend{font-size:12px;margin-bottom:9px}.download-option{position:relative;display:grid!important;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 13px;margin:0 0 8px!important;border:1px solid var(--line);border-radius:3px;background:var(--paper);cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.download-option:hover{border-color:var(--sage);transform:translateY(-1px)}.download-option.is-selected{border-color:var(--sage);background:color-mix(in srgb,var(--wash) 72%,var(--white))}.download-option input{position:absolute;opacity:0;pointer-events:none}.download-option input:focus-visible~.download-option-check{outline:2px solid var(--sage);outline-offset:3px}.download-option-check{width:18px;height:18px;border:1px solid var(--sage);border-radius:50%;display:grid;place-items:center}.download-option input:checked~.download-option-check{background:var(--sage)}.download-option input:checked~.download-option-check::after{content:"✓";color:var(--white);font:bold 11px Arial}.download-option-copy{min-width:0;display:flex;flex-direction:column}.download-option-copy strong{font-size:13px;font-weight:600;color:var(--ink)}.download-option-copy small{font-size:10px;line-height:1.45;color:var(--muted);margin-top:2px}.download-option-format{font-size:9px;letter-spacing:1px;color:var(--sage)}.download-error{min-height:0;color:#9b3d31;font-size:11px;margin:-8px 0 10px}.download-error:empty{display:none}#profile-form>label{display:block;font-size:12px;margin-bottom:8px}#profile-email{width:100%;padding:13px;border:1px solid var(--line);border-radius:2px;background:var(--paper);color:var(--ink);font:14px Arial}#profile-email:focus{outline:2px solid var(--sage);outline-offset:2px}#profile-submit{width:100%;gap:18px;margin-top:15px}#profile-submit:disabled{opacity:.5;cursor:not-allowed}#profile-status{font-size:12px;margin:12px 0 0}.profile-download-links{display:grid;gap:7px;margin-top:10px}.profile-download-link{font-size:12px;text-decoration:underline;text-underline-offset:4px;color:var(--sage)}body.profile-open{overflow:hidden}
@keyframes profile-enter{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
/* Each expertise has a complete image and editorial panel, with a four-second loop. */
.expertise-carousel{border:1px solid var(--line);background:var(--white);border-radius:4px;overflow:hidden}.expertise-stage{position:relative;display:grid;overflow:hidden}.expertise-slide{grid-area:1/1;display:grid;grid-template-columns:1.4fr 1fr;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(36px);transition:opacity .75s ease,transform .75s cubic-bezier(.22,.61,.36,1),visibility .75s}
.expertise-slide.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(0);z-index:1}.expertise-slide>img{height:100%;width:100%;min-height:410px;max-height:550px;object-fit:cover;display:block}.expertise-slide>div{padding:clamp(28px,4vw,60px);align-self:center}.expertise-slide h3{font:clamp(29px,3vw,44px)/1.15 Georgia;margin:16px 0 24px}.expertise-slide .detail{font-size:12px;line-height:1.8;border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.expertise-slide .text-link{margin-top:12px}
.expertise-controls{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:18px 25px;gap:15px}.expertise-dots{display:flex;gap:24px}.expertise-dots button{position:relative;padding:8px 0;background:transparent;color:var(--muted);font-size:12px}.expertise-dots button span{font:13px Georgia;margin-right:5px}.expertise-dots button[aria-pressed=true]{color:var(--ink)}.expertise-dots button::after{position:absolute;content:"";height:2px;background:var(--sage);bottom:0;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .4s}.expertise-dots button[aria-pressed=true]::after{transform:scaleX(1)}.expertise-playback{display:flex;gap:8px}.expertise-playback button{width:35px;height:35px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:16px}.expertise-playback button:hover{background:var(--wash)}
.site-loaded .hero-image:not([data-loaded=false]){animation:hero-drift 22s ease-in-out infinite alternate;transform-origin:center center;will-change:transform}
@keyframes hero-drift{from{transform:scale(1)}to{transform:scale(1.045)}}
.motion-ready .expertise-carousel.reveal{transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,.61,.36,1)}.motion-ready .expertise-carousel.revealed{transform:none}
.motion-ready .steps article.reveal{transform:translateY(25px)}.motion-ready .steps article.revealed{transform:none}
.assistant-contact-links{display:flex;gap:15px;margin:0 18px 14px;font-size:11px}.assistant-contact-links a{border-bottom:1px solid var(--line)}.chat-contact-options{display:flex;flex-direction:column;gap:6px;padding:2px 12px 14px;font-size:11px}.chat-contact-options a{text-decoration:underline;text-underline-offset:3px}.chat-message.pending{display:flex;align-items:center;gap:10px;opacity:1}.typing-dots{display:inline-flex;gap:4px}.typing-dots i{display:block;width:4px;height:4px;background:var(--sage);border-radius:50%;animation:assistant-think 1s ease-in-out infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}
@keyframes assistant-think{0%,65%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media(max-width:1100px) and (min-width:761px){.header-actions>.button{display:none}.site-header nav{gap:18px}.site-header{gap:24px}}
@media(max-width:760px){.site-header{display:flex;gap:12px}.header-actions{gap:10px}.profile-button{padding:9px 10px;font-size:11px;gap:6px}.header-actions .circle{width:32px;height:32px;font-size:18px}.profile-dialog[open]{grid-template-columns:1fr}.profile-visual{min-height:150px;height:150px}.profile-visual img{object-position:center 45%}.profile-visual>span{left:24px;bottom:18px}.profile-copy{padding:26px 24px}.profile-copy h2{font-size:36px;margin-top:12px}.profile-close{top:10px;right:10px}.expertise-slide{grid-template-columns:1fr}.expertise-slide>img{height:260px;min-height:0;max-height:none}.expertise-slide>div{padding:28px}.expertise-slide h3{font-size:31px;margin:13px 0 18px}.expertise-slide p{font-size:14px}.expertise-controls{padding:14px 16px;flex-wrap:wrap}.expertise-dots{gap:17px}.expertise-dots button{font-size:11px}.expertise-playback{margin-left:auto}.expertise-playback button{width:30px;height:30px}}
@media(max-width:420px){.site-header{padding-inline:16px;gap:9px}.brand,.brand img{width:72px;height:45px}.header-actions{gap:8px}.profile-button{padding:9px 8px;font-size:10px}.mobile-toggle{font-size:22px}.expertise-controls{gap:8px}.expertise-dots{gap:12px}.expertise-playback{gap:5px}}
@media(prefers-reduced-motion:reduce){.site-loaded .hero-image{transform:none;will-change:auto}.profile-button::before{display:none}.expertise-slide{transform:none}.motion-ready .expertise-carousel.reveal,.motion-ready .steps article.reveal{opacity:1;transform:none}}

/* Keep the slideshow controls clear as the floating contacts enter the content area. */
body.compact-widgets .assistant-toggle>span,body.compact-widgets .whatsapp-widget>span{display:none}
body.compact-widgets :is(.assistant-toggle,.whatsapp-widget){padding:12px}

/* A circular profile control beside the project enquiry button. */
.header-actions{gap:12px}.header-actions .profile-button{width:39px;height:39px;min-width:39px;padding:0;border:1px solid var(--line);border-radius:50%;overflow:visible;background:transparent;color:var(--ink);transform:none}
.header-actions .profile-button::before{display:none}.header-actions .profile-button::after{content:"";position:absolute;inset:-1px;border:1px solid var(--sage);border-radius:50%;pointer-events:none;animation:profile-pulse 2.8s ease-out infinite}.header-actions .profile-button svg{width:17px;height:17px;animation:none}.header-actions .profile-button:hover{background:var(--wash);transform:none}
@keyframes profile-pulse{0%{opacity:.5;transform:scale(1)}75%,100%{opacity:0;transform:scale(1.65)}}
.reading-section{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(35px,6vw,95px);border-top:1px solid var(--line)}
.expertise-gallery{background:var(--wash);border-top:1px solid var(--line)}.gallery-heading{display:grid;grid-template-columns:minmax(0,.8fr) minmax(260px,.55fr);gap:25px 70px;align-items:end;margin-bottom:34px}.gallery-heading .eyebrow{grid-column:1/-1;margin-bottom:-10px}.gallery-heading h2{margin:0}.gallery-heading>p:last-child{margin:0;max-width:450px}.expertise-gallery-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.expertise-gallery-grid figure{margin:0;position:relative;overflow:hidden;background:var(--paper)}.expertise-gallery-grid figure:first-child{grid-row:span 2}.expertise-gallery-grid img{display:block;width:100%;height:100%;min-height:250px;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.expertise-gallery-grid figure:first-child img{min-height:520px}.expertise-gallery-grid figure:hover img{transform:scale(1.025)}.expertise-gallery-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:35px 18px 13px;background:linear-gradient(transparent,rgba(20,35,27,.78));color:#fff;font-size:10px;letter-spacing:.65px}
.ceiling-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.ceiling-gallery-grid figure{margin:0;background:var(--paper);border:1px solid var(--line);overflow:hidden}.ceiling-gallery-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 42%;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.ceiling-gallery-grid figure:hover img{transform:scale(1.02)}.ceiling-gallery-grid figcaption{display:flex;align-items:baseline;gap:10px;min-height:58px;padding:14px 16px;color:var(--ink);font-size:11px;line-height:1.45}.ceiling-gallery-grid figcaption span{font:20px Georgia;color:var(--sage)}.gallery-note{margin:18px 0 0;font-size:10px;letter-spacing:.55px}
.expertise-gallery--ceiling .ceiling-gallery-grid img{height:clamp(220px,22vw,330px);aspect-ratio:auto}
.hpl-bento-section{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:clamp(28px,5vw,72px);background:var(--paper);border-top:1px solid var(--line);align-items:start}.hpl-bento-copy{position:sticky;top:calc(var(--header) + 28px);max-width:430px}.hpl-bento-copy h2{margin:0 0 22px}.hpl-bento-copy p:last-child{font-size:14px;line-height:1.9}.hpl-bento-grid{display:grid;grid-template-columns:1.25fr .8fr;grid-template-rows:repeat(2,260px);gap:16px}.hpl-bento-grid figure{position:relative;margin:0;overflow:hidden;background:var(--wash);border:1px solid var(--line);min-height:0}.hpl-bento-feature{grid-row:span 2}.hpl-bento-grid img{width:100%;height:100%;display:block;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.hpl-bento-feature img{object-position:center 52%}.hpl-bento-grid figure:not(.hpl-bento-feature) img{object-position:center 45%}.hpl-bento-grid figure:hover img{transform:scale(1.025)}.hpl-bento-grid figcaption{position:absolute;left:14px;right:14px;bottom:14px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;padding:14px;background:color-mix(in srgb,var(--white) 88%,transparent);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.35);color:var(--ink)}.hpl-bento-grid figcaption span{grid-row:span 2;font:24px Georgia;color:var(--sage);line-height:1}.hpl-bento-grid figcaption strong{font-size:12px;font-weight:600;line-height:1.25}.hpl-bento-grid figcaption small{font-size:10px;line-height:1.45;color:var(--muted)}
.reading-heading{align-self:start;max-width:380px}.reading-heading>.lead{font:clamp(22px,2.3vw,30px)/1.5 Georgia;color:var(--ink)}.reading-body{max-width:780px;min-width:0}.content-block{margin-bottom:52px}.content-block:last-child{margin-bottom:0}.content-block h2{font-size:clamp(27px,2.8vw,38px);line-height:1.22;letter-spacing:-.025em;margin-bottom:20px}.content-block p{font-size:15px;line-height:1.9}.content-block p:last-child{margin-bottom:0}
.related-links{background:var(--wash)}.related-links>h2{font-size:clamp(32px,3.8vw,48px)}.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.related-grid>a{position:relative;display:block;padding:30px 28px 55px;border:1px solid var(--line);background:var(--white);min-width:0;transition:transform .3s,border-color .3s}.related-grid>a:hover{transform:translateY(-4px);border-color:var(--sage)}.related-grid h3{font:27px/1.3 Georgia;margin:14px 0 18px;overflow-wrap:anywhere}.related-grid p{font-size:13px;line-height:1.8;margin:0}.related-arrow{position:absolute;right:25px;bottom:18px;font-size:24px;color:var(--sage)}.related-grid:has(>a:only-child){grid-template-columns:minmax(0,760px)}
.faq-section{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(35px,6vw,95px)}.faq-section h2{font-size:clamp(32px,3.8vw,48px)}.faq-list{min-width:0}.faq-list details{border-top:1px solid var(--line);padding:20px 0}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{display:flex;justify-content:space-between;gap:22px;cursor:pointer;font-size:16px;line-height:1.6;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:'+';font-size:21px;color:var(--sage);flex-shrink:0}.faq-list details[open] summary::after{content:'−'}.faq-list details p{margin:15px 28px 0 0;font-size:14px;line-height:1.9}.faq-list summary:focus-visible{outline:2px solid var(--sage);outline-offset:5px}
.page-cta{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:50px;background:var(--wash);align-items:center}.page-cta h2{font-size:clamp(36px,4vw,58px)}.page-cta p{max-width:560px}.cta-actions{display:flex;flex-direction:column;align-items:flex-start;gap:20px;min-width:0}.cta-actions .button{max-width:100%;text-align:center}.overview-link{grid-column:2;justify-self:start}.overview-process-link{padding-top:0;padding-bottom:40px;background:var(--wash)}
.page-breadcrumb{display:flex;position:static;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px;padding:24px var(--content-gutter);border-bottom:1px solid var(--line);background:var(--paper);font-size:11px;color:var(--muted)}.page-breadcrumb a{font-size:11px}.page-breadcrumb a:hover{text-decoration:underline}.page-breadcrumb>span:last-child{color:var(--ink);overflow-wrap:anywhere}
.project-tile{display:block;min-width:0}.project-tile h3{overflow-wrap:anywhere}.project-details>*{min-width:0}#project-facts dd{overflow-wrap:anywhere}main .hero h1{overflow-wrap:break-word}
@media(min-width:1101px){.site-header{grid-template-columns:104px minmax(0,1fr) auto}.site-header nav{gap:clamp(18px,2.2vw,30px)}}
@media(max-width:1050px){.reading-section,.faq-section{gap:40px}.related-grid{gap:16px}.related-grid>a{padding:24px 20px 48px}.related-grid h3{font-size:24px}}
@media(max-width:1050px){.ceiling-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1050px){.hpl-bento-section{grid-template-columns:minmax(0,1fr)}.hpl-bento-copy{position:static;max-width:720px}.hpl-bento-grid{grid-template-columns:1fr 1fr}.hpl-bento-feature{grid-column:1/-1;grid-row:auto}.hpl-bento-feature img{height:360px}}
@media(max-width:760px){.reading-section,.faq-section,.page-cta{grid-template-columns:minmax(0,1fr);gap:30px}.reading-heading{max-width:none}.reading-heading>.lead{font-size:24px}.content-block{margin-bottom:36px}.content-block h2{font-size:29px}.content-block p{font-size:14px;line-height:1.85}.gallery-heading,.expertise-gallery-grid{grid-template-columns:minmax(0,1fr)}.gallery-heading{gap:18px}.gallery-heading .eyebrow{grid-column:auto;margin-bottom:0}.expertise-gallery-grid figure:first-child{grid-row:auto}.expertise-gallery-grid figure:first-child img,.expertise-gallery-grid img{min-height:250px;aspect-ratio:4/3}.ceiling-gallery-grid{grid-template-columns:minmax(0,1fr);gap:14px}.ceiling-gallery-grid figure{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.ceiling-gallery-grid img{aspect-ratio:16/10}.expertise-gallery--ceiling .ceiling-gallery-grid img{height:clamp(190px,48vw,260px)}.ceiling-gallery-grid figcaption{min-height:0;padding:13px 16px;align-self:auto;align-items:baseline;justify-content:flex-start;flex-direction:row}.related-grid{grid-template-columns:minmax(0,1fr)}.related-grid>a{padding:25px 24px 50px}.related-grid h3{font-size:27px}.faq-list summary{font-size:15px}.page-cta{gap:22px}.cta-actions{gap:18px}.overview-link{grid-column:1}.page-breadcrumb{padding:20px var(--page-gutter);gap:8px}.header-actions{gap:10px}.header-actions .profile-button{width:32px;height:32px;min-width:32px}.editorial-hero h1{font-size:clamp(34px,8.8vw,54px)}.hero h1>em{white-space:normal}.project-hero .hero-copy{padding-bottom:90px}.project-hero .hero-buttons{align-items:flex-start;gap:18px}.profile-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.profile-copy{padding:26px 22px}.profile-visual{min-height:145px;height:145px}.hero{min-height:620px}.hero-copy{min-width:0}.section-heading>div{min-width:0}}
@media(max-width:760px){.hpl-bento-section{gap:24px}.hpl-bento-copy h2{font-size:34px}.hpl-bento-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:14px}.hpl-bento-grid figure,.hpl-bento-feature{min-height:0}.hpl-bento-grid img,.hpl-bento-feature img{height:260px}.hpl-bento-grid figcaption{left:10px;right:10px;bottom:10px;padding:12px}.hpl-bento-grid figcaption small{display:none}}
@media(max-width:420px){.site-header{gap:9px;padding-inline:16px}.header-actions{gap:9px}.hero-buttons{gap:18px}.hero-buttons .button{padding:12px 18px}.project-hero h1{font-size:clamp(31px,8vw,37px)}.content-block h2{font-size:26px}.reading-heading>.lead{font-size:22px}.page-cta h2{font-size:35px}.faq-list details p{margin-right:0}.related-grid h3{font-size:25px}}
@media(prefers-reduced-motion:reduce){.header-actions .profile-button::after{display:none}}

@media(max-width:760px){.hero{height:auto;min-height:max(620px,calc(100svh - var(--header)));max-height:none}}

/* Use the supplied transparent brand logo assets in the navigation. */
.brand img{opacity:1;mix-blend-mode:normal;filter:none}
body.dark .brand img{content:url('/Arcane%20logo-Light%20Green.png');mix-blend-mode:normal;filter:none}


/* Mobile header order and a tighter home hero. */
@media(max-width:760px){
  .site-header .brand{order:1}
  .site-header .header-actions{order:2;margin-left:auto}
  .site-header .mobile-toggle{order:3;margin-left:0}
  body[data-page-section="home"] #home.hero{height:clamp(520px,72svh,590px);min-height:520px;max-height:590px}
}


/* Soft architectural image overlay and temporary social icons. */
.site-footer{position:relative;isolation:isolate;overflow:hidden;background:#263b2e}
.site-footer::before{content:"";position:absolute;inset:0;z-index:-2;background:url('/arcane-company-hero.jpg') center 48%/cover no-repeat;opacity:.16;filter:saturate(.65) contrast(.9)}
.site-footer::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(32,53,40,.98) 0%,rgba(38,59,46,.92) 45%,rgba(38,59,46,.76) 100%)}
.footer-socials{display:flex;align-items:center;gap:10px;margin-top:22px}
.footer-grid .footer-social-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;margin:0;border:1px solid rgba(248,247,242,.34);border-radius:50%;color:#f8f7f2;background:rgba(255,255,255,.04);backdrop-filter:blur(4px);text-decoration:none;line-height:0;transition:transform .2s ease,border-color .2s ease,background-color .2s ease}
.footer-grid .footer-social-icon:hover{transform:translateY(-2px);border-color:rgba(248,247,242,.7);background:rgba(255,255,255,.12);text-decoration:none}
.footer-grid .footer-social-icon:focus-visible{outline:2px solid #f8f7f2;outline-offset:3px}
.footer-social-icon svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.footer-social-icon .social-fill{fill:currentColor;stroke:none}
.footer-social-icon .social-dot{fill:currentColor;stroke:none}
@media(max-width:760px){.site-footer::before{background-position:65% center;opacity:.12}.site-footer::after{background:rgba(32,53,40,.9)}.footer-socials{margin-top:20px}.footer-social-icon{width:36px;height:36px}}

/* Project menu status grouping. */
.projects-menu{grid-template-columns:23% 24% 31% 22%}
.menu-column--wide{padding-right:8px}
.completed-projects{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.menu-project--listed{cursor:default;color:var(--ink)}
.menu-project--listed:hover{color:var(--ink)}
.menu-project--listed small{color:var(--sage)}
@media(max-width:1050px){.projects-menu{grid-template-columns:1fr 1fr}.completed-projects{grid-template-columns:1fr}}
@media(max-width:760px){.projects-menu{grid-template-columns:1fr}.completed-projects{grid-template-columns:1fr}.menu-column--wide{padding-right:0}}
