@font-face{font-family:'Playfair Display';src:url('assets/playfair-regular.ttf') format('truetype');font-weight:400;font-display:swap}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink)}
a{color:inherit;text-decoration:none}
button{font:inherit}
.shell{max-width:1700px;margin:auto;padding:0 3vw}
.top{height:76px;display:flex;align-items:center;border-bottom:1px solid var(--ink)}
.top .logo{display:inline-flex;align-items:center;gap:12px}
.top .location{margin:auto;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.menu-wrap{margin-left:auto}
.menu-toggle{display:flex;align-items:center;justify-content:flex-end;min-width:42px;padding:14px 0;border:0;background:none;color:inherit;cursor:pointer}
.menu-icon{position:relative;display:block;width:25px;height:20px}
.menu-icon i{position:absolute;left:0;width:25px;height:1px;background:currentColor;transition:top .55s ease,transform .55s ease}
.menu-icon i:first-child{top:5px}.menu-icon i:last-child{top:14px}
.menu-toggle[aria-expanded="true"] .menu-icon i:first-child{top:10px;transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-icon i:last-child{top:10px;transform:rotate(-45deg)}
.menu-panel{position:absolute;top:76px;right:0;z-index:30;display:flex;flex-direction:column;width:min(430px,90vw);padding:22px 28px 28px;opacity:0;visibility:hidden;transform:translateY(-9px);transition:opacity .55s ease,transform .55s ease,visibility .55s ease}
.menu-panel.open{opacity:1;visibility:visible;transform:translateY(0)}
.menu-panel>a{display:block;padding:15px 0;border-bottom:1px solid var(--line);font:400 38px/1.15 'Playfair Display',serif;letter-spacing:.02em}
.menu-panel>a:last-child{border-bottom:0}
.sub-hero{padding-top:125px;padding-bottom:140px}
.sub-eyebrow{display:block;margin-bottom:50px;font:500 11px/1.4 Raleway,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.sub-hero h1{max-width:1250px;margin:0;font:400 clamp(76px,10vw,160px)/.95 'Playfair Display',serif;letter-spacing:.005em}
.sub-hero p{max-width:750px;margin:55px 0 0;font:400 clamp(21px,2.1vw,31px)/1.45 'Playfair Display',serif}
.sectionhead{padding-top:0;padding-bottom:35px;border-bottom:1px solid var(--line)}
.sectionhead h2{margin:0;font:400 clamp(46px,5.5vw,84px)/1.16 'Playfair Display',serif}
.projects{display:grid}
.card{color:inherit}
.card .visual{position:relative;width:100%;aspect-ratio:21/9;overflow:hidden;background:#dbdbd8}
.card .label{display:block}
.card .label strong{display:block}
.sub-intro{padding:160px 0 115px}
.sub-intro h2{max-width:1150px;margin:0 0 55px;font:400 clamp(44px,5.4vw,82px)/1.13 'Playfair Display',serif}
.sub-intro p{max-width:730px;margin:0 0 24px;font:400 18px/1.7 Raleway,sans-serif}
.sub-visual{position:relative;aspect-ratio:21/9;overflow:hidden;background:#dbdbd8}
.sub-block{display:grid;grid-template-columns:1fr 2fr;gap:5vw;padding:145px 0;border-bottom:1px solid var(--line)}
.sub-block small,.sub-list small{font:500 11px/1.4 Raleway,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.sub-block h2{margin:0 0 52px;font:400 clamp(40px,5vw,76px)/1.14 'Playfair Display',serif}
.sub-block p{max-width:690px;margin:0 0 20px;font:400 18px/1.7 Raleway,sans-serif}
.sub-list{padding:145px 0}
.sub-list h2{margin:0 0 55px;font:400 clamp(46px,5.5vw,84px)/1.16 'Playfair Display',serif}
.sub-list .row{display:grid;grid-template-columns:1fr 2fr;gap:5vw;padding:25px 0;border-top:1px solid var(--line)}
.sub-list .row:last-child{border-bottom:1px solid var(--line)}
.sub-list .row strong{font:400 clamp(22px,2.6vw,38px)/1.2 'Playfair Display',serif}
.sub-list .row p{max-width:650px;margin:0;font:400 16px/1.6 Raleway,sans-serif}
.sub-footer{display:flex;justify-content:space-between;align-items:end;gap:40px;padding:120px 0 130px}
.sub-footer b{font:400 clamp(34px,4.2vw,68px)/1.1 'Playfair Display',serif}
.sub-footer a{padding-bottom:6px;border-bottom:1px solid currentColor;font:600 11px/1.4 Raleway,sans-serif;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
@media(max-width:850px){.shell{padding:0 20px}.top{height:62px}.top .location{display:none}.sub-hero{padding-top:110px;padding-bottom:100px}.sub-hero h1{font-size:clamp(54px,12vw,96px)}.sub-hero p{margin-top:35px}.sub-intro{padding:105px 0 85px}.sub-block{grid-template-columns:1fr;padding:95px 0}.sub-block h2{margin-bottom:35px}.sub-list{padding:95px 0}.sub-list .row{grid-template-columns:1fr;gap:12px}.sub-footer{display:block;padding:90px 0 110px}.sub-footer a{display:inline-block;margin-top:55px}}
