:root{--paper:#fcfcfc;--ink:#000;--panel:#45413f;--panel-glass:#45413f66;--on-photo:#fcfcfc;--on-panel:#fef8f8;--muted-dark:#c6c5c3;--muted:#45413f;--line:#0000001f;--blue:#2634ff;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--serif:Georgia,"Times New Roman",Times,serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased}::selection{background:var(--panel);color:var(--on-panel)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}img,video,svg.media{display:block}#cursor{display:none}@media (pointer:fine){body.cursor-on,body.cursor-on a,body.cursor-on button{cursor:none}#cursor{z-index:9999;pointer-events:none;mix-blend-mode:difference;color:#fff;display:block;position:fixed;top:0;left:0;transform:translate(-100px,-100px)}#cursor .h{background:#fff;width:34px;height:1px;position:absolute;top:0;left:-17px}#cursor .v{background:#fff;width:1px;height:34px;position:absolute;top:-17px;left:0}#cursor .xy{font:10px/1 var(--mono);letter-spacing:.5px;white-space:nowrap;position:absolute;top:10px;left:12px}body.cursor-on.on-link #cursor .h{background:0 0;border:1px solid #fff;border-radius:50%;width:14px;height:14px;top:-7px;left:-7px}body.cursor-on.on-link #cursor .v{display:none}body.cursor-on.on-item #cursor .xy{font:600 12px/1 var(--sans);letter-spacing:.6px;text-transform:uppercase;top:8px;left:14px}}nav.site{z-index:100;mix-blend-mode:difference;color:#fff;font-family:var(--sans);letter-spacing:-.02em;justify-content:space-between;align-items:center;padding:16px 24px;font-weight:700;display:flex;position:fixed;top:0;left:0;right:0}nav.site a{text-transform:uppercase;font-size:15px;transition:filter .25s}nav.site a:hover,nav.site a:focus-visible{filter:blur(3px)}nav.site a:focus-visible{outline-offset:4px;filter:none;outline:1px solid #fff}nav.site .meta{font:11px/1.5 var(--serif);letter-spacing:.3px;text-transform:uppercase;font-weight:400}nav.site .links{gap:22px;display:flex}nav.site .brand{text-transform:uppercase;font-size:15px;line-height:1;display:block}nav.site .brand .logo{width:auto;height:12px;display:block}.intro{z-index:0;background:#101014;height:100svh;position:sticky;top:0;overflow:hidden}.intro .item-video{background:#101014;position:absolute;inset:0}.intro video,.intro svg.media{object-fit:cover;width:100%;height:100%}.item-video .v-mobile{display:none}main.over{z-index:1;background:var(--paper);position:relative}.intro .slide{opacity:0;position:absolute;inset:0}.intro .slide.on{opacity:1}.intro .slide .media{object-fit:cover;width:100%;height:100%}.intro-mark{pointer-events:none;font-family:var(--sans);letter-spacing:-.04em;color:#fff;mix-blend-mode:difference;opacity:0;place-items:center;font-size:clamp(64px,16vw,260px);font-weight:700;line-height:1;transition:opacity .25s;display:grid;position:absolute;inset:0}.intro.mark .intro-mark{opacity:1}.fascia{background:var(--paper);grid-template-columns:repeat(4,1fr);gap:0;display:grid;position:relative;overflow:hidden}.fascia+.fascia{margin-top:-1px}.blk{flex-direction:column;min-width:0;display:flex;position:relative}@media (width>=761px){.fascia:not(.auto) .blk{min-height:0}}.blk.v-top{justify-content:flex-start}.blk.v-center{justify-content:center}.blk.v-bottom{justify-content:flex-end}.blk.v-stretch{justify-content:stretch}.item-img{display:block;position:relative;overflow:hidden}.item-img.cover{flex:1;min-height:0}.item-img.cover .media{object-fit:cover;width:100%;height:100%}.item-img.contain .media{width:100%;height:auto}.item-img.boxed{width:100%}.item-img.boxed .media{object-fit:cover;object-position:center;width:100%;height:100%}.veil{display:none}body.reveal-fade .item-img,body.reveal-fade .item-video{opacity:0;transition:opacity .5s ease-out}body.reveal-fade .item-img.inview,body.reveal-fade .item-video.inview{opacity:1}body.reveal-wipe .veil{background:var(--paper);transform-origin:top;pointer-events:none;transition:transform 1s cubic-bezier(.7,0,.2,1);display:block;position:absolute;inset:0}body.reveal-wipe .inview .veil{transform:scaleY(0)}.tag{z-index:2;font:700 10px/1 var(--sans);letter-spacing:.6px;text-transform:uppercase;color:var(--on-photo);pointer-events:none;background:#45413fd9;padding:6px 8px;position:absolute;top:10px;left:10px}a.item-img .tag,a.item-video .tag{background:var(--on-photo);color:var(--ink)}a.item-img:focus-visible{outline:2px solid var(--panel);outline-offset:-2px}.item-text{font-family:var(--serif);white-space:pre-line;padding:.5vw .6vw;font-size:clamp(12px,1.05vw,15px);line-height:1.5}.item-text.center{text-align:center;margin-inline:auto}.item-quote{padding:.5vw .6vw}main.about{--team-x:1.6vw}.item-img .hover{left:var(--team-x,1.6vw);z-index:2;color:#fff;opacity:0;pointer-events:none;text-shadow:0 1px 12px #00000073;transition:opacity .3s;position:absolute;bottom:1.4vw}main.about .fascia:not(.auto) .item-img .hover{left:auto;right:var(--team-x);text-align:right}.item-img .hover .h1{font:400 clamp(12px,1.05vw,15px)/1.4 var(--serif);display:block}.item-img .hover .h2{font:400 clamp(12px,1.05vw,15px)/1.4 var(--serif);margin-top:1px;display:block}@media (pointer:fine){.item-img:hover .hover{opacity:1}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}main.about .blk>.item-caption:first-child{padding:12px 12px 1.4vw var(--team-x)}main.about .blk>.item-img+.item-caption{padding:12px 12px 0 var(--team-x)}@media (width>=761px){main.about .fascia.auto{background:0 0;overflow:visible}main.about .fascia.auto:not(:last-of-type) .blk>.item-img+.item-caption{position:absolute;top:100%;left:0;right:0}}main.about .item-caption .t{font-family:var(--serif);letter-spacing:0;font-size:clamp(12px,1.05vw,15px);font-weight:700}main.about .item-caption .s{font:clamp(12px,1.05vw,15px)/1.4 var(--serif);letter-spacing:0;text-transform:none;color:var(--ink);margin-top:1px}.blk .spacer{flex:1 1 0;min-height:0}.blk .caprow{gap:0;display:grid}main.home .item-caption{padding:10px 12px 14px .6vw}main.home .item-caption .t{font-family:var(--serif);letter-spacing:0;font-size:clamp(12px,1.05vw,15px);font-weight:400}main.home .item-caption .s{font:clamp(10px,.8vw,12px)/1.4 var(--serif);letter-spacing:0;text-transform:none;color:var(--ink);white-space:pre-line;margin-top:6px}main.home .item-caption+.item-caption{padding-top:2px}main.home .caprow .item-caption+.item-caption{padding-top:10px}.item-caption{padding:12px 12px 28px 0;display:block}.item-caption .t{font-family:var(--sans);letter-spacing:-.02em;font-size:clamp(14px,1.2vw,18px);font-weight:700;display:block}.item-caption .s{font:11px/1.5 var(--serif);letter-spacing:.3px;text-transform:uppercase;color:var(--muted);margin-top:4px;display:block}a.item-caption:hover .t{text-underline-offset:3px;text-decoration:underline}@media (hover:none){a.item-caption .t{text-underline-offset:3px;text-decoration:underline}a.item-caption .t:before{content:"";vertical-align:baseline;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M1 11V1h10M1 1l26 26'/%3E%3C/svg%3E") 50%/contain no-repeat;width:.7em;height:.7em;margin-right:.4em;display:inline-block}}.item-quote blockquote{font-family:var(--serif);font-size:clamp(15px,1.5vw,21px);font-style:italic;line-height:1.45}.item-quote cite{font:11px/1 var(--serif);letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-top:14px;font-style:normal;display:block}.item-video{color:#fff;background:#101014;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.item-video.cover{flex:1;min-height:0}.item-video.cover video,.item-video.cover svg.media,.item-video.cover img{object-fit:cover;width:100%;height:100%}.item-video.contain video,.item-video.contain svg.media,.item-video.contain img{width:100%;height:auto}.item-video.contain.hasvideo{background:0 0;display:block}.item-video .play{pointer-events:none;border:1px solid #fff;border-radius:50%;place-items:center;width:52px;height:52px;display:grid;position:absolute}.item-video .play:after{content:"";border-top:8px solid #0000;border-bottom:8px solid #0000;border-left:12px solid #fff;margin-left:4px}.item-video .lbl{font:11px/1 var(--serif);letter-spacing:.4px;text-transform:uppercase;color:var(--muted-dark);pointer-events:none;position:absolute;bottom:10px;left:12px}.item-video.playing .play,.item-video.playing .lbl{display:none}.herotitle{z-index:3;color:var(--on-photo);text-align:right;text-shadow:0 1px 14px #00000059;pointer-events:none;position:absolute;bottom:1.6vw;right:2vw}.herotitle .t{font-family:var(--sans);letter-spacing:-.03em;font-size:clamp(26px,3.2vw,48px);font-weight:700}.herotitle .s{font:13px/1.6 var(--serif);letter-spacing:.2px;color:var(--muted-dark)}.herotitle .s2{font:10px/1.6 var(--serif);letter-spacing:.3px;color:var(--muted-dark)}.prose{max-width:64ch;padding:18vh 24px 10vh}.prose h1{font-family:var(--sans);letter-spacing:-.03em;margin-bottom:24px;font-size:clamp(26px,3.2vw,48px);font-weight:700}.prose p{font-family:var(--serif);margin-bottom:1em;font-size:clamp(14px,1.1vw,17px);line-height:1.65}main.about{padding-bottom:5vw}main.projects{padding-bottom:calc(5vw - 28px)}.pager{border-top:1px solid var(--line);z-index:1;background:var(--paper);grid-template-columns:1fr 1fr;margin-top:8vh;display:grid;position:relative}.pager a{padding:40px 24px;transition:all .25s}.pager a:hover{background:var(--ink);color:var(--paper)}.pager a:last-child{text-align:right;border-left:1px solid var(--line)}.pager .dir{font:11px/1 var(--serif);letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:10px;display:block}.pager .name{font-family:var(--sans);letter-spacing:-.03em;text-transform:uppercase;font-size:clamp(20px,3vw,34px);font-weight:700}footer.site{z-index:1;color:var(--ink);font:clamp(12px,1.05vw,15px)/1.6 var(--serif);background:#d1d1cf;grid-template-rows:auto auto;grid-template-columns:repeat(4,1fr);padding:3.2vw 0 2.4vw;display:grid;position:relative}footer.site h2{font-family:var(--sans);letter-spacing:-.02em;grid-area:1/1/auto/-1;margin-bottom:1.2vw;padding:0 .6vw;font-size:clamp(16px,1.5vw,22px);font-weight:700}footer.site .col{flex-direction:column;grid-row:2;gap:2px;padding:0 .6vw;display:flex}footer.site .c1{grid-column:1}footer.site .c2{grid-column:2}footer.site .c4{grid-column:4}footer.site a{color:var(--ink);width:fit-content;font-weight:400;transition:color .25s}footer.site a:hover{color:var(--muted)}footer.site .copy{color:var(--muted);margin-top:.8em;font-size:clamp(10px,.8vw,12px)}.fascia:before{content:"";pointer-events:none;z-index:5;opacity:0;background:repeating-linear-gradient(90deg,#2634ff80 0 1px,#0000 1px calc(25% - .75px));border-right:1px solid #2634ff80;transition:opacity .3s;position:absolute;inset:0}body.showgrid .fascia:before{opacity:.55}.annot{z-index:6;font:10px/1.5 var(--mono);letter-spacing:.5px;color:var(--blue);background:var(--paper);border:1px solid var(--blue);opacity:0;pointer-events:none;border-radius:3px;padding:4px 8px;transition:all .3s;position:absolute;top:8px;left:10px;transform:translateY(-4px)}body.showgrid .annot{opacity:1;transform:none}.gridtoggle{z-index:200;font:11px/1 var(--mono);letter-spacing:.6px;text-transform:uppercase;border:1px solid var(--ink);background:var(--paper);border-radius:999px;padding:11px 16px;transition:all .25s;position:fixed;bottom:24px;right:24px}.gridtoggle:hover{background:var(--ink);color:var(--paper)}body.showgrid .gridtoggle{background:var(--blue);border-color:var(--blue);color:#fff}main.contact{padding:12vh 0 5vw}main.contact .cols{grid-template-columns:repeat(4,1fr);display:grid}main.contact .col{min-width:0;padding:0 1.2vw}main.contact .reach{grid-column:1/3;padding-right:5vw}main.contact .side{grid-column:3/5}main.contact h2{font-family:var(--sans);letter-spacing:-.02em;margin-bottom:.5em;font-size:clamp(18px,1.7vw,26px);font-weight:700}main.contact h2:not(:first-child){margin-top:3.4vw}main.contact p{font-family:var(--serif);font-size:clamp(12px,1.05vw,15px);line-height:1.5}main.contact .lines{margin-top:1.2vw;list-style:none}main.contact .lines li{align-items:center;gap:8px;margin-bottom:.4em;font-size:clamp(12px,1.05vw,15px);line-height:1.5;display:flex}main.contact .lines li>a:first-child{text-underline-offset:3px;text-decoration:underline}main.contact .ico{width:18px;height:18px;color:var(--muted);place-items:center;display:inline-grid;position:relative}main.contact .ico svg{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linejoin:round;width:14px;height:14px}main.contact .ico:hover{color:var(--ink)}main.contact .copy .done{font:10px/1 var(--serif);letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;margin-left:6px;transition:opacity .2s;position:absolute;top:50%;left:100%;transform:translateY(-50%)}main.contact .copy[data-state=copied] .done{opacity:1}.cform{margin-top:2.6vw}.cform .hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.cform label{margin-bottom:1.4vw;display:block}.cform label:not(.consent)>span{font:11px/1.5 var(--serif);letter-spacing:.3px;text-transform:uppercase;color:var(--muted);margin-bottom:2px;display:block}.cform input[type=text],.cform input[type=email],.cform textarea{border:0;border-bottom:1px solid var(--line);width:100%;font:clamp(13px,1.05vw,15px)/1.5 var(--serif);color:var(--ink);background:0 0;border-radius:0;outline:none;padding:6px 0;transition:border-color .2s}.cform input:focus,.cform textarea:focus{border-bottom-color:var(--ink)}.cform textarea{resize:vertical;min-height:6em}.cform .consent{font:clamp(11px,.9vw,13px)/1.5 var(--serif);color:var(--muted);align-items:flex-start;gap:10px;display:flex}.cform .consent input{accent-color:var(--ink);flex:none;margin-top:3px}.cform .consent a{text-underline-offset:2px;text-decoration:underline}.cform .actions{flex-wrap:wrap;align-items:center;gap:16px;margin-top:.6vw;display:flex}.cform button[type=submit]{font:700 12px/1 var(--sans);letter-spacing:.6px;text-transform:uppercase;border:1px solid var(--ink);padding:12px 22px;transition:all .25s}.cform button[type=submit]:hover,.cform button[type=submit]:focus-visible{background:var(--ink);color:var(--paper)}.cform.sending button[type=submit]{opacity:.5;pointer-events:none}.cform .status{font:clamp(12px,1vw,14px)/1.4 var(--serif)}main.contact .map{aspect-ratio:4/3;background:#f0f0f0;width:min(100%,24vw);margin-top:1vw;position:relative;overflow:hidden}main.contact .map iframe{border:0;width:100%;height:100%;position:absolute;inset:0}main.contact .map .load{font:11px/1 var(--serif);letter-spacing:.4px;text-transform:uppercase;color:var(--muted);place-items:center;display:grid;position:absolute;inset:0}main.contact .map .load:hover{color:var(--ink)}main.contact .map .open{font:11px/1 var(--serif);letter-spacing:.3px;text-transform:uppercase;text-underline-offset:3px;color:var(--muted);text-decoration:underline;position:absolute;bottom:10px;left:12px}main.contact .map .open:hover{color:var(--ink)}main.contact .map.on .load,main.contact .map.on .open{display:none}main.contact .social{justify-content:center;gap:28px;margin-top:5vw;font-size:clamp(12px,1.05vw,15px);list-style:none;display:flex}main.contact .social a{text-underline-offset:3px;text-decoration:underline}@media (pointer:fine){body.cursor-on main.contact input,body.cursor-on main.contact textarea{cursor:none}}.item-text.right{text-align:right}.item-text .t{font-family:var(--sans);letter-spacing:-.02em;margin-bottom:.5em;font-size:clamp(20px,2vw,32px);font-weight:700;line-height:1.1}.item-text.titled{padding:1.4vw .6vw 5vw}main.services .fascia:first-child .item-text{padding-bottom:3.6vw}.item-text .note{text-underline-offset:3px;margin-top:1.2em;text-decoration:underline}@media (pointer:fine){#cursor .arrow{fill:none;stroke:#fff;stroke-width:1px;shape-rendering:geometricprecision;width:28px;height:28px;display:none;position:absolute;top:0;left:0}body.cursor-on.on-item #cursor .arrow,body.cursor-on.on-ext #cursor .arrow{display:block}body.cursor-on.on-item #cursor .h,body.cursor-on.on-ext #cursor .h,body.cursor-on.on-item #cursor .v,body.cursor-on.on-ext #cursor .v{display:none}body.cursor-on.on-item #cursor .xy,body.cursor-on.on-ext #cursor .xy{top:0;left:26px}}.inquiry{z-index:150;-webkit-backdrop-filter:blur(8px)brightness(.62);width:clamp(300px,21vw,420px);color:var(--on-panel);opacity:0;pointer-events:none;background:#45413f99;padding:1.4vw 1.4vw 1.2vw;transition:opacity .4s,transform .4s;position:fixed;bottom:2vw;left:2vw;transform:translateY(12px)}.inquiry.on{opacity:1;pointer-events:auto;transform:none}.inquiry h2{font-family:var(--serif);margin-bottom:.3em;font-size:clamp(18px,1.6vw,24px);font-weight:700}.inquiry p{font:clamp(12px,1vw,14px)/1.45 var(--serif);margin-bottom:1.2em}.inquiry .x{width:30px;height:30px;font:20px/1 var(--sans);color:var(--on-panel);place-items:center;display:grid;position:absolute;top:8px;right:10px}.inquiry .x:hover{color:var(--muted-dark)}.inquiry label{margin-bottom:.9em;display:block}.inquiry label>span{font:11px/1.5 var(--serif);letter-spacing:.3px;color:var(--muted-dark);margin-bottom:2px;display:block}.inquiry input[type=email],.inquiry textarea{width:100%;font:clamp(13px,1vw,15px)/1.5 var(--serif);color:var(--on-panel);background:0 0;border:0;border-bottom:1px solid #fef8f859;border-radius:0;outline:none;padding:5px 0}.inquiry input:focus,.inquiry textarea:focus{border-bottom-color:var(--on-panel)}.inquiry textarea{resize:vertical;min-height:4.5em}.inquiry .consent{font:clamp(11px,.85vw,12px)/1.45 var(--serif);color:var(--muted-dark);align-items:flex-start;gap:10px;display:flex}.inquiry .consent input{accent-color:var(--on-panel);flex:none;margin-top:3px}.inquiry .consent a{color:var(--on-panel);text-underline-offset:2px;text-decoration:underline}.inquiry .actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:1em;display:flex}.inquiry button[type=submit]{font:700 clamp(13px,1.05vw,15px)/1 var(--serif);color:var(--on-panel);text-underline-offset:4px;padding:4px 0;text-decoration:underline}.inquiry button[type=submit]:hover{color:var(--muted-dark)}.inquiry.sending button[type=submit]{opacity:.5;pointer-events:none}.inquiry .status{font:clamp(12px,.95vw,14px)/1.4 var(--serif)}@media (pointer:fine){body.cursor-on .inquiry input,body.cursor-on .inquiry textarea{cursor:none}}@media (width<=760px){.inquiry{width:auto;padding:18px 16px 16px;bottom:12px;left:12px;right:12px}}@media (width>=761px){.fascia{aspect-ratio:var(--fr);grid-template-rows:minmax(0,1fr)}.fascia:not(.auto)>.blk{min-height:0}.fascia.auto{aspect-ratio:auto;grid-template-rows:auto}}@media (width<=760px){.fascia{grid-template-columns:1fr}.blk{grid-column:1/-1!important}.item-img.cover{flex:none}.item-img.cover .media,.item-video.cover video{aspect-ratio:auto;height:auto}.item-text,.item-quote{padding:12px}.item-text.titled{padding:16px 12px 40px}main.services .fascia:first-child .item-text{padding-bottom:32px}main.about .blk>.item-img+.item-caption,main.about .blk>.item-caption:first-child{padding:12px 12px 28px}main.about,main.projects{padding-bottom:12px}main.about,main.projects,main.services{padding-top:64px}main.services{flex-direction:column;display:flex}main.services .fascia[data-fascia="03"]{order:2}main.services .fascia[data-fascia="02"]{order:3}main.services .fascia[data-fascia="05"]{order:4}main.services .fascia[data-fascia="04"]{order:5}main.services .fascia[data-fascia="07"]{order:6}main.services .fascia[data-fascia="06"]{order:7}.herotitle{bottom:14px;right:16px}.annot,.gridtoggle,.fascia:before{display:none}.intro{height:70svh}.item-video.has-mobile .v-desktop{display:none}.item-video.has-mobile .v-mobile{display:block}.intro.has-mobile{aspect-ratio:4/5;height:auto}nav.site .links{gap:14px}nav.site a{font-size:12px}nav.site .brand .logo{height:10px}footer.site{grid-template-rows:none;grid-template-columns:1fr;gap:16px;padding:32px 0 24px}footer.site h2,footer.site .col{grid-area:auto/1;margin:0;padding:0 12px}main.contact{padding:14vh 0 40px}main.contact .cols{grid-template-columns:1fr}main.contact .reach,main.contact .side{grid-column:1}main.contact .col{padding:0 12px}main.contact .side{margin-top:40px}main.contact h2:not(:first-child){margin-top:32px}main.contact .lines{margin-top:12px}.cform{margin-top:24px}.cform label{margin-bottom:16px}main.contact .map{width:100%;max-width:360px;margin-top:12px}main.contact .social{margin-top:48px}}@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important}html{scroll-behavior:auto}.veil{display:none}body.reveal-fade .item-img,body.reveal-fade .item-video{opacity:1}}
