.project-detail{--project-section-space:clamp(3rem, 6vw, 5rem);color:#0a0a0a;font-family:var(--body,"neue-haas-grotesk-text", sans-serif);background:#fff}.project-detail *,.project-detail :before,.project-detail :after{box-sizing:border-box}.project-detail [id]{scroll-margin-top:6rem}.project-hero{isolation:isolate;color:#fff;background:#0b0c0f;position:relative;overflow:hidden}.project-hero__content{z-index:2;flex-direction:column;justify-content:flex-end;gap:clamp(1.75rem,3vw,2.5rem);min-height:clamp(38rem,76svh,44rem);padding-block:clamp(2.5rem,4vw,4rem) 2rem;display:flex;position:relative}.project-hero__intro{width:min(43%,34rem);min-width:0;margin-top:auto}.project-hero__intro .pf-kicker{color:#c6c7ca;flex-wrap:wrap;gap:.65rem;margin:0 0 1.5rem;display:flex}.project-hero h1{max-width:100%;font-family:var(--display);letter-spacing:-.05em;text-wrap:balance;overflow-wrap:break-word;margin:0;font-size:clamp(3rem,6vw,6.3rem);font-weight:400;line-height:1.02}.project-hero__headline{max-width:35ch;font-family:var(--display);letter-spacing:-.015em;margin:1.5rem 0 0;font-size:clamp(1.1rem,1.6vw,1.4rem);line-height:1.4}.project-hero__description{color:#bfc0c4;max-width:52ch;margin:.8rem 0 0;font-size:.875rem;line-height:1.65}.project-hero__inquiry{color:#fff;min-height:44px;font-family:var(--body);border-bottom:1px solid #8d8e92;align-items:center;gap:1.6rem;margin-top:.85rem;padding:.45rem 0;font-size:.73rem;line-height:1.5;display:inline-flex}.project-hero__inquiry:focus-visible{outline-offset:5px;outline:2px solid #fff}.project-hero__inquiry>.arrow-link__icon{font-size:1.05rem;transition:transform .2s}.project-hero__inquiry:hover>.arrow-link__icon{transform:translate(3px,-3px)}.project-hero__cover{z-index:0;pointer-events:none;position:absolute;inset:0}.project-hero__cover:after{z-index:2;content:"";background:linear-gradient(90deg,#0b0c0ff5 0%,#0b0c0fe8 38%,#0b0c0f69 58%,#0000 80%),linear-gradient(#0000 50%,#0b0c0f44 75%,#0b0c0ff5 100%);position:absolute;inset:0}.project-hero__cover .project-cover--aura{inset:0}.project-hero__cover .project-cover__mockup{left:26%}.project-hero__cover[data-cover=screenshot] .project-cover{inset:5% var(--gutter) 5% 35%}.project-hero__cover[data-cover=screenshot] img{object-position:right center}.project-hero__cover .project-cover,.project-hero__cover .project-cover__aura,.project-hero__cover .project-cover__mockup{transition:none}.project-facts{border-top:1px solid #ffffff30;flex-shrink:0;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:1.25rem clamp(2rem,4vw,4rem);margin:0;padding:1.5rem 0 0;display:grid}.project-facts dt{color:#a9aaaf;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.65rem;font-size:.6rem}.project-facts dd{white-space:nowrap;margin:0;font-size:.78rem;line-height:1.5}.project-facts__website{text-align:right;min-width:0}.project-facts__website dt{justify-content:flex-end;align-items:center;gap:.8rem;display:flex}.project-live-dot{background:#63c68c;border-radius:50%;flex-shrink:0;width:8px;height:8px;position:relative;box-shadow:0 0 0 3px #63c68c1f}.project-live-dot:after{content:"";border-radius:inherit;border:1px solid #63c68c;animation:2.6s ease-out infinite project-live-pulse;position:absolute;inset:-4px}.project-live-link{min-width:0;max-width:100%;color:inherit;align-items:center;gap:.8rem;margin-block:-.3rem;padding-block:.3rem;text-decoration:none;display:inline-flex}.project-detail .project-live-link .arrow-link__label{text-overflow:ellipsis;border-bottom-color:#ffffff60;min-width:0;text-decoration:none;overflow:hidden}.project-detail .project-live-link:hover .arrow-link__label{border-bottom-color:currentColor}.project-live-link:focus-visible{outline-offset:5px;outline:2px solid #fff}@keyframes project-live-pulse{0%{opacity:.7;transform:scale(.6)}75%,to{opacity:0;transform:scale(1.5)}}.project-story,.project-scope{padding-block:var(--project-section-space);grid-template-columns:1fr 1.15fr;column-gap:13%;display:grid}.project-story__label h2,.project-scope h2{font-family:var(--display);letter-spacing:-.04em;margin:1.5rem 0 0;font-size:clamp(2.4rem,4vw,4.25rem);font-weight:400;line-height:1.03}.project-story__facts{border-top:1px solid var(--rule,#e2e2e2);gap:1.2rem;max-width:27rem;margin:2rem 0 0;padding-top:1.4rem;display:grid}.project-story__facts dt{color:#777;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem;font-size:.6rem;font-weight:400}.project-story__facts dd{color:#5f5f5f;margin:0;font-size:.8rem;line-height:1.6}.project-story__services dd{flex-wrap:wrap;gap:.15rem .55rem;display:flex}.project-story__services dd>span:not(:last-child):after{content:"/";color:#999;padding-left:.55rem}.project-story__copy{gap:2.25rem;display:grid}.project-story h3,.project-scope h3{margin:0 0 .8rem;font-size:.85rem;font-weight:500}.project-story__copy p,.project-scope__outcome p{color:#666;margin:0;font-size:1rem;line-height:1.75}.project-work__heading{border-top:1px solid #cfcfcf;grid-template-columns:1.2fr 1fr;align-items:end;gap:10%;padding-block:2rem;display:grid}.project-work__heading h2{max-width:20ch;font-family:var(--display);letter-spacing:-.045em;margin:1.5rem 0 0;font-size:clamp(2.5rem,4.8vw,4.75rem);font-weight:400;line-height:1.04}.project-work__heading>p{color:#666;max-width:42ch;margin:0;font-size:.94rem;line-height:1.7}.project-scope{border-bottom:1px solid #cfcfcf}.project-scope__details ul{margin:1.25rem 0 0;padding:0;list-style:none}.project-scope__outcome{margin-top:2rem}.project-scope__details li{border-bottom:1px solid #dfdfdf;gap:1.2rem;padding:1rem 0;font-size:.93rem;line-height:1.4;display:flex}.project-scope__details li>span{color:#828282;font-size:.66rem;line-height:1.9}.project-scope__details li a{color:inherit;text-underline-offset:.25em;text-decoration-color:#b8b8b3;text-decoration-thickness:1px}.project-scope__details li a:hover{text-decoration-color:currentColor}.project-section-contact{align-items:center;gap:1.8rem;min-height:44px;margin-top:1.75rem;font-size:.78rem;line-height:1.5;display:inline-flex}.project-section-contact .arrow-link__label{border-bottom-color:#b8b8b3}.project-section-contact .arrow-link__icon{font-size:1.1rem;transition:transform .2s}.project-section-contact:hover .arrow-link__icon{transform:translate(2px,-2px)}.project-navigation.wrap{background:#fff;border-block:1px solid #cfcfcf;margin-block:-1px}.project-navigation__items{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,4vw,4rem);display:grid}.project-navigation__item{--arrow-direction:-1;min-width:0;color:inherit;flex-direction:column;align-items:flex-start;gap:.8rem;padding-block:clamp(1.5rem,3vw,2.25rem);text-decoration:none;display:flex}.project-navigation__item--previous{grid-column:1}.project-navigation__item--next{--arrow-direction:1;text-align:right;grid-column:2;align-items:flex-end}.project-navigation__eyebrow{color:#777;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.75rem;font-size:.6rem;font-weight:400;line-height:1.5;display:flex}.project-navigation__title{max-width:100%;font-family:var(--display);letter-spacing:-.035em;align-items:center;gap:1rem;font-size:clamp(1.4rem,2.2vw,2.1rem);font-weight:400;line-height:1.15;display:flex}.project-navigation__name{overflow-wrap:anywhere;text-underline-offset:.15em;min-width:0;text-decoration-thickness:1px}.project-navigation__arrow{font-family:var(--body);flex-shrink:0;font-size:1rem;font-weight:400;transition:transform .2s}.project-navigation__item:is(:hover,:focus-visible) .project-navigation__arrow{transform:translateX(calc(3px * var(--arrow-direction)))}.project-navigation__item:is(:hover,:focus-visible) .project-navigation__name{text-decoration-line:underline}.project-navigation__item:focus-visible{outline-offset:-5px;outline:1px solid #0a0a0a}.project-cta{justify-content:space-between;align-items:center;gap:2rem;padding-block:clamp(2.5rem,5vw,4rem);display:flex}.project-cta .pf-kicker{color:#777;margin:0 0 1rem}.project-cta h2{font-family:var(--display);letter-spacing:-.04em;margin:0;font-size:clamp(2rem,3.6vw,3.2rem);font-weight:400;line-height:1.1}.project-cta__button{color:#fff;background:#0a0a0a;border:1px solid #0a0a0a;flex-shrink:0;justify-content:space-between;align-items:center;gap:2rem;min-height:48px;padding:.9rem 1.2rem;font-size:.78rem;line-height:1.4;transition:background .2s;display:inline-flex}.project-cta__button>span:last-child{font-size:1.2rem}.project-cta__button:hover{background:#30302e}.project-actions,.project-actions-space{display:none}@media (max-width:900px){.project-hero__content{gap:2rem;min-height:38rem;padding-top:2.5rem}.project-hero__intro{width:min(65%,32rem)}.project-hero h1{font-size:clamp(2.75rem,7vw,4.7rem)}.project-facts{grid-template-columns:auto minmax(0,1fr)}.project-facts__industry{grid-column:1/-1}}@media (max-width:760px){html:has(.project-actions){scroll-padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.project-hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro""cover""facts";display:grid}.project-hero__content{display:contents}.project-hero__intro{z-index:2;width:auto;margin:3rem var(--gutter) 0;grid-area:intro;position:relative}.project-hero h1{font-size:clamp(2.5rem,10vw,4.5rem)}.project-hero__intro .pf-kicker{margin-bottom:1.25rem}.project-hero__headline{margin-top:1.25rem}.project-hero__cover{grid-area:cover;height:clamp(20rem,82vw,34rem);margin-top:1rem;position:relative;inset:auto;overflow:hidden}.project-hero__cover .project-cover__mockup{inset:0 -12%}.project-hero__cover[data-cover=screenshot] .project-cover{inset:0 var(--gutter)}.project-hero__cover[data-cover=screenshot] img{object-position:center}.project-hero__cover:after{background:linear-gradient(#0b0c0f 0%,#0000 18% 78%,#0b0c0f 100%)}.project-facts{z-index:2;margin:0 var(--gutter) 2rem;grid-area:facts;position:relative}.project-story,.project-scope{grid-template-columns:1fr;gap:2rem}.project-story__copy{gap:2rem}.project-work__heading{grid-template-columns:1fr;gap:1.5rem;padding-top:1.5rem}.project-work__heading h2{max-width:18ch}.project-work__heading>p{max-width:52ch}.project-scope h2 br,.project-story__label h2 br{display:none}.project-navigation__items{gap:0}.project-navigation__item{justify-content:flex-start;gap:.75rem;padding-block:1.35rem}.project-navigation__item--previous{padding-right:1rem}.project-navigation__item--next{border-left:1px solid #e2e2e2;padding-left:1rem}.project-navigation__eyebrow{letter-spacing:.04em;gap:.4rem;font-size:.52rem}.project-navigation__arrow{font-size:.8rem}.project-navigation__title{text-wrap:balance;font-size:clamp(1.1rem,4.6vw,1.65rem);line-height:1.2}.project-navigation__item:hover .project-navigation__name{text-decoration-line:none}.project-cta{flex-direction:column;align-items:flex-start;gap:1.5rem;padding-block:2.5rem}.project-cta h2{font-size:clamp(2rem,7vw,2.6rem)}.project-cta__button{gap:2rem}.project-actions{z-index:40;padding:.5rem 0 max(.5rem, env(safe-area-inset-bottom));background:#fff;border-top:1px solid #deded9;display:block;position:fixed;inset:auto 0 0;box-shadow:0 -4px 20px #00000008}.project-actions__inner{align-items:center;gap:.25rem;display:flex}.project-actions__inner>a{color:#585854;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.3rem;min-width:0;min-height:44px;font-size:.57rem;line-height:1.2;text-decoration:none;display:flex}.project-actions svg{fill:none;stroke:currentColor;stroke-width:1.1px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.project-actions__contact{color:#fff;background:#0a0a0a;border:1px solid #0a0a0a;flex-shrink:0;justify-content:space-between;align-items:center;gap:.85rem;min-height:44px;margin-left:.5rem;padding:.7rem .9rem;font-size:.7rem;line-height:1.3;display:inline-flex}.project-actions__contact>span:last-child{font-size:1rem}.project-actions a:focus-visible,.project-actions__contact:focus-visible{outline-offset:2px;outline:2px solid #0a0a0a}.project-actions a:hover{color:#0a0a0a}.project-actions-space{height:calc(65px + env(safe-area-inset-bottom));display:block}body:has(.mobile-menu[data-open=true],dialog[open]) .project-actions{display:none}}@media print{.project-actions,.project-actions-space{display:none}}@media (prefers-reduced-motion:reduce){.project-detail *,.project-detail :before,.project-detail :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
