:root{--s-bg: #f6f4ef;--s-ink: #292a27;--s-accent: #ee623b;--s-line: #d3d1cb;--s-font: "League Spartan", "Manrope", system-ui, sans-serif;--s-pad: clamp(20px, 2.7vw, 52px) }html.site-mode,html.site-mode body{overflow:auto;height:auto;background:var(--s-bg)}.site{font-family:var(--s-font);color:var(--s-ink);background:var(--s-bg);min-height:100vh;-webkit-font-smoothing:antialiased}.site a{color:inherit;text-decoration:none}.site a:focus-visible,.site button:focus-visible{outline:2px solid var(--s-accent);outline-offset:3px}.skip{position:absolute;left:-999px;top:8px;background:var(--s-ink);color:#fff;padding:8px 12px}.skip:focus{left:8px;z-index:100}.site-head{display:flex;justify-content:space-between;align-items:center;padding:26px var(--s-pad) 18px;margin:0 var(--s-pad);padding-left:0;padding-right:0;border-bottom:1px solid var(--s-line)}.site-logo img{display:block;width:88px;height:auto}.site-nav{display:flex;gap:clamp(18px,2.6vw,48px);font-size:clamp(17px,1.45vw,28px);color:var(--s-accent)}.site-nav a{opacity:.72;font-weight:500}.site-nav a.on{opacity:1;font-weight:700}.block{padding:clamp(40px,6vw,110px) var(--s-pad)}.kicker{font-size:clamp(14px,1.3vw,25px);color:var(--s-accent);margin:0 0 clamp(14px,1.6vw,30px);font-weight:500}.kicker a{text-decoration:underline;text-underline-offset:4px}.display{font-size:clamp(52px,9.6vw,185px);line-height:.92;letter-spacing:-.01em;font-weight:700;color:var(--s-accent);margin:0;text-wrap:balance}.display-m{font-size:clamp(40px,7.8vw,150px);line-height:.95;letter-spacing:-.01em;font-weight:700;color:var(--s-accent);margin:0;text-wrap:balance}.display-m.ink{color:var(--s-ink)}.display-m.light{color:#fff}.display-m .hl{color:var(--s-accent)}.lead{font-size:clamp(16px,1.55vw,30px);line-height:1.38;max-width:48ch;margin:clamp(18px,2vw,36px) 0 0;color:var(--s-accent)}.lead.right{color:var(--s-ink);margin-left:auto;max-width:46ch}.small-lead{font-size:clamp(15px,1.4vw,27px);line-height:1.4;margin:clamp(18px,2vw,36px) 0 0}.accent{color:var(--s-accent)}.right{margin-left:auto;max-width:46ch;font-size:clamp(15px,1.3vw,24px);line-height:1.4}.right p{margin:0 0 1em}.arrow{display:inline-block;margin-top:10px;color:var(--s-accent);font-weight:500}.arrow:hover{text-decoration:underline;text-underline-offset:4px}.hero{position:relative;margin:0 var(--s-pad)}.hero-img{display:block;width:100%;aspect-ratio:16 / 9;height:auto;object-fit:cover;background:#c5c5c5}.hero-title{position:absolute;left:0;right:0;bottom:clamp(10px,3vw,60px);margin:0;overflow:hidden;font-size:clamp(40px,7.9vw,152px);line-height:1;font-weight:700;color:var(--s-accent);white-space:nowrap}.ticker{display:inline-flex;animation:ticker 48s linear infinite;will-change:transform}.ticker-item{padding-right:.22em}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.ticker{animation:none}.ticker-item:not(:first-child){display:none}}video.hero-img{object-fit:cover;filter:grayscale(1)}.areas{display:grid;gap:clamp(64px,9vw,170px)}.area{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,60px);align-items:center}.area.flip .area-img{order:2}.area-img img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;background:#c5c5c5;transition:transform .4s}.area-img:hover img{transform:scale(1.015)}.area-img.square img{aspect-ratio:1 / 1;object-fit:cover}.area-img.square{max-width:86%;margin:0 auto}.area-text p{font-size:clamp(14px,1.15vw,22px);line-height:1.4;color:var(--s-accent);max-width:40ch;margin:1em 0 0}.area-text h3 a:hover{text-decoration:underline;text-decoration-thickness:.06em;text-underline-offset:.08em}.dark{background:var(--s-ink);color:#fff}.method-text{margin:clamp(30px,4vw,70px) 0 0 auto;max-width:46ch;font-size:clamp(14px,1.2vw,23px);line-height:1.4}.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:35.4fr 42.6fr 22fr;gap:20px}.steps .kicker{margin:0;font-size:clamp(14px,1.56vw,30px)}.steps h3{color:var(--s-accent);font-size:clamp(26px,2.76vw,53px);margin:clamp(10px,1.6vw,32px) 0 clamp(14px,2.3vw,45px);font-weight:700;line-height:1}.steps p{margin:0;font-size:clamp(14px,1.56vw,30px);line-height:1.2;max-width:34ch;color:var(--s-ink)}.process{padding-top:clamp(30px,4vw,80px)}.process>.kicker{margin-bottom:clamp(30px,4.5vw,86px)}.about-hero{box-sizing:border-box;min-height:calc(100vh - 100px);padding-top:clamp(24px,3vw,56px);padding-bottom:clamp(24px,3vw,56px);display:flex;flex-direction:column;justify-content:space-between;gap:clamp(20px,3vw,60px)}.about-hero .display{line-height:.98}.about-hero .lead.right{margin-left:51%;max-width:none;font-size:clamp(14px,1.45vw,28px);line-height:1.2}.about-hero .lead br{display:none}.about-2 .right{margin-top:clamp(30px,5vw,90px);margin-left:50%;max-width:none;font-size:clamp(15px,1.56vw,30px);line-height:1.2}.about-2 .right p{margin:0 0 1.2em}@media (max-width: 760px){.about-hero .lead.right,.about-2 .right{margin-left:0}.about-hero{min-height:0}}.about-2 .display-m{max-width:14ch}.contact-list ul{list-style:none;margin:0 0 clamp(30px,4vw,70px);padding:0;border-top:1px solid var(--s-line)}.contact-list li{border-bottom:1px solid var(--s-line)}.contact-list a{display:block;padding:clamp(14px,1.6vw,30px) 0;font-size:clamp(40px,7vw,135px);font-weight:700;line-height:1;color:var(--s-ink)}.contact-list a:hover{color:var(--s-accent)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:clamp(24px,3vw,56px)}.card img,.card-noimg{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#c5c5c5}.card h2{font-size:clamp(22px,2vw,36px);margin:14px 0 4px;line-height:1.1}.card .kicker{margin:0;font-size:14px}.card:hover h2{color:var(--s-accent)}.project-intro .right{margin-top:clamp(24px,3vw,50px)}.meta{color:#7a7b76;font-size:.85em}.gallery-page{display:flex;flex-direction:column;gap:14px;padding:0 var(--s-pad);max-width:1400px;margin:0 auto}.gallery-page figure{margin:0;width:100%;background:#eceae4}.gallery-page img{display:block;width:100%;height:100%;object-fit:contain}.gallery-page .video{position:relative;width:100%;height:0;background:#111}.gallery-page .video iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.project-nav{display:flex;justify-content:space-between;gap:20px;font-size:clamp(16px,1.4vw,26px);color:var(--s-accent);font-weight:500}.project-nav a:hover{text-decoration:underline;text-underline-offset:4px}.site-cta{background:var(--s-ink);color:#fff;padding:clamp(40px,5vw,90px) var(--s-pad) 24px}.cta-title{display:inline-block;font-size:clamp(52px,9vw,170px);font-weight:700;line-height:1;color:#fff}.cta-title:hover{color:var(--s-accent)}.site-foot{display:flex;justify-content:space-between;align-items:center;margin-top:clamp(40px,5vw,90px);padding-top:18px;border-top:1px solid rgba(255,255,255,.2);font-size:14px}.site-foot small{color:#ffffff8c}.backtop{background:none;border:0;color:var(--s-accent);font:inherit;cursor:pointer;font-size:clamp(14px,1.2vw,22px)}@media (max-width: 760px){.area,.area.flip{grid-template-columns:1fr}.area.flip .area-img{order:0}.steps{grid-template-columns:1fr}.site-nav{font-size:16px;gap:16px}.site-logo img{width:64px}.hero-img{aspect-ratio:4 / 3;height:auto}.project-nav{flex-direction:column}}@media (prefers-reduced-motion: reduce){.area-img img{transition:none}}[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}[data-reveal].in{opacity:1;transform:none}.hero-img{animation:hero-in 1.1s cubic-bezier(.2,.7,.2,1) both}.hero-title{animation:title-in 1s .35s cubic-bezier(.2,.7,.2,1) both}@keyframes hero-in{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}@keyframes title-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}.site-nav a{position:relative;transition:opacity .2s}.site-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:2px;background:currentColor;transition:right .3s cubic-bezier(.2,.7,.2,1)}.site-nav a:hover:after,.site-nav a.on:after{right:0}.site-nav a:hover{opacity:1}.arrow{transition:transform .25s,color .2s}.arrow:hover{transform:translate(4px);text-decoration:none}.area-img{overflow:hidden;display:block}.area-img img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}.area-img:hover img{transform:scale(1.04)}.area-text h3 a{transition:color .3s}.area:hover .area-text h3 a{color:var(--s-ink)}.cta-title{transition:transform .5s cubic-bezier(.2,.7,.2,1),color .3s}.cta-title:hover{transform:translate(18px)}.card img{transition:transform .8s cubic-bezier(.2,.7,.2,1);overflow:hidden}.card:hover img{transform:scale(1.03)}.card{overflow:hidden}.contact-list a{transition:color .25s,padding-left .35s cubic-bezier(.2,.7,.2,1)}.contact-list a:hover{padding-left:.2em}.site-logo img{transition:transform .4s}.site-logo:hover img{transform:rotate(-6deg) scale(1.05)}@media (prefers-reduced-motion: reduce){[data-reveal]{opacity:1;transform:none;transition:none}.hero-img,.hero-title{animation:none}.arrow,.area-img img,.cta-title,.card img,.contact-list a,.site-logo img,.site-nav a:after{transition:none}}.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}@media (max-width: 1100px){.about-hero{min-height:0}.about-hero .lead.right,.about-2 .right{margin-left:28%;max-width:none}.about-hero .lead br{display:none}.right,.lead.right{max-width:none}}@media (max-width: 760px){.about-hero .lead.right,.about-2 .right,.method-text,.project-intro .right{margin-left:0}.site-nav a{padding:10px 2px}.site-head{padding-top:14px;padding-bottom:10px}.backtop,.arrow{padding:8px 0}.steps li+li{border-top:1px solid var(--s-line);padding-top:24px}.block{padding-left:20px;padding-right:20px}.hero-title{font-size:11vw}}@media (min-width: 1100px){.site-nav{font-size:clamp(22px,1.8vw,34px)}.kicker{font-size:clamp(18px,1.6vw,30px)}.lead{font-size:clamp(22px,1.9vw,38px);max-width:44ch}.lead.right,.about-hero .lead.right,.about-2 .right,.small-lead{font-size:clamp(20px,1.8vw,34px)}.right{font-size:clamp(19px,1.7vw,32px)}.arrow{font-size:clamp(18px,1.5vw,28px)}.area-text p{font-size:clamp(19px,1.6vw,30px);max-width:36ch}.steps .kicker{font-size:clamp(18px,1.7vw,32px)}.steps h3{font-size:clamp(32px,3.2vw,62px)}.steps p{font-size:clamp(19px,1.8vw,34px);max-width:30ch}.contact-list a{font-size:clamp(56px,8vw,150px)}.card h2{font-size:clamp(26px,2.3vw,42px)}.card .kicker{font-size:16px}.project-nav{font-size:clamp(20px,1.6vw,30px)}.meta{font-size:.9em}.site-foot{font-size:16px}.backtop{font-size:clamp(18px,1.5vw,26px)}}.area-hero{padding-top:clamp(60px,11vw,220px);padding-bottom:clamp(40px,6vw,110px)}.area-hero .lead{max-width:52ch}.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,2.4vw,48px);padding-top:0;align-items:start}.pcard{position:relative;display:block;overflow:hidden}.pcard img,.pcard-noimg{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;background:#e2e0da;transition:transform .9s cubic-bezier(.2,.7,.2,1)}.pcard-over{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:.35em;padding:clamp(16px,1.6vw,34px) clamp(18px,1.8vw,36px);background:#ee623bdb;color:#fff;opacity:0;transition:opacity .35s}.pcard-over strong{font-size:clamp(24px,3.1vw,62px);font-weight:700;line-height:1.05;letter-spacing:-.01em}.pcard-over span{font-size:clamp(16px,1.5vw,30px);font-weight:500}.pcard:hover .pcard-over,.pcard:focus-visible .pcard-over{opacity:1}.pcard:hover img{transform:scale(1.03)}.pcard-caption{display:none}@media (hover: none){.pcard-over{display:none}.pcard-caption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0 0;color:var(--s-accent)}.pcard-caption strong{font-size:clamp(18px,2.2vw,30px);font-weight:700;line-height:1.1}.pcard-caption span{font-size:clamp(14px,1.4vw,22px);white-space:nowrap}}.area-notice{align-self:center;color:var(--s-accent);padding:0 clamp(0px,3vw,60px);font-size:clamp(16px,1.4vw,28px);line-height:1.35}.area-notice p{margin:0}.area-notice .notice-kicker{font-weight:700;margin-bottom:1.2em}.area-notice a{text-decoration:underline;text-underline-offset:4px}.area-notice a:hover{color:var(--s-ink)}.project-hero{padding-top:clamp(50px,8.5vw,170px);padding-bottom:clamp(40px,6vw,110px)}.project-meta{display:flex;justify-content:space-between;gap:20px;margin:0 0 clamp(30px,3.4vw,64px);font-size:clamp(16px,1.4vw,28px);color:var(--s-accent);font-weight:500}.project-meta a:hover{text-decoration:underline;text-underline-offset:4px}.project-hero .lead{max-width:64ch}.project-hero .arrow{margin-top:clamp(18px,2vw,36px)}.project-cover{margin:0 var(--s-pad)}.project-cover img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;background:#e2e0da}.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,2.4vw,48px);padding:clamp(22px,2.4vw,48px) var(--s-pad) clamp(60px,7vw,130px);align-items:start}.project-gallery figure{margin:0;background:#eceae4}.project-gallery img{display:block;width:100%;height:auto}.project-gallery .video{position:relative;grid-column:1 / -1;height:0;background:#111}.project-gallery .video iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}@media (max-width: 760px){.pgrid,.project-gallery{grid-template-columns:1fr}.area-notice{padding:10px 0 0}.project-meta{flex-direction:column;gap:6px}.project-cover{margin:0 20px}.project-gallery{padding-left:20px;padding-right:20px}}.areas{gap:0;padding-top:clamp(24px,3vw,56px)}.areas>.kicker{margin-bottom:clamp(12px,1.4vw,26px)}.area+.area{margin-top:clamp(64px,9vw,170px)}.area-text .arrow{color:var(--s-ink)}.area-text .arrow:hover{color:var(--s-accent)}.back-link{display:inline-block;margin:0 0 clamp(18px,2vw,36px);font-size:clamp(16px,1.4vw,28px);font-weight:500;color:var(--s-accent);transition:transform .25s}.back-link:hover{transform:translate(-4px);text-decoration:underline;text-underline-offset:4px}.area-hero{padding-top:clamp(36px,6vw,120px)}@media (max-width: 760px){.back-link{padding:8px 0}}*{box-sizing:border-box}html,body{margin:0}html.site-mode body{background:#f6f4ef;color:#292a27}.seo{max-width:720px;margin:40px auto;padding:0 20px;font-family:League Spartan,system-ui,sans-serif}.seo img{max-width:100%;height:auto;display:block;margin:12px 0}.seo a{color:#ee623b}
