@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#17212b;--text:#45525d;--muted:#73808a;--line:#dce3e7;--paper:#f7f8f7;--surface:#ffffff;--accent:#23649f;--navy:#1d2a35;--lime:#d8ee7a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--text);font:400 16px/1.65 Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}.shell{width:min(100% - 48px,1120px);margin:auto}.site-header{background:var(--paper)}.header-inner{height:88px;display:flex;align-items:center;border-bottom:1px solid var(--line)}.wordmark{color:var(--ink);font-size:18px;font-weight:800;letter-spacing:-.04em}.header-inner nav{margin-left:auto;display:flex;gap:23px}.header-inner nav a{font-size:14px;color:#5e6c76}.header-inner nav a:hover,.project-feature a:hover,.project-grid a:hover,.project-list a:hover,.public-copy a:hover,.footer-links a:hover{color:var(--accent)}.eyebrow,.section-label{font:500 11px/1.2 DM Mono,monospace;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0}.hero{padding:96px 0 82px}.hero .eyebrow{color:var(--accent)}.hero h1{color:var(--ink);font-size:clamp(3.1rem,6.6vw,6.4rem);line-height:.95;letter-spacing:-.075em;max-width:980px;margin:22px 0 25px}.hero-copy{font-size:20px;line-height:1.5;max-width:680px;margin:0}.intro-section,.work-section,.projects-section,.public-section{border-top:1px solid var(--line);padding:72px 0}.intro-section{display:grid;grid-template-columns:180px minmax(0,720px);gap:44px}.intro-copy p{max-width:720px;margin:0 0 19px}.intro-copy .intro-lead{font-size:21px;line-height:1.48;color:var(--ink);letter-spacing:-.025em}.section-heading{max-width:780px;margin-bottom:37px}.section-heading .section-label{margin-bottom:17px}.section-heading h2{color:var(--ink);font-size:34px;line-height:1.15;letter-spacing:-.052em;margin:0}.work-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--surface);border-top:2px solid var(--ink)}.work-columns article{min-height:270px;padding:27px 30px;border-right:1px solid var(--line)}.work-columns article:first-child{padding-left:0}.work-columns article:last-child{border-right:0;padding-right:0}.work-number{font:500 11px DM Mono,monospace;color:var(--accent);margin:0 0 56px}.work-columns h3{color:var(--ink);font-size:23px;line-height:1.2;letter-spacing:-.04em;margin:0 0 12px}.work-columns article>p:last-child{font-size:14px;line-height:1.65;color:var(--muted);margin:0}.projects-section{padding-bottom:88px}.project-feature{display:grid;grid-template-columns:130px minmax(0,1fr);gap:27px;background:var(--navy);color:#fff;padding:42px;margin-bottom:14px}.project-index{font:500 12px DM Mono,monospace;color:var(--lime)}.project-feature h3{font-size:clamp(2rem,4vw,3.55rem);line-height:1.03;letter-spacing:-.06em;margin:0 0 14px}.project-feature p{color:#d2dbe0;max-width:650px;font-size:17px;margin:0 0 21px}.project-feature a{color:var(--lime);font-size:14px;font-weight:700}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:38px}.project-grid article{min-height:230px;background:var(--surface);padding:27px;border:1px solid var(--line)}.project-grid h3,.project-list h3{color:var(--ink);font-size:24px;line-height:1.2;letter-spacing:-.04em;margin:0 0 10px}.project-grid p,.project-list p{font-size:14px;color:var(--muted);line-height:1.6;margin:0 0 17px}.project-grid a,.project-list a{color:var(--accent);font-size:14px;font-weight:700}.project-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}.project-list article{padding:24px 28px 3px 0;border-right:1px solid var(--line)}.project-list article+article{padding-left:28px}.project-list article:nth-child(3){border-right:0;padding-right:0}.project-list article:nth-child(n+4){border-top:1px solid var(--line);padding-top:25px}.project-list h3{font-size:20px}.public-section{display:grid;grid-template-columns:180px minmax(0,720px);gap:44px}.public-section .section-heading{margin:0}.public-section h2{font-size:30px}.public-copy p{margin:0 0 17px}.public-copy p:last-child{display:flex;gap:22px;flex-wrap:wrap}.public-copy a{color:var(--accent);font-size:14px;font-weight:700}footer{background:var(--navy);color:#d3dde2;padding:52px 0}.footer-inner{display:flex;justify-content:space-between;gap:48px}.footer-inner .eyebrow{color:#aab8c0;margin-bottom:10px}.footer-inner p:not(.eyebrow){max-width:600px;margin:0;font-size:15px}.footer-links{display:flex;flex-direction:column;gap:7px;min-width:180px}.footer-links a{color:#fff;font-size:14px}@media(max-width:800px){.shell{width:min(100% - 32px,1120px)}.header-inner{height:72px}.header-inner nav{gap:14px;font-size:13px}.hero{padding:70px 0 62px}.intro-section,.public-section{grid-template-columns:1fr;gap:0}.intro-section .section-label{margin-bottom:22px}.work-columns{grid-template-columns:1fr}.work-columns article,.work-columns article:first-child,.work-columns article:last-child{min-height:0;padding:26px 0;border-right:0;border-bottom:1px solid var(--line)}.work-columns article:last-child{border-bottom:0}.work-number{margin-bottom:17px}.project-list{grid-template-columns:1fr}.project-list article,.project-list article+article{padding:24px 0;border-right:0;border-top:1px solid var(--line)}.project-list article:first-child{border-top:0}.project-feature{grid-template-columns:1fr;padding:30px}.project-index{margin-bottom:25px}.footer-inner{display:block}.footer-links{margin-top:27px}}@media(max-width:540px){.header-inner nav a:nth-child(2),.header-inner nav a:nth-child(4){display:none}.hero h1{font-size:3.3rem}.section-heading h2{font-size:30px}.project-grid{grid-template-columns:1fr}.project-feature h3{font-size:2.25rem}.intro-section,.work-section,.projects-section,.public-section{padding:55px 0}.footer-inner p:not(.eyebrow){font-size:14px}}

/* Detail pages */
.mast{height:88px;display:flex;align-items:center;border-bottom:1px solid var(--line)}.mast .brand{color:var(--ink);font-size:18px;font-weight:800;letter-spacing:-.04em}.mast nav{margin-left:auto;display:flex;gap:22px}.mast nav a{font-size:14px;color:#5e6c76}.project-hero{padding:76px 0 38px;max-width:none}.project-hero .eyebrow{color:var(--accent)}.project-hero h1{color:var(--ink);font-size:clamp(3rem,6vw,5.5rem);line-height:.98;letter-spacing:-.07em;max-width:880px;margin:18px 0}.project-hero .dek{font-size:20px;max-width:740px;margin:0}.project-hero .facts,.media,.pair{display:none}.article{width:min(100% - 48px,1120px);max-width:none;margin:auto;padding:22px 0 78px}.article p,.article h2{max-width:720px}.article h2{color:var(--ink);font-size:29px;line-height:1.25;letter-spacing:-.04em;margin:45px 0 14px}.article p{margin:0 0 19px}.article .aside{border-left:3px solid var(--accent);padding-left:18px;color:var(--muted)}.next{width:min(100% - 48px,1120px);max-width:none;margin:auto;border-top:1px solid var(--line);padding:28px 0 62px}.next .eyebrow{margin-bottom:9px}.next a{color:var(--accent);font-size:15px;font-weight:700}.footer{margin:0}.footer-grid{display:flex;justify-content:space-between;gap:40px}.footer-grid p{margin:0;max-width:560px}.footer-grid a{color:#fff;display:block;margin:5px 0}@media(max-width:540px){.mast{height:70px}.mast nav{gap:14px}.mast nav a{font-size:13px}.project-hero{padding:58px 0 25px}.article,.next{width:min(100% - 32px,1120px)}.article h2{font-size:26px}.footer-grid{display:block}.footer-grid>a{margin-top:20px}}
/* Detail-page alignment and placeholder protection */
.mast.wrap,.project-hero.wrap,.article,.next{width:min(100% - 48px,960px);max-width:none;margin-left:auto;margin-right:auto}
.project-hero{padding-bottom:42px}
.project-hero + .media,.article .media,.article .pair{display:none!important}
.article{padding-top:20px}
.article .aside{display:none}
.case-study{padding-top:10px}
.case-study .case-intro,.case-study .case-section{border-top:1px solid var(--line);padding:54px 0;max-width:none}
.case-study .case-intro{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:center;gap:72px;border-top:0;padding-top:12px}
.case-study .case-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,440px);align-items:start;gap:72px}
.case-study .case-copy,.case-study .system-notes{max-width:620px}
.case-study h2{max-width:620px;font-size:31px;margin:15px 0 15px}
.case-study p{max-width:620px}
.case-study figure{margin:0}
.portrait-showcase{width:100%;max-width:310px;justify-self:end}
.portrait-showcase video{display:block;width:100%;aspect-ratio:9/16;object-fit:contain;background:#e8edf0}
.case-study figcaption{font:500 11px/1.2 DM Mono,monospace;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-top:10px}
.input-output{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:26px;align-items:end}
.input-frame img{display:block;width:100%;max-height:470px;object-fit:contain;object-position:center;background:#e8edf0}
.input-set-images{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.input-set-images img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;background:#e8edf0}
.input-output .portrait-showcase{max-width:250px}
.menu-output{grid-template-columns:minmax(0,1fr) 250px}
.spa-case{grid-template-columns:minmax(0,1fr) 310px!important}
.spa-case .portrait-showcase{max-width:310px}
.system-notes{display:block!important}
.workflow-section{border-top:1px solid var(--line);padding:58px 0;max-width:none}
.workflow-heading{max-width:650px;margin-bottom:38px}
.workflow-heading h2{font-size:34px;margin:15px 0}
.workflow-heading p{margin:0;max-width:600px}
.workflow-visual{margin:0;max-width:960px}
.workflow-visual img{display:block;width:100%;height:auto}
.workflow-visual figcaption{max-width:640px;margin-top:16px;font:400 14px/1.6 Manrope,Arial,sans-serif;letter-spacing:0;text-transform:none;color:var(--muted)}
.workflow-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}
.workflow-lane{padding:27px 26px 0 0;min-width:0}
.workflow-lane+.workflow-lane{border-left:1px solid var(--line);padding-left:26px}
.workflow-lane-heading{display:flex;align-items:baseline;gap:12px;margin-bottom:29px}
.workflow-lane-heading span{font:500 11px/1 DM Mono,monospace;color:var(--accent)}
.workflow-lane h3{margin:0;color:var(--ink);font-size:20px;letter-spacing:-.04em}
.workflow-lane ol{list-style:none;margin:0;padding:0;counter-reset:workflow}
.workflow-lane li{position:relative;padding:0 0 25px 29px;counter-increment:workflow}
.workflow-lane li::before{content:counter(workflow);position:absolute;left:0;top:2px;font:500 10px/1 DM Mono,monospace;color:var(--accent)}
.workflow-lane li::after{content:"";position:absolute;left:4px;top:20px;bottom:4px;width:1px;background:var(--line)}
.workflow-lane li:last-child::after{display:none}
.workflow-lane strong{display:block;color:var(--ink);font-size:15px;line-height:1.35;margin-bottom:5px}
.workflow-lane li span{display:block;color:var(--muted);font-size:13px;line-height:1.55}
@media(max-width:700px){.case-study .case-intro,.case-study .case-section{grid-template-columns:1fr;gap:30px;padding:42px 0}.portrait-showcase,.input-output .portrait-showcase{justify-self:start;max-width:240px}.input-output,.menu-output{grid-template-columns:minmax(0,1fr) 190px;max-width:540px}.spa-case{grid-template-columns:1fr!important}.spa-case .portrait-showcase{max-width:240px}.workflow-map{grid-template-columns:1fr;border-top:0}.workflow-lane{border-top:1px solid var(--line);padding:28px 0}.workflow-lane+.workflow-lane{border-left:0;padding-left:0}.workflow-lane-heading{margin-bottom:22px}}
@media(max-width:430px){.input-output,.menu-output{grid-template-columns:1fr}.input-output .portrait-showcase{max-width:190px}.input-frame img{max-height:none}}
@media(max-width:540px){.mast.wrap,.project-hero.wrap,.article,.next{width:min(100% - 32px,960px)}}
