:root{--paper:oklch(97.5% .006 70);--ink:oklch(18% .012 58);--muted:oklch(46% .014 65);--line:oklch(84% .012 68);--moss:oklch(31% .035 105);--serif:"Faculty Glyphic-Regular","Iowan Old Style","Palatino Linotype",Georgia,serif;--sans:"Schibsted Grotesk",Arial,sans-serif}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans)}.site-header{align-items:center;color:#fff;display:flex;height:80px;justify-content:space-between;left:0;padding:0 3.5vw;position:fixed;top:0;transition:background .45s ease,color .45s ease,height .45s ease;width:100%;z-index:5}.site-header.is-scrolled{background:color-mix(in oklch,var(--paper) 94%,transparent);color:var(--ink);height:64px}.wordmark{color:inherit;font-family:var(--serif);font-size:29px;letter-spacing:-1.9px;line-height:1}.wordmark span{color:oklch(66% .12 70)}nav{display:flex;gap:28px;margin-left:12vw}nav a,.header-contact,footer a{color:inherit;font-size:14px;font-weight:500;transition:opacity .2s ease}nav a:hover,.header-contact:hover,footer a:hover{opacity:.62}.header-contact span,.text-link span{display:inline-block;transition:transform .3s cubic-bezier(.16,1,.3,1)}.header-contact:hover span,.text-link:hover span{transform:translate(3px,-3px)}.menu-toggle{background:transparent;border:0;display:none;height:40px;padding:8px 0 8px 12px;width:42px}.menu-toggle i{background:currentColor;display:block;height:1px;margin:5px 0;transition:transform .3s ease;width:24px}.hero{background:var(--moss);height:min(820px,calc(100svh - 16px));margin:8px;min-height:620px;overflow:hidden;position:relative}.hero-media,.hero-shade{height:100%;inset:0;position:absolute;width:100%}.hero-media{filter:saturate(.55) contrast(1.07);object-fit:cover;transform:scale(1.02);animation:hero-scale 9s cubic-bezier(.16,1,.3,1) both}.hero-shade{background:linear-gradient(90deg,oklch(15% .02 70 / .52),oklch(15% .01 70 / .05) 70%),linear-gradient(0deg,oklch(13% .01 70 / .26),transparent 45%)}.hero-copy{color:#fff;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-45%);width:min(760px,90%)}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;margin:0 0 18px;text-transform:uppercase}.light{color:oklch(100% .001 60 / .75)}.hero h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.055em}.hero h1{font-size:clamp(57px,8vw,118px);line-height:.94;margin:0 0 36px;animation:rise .95s .15s both cubic-bezier(.16,1,.3,1)}.hero .eyebrow,.hero .button{animation:rise .85s .45s both cubic-bezier(.16,1,.3,1)}.hero-scroll{bottom:29px;color:oklch(100% .001 60 / .75);font-size:12px;left:36px;position:absolute}.hero-scroll span{background:currentColor;display:inline-block;height:1px;margin:0 0 4px 10px;position:relative;width:32px}.hero-scroll span:after{border:solid currentColor;border-width:0 1px 1px 0;content:"";height:5px;position:absolute;right:0;top:-3px;transform:rotate(-45deg);width:5px}.button{align-items:center;border:1px solid transparent;border-radius:100px;display:inline-flex;font-size:15px;font-weight:600;gap:14px;justify-content:center;padding:13px 18px;transition:background .3s ease,color .3s ease,transform .3s cubic-bezier(.16,1,.3,1)}.button:hover{transform:none}.button span{font-size:17px;transition:transform .3s cubic-bezier(.16,1,.3,1)}.button:hover span{transform:none}.button-light{background:oklch(98% .005 70);color:var(--ink)}.button-light:hover{background:oklch(88% .016 75)}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:var(--moss)}.section{margin:0 auto;max-width:1440px;padding-left:3.5vw;padding-right:3.5vw}.intro{font-size:clamp(30px,4vw,55px);letter-spacing:-.055em;line-height:1.07;max-width:1270px;padding-bottom:clamp(140px,18vw,270px);padding-top:clamp(140px,18vw,260px);text-align:center}.intro p{margin:0}.intro p+p{color:var(--muted);margin:.15em auto 0;max-width:25ch}.section-heading{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:48px}.section-heading h2,.promise h2,.contact h2{font-size:clamp(53px,5.8vw,85px);line-height:.91;margin:0 0 23px}.lead{color:var(--muted);font-size:18px;letter-spacing:-.025em;line-height:1.34;margin:0;max-width:31ch}.text-link{color:var(--ink);font-size:15px;font-weight:600;padding:10px 0}.project-grid{display:grid;gap:16px;grid-template-columns:1.18fr 1.18fr .9fr;overflow:hidden}.project{color:var(--ink);display:block}.project figure{background:var(--moss);margin:0 0 16px;overflow:hidden}.project img{display:block;filter:saturate(.75);height:clamp(280px,34vw,490px);object-fit:cover;transition:filter .6s ease,transform .8s cubic-bezier(.16,1,.3,1);width:100%}.project span{display:block;font-family:var(--serif);font-size:clamp(18px,1.7vw,25px);letter-spacing:-.045em}.project em{color:oklch(65% .03 70);font-style:normal}.project b{float:right;font-family:var(--sans);font-size:18px;font-weight:400;opacity:0;transform:translate(-7px,7px);transition:opacity .3s ease,transform .35s cubic-bezier(.16,1,.3,1)}.project:hover img{filter:saturate(1);transform:scale(1.055)}.project:hover b{opacity:1;transform:translate(0)}.work{padding-bottom:clamp(150px,16vw,240px)}.promise{border-top:1px solid var(--line);display:grid;gap:12vw;grid-template-columns:1fr 1fr;padding-bottom:clamp(145px,17vw,245px);padding-top:clamp(72px,9vw,130px)}.promise-copy h2{margin-bottom:0}.promise-detail{align-self:end}.promise-detail p{color:var(--muted);font-size:clamp(19px,1.7vw,25px);letter-spacing:-.04em;line-height:1.28;margin:0 0 30px;max-width:34ch}.services{background:oklch(90% .015 78);max-width:none;padding-bottom:clamp(90px,11vw,160px);padding-top:clamp(90px,11vw,160px)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:0 auto;max-width:1440px}.service{border-top:1px solid oklch(59% .02 70);display:grid;gap:20px;grid-template-columns:30px 1fr;min-height:260px;padding:22px 28px 38px 0}.service:nth-child(3n+2),.service:nth-child(3n+3){padding-left:28px}.service-number{color:var(--muted);font-size:12px}.service h3{font-size:clamp(31px,3vw,46px);line-height:1;margin:0 0 13px}.service p{color:var(--muted);font-size:16px;letter-spacing:-.025em;line-height:1.38;margin:0;max-width:30ch}.service:hover h3{color:var(--moss)}.contact{background:var(--moss);color:var(--paper);max-width:none;min-height:600px;padding-bottom:8vw;padding-top:8vw}.contact-inner{margin:0 auto;max-width:1440px}.contact h2{font-size:clamp(64px,9vw,135px);margin-bottom:38px}footer{align-items:center;background:var(--moss);border-top:1px solid oklch(76% .04 110 / .36);color:oklch(97% .006 70);display:flex;justify-content:space-between;padding:24px 3.5vw 28px}footer p{color:oklch(97% .006 70 / .65);font-size:12px;margin:0}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}@keyframes rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-scale{from{transform:scale(1.1)}to{transform:scale(1.02)}}
@media(max-width:760px){.site-header{height:65px;padding:0 22px}.site-header.is-scrolled{height:58px}.header-contact,nav{display:none}.menu-toggle{display:block}.menu-open nav{align-items:center;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;font-family:var(--serif);font-size:29px;gap:24px;inset:0;justify-content:center;margin:0;position:fixed}.menu-open .menu-toggle{color:var(--ink);position:relative;z-index:1}.menu-open .menu-toggle i:first-child{transform:translateY(3px) rotate(45deg)}.menu-open .menu-toggle i:last-child{transform:translateY(-3px) rotate(-45deg)}.menu-open .wordmark{color:var(--ink);position:relative;z-index:1}.hero{height:calc(100svh - 16px);min-height:550px}.hero-copy{transform:translate(-50%,-36%)}.hero-scroll{bottom:22px;left:22px}.section{padding-left:22px;padding-right:22px}.intro{font-size:clamp(29px,8.5vw,42px);padding-bottom:120px;padding-top:130px}.section-heading{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:32px}.project-grid{gap:35px;grid-template-columns:1fr;overflow:visible}.project img{height:80vw;max-height:480px}.promise{gap:52px;grid-template-columns:1fr}.promise h2{font-size:54px}.service-grid{grid-template-columns:1fr}.service,.service:nth-child(3n+2),.service:nth-child(3n+3){min-height:0;padding:21px 0 37px}.contact{min-height:530px;padding-bottom:110px;padding-top:110px}footer{flex-wrap:wrap;gap:18px}footer p{order:3;width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
