:root{--chalk:#f1ede4;--paper:#fbf8f2;--ink:#24201f;--wine:#742c35;--clay:#d58d69;--sage:#879383;--line:rgba(36,32,31,.24);--banner:34px;--pad:clamp(20px,4vw,70px);--sans:"Arial Nova","Helvetica Neue",Arial,sans-serif;--serif:"Iowan Old Style",Baskerville,Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--chalk);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.template-banner{height:var(--banner);position:sticky;top:0;z-index:1000;background:var(--wine);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:0 16px}.template-banner a{border-bottom:1px solid;margin-left:4px}
.site-head{height:84px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);position:absolute;top:var(--banner);left:0;right:0;z-index:60;color:#fff}.interior .site-head{position:relative;top:auto;color:var(--ink);border-bottom:1px solid var(--line);background:var(--chalk)}.wordmark{font-weight:700;letter-spacing:-.045em;font-size:23px;justify-self:start}.wordmark span{font-family:var(--serif);font-style:italic;font-weight:400}.wordmark small{display:block;font-size:8px;letter-spacing:.15em;text-transform:uppercase;margin-top:2px}.head-note{font-size:10px;text-transform:uppercase;letter-spacing:.08em;justify-self:center}.menu-toggle{justify-self:end;border:1px solid currentColor;background:transparent;width:48px;height:48px;display:grid;place-items:center;position:relative}.menu-toggle:before,.menu-toggle:after{content:"";position:absolute;width:20px;height:1px;background:currentColor;transition:.3s}.menu-toggle:before{transform:translateY(-4px)}.menu-toggle:after{transform:translateY(4px)}.menu-open .menu-toggle:before{transform:rotate(45deg)}.menu-open .menu-toggle:after{transform:rotate(-45deg)}
.menu-sheet{position:fixed;inset:var(--banner) 0 0;z-index:55;background:var(--clay);display:grid;grid-template-columns:.72fr 1.28fr;transform:translateY(-105%);transition:transform .5s cubic-bezier(.7,0,.2,1);padding-top:84px}.menu-open .menu-sheet{transform:none}.menu-aside{padding:var(--pad);border-right:1px solid var(--ink);display:flex;flex-direction:column;justify-content:flex-end}.menu-aside p{font-family:var(--serif);font-size:clamp(28px,3.5vw,52px);line-height:1.05;margin:0}.menu-links{display:grid;align-content:center}.menu-links a{padding:14px var(--pad);border-bottom:1px solid var(--ink);font-size:clamp(30px,4.3vw,68px);font-weight:600;letter-spacing:-.055em;line-height:1}.menu-links a span{font-size:10px;letter-spacing:.12em;margin-right:20px}.menu-links a:hover{background:var(--wine);color:#fff}
.eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:.16em;font-weight:700}.eyebrow:before{content:"";display:inline-block;width:28px;border-top:1px solid;vertical-align:middle;margin-right:10px}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.055em;line-height:.95}h1{font-size:clamp(56px,8vw,128px);font-weight:600}h2{font-size:clamp(42px,6vw,88px);font-weight:600}h3{font-size:clamp(27px,3.2vw,44px)}.lede{font-family:var(--serif);font-size:clamp(19px,2vw,29px);line-height:1.35;max-width:720px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid currentColor;padding:14px 17px;min-width:210px;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.btn:after{content:"→"}.btn:hover{background:var(--ink);color:#fff}.btn.light:hover{background:#fff;color:var(--ink)}.text-link{font-size:10px;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid;padding-bottom:5px}.wrap{width:min(1400px,100%);padding-left:var(--pad);padding-right:var(--pad);margin:auto}.reveal{opacity:0;transform:translateY(18px);transition:.7s}.reveal.in{opacity:1;transform:none}
/* horizontal homepage */
.journey{height:calc(100vh - var(--banner));overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;display:flex;scrollbar-width:none}.journey::-webkit-scrollbar{display:none}.scene{flex:0 0 100vw;height:100%;scroll-snap-align:start;position:relative;overflow:hidden}.scene-no{position:absolute;left:var(--pad);bottom:24px;z-index:5;font-size:9px;letter-spacing:.16em;text-transform:uppercase}.scene.hero{background:url('../images/ashgrove-courtyard.jpg') center/cover;color:#fff}.scene.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,24,23,.87),rgba(30,24,23,.15) 70%)}.hero-copy{position:absolute;z-index:2;left:var(--pad);bottom:clamp(80px,12vh,150px);max-width:890px}.hero-copy h1{margin:20px 0 28px}.hero-copy h1 em{font-family:var(--serif);font-weight:400}.hero-copy .lede{max-width:590px}.hero-action{display:flex;gap:12px;margin-top:35px;flex-wrap:wrap}
.scene.brief{display:grid;grid-template-columns:.68fr 1.32fr;background:var(--paper)}.brief-copy{padding:130px var(--pad) 70px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line)}.brief-copy h2{margin:25px 0}.room-index{display:grid;grid-template-columns:1fr 1fr;align-content:stretch}.room-link{padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;min-height:50%}.room-link:nth-child(even){border-right:0}.room-link:nth-child(n+3){border-bottom:0}.room-link span{font-size:9px;letter-spacing:.14em}.room-link h3{margin:50px 0 12px}.room-link:hover{background:var(--clay)}
.scene.phase{background:var(--wine);color:#fff;display:grid;grid-template-columns:.8fr 1.2fr}.phase-copy{padding:130px var(--pad) 70px;display:flex;flex-direction:column;justify-content:center}.phase-copy h2{margin:25px 0}.phase-copy p{max-width:560px}.phase-control{margin-top:28px}.phase-control label{font-size:9px;text-transform:uppercase;letter-spacing:.12em;display:block;margin-bottom:10px}.phase-control input{width:min(420px,100%);accent-color:var(--clay)}.phase-stage{display:grid;place-items:center;perspective:1000px;position:relative}.phase-model{width:min(620px,70vw);height:390px;position:relative;transform-style:preserve-3d;transform:rotateX(57deg) rotateZ(-28deg);transition:.5s;--remove-z:55px;--add-z:115px;--roof-z:175px}.phase-model div{position:absolute;border:1px solid rgba(255,255,255,.8);transition:.5s}.phase-model .existing{inset:55px 45px;background:rgba(255,255,255,.08);transform:translateZ(0)}.phase-model .remove{width:42%;height:55%;right:15%;top:20%;background:rgba(213,141,105,.55);transform:translateZ(var(--remove-z))}.phase-model .add{width:55%;height:65%;left:9%;bottom:4%;background:rgba(135,147,131,.38);transform:translateZ(var(--add-z))}.phase-model .roof{inset:25px;background:rgba(255,255,255,.03);transform:translateZ(var(--roof-z))}.phase-key{position:absolute;right:30px;bottom:30px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;display:grid;gap:9px}.phase-key i{width:12px;height:12px;display:inline-block;margin-right:7px;border:1px solid #fff}.phase-key i.remove{background:var(--clay)}.phase-key i.add{background:var(--sage)}
.scene.work{display:grid;grid-template-columns:repeat(3,1fr);background:var(--ink);color:#fff}.work-tile{position:relative;overflow:hidden;border-right:1px solid rgba(255,255,255,.3)}.work-tile:last-child{border:0}.work-tile img{width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:.6s}.work-tile:hover img{transform:scale(1.035)}.work-caption{position:absolute;inset:auto 0 0;padding:100px 28px 34px;background:linear-gradient(transparent,rgba(20,18,18,.88))}.work-caption span{font-size:9px;text-transform:uppercase;letter-spacing:.13em}.work-caption h3{font-size:clamp(28px,3.4vw,50px);margin:12px 0}.work-caption p{font-family:var(--serif);font-size:17px}.work-title{position:absolute;left:var(--pad);top:120px;z-index:4;font-size:10px;text-transform:uppercase;letter-spacing:.14em;background:var(--wine);padding:10px 14px}
.scene.finish{display:grid;grid-template-columns:1.1fr .9fr;background:var(--clay)}.finish-copy{padding:130px var(--pad) 70px;display:flex;flex-direction:column;justify-content:center}.finish-copy h2{margin:25px 0}.finish-choices{border-left:1px solid var(--ink);display:grid;grid-template-rows:repeat(4,1fr);padding-top:84px}.finish-choices a{padding:20px var(--pad);border-bottom:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between;font-size:14px}.finish-choices a:after{content:"↗";font-size:22px}.finish-choices a:hover{background:var(--wine);color:#fff}
.journey-ui{position:fixed;z-index:70;right:var(--pad);bottom:20px;display:flex;align-items:center;gap:10px;padding:7px;background:rgba(36,32,31,.96);color:#fff;border:1px solid rgba(255,255,255,.72);box-shadow:0 12px 34px rgba(20,18,18,.34)}.journey-progress{width:clamp(96px,11vw,150px);height:3px;background:rgba(255,255,255,.28);overflow:hidden}.journey-progress i{display:block;height:100%;background:var(--clay);width:20%;transition:width .2s}.journey-ui button{width:48px;height:48px;padding:0;display:grid;place-items:center;border:1px solid #fff;background:#fff;color:var(--ink);font-size:21px;font-weight:700;line-height:1;transition:background-color .18s,color .18s,transform .18s}.journey-ui button:hover{background:var(--clay);color:var(--ink);transform:translateY(-1px)}.journey-ui button:focus-visible{outline:3px solid var(--clay);outline-offset:3px}.journey-count{min-width:50px;text-align:center;font-size:10px;font-weight:700;letter-spacing:.1em;font-variant-numeric:tabular-nums}
/* interiors */
.interior-main{min-height:70vh}.page-opening{padding:clamp(70px,10vw,150px) var(--pad) 70px;display:grid;grid-template-columns:1fr .75fr;gap:8vw;border-bottom:1px solid var(--line)}.page-opening h1{margin:20px 0}.page-opening .lede{align-self:end}.side-note{font-family:var(--serif);font-style:italic;font-size:17px;border-left:2px solid var(--clay);padding-left:18px}.section{padding:clamp(75px,9vw,140px) 0;border-bottom:1px solid var(--line)}.scope-map{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:150px;border:1px solid var(--line)}.scope-cell{padding:22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}.scope-cell h3{font-size:28px}.scope-cell.big{grid-column:span 3;grid-row:span 2;background:var(--wine);color:#fff}.scope-cell.wide{grid-column:span 3}.scope-cell.tall{grid-column:span 2;grid-row:span 2;background:var(--clay)}.scope-cell.small{grid-column:span 1}.scope-cell:after{content:attr(data-room);position:absolute;right:12px;bottom:10px;font-size:8px;letter-spacing:.14em}
.decision-columns{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw}.decision-list{border-top:1px solid}.decision-list details{border-bottom:1px solid}.decision-list summary{list-style:none;padding:22px 0;font-size:23px;font-weight:600;display:flex;justify-content:space-between}.decision-list summary:after{content:"+"}.decision-list details[open] summary:after{content:"−"}.decision-list details p{font-family:var(--serif);font-size:18px;max-width:700px;padding-bottom:20px}
.project-wall{columns:3 320px;column-gap:18px}.project-poster{break-inside:avoid;margin-bottom:18px;position:relative;background:var(--paper)}.project-poster img{width:100%}.poster-copy{padding:22px}.poster-copy h2{font-size:36px;margin:10px 0}.poster-copy span{font-size:9px;text-transform:uppercase;letter-spacing:.12em}
.story-opening{min-height:780px;position:relative;display:flex;align-items:flex-end;color:#fff;background-size:cover;background-position:center}.story-opening:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,18,18,.88),rgba(20,18,18,.08) 70%)}.story-title{position:relative;z-index:2;padding:80px var(--pad);max-width:950px}.story-title h1{margin:18px 0}.story-data{display:flex;flex-wrap:wrap;gap:30px;font-size:9px;text-transform:uppercase;letter-spacing:.12em}.story-body{display:grid;grid-template-columns:280px minmax(0,780px);gap:8vw;justify-content:center}.story-aside{font-size:10px;text-transform:uppercase;letter-spacing:.1em}.story-aside div{border-top:1px solid;padding:12px 0}.story-copy p{font-family:var(--serif);font-size:clamp(19px,1.8vw,25px);line-height:1.55}.material-run{display:grid;grid-template-columns:repeat(4,1fr)}.material-run div{min-height:180px;padding:20px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end}.material-run div:nth-child(1){background:#d7d0c4}.material-run div:nth-child(2){background:#7d3039;color:#fff}.material-run div:nth-child(3){background:#a66646;color:#fff}.material-run div:nth-child(4){background:#9da69a}.material-run b{font-size:19px}.material-run span{font-size:9px;text-transform:uppercase;letter-spacing:.1em}
.timeline{border-left:1px solid;margin-left:25%;max-width:900px}.timeline article{padding:20px 0 70px 55px;position:relative}.timeline article:before{content:"";position:absolute;width:13px;height:13px;border:1px solid;background:var(--chalk);left:-7px;top:26px}.timeline span{font-size:9px;text-transform:uppercase;letter-spacing:.12em}.timeline h2{font-size:45px;margin:12px 0}.timeline ul{padding-left:18px}
.disruption-plan{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line)}.week{min-height:300px;padding:16px;border-right:1px solid var(--line);position:relative}.week:last-child{border:0}.week b{writing-mode:vertical-rl;font-size:10px;letter-spacing:.12em}.week span{position:absolute;bottom:15px;left:15px;font-family:var(--serif);font-size:18px}.week.active{background:var(--wine);color:#fff}.week.buffer{background:var(--clay)}
.about-frame{display:grid;grid-template-columns:1.25fr .75fr;min-height:760px}.about-image{background:url('../images/team-setout.jpg') center/cover}.about-text{padding:100px var(--pad);background:var(--clay);display:flex;flex-direction:column;justify-content:flex-end}.about-text h1{margin:20px 0}.people-list{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid}.person{padding:25px;border-right:1px solid}.person:last-child{border:0}.person b{font-size:22px}.person span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.1em;margin-top:8px}
.contact-shell{display:grid;grid-template-columns:.75fr 1.25fr;min-height:780px}.contact-intro{padding:90px var(--pad);background:var(--wine);color:#fff}.contact-intro h1{margin:20px 0}.contact-form{padding:90px var(--pad);background:var(--paper)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:9px;text-transform:uppercase;letter-spacing:.12em}.field input,.field select,.field textarea{border:0;border-bottom:1px solid;background:transparent;padding:12px 0;border-radius:0}.field textarea{min-height:120px}.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-bottom:2px solid var(--wine)}.check{display:flex;gap:10px;font-size:12px}.success{display:none;background:var(--clay);padding:30px}.success.show{display:block}
.article-shell{display:grid;grid-template-columns:230px minmax(0,760px);gap:8vw;justify-content:center}.article-aside{font-size:10px;text-transform:uppercase}.article-aside div{padding:12px 0;border-top:1px solid}.article-body h2{font-size:43px;margin-top:55px}.article-body p,.article-body li{font-family:var(--serif);font-size:18px;line-height:1.7}.note{background:var(--clay);padding:25px;margin:35px 0}
.site-footer{padding:70px var(--pad) 0;background:var(--ink);color:#fff}.footer-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:50px}.footer-grid h2{font-size:45px}.footer-col b{font-size:9px;text-transform:uppercase;letter-spacing:.14em}.footer-col a{display:block;font-size:13px;margin:9px 0}.footer-bottom{border-top:1px solid rgba(255,255,255,.25);margin-top:55px;padding:18px 0;display:flex;justify-content:space-between;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.demo-note{background:var(--wine);margin:0 calc(var(--pad)*-1);padding:11px var(--pad);text-align:center;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:900px){.site-head{grid-template-columns:1fr auto}.head-note{display:none}.menu-sheet{grid-template-columns:1fr}.menu-aside{display:none}.scene.brief,.scene.phase,.scene.finish{grid-template-columns:1fr}.brief-copy,.phase-copy,.finish-copy{padding-top:110px}.room-index,.phase-stage,.finish-choices{min-height:50%}.scene.work{grid-template-columns:1fr 1fr}.work-tile:last-child{display:none}.page-opening{grid-template-columns:1fr}.scope-map{grid-template-columns:repeat(4,1fr)}.scope-cell.big,.scope-cell.wide{grid-column:span 2}.decision-columns{grid-template-columns:1fr}.project-wall{columns:2}.about-frame,.contact-shell{grid-template-columns:1fr}.about-image{min-height:520px}.people-list{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:680px){:root{--banner:40px;--pad:20px}.template-banner{font-size:9px;text-align:center;line-height:1.2}.site-head{height:66px}.wordmark{font-size:19px}.menu-toggle{width:40px;height:40px}.menu-sheet{padding-top:66px}.menu-links a{font-size:38px;padding:13px 20px}.journey{height:auto;display:block;overflow:visible}.scene{height:auto;min-height:680px;overflow:hidden}.journey-ui{display:none}.scene.hero{min-height:calc(100vh - var(--banner))}.hero-copy{bottom:65px}.hero-copy h1{font-size:57px}.scene.brief,.scene.phase,.scene.finish{display:block}.brief-copy,.phase-copy,.finish-copy{padding:100px 20px 50px}.room-index{grid-template-columns:1fr}.room-link{min-height:230px;border-right:0}.room-link:nth-child(n+3){border-bottom:1px solid var(--line)}.phase-stage{min-height:430px}.phase-model{width:330px;height:250px}.phase-key{right:18px;bottom:18px}.scene.work{display:block}.work-title{top:85px}.work-tile{height:520px;border-right:0;border-bottom:1px solid}.work-tile:last-child{display:block}.finish-choices{padding-top:0;border-left:0;border-top:1px solid}.finish-choices a{min-height:90px}.scene-no{display:none}.page-opening{padding:70px 20px 45px}.page-opening h1{font-size:55px}.section{padding:70px 0}.scope-map{display:block}.scope-cell{min-height:220px;border-right:0}.decision-list summary{font-size:19px}.project-wall{columns:1}.story-opening{min-height:650px}.story-title{padding:60px 20px}.story-title h1{font-size:55px}.story-body,.article-shell{grid-template-columns:1fr}.story-aside,.article-aside{display:none}.material-run{grid-template-columns:1fr 1fr}.timeline{margin-left:15px}.timeline article{padding-left:35px}.disruption-plan{grid-template-columns:1fr}.week{min-height:100px;border-right:0;border-bottom:1px solid}.week b{writing-mode:initial}.people-list{grid-template-columns:1fr}.person{border-right:0;border-bottom:1px solid}.contact-intro,.contact-form{padding:70px 20px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{display:grid;gap:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.menu-sheet{transition:none}.work-tile img{transition:none}}
