:root{--paper:#f8f9fa;--ink:#17191e;--muted:#505866;--line:#d9dee6;--accent:#56bb58;--brand:#44a74c;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Inter,system-ui,sans-serif}a{color:inherit;text-decoration:none}a,button{touch-action:manipulation}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}.wrap{width:min(1190px,100% - 72px);margin-inline:auto}.skip{z-index:10;background:#fff;padding:12px;position:fixed;top:8px;left:12px;transform:translateY(-150%)}.skip:focus{transform:none}header{z-index:3;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0}nav{justify-content:space-between;align-items:center;gap:20px;min-height:68px;display:flex}.brand{letter-spacing:-.06em;align-items:center;gap:10px;font-size:23px;font-weight:780;display:inline-flex}.brand svg{display:block}.nav-links,footer div{gap:26px;font-size:14px;font-weight:550;display:flex}.nav-links a,footer div a{align-items:center;min-height:44px;display:inline-flex}.nav-links a:hover,footer a:hover,.text-link:hover{color:var(--accent)}.button,.text-link{justify-content:center;align-items:center;gap:12px;min-height:44px;font-size:14px;font-weight:650;display:inline-flex}.button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:0 15px}.button:hover{border-color:var(--accent)}.primary{background:var(--ink);color:#fff;border-color:var(--ink);padding:0 18px}.primary:hover{background:var(--accent)}.hero{grid-template-columns:1.05fr 1fr;align-items:center;gap:45px;padding:clamp(56px,9vw,135px) 0 clamp(48px,7vw,95px);display:grid}.eyebrow,.divider,.project-type,.canvas-top,.canvas-bottom{font:600 11px/1.5 var(--mono);letter-spacing:.08em;color:var(--muted)}.eyebrow i,.dot{background:var(--accent);border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.065em}h1{margin-bottom:25px;font-size:clamp(49px,6.5vw,99px);font-weight:760;line-height:.98}h1 span{color:var(--accent)}h2{margin-bottom:20px;font-size:clamp(38px,5.2vw,71px);line-height:1.02}h3{margin-bottom:7px;font-size:22px}.intro{color:var(--muted);max-width:42ch;font-size:clamp(16px,1.5vw,20px);line-height:1.55}.actions{flex-wrap:wrap;gap:8px 20px;margin-top:25px;display:flex}.workspace{border:1px solid var(--line);background:#edf3ee;border-radius:9px;overflow:hidden}.canvas-top,.canvas-bottom,.board-head{justify-content:space-between;gap:8px;padding:12px 14px;display:flex}.artboard{border-block:1px solid var(--line);background:radial-gradient(#b7c8b9 1px,#0000 1px) 0 0/15px 15px,#f0f4f0;place-items:center;min-height:clamp(255px,30vw,405px);padding:28px;display:grid;position:relative}.selection{background:#fff;border:1px solid #50965a;width:min(100%,330px);padding:15px;position:relative;box-shadow:12px 16px #dce9df}.selection b{border:1px solid var(--accent);background:#fff;width:7px;height:7px;position:absolute}.selection b:first-child{top:-4px;left:-4px}.selection b:nth-child(2){top:-4px;right:-4px}.selection b:nth-child(3){bottom:-4px;left:-4px}.selection b:nth-child(4){bottom:-4px;right:-4px}.board-head{color:var(--muted);font:10px var(--mono);padding:0}.board-title{letter-spacing:-.06em;margin:12px 0;font-size:clamp(18px,2.4vw,31px);font-weight:760}.board-row{border-top:1px solid #e5e9f1;align-items:center;gap:8px;padding:10px 0;font-size:12px;display:flex}.dot{flex:none;margin:0}.green{background:#1b946c}.pink{background:#bd4785}.bar{background:#d6e4d8;border-radius:5px;width:19%;height:5px;margin-left:auto}.art-label{color:#fff;background:var(--accent);font:10px var(--mono);border-radius:4px;padding:5px 8px;position:absolute;bottom:9%;right:5%}.divider{border-block:1px solid var(--line);justify-content:space-between;padding:14px 0;display:flex}.section{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:32px;padding:clamp(58px,9vw,110px) 0;scroll-margin-top:68px;display:grid}.service-list article{border-top:1px solid var(--line);gap:18px;padding:18px 0;display:flex}.service-list article>span{font:12px var(--mono);color:var(--accent);padding-top:5px}.service-list p,.project p{color:var(--muted);margin:0;line-height:1.55}.work{display:block}.projects{grid-template-columns:1fr 1fr;gap:16px;margin-top:32px;display:grid}.project{background:#eef5ed;border:1px solid #d6e6d5;border-radius:8px;padding:clamp(20px,4vw,42px);transition:background .18s}.project:nth-child(2){background:#e8f4ee;border-color:#d4e7dd}.project h3{justify-content:space-between;margin:30px 0 7px;font-size:clamp(34px,5vw,60px);display:flex}.project h3 span{color:var(--accent);font-size:.55em}.closing{padding:clamp(60px,10vw,130px) 0}footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-block:22px;display:flex}.swarm{pointer-events:none;z-index:4;position:fixed;inset:0;overflow:hidden}.swarm-cursor{will-change:transform;width:24px;height:24px;position:absolute;top:0;left:0}.swarm-cursor svg{filter:drop-shadow(0 1px 1px #17234044);display:block}.swarm-logo{border:1px solid var(--line);background:#fff;border-radius:5px;width:21px;height:21px;padding:4px;position:absolute;top:14px;left:17px;box-shadow:0 1px 3px #17234025}.build-cursor .swarm-logo,.swarm-roaming .swarm-logo{top:20px;left:21px}.motion{z-index:5;border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;font:11px var(--mono);background:#fff;border-radius:6px;padding:0 12px;position:fixed;bottom:14px;right:14px}@media (width<=780px){.wrap{width:calc(100% - 36px)}.nav-links{display:none}.hero,.section,.projects{grid-template-columns:1fr}.hero{gap:30px}.art-label{bottom:5%}}@media (prefers-reduced-motion:reduce){.swarm,.motion{display:none}.project{transition:none}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:scroll()){.selection{animation:linear both assemble;animation-timeline:scroll(root);animation-range:0 340px}.board-row .bar{transform-origin:0;animation:linear both connect;animation-timeline:scroll(root);animation-range:0 260px}.board-row:nth-last-child(2) .bar{animation-range:30px 285px}.board-row:last-child .bar{animation-range:60px 310px}}}@keyframes assemble{0%{transform:translateY(10px)scale(.96)}to{transform:none}}@keyframes connect{0%{background:#c3dcc5;transform:scaleX(.35)}to{background:#d6e4d8;transform:scaleX(1)}}.nav-actions{align-items:center;gap:14px;display:flex}.language{min-height:44px;font:600 12px var(--mono);align-items:center;display:inline-flex}.language:hover,[aria-current=page]{color:var(--accent)}footer div{flex-wrap:wrap;gap:0 18px}.inner{padding-block:clamp(46px,8vw,96px)}.page-intro{border-bottom:1px solid var(--line);margin-bottom:32px;padding-bottom:clamp(25px,5vw,54px)}.page-intro h1{max-width:16ch;font-size:clamp(44px,7vw,90px)}.page-intro .intro{max-width:60ch;margin-bottom:0}.page-rows{max-width:860px;margin-bottom:44px}.page-rows article:first-child{border-top:0}.page-rows h2,.panel h2,.legal h2{letter-spacing:-.045em;margin-bottom:12px;font-size:clamp(23px,3vw,35px)}.page-grid,.form-layout,.case-study{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:9px;padding:clamp(20px,4vw,38px)}.panel p,.panel li,.legal p,.legal li,.case-study p,.case-study li{color:var(--muted);line-height:1.65}.panel li,.legal li,.case-study li{margin-bottom:5px}.case-study{border-bottom:1px solid var(--line);margin-bottom:24px;padding:26px 0 44px;scroll-margin-top:95px}.case-study figure{margin:0}.case-study img{width:100%;height:auto;display:block}.case-study h3{margin-top:22px}.legal section{border-top:1px solid var(--line);padding:28px 0}.legal .text-link{justify-content:start;text-decoration:underline}.form-layout{grid-template-columns:2fr 1fr}.form-fields{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.request-form label{gap:7px;font-size:14px;font-weight:650;display:grid}.request-form :is(input,select,textarea){width:100%;min-width:0;min-height:44px;font:inherit;background:var(--paper);color:var(--ink);border:1px solid #aab5ad;border-radius:6px;padding:10px;font-weight:400}.request-form button:enabled{cursor:pointer}.request-form button:disabled{opacity:.65}.form-notice{border-left:3px solid var(--brand);background:#edf5ed;padding:10px 13px}.request-form .form-privacy{max-width:76ch;color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.5}.form-status{--status-color:#4a5563;--status-bg:#f3f5f7;--status-border:#d9dee6;border:1px solid var(--status-border);border-left:3px solid var(--status-color);background:var(--status-bg);color:var(--ink);border-radius:7px;align-items:flex-start;gap:12px;margin-top:18px;padding:15px 16px;display:flex}.form-status--success{--status-color:#287a38;--status-bg:#edf6ed;--status-border:#cde4ce}.form-status--error{--status-color:#a64036;--status-bg:#fbf1ef;--status-border:#efcfca}.form-status-icon{border:1px solid var(--status-border);width:27px;height:27px;color:var(--status-color);background:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.form-status-icon svg{width:16px;height:16px}.form-status-copy{gap:2px;min-width:0;display:grid}.form-status-copy strong{letter-spacing:-.015em;font-size:14px;line-height:1.4}.form-status-copy>span{color:var(--muted);font-size:13px;line-height:1.5}.form-status-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:13px;height:13px;animation:.8s linear infinite form-status-spin}@keyframes form-status-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.form-status-spinner{border-right-color:currentColor;animation:none}}@media (width<=780px){.page-grid,.form-layout,.case-study{grid-template-columns:1fr}footer{padding-bottom:68px}}@media (width<=480px){.form-fields{grid-template-columns:1fr}nav,.nav-actions{gap:8px}.nav-actions .button{padding:0 9px;font-size:12px}}@media (width<=780px){header nav{grid-template-columns:minmax(0,1fr) auto;gap:0 8px;padding-top:6px;display:grid}.nav-links{border-top:1px solid var(--line);grid-area:2/1/auto/-1;justify-content:space-between;gap:10px;display:flex}.section,.case-study{scroll-margin-top:108px}}[data-build=waiting]{opacity:0}[data-build=typing]{clip-path:inset(0 calc(100% - var(--build-progress,0%)) 0 0)}[data-build=drawing]{clip-path:inset(0 calc(100% - var(--build-progress,0%)) calc(100% - var(--build-progress,0%)) 0)}[data-build]:focus-within{opacity:1;clip-path:none}.build-rulers{font:9px var(--mono);color:#dce3ed;position:absolute;inset:0}.build-ruler,.ruler-origin{background-color:#252b34;position:absolute}.ruler-x{background-image:repeating-linear-gradient(90deg,#8994a4 0 1px,#0000 1px 10px);background-position:bottom;background-repeat:no-repeat;background-size:auto 4px;height:18px;top:0;left:18px;right:0}.ruler-y{background-image:repeating-linear-gradient(#8994a4 0 1px,#0000 1px 10px);background-position:100%;background-repeat:no-repeat;background-size:4px;width:18px;top:18px;bottom:0;left:0}.ruler-x span{position:absolute;top:2px;transform:translate(-50%)}.ruler-y span{writing-mode:vertical-rl;position:absolute;left:1px;transform:translateY(-50%)}.ruler-origin{border:1px solid #48515f;place-items:center;width:18px;height:18px;display:grid;top:0;left:0}.build-worker{position:absolute;inset:0}.build-outline,.build-guide,.build-measure{position:absolute}.build-outline{background:#2879ec0b;border:1px solid #2879ec}.build-outline:before,.build-outline:after{content:"";background:#fff;border:1px solid #2879ec;width:5px;height:5px;position:absolute}.build-outline:before{top:-3px;left:-3px}.build-outline:after{bottom:-3px;right:-3px}.build-guide{border:0 dashed #2879ec80}.build-guide.horizontal{border-top-width:1px;left:18px;right:0}.build-guide.vertical{border-left-width:1px;top:18px;bottom:0}.build-measure{color:#fff;font:10px var(--mono);white-space:nowrap;background:#1653b0;border-radius:3px;padding:3px 5px}@media (prefers-reduced-motion:reduce){[data-build]{opacity:1;clip-path:none}}.swarm-cursor.build-cursor{z-index:2}.build-cursor svg{transform-origin:3px 2px;filter:drop-shadow(0 1px 2px #17234088)}#main{position:relative}.swarm-roaming{z-index:2;position:absolute}.project-window-stage{aspect-ratio:7/4;background:radial-gradient(at 50% 35%,#f7f8f8,#e9eded);place-items:center;padding:3.5%;display:grid}.project-window{background:#fff;border:1px solid #fff;border-radius:clamp(8px,1.6vw,18px);width:100%;overflow:hidden;box-shadow:0 12px 24px #25343d26}.about-grid{border:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.about-grid>.about-cell+.about-cell,.company-group-links>li+li{border-inline-start:1px solid var(--line)}.about-cell h2{margin-bottom:12px;font-size:clamp(25px,3.2vw,39px)}.about-cell h3{letter-spacing:-.035em}.about-cell p,.about-cell li{color:var(--muted);line-height:1.65}.about-cell>:last-child{margin-bottom:0}.company-group{border-top:1px solid var(--line);grid-column:1/-1}.company-group-intro,.company-group-links{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.company-group-intro{gap:24px}.company-group-intro h2{margin:0}.company-group-links{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.company-group a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.about-action{padding-inline:clamp(0px,3.2vw,40px)}@media (width<=650px){.about-grid,.company-group-intro,.company-group-links{grid-template-columns:1fr}.about-grid>.about-cell+.about-cell,.company-group-links>li+li{border-inline-start:0;border-top:1px solid var(--line)}.company-group-intro{gap:10px}}:is(.divider,.section,footer,.page-intro,.page-rows article,.case-study,.legal section,.about-grid,.company-group,.company-group-links){position:relative}:is(.divider,footer,.page-rows article:not(:first-child),.legal section,.about-grid,.company-group,.company-group-links):before,:is(.divider,.section,.page-intro,.case-study,.about-grid,.project-intake-band):after{content:"";height:1px;box-shadow:0 0 0 100vmax var(--line);clip-path:inset(0 -100vmax);pointer-events:none;position:absolute;inset-inline:0}:is(.divider,footer,.page-rows article:not(:first-child),.legal section,.about-grid,.company-group,.company-group-links):before{top:-1px}:is(.divider,.section,.page-intro,.case-study,.about-grid,.project-intake-band):after{bottom:-1px}@media (width<=780px){.nav-links{position:relative}.nav-links:before{content:"";height:1px;box-shadow:0 0 0 100vmax var(--line);clip-path:inset(0 -100vmax);pointer-events:none;position:absolute;inset:-1px 0 auto}}@media (width<=650px){.about-grid>.about-cell+.about-cell,.company-group-links>li+li{position:relative}.about-grid>.about-cell+.about-cell:before,.company-group-links>li+li:before{content:"";height:1px;box-shadow:0 0 0 100vmax var(--line);clip-path:inset(0 -100vmax);pointer-events:none;position:absolute;inset:-1px 0 auto}}#main{--cell-space:clamp(22px,3.2vw,40px);border-inline:1px solid var(--line)}.page-intro{padding-inline:var(--cell-space);margin-bottom:0}#main>.actions{padding-inline:var(--cell-space)}.about-grid{border-inline:0;border-top:0}.about-grid:before{content:none}.about-cell{padding:var(--cell-space)}.hero,.section:not(.work),.projects,.form-layout,.case-study,.legal section{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:0}.hero>*,.section:not(.work)>*,.case-study>*,.form-layout>*,.legal section>*{min-width:0;padding:var(--cell-space)}.hero,.section:not(.work){align-items:stretch}.hero>.hero-copy{align-content:center}.hero>.workspace{align-self:center}.hero>.workspace,.case-study>.workspace{margin:var(--cell-space);padding:0}.hero>.hero-copy{border-inline-end:1px solid var(--line)}.section:not(.work)>:nth-child(2),.project+.project,.form-layout>:nth-child(2),.case-study>:nth-child(2),.legal-copy{border-inline-start:1px solid var(--line)}.divider{padding-inline:var(--cell-space)}.work,.closing{padding:var(--cell-space)}.work{padding-bottom:0}.projects{margin:var(--cell-space) calc(-1 * var(--cell-space)) 0;border-top:1px solid var(--line)}.project,.project:nth-child(2),.panel{background:0 0;border:0;border-radius:0}.project,.panel{padding:var(--cell-space)}.project:hover{background:#edf3ee}.page-rows{max-width:none;margin:0}.page-rows article{padding:var(--cell-space)}.consultation-band{border-top:1px solid var(--line)}.case-study{align-items:stretch;margin:0}.form-layout{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:stretch}.legal{max-width:none}.legal>p{max-width:76ch;padding:var(--cell-space);margin:0}.legal section{grid-template-columns:minmax(0,1fr) minmax(0,2fr);display:grid}.legal section>h2{margin:0}.legal-copy>:last-child{margin-bottom:0}.consultation-band,.projects{position:relative}.consultation-band:before,.projects:before{content:"";height:1px;box-shadow:0 0 0 100vmax var(--line);clip-path:inset(0 -100vmax);pointer-events:none;position:absolute;inset:-1px 0 auto}@media (width<=780px){.hero,.section:not(.work),.projects,.form-layout,.case-study,.legal section{grid-template-columns:minmax(0,1fr)}.hero>.hero-copy,.section:not(.work)>:nth-child(2),.project+.project,.form-layout>:nth-child(2),.case-study>:nth-child(2),.legal-copy{border-inline:0}.section:not(.work)>:nth-child(2),.project+.project,.form-layout>:nth-child(2),.case-study>:nth-child(2){border-top:1px solid var(--line)}.legal section>h2{padding-bottom:0}:is(.section:not(.work)>:nth-child(2),.project+.project,.form-layout>:nth-child(2),.case-study>:nth-child(2)){position:relative}:is(.section:not(.work)>:nth-child(2),.project+.project,.form-layout>:nth-child(2),.case-study>:nth-child(2)):before{content:"";height:1px;box-shadow:0 0 0 100vmax var(--line);clip-path:inset(0 -100vmax);pointer-events:none;position:absolute;inset:-1px 0 auto}}.intake-layout{grid-template-columns:minmax(0,1fr)}.project-intake-band{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative}.project-intake-copy,.project-intake-action{padding:clamp(20px,3vw,36px) var(--cell-space)}.project-intake-band h2{margin-bottom:8px;font-size:clamp(28px,4vw,48px)}.project-intake-band .intro{max-width:none;margin:0}.project-intake-action{border-inline-start:1px solid var(--line);place-items:center;display:grid}.project-intake-band .button{min-height:48px;padding-inline:24px}@media (width<=650px){.project-intake-band{grid-template-columns:minmax(0,1fr)}.project-intake-action{border-inline-start:0;justify-items:start;padding-top:0}}
