@font-face{font-family:Barlow;src:url('/assets/fonts/barlow-condensed-bold.woff2') format('woff2');font-weight:700;font-display:swap}@font-face{font-family:Plex;src:url('/assets/fonts/ibm-plex-sans.woff2') format('woff2');font-weight:100 700;font-display:swap}
:root{--ink:#202421;--paper:#f4f2eb;--orange:#e65a24;--steel:#7c8581;--concrete:#d7dad4;--muted:#525b55;--line:rgba(32,36,33,.22);--wrap:1320px;--space:clamp(24px,5vw,80px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Plex,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%;height:auto}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:Barlow,'Arial Narrow',sans-serif;font-weight:700;line-height:1.02;letter-spacing:-.018em}h1{font-size:clamp(48px,5.75vw,84px)}h2{font-size:clamp(38px,4.3vw,62px)}h3{font-size:30px}p+p{margin-top:18px}ul{padding-left:21px}::selection{background:var(--orange);color:var(--ink)}:focus-visible{outline:3px solid var(--orange);outline-offset:5px}.wrap{width:min(var(--wrap),calc(100% - var(--space)*2));margin-inline:auto}.section{padding-block:100px}.eyebrow{display:flex;align-items:center;gap:18px;font-family:Barlow,sans-serif;text-transform:uppercase;letter-spacing:.09em;font-size:18px;font-weight:700;line-height:1.3;margin-bottom:26px}.eyebrow:before{content:'';width:36px;height:2px;background:var(--orange);flex:none}.dark{background:var(--ink);color:var(--paper)}.dark .eyebrow{color:var(--orange)}.lead{font-size:clamp(18px,1.5vw,22px);line-height:1.6;max-width:650px}.muted{color:var(--muted)}.dark .muted{color:#c1c7bf}.button{display:inline-flex;justify-content:center;align-items:center;gap:36px;padding:16px 24px;background:var(--orange);color:var(--ink);border:1px solid var(--orange);font-weight:600;font-size:16px;line-height:1.4;min-height:54px;transition:background .2s,color .2s}.button:hover{background:#f57843;border-color:#f57843}.button span{font-size:25px;line-height:1}.button.secondary{background:transparent;border-color:var(--line);color:var(--ink)}.button.secondary:hover{background:var(--ink);color:var(--paper)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid currentColor;padding-bottom:5px;font-size:15px;font-weight:600}.text-link:hover{color:var(--orange)}.text-link span{font-size:24px;line-height:1}.actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:34px}.skip-link{position:fixed;left:20px;top:-100px;padding:12px 20px;background:var(--paper);color:var(--ink);z-index:100}.skip-link:focus{top:16px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.header{position:sticky;top:0;z-index:30;background:var(--ink);color:var(--paper);border-bottom:1px solid #6b716b}.header-inner{height:91px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{width:252px;flex:none}.brand img{width:100%;height:60px;object-fit:contain}.navigation{display:flex;align-items:center;gap:30px;font-family:Barlow,sans-serif;font-size:21px;line-height:1}.navigation>a{padding-block:12px}.navigation>a:hover,.navigation>a[aria-current=page]{color:var(--orange)}.navigation .button{padding:13px 19px;min-height:47px;font-family:Plex,sans-serif;font-size:14px}.navigation .button:hover{color:var(--ink)}.menu-toggle{display:none;border:0;color:var(--paper);background:transparent;width:46px;height:46px;position:relative}.menu-toggle span{position:absolute;left:10px;right:10px;height:2px;background:currentColor;top:17px}.menu-toggle span+span{top:27px}.menu-toggle[aria-expanded=true] span{top:22px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] span+span{transform:rotate(-45deg)}
.hero{position:relative;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.03fr 1fr;min-height:650px}.hero-copy{position:relative;padding:69px 30px 70px 0;z-index:2}.hero-copy h1{max-width:670px}.hero-copy .lead{max-width:480px;margin-top:26px}.hero-image{position:relative;margin-right:calc(var(--space)*-1);overflow:hidden}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:59% center}.hero-image:before{position:absolute;inset:0;content:'';background:linear-gradient(90deg,var(--ink) 0%,color-mix(in srgb,var(--ink) 94%,transparent) 8%,color-mix(in srgb,var(--ink) 72%,transparent) 19%,color-mix(in srgb,var(--ink) 36%,transparent) 32%,color-mix(in srgb,var(--ink) 10%,transparent) 44%,transparent 54%);z-index:1}.hero-image .image-note{position:absolute;bottom:24px;right:28px;z-index:2;padding:7px 12px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:rgba(32,36,33,.8);color:var(--paper)}.capabilities{border-top:1px solid #858c83;padding-block:22px}.capabilities .wrap{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}.capabilities p{text-align:center;font-family:Barlow,sans-serif;font-size:23px;line-height:1.2;margin:0}.capabilities p+p{border-left:1px solid #a0a89e}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:42px}.section-head h2{max-width:760px}.section-head .text-link{flex-shrink:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.service-card{display:block}.service-card .image-frame{overflow:hidden;aspect-ratio:1.55;background:var(--concrete)}.service-card img{height:100%;width:100%;object-fit:cover;transition:transform .5s}.service-card:hover img{transform:scale(1.035)}.service-label{display:flex;align-items:baseline;gap:15px;margin-top:20px}.service-label>span{color:#ad3b10;font-family:Barlow;font-size:22px}.service-label h3{font-size:29px}.service-card p{font-size:14px;margin-top:13px;color:var(--muted)}.all-services{margin-top:35px;border-top:1px solid var(--line);padding-top:22px;display:flex;flex-wrap:wrap;gap:12px 30px}.all-services a{font-size:14px}.all-services a:hover{text-decoration:underline}.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.history{border-top:1px solid var(--line)}.history-mark{position:relative;min-height:350px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line)}.history-mark .year{font-family:Barlow;font-size:clamp(110px,15vw,215px);line-height:.85;letter-spacing:-.03em}.history-mark .year span{color:var(--orange)}.history-mark p{margin-top:25px;max-width:340px}.history-copy h2{margin-bottom:28px}.history-copy .text-link{margin-top:28px}.projects-section .section-head{margin-bottom:44px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px 32px}.project-card .image-frame{aspect-ratio:1.6;overflow:hidden;background:#3e443e}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.project-card:hover img{transform:scale(1.035)}.project-meta{display:flex;justify-content:space-between;gap:18px;margin-top:20px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#bcc5bb}.project-card h3{font-size:35px;margin-top:9px}.project-card h3 span{float:right;color:var(--orange)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:48px}.process-item{border-top:1px solid var(--line);padding-top:25px}.process-item .number{font-family:Barlow;font-size:20px;color:#ad3b10;margin-bottom:18px}.process-item h3{margin-bottom:16px}.process-item p{font-size:15px;color:var(--muted)}.coverage{background:var(--concrete)}.coverage .split{align-items:start}.coverage h2{max-width:560px}.province-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin-top:22px}.province-grid span{border-bottom:1px solid var(--line);padding:10px 0}.secondary-services{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);gap:60px;padding-top:35px}.secondary-service{display:grid;grid-template-columns:55px 1fr;gap:20px}.secondary-service .icon{font-size:40px;line-height:1.2;color:#ad3b10}.secondary-service h3{margin-bottom:14px}.secondary-service .text-link{margin-top:18px}.contact-band{background:var(--orange);padding-block:64px}.contact-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:36px}.contact-band h2{max-width:700px}.contact-band .button{background:var(--ink);color:var(--paper);border-color:var(--ink);flex-shrink:0}.contact-band .button:hover{background:var(--paper);color:var(--ink)}.footer{padding:65px 0 28px}.footer-top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:60px;padding-bottom:48px}.footer-logo{width:270px;max-height:125px;object-fit:contain;object-position:left}.footer p{font-size:14px;color:#c0c7be;margin-top:20px}.footer h3{font-size:23px;margin-bottom:22px}.footer-links{display:flex;flex-direction:column;gap:8px;font-size:14px}.footer a:hover{color:var(--orange)}.footer-phone{font-family:Barlow;font-size:34px;line-height:1.2}.footer-email{font-size:14px;overflow-wrap:anywhere}.footer-bottom{border-top:1px solid #545e53;padding-top:22px;display:flex;justify-content:space-between;gap:24px;font-size:11px;color:#bdc4bc}.footer-bottom p{font-size:11px;margin:0}.footer-bottom>div{display:flex;gap:24px}.mobile-call{display:none}
.breadcrumb{font-size:12px;color:var(--muted);padding-top:25px;padding-bottom:25px}.breadcrumb a{text-decoration:underline;text-underline-offset:4px}.breadcrumb span{margin-inline:10px;opacity:.6}.page-intro{padding-block:35px 75px}.page-intro h1{max-width:970px}.page-intro .lead{margin-top:26px;max-width:800px}.service-hero{display:grid;grid-template-columns:1.05fr 1fr;gap:65px;align-items:center;padding-block:32px 72px}.service-hero h1{font-size:clamp(46px,5.1vw,74px)}.service-hero .lead{margin-top:24px;font-size:19px}.service-hero-image{height:485px;width:100%;object-fit:cover}.service-hero .eyebrow{margin-bottom:22px}.content-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:90px;align-items:start}.content-grid h2{margin-bottom:25px}.content-grid p{max-width:690px}.facts-list{list-style:none;margin:0;padding:0}.facts-list li{border-bottom:1px solid var(--line);padding:16px 0 16px 30px;position:relative}.facts-list li:first-child{border-top:1px solid var(--line)}.facts-list li:before{content:'↗';position:absolute;left:0;color:#ad3b10}.quote-panel{background:var(--concrete);padding:35px}.quote-panel h3{margin-bottom:17px}.quote-panel li{font-size:14px;margin-bottom:8px}.faq{max-width:900px;margin-top:38px}.faq details{border-top:1px solid var(--line);padding:22px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{font-family:Barlow;font-size:26px;line-height:1.2;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';color:#ad3b10;font-family:Plex;font-weight:400}.faq details[open] summary:after{content:'−'}.faq details p{margin-top:18px;max-width:790px;color:var(--muted)}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px}.filters button{padding:10px 22px;min-height:44px;background:transparent;border:1px solid #727c72;color:var(--paper);font-size:14px}.filters button[aria-pressed=true]{background:var(--orange);color:var(--ink);border-color:var(--orange)}[hidden]{display:none!important}.project-details{display:grid;grid-template-columns:230px 1fr;gap:90px}.project-details aside{border-top:1px solid var(--line);padding-top:20px}.project-details dt{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.project-details dd{margin:5px 0 25px;font-size:17px}.project-story{max-width:740px}.project-story h2{font-size:40px;margin-bottom:18px}.project-story p+h2{margin-top:40px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:65px}.gallery img{width:100%;height:440px;object-fit:cover}.gallery a{position:relative}.gallery a:after{content:'↗';position:absolute;right:15px;bottom:15px;width:42px;height:42px;background:var(--paper);color:var(--ink);display:grid;place-items:center;font-size:22px}dialog{width:min(1100px,95vw);max-height:95vh;padding:50px 20px 15px;border:0;background:var(--ink);color:var(--paper)}dialog::backdrop{background:rgba(0,0,0,.88)}dialog figure{margin:0}dialog img{width:100%;height:70vh;object-fit:contain}dialog figcaption{text-align:center;font-size:13px;margin-top:12px}dialog [data-close]{position:absolute;right:15px;top:5px;background:none;color:var(--paper);font-size:28px;border:0;width:44px;height:44px}.dialog-controls{display:flex;justify-content:center;gap:10px;margin-top:10px}.dialog-controls button{background:none;border:1px solid #6c766c;color:var(--paper);padding:8px 12px;min-height:44px;font-size:14px;white-space:nowrap}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}.contact-grid h2{font-size:43px;margin-bottom:22px}.contact-info{padding-top:20px}.contact-info .footer-phone{font-size:48px}.contact-info address{font-style:normal;margin-top:32px}.contact-info small{color:var(--muted);display:block;margin-top:8px;font-size:12px}.enquiry-form{border-top:3px solid var(--orange);padding-top:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500}.field.full{grid-column:1/-1}.field input,.field select,.field textarea{width:100%;border:1px solid #9da59b;background:transparent;color:var(--ink);padding:12px 13px;font-size:16px;border-radius:0;min-height:49px}.field textarea{resize:vertical;min-height:145px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--ink);outline-offset:1px}.form-hint{font-size:12px;color:var(--muted);margin:16px 0}.check-label{display:flex;align-items:start;gap:12px;font-size:13px;line-height:1.5;margin-block:25px}.check-label input{width:18px;height:18px;flex:none;margin-top:1px;accent-color:var(--ink)}.check-label a{text-decoration:underline}.hp{position:absolute;left:-10000px;opacity:0}.form-status:empty{display:none}.form-status{padding:20px;margin-top:20px;font-size:14px}.form-status.error{border:1px solid #a52514;color:#822014}.form-status.success{background:#dbe6d4;border:1px solid #71876a}.button:disabled{opacity:.65;cursor:wait}.legal{max-width:850px}.legal h2{font-size:30px;margin-top:35px;margin-bottom:15px}.legal p,.legal li{font-size:15px}.back-link{margin-top:30px}.small-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase}.service-index{display:grid;grid-template-columns:1fr 1fr;gap:0 50px}.service-index a{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:25px 0;font-family:Barlow;font-size:28px}.service-index a span{color:#ad3b10}.service-index a:hover{text-decoration:underline}.hero-copy .text-link{color:var(--paper)}
@media(min-width:1480px){.hero-image{margin-right:calc((1320px - 100vw)/2)}}
@media(max-width:1150px){.navigation{gap:20px;font-size:19px}.brand{width:210px}.navigation .button{font-size:12px;padding:13px 14px}.hero-grid{min-height:600px}.hero-copy{padding-top:55px}.hero-copy h1{font-size:67px}.split,.content-grid,.contact-grid{gap:45px}.section{padding-block:75px}.section-head{gap:25px}.section-head .text-link{max-width:250px}.service-label h3{font-size:26px}.service-hero{gap:35px}}
@media(max-width:999px){.header-inner{height:76px}.menu-toggle{display:block}.brand{width:230px}.brand img{height:54px}.navigation{display:none;position:fixed;top:76px;bottom:0;left:0;right:0;background:var(--ink);padding:35px var(--space);overflow:auto;font-size:32px;align-items:stretch;flex-direction:column;gap:7px}.navigation.is-open{display:flex}.navigation .button{font-size:16px;margin-top:22px;align-self:start}.hero-copy h1{font-size:58px}.hero-copy .lead{font-size:18px}.hero-copy .actions{gap:22px}.hero-grid{grid-template-columns:1.15fr 1fr;min-height:630px}.hero-copy{padding-right:15px}.capabilities p{font-size:20px}.section-head{align-items:start;flex-direction:column}.section-head .text-link{max-width:none}.footer-top{gap:30px}.footer-logo{width:210px}.service-grid{gap:20px}.service-label{gap:10px}.service-label h3{font-size:25px}.service-hero-image{height:410px}.project-details{grid-template-columns:180px 1fr;gap:45px}}
@media(max-width:700px){:root{--space:22px}h1{font-size:52px}h2{font-size:42px}.section{padding-block:60px}.header-inner{height:72px}.brand{width:205px}.brand img{height:49px}.navigation{top:72px}.hero-grid{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:39px 0 38px}.hero-copy h1{font-size:58px;line-height:1.01;max-width:550px}.hero-copy .eyebrow{font-size:17px;margin-bottom:23px}.hero-copy .lead{margin-top:22px;max-width:500px;font-size:17px;line-height:1.55}.hero-copy .actions{margin-top:27px;align-items:center;gap:23px}.hero-copy .button{padding:15px 21px}.hero-image{height:330px;margin:0 calc(var(--space)*-1)}.hero-image:before{bottom:auto;height:clamp(64px,22%,84px);background:linear-gradient(180deg,var(--ink),color-mix(in srgb,var(--ink) 82%,transparent) 24%,color-mix(in srgb,var(--ink) 35%,transparent) 62%,transparent);pointer-events:none}.hero-image img{object-position:58% center}.hero-image .image-note{font-size:10px;right:18px;bottom:18px}.capabilities{padding-block:0}.capabilities .wrap{display:block}.capabilities p{text-align:left;font-size:22px;padding:19px 0}.capabilities p+p{border-left:0;border-top:1px solid #60695f}.service-grid{grid-template-columns:1fr;gap:35px}.service-card .image-frame{aspect-ratio:1.65}.service-label h3{font-size:30px}.service-card p{max-width:500px}.section-head{margin-bottom:30px;gap:24px}.section-head h2{font-size:43px}.split,.content-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.history-mark{border-right:0;border-bottom:1px solid var(--line);min-height:0;padding-bottom:35px}.history-mark .year{font-size:150px}.history-mark p{font-size:15px;margin-top:20px}.history-copy h2{font-size:44px}.project-grid{grid-template-columns:1fr;gap:36px}.project-card h3{font-size:32px}.project-meta{margin-top:15px;font-size:10px}.process-grid{grid-template-columns:1fr;gap:28px;margin-top:32px}.process-item{display:grid;grid-template-columns:35px 1fr;column-gap:15px;padding-top:20px}.process-item .number{grid-row:1/3}.process-item h3{font-size:29px}.process-item p{grid-column:2}.province-grid{margin-top:0}.coverage h2{font-size:44px}.secondary-services{grid-template-columns:1fr;gap:40px}.secondary-service{grid-template-columns:35px 1fr;gap:15px}.secondary-service .icon{font-size:29px}.contact-band{padding-block:45px}.contact-band .wrap{align-items:start;flex-direction:column;gap:28px}.contact-band h2{font-size:43px}.footer{padding-block:45px 85px}.footer-top{grid-template-columns:1fr;gap:38px;padding-bottom:35px}.footer-logo{width:230px}.footer-bottom{flex-direction:column;gap:14px}.mobile-call{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;background:var(--ink);border-top:1px solid #64705f;color:var(--paper);font-size:13px}.mobile-call a{font-weight:600;color:var(--orange);min-height:24px}.breadcrumb{padding-block:19px;font-size:11px}.page-intro{padding-block:25px 45px}.page-intro .lead{font-size:18px;margin-top:20px}.service-hero{grid-template-columns:1fr;padding-block:25px 45px;gap:32px}.service-hero h1{font-size:51px}.service-hero-image{height:300px}.service-hero .lead{font-size:17px}.content-grid h2{font-size:40px}.quote-panel{padding:25px}.faq summary{font-size:24px}.faq details{padding-block:20px}.faq details p{font-size:15px}.project-details{grid-template-columns:1fr;gap:30px}.project-details aside dl{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.project-details aside dt{grid-column:1}.project-details aside dd{grid-column:2;margin:0 0 20px}.project-story h2{font-size:35px}.gallery{gap:16px;margin-top:35px}.gallery img{height:240px}.contact-info .footer-phone{font-size:44px}.form-grid{gap:18px;grid-template-columns:1fr}.form-grid .field{grid-column:1}.contact-grid{gap:45px}.service-index{grid-template-columns:1fr}.legal h2{font-size:29px}.filters{gap:8px}.filters button{padding:9px 16px}.all-services{gap:15px 22px}.hero-copy .text-link{font-size:14px}}
@media(max-width:380px){.hero-copy h1{font-size:50px}.brand{width:185px}.button{font-size:14px;gap:24px}.hero-copy .actions{flex-direction:column;align-items:flex-start}.gallery{grid-template-columns:1fr}.project-meta{flex-direction:column;gap:3px}.hero-image{height:280px}}
/* One motion rhythm across every page; no hidden resting state or layout shift. */
:root {
 --motion-duration: 300ms;
 --motion-ease: cubic-bezier(.22, 1, .36, 1);
 --motion-distance: 10px;
}
.reveal-enter {
 animation: content-reveal var(--motion-duration) var(--motion-ease) both;
}
@keyframes content-reveal {
 from { opacity: 0; transform: translate3d(0, var(--motion-distance), 0); }
 to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.button, .text-link, .navigation > a, .footer a, .filters button {
 transition: color var(--motion-duration) var(--motion-ease),
  background-color var(--motion-duration) var(--motion-ease),
  border-color var(--motion-duration) var(--motion-ease);
}
.service-card img, .project-card img, .menu-toggle span {
 transition: transform var(--motion-duration) var(--motion-ease);
}
@media (max-width: 999px) {
 .navigation {
  display: flex;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(100%);
  transition: transform 500ms var(--motion-ease), visibility 0s linear 500ms;
 }
 .navigation.is-open {
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
  transition-delay: 0s;
 }
}
@media print { .reveal-enter { animation: none; } }
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Preserve the drilling head when portrait archive photos are cropped. */
.project-card img[src$="/case-02-1.webp"],.project-cover[src$="/case-02-1.webp"],.gallery img[src$="/case-02-1.webp"]{object-position:50% 18%}
.project-card h3{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.project-card h3 span{float:none;flex:none}

#photo-dialog figure img{touch-action:pan-y pinch-zoom}
.dialog-controls button{display:grid;place-items:center;width:56px;min-height:48px;padding:8px}
.dialog-controls button:hover{background:var(--paper);color:var(--ink)}

.project-intro {
 display: grid;
 grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
 grid-template-areas: "photo copy";
 align-items: center;
 gap: clamp(24px, 5vw, 70px);
}
.project-intro-copy { grid-area: copy; }
.project-intro h1 {
 font-size: clamp(36px, 4.4vw, 68px);
}
.project-cover {
 grid-area: photo;
 display: block;
 width: 100%;
 height: auto;
 aspect-ratio: 4 / 3;
 object-fit: cover;
}
@media (max-width: 700px) {
 .project-intro {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "copy" "photo";
 }
 .project-cover { max-width: 440px; }
}
