@font-face{font-family:LMRoman;src:url('/assets/fonts/lmroman-display.woff') format('woff');font-display:swap}
@font-face{font-family:LMSans;src:url('/assets/fonts/lmsans-text.woff') format('woff');font-display:swap}

:root{--paper:#f3f1eb;--ink:#252d27;--green:#263b31;--muted:#62695f;--line:#c9ccc2;--serif:LMRoman,Georgia,serif;--sans:LMSans,Arial,sans-serif;--gutter:clamp(1.25rem,5vw,5.5rem);--space:clamp(4rem,8vw,8rem)}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:7rem}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
a{color:inherit}
button,input,select,textarea{font:inherit}
button{color:inherit;cursor:pointer}
button,a{touch-action:manipulation}
img{display:block;max-width:100%}
figure,p,h1,h2,h3,dl,dd{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05;letter-spacing:-.035em}
h1{font-size:clamp(3.4rem,7.7vw,8.2rem)}
h2{font-size:clamp(2.8rem,5.5vw,5.6rem)}
h3{font-size:clamp(1.7rem,2.6vw,2.8rem)}
em{font-style:italic}
p+p{margin-top:1.2rem}
svg{fill:none;stroke:currentColor;stroke-width:1.2}
.arrow{width:26px;height:18px;flex-shrink:0}
button:disabled{opacity:.6;cursor:wait}
[hidden]{display:none!important}
:focus-visible{outline:2px solid currentColor;outline-offset:5px}
::selection{background:#d9e0cc}
.shell{width:calc(100% - var(--gutter)*2);max-width:1440px;margin-inline:auto}
.section{padding-block:var(--space)}
.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;line-height:1.55;color:var(--muted)}
.lead{font-size:clamp(1.12rem,1.5vw,1.4rem);line-height:1.6;max-width:47ch}
.muted,.photo-note{color:var(--muted)}
.photo-note{font-size:.92rem}
.skip-link{position:fixed;top:-100px;left:1rem;z-index:100;background:var(--paper);padding:.8rem 1rem}
.skip-link:focus{top:1rem}
.site-header{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;min-height:94px}
.wordmark{font-family:var(--serif);font-size:2.05rem;letter-spacing:.02em;text-decoration:none;line-height:1.2}
.main-nav{display:flex;align-items:center;gap:clamp(1.2rem,2.4vw,3rem);font-size:.92rem}
.main-nav a{display:inline-flex;align-items:center;text-decoration:none;min-height:48px}
.main-nav a:hover,.main-nav a[aria-current]{text-decoration:underline;text-underline-offset:5px}
.main-nav .nav-cta{gap:1.6rem;border-bottom:1px solid var(--ink)}
.menu-toggle{border:1px solid var(--line);background:none;min-height:46px;padding:.6rem .9rem}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;background:var(--green);color:var(--paper);border:1px solid var(--green);min-height:56px;padding:1rem 1.3rem;font-size:.96rem;line-height:1.4;text-decoration:none;transition:background .2s}
.button:hover{background:#345241}
.button-light{background:var(--paper);color:var(--green)}
.button-outline{background:none;color:var(--ink);border-color:var(--line)}
.button-outline:hover{background:#e3e6dd}
.text-link{display:inline-flex;align-items:center;gap:1.6rem;font-size:.98rem;line-height:1.5;text-decoration:none;border-bottom:1px solid currentColor;min-height:44px;padding-block:.5rem}
.text-link .arrow,.button .arrow{transition:transform .25s}
.text-link:hover .arrow,.button:hover .arrow{transform:translateX(4px)}

.hero-editorial{display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;padding-top:3rem;padding-bottom:3rem;min-height:min(850px,calc(100svh - 94px))}
.hero-copy h1{font-size:clamp(3.9rem,6.9vw,7.5rem);line-height:.99;margin-top:1.5rem}
.hero-copy h1 em{color:var(--green)}
.hero-description{max-width:35ch;margin-top:2rem;font-size:1.08rem;color:var(--muted)}
.hero-copy .button{margin-top:2rem}
.hero-enquiry{display:block;width:fit-content;margin-top:1rem;font-size:.9rem;text-underline-offset:4px;min-height:44px;padding-block:.5rem}
.hero-figure .photo-link{aspect-ratio:.83}
.hero-figure img{object-position:50% 48%}
.hero-bottom{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;border-bottom:1px solid var(--line);padding-block:1rem 1.7rem;color:var(--muted);font-size:.85rem}
.hero-bottom a{display:flex;gap:1rem;align-items:center;text-decoration:none;min-height:44px}

.photo-link{display:block;position:relative;overflow:hidden;background:#e1e1d6;text-decoration:none}
.photo-link img{width:100%;height:100%;object-fit:cover;transform:translate3d(0,var(--drift,0),0);transition:filter .25s}
.photo-link:hover img{filter:brightness(.96)}
[data-parallax] img{height:calc(100% + 24px);margin-top:-12px}
.zoom-hint{position:absolute;bottom:.8rem;right:.8rem;padding:.3rem .55rem;line-height:1.4;font-size:.75rem;background:rgba(243,241,235,.94);color:var(--ink)}
figcaption{display:flex;justify-content:space-between;gap:1rem;font-size:.82rem;color:var(--muted);line-height:1.55;margin-top:.7rem}
.project-sequence{margin-top:3rem;background:#e8e9df}
.sequence-stage{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:5rem;padding-block:4rem}
.sequence-copy h2{font-size:clamp(3.2rem,6.5vw,7rem);margin-block:1.5rem}
.sequence-copy>p:not(.eyebrow){max-width:35ch;color:var(--muted)}
.sequence-copy>.text-link{margin-top:1.3rem}
.sequence-images{display:grid;gap:2.5rem}
.sequence-panel .photo-link{aspect-ratio:.95}
.sequence-controls{display:none;gap:1.25rem;margin-top:2rem}
.sequence-controls button{flex:1;display:flex;gap:.5rem;border:0;border-top:1px solid #7b8673;background:none;color:var(--muted);min-height:48px;padding:.7rem 0;font-size:.85rem;text-align:left}
.sequence-controls button[aria-pressed=true]{color:var(--ink);border-top-color:var(--ink)}
.sequence-caption{display:none}
.has-motion.has-sequences .project-sequence{height:210svh;position:relative}
.has-motion.has-sequences .sequence-stage{position:sticky;top:94px;height:calc(100svh - 94px);padding-block:2rem}
.has-motion.has-sequences .sequence-images{position:relative;height:min(70svh,790px);display:block}
.has-motion.has-sequences .sequence-panel{position:absolute;inset:0;display:flex;flex-direction:column;will-change:opacity}
.has-motion.has-sequences .sequence-panel .photo-link{height:calc(100% - 3rem);aspect-ratio:auto}
.has-motion.has-sequences .sequence-panel figcaption{display:none}
.has-motion.has-sequences .sequence-controls{display:flex}
.has-motion.has-sequences .sequence-caption{display:block;position:absolute;bottom:0;left:0;right:0;padding-top:.5rem;min-height:2.5rem;font-size:.85rem;color:var(--muted);background:#e8e9df}

.secondary-project{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,8vw,8rem);align-items:center;padding-block:var(--space)}
.secondary-project-image{width:78%;margin-inline:auto}
.secondary-project-image a{display:block;overflow:hidden;aspect-ratio:.82}
.secondary-project-image img{width:100%;height:100%;object-fit:cover}
.secondary-project-copy h2{margin-block:1.4rem}
.secondary-project-copy>p:not(.eyebrow){max-width:35ch;color:var(--muted)}
.secondary-project-copy .text-link{margin-top:1.5rem}
.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:3rem;align-items:start;margin-bottom:3rem}
.section-heading h2+.lead{margin-top:1.5rem}
.services-section,.process-section{background:var(--green);color:var(--paper)}
.services-section .eyebrow,.process-section .eyebrow{color:#d2d8cd}
.services-section .lead,.process-section .lead{color:#d2d8cd}
.service-row{display:grid;grid-template-columns:.13fr .9fr 1fr;gap:2rem;padding-block:2.4rem;border-top:1px solid #879181}
.service-row p{color:#e0e3da;max-width:43ch}
.service-index{font-size:.9rem;color:#d2d8cd}
.service-evidence{font-size:.88rem;margin-top:1rem}
.services-section .text-link{margin-top:2rem}
.craft-feature-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:6rem;align-items:end;margin-bottom:3rem}
.craft-feature-heading h2{margin-top:1.5rem}
.craft-feature-images{display:grid;grid-template-columns:.85fr 1.15fr;gap:6rem;align-items:start}
.craft-making .photo-link{aspect-ratio:.75}
.craft-fitted{margin-top:7rem}
.craft-fitted .photo-link{aspect-ratio:1.2}
.craft-feature>.text-link{margin-top:2rem}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:3rem 0 0;gap:3rem}
.process-grid li{border-top:1px solid #879181;padding-top:1.4rem}
.process-grid h3{margin-block:1.5rem}
.process-grid p:last-child{color:#d2d8cd}
.process-section .text-link{margin-top:2.5rem}
.contact-band{display:flex;justify-content:space-between;align-items:end;gap:3rem;padding-block:var(--space)}
.contact-band h2{margin-top:1.5rem}
.contact-band .button{margin-bottom:.4rem}
.site-footer{background:#e8e9df;padding-top:3rem}
.footer-top{display:grid;grid-template-columns:1.2fr 1fr auto;gap:3rem;align-items:center;padding-bottom:3rem}
.footer-top>.wordmark{font-size:clamp(4rem,10vw,10rem);letter-spacing:-.04em}
.footer-top p{font-size:1rem}
.footer-top div>a{display:inline-block;margin-top:.8rem;text-underline-offset:4px;min-height:44px}
.footer-top>.text-link{font-size:.85rem}
.footer-bottom{border-top:1px solid var(--line);padding-block:1rem 1.3rem;display:flex;justify-content:space-between;gap:2rem;font-size:.82rem}
.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap}
.footer-links a{display:flex;align-items:center;gap:.5rem;min-height:40px;text-decoration:none}
.footer-links .arrow{width:16px}

.page-intro{padding-top:clamp(3rem,6vw,6rem)}
.page-intro h1{margin-top:1.8rem}
.page-intro>.lead{margin-top:2rem;max-width:58ch}
.project-header{padding-top:2rem}
.breadcrumb{display:flex;gap:.8rem;font-size:.85rem;margin-bottom:3rem;flex-wrap:wrap}
.breadcrumb a{text-underline-offset:4px}
.project-header>.eyebrow{margin-bottom:1.3rem}
.project-heading-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:3rem;align-items:end;margin-bottom:3rem}
.project-heading-grid h1{font-size:clamp(3.4rem,6.8vw,7rem)}
.project-heading-grid>.lead{font-size:1.1rem;max-width:46ch}
.project-banner .photo-link{aspect-ratio:1.8}
.project-banner img{object-position:50% 58%}
.project-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;border-bottom:1px solid var(--line);padding-block:2rem}
.project-facts dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.6rem}
.project-facts dd{font-size:1rem}
.editorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem}
.editorial-grid h2{margin-top:1.5rem}
.editorial-copy{padding-top:.3rem;max-width:55ch}
.editorial-copy>.text-link{margin-top:1.5rem}
.editorial-copy>p:not(.lead){color:var(--muted)}
.story-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:5rem;align-items:end;margin-bottom:3rem}
.story-heading h2{margin-top:1.5rem}
.story-note{max-width:40ch;color:var(--muted)}
.transformation{background:#e8e9df}
.comparison{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.comparison .photo-link{aspect-ratio:.8}
.craft-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:5rem;align-items:start}
.craft-grid .wide .photo-link{aspect-ratio:1.1}
.craft-grid .tall{margin-top:5rem}
.craft-grid .tall .photo-link{aspect-ratio:.75}
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.photo-pair .photo-link{aspect-ratio:.8}
.frontage-study{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.frontage-study h2{margin-block:1.5rem}
.frontage-study p:not(.eyebrow){max-width:35ch;color:var(--muted)}
.frontage-study figure{max-width:580px}
.frontage-study img{width:100%;height:auto}
.project-next{border-top:1px solid var(--line);padding-block:2.5rem;display:flex;justify-content:space-between;align-items:center;gap:2rem}
.project-next div>a{display:inline-block;font-family:var(--serif);font-size:clamp(2rem,4.3vw,4rem);line-height:1.2;text-decoration:none;margin-top:1rem}
.project-next>a{padding:1rem}
.project-next .arrow{width:40px;height:28px}
.mc-banner{max-width:850px}
.mc-banner .photo-link{aspect-ratio:3/4}
.mc-banner img{object-fit:contain}
.mc-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem 2rem}
.mc-photo-grid .photo-link{aspect-ratio:3/4}
.mc-photo-grid img{object-fit:contain}
.project-cards{display:grid;grid-template-columns:1fr 1fr;gap:5rem}
.project-card-image{display:block;overflow:hidden;aspect-ratio:.95;background:#e8e9df}
.project-card-image img{width:100%;height:100%;object-fit:cover}
.project-card-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-top:1.5rem}
.project-card-heading h2{font-size:clamp(2rem,3vw,3rem)}
.project-card-heading a{text-decoration:none}
.project-card-heading span{font-size:.82rem;color:var(--muted)}
.project-cards article>p{margin-top:.8rem;color:var(--muted);max-width:42ch}
.about-detail{max-width:1000px}
.about-detail .photo-link{aspect-ratio:1.5}
.faq{max-width:1000px}
.faq h2{margin-block:1.5rem 2.5rem}
.faq details{border-top:1px solid var(--line);padding-block:1.2rem}
.faq summary{font-size:1.1rem;cursor:pointer;min-height:44px;padding-block:.5rem}
.faq details>p{max-width:65ch;margin-top:1rem;color:var(--muted)}

.contact-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:6rem;padding-block:var(--space)}
.contact-intro h1{font-size:clamp(3.6rem,6.2vw,6.5rem);margin-top:1.5rem}
.contact-intro .lead{margin-top:2rem;max-width:35ch}
.contact-address{display:block;overflow-wrap:anywhere;font-size:1.15rem;margin-top:2rem;text-underline-offset:5px;min-height:44px}
.contact-note{color:var(--muted);font-size:.95rem;margin-block:1rem 1.5rem}
.enquiry-form{border-top:1px solid var(--ink);padding-top:1.4rem}
.form-intro{font-size:1rem;margin-bottom:2rem;color:var(--muted)}
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.field{margin-bottom:1.7rem}
.field label{display:block;font-size:.92rem;margin-bottom:.4rem}
.optional{color:var(--muted);font-size:.85rem}
input,select,textarea{width:100%;font-size:1rem;background:transparent;color:var(--ink);border:0;border-bottom:1px solid #798673;padding:.9rem .25rem;min-height:50px;border-radius:0}
textarea{resize:vertical}
select{line-height:1.5}
.form-note{font-size:.88rem;color:var(--muted);margin-top:1.3rem}
.form-status{font-size:1rem;margin-top:1.3rem}
.draft-panel{margin-top:1.5rem;padding:1.4rem;background:#e8e9df}
.draft-panel button{margin-block:1rem}
.draft-panel label{display:block;font-size:.9rem}
.draft-panel textarea{background:var(--paper);padding:1rem;border:1px solid var(--line);font-size:.9rem}
.draft-panel .text-link{margin-top:1rem}
.form-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.text-page{max-width:900px;padding-block:var(--space)}
.text-page h1{font-size:clamp(3.5rem,6vw,6rem);margin-bottom:2.5rem}
.text-page h2{font-size:2rem;margin-block:2.5rem 1rem}
.text-page p{max-width:75ch}
.image-dialog{border:0;background:var(--paper);color:var(--ink);padding:1.25rem;width:min(1200px,94vw);max-height:95dvh;overflow:auto}
.image-dialog::backdrop{background:rgba(18,26,20,.88)}
.dialog-top,.dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:2rem}
.dialog-top{margin-bottom:1rem}
.dialog-top p{font-size:.9rem}
.dialog-close,.gallery-nav{border:1px solid var(--line);background:none;min-height:46px;min-width:46px;padding:.65rem .9rem}
.image-dialog img{width:100%;height:min(70dvh,800px);object-fit:contain;background:#e8e9df}
.dialog-bottom{margin-top:1rem}
.dialog-caption{font-size:.92rem;color:var(--muted)}
.gallery-controls{display:flex;gap:.7rem}
.gallery-nav .arrow{display:block;width:20px}
.gallery-nav.previous .arrow{transform:rotate(180deg)}
.gallery-count{margin-left:1rem;color:var(--muted)}

.has-motion [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.has-motion [data-reveal].in-view{opacity:1;transform:none}

@media(min-width:1700px){.hero-copy h1{font-size:7.5rem}
}
@media(max-width:1050px){.hero-copy h1{font-size:7.4vw}
.main-nav{gap:1.2rem;font-size:.85rem}
.sequence-stage{gap:3rem}
.section-heading{grid-template-columns:1fr 2fr;gap:2rem}
.contact-layout{gap:3rem}
.project-heading-grid{grid-template-columns:1fr;gap:1.5rem}
.craft-feature-heading{gap:3rem}
.project-cards{gap:3rem}
}

@media(max-width:760px){
:root{--gutter:1.25rem;--space:4.5rem}
html{scroll-padding-top:6rem}
.header-inner{min-height:78px;gap:1rem;flex-wrap:wrap}
.wordmark{font-size:1.75rem}
.main-nav{width:100%;flex-wrap:wrap;justify-content:flex-start;padding-bottom:1rem;gap:.5rem 1.5rem}
.main-nav .nav-cta{gap:1rem}
.js .main-nav{display:none}
.js .header-inner{height:78px;flex-wrap:nowrap}
.js .main-nav.is-open{display:flex;position:fixed;inset:78px 0 0;z-index:41;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;gap:0;background:var(--paper);padding:2rem var(--gutter);overflow:auto}
.js .main-nav.is-open>a{font-family:var(--serif);font-size:2.6rem;line-height:1.15;border-bottom:1px solid var(--line);padding-block:1rem}
.js .main-nav.is-open>.nav-cta{font-family:var(--sans);font-size:1.1rem;margin-top:1.5rem;justify-content:space-between}
.hero-editorial{display:flex;flex-direction:column;align-items:stretch;gap:2rem;padding-block:2.5rem 1.5rem;min-height:0}
.hero-copy h1{font-size:clamp(3.2rem,13.8vw,6rem);margin-top:1.4rem}
.hero-description{font-size:1rem;max-width:36ch;margin-top:1.5rem}
.hero-copy .button{margin-top:1.5rem}
.hero-enquiry{display:inline-flex;margin-top:.5rem;margin-left:1rem;align-items:center;vertical-align:middle}
.hero-figure .photo-link{aspect-ratio:.95}
.hero-bottom{font-size:.78rem;gap:1rem;align-items:flex-start}
.hero-bottom>span{max-width:20ch}
.hero-bottom .arrow{width:20px}
.sequence-stage{grid-template-columns:1fr;gap:2rem;padding-block:2.5rem}
.sequence-copy h2{font-size:3.4rem;margin-block:1.2rem}
.sequence-copy>p:not(.eyebrow){font-size:1rem;max-width:45ch}
.sequence-images{gap:2rem}
.has-motion.has-sequences .project-sequence{height:190svh}
.has-motion.has-sequences .sequence-stage{top:78px;height:calc(100svh - 78px);padding-block:1.25rem;grid-template-rows:auto 1fr;gap:1.25rem}
.has-motion.has-sequences .sequence-copy h2{font-size:2.5rem;margin-block:.7rem}
.has-motion.has-sequences .sequence-copy>p:not(.eyebrow){font-size:.92rem}
.has-motion.has-sequences .sequence-copy>.text-link{margin-top:.5rem;font-size:.88rem}
.has-motion.has-sequences .sequence-controls{margin-top:.7rem;gap:1rem}
.sequence-controls button{font-size:.83rem}
.has-motion.has-sequences .sequence-images{height:100%;min-height:0}
.has-motion.has-sequences .sequence-caption{font-size:.8rem}
.secondary-project{grid-template-columns:1fr;gap:2rem}
.secondary-project-image{width:86%;margin-left:0}
.secondary-project-copy h2{font-size:3rem}
.section-heading{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2rem}
.service-row{grid-template-columns:1.8rem 1fr;gap:1rem;padding-block:2rem}
.service-row h3{font-size:2rem}
.service-row>div{grid-column:2}
.service-row p{font-size:1rem}
.service-index{padding-top:.2rem}
.craft-feature-heading,.craft-feature-images{grid-template-columns:1fr;gap:2rem}
.craft-feature-heading h2{font-size:3.3rem}
.craft-making{width:80%}
.craft-fitted{margin:0}
.process-grid{grid-template-columns:1fr;gap:2.5rem}
.process-grid h3{font-size:2rem;margin-block:1.1rem}
.contact-band{flex-direction:column;align-items:flex-start;gap:2rem}
.contact-band h2{font-size:3.2rem}
.footer-top{grid-template-columns:1fr 1fr;gap:1rem}
.footer-top>.wordmark{grid-column:1/-1;font-size:18vw}
.footer-top>div{font-size:.92rem}
.footer-top>.text-link{justify-self:end;font-size:.85rem}
.footer-bottom{flex-direction:column;gap:.6rem;font-size:.85rem}
.footer-links{gap:1.2rem}
.page-intro h1{font-size:clamp(3.1rem,12vw,5.5rem)}
.page-intro>.lead{font-size:1.1rem}
.project-heading-grid h1{font-size:clamp(3rem,12.5vw,5rem)}
.project-heading-grid>.lead{font-size:1.05rem}
.project-banner .photo-link{aspect-ratio:1.05}
.project-facts{grid-template-columns:1fr 1fr;gap:1.5rem}
.project-facts dt{font-size:.76rem}
.project-facts dd{font-size:.95rem}
.editorial-grid,.story-heading,.craft-grid,.frontage-study{grid-template-columns:1fr;gap:2rem}
.editorial-grid h2,.story-heading h2{font-size:3rem}
.comparison{grid-template-columns:1fr;gap:2rem}
.comparison .photo-link{aspect-ratio:3/4}
.photo-pair{grid-template-columns:1fr;gap:2rem}
.craft-grid .tall{margin:0;width:80%;margin-left:auto}
.frontage-study figure{max-width:none}
.mc-photo-grid{grid-template-columns:1fr;gap:2rem}
.project-cards{grid-template-columns:1fr;gap:3.5rem}
.project-card-heading h2{font-size:2.1rem}
.project-card-heading span{font-size:.8rem}
.about-detail .photo-link{aspect-ratio:1}
.contact-layout{grid-template-columns:1fr;gap:3rem}
.contact-intro h1{font-size:3.6rem}
.contact-intro .lead{font-size:1.1rem}
.form-two{gap:1rem}
.image-dialog{padding:1rem}
.dialog-top,.dialog-bottom{gap:1rem}
.dialog-caption{font-size:.88rem}
.dialog-top p{font-size:.8rem}
.image-dialog img{height:65dvh}
.text-page h1{font-size:3.5rem}
}

@media(max-width:390px){.form-two{grid-template-columns:1fr;gap:0}
.hero-enquiry{display:block;margin-left:0}
.has-motion.has-sequences .sequence-copy h2{font-size:2.3rem}
.has-motion.has-sequences .sequence-copy>p:not(.eyebrow){font-size:.9rem}
.project-card-heading{align-items:flex-start;flex-direction:column;gap:.4rem}
.footer-top{grid-template-columns:1fr}
.footer-top>.text-link{justify-self:start}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
.photo-link img{transform:none!important}
.has-motion [data-reveal]{opacity:1;transform:none}
.has-motion.has-sequences .project-sequence{height:auto}
.has-motion.has-sequences .sequence-stage{position:relative;top:auto;height:auto}
.has-motion.has-sequences .sequence-images{height:auto;display:grid;gap:2rem}
.has-motion.has-sequences .sequence-panel{position:relative;inset:auto;opacity:1!important;transform:none!important}
.has-motion.has-sequences .sequence-panel .photo-link{height:auto;aspect-ratio:.9}
.has-motion.has-sequences .sequence-panel figcaption{display:flex}
.has-motion.has-sequences .sequence-controls,.has-motion.has-sequences .sequence-caption{display:none}
.text-link:hover .arrow,.button:hover .arrow{transform:none}
}


.client-feedback{background:#e8e9df}
.client-feedback h2{margin-block:1.5rem 3rem}
.testimonial-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:3rem}
.testimonial-grid blockquote{margin:0;border-top:1px solid var(--line);padding-top:2rem}
.testimonial-grid blockquote>p{font-family:var(--serif);font-size:clamp(1.8rem,3vw,3rem);line-height:1.3}
.testimonial-grid blockquote>footer{font-size:.95rem;margin-top:1.6rem;color:var(--muted)}


/* Exterior-led architectural opening */
.arrival{display:grid;grid-template-columns:1.32fr 1fr;gap:clamp(2.5rem,5vw,5.5rem);align-items:center;padding-block:2rem 2.5rem}
.arrival-media{min-width:0}
.arrival-media>img{width:100%;height:clamp(520px,73svh,790px);object-fit:cover;object-position:50% 0}
.arrival-media figcaption{font-size:.82rem;align-items:start;margin-top:.85rem}
.arrival-media figcaption>a{display:inline-flex;gap:1rem;align-items:center;text-decoration:none;color:var(--ink);min-height:32px}
.arrival-media figcaption .arrow{width:20px}
.arrival-media figcaption>span{max-width:24ch;text-align:right}
.arrival-copy{padding-bottom:2rem}
.arrival-copy h1{font-size:clamp(3.6rem,5.5vw,6.7rem);line-height:1.02;margin-top:1.6rem;letter-spacing:-.04em}
.arrival-copy h1 em{color:#57684f}
.arrival-description{max-width:32ch;font-size:1.08rem;line-height:1.65;color:var(--muted);margin-top:1.8rem}
.arrival-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;margin-top:2rem}
.arrival-actions .button{gap:1.5rem}
.arrival-actions .text-link{font-size:.9rem;border-bottom:0}
.arrival-note{display:grid;grid-template-columns:.8fr 1.2fr;gap:1.5rem;border-top:1px solid var(--line);padding-top:1.5rem;margin-top:2.2rem;font-size:.85rem;color:var(--muted);line-height:1.55}
.arrival-note>span{font-family:var(--serif);font-size:1.3rem;line-height:1.15;color:var(--ink)}

.service-rail{display:grid;grid-template-columns:.8fr 1fr 1fr 1.15fr;gap:2rem;padding-block:1.3rem;border-block:1px solid var(--line);align-items:center}
.service-rail>span{text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;color:var(--muted)}
.service-rail>a{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;text-decoration:none;font-size:.98rem}
.service-rail .arrow{width:20px}
.opening-statement{display:grid;grid-template-columns:1.1fr 1fr;gap:2rem 5rem;align-items:end}
.opening-statement>.eyebrow{grid-column:1/-1}
.opening-statement h2{font-size:clamp(2.6rem,4.2vw,5rem);line-height:1.12}
.opening-statement h2 em{color:#57684f}
.opening-statement .lead{font-size:1.15rem;max-width:42ch}
.opening-statement .text-link{margin-top:1.5rem}

.page-breadcrumb{display:flex;flex-wrap:wrap;gap:.8rem;padding-top:1.7rem;font-size:.85rem;color:var(--muted)}
.page-breadcrumb a{text-underline-offset:4px}
.page-breadcrumb+.page-intro{padding-top:2.5rem}
.nav-parent-current{text-decoration:underline!important;text-underline-offset:5px}
.menu-contact{display:none!important}
.skip-enquiry:focus{top:4.5rem}
.motion-toggle{border:0;background:none;font-size:inherit;min-height:40px;padding:0;text-decoration:underline;text-underline-offset:4px}
.motion-toggle:disabled{cursor:default;opacity:1;color:var(--muted)}
.main-nav.is-open{overscroll-behavior:contain}
.site-header.is-scrolled{box-shadow:0 4px 24px rgba(27,43,31,.04)}

.project-jumps{display:flex;gap:2.2rem;align-items:center;overflow-x:auto;overscroll-behavior-x:contain;border-block:1px solid var(--line);padding-block:.6rem;margin-bottom:2.5rem;scroll-padding-inline:.5rem}
.project-jumps a{white-space:nowrap;text-decoration:none;font-size:.88rem;min-height:44px;display:flex;align-items:center;border-bottom:1px solid transparent}
.project-jumps a:hover{border-bottom-color:var(--ink)}
.project-jumps a:focus-visible{outline-offset:-2px}
.project-card-link{display:inline-flex;align-items:center;gap:1.4rem;margin-top:1rem;min-height:44px;font-size:.9rem;text-decoration:none;border-bottom:1px solid var(--line)}
.project-card-link .arrow{width:20px}
.work-index .project-cards{grid-template-columns:1.2fr .85fr;gap:6rem;align-items:start}
.work-index .project-cards article:nth-child(2){margin-top:8rem}
.work-index .project-cards article:first-child .project-card-image{aspect-ratio:.85}
.work-index .project-cards article:nth-child(2) .project-card-image{aspect-ratio:.78}

.scope-breakdown{padding-top:1.5rem}
.scope-breakdown h2{margin-block:1.5rem 3rem}
.scope-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.scope-grid article{border-top:1px solid var(--line);padding-top:1rem}
.scope-grid article>span{font-size:.8rem;color:var(--muted)}
.scope-grid h3{font-size:2rem;margin-block:1.3rem 1rem}
.scope-grid p{font-size:.98rem;color:var(--muted)}
.scope-grid a{display:inline-flex;min-height:44px;align-items:center;font-size:.9rem;margin-top:1rem;text-underline-offset:4px}
.material-note{border-top:1px solid var(--line);padding-top:1rem;margin-top:2rem;font-size:.9rem;color:var(--muted)}
.comparison-choices{display:flex;gap:.6rem;margin-bottom:1.5rem;flex-wrap:wrap}
.comparison-choices button{border:1px solid var(--line);background:none;min-height:44px;padding:.6rem 1rem;font-size:.9rem}
.comparison-choices button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:var(--paper)}
.comparison[data-view=before],.comparison[data-view=later]{grid-template-columns:minmax(0,820px);justify-content:center}
.comparison[data-view=before] figure:last-child,.comparison[data-view=later] figure:first-child{display:none}
.comparison[data-view=before] .photo-link,.comparison[data-view=later] .photo-link{aspect-ratio:1.05}
.gallery-group-title{font-size:2.5rem;margin-block:2.5rem 1.5rem}
.frontage-study{border-block:1px solid var(--line)}
.frontage-study figure{background:#e8e9df;padding:1rem}
.frontage-study figcaption{font-size:.86rem}
.mc-intro{display:grid;grid-template-columns:1fr .8fr;gap:5rem;align-items:center}
.mc-intro .mc-banner{width:100%;max-width:550px;margin:0}
.mc-intro .project-facts{grid-template-columns:1fr 1fr;padding-block:2rem;border-top:1px solid var(--line);gap:2.5rem}
.mc-intro .photo-link{max-height:600px;aspect-ratio:3/4}
.starting-points{padding-top:0}
.starting-points h2{margin-block:1.5rem 3rem}
.starting-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem}
.starting-grid>a{display:grid;grid-template-columns:1fr auto;gap:1rem;text-decoration:none;border-top:1px solid var(--line);padding-top:1.5rem}
.starting-grid span{font-family:var(--serif);font-size:2rem;line-height:1.1}
.starting-grid p{grid-column:1/-1;color:var(--muted);font-size:1rem;margin:0}
.starting-grid .arrow{grid-row:1;grid-column:2}
.roles{padding-top:0}
.roles h2{margin-block:1.5rem 3rem}
.roles dl>div{display:grid;grid-template-columns:1fr 1fr;gap:3rem;border-top:1px solid var(--line);padding-block:1.5rem}
.roles dt{font-family:var(--serif);font-size:1.8rem;line-height:1.2}
.roles dd{font-size:1.05rem;color:var(--muted)}

.context-note{padding:1rem;background:#e8e9df;border-left:2px solid var(--green);margin-bottom:1.5rem;font-size:.95rem}
.required-note{font-size:.9rem;color:var(--muted);margin-bottom:1rem}
.field-meta{display:flex;justify-content:space-between;gap:1rem;margin-top:.6rem;color:var(--muted);font-size:.83rem;line-height:1.5}
.field-meta p{max-width:36ch}
.field-meta output{white-space:nowrap}
.error-summary{border:2px solid #8c382c;padding:1.2rem;margin-bottom:1.7rem;background:var(--paper)}
.error-summary>p{font-weight:600;font-size:1rem}
.error-summary ul{padding-left:1.25rem;margin-block:.8rem 0}
.error-summary a{display:inline-block;min-height:32px;text-underline-offset:3px;font-size:.95rem}
input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-bottom:2px solid #8c382c}
.offline-note{padding:.8rem 1rem;border:1px solid var(--line);margin-top:1rem;font-size:.92rem}
.enquiry-form[aria-busy=true]{cursor:progress}
.enquiry-form [type=submit]:disabled{cursor:wait}
.form-status:empty{margin:0}
.motion-toggle,.gallery-zoom{touch-action:manipulation}

.gallery-viewport{position:relative;display:grid;place-items:center;height:min(61dvh,760px);overflow:auto;overscroll-behavior:contain;background:#e8e9df}
.image-dialog .gallery-viewport>img{width:100%;height:100%;object-fit:contain}
.gallery-viewport.is-zoomed{display:block}
.image-dialog .gallery-viewport.is-zoomed>img{width:auto;max-width:none;height:auto;min-width:100%;object-fit:initial}
.gallery-load{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:.7rem 1rem;background:rgba(243,241,235,.95);font-size:.9rem;white-space:nowrap}
.gallery-zoom{border:1px solid var(--line);background:none;min-width:64px;min-height:46px;padding:.6rem .85rem;font-size:.9rem}
.gallery-zoom[aria-pressed=true]{background:var(--green);color:var(--paper)}
.gallery-extras{margin-top:.7rem;font-size:.85rem;line-height:1.5}
.gallery-original{display:inline-flex;align-items:center;min-height:36px;text-underline-offset:4px}
.gallery-error{color:#8c382c;margin-top:.5rem}
.gallery-thumbnails{display:flex;gap:.6rem;overflow-x:auto;overscroll-behavior-x:contain;padding:.75rem 2px .3rem;scroll-padding-inline:.5rem}
.gallery-thumb{padding:0;background:none;border:2px solid transparent;min-width:60px;width:60px;height:66px;flex-shrink:0}
.gallery-thumb>img{width:100%;height:100%;object-fit:cover}
.gallery-thumb[aria-pressed=true]{border-color:var(--ink)}
.gallery-thumb:focus-visible{outline-offset:1px}
body.photo-open{overflow:hidden}
.gallery-count{white-space:nowrap}
.gallery-controls{flex-wrap:wrap;justify-content:flex-end}
.gallery-viewport:focus-visible{outline-offset:-3px}

:root{--focus:var(--green)}
.services-section,.process-section{--focus:var(--paper)}
:focus-visible{outline:2px solid var(--focus);outline-offset:5px}
.project-jumps a:focus-visible{outline-offset:-2px}
#enquiry-form{scroll-margin-top:7rem}

@media(max-width:1050px){.arrival{grid-template-columns:1.2fr 1fr;gap:2rem}
.arrival-copy h1{font-size:5.6vw}
.arrival-note{gap:1rem}
.arrival-description{font-size:1rem}
.arrival-actions .button{font-size:.9rem;gap:1rem;padding-inline:1rem}
.service-rail{gap:1rem}
.service-rail>a{font-size:.9rem}
.opening-statement{gap:2rem 3rem}
.scope-grid{grid-template-columns:1fr 1fr}
.mc-intro{gap:3rem}
.work-index .project-cards{gap:3rem}
.work-index .project-cards article:nth-child(2){margin-top:5rem}
}

@media(max-width:760px){.arrival{grid-template-columns:1fr;gap:0;padding-block:1.5rem 2rem}
.arrival-copy{display:contents}
.arrival-copy>.eyebrow{grid-row:1;margin-top:.4rem}
.arrival-copy h1{grid-row:2;font-size:clamp(3.25rem,12vw,5.5rem);margin-block:1.1rem 1.7rem;line-height:1.02}
.arrival-media{grid-row:3}
.arrival-media>img{height:clamp(420px,65svh,660px);object-position:50% 0}
.arrival-media figcaption{font-size:.8rem}
.arrival-media figcaption>span{max-width:22ch}
.arrival-description{grid-row:4;margin-top:1.7rem;max-width:40ch;font-size:1.05rem}
.arrival-actions{grid-row:5;margin-top:1.3rem;flex-direction:row;flex-wrap:wrap;gap:.7rem 1.2rem;align-items:center}
.arrival-actions .button{font-size:.94rem;gap:1.3rem}
.arrival-note{display:none}
.service-rail{display:flex;gap:1.6rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-padding-inline:.5rem;padding-block:.9rem}
.service-rail>span,.service-rail>a{flex-shrink:0;white-space:nowrap}
.service-rail>a{font-size:.9rem}
.service-rail>a:focus-visible{outline-offset:-2px}
.opening-statement{grid-template-columns:1fr;gap:1.5rem}
.opening-statement h2{font-size:clamp(2.6rem,9.8vw,4.5rem)}
.opening-statement>.eyebrow{grid-column:auto}
.opening-statement .lead{font-size:1.1rem}
.js .main-nav.is-open{padding-bottom:calc(2rem + env(safe-area-inset-bottom));overscroll-behavior:contain;max-height:calc(100dvh - 78px)}
.js .main-nav.is-open .menu-contact{display:flex!important;font-family:var(--sans);font-size:1.1rem;margin-top:1.5rem;border:0;overflow-wrap:anywhere}
.footer-links{gap:.5rem 1.2rem}
.project-jumps{gap:1.6rem;margin-bottom:1.8rem}
.project-jumps a{font-size:.86rem}
.work-index .project-cards{grid-template-columns:1fr;gap:3.5rem}
.work-index .project-cards article:nth-child(2){margin:0}
.work-index .project-cards article:first-child .project-card-image{aspect-ratio:.95}
.work-index .project-cards article:nth-child(2) .project-card-image{aspect-ratio:.95}
.scope-grid{grid-template-columns:1fr 1fr;gap:2rem 1.2rem}
.scope-grid h3{font-size:1.7rem}
.scope-grid p{font-size:.95rem}
.scope-grid a{font-size:.85rem}
.scope-breakdown h2{font-size:2.8rem}
.mc-intro{grid-template-columns:1fr;gap:1.5rem}
.mc-intro .mc-banner{max-width:none}
.mc-intro .photo-link{max-height:480px;aspect-ratio:auto;height:65svh}
.mc-intro .project-facts{margin:0;gap:1.5rem}
.gallery-group-title{font-size:2rem}
.starting-grid{grid-template-columns:1fr;gap:2rem}
.roles dl>div{grid-template-columns:1fr;gap:.8rem}
.roles dt{font-size:1.7rem}
.roles dd{font-size:1rem}
.field-meta{font-size:.81rem;gap:.7rem}
.field-meta p{max-width:27ch}
.image-dialog{max-height:95dvh}
.gallery-viewport{height:55dvh}
.dialog-bottom{align-items:flex-start}
.dialog-caption{font-size:.86rem}
.gallery-controls{gap:.4rem}
.gallery-zoom{font-size:.85rem;padding:.5rem .65rem}
.gallery-nav{padding:.5rem}
.gallery-thumb{width:52px;min-width:52px;height:58px}
.gallery-extras{font-size:.83rem}
.frontage-study figure{padding:.7rem}
.frontage-study figcaption{font-size:.8rem}
}

@media(max-width:390px){.arrival-copy h1{font-size:12vw}
.arrival-media figcaption{flex-direction:column;gap:.1rem}
.arrival-media figcaption>span{text-align:left;max-width:none}
.arrival-actions{flex-direction:column;align-items:flex-start}
.scope-grid{grid-template-columns:1fr}
.dialog-bottom{flex-direction:column}
.gallery-controls{justify-content:flex-start}
.gallery-viewport{height:48dvh}
}

@media(forced-colors:active){.button,.text-link,.menu-toggle,.gallery-thumb,.gallery-zoom,.gallery-nav,.motion-toggle,.comparison-choices button{border:1px solid ButtonText}
.button,.comparison-choices button[aria-pressed=true],.gallery-zoom[aria-pressed=true]{background:ButtonFace;color:ButtonText}
:focus-visible{outline:3px solid Highlight}
.photo-link,.arrival-media>img,.project-card-image{border:1px solid CanvasText}
.zoom-hint{background:Canvas;color:CanvasText}
.error-summary,input[aria-invalid=true],textarea[aria-invalid=true]{border-color:CanvasText}
}

@media print{html{scroll-behavior:auto}
body{background:white;color:black;font-size:11pt}
.shell{width:100%;max-width:none}
.site-header{position:static;box-shadow:none;border:0}
.header-inner{min-height:0}
.main-nav,.menu-toggle,.skip-link,.motion-toggle,.contact-band,.enquiry-form,.service-rail,.project-jumps,.zoom-hint,.image-dialog,.comparison-choices,.sequence-controls,.sequence-caption,.button{display:none!important}
.section{padding-block:1.3cm}
.arrival{grid-template-columns:1fr 1fr;gap:1cm}
.arrival-copy{display:block}
.arrival-copy h1{font-size:35pt}
.arrival-media>img{height:12cm;object-fit:contain}
.arrival-note{display:none}
.project-cards,.editorial-grid,.photo-pair,.scope-grid,.craft-grid{gap:1cm}
.work-index .project-cards article:nth-child(2),.craft-fitted,.craft-grid .tall{margin:0}
.has-motion [data-reveal]{opacity:1!important;transform:none!important}
.has-motion.has-sequences .project-sequence{height:auto}
.has-motion.has-sequences .sequence-stage{position:static;height:auto;display:block}
.has-motion.has-sequences .sequence-images{display:grid;height:auto;grid-template-columns:repeat(3,1fr);gap:.4cm}
.has-motion.has-sequences .sequence-panel{position:static;opacity:1!important;transform:none!important;inset:auto}
.has-motion.has-sequences .sequence-panel .photo-link{height:auto;aspect-ratio:.7}
.has-motion.has-sequences .sequence-panel figcaption{display:flex}
.comparison[data-view] figure{display:block!important}
.comparison{grid-template-columns:1fr 1fr!important}
.site-footer{background:none;border-top:1px solid #777;padding-top:.5cm}
.footer-top{grid-template-columns:1fr 1fr}
.footer-top>.wordmark{font-size:34pt}
.footer-top>.text-link,.footer-links{display:none}
.footer-bottom{border:0;padding:0}
.services-section,.process-section{background:none;color:black}
.services-section p,.process-section p,.eyebrow,.muted{color:#333!important}
h2{font-size:27pt}
h3{font-size:18pt}
figure,article,.project-facts{break-inside:avoid}
img{max-height:17cm;object-fit:contain!important}
}

