:root{font-family:Arial,Helvetica,sans-serif;color:#292722;background:#fff;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:6px}#header{position:absolute;z-index:1000;top:0;left:0;width:100%;display:flex;align-items:center;padding:44px 38px;gap:60px}.wordmark{font-size:21px;letter-spacing:.24em;font-weight:400}nav{display:flex;gap:32px;margin:auto}nav a{font-size:14px;letter-spacing:.13em;text-transform:uppercase;opacity:.8}nav a:hover,nav a[aria-current]{opacity:1}nav a[aria-current]{text-decoration:underline;text-underline-offset:6px}.home #header{color:#fff;text-shadow:0 1px 8px #0009}.skip{position:fixed;top:-80px;left:20px;z-index:3000;background:white;color:black;padding:15px}.skip:focus{top:8px}.hero{height:100svh;min-height:580px;position:relative;background:#343a36;overflow:hidden}.hero-image{position:absolute;width:100%;height:100%;object-fit:cover;transition:opacity .6s}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(#0003,transparent 40%,#0006);pointer-events:none}.hero-copy{position:absolute;z-index:2;bottom:115px;left:15%;right:15%;text-align:center;color:white}.hero-copy h1{font:400 19px/1.8 'Studio Sans',Arial,sans-serif;letter-spacing:.3em;text-transform:uppercase;margin:0 0 16px}.hero-copy p{font-size:16px;line-height:1.8;letter-spacing:.06em;margin:0}.dots{position:absolute;z-index:3;bottom:38px;display:flex;justify-content:center;gap:2px;left:10%;right:10%;flex-wrap:wrap}.dot{width:26px;height:30px;border:0;padding:0;background:none;display:grid;place-items:center}.dot:before{content:'';height:7px;width:7px;border-radius:50%;background:#fff5}.dot[aria-current=true]:before{background:white}.slide-control{position:absolute;z-index:4;top:50%;border:0;background:none;color:white;font:32px 'Studio Sans',Arial,sans-serif;opacity:.7;padding:20px}.slide-control:hover{opacity:1}.prev{left:8px}.next{right:8px}.pause{position:absolute;right:30px;bottom:36px;z-index:4;background:none;color:white;border:0;font-size:14px;letter-spacing:.05em}.section{padding:100px 7vw}.section-title{font:400 18px 'Studio Sans',Arial,sans-serif;text-transform:uppercase;letter-spacing:.24em;margin:0 0 58px;text-align:center}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:68px 36px}.project-card img{width:100%;aspect-ratio:1.5;object-fit:cover;display:block;transition:opacity .3s}.project-card:hover img{opacity:.9}.project-card h2{font-size:15px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;line-height:1.7;margin:20px 0 7px}.project-card p{font-size:14px;color:#797873;margin:0}.page{padding:170px 7vw 90px}.page>h1{font:400 22px 'Studio Sans',Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;margin:0 0 60px}.footer{margin-top:60px;padding:40px 0 0;border-top:1px solid #ddd;font-size:14px;letter-spacing:.12em;color:#777;display:flex;justify-content:space-between}.studio-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:8vw;align-items:center}.studio-layout img{width:100%;max-height:68vh;object-fit:cover}.studio-layout h2{font:400 30px/1.6 'Studio Sans',Arial,sans-serif;letter-spacing:.06em}.studio-layout p{line-height:1.8;font-size:16px}.text-link{display:inline-block;border-bottom:1px solid #999;padding-bottom:5px;margin-top:24px}.contacts{display:grid;grid-template-columns:1fr 1fr;gap:10vw;max-width:1080px}.contacts h2{font:400 25px 'Studio Sans',Arial,sans-serif;margin:0 0 16px}.contacts p{font-size:16px;line-height:1.9;margin:15px 0}.contacts a:hover{text-decoration:underline}.muted{color:#777}.detail-header{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:45px}.detail-header h1{font:400 26px/1.6 'Studio Sans',Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;max-width:750px;margin:0}.detail-header p{font-size:15px;color:#777}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:32px}.gallery img{width:100%;height:auto;display:block}.gallery figure{margin:0}.gallery figure:first-child{grid-column:1/-1}.detail-bottom{display:flex;justify-content:space-between;padding-top:60px}.loading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.map-page{overflow:hidden}.map-page #header{pointer-events:none}.map-page #header a{pointer-events:auto}.map-page #header nav{background:#ffffffa8;padding:12px 16px}.map-page main{height:100svh}.map{width:100%;height:100%;background:#fffffc!important}.leaflet-container{font-family:Arial,sans-serif}.leaflet-control-zoom{border:0!important;box-shadow:none!important}.leaflet-control-zoom a{background:#fff!important;color:#6a625e!important;border-color:#eee!important}.map-controls{position:absolute;z-index:500;bottom:36px;left:38px;display:flex;gap:10px}.map-controls button{border:0;background:#ffffffe6;padding:10px 14px;font-size:14px}.map-note{position:absolute;z-index:500;bottom:10px;left:38px;font-size:12px;color:#746d68}.map-dot{background:transparent;border:0;display:grid;place-items:center}.map-dot span{display:block;width:10px;height:10px;border-radius:50%;background:#3e2922;border:1.5px solid #fff}.map-dot:focus-visible{outline:2px solid #3e2922}.leaflet-tooltip{border:0!important;box-shadow:none!important;background:#ffffffe0!important;border-radius:0!important;font-size:13px}.leaflet-tooltip:before{display:none}.leaflet-popup-content-wrapper{border-radius:0;box-shadow:0 3px 18px #0001}.leaflet-popup-content{margin:20px;width:285px!important;max-height:45vh;overflow:auto}.leaflet-popup-content h2{font:400 18px 'Studio Sans',Arial,sans-serif;letter-spacing:.04em;margin:0 0 8px}.leaflet-popup-content p{font-size:12px;color:#777;margin:0 0 14px}.map-project-link{display:block;padding:9px 0;border-top:1px solid #eee;font-size:14px!important;line-height:1.5;color:#3e2922!important}.map-project-link:hover{text-decoration:underline}.leaflet-control-attribution{font-size:10px!important;background:#ffffffa0!important}.leaflet-top{top:120px}.leaflet-right{right:24px}.unavailable{opacity:.2}.error{padding:180px 8vw}
@media(min-width:1500px){.hero-copy{bottom:145px}.hero-copy h1{font-size:22px}.dots{bottom:58px}}
@media(max-width:700px){#header{padding:27px 22px;display:block}.wordmark{font-size:19px}nav{margin-top:25px;gap:0;justify-content:space-between}nav a{font-size:12px;letter-spacing:.1em}.hero{min-height:540px}.hero-copy{left:12%;right:12%;bottom:125px}.hero-copy h1{font-size:16px;letter-spacing:.17em}.hero-copy p{font-size:14px}.dots{left:12%;right:12%;bottom:48px;gap:0}.dot{width:22px;height:24px}.pause{right:12px;bottom:15px;font-size:12px}.section{padding:64px 22px}.project-grid{grid-template-columns:1fr;gap:40px}.section-title{margin-bottom:36px}.page{padding:155px 22px 50px}.page>h1{font-size:20px;margin-bottom:40px}.studio-layout,.contacts{grid-template-columns:1fr;gap:40px}.studio-layout h2{font-size:24px}.gallery{grid-template-columns:1fr;gap:20px}.detail-header{display:block}.detail-header h1{font-size:20px}.detail-header .text-link{margin-top:10px}.detail-bottom{font-size:14px;gap:30px}.map-page #header nav{margin-left:-10px;margin-right:-10px;padding:10px}.map-controls{left:12px;bottom:52px}.map-note{left:22px;bottom:29px;right:10px}.leaflet-right{right:10px}.leaflet-top{top:148px}.footer{font-size:12px}.map-page .wordmark{background:#ffffffb8;padding:6px}.leaflet-popup-content{max-height:36vh}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.hero-image{opacity:0;transition:opacity 1.2s ease-in-out}.hero-image-active{opacity:1}.hero-copy p{max-width:850px;margin:auto;max-height:7.2em;overflow:auto}.project-description{font-size:16px!important;line-height:1.8;max-width:760px;color:#494641!important}.map .leaflet-tile-pane{filter:grayscale(1) brightness(1.025)}.map-dot span{width:12px;height:12px;border-width:2px;box-shadow:0 0 0 1px #3e292233}.map-card img{width:100%;height:130px;object-fit:cover;margin-bottom:16px}.map-card span{font-size:14px;display:block;margin-top:14px;color:#3e2922}.map-project-list{position:absolute;z-index:800;bottom:94px;left:38px;width:310px;max-height:50vh;overflow:auto;padding:22px;background:#fff;box-shadow:0 3px 20px #0002}.map-project-list h2{font:20px 'Studio Sans',Arial,sans-serif;margin-top:0}.map-project-list button{display:block;text-align:left;width:100%;padding:14px 0;border:0;border-top:1px solid #ddd;background:none;font-size:14px}.map-project-list p{font-size:15px;line-height:1.6}.map-project-list>a{text-decoration:underline}.map-error{position:absolute;z-index:600;top:140px;left:30%;right:20%;background:white;padding:15px;font-size:14px}.map-note{background:#ffffffe6;padding:5px 8px;left:30px}.draft-banner{position:fixed;z-index:2000;bottom:0;left:0;right:0;background:#352c26;color:#fff;padding:12px 25px;display:flex;justify-content:space-between;font-size:14px}.draft-banner a{text-decoration:underline}.draft-preview .map-controls{bottom:85px}.draft-preview .map-note{bottom:50px}.draft-preview .leaflet-control-attribution{margin-bottom:45px}.map-page .leaflet-control-attribution{font-size:12px!important}.spread-marker{z-index:1200!important}@media(max-width:700px){.map-project-list{left:20px;width:calc(100% - 40px);bottom:110px}.map-note{left:10px;bottom:35px;font-size:12px}.map-controls{bottom:70px}.draft-banner{padding:10px;font-size:12px;gap:20px}.draft-preview .map-controls{bottom:120px}.draft-preview .map-note{bottom:80px}.draft-preview .leaflet-control-attribution{margin-bottom:48px}.map-error{left:20px;right:20px;top:160px}.hero-copy{left:12%;right:12%}}@media(prefers-reduced-motion:reduce){.hero-image{transition:none}}
@font-face{font-family:'Studio Sans';src:url('/assets/jost.ttf') format('truetype');font-weight:100 900;font-display:swap}:root{--paper:#fff;--cream:#f5f1e5;--ink:#383839;font-family:'Studio Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);font-weight:400;letter-spacing:.03125rem}body{background:var(--paper)}.section{background:var(--cream)}.page{background:var(--paper)}.footer{border-color:#ded8ca;background:var(--cream);padding:35px 24px;color:#625e55}.hero{background:var(--cream);height:100svh;min-height:680px}.hero-image{height:calc(100% - 170px);transition:opacity .7s ease-in-out}.hero:after{bottom:170px;background:linear-gradient(#0002,transparent 35%,#0001)}.hero-copy{bottom:65px;left:12%;right:12%;color:var(--ink)}.hero-copy h1{font-family:'Studio Sans',Arial,sans-serif;font-size:16px;line-height:1.5;font-weight:400;letter-spacing:.26em;margin-bottom:12px}.hero-copy p{font-family:'Studio Sans',Arial,sans-serif;font-size:14px;line-height:1.6;max-height:3.2em;letter-spacing:.03em}.dots{bottom:20px}.dot:before{background:#38383940}.dot[aria-current=true]:before{background:#383839}.pause{color:var(--ink);bottom:22px}.slide-control{top:calc(50% - 85px)}.section-title,.page>h1,.detail-header h1,.studio-layout h2,.contacts h2,.map-project-list h2,.leaflet-popup-content h2{font-family:'Studio Sans',Arial,sans-serif;font-weight:400}.section-title{font-size:16px;letter-spacing:.24em}.page>h1{font-size:20px}.detail-header h1{font-size:22px}.studio-layout p,.contacts p,.project-description{font-family:'Studio Sans',Arial,sans-serif;font-size:16px;line-height:1.65;letter-spacing:.03125rem}.studio-layout h2,.contacts h2{font-size:24px}.project-card h2{font-family:'Studio Sans',Arial,sans-serif;font-size:15px;letter-spacing:.15em;font-weight:400}.project-card p{font-family:'Studio Sans',Arial,sans-serif;font-size:14px}.wordmark{font-family:'Studio Sans',Arial,sans-serif;letter-spacing:.24em;font-weight:400}nav a{font-weight:400;font-size:14px;letter-spacing:.12em}.map-controls button,.map-project-list,.leaflet-popup-content-wrapper{background:#f5f1e5}.map-page #header nav{background:#f5f1e5e8}.map-note{background:#f5f1e5e8;color:#514d46}.map .leaflet-container{font-family:'Studio Sans',Arial,sans-serif}.leaflet-control-zoom a{background:#f5f1e5!important}.map-project-list button{color:#383839}.home #header{color:#f6f0de}
@media(min-width:1500px){.hero-copy{bottom:65px}.hero-copy h1{font-size:18px}.dots{bottom:20px}}@media(max-width:700px){.hero{min-height:610px}.hero-image{height:calc(100% - 190px)}.hero:after{bottom:190px}.hero-copy{bottom:70px;left:6%;right:6%}.hero-copy h1{font-size:15px;letter-spacing:.16em}.hero-copy p{font-size:14px}.dots{bottom:24px}.pause{bottom:5px}.slide-control{top:calc(50% - 95px)}nav a{font-size:13px}.page>h1{font-size:18px}.detail-header h1{font-size:20px}.studio-layout h2,.contacts h2{font-size:22px}}@media(prefers-reduced-motion:reduce){.hero-image{transition:none}}
/* Smaller editorial typography, informed by the Norm reference. */
.wordmark{font-size:19px}
nav a{font-size:11px;letter-spacing:.12em}
.hero-copy h1{font-size:14px}.hero-copy p{font-size:12px}
.section-title{font-size:14px}.page>h1,.detail-header h1{font-size:18px}
.project-card h2{font-size:13px}.project-card p{font-size:12px}
.studio-layout h2,.contacts h2{font-size:20px}
.studio-layout p,.contacts p,.project-description{font-size:14px!important}
.detail-header p,.text-link,.detail-bottom{font-size:13px}
.footer,.pause{font-size:12px}
.map-controls button,.map-project-list button,.map-card span{font-size:12px}
.map-project-list h2,.leaflet-popup-content h2{font-size:16px}
@media(min-width:1500px){.hero-copy h1{font-size:16px}}
@media(max-width:700px){.wordmark{font-size:18px}.hero-copy h1{font-size:13px}.hero-copy p{font-size:12px}.studio-layout h2,.contacts h2{font-size:18px}}
/* Homepage captions and pagination overlay the full-height photograph. */
.hero{min-height:580px;background:#343a36}
.hero-image{height:100%}
.hero:after{inset:0;background:linear-gradient(180deg,#0003 0%,transparent 35%,#0001 60%,#0006 100%)}
.hero-copy{bottom:104px;color:#f6f0de;text-shadow:0 1px 10px #0005}
.dots{bottom:38px}.dot:before{background:#f6f0de66}.dot[aria-current=true]:before{background:#f6f0de}
.pause{bottom:42px;color:#f6f0de}.slide-control{top:50%;transform:translateY(-50%)}
@media(min-width:1500px){.hero-copy{bottom:120px}.dots{bottom:42px}}
@media(max-width:700px){.hero{min-height:540px}.hero-copy{bottom:108px}.dots{bottom:42px}.pause{bottom:15px}}
/* Studio: immersive philosophy followed by the people behind the work. */
.studio-page #header{color:#f6f0de;text-shadow:0 1px 8px #0006}
.studio-hero{position:relative;isolation:isolate;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:180px 9vw 130px;background:#383839;color:#f6f0de}
.studio-background{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.studio-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0004,#0006 40%,#0007)}
.studio-philosophy{text-align:center;width:100%;max-width:720px;text-shadow:0 1px 12px #0003}
.studio-eyebrow{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:30px}
.studio-philosophy h1{font:400 23px/1.55 'Studio Sans',Arial,sans-serif;letter-spacing:.12em;margin:0 0 30px;text-transform:uppercase}
.studio-philosophy-text p{font:400 17px/1.85 'Studio Sans',Arial,sans-serif;letter-spacing:.025em;margin:0 0 20px;overflow-wrap:anywhere}
.studio-scroll{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);text-transform:uppercase;letter-spacing:.14em;font-size:11px;display:flex;align-items:center;gap:18px}
.studio-scroll span{font-size:22px}.studio-team{scroll-margin-top:30px;padding-top:100px}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:58px 36px}.team-card img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}.team-card h3{font:400 15px/1.6 'Studio Sans',Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;margin:22px 0 6px}.team-card p{font-size:12px;line-height:1.7;margin:0;color:#6d685f}.team-coming-soon{text-align:center;font:400 15px/1.7 'Studio Sans',Arial,sans-serif;color:#6d685f;padding:15px 0 55px}.studio-contact{text-align:center;margin-top:90px;font-size:13px;line-height:1.8}.studio-contact .text-link{margin-top:10px}
@media(max-width:1000px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.studio-hero{padding:180px 25px 110px}.studio-philosophy h1{font-size:19px;letter-spacing:.08em}.studio-philosophy-text p{font-size:15px;line-height:1.8}.studio-eyebrow{margin-bottom:22px}.studio-scroll{bottom:30px}.studio-team{padding-top:65px}.team-grid{grid-template-columns:1fr;gap:42px}.team-card{max-width:480px;width:100%;margin:auto}.studio-contact{margin-top:65px}}
.contact-layout{display:grid;grid-template-columns:1fr 1.12fr;gap:7vw;align-items:start}.contact-layout .contacts{grid-template-columns:1fr;gap:40px}.contact-layout .contacts h2{font-size:18px}.contact-layout .contacts p{font-size:14px}.social-links{display:flex;gap:26px;margin-top:40px;font-size:12px;letter-spacing:.08em}.social-links a{border-bottom:1px solid #aaa;padding-bottom:5px}.enquiry-panel{background:var(--cream);padding:40px}.enquiry-panel h2{font:400 22px/1.5 'Studio Sans',Arial,sans-serif;margin:0 0 10px}.enquiry-panel>p{font-size:13px;margin-bottom:30px}.enquiry-panel label{display:flex;flex-direction:column;gap:10px;font-size:12px;line-height:1.6;margin-bottom:22px}.enquiry-panel label span{color:#777}.enquiry-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.enquiry-panel input,.enquiry-panel textarea{font:16px/1.6 'Studio Sans',Arial,sans-serif;color:var(--ink);border:0;border-bottom:1px solid #b9b1a3;border-radius:0;background:#ffffff80;padding:10px;width:100%}.enquiry-panel textarea{resize:vertical;min-height:150px}.enquiry-panel input:focus,.enquiry-panel textarea:focus{outline:1px solid #655f55;outline-offset:2px}.enquiry-privacy{font-size:11px;line-height:1.7;color:#6b655b}.enquiry-submit{border:1px solid #383839;background:#383839;color:#f6f0de;padding:14px 22px;font-size:12px;letter-spacing:.09em;margin-top:15px}.enquiry-submit:disabled{opacity:.5;cursor:wait}#enquiry-status{font-size:13px;line-height:1.7;min-height:1.7em}.enquiry-honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}@media(max-width:1000px){.contact-layout{grid-template-columns:1fr;gap:60px}.contact-layout .contacts{grid-template-columns:1fr 1fr;gap:40px}}@media(max-width:600px){.contact-layout .contacts,.enquiry-pair{grid-template-columns:1fr}.enquiry-panel{padding:28px 20px}.enquiry-pair{gap:0}.contacts-page>h1{line-height:1.6}}
.hero-media{display:block;width:100%;height:100%;object-fit:cover}.project-cover{position:relative}.project-card video{display:block;width:100%;aspect-ratio:1.5;object-fit:cover}.video-cover-label{position:absolute;bottom:14px;left:14px;padding:6px 10px;background:#0006;color:#fff;font-size:11px;letter-spacing:.08em}.gallery video{display:block;width:100%;max-height:85vh;background:#252525}.map-card video{display:block;width:100%;height:130px;object-fit:cover;margin-bottom:16px}
/* Reference-style arrows: slide inward and fade in on hover/focus. */
.slide-control{display:grid;place-items:center;width:52px;height:64px;padding:12px;color:#f6f0de;opacity:0;transition:opacity .2s ease-in-out,left .2s ease-in-out,right .2s ease-in-out}
.slide-control svg{width:24px;height:30px;stroke:currentColor;stroke-width:1.4;fill:none;transition:transform .2s ease-in-out}
.prev{left:-22px}.next{right:-22px}
.hero:hover .prev,.hero:focus-within .prev{left:22px;opacity:1}.hero:hover .next,.hero:focus-within .next{right:22px;opacity:1}
.slide-control:active svg{transform:scale(.9)}
@media(hover:none),(pointer:coarse){.slide-control{opacity:1}.prev{left:10px}.next{right:10px}.hero:hover .prev,.hero:focus-within .prev{left:10px}.hero:hover .next,.hero:focus-within .next{right:10px}}
@media(prefers-reduced-motion:reduce){.slide-control,.slide-control svg{transition:none}}
/* Captions enter shortly after the image begins its crossfade. */
.hero-copy> a,.hero-copy> div{display:block;animation:slide-caption-in .7s ease-in-out .9s both}
@keyframes slide-caption-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero-copy> a,.hero-copy> div{animation:none}}
/* A consistent cream canvas and a more restrained project grid. */
:root{--paper:var(--cream)}
body,.page,.section{background:var(--cream)}
.project-grid{max-width:1180px;margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:54px 34px}
.project-card h2{font-size:12px;line-height:1.7;margin-top:16px;letter-spacing:.12em}
.project-card p{font-size:11px;line-height:1.7}
.project-detail>.detail-header,.project-detail>.gallery,.project-detail>.detail-bottom,.project-detail>.footer{max-width:1080px;margin-inline:auto}
.project-detail>.gallery{gap:36px}
@media(max-width:1050px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 28px}}
@media(max-width:700px){.project-grid{grid-template-columns:1fr;max-width:440px;gap:40px}.project-detail>.gallery{gap:22px}}
/* Map navigation uses the same unboxed treatment as the homepage. */
.map-page #header nav{background:transparent;padding:0}
.map-page .wordmark{background:transparent;padding:0}
.map-controls button{background:transparent;border:0;box-shadow:none;text-transform:uppercase;letter-spacing:.12em;font-size:11px}
.map-controls button:hover,.map-controls button[aria-expanded=true]{text-decoration:underline;text-underline-offset:6px}
.map-note{background:transparent}
@media(max-width:700px){.map-page #header nav{margin-left:0;margin-right:0;padding:0}}
/* Shared grid alignment and a single public-site type family. */
:root{--site-gutter:max(7vw,calc((100vw - 1180px)/2));--site-font:'Studio Sans',Arial,sans-serif;font-family:var(--site-font)}
#header{padding-inline:var(--site-gutter)}
.page,.section{padding-inline:var(--site-gutter)}
.project-detail>.detail-header,.project-detail>.gallery,.project-detail>.detail-bottom,.project-detail>.footer{max-width:1180px}
body,button,input,textarea,select,.leaflet-container,.leaflet-tooltip,.leaflet-popup-content{font-family:var(--site-font)}
@media(max-width:700px){:root{--site-gutter:22px}#header,.page,.section{padding-inline:var(--site-gutter)}}
/* Each document enters naturally; navigation and interaction never wait for animation. */
#header,#main>:not(.loading){animation:page-arrive .65s ease-out both}
@keyframes page-arrive{from{opacity:.35}to{opacity:1}}
@media(prefers-reduced-motion:reduce){#header,#main>:not(.loading){animation:none}}
.leaflet-control-zoom a{font-family:var(--site-font)!important}

/* Homepage entrance: reveal only when the photograph is decoded. */

#arrival{position:fixed;inset:0;z-index:2500;display:grid;place-items:center;background:#f5f1e5;color:#383839;pointer-events:none;opacity:1;transition:background 1.2s ease;}
/* Separate wrappers let the pulse continue smoothly into the exit zoom. */
.arrival-logo-zoom{width:clamp(180px,29vw,400px);opacity:1;transform:scale(1);transition:transform 1.2s cubic-bezier(.22,.61,.36,1),opacity 1s ease}
.arrival-logo{display:block;width:100%;height:auto;animation:logo-breathe 1.7s ease-in-out infinite}
#arrival.arrival-finished{background:transparent}
#arrival.arrival-finished .arrival-logo-zoom{transform:scale(1.65);opacity:0}
#arrival.arrival-finished .arrival-logo{animation-play-state:paused}
@keyframes logo-breathe{0%,100%{opacity:.48;transform:scale(.98)}50%{opacity:1;transform:scale(1.025)}}
.home #main>.hero{animation:none;background:#f5f1e5}
.home .hero-image{transition:opacity 1.1s ease-in-out}
.home .hero:not(.hero-ready):after{opacity:0}
.home .hero:after{transition:opacity 1.1s ease}
.home:not(:has(.hero-ready)) #header{color:#383839;text-shadow:none}
@media(prefers-reduced-motion:reduce){.arrival-logo{animation:none}.arrival-logo-zoom{transition:none!important}#arrival.arrival-finished .arrival-logo-zoom{transform:none}#arrival,.home .hero-image,.home .hero:after{transition:none}}
/* Homepage: current work, studio perspective, film and contact. */
.home-eyebrow{display:block;text-transform:uppercase;letter-spacing:.18em;font-size:12px;margin-bottom:24px}.home-work{border-top:1px solid #dcd6c8}.home-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 38px;max-width:1180px;margin:auto}.home-work-grid article>img,.home-work-grid article>video{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.home-work-copy{max-width:540px;padding-top:24px}.home-work-copy h3{font-size:17px;letter-spacing:.08em;font-weight:400;margin:0 0 12px}.home-work-copy p{font-size:15px;line-height:1.8;margin:0}.home-feature{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;isolation:isolate;color:#f5f1e5;background:#383839;padding:120px var(--site-gutter)}.home-feature-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.home-feature:after{content:'';position:absolute;inset:0;background:#0006;z-index:-1;pointer-events:none}.home-feature-copy{text-align:center;max-width:700px}.home-feature-copy h2{font-size:clamp(22px,3vw,38px);font-weight:400;letter-spacing:.07em;line-height:1.4;margin:0 0 26px}.home-feature-copy p{font-size:17px;line-height:1.9;margin:0}.home-feature .text-link{border-color:#f5f1e599}.home-feature:has(video){padding-bottom:150px}.home-feature video{z-index:0}.home-feature:has(video):after{z-index:1}.home-feature:has(video) .home-feature-copy{z-index:2;pointer-events:none}.home-feature:has(video) .text-link{pointer-events:auto}/* Full-width film with captions over the lower image and room for playback controls. */
.home-film{position:relative;isolation:isolate;width:100%;height:100svh;min-height:540px;background:#252525;color:#f6f0de;overflow:hidden}
.home-feature+.home-film{margin-top:clamp(48px,7vw,110px)}
.home-film>video{display:block;width:100%;height:100%;object-fit:cover;background:#252525}
.home-film:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0008);pointer-events:none}
.home-film-copy{position:absolute;z-index:1;left:12%;right:12%;bottom:104px;max-height:55%;overflow:auto;text-align:center;text-shadow:0 1px 10px #0005}
.home-film-copy h2{font:400 14px/1.5 var(--site-font);letter-spacing:.26em;text-transform:uppercase;margin:0 0 12px;overflow-wrap:anywhere}
.home-film-copy p{font-size:12px;line-height:1.6;letter-spacing:.03em;margin:0 auto;max-width:680px;overflow-wrap:anywhere}
.home-film-copy .text-link{color:inherit;border-color:#f6f0de99;margin-top:16px;font-size:12px}
.home-film.film-in-view .home-film-copy{animation:slide-caption-in .7s ease-in-out .35s both}
@media(min-width:1500px){.home-film-copy h2{font-size:16px}.home-film-copy{bottom:120px}}
@media(max-width:700px){.home-film{min-height:460px;height:85svh}.home-film-copy{left:6%;right:6%;bottom:92px}.home-film-copy h2{font-size:13px;letter-spacing:.16em}}
@media(prefers-reduced-motion:reduce){.home-film.film-in-view .home-film-copy{animation:none}}
.home-contact{border-top:1px solid #dcd6c8;padding-top:110px}.home-contact h2{font-size:clamp(26px,4vw,48px);font-weight:400;margin:0 0 12px;line-height:1.35}.home-contact-details{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:36px;margin-top:70px;font-size:14px;line-height:1.9}.home-contact-details p{margin:0}.home-contact-details a{display:block;overflow-wrap:anywhere}.home-contact-details a:hover{text-decoration:underline;text-underline-offset:5px}.home-contact .footer{padding-inline:0}.home-feature-copy p,.home-work-copy p{overflow-wrap:anywhere}
@media(max-width:700px){.home-work-grid{grid-template-columns:1fr;gap:45px}.home-feature{min-height:85svh;padding:90px 26px}.home-feature-copy p{font-size:15px;line-height:1.8}.home-contact-details{grid-template-columns:1fr;gap:26px;margin-top:45px}.home-contact{padding-top:70px}}

.home-contact h2.home-contact-title{font-size:12px;font-weight:400;letter-spacing:.18em;line-height:1.5;margin:0 0 24px;text-transform:uppercase}

.contacts-page>h1.contact-accessible-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Continue from the nine homepage projects to the full collection. */
.home-projects-more{max-width:1180px;margin:44px auto 0;text-align:center}
.home-projects-more .text-link{margin-top:0}
/* Keep the homepage selection brief in the single-column phone layout. */
@media(max-width:700px){.home .project-grid>.project-card:nth-child(n+4){display:none}}
