:root{--ivory:#F6F4EF;--coal:#1D211E;--green:#BCCF73;--muted:#60665e;--line:#d4d7cd;--space:clamp(24px,4.3vw,80px);--sans:'Arial',sans-serif;--serif:'Georgia',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--ivory);color:var(--coal);font-family:var(--sans);font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}img{display:block;max-width:100%;height:auto}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:6px}::selection{background:var(--green);color:var(--coal)}.skip{position:absolute;top:-100px;left:20px;z-index:99;padding:16px;background:var(--coal);color:var(--ivory)}.skip:focus{top:10px}.header{display:flex;align-items:center;justify-content:space-between;padding:29px var(--space);gap:24px}.brand{font-size:25px;letter-spacing:-1.1px;font-weight:600;white-space:nowrap}.brand i{color:#6c794d;font-style:normal}.nav{display:flex;gap:34px;align-items:center;font-size:14px}.nav a:not(.contact-link){position:relative}.nav a:not(.contact-link):after{content:'';height:1px;background:currentColor;position:absolute;left:0;right:100%;bottom:-5px;transition:right .3s}.nav a:hover:after{right:0}.contact-link{border-bottom:1px solid var(--coal);padding:8px 0;margin-left:22px}.arrow{display:inline-block;transition:transform .3s}.contact-link:hover .arrow,.text-link:hover .arrow{transform:translate(3px,-3px)}.menu-toggle{display:none}.hero{min-height:740px;height:calc(100svh - 96px);max-height:1000px;padding:54px var(--space) 75px;position:relative;display:flex;align-items:center;isolation:isolate}.hero-copy{width:52%;position:relative;z-index:2;padding-bottom:70px}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:400;margin:0 0 30px}.hero h1{font-size:clamp(80px,8.6vw,166px);font-weight:400;letter-spacing:-.074em;line-height:.99;margin:0 0 35px;position:relative}.hero h1 .line{display:block;overflow:hidden;padding:0 .06em .09em 0;margin-bottom:-.09em}.hero h1 .line span{display:block;animation:rise .8s cubic-bezier(.22,.75,.25,1) both}.hero h1 .line:nth-child(2) span{animation-delay:.1s;font-family:var(--serif);font-style:italic;letter-spacing:-.07em}.intro{max-width:365px;font-size:16px;line-height:1.7;margin:32px 0 27px}.text-link{font-size:14px;display:inline-flex;gap:20px;align-items:center;border-bottom:1px solid currentColor;padding:0 0 8px}.hero-art{position:absolute;inset:10% 0 16% 53%;z-index:0;animation:surface-in 1s .15s both}.hero-art:before{content:'';position:absolute;inset:6% 0 2% 12%;background:#e2e1d8;clip-path:polygon(8% 0,100% 0,100% 100%,0 100%)}.site-shot{position:absolute;box-shadow:0 28px 55px #20251f26;overflow:hidden;background:#ddd}.site-shot img{width:100%;height:100%;object-fit:cover}.shot-main{width:103%;aspect-ratio:16/10;left:4%;top:3%;transform:rotate(-4deg);transform-origin:50% 50%}.shot-secondary{width:77%;aspect-ratio:16/10;left:-6%;bottom:-1%;transform:rotate(4deg);box-shadow:0 25px 60px #20251f4d}.scroll-cue{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);font-size:12px;white-space:nowrap;display:flex;align-items:center;gap:18px}.hero-foot{position:absolute;bottom:24px;left:var(--space);font-size:12px;color:var(--muted)}.hero-foot.right{left:auto;right:var(--space)}.works{padding:45px 0 0;background:var(--coal);color:var(--ivory)}.section-top{padding:0 var(--space) 30px;display:flex;justify-content:space-between;gap:30px;align-items:flex-end}.section-top .eyebrow{margin-bottom:14px;color:#c4c9bc}.section-top h2{font-size:clamp(33px,4.1vw,66px);font-weight:400;letter-spacing:-.055em;line-height:1.1;margin:0}.section-top h2 em{font-family:var(--serif);font-weight:400}.section-top>p{font-size:13px;margin:0 0 4px;color:#c4c9bc}.gallery{display:flex;width:100%;min-height:640px;height:75vh;max-height:900px}.project-panel{position:relative;flex:1;min-width:0;overflow:hidden;transition:flex .65s cubic-bezier(.22,.61,.36,1);border-right:1px solid #f6f4ef33}.project-panel:last-child{border-right:0}.panel-image{position:absolute;height:100%;width:100%;object-fit:cover;object-position:center;transition:transform .7s,filter .7s;filter:brightness(.64);transform:scale(1.025)}.project-panel:nth-child(2) .panel-image{object-position:48%}.project-panel:nth-child(3) .panel-image{object-position:67%}.project-panel:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#121510d9);pointer-events:none}.project-panel:hover,.project-panel:focus-within{flex:1.4}.project-panel:hover .panel-image,.project-panel:focus-within .panel-image{transform:scale(1);filter:brightness(.9)}.panel-label{position:absolute;z-index:2;inset:auto 30px 28px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px;justify-content:space-between}.panel-label h3{font-size:clamp(24px,2.65vw,44px);line-height:1.06;letter-spacing:-.05em;font-weight:400;margin:0 0 12px}.panel-label p{font-size:12px;margin:0;color:#e2e3de}.panel-link{position:absolute;inset:0;z-index:3}.panel-link:focus-visible{outline-offset:-8px}.project-arrow{height:46px;width:46px;border:1px solid #f6f4ef88;border-radius:50%;display:grid;place-items:center;font-size:23px;flex-shrink:0;transition:background .3s,color .3s}.project-panel:hover .project-arrow,.project-panel:focus-within .project-arrow{background:var(--green);color:var(--coal);border-color:var(--green)}.panel-interface{position:absolute;left:9%;top:18%;width:82%;box-shadow:0 20px 50px #0006;opacity:0;transform:translateY(30px);transition:opacity .5s,transform .6s;z-index:1}.project-panel:hover .panel-interface,.project-panel:focus-within .panel-interface{opacity:1;transform:translateY(0)}@keyframes rise{from{transform:translateY(105%)}to{transform:translateY(0)}}@keyframes surface-in{from{opacity:.3;transform:translateY(30px) scale(.97)}to{opacity:1;transform:none}}@media(min-width:1600px){.hero-copy{width:54%}.hero-art{inset:8% 0 12% 55%}}@media(max-width:900px){.nav{gap:20px}.contact-link{margin-left:0}.hero{min-height:840px;height:auto;padding-top:40px;align-items:flex-start}.hero-copy{width:65%;padding-bottom:0}.hero h1{font-size:clamp(80px,12vw,120px)}.hero-art{inset:40% -8% 12% 45%}.hero-art:before{inset:0}.hero .intro{max-width:310px}.gallery{min-height:560px;height:65vh}.panel-label{inset:auto 20px 25px}.panel-label h3{font-size:28px}.panel-interface{top:25%}.hero-foot.right{display:none}}@media(max-width:650px){.header{padding:23px var(--space);flex-wrap:wrap;position:relative;z-index:5}.brand{font-size:23px}.menu-toggle{display:block;border:0;background:transparent;font-size:14px;padding:8px 0}.nav{display:none;flex-direction:column;align-items:flex-start;width:100%;gap:20px;padding:20px 0 12px;font-size:18px}.nav.is-open{display:flex}.contact-link{font-size:16px}.hero{min-height:820px;padding-top:30px;padding-bottom:65px;overflow:hidden}.hero-copy{width:100%}.eyebrow{font-size:11px;letter-spacing:.09em;margin-bottom:25px}.hero h1{font-size:clamp(68px,15vw,96px);line-height:1.02;letter-spacing:-.065em;margin-bottom:20px}.hero .intro{font-size:15px;line-height:1.6;max-width:310px;margin:23px 0 18px}.hero-art{inset:405px -2% 88px 18%;height:285px}.shot-main{width:104%;left:0;top:0}.shot-secondary{width:73%;left:-15%;bottom:0}.hero-foot{display:none}.scroll-cue{bottom:28px}.section-top{display:block;padding-bottom:30px}.section-top h2{font-size:35px}.section-top>p{margin-top:20px}.works{padding-top:35px}.gallery{height:auto;display:block;max-height:none}.project-panel{height:550px;border-right:0;border-bottom:1px solid #ffffff40}.panel-label{inset:auto 25px 30px}.panel-label h3{font-size:37px}.panel-label p{font-size:13px}.panel-image{filter:brightness(.8)}.panel-interface{opacity:1;transform:none;top:17%;width:82%}.project-panel:nth-child(2) .panel-interface{top:23%}.project-panel:nth-child(3) .panel-interface{top:17%}.panel-image{object-position:center}.project-panel:hover{flex:1}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.panel-interface{transform:none}}
/* Editorial continuation */
body{overflow-x:clip}.hero{overflow:hidden}.section-pad{padding:110px var(--space)}.section-title{font-size:clamp(40px,4.4vw,76px);font-weight:400;line-height:1.08;letter-spacing:-.055em;margin:0 0 35px}.section-title em{font-family:var(--serif);font-weight:400}.section-intro{display:grid;grid-template-columns:1fr 1fr;gap:0 8%}.section-intro>.eyebrow{grid-column:1/-1}.section-intro>p:last-child{max-width:360px;align-self:end;margin:0 0 36px;justify-self:end;color:var(--muted);line-height:1.7}.service-list{margin-top:48px}.service-list article{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.1fr .65fr;gap:5%;padding:32px 0}.service-list h3{font-size:27px;line-height:1.2;font-weight:400;letter-spacing:-.03em;margin:0}.service-list p{margin:0;max-width:430px;color:var(--muted);line-height:1.7}.service-list span{font-size:12px;justify-self:end;align-self:start;color:var(--muted)}.method{background:#e8e9e1;display:grid;grid-template-columns:1fr 1fr;gap:8%}.method-heading>p:last-child{max-width:340px;color:var(--muted);line-height:1.7}.steps{padding:0;margin:0;list-style:none}.steps li{display:grid;grid-template-columns:40px 1fr;gap:24px;padding:25px 0;border-top:1px solid #bdc1b5}.steps li:first-child{padding-top:0;border-top:0}.steps li>span{font-size:12px;padding-top:6px;color:var(--muted)}.steps h3{font-size:26px;font-weight:400;letter-spacing:-.03em;margin:0 0 10px}.steps p{margin:0;color:var(--muted);line-height:1.65}.about{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;padding-top:135px;padding-bottom:135px}.about-mark{font-size:clamp(100px,25vw,380px);letter-spacing:-.11em;font-weight:500;line-height:1;padding:80px 30px 110px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);user-select:none}.about-mark span{color:var(--green)}.about-copy>p:not(.eyebrow){max-width:460px;color:var(--muted);line-height:1.7}.about-location{font-size:14px;margin:25px 0}.contact{background:var(--coal);color:var(--ivory);display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:start}.contact-heading .eyebrow{color:#c4c9bc}.contact-heading>p:last-child{max-width:350px;color:#c4c9bc;line-height:1.7}.contact .section-title{font-size:clamp(45px,5vw,86px)}.contact .section-title em{color:var(--green)}.demo-note{font-size:13px;line-height:1.65;border-left:2px solid var(--green);padding-left:17px;margin:0 0 25px;color:#cbd0c5}.demo-note strong{display:block;color:var(--ivory);font-weight:400}.form-help{font-size:12px;color:#cbd0c5;margin-bottom:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.form-grid label{display:flex;flex-direction:column;font-size:14px;gap:10px;min-width:0}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid textarea,.form-grid select{width:100%;border:0;border-bottom:1px solid #767d70;border-radius:0;background:transparent;color:var(--ivory);padding:8px 0 12px;font-size:16px;min-height:44px;resize:vertical}.form-grid ::placeholder{color:#a7aea0;opacity:1;font-size:14px}.form-grid select option{background:var(--coal);color:var(--ivory)}.field-error{color:#ffc6b9;font-size:13px}.field-error:empty{display:none}.form-grid [aria-invalid="true"]{border-color:#ffc6b9}.optional-fields{margin:25px 0 35px;border-bottom:1px solid #545c4f}.optional-fields summary{padding:10px 0 18px;cursor:pointer;font-size:14px}.optional-fields summary span{font-size:12px;color:#c4c9bc;margin-left:10px}.optional-fields[open] .form-grid{padding:10px 0 30px}.submit-button{padding:16px 22px;background:var(--green);color:var(--coal);border:1px solid var(--green);display:flex;gap:40px;justify-content:space-between;align-items:center;min-height:54px;transition:background .25s}.submit-button:hover{background:#cddc94}.submit-button:disabled{opacity:.5;cursor:default}.form-status{font-size:14px;line-height:1.7;color:var(--green);margin-top:23px}.form-status:empty{display:none}.form-status.error{color:#ffc6b9}.footer{padding:35px var(--space);background:var(--coal);color:var(--ivory);border-top:1px solid #4c5546;display:flex;align-items:center;justify-content:space-between;gap:25px}.footer p,.footer span,.footer>a:last-child{font-size:12px;color:#c4c9bc}.footer .brand i{color:var(--green)}.reveal.is-revealed{animation:small-rise .7s both}.case-heading{padding-top:50px;padding-bottom:65px}.case-title-row{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-top:70px}.case-title-row h1{font-size:clamp(55px,7vw,110px);font-weight:400;line-height:1.05;letter-spacing:-.055em;margin:0}.case-title-row .eyebrow{margin-bottom:20px}.case-title-row .text-link{white-space:nowrap;flex-shrink:0}.case-intro{font-size:20px;line-height:1.65;max-width:660px;margin:35px 0 0}.case-status{font-size:13px;color:var(--muted);margin-top:20px}.case-desktop{margin:0;padding:60px var(--space);background:#dce0d4}.case-desktop img{width:100%;box-shadow:0 20px 50px #1d211e21}.case-desktop figcaption,.case-mobile figcaption{font-size:12px;margin-top:18px;color:var(--muted)}.case-design{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:start}.case-design article{margin-top:38px;max-width:450px}.case-design h3{font-size:24px;font-weight:400;letter-spacing:-.03em;margin:0}.case-design article p{color:var(--muted);line-height:1.75}.case-mobile{margin:0 auto;max-width:320px;padding:15px 15px 25px;background:#e5e7de}.case-mobile img{width:100%;height:auto}.image-credit{font-size:12px;line-height:1.7;color:var(--muted);margin-top:50px;max-width:400px}.case-end{border-top:1px solid var(--line)}.next-project{display:flex;gap:30px;justify-content:space-between;font-size:clamp(35px,5vw,75px);letter-spacing:-.05em;line-height:1.2;margin-bottom:40px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes small-rise{from{transform:translateY(18px)}to{transform:translateY(0)}}
@media(min-width:901px){.panel-interface{opacity:.92;top:20%;transform:translateY(18px) scale(.92)}.project-panel:hover .panel-interface,.project-panel:focus-within .panel-interface{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:1000px){.service-list article{grid-template-columns:1fr 1.4fr}.service-list span{grid-column:2;justify-self:start}.contact{gap:5%}.contact .section-title{font-size:49px}.form-grid{gap:22px 15px}.footer{flex-wrap:wrap}.footer p{display:none}}
@media(max-width:650px){.section-pad{padding:70px var(--space)}.section-title{font-size:40px;line-height:1.12}.section-intro{display:block}.section-intro>p:last-child{margin:0;max-width:350px}.service-list{margin-top:35px}.service-list article{display:block;padding:27px 0}.service-list h3{margin-bottom:18px}.service-list span{display:block;margin-top:17px}.method,.about,.contact,.case-design{grid-template-columns:1fr;gap:40px}.steps{margin-top:10px}.about-mark{font-size:130px;padding:30px 0 45px;max-width:100%}.about-copy>p:not(.eyebrow){font-size:16px}.contact .section-title{font-size:49px}.form-grid{grid-template-columns:1fr;gap:24px}.footer{gap:22px}.footer .brand{width:100%}.case-heading{padding-top:30px}.case-title-row{display:block;margin-top:45px}.case-title-row h1{font-size:53px;overflow-wrap:anywhere}.case-title-row .text-link{margin-top:30px}.case-intro{font-size:18px}.case-desktop{padding:28px 16px}.case-design{gap:45px}.case-mobile{max-width:280px}.next-project{font-size:36px}.hero .intro{font-size:16px}.eyebrow{font-size:12px}.hero-art{top:435px;height:270px}.hero{min-height:850px}}@media(prefers-reduced-motion:reduce){.reveal.is-revealed{animation:none}.panel-interface{transform:none!important}}

/* Touch cards remain stable on the first tap; hover-only flex/filter animations
   otherwise start while iOS is trying to activate the project link. */
@media(hover:none),(pointer:coarse){
 .project-panel,.project-panel:hover,.project-panel:focus-within{flex:1;transition:none}
 .project-panel .panel-image,.project-panel:hover .panel-image,.project-panel:focus-within .panel-image{transform:scale(1);filter:brightness(.8);transition:none}
 .project-panel .panel-interface,.project-panel:hover .panel-interface,.project-panel:focus-within .panel-interface{opacity:1;transform:none;transition:none}
}

/* Vector arrows share the same thin stroke on desktop and iOS; no emoji font. */
.ui-arrow{display:inline-block;width:1em;height:1em;vertical-align:-.125em;flex:none;pointer-events:none}
