@font-face{font-family:Teka;src:url('assets/teka-regular.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:Teka;src:url('assets/teka-light.otf') format('opentype');font-weight:300;font-display:swap}
@font-face{font-family:Junicode;src:url('assets/Junicode.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Junicode;src:url('assets/Junicode-Italic.ttf') format('truetype');font-style:italic;font-weight:400;font-display:swap}
:root{--bg:#080808;--text:#e8e5df;--muted:#aaa7a1;--rule:#343330;--gutter:clamp(22px,3vw,60px);--ease:cubic-bezier(.22,.68,0,1.01)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:Teka,Arial,sans-serif;font-size:16px;font-weight:400;-webkit-font-smoothing:antialiased}::selection{background:#e8e5df;color:#080808}a{color:inherit;text-decoration:none}figure,p,h1,h2,h3{margin:0}img{display:block;max-width:100%}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid #eee9e1;outline-offset:7px}.skip-link{position:fixed;z-index:30;top:12px;left:12px;padding:16px;background:#e8e5df;color:#080808;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.wordmark{position:relative;display:block;aspect-ratio:2056/366;overflow:hidden}.wordmark img{position:absolute;width:100%;height:auto;top:-7.104%;max-width:none}.header{height:90px;position:absolute;z-index:10;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 var(--gutter);color:#fff}.header-logo{width:200px;filter:brightness(0) invert(1)}.header nav{display:flex;align-items:center;gap:36px;font-size:14px}.header nav a{padding:13px 0;position:relative}.header nav a:after{content:'';position:absolute;left:0;bottom:6px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}.header nav a:hover:after{transform:scaleX(1)}.header nav span{display:inline-block;font-size:19px;margin-left:24px;transition:transform .3s}.header nav a:hover span{transform:rotate(90deg)}.hero{min-height:640px;height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;background:#080808;color:#fff}.hero-media{position:absolute;inset:0;overflow:hidden}.hero-media:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.48),rgba(0,0,0,.38) 28%,rgba(0,0,0,.44) 60%,rgba(0,0,0,.58))}.hero-media>img{width:100%;height:100%;object-fit:cover;object-position:50% 58%}.hero-content{position:relative;z-index:1;text-align:center;padding:90px 24px 70px;max-width:1000px}.eyebrow{font-size:14px;line-height:1.5;font-weight:400;letter-spacing:.07em;text-transform:uppercase}.hero-content>.eyebrow{font-size:13px;letter-spacing:.15em;margin-bottom:28px}.hero h1{font-family:Junicode,Georgia,serif;font-weight:400;font-size:clamp(45px,5.2vw,80px);line-height:1.04;letter-spacing:-.022em;text-shadow:0 2px 25px rgba(0,0,0,.16)}.hero h1 em{font-weight:400}.hero-subtitle{font-size:15px;margin-top:28px;line-height:1.6}.hero-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:30px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:20px;font-size:13px;z-index:1}.hero-bottom p{line-height:1.5}.hero-credit{text-align:right;color:#ddd9d1}.discover{justify-self:center;display:flex;flex-direction:column;align-items:center;gap:13px;padding:8px 24px;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.scroll-line{height:35px;width:1px;background:rgba(255,255,255,.6);display:block;transform-origin:top}.opening-mark{display:none}.section{padding:90px var(--gutter)}.section-rule{display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid var(--rule);padding-bottom:18px}.section-rule .eyebrow{font-size:13px;letter-spacing:.06em}.section-index{font-size:12px;color:var(--muted)}.expertise{padding-top:55px;padding-bottom:40px}.categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:24px}.category-image{aspect-ratio:16/9;overflow:hidden;background:#141414}.category-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .8s ease;filter:none}.refurbishment-image img{object-position:50% 64%}.decoration-image img{object-position:50% 62%}.category:hover .category-image img{transform:scale(1.035);filter:none}.category-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:23px}.category h3{font-size:14px;font-weight:400;letter-spacing:.05em;line-height:1.4}.category-heading>span{font-size:12px;color:#92908a}.category>p{font-family:Junicode,Georgia,serif;font-size:20px;line-height:1.4;color:var(--muted);margin-top:14px;max-width:410px}.image-note{font-size:12px;color:#908d87;line-height:1.5;margin-top:30px}.contact{padding-top:120px;padding-bottom:130px;text-align:center;border-top:1px solid var(--rule)}.contact>.eyebrow{font-size:12px;color:var(--muted)}.contact h2{font-family:Junicode,Georgia,serif;font-weight:400;font-size:clamp(45px,5vw,76px);line-height:1.03;letter-spacing:-.025em;margin-top:35px}.contact h2 em{font-weight:400}.contact-link{display:inline-flex;gap:40px;align-items:center;font-size:14px;margin-top:40px;padding:14px 0;border-bottom:1px solid #6b6862;transition:gap .4s}.contact-link:hover{gap:60px}.contact-link span{font-size:21px}.email-link{display:block;width:fit-content;margin:25px auto 0;color:var(--muted);font-size:14px}.email-link:hover{text-decoration:underline;text-underline-offset:5px}.footer{padding:35px var(--gutter) 25px;border-top:1px solid var(--rule)}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:28px}.footer-logo{width:240px}.footer-top>p{font-family:Junicode,Georgia,serif;color:var(--muted);font-size:20px}.footer-top>a:last-child{font-size:14px;white-space:nowrap}.footer-top>a:last-child span{margin-left:24px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#9b9892;border-top:1px solid var(--rule);padding-top:20px;margin-top:40px}
/* Motion is progressively enabled; content stays visible if scripting is unavailable. */
.motion .hero-media{animation:hero-aperture 2.1s var(--ease) .5s both}.motion .hero-media>img{animation:hero-settle 3.3s var(--ease) .5s both}.motion .hero-content{animation:hero-type 1.5s var(--ease) 1.9s both}.motion .header,.motion .hero-bottom{animation:hero-type 1.2s ease 2s both}.motion .opening-mark{display:flex;position:absolute;z-index:3;inset:0;flex-direction:column;align-items:center;justify-content:center;gap:23px;pointer-events:none;animation:intro-mark 1.1s ease both}.opening-mark .wordmark{width:190px}.opening-mark>span:last-child{font-size:11px;letter-spacing:.13em;text-transform:uppercase}.motion [data-reveal]{opacity:0;transform:translateY(25px);filter:blur(3px);transition:opacity 1s ease,transform 1.2s var(--ease),filter 1.1s ease;transition-delay:var(--delay,0s)}.motion [data-reveal].is-visible{opacity:1;transform:translateY(0);filter:blur(0)}.motion .category:nth-child(2){--delay:.12s}.motion .category:nth-child(3){--delay:.24s}
@keyframes hero-aperture{0%{clip-path:inset(7% 50% 7% 50%)}24%{clip-path:inset(7% 42% 7% 42%)}100%{clip-path:inset(0 0 0 0)}}@keyframes hero-settle{from{transform:scale(1.055)}to{transform:scale(1)}}@keyframes hero-type{from{opacity:0;transform:translateY(10px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes intro-mark{0%,40%{opacity:1}100%{opacity:0;visibility:hidden}}
@media(max-width:900px){.header-logo{width:175px}.header nav{gap:25px}.categories{gap:18px}.category>p{font-size:19px}.category-heading{margin-top:20px}.category h3{font-size:13px}.footer-top>p{display:none}.hero h1{font-size:clamp(45px,6.5vw,68px)}}
@media(max-width:620px){html{scroll-padding-top:25px}.header{height:78px;gap:15px}.header-logo{width:142px}.header nav{gap:15px;font-size:12px}.header nav span{display:none}.header nav a:first-child{display:none}.hero{height:100svh;min-height:620px}.hero-media>img{object-position:59% 50%}.hero-content{padding:85px 22px 100px}.hero-content>.eyebrow{font-size:12px;letter-spacing:.1em;margin-bottom:26px}.hero h1{font-size:clamp(39px,10.5vw,58px);line-height:1.08}.hero-subtitle{font-size:14px;margin-top:22px;max-width:230px;margin-left:auto;margin-right:auto}.hero-bottom{bottom:23px;grid-template-columns:1fr 1fr;font-size:12px;gap:15px}.hero-bottom>p:first-child{max-width:150px}.hero-credit{display:none}.discover{justify-self:end;padding:5px 0;gap:10px}.scroll-line{height:30px}.section{padding:64px var(--gutter)}.expertise{padding-top:35px;padding-bottom:15px}.section-rule .eyebrow{font-size:12px;max-width:235px}.section-index{font-size:12px;white-space:nowrap}.categories{grid-template-columns:1fr;gap:42px;margin-top:22px}.category h3{font-size:14px}.category>p{font-size:20px;max-width:100%;margin-top:12px}.category-heading{margin-top:20px}.category-image{aspect-ratio:16/9}.image-note{margin-top:30px}.contact{padding-top:85px;padding-bottom:90px}.contact h2{font-size:clamp(43px,11vw,66px)}.contact-link{margin-top:29px}.footer{padding-top:28px}.footer-top{align-items:center;gap:25px;flex-wrap:wrap}.footer-logo{width:190px}.footer-top>a:last-child{font-size:12px}.footer-top>a:last-child span{margin-left:10px}.footer-bottom{margin-top:28px;font-size:12px;gap:12px}.motion .category:nth-child(n){--delay:0s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion [data-reveal]{opacity:1;transform:none;filter:none}.opening-mark{display:none!important}.hero-media{clip-path:none!important}}

.studio{padding-top:95px;padding-bottom:85px}.statement{max-width:680px;margin:0 auto;text-align:center}.statement>.eyebrow{font-size:12px;color:var(--muted)}.statement h2,.process h2,.technology h2{font:400 clamp(38px,3.7vw,57px)/1.1 Junicode,Georgia,serif;letter-spacing:-.016em}.statement h2{margin:30px 0 23px}.statement h2 em,.process h2 em,.technology h2 em,.audiences h3 em{font-weight:400}.statement>p:last-of-type{font-size:16px;line-height:1.8;color:var(--muted);max-width:580px;margin:0 auto}.vertical-rule{display:block;width:1px;height:90px;background:var(--rule);margin:60px auto 0}.audiences{display:grid;grid-template-columns:1fr 1fr;gap:13%;max-width:1000px;margin:65px auto 0}.audiences article{border-top:1px solid var(--rule);padding-top:25px}.audiences .eyebrow{font-size:12px;color:var(--muted)}.audiences h3{font:400 32px/1.2 Junicode,Georgia,serif;margin:23px 0 18px}.audiences p:last-child{font-size:16px;line-height:1.75;color:var(--muted)}.process{padding-top:35px;padding-bottom:90px}.process-layout{display:grid;grid-template-columns:1fr 1fr;gap:10%;margin-top:60px}.process-intro>p{font-size:16px;line-height:1.75;color:var(--muted);max-width:320px;margin-top:28px}.process-list{list-style:none;margin:0;padding:0}.process-list li{display:flex;gap:35px;padding:28px 0;border-top:1px solid var(--rule)}.process-list li:first-child{padding-top:0;border:0}.process-list li>span{font-size:12px;color:var(--muted);padding-top:9px}.process-list h3{font:400 28px/1.25 Junicode,Georgia,serif;margin-bottom:12px}.process-list p{font-size:16px;line-height:1.7;color:var(--muted);max-width:480px}.technology{border-top:1px solid var(--rule);display:grid;grid-template-columns:1.1fr 1fr;gap:10%;padding-top:85px;padding-bottom:95px}.technology-title>.eyebrow{font-size:12px;color:var(--muted)}.technology-title a{color:var(--text);text-decoration:underline;text-underline-offset:4px}.technology h2{font-size:clamp(34px,3.2vw,49px);margin-top:30px}.technology-copy{padding-top:48px}.technology-copy p{font-size:16px;line-height:1.8;color:var(--muted)}.technology-copy .technology-note{color:var(--text);font-family:Junicode,Georgia,serif;font-size:21px;margin-top:25px}.contact{border-top:1px solid var(--rule)}
@media(max-width:900px){.process-layout{gap:7%}.audiences{gap:8%}.technology{grid-template-columns:1fr 1fr;gap:6%}.technology h2{font-size:36px}.header nav{font-size:14px}.category h3{font-size:14px}}
@media(max-width:620px){.header nav{font-size:14px}.header-logo{width:135px}.studio{padding-top:70px;padding-bottom:55px}.statement h2{font-size:clamp(34px,9.4vw,49px);margin-top:28px}.statement>p:last-of-type{font-size:16px;line-height:1.75}.vertical-rule{height:60px;margin-top:40px}.audiences{grid-template-columns:1fr;gap:35px;margin-top:45px}.audiences h3{font-size:30px;margin-top:20px}.process{padding-top:20px;padding-bottom:55px}.process-layout{grid-template-columns:1fr;gap:37px;margin-top:35px}.process h2{font-size:43px}.process-intro>p{max-width:100%;margin-top:20px}.process-list li{gap:23px;padding:25px 0}.process-list h3{font-size:27px}.process-list li:first-child{border-top:1px solid var(--rule);padding-top:25px}.technology{grid-template-columns:1fr;gap:25px;padding-top:55px;padding-bottom:65px}.technology h2{font-size:clamp(33px,9vw,44px);margin-top:25px}.technology-copy{padding-top:0}.technology-copy .technology-note{font-size:20px}}
@media print{body{background:white;color:black}.hero{height:auto;min-height:500px}.header,.opening-mark,.discover{display:none!important}[data-reveal]{opacity:1!important;transform:none!important;filter:none!important}.hero-media{clip-path:none!important}.section{break-inside:avoid}.category>p,.image-note,.statement>p:last-of-type,.audiences p:last-child,.process-list p,.process-intro>p,.technology-copy p{color:#333}}

.hero-content>.eyebrow,.hero-subtitle{text-shadow:0 1px 8px rgba(0,0,0,.7)}

/* Supplied imagery: individual living, craftsmanship and completion. */
.studio{padding:65px 0 85px}.statement-panel{position:relative;isolation:isolate;overflow:hidden;min-height:640px;display:grid;place-items:center;padding:110px var(--gutter) 85px;background:#151515}.statement-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:brightness(.4);z-index:-2}.statement-panel:after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.2);z-index:-1}.statement-panel .statement{width:100%;max-width:690px}.statement-panel .statement>.eyebrow{color:#d4d1cb}.statement-panel .statement>p:last-of-type{color:#e0ddd6}.statement-panel .statement h2{color:#f1eee7}.statement-panel .vertical-rule{background:rgba(232,229,223,.48);height:60px;margin-top:45px}.studio .audiences{max-width:1120px;padding:0 var(--gutter);margin-top:75px;gap:12%}.process-images{display:grid;grid-template-columns:.85fr 1fr;gap:12%;align-items:start;max-width:1040px;margin:75px auto 0}.process-craft{padding-top:0}.process-complete{padding-top:65px}.process-photo{overflow:hidden;background:#151515;aspect-ratio:4/5}.process-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}.process-craft img{object-position:50% 48%}.process-complete img{object-position:50% 57%}.process-images figure:hover img{transform:scale(1.025)}.process-images figcaption{display:flex;justify-content:space-between;gap:20px;padding-top:17px;font-size:12px;line-height:1.5;letter-spacing:.035em;color:var(--muted)}
@media(max-width:900px){.process-images{gap:7%;margin-top:55px}.process-complete{padding-top:45px}.statement-panel{min-height:600px}}
@media(max-width:620px){.studio{padding:45px 0 55px}.statement-panel{min-height:650px;padding:90px var(--gutter) 65px}.statement-backdrop{object-position:64% 50%}.studio .audiences{margin-top:45px;gap:35px}.statement-panel .vertical-rule{margin-top:35px;height:50px}.process-images{grid-template-columns:1fr;gap:35px;margin-top:40px}.process-craft{max-width:88%;padding-top:0}.process-complete{max-width:88%;justify-self:end;padding-top:0}.process-images figcaption{font-size:12px}}
@media(prefers-reduced-motion:reduce){.process-photo img{transition:none}.process-images figure:hover img{transform:none}}

/* Centred identity, quiet imagery and a clear reading focus. */
.header{height:auto;min-height:120px;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:28px var(--gutter) 20px}
.header-logo{width:140px;flex-shrink:0}
.header nav{justify-content:center;gap:30px;font-size:14px;flex-wrap:wrap}
.header nav a{padding:5px 0}.header nav a:after{bottom:0}.header nav span{display:none}
.header nav a[aria-current=page]:after{transform:scaleX(1)}
.opening-mark .wordmark{width:130px}
.footer-top{display:flex;flex-direction:column;align-items:center;text-align:center;gap:23px}
.footer-logo{width:155px}.footer-top>p{display:block;font-size:18px}
img{opacity:1}
.category-image img,.process-photo img,.project-image img{transition:opacity .65s ease,transform 1.2s var(--ease),filter .8s ease}

.hero-media:after{pointer-events:none}
.contact{position:relative;isolation:isolate;overflow:hidden;min-height:640px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-top:0;color:#fff}
.contact-backdrop{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:brightness(.55)}
.contact:after{content:'';position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.25);pointer-events:none}
.contact>.eyebrow,.contact .email-link{color:#e0ddd6}.contact .contact-link{border-color:#bbb7af}
.reading-focus{opacity:var(--reading-opacity,1);transition:opacity .3s ease}
.reading-copy:hover>.reading-focus,.reading-copy:focus-within>.reading-focus{opacity:1}
.projects-page .header{position:relative}.projects-page.motion .header,.motion .projects-page .header{animation:none}
.projects-main{padding:55px var(--gutter) 100px;min-height:70svh}
.projects-title{font:400 clamp(42px,4.6vw,68px)/1.1 Junicode,Georgia,serif;text-align:center;margin:10px 0 55px}
.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}
.project-image{aspect-ratio:16/9;overflow:hidden;background:#141414}
.project-image img{width:100%;height:100%;object-fit:cover}
.project-image:hover img{transform:scale(1.025)}
@media(max-width:900px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.header-logo{width:135px}}
@media(max-width:620px){.header{padding-top:23px;min-height:115px;gap:19px}.header-logo{width:120px}.header nav{gap:20px;font-size:14px;flex-wrap:nowrap}.header nav a:first-child{display:block}.opening-mark .wordmark{width:115px}.footer-logo{width:135px}.footer-top{gap:20px}.contact{min-height:590px}.projects-main{padding-top:35px;padding-bottom:65px}.projects-title{margin-bottom:35px}.projects-grid{grid-template-columns:1fr;gap:25px}}
@media(hover:none){img{opacity:1}.reading-focus{opacity:1}}
@media(prefers-reduced-motion:reduce){.reading-focus{opacity:1}.project-image:hover img{transform:none}}
@media print{.reading-focus,img{opacity:1!important}}
/* Preserve inline navigation and link layout after adding reading-focus spans. */
.header nav a>.reading-focus,.header nav a:hover>.reading-focus{display:inline;font-size:inherit;margin:0;transform:none}
.footer-top>a:last-child>.reading-focus{margin-left:0}
.contact-link>.reading-focus{display:inline-flex;align-items:center;gap:inherit;font-size:inherit}
.discover>.reading-focus{display:flex;flex-direction:column;align-items:center;gap:13px}

/* Smaller supporting copy; lighter, more precise calls to action. */
.category h3{font-size:17px;font-weight:400;letter-spacing:.065em;color:var(--text)}
.category>p{font-size:16px;line-height:1.45;margin-top:10px;max-width:370px}
.contact-link,.contact-link:hover,.projects-contact{gap:14px;padding:4px 0 2px;line-height:1.25;border-bottom:1px solid rgba(232,229,223,.5);transition:border-color .3s ease,color .3s ease}
.contact .contact-link{border-color:rgba(232,229,223,.5)}
.contact-link .link-arrow,.projects-contact .link-arrow{display:inline-block;font-size:14px;line-height:1;transition:transform .3s ease}
.contact-link:hover,.contact .contact-link:hover,.projects-contact:hover{border-color:var(--text)}
.contact-link:hover .link-arrow,.projects-contact:hover .link-arrow{transform:translate(2px,-2px)}
.projects-intro{max-width:640px;margin:10px auto 55px;text-align:center}
.projects-intro .projects-title{margin:0 0 25px}
.projects-intro p{font:400 18px/1.5 Junicode,Georgia,serif;color:var(--muted);max-width:520px;margin:0 auto 6px}
.projects-contact{display:inline-flex;align-items:center;font-size:14px;margin-top:17px}
.projects-contact>.reading-focus{display:inline-flex;align-items:center;gap:14px}
.footer-bottom{align-items:center;flex-wrap:wrap;row-gap:20px}
.footer-local,.footer-actions{display:flex;align-items:center;gap:20px}
.footer-local{flex-wrap:wrap;justify-content:center;gap:14px}
.local-clock{font-variant-numeric:tabular-nums;min-width:3.3em;color:var(--text)}
.footer-actions a:hover{text-decoration:underline;text-underline-offset:4px}
.local-weather{position:relative;color:var(--text)}
.local-weather summary{display:flex;gap:7px;align-items:center;cursor:pointer;list-style:none;font-variant-numeric:tabular-nums;min-height:28px}
.local-weather summary::-webkit-details-marker{display:none}
.local-weather summary:focus-visible{outline:1px solid var(--text);outline-offset:5px}
[data-weather-icon]{font-size:18px;line-height:1}
.weather-info{position:absolute;bottom:calc(100% + 14px);left:50%;transform:translateX(-50%);width:260px;max-width:calc(100vw - 44px);z-index:20;background:#141414;border:1px solid var(--rule);padding:18px;text-align:left;box-shadow:0 10px 35px #0005}
.weather-info p{font-size:12px;line-height:1.5;margin-bottom:9px;color:var(--muted)}
.weather-info p:first-child{color:var(--text)}.weather-info p:last-child{margin-bottom:0}
.weather-info a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:620px){.category h3{font-size:16px}.category>p{font-size:16px;max-width:100%}.projects-intro{margin-bottom:40px}.projects-intro p{font-size:17px}.footer-bottom{flex-direction:column;gap:17px}.footer-local{gap:12px}.footer-actions{gap:24px}.weather-info{left:auto;right:-18px;transform:none}}

/* Consistent footer and larger, quiet category headings. */
.category h3{font-family:Teka,Arial,sans-serif;font-size:clamp(25px,2.3vw,36px);font-weight:300;text-transform:lowercase;letter-spacing:-.025em;line-height:1.15}
.footer-bottom,.footer-bottom a,.footer-bottom time,.footer-bottom summary,.footer-bottom span,.footer-bottom p{font-family:Teka,Arial,sans-serif;font-size:12px;font-weight:400;color:#9b9892}
.footer-bottom .reading-focus{opacity:1}.footer-bottom [data-weather-icon]{font-size:12px;line-height:1}
/* Studio: a flat network unfolding from the creative core. */
.studio-page .header{position:relative}.motion .studio-page .header{animation:none}
.studio-intro{text-align:center;max-width:950px;margin:0 auto;padding-top:70px;padding-bottom:90px}
.studio-intro>.eyebrow{color:var(--muted);font-size:12px}
.studio-intro h1{font:400 clamp(43px,5.6vw,78px)/1.06 Junicode,Georgia,serif;letter-spacing:-.025em;margin:28px 0}
.studio-intro h1 em,.studio-practice h2 em{font-weight:400}
.studio-lead{font-size:17px;line-height:1.7;max-width:580px;margin:auto;color:var(--muted)}
.network-section{padding-top:15px;padding-bottom:65px}
.network-board{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr);column-gap:8%;row-gap:40px;max-width:1300px;margin:75px auto 60px;align-items:center;isolation:isolate}
.network-connections{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}
.network-connections path{fill:none;stroke:#48463f;stroke-width:1;vector-effect:non-scaling-stroke;transition:stroke .3s ease}
.network-connections path.is-active{stroke:#dfdad1}
.network-core{position:relative;grid-column:2;grid-row:1/4;text-align:center;padding:32px 10px;background:var(--bg);border-top:1px solid #67645e;border-bottom:1px solid #67645e;z-index:1}
.network-core .wordmark{width:115px;margin:0 auto 22px}
.network-core h3{font:300 52px/1 Teka,Arial,sans-serif;letter-spacing:-.04em;margin-bottom:18px}
.network-core>span:last-child{font-size:12px;letter-spacing:.05em;color:var(--muted)}
.network-team{position:relative;text-align:left;display:grid;grid-template-columns:25px 1fr 12px;column-gap:10px;row-gap:10px;width:100%;padding:23px 0;background:var(--bg);border:0;border-top:1px solid var(--rule);color:var(--text);cursor:pointer;min-height:126px;grid-row:var(--team-row);transition:border-color .3s ease}
.team-left{grid-column:1}.team-right{grid-column:3}
.team-number{grid-column:1;grid-row:1;font-size:12px;color:var(--muted);padding-top:4px}
.team-name{grid-column:2;font-size:clamp(17px,1.55vw,23px);font-weight:300;line-height:1.25;letter-spacing:-.015em}
.team-roles{grid-column:2;font-size:13px;line-height:1.6;color:var(--muted);max-width:250px}
.team-open{grid-column:3;grid-row:1;font-size:15px;font-weight:300;transition:transform .3s ease}
.network-team[aria-pressed=true]{border-color:#ded9d0}.network-team[aria-pressed=true] .team-open{transform:rotate(45deg)}
.network-team:hover{border-color:#8d8980}
.network-detail{max-width:800px;min-height:130px;margin:0 auto;display:grid;grid-template-columns:70px 1fr;gap:25px;border-top:1px solid var(--rule);padding-top:25px}
.detail-index{font-size:12px;color:var(--muted);padding-top:7px;letter-spacing:.08em}
.network-detail h3{font:400 29px/1.2 Junicode,Georgia,serif;margin-bottom:12px}
.network-detail p{font-size:16px;line-height:1.7;color:var(--muted);max-width:620px}
.network-enhanced .network-team{transition:opacity .7s ease,transform .9s var(--ease),border-color .3s ease;transition-delay:var(--team-delay),var(--team-delay),0s}
.network-enhanced:not(.network-open) .network-team{opacity:0;transform:translateX(30px)}
.network-enhanced:not(.network-open) .team-right{transform:translateX(-30px)}
.network-enhanced .network-connections path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s var(--ease),stroke .3s ease}
.network-open .network-connections path{stroke-dashoffset:0}
.studio-practice{display:grid;grid-template-columns:1fr 1fr;gap:12%;border-top:1px solid var(--rule);padding-top:80px;padding-bottom:100px}
.studio-practice .eyebrow{font-size:12px;color:var(--muted);margin-bottom:28px}
.studio-practice h2{font:400 clamp(37px,3.8vw,58px)/1.1 Junicode,Georgia,serif;letter-spacing:-.02em}
.studio-practice-copy p{font-size:16px;line-height:1.8;color:var(--muted);margin-bottom:20px}
@media(max-width:1000px){.network-board{grid-template-columns:minmax(0,1fr) 160px minmax(0,1fr);column-gap:5%;row-gap:25px}.network-core h3{font-size:43px}.network-team{grid-template-columns:20px 1fr 10px;column-gap:7px}.team-name{font-size:18px}.team-roles{font-size:12px}}
@media(max-width:700px){.studio-intro{padding-top:45px;padding-bottom:65px}.studio-lead{font-size:16px}.network-section .section-rule{align-items:flex-start}.network-section .section-index{white-space:normal;text-align:right;max-width:110px}.network-board{grid-template-columns:1fr 1fr;column-gap:28px;row-gap:18px;margin:45px auto 35px;padding-top:0}.network-core{grid-column:1/3;grid-row:1;justify-self:center;width:190px;margin-bottom:25px;padding:23px 10px}.network-core .wordmark{width:100px;margin-bottom:18px}.network-core h3{font-size:42px}.network-team{grid-column:auto;grid-row:auto;min-height:153px;align-content:start;padding:20px 0;grid-template-columns:1fr 10px}.team-number{grid-column:1;grid-row:1;padding:0}.team-name{grid-column:1/3;grid-row:2;font-size:18px}.team-roles{grid-column:1/3;grid-row:3;font-size:12px}.team-open{grid-column:2;grid-row:1}.network-connections{display:none}.network-core:after{content:'';position:absolute;width:1px;height:25px;bottom:-26px;left:50%;background:var(--rule)}.network-enhanced:not(.network-open) .network-team{transform:translateY(-15px)}.network-detail{grid-template-columns:36px 1fr;gap:15px;min-height:200px}.network-detail h3{font-size:26px}.network-detail p{font-size:15px}.studio-practice{grid-template-columns:1fr;gap:30px;padding-top:55px;padding-bottom:65px}.studio-practice h2{font-size:43px}}
@media(prefers-reduced-motion:reduce){.network-enhanced:not(.network-open) .network-team{opacity:1;transform:none}.network-enhanced .network-connections path{stroke-dashoffset:0}}
@media print{.network-enhanced:not(.network-open) .network-team{opacity:1;transform:none}.network-connections path{stroke-dashoffset:0!important}}

/* Restore the original expertise headings; retain small Junicode descriptions. */
.category h3{font-family:Teka,Arial,sans-serif;font-size:14px;font-weight:400;text-transform:uppercase;letter-spacing:.05em;line-height:1.4}
.network-core{min-height:115px;display:grid;place-items:center;padding:35px 10px}
.network-core .wordmark{width:130px;margin:0 auto}
@media(max-width:700px){.network-core{min-height:95px;padding:30px 10px}.network-core .wordmark{width:115px;margin:0 auto}}

/* Five navigation links stay readable on compact screens. */
@media(max-width:620px){.header nav{flex-wrap:wrap;column-gap:18px;row-gap:8px;max-width:100%}.header{padding-bottom:20px}}

/* A quiet utility route to the private client portal. */
.header nav .client-access{position:absolute;top:35px;right:var(--gutter);padding:4px 0 2px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:inherit;opacity:.78;border-bottom:1px solid currentColor}
.header nav .client-access:after{display:none}
.header nav .client-access:hover,.header nav .client-access:focus-visible{opacity:1}
@media(max-width:620px){.header nav .client-access{position:relative;top:auto;right:auto;padding:5px 0 1px;font-size:12px;letter-spacing:.065em;opacity:.82}}

/* Phase 01: a soft, overlapping reveal, kept out of the pointer's path. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.phase-gallery{position:absolute;z-index:8;left:19%;top:-230px;width:min(570px,68vw);height:460px;pointer-events:none;visibility:hidden;opacity:0;transition:opacity .35s ease,visibility .35s ease}
.phase-image{position:absolute;margin:0;transform-origin:bottom left;opacity:0;transition:transform .85s cubic-bezier(.2,.75,.2,1),opacity .45s ease;box-shadow:0 14px 45px #0005}
.phase-image img{width:100%;height:auto;opacity:1;display:block}
.phase-render{width:54%;left:0;bottom:0;transform:translate(70px,45px) rotate(0deg) scale(.85)}
.phase-sketch{width:60%;right:0;top:0;transform:translate(-55px,80px) rotate(0deg) scale(.82);transition-delay:.08s;z-index:1}
.phase-gallery.is-active{visibility:visible;opacity:1}
.phase-gallery.is-active .phase-render{opacity:1;transform:translate(0,0) rotate(-5deg) scale(1)}
.phase-gallery.is-active .phase-sketch{opacity:1;transform:translate(0,0) rotate(4deg) scale(1)}
@media(max-width:1000px) and (min-width:701px){.phase-gallery{left:15%;width:65vw;height:410px;top:-200px}}
@media(max-width:700px){.phase-gallery{left:4%;top:-20px;width:90%;height:325px}.phase-render{width:58%;bottom:10px}.phase-sketch{width:62%;max-width:220px}.phase-gallery.is-active .phase-render{transform:rotate(-4deg)}.phase-gallery.is-active .phase-sketch{transform:rotate(3deg)}}
/* Phase 02: three photographs unfold as an overlapping fan. */
.phase-works-interior{width:43%;left:27%;top:0;z-index:1;transform:translate(0,65px) scale(.84)}
.phase-works-team{width:44%;left:0;bottom:0;z-index:2;transform:translate(80px,45px) scale(.84);transition-delay:.07s}
.phase-works-villa{width:47%;right:0;bottom:8%;z-index:3;transform:translate(-65px,55px) scale(.84);transition-delay:.14s}
.phase-gallery.is-active .phase-works-interior{opacity:1;transform:rotate(-2deg)}
.phase-gallery.is-active .phase-works-team{opacity:1;transform:rotate(-6deg)}
.phase-gallery.is-active .phase-works-villa{opacity:1;transform:rotate(5deg)}
@media(max-width:700px){.phase-gallery-architecture{height:300px}.phase-works-interior{width:46%;left:26%}.phase-works-team{width:46%;bottom:5%}.phase-works-villa{width:48%;bottom:14%}}
/* Phase 03: portrait views of supervision and coordination. */
.phase-control-one{width:38%;left:0;bottom:3%;z-index:2;transform:translate(70px,45px) scale(.84)}
.phase-control-two{width:36%;left:32%;top:0;z-index:1;transform:translate(0,70px) scale(.84);transition-delay:.07s}
.phase-control-three{width:36%;right:0;bottom:0;z-index:3;transform:translate(-65px,55px) scale(.84);transition-delay:.14s}
.phase-gallery.is-active .phase-control-one{opacity:1;transform:rotate(-6deg)}
.phase-gallery.is-active .phase-control-two{opacity:1;transform:rotate(-1deg)}
.phase-gallery.is-active .phase-control-three{opacity:1;transform:rotate(5deg)}
@media(max-width:700px){.phase-gallery-management{height:280px}.phase-control-one{bottom:4%}.phase-control-three{bottom:8%}}
/* Additional phases share the same staggered, overlapping reveal. */
.phase-gallery-right{left:auto;right:19%}
.phase-fan-image{left:var(--photo-x);top:var(--photo-y);width:var(--photo-width);z-index:var(--photo-layer,1);transform:translate(var(--photo-shift,0px),65px) scale(.84);transition-delay:var(--photo-delay,0s)}
.phase-gallery.is-active .phase-fan-image{opacity:1;transform:rotate(var(--photo-angle,0deg))}
@media(max-width:1000px) and (min-width:701px){.phase-gallery-right{left:auto;right:15%}}
@media(max-width:700px){.phase-gallery-right{left:4%;right:auto;height:300px}}
@media(prefers-reduced-motion:reduce){.phase-gallery,.phase-image{transition:none}.phase-gallery.is-active .phase-image{transform:none}}

/* Team portraits use the supplied screenshots as shared image sources.
   Cropping and monochrome presentation happen in CSS; source faces stay unchanged. */
.studio-people{display:grid;grid-template-columns:repeat(8,minmax(128px,1fr));gap:20px;margin:0;padding:32px 0 8px;border-top:1px solid var(--rule);overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--rule) transparent;scroll-snap-type:x proximity}
.person-card{margin:0;min-width:0;scroll-snap-align:start}
.team-portrait{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--bg)}
.team-portrait img{position:absolute;width:var(--portrait-width);height:var(--portrait-height);max-width:none;left:var(--portrait-left);top:var(--portrait-top);object-fit:fill;filter:grayscale(1);opacity:1;transform:none}
.person-card figcaption{padding-top:16px;text-align:left}
.person-card h3{margin:0 0 6px;font-family:Teka,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.35;letter-spacing:-.02em}
.person-card p{margin:0;color:var(--muted);font-family:Teka,Arial,sans-serif;font-size:14px;font-weight:300;line-height:1.4}
@media(max-width:700px){.studio-people{grid-template-columns:repeat(8,160px);gap:18px;padding-top:24px;padding-bottom:18px}.person-card figcaption{padding-top:13px}}

/* Studio privacy revision: a calm, non-personal system instead of portraits or an animated network. */
.practice-system{padding-top:20px;padding-bottom:85px}
.practice-signature{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:55px 0 35px;border-bottom:1px solid var(--rule)}
.practice-signature .wordmark{width:190px;flex:0 0 auto}
.practice-signature p{font:400 clamp(20px,2.1vw,31px)/1.25 Junicode,Georgia,serif;color:var(--muted);text-align:right;max-width:620px}
.practice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}
.practice-grid li{display:grid;grid-template-columns:34px 1fr;gap:16px;min-height:190px;padding:30px 28px 32px 0;border-bottom:1px solid var(--rule)}
.practice-grid li:not(:nth-child(3n+1)){border-left:1px solid var(--rule);padding-left:28px}
.practice-number{font-size:12px;line-height:1.5;color:var(--muted);padding-top:5px}
.practice-grid h3{font:400 clamp(24px,2vw,31px)/1.16 Junicode,Georgia,serif;letter-spacing:-.015em;margin:0 0 16px}
.practice-grid p{font-size:14px;line-height:1.6;color:var(--muted);max-width:250px}
@media(max-width:900px){.practice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-grid li:not(:nth-child(3n+1)){border-left:0;padding-left:0}.practice-grid li:nth-child(even){border-left:1px solid var(--rule);padding-left:24px}.practice-signature{align-items:flex-end}.practice-signature p{font-size:23px}}
@media(max-width:620px){.practice-system{padding-top:10px;padding-bottom:55px}.practice-signature{display:block;padding:42px 0 27px}.practice-signature .wordmark{width:145px;margin-bottom:24px}.practice-signature p{text-align:left;font-size:21px;line-height:1.35}.practice-grid{grid-template-columns:1fr}.practice-grid li,.practice-grid li:nth-child(even),.practice-grid li:not(:nth-child(3n+1)){border-left:0;padding:24px 0;min-height:0}.practice-grid h3{font-size:26px;margin-bottom:10px}}

/* Contact: a more professional enquiry page within the existing homepage. */
.contact{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:stretch;min-height:720px;padding:0;text-align:left;background:#0c0c0c;color:var(--text);border-top:1px solid var(--rule);overflow:hidden}
.contact:after{display:none}
.contact-visual{position:relative;isolation:isolate;min-height:720px;overflow:hidden;background:#151515}
.contact-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.52))}
.contact-backdrop{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:brightness(.68)}
.contact-visual>p{position:absolute;z-index:1;left:var(--gutter);bottom:42px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#e5e1d9}
.contact-content{display:flex;flex-direction:column;justify-content:center;padding:90px clamp(42px,6vw,105px)}
.contact>.contact-content>.eyebrow{font-size:12px;color:var(--muted)}
.contact h2{font-size:clamp(43px,5vw,72px);margin:30px 0 0}
.contact-intro{max-width:570px;margin-top:30px;font-size:16px;line-height:1.75;color:var(--muted)}
.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:55px;padding-top:25px;border-top:1px solid var(--rule)}
.contact-details>div>span{display:block;margin-bottom:13px;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.contact-details a,.contact-details p{font:400 17px/1.55 Junicode,Georgia,serif;color:var(--text)}
.contact .contact-link{align-self:flex-start;margin-top:52px;color:var(--text);border-color:#6b6862}
@media(max-width:820px){.contact{grid-template-columns:1fr}.contact-visual{min-height:430px}.contact-content{padding:70px var(--gutter) 80px}.contact h2{font-size:clamp(43px,9vw,62px)}}
@media(max-width:620px){.contact{min-height:0}.contact-visual{min-height:340px}.contact-content{padding-top:60px;padding-bottom:68px}.contact-details{grid-template-columns:1fr;gap:25px;margin-top:42px}.contact .contact-link{margin-top:40px}}

/* Private portfolio cards and password dialogue. */
.projects-intro>.eyebrow{font-size:12px;color:var(--muted);margin-bottom:18px}
.private-projects{gap:28px 24px;background:transparent;border:0}
.project-lock{position:relative;aspect-ratio:16/9;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;gap:18px;width:100%;padding:24px;text-align:left;color:var(--text);background:#0e0e0e;border:0;cursor:pointer;transition:background .35s ease}
.project-lock:hover{background:#151515}
.project-number,.project-status{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.project-number{align-self:start}.project-status{grid-column:1/3;align-self:end}
.project-open{justify-self:end;align-self:end;font-size:13px;border-bottom:1px solid #55514b;padding-bottom:3px}
.lock-symbol{position:relative;justify-self:center;align-self:center;grid-column:1/3;width:38px;height:30px;border:1px solid #7a766e}
.lock-symbol:before{content:'';position:absolute;width:18px;height:16px;left:9px;top:-13px;border:1px solid #7a766e;border-bottom:0;border-radius:12px 12px 0 0}
.project-access-dialog{width:min(920px,calc(100vw - 38px));max-width:none;padding:0;color:var(--text);background:#0e0e0e;border:1px solid var(--rule)}
.project-access-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(5px)}
.dialog-close{position:absolute;z-index:3;right:18px;top:12px;width:40px;height:40px;color:var(--text);background:transparent;border:0;font-size:28px;cursor:pointer}
.access-form{max-width:520px;margin:0 auto;padding:70px 50px;text-align:center}
.access-form>.eyebrow{font-size:12px;color:var(--muted)}
.access-form h2{font:400 clamp(38px,5vw,60px)/1.1 Junicode,Georgia,serif;margin:23px 0 15px}
.access-form>p:not(.eyebrow):not(.access-error){color:var(--muted);line-height:1.6}
.access-form label{display:block;margin:38px 0 10px;text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.access-form input{width:100%;min-height:50px;padding:10px 14px;color:var(--text);background:#080808;border:1px solid #4a4843;font:16px Teka,Arial,sans-serif}
.access-form input:focus{outline:1px solid var(--text);outline-offset:2px}
.access-error{min-height:22px;margin-top:10px;color:#d9a99f;font-size:13px;line-height:1.5;text-align:left}
.access-submit{width:100%;min-height:50px;margin-top:10px;color:#080808;background:var(--text);border:0;cursor:pointer;font:14px Teka,Arial,sans-serif}
.access-form>a{display:inline-block;margin-top:25px;font-size:13px;border-bottom:1px solid #5d5953;padding-bottom:3px}
.project-reveal{margin:0}.project-reveal>img{width:100%;max-height:76vh;object-fit:contain;background:#080808}
.project-reveal figcaption{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:17px 22px;font-size:12px;color:var(--muted)}
.project-close{color:var(--text);background:transparent;border:0;cursor:pointer}
@media(max-width:620px){.project-lock{padding:20px;min-height:210px}.access-form{padding:60px 25px}.project-reveal figcaption{padding-right:55px}}

/* Contact aligned with the structured FORZ enquiry page. */
.contact{display:block;min-height:0;padding:0;text-align:left;background:var(--bg);color:var(--text);border-top:1px solid var(--rule);overflow:visible}
.contact-hero{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.5fr) minmax(280px,.8fr);gap:clamp(30px,5vw,90px);align-items:start;padding:105px var(--gutter) 115px}
.contact-hero>.eyebrow{font-size:12px;color:var(--muted)}
.contact h2{font:400 clamp(54px,6.2vw,95px)/.98 Junicode,Georgia,serif;letter-spacing:-.035em;margin:0}
.contact h2 em{font-weight:400}
.contact-intro{align-self:end;max-width:460px}
.contact-intro p{font-size:16px;line-height:1.75;color:var(--muted)}
.contact-intro a{display:flex;justify-content:space-between;gap:35px;margin-top:32px;padding-bottom:11px;border-bottom:1px solid #5c5953;font:400 19px/1.4 Junicode,Georgia,serif}
.contact-brief{padding:35px var(--gutter) 110px;border-top:1px solid var(--rule)}
.contact-section-index{display:flex;justify-content:space-between;gap:20px;margin-bottom:65px;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.qualified-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 70px;margin-left:calc(25% + 20px)}
.qualified-form label{display:block}
.qualified-form label>span{display:block;margin-bottom:13px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.qualified-form input,.qualified-form select,.qualified-form textarea{width:100%;padding:12px 0;color:var(--text);background:transparent;border:0;border-bottom:1px solid #4c4a46;border-radius:0;font:400 17px/1.5 Teka,Arial,sans-serif}
.qualified-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#888 50%),linear-gradient(135deg,#888 50%,transparent 50%);background-position:calc(100% - 8px) 50%,calc(100% - 3px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.qualified-form select option{color:#080808}
.qualified-form textarea{min-height:150px;resize:vertical}
.qualified-form input:focus,.qualified-form select:focus,.qualified-form textarea:focus{outline:0;border-color:var(--text)}
.qualified-form .form-wide{grid-column:1/3}
.form-submit{display:flex;justify-content:space-between;align-items:flex-end;gap:35px}
.form-submit p{max-width:390px;font-size:13px;line-height:1.55;color:var(--muted)}
.form-submit button{display:inline-flex;align-items:center;gap:45px;padding:12px 0;color:var(--text);background:transparent;border:0;border-bottom:1px solid #6b6862;cursor:pointer;font:14px Teka,Arial,sans-serif}
.form-submit button:hover{border-color:var(--text)}
.contact-image{position:relative;margin:0;aspect-ratio:22/8;overflow:hidden}
.contact-image img{width:100%;height:100%;object-fit:cover;object-position:50% 48%;filter:brightness(.78)}
.contact-image figcaption{position:absolute;left:var(--gutter);bottom:28px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#eeeae2}
@media(max-width:1000px){.contact-hero{grid-template-columns:.55fr 1.45fr}.contact-intro{grid-column:2;margin-top:10px}.qualified-form{margin-left:0}}
@media(max-width:700px){.contact-hero{grid-template-columns:1fr;padding-top:75px;padding-bottom:75px;gap:28px}.contact-hero>.eyebrow,.contact-intro{grid-column:1}.contact h2{font-size:clamp(47px,13.5vw,69px)}.contact-intro{margin-top:8px}.contact-brief{padding-bottom:75px}.contact-section-index{margin-bottom:50px}.qualified-form{grid-template-columns:1fr;gap:32px}.qualified-form .form-wide{grid-column:1}.form-submit{display:block}.form-submit button{margin-top:27px}.contact-image{aspect-ratio:4/3}}

/* Revision: fewer labels, responsive discipline cards, visible project imagery. */
.hero-bottom{display:flex;justify-content:center}
.practice-system{padding-top:10px}
.practice-grid{border-top:1px solid var(--rule)}
.practice-grid li{position:relative;isolation:isolate;overflow:hidden;grid-template-columns:34px 1fr;transition:color .38s ease,border-color .38s ease}
.practice-grid li:before{content:'';position:absolute;z-index:-1;inset:0;background:var(--text);opacity:0;transition:opacity .38s ease}
.practice-grid li>*{position:relative;z-index:1}
@media(hover:hover) and (min-width:901px){
  .practice-grid li:hover,.practice-grid li:focus{color:var(--bg);border-color:var(--text);outline:0}
  .practice-grid li:hover:before,.practice-grid li:focus:before{opacity:1}
  .practice-grid li:hover .practice-number,.practice-grid li:focus .practice-number,.practice-grid li:hover p,.practice-grid li:focus p{color:#5c5954}
}

.project-lock{position:relative;display:block;aspect-ratio:16/9;padding:0;overflow:hidden;background:#111}
.project-lock:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.12) 48%,rgba(0,0,0,.72));pointer-events:none}
.project-lock>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .5s ease}
.project-lock:nth-child(3)>img,.project-lock:nth-child(4)>img,.project-lock:nth-child(6)>img{object-position:50% 58%}
.project-lock:hover>img,.project-lock:focus-visible>img{transform:scale(1.035);filter:brightness(.85)}
.project-number,.project-open{position:absolute;z-index:1;bottom:20px;color:#fff;text-shadow:0 1px 8px #0008}
.project-number{left:22px;font-size:13px}
.project-open{right:22px;opacity:0;transform:translateY(8px);transition:opacity .35s ease,transform .45s var(--ease)}
.project-lock:hover .project-open,.project-lock:focus-visible .project-open{opacity:1;transform:none}
.lock-symbol,.project-status{display:none}
.project-bambu{aspect-ratio:16/9}
.project-bambu>img{object-position:50% 51%}

.contact-page .header{position:relative}.contact-page.motion .header,.motion .contact-page .header{animation:none}
.contact-page-layout h1{font:400 clamp(54px,6.2vw,95px)/.98 Junicode,Georgia,serif;letter-spacing:-.035em;margin:0}
.contact-page-layout h1 em{font-weight:400}

.home-contact{position:relative;isolation:isolate;overflow:hidden;min-height:640px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:120px var(--gutter) 130px;text-align:center;color:#fff;border-top:0;background:#111}
.home-contact:after{display:block;content:'';position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.25);pointer-events:none}
.home-contact .contact-backdrop{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:brightness(.55)}
.home-contact>.eyebrow{font-size:12px;color:#e0ddd6}
.home-contact h2{font:400 clamp(45px,5vw,76px)/1.03 Junicode,Georgia,serif;letter-spacing:-.025em;margin-top:35px}
.home-contact .contact-link{display:inline-flex;align-items:center;gap:14px;margin-top:40px;color:#fff;border-color:rgba(232,229,223,.5)}
.home-contact .email-link{display:block;width:fit-content;margin:25px auto 0;color:#e0ddd6;font-size:14px}
@media(max-width:700px){.contact-page-layout h1{font-size:clamp(47px,13.5vw,69px)}}
@media(max-width:620px){.project-open{opacity:1;transform:none}.home-contact{min-height:590px;padding-top:85px;padding-bottom:90px}.home-contact h2{font-size:clamp(43px,11vw,66px)}.home-contact .contact-link{margin-top:29px}}
