:root {
  --navy:#123e57; --teal:#068baf; --aqua:#77d2d7; --paper:#f7fbfc;
  --mist:#e2f1f3; --ink:#102b3a; --muted:#59717e; --line:#c5e4e8;
  --serif:'Playfair Display',Georgia,serif; --sans:Manrope,Arial,sans-serif; --mono:'DM Mono',monospace;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)} a{color:inherit;text-decoration:none}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:100;background:#fff;padding:10px}
.site-header{height:76px;padding:0 3vw;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:10}
.brand{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.brand-mark{width:48px;height:34px;background:url('../logo.jpg') center/contain no-repeat;font-size:0}
.site-header nav{display:flex;align-items:center;gap:24px;font:11px var(--mono);letter-spacing:.05em;text-transform:uppercase}.site-header nav a:hover{color:var(--teal)}.nav-cta{padding:9px 12px;background:var(--teal);color:#fff}.menu-toggle{display:none;border:0;background:none;font:11px var(--mono);text-transform:uppercase}
.eyebrow{font:11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.home-hero{min-height:calc(100svh - 76px);display:grid;grid-template-columns:1.15fr .85fr;background:var(--navy);color:#fff;position:relative}.home-hero-media{min-height:calc(100svh - 76px);background:url('images/hero-residence.png') center/cover}.home-hero-media span{position:absolute;left:-9999px}.home-hero-copy{padding:clamp(32px,5vw,80px) 3vw;display:flex;flex-direction:column;justify-content:space-between}.home-hero h1{font:500 clamp(58px,7vw,126px)/.84 var(--serif);letter-spacing:-.065em;margin:0}.home-hero h1 em{font-weight:400}.home-hero-copy>div{display:flex;gap:25px;align-items:end;justify-content:space-between}.home-hero-copy>div p{max-width:270px;margin:0;color:#d7ecf0;font-size:14px}.round-link{width:118px;height:118px;border:1px solid #b5e1e5;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font:10px var(--mono);text-transform:uppercase;text-align:center;transition:.2s}.round-link:hover{background:#fff;color:var(--navy)}.round-link b{font:20px var(--sans)}.hero-index{position:absolute;left:3vw;bottom:18px;font:10px var(--mono);color:#b5e1e5}
.manifesto{display:grid;grid-template-columns:24% 1fr;gap:6vw;padding:11vw 12vw}.manifesto h2{max-width:840px;margin:0 0 45px;font:500 clamp(38px,5vw,80px)/.98 var(--serif);letter-spacing:-.055em}.manifesto p:not(.eyebrow){max-width:460px;margin:0 0 25px auto;color:var(--muted);font-size:15px}.text-link{display:inline-block;font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid;padding-bottom:4px}.text-link:hover{color:var(--teal)}
.work-preview{padding:20px 3vw 10vw}.section-head{border-top:1px solid var(--line);padding-top:18px;margin-bottom:55px;display:flex;justify-content:space-between;align-items:end}.section-head h2{margin:8px 0 0;font:500 clamp(42px,5vw,85px)/.86 var(--serif);letter-spacing:-.06em}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:7vw 4vw}.project-tile:nth-child(3n){grid-column:span 2;margin-left:14vw}.project-image{height:clamp(330px,48vw,690px);background:center/cover}.tile-1 .project-image{height:clamp(250px,34vw,480px)}.project-caption{padding-top:12px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 18px;font:10px var(--mono);text-transform:uppercase}.project-caption h3{width:100%;margin:3px 0;font:500 clamp(28px,3vw,50px)/.95 var(--serif);letter-spacing:-.05em;text-transform:none}
.asset-grid{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr;gap:15px}.asset-slot{min-height:290px;background:center/cover}.asset-slot.tall{grid-row:span 2;min-height:610px;background-image:url('images/interior-residence.png')!important}.asset-slot:nth-child(2),.asset-slot:nth-child(3){background-image:url('images/commercial-courtyard.png')!important}.asset-slot span{display:none}.asset-caption{max-width:270px;margin:15px 0 0 auto;font:10px var(--mono);text-transform:uppercase;color:var(--muted)}
.practice{padding:8vw;background:var(--mist);display:grid;grid-template-columns:1fr 1fr;gap:8vw}.practice h2{margin:8px 0;font:500 clamp(40px,4.5vw,76px)/.96 var(--serif);letter-spacing:-.055em}.practice-list{border-top:1px solid #9ecdd4}.practice-list a{display:grid;grid-template-columns:48px 1fr auto;align-items:center;border-bottom:1px solid #9ecdd4;padding:21px 0;font:500 clamp(21px,2vw,34px)/1 var(--serif)}.practice-list span{font:10px var(--mono)}.practice-list b{font:18px var(--sans);font-weight:400}.closing{padding:12vw 3vw;background:var(--navy);color:#fff;text-align:center}.closing h2{margin:12px 0 45px;font:500 clamp(56px,7vw,125px)/.84 var(--serif);letter-spacing:-.065em}.button{display:inline-flex;justify-content:space-between;gap:30px;min-width:205px;padding:14px 16px;border:1px solid var(--ink);font:11px var(--mono);text-transform:uppercase;letter-spacing:.05em}.button.dark{background:var(--teal);color:#fff;border-color:var(--teal)}.button.light{color:#fff;border-color:#fff}.button:hover{background:var(--aqua);border-color:var(--aqua);color:var(--navy)}
.listing,.simple-page,.not-found{padding:10vw 9vw;min-height:60vh}.listing-title{max-width:820px}.listing h1,.simple-page h1,.not-found h1,.enquiry h1,.project-hero h1{font:500 clamp(48px,6vw,105px)/.9 var(--serif);letter-spacing:-.06em;margin:8px 0}.listing-title>p:last-child{max-width:440px;margin:25px 0 0 auto;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:60px 0 25px}.filters button{font:10px var(--mono);text-transform:uppercase;background:none;border:1px solid var(--line);padding:8px}.filters .active{background:var(--navy);color:#fff}
.project-hero{min-height:78svh;display:grid;grid-template-columns:1.2fr .8fr}.project-hero-image{min-height:60vh;background:center/cover}.project-hero>div:last-child{padding:7vw 3vw;align-self:end}.project-hero>div:last-child>p:last-child{font:10px var(--mono);text-transform:uppercase}.case-study{max-width:1100px;margin:auto;padding:10vw 3vw;display:grid;grid-template-columns:190px 1fr;gap:10%}.case-study aside{font:10px var(--mono);text-transform:uppercase;display:flex;flex-direction:column;gap:8px}.case-study article{max-width:620px}.case-study .lead{font:500 31px/1.2 var(--serif);margin-top:0}.case-study h2{font:500 38px/1 var(--serif);margin:65px 0 18px}
.enquiry{display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw;padding:9vw}.enquiry>div{position:sticky;top:70px;height:max-content}.enquiry>div p:last-child{max-width:350px;color:var(--muted)}.project-form{padding:32px;background:var(--mist)}.project-form fieldset{margin:0;padding:24px 0;border:0;border-top:1px solid #9ecdd4;display:grid;grid-template-columns:1fr 1fr;gap:15px}.project-form legend{padding:0 0 15px;font:10px var(--mono);text-transform:uppercase}.project-form label,.admin label{font-size:13px;display:grid;gap:5px}.project-form input,.project-form select,.project-form textarea,.admin input,.admin select,.admin textarea,.admin-login input{width:100%;padding:11px;border:1px solid #9ecdd4;background:#fff;color:var(--ink);font:16px var(--sans)}.project-form fieldset>label:last-child,.checks,.consent{grid-column:span 2}.checks{display:flex;flex-wrap:wrap;gap:8px 18px}.checks label,.consent{display:flex;align-items:center;gap:6px}.checks input,.consent input{width:auto}.honeypot{position:absolute;left:-9999px}.form-error{color:#9a2e22}.form-success{color:#16724f}.simple-page{max-width:1000px}.simple-page .lead{max-width:650px}.not-found{text-align:center}
footer{padding:7vw 3vw 30px;background:#0d3349;color:#fff;display:grid;grid-template-columns:1fr 25%;gap:30px}footer h2{font:500 clamp(42px,5vw,82px)/.92 var(--serif);letter-spacing:-.06em;margin:10px 0 35px}.footer-meta{display:flex;justify-content:space-between;align-items:end;font-size:13px}.footer-meta span:last-child{display:flex;flex-direction:column;gap:5px}.assistant-launch{position:fixed;right:20px;bottom:20px;z-index:30;width:64px;height:64px;border:1px solid var(--teal);border-radius:50%;background:#fff;color:var(--teal);font:10px var(--mono);text-transform:uppercase;box-shadow:0 3px 15px #0002}.assistant-launch span{display:block;font-size:17px}.assistant{position:fixed;right:20px;bottom:92px;z-index:31;width:min(370px,calc(100vw - 40px));padding:30px;border:1px solid var(--navy);background:#fff;opacity:0;transform:translateY(16px);pointer-events:none;transition:.2s}.assistant.open{opacity:1;transform:none;pointer-events:auto}.assistant h3{font:500 32px/1 var(--serif);margin:10px 0}.assistant-close{position:absolute;right:10px;top:5px;border:0;background:none;font-size:24px}
.admin-login{min-height:100svh;display:grid;place-items:center;background:var(--navy);color:#fff}.admin-login main{width:min(420px,92vw)}.admin-login form{margin-top:30px;padding:30px;background:#fff;color:var(--ink)}.admin-login h1{font:500 40px var(--serif);margin:0 0 20px}.small{font-size:12px;color:var(--muted)}.admin{min-height:100svh;display:grid;grid-template-columns:220px 1fr}.admin aside{padding:30px 16px;background:var(--navy);color:#fff;display:flex;flex-direction:column;gap:12px;font-size:14px}.admin aside a:first-child{margin-bottom:30px}.admin aside a:not(:first-child){padding:6px}.admin main{padding:5vw}.admin main>h1{font:500 56px var(--serif);margin:0 0 28px}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.admin-stats article,.admin-note{padding:25px;background:var(--mist)}.admin-stats span{display:block;font:10px var(--mono);text-transform:uppercase}.admin-stats strong{font:500 48px var(--serif)}.admin-note{max-width:800px;margin-top:15px}.admin-note h2{font:500 29px var(--serif);margin:0}.admin-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:15px}.admin-grid .admin-note{margin:0}.admin-grid label{margin:14px 0}.admin-grid textarea{min-height:100px}
@media(max-width:760px){.site-header{height:62px;padding:0 14px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:61px;left:0;right:0;padding:20px;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:15px}.site-header nav.open{display:flex}.home-hero{display:flex;flex-direction:column;min-height:calc(100svh - 62px)}.home-hero-media{min-height:42svh}.home-hero-copy{min-height:47svh;padding:25px 15px}.home-hero h1{font-size:58px}.home-hero-copy>div p{font-size:12px}.round-link{width:90px;height:90px}.hero-index{left:15px}.manifesto{display:block;padding:70px 18px}.manifesto h2{margin:12px 0 30px}.manifesto p:not(.eyebrow){margin:0 0 20px}.work-preview{padding:18px 15px 70px}.section-head{display:block;margin-bottom:35px}.section-head .text-link{margin-top:25px}.project-grid{display:block}.project-tile,.project-tile:nth-child(3n){margin:0 0 40px}.project-image,.tile-1 .project-image{height:70vw}.asset-grid{gap:8px}.asset-slot{min-height:170px}.asset-slot.tall{min-height:350px}.practice{display:block;padding:70px 18px}.practice-list{margin-top:40px}.closing{padding:80px 18px}.listing,.simple-page,.not-found{padding:70px 18px}.project-hero{display:block}.project-hero-image{min-height:65vw}.project-hero>div:last-child{padding:45px 18px}.case-study{display:block;padding:70px 18px}.case-study aside{margin-bottom:30px}.enquiry{display:block;padding:70px 18px}.enquiry>div{position:static}.project-form{margin-top:35px;padding:20px}.project-form fieldset{display:block}.project-form label{margin-bottom:14px}.project-form fieldset>label:last-child,.checks,.consent{display:flex}.checks{margin-bottom:15px}.consent{align-items:start}footer{display:block;padding:65px 18px 25px}.footer-meta{margin-top:45px}.admin{display:block}.admin aside{padding:15px;display:grid;grid-template-columns:1fr 1fr}.admin aside a:first-child{grid-column:span 2;margin:0}.admin main{padding:35px 18px}.admin-stats,.admin-grid{display:block}.admin-stats article{margin-bottom:10px}.admin-grid .admin-note+.admin-note{margin-top:15px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important}}
.admin aside a.active{background:rgba(119,210,215,.2);outline:1px solid #77d2d7}.lead-row{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:12px;align-items:center;padding:16px 0;border-top:1px solid #9ecdd4}.lead-row small{display:block;margin-top:4px;color:var(--muted)}.lead-row .button{min-width:110px;padding:10px 12px}.admin code{font-size:12px;overflow-wrap:anywhere}
.admin aside .logout-link{margin-top:auto;color:#bce8ec;border-top:1px solid rgba(255,255,255,.25);padding-top:18px!important}
