html{scroll-snap-type:y mandatory}
html.products-jumping{scroll-snap-type:none}
.products-page .site-nav a[aria-current="page"]{background:rgba(255,255,255,.07);color:#fff}
.products-page .site-nav a[aria-current="page"]::after{transform:scaleX(1)}
.products-page main>section{scroll-snap-stop:always}
.products-page .ps-products{scroll-snap-stop:normal}
.products-page .ps-scroll-landing{will-change:opacity,transform}
.products-page h1,.products-page h2{margin:0;font-weight:500}
.products-page h1 em,.products-page h2 em{color:#b69dbb}
.products-page .section-kicker{margin-bottom:20px}
.products-page .ps-reveal{transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.products-page.has-motion .ps-reveal:not(.is-visible){opacity:0;transform:translateY(34px)}

.ps-hero{min-height:100svh;display:flex;flex-direction:column;padding-top:80px;padding-bottom:28px;background:var(--ink);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.ps-hero__visual{position:absolute;z-index:0;top:clamp(150px,19vh,210px);right:5vw;bottom:clamp(100px,12vh,150px);width:min(40%,620px);margin:0;overflow:hidden;background:#6f6b72}
.ps-hero__visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 46%;animation:ps-hero-image-in 1.8s cubic-bezier(.22,1,.36,1) both}
.ps-hero__visual figcaption{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:14px 18px;background:rgba(56,33,62,.91);color:#fff;font-size:10px;font-weight:700;letter-spacing:.15em}
.ps-hero>.section-head,.ps-hero__main,.ps-hero__route{position:relative;z-index:1}
.ps-hero__main{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;max-width:54%;padding:5vh 0 4vh}
.ps-hero h1{font-size:clamp(64px,6vw,104px);line-height:1.02;letter-spacing:-.07em}
.ps-hero h1 em{display:block;font-size:.59em;line-height:1.18;letter-spacing:-.055em;margin-top:18px}
.ps-hero__intro{display:flex;flex-direction:column;align-items:flex-start;gap:24px;max-width:520px;margin-top:clamp(28px,4vh,48px);border-top:1px solid rgba(255,255,255,.45);padding-top:20px}
.ps-hero__intro p{font-size:clamp(16px,1.26vw,19px);line-height:1.5;color:#e4dbe6;margin:0}
.ps-hero__intro .text-action{font-size:12px;white-space:nowrap;margin-bottom:4px}
.ps-hero__route{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:20px;border-top:1px solid rgba(255,255,255,.35);padding-top:20px;font-size:10px;font-weight:700;letter-spacing:.13em}
.ps-hero__route span:not(:first-child){border-left:1px solid rgba(255,255,255,.26);padding-left:25px}
.ps-hero__route a:hover{text-decoration:underline;text-underline-offset:4px}
@keyframes ps-hero-image-in{from{transform:scale(1.08);opacity:.55}to{transform:scale(1);opacity:1}}

.ps-chemistry{min-height:100svh;display:flex;flex-direction:column;padding-top:80px;padding-bottom:37px;background:var(--paper)}
.ps-chemistry__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:6vw;align-items:center;flex:1;padding:4vh 0}
.ps-chemistry h2,.ps-products h2,.ps-services h2,.ps-next h2{font-size:clamp(55px,6vw,98px);line-height:1.06}
.ps-chemistry h2 em,.ps-products h2 em{color:#795d80}
.ps-chemistry__copy{max-width:650px}
.ps-chemistry__copy p:not(.section-kicker){font-size:clamp(15px,1.18vw,18px);line-height:1.55;color:#514850;max-width:590px;margin:22px 0 0}
.ps-chemistry__copy .ps-chemistry__lead{font-weight:600;color:var(--ink);font-size:clamp(19px,1.6vw,24px);line-height:1.42;margin-top:33px}
.ps-chemistry__image{margin:0;min-width:0}
.ps-chemistry__image img{display:block;width:100%;height:clamp(360px,61vh,620px);object-fit:cover;object-position:center}
.ps-chemistry__image figcaption,.ps-products__visual figcaption{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:15px;font-size:10px;font-weight:700;letter-spacing:.13em;color:#6d626d}

.ps-process{position:relative;height:300vh;background:var(--plum);color:#fff}
.ps-process__snap{position:absolute;left:0;width:1px;height:1px;scroll-snap-align:start;scroll-snap-stop:always;pointer-events:none}
.ps-process__snap--second{top:100svh}
.ps-process__snap--third{top:200svh}
.ps-process__sticky{position:sticky;top:0;height:100svh;min-height:0;display:flex;flex-direction:column;padding-top:80px;padding-bottom:25px;overflow:hidden}
.ps-process__layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:5vw;align-items:center;min-height:0}
.ps-process__copy{min-width:0}
.ps-process__copy .section-kicker{color:#d1b9d6}
.ps-process h2{font-size:clamp(55px,5.7vw,94px);line-height:1.04}
.ps-process__detail{margin-top:5vh;padding-top:22px;border-top:1px solid rgba(255,255,255,.35);min-height:180px}
.ps-process__detail>span{display:block;font-size:10px;font-weight:700;letter-spacing:.15em;color:#cdb5d1;margin-bottom:19px}
.ps-process__detail h3{font-family:Manrope,Arial,sans-serif;font-size:clamp(26px,2.7vw,43px);font-weight:600;letter-spacing:-.055em;line-height:1.14;margin:0 0 18px}
.ps-process__detail p{font-size:clamp(15px,1.24vw,19px);line-height:1.53;max-width:640px;color:#dfd2e1;margin:0}
.ps-process__diagram{position:relative;aspect-ratio:560/500;max-height:min(59vh,560px);width:min(100%,560px);margin:auto;color:#fff}
.ps-process__diagram svg{display:block;width:100%;height:100%;overflow:visible}
.ps-process__diagram svg path{fill:none;stroke-linejoin:round;stroke-width:2}
.ps-process__path-base{stroke:rgba(255,255,255,.23)}
.ps-process__path-progress{stroke:#d8b5df;stroke-width:3!important;stroke-dasharray:1;stroke-dashoffset:var(--line-offset,1);transition:stroke-dashoffset .15s linear}
.ps-process__diagram svg circle{fill:var(--plum);stroke:#c9afd0;stroke-width:3;transition:fill .45s ease,stroke .45s ease,filter .45s ease}
.ps-process__node{position:absolute;font-size:10px;font-weight:700;letter-spacing:.12em;line-height:1.4;color:#cbb9ce;opacity:.63;transition:color .45s ease,opacity .45s ease}
.ps-process__node span{display:block;font-family:Manrope,Arial,sans-serif;font-size:clamp(38px,4.2vw,66px);font-weight:500;letter-spacing:-.07em;line-height:1;margin-bottom:5px}
.ps-process__node--one{top:6%;left:5%;transform:translate(-8%,-5%)}
.ps-process__node--two{top:6%;right:1%;text-align:right;transform:translate(6%,-5%)}
.ps-process__node--three{bottom:4%;left:50%;text-align:center;transform:translateX(-50%)}
.ps-process[data-stage="0"] .ps-process__node--one,.ps-process[data-stage="1"] .ps-process__node--two,.ps-process[data-stage="2"] .ps-process__node--three{color:#fff;opacity:1}
.ps-process[data-stage="0"] .ps-process__node--one span,.ps-process[data-stage="1"] .ps-process__node--two span,.ps-process[data-stage="2"] .ps-process__node--three span{color:#ecd0f0}
.ps-process[data-stage="0"] .ps-process__point--one,.ps-process[data-stage="1"] .ps-process__point--two,.ps-process[data-stage="2"] .ps-process__point--three{fill:#ecd0f0;stroke:#fff;filter:drop-shadow(0 0 8px rgba(236,208,240,.55))}
.ps-process__center{position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:700;letter-spacing:.22em;line-height:1.6;text-align:center;color:rgba(255,255,255,.55)}
.ps-process__footer{padding-top:12px}
.ps-process__steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ps-process__steps button{position:relative;text-align:left;border:0;border-top:1px solid rgba(255,255,255,.3);background:none;color:#bda9c1;padding:17px 0 12px;font-size:12px;font-weight:700;cursor:pointer;transition:color .25s}
.ps-process__steps button::before{content:"";position:absolute;top:-1px;left:0;width:0;height:2px;background:#d8b5df;transition:width .3s}
.ps-process__steps button.is-active{color:#fff}
.ps-process__steps button.is-active::before{width:100%}
.ps-process__steps button span{font-size:10px;margin-right:13px}
.ps-process__progress{height:2px;background:rgba(255,255,255,.18);margin-top:12px}
.ps-process__progress span{display:block;height:100%;width:0;background:#d8b5df}

.ps-products{background:#fff;padding-top:80px;padding-bottom:100px;scroll-margin-top:80px}
.ps-products__heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.5fr);gap:5vw;align-items:end;padding:clamp(48px,7vh,88px) 0 42px}
.ps-products__heading>p{font-size:clamp(16px,1.3vw,20px);line-height:1.55;color:#514850;max-width:445px;margin:0 0 8px}
.ps-products__index{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin-bottom:26px}
.ps-products__index a{padding:8px 15px;border-right:1px solid var(--line);font-size:11px;font-weight:700;white-space:nowrap;transition:color .2s}
.ps-products__index a:first-child{padding-left:0}
.ps-products__index a:last-child{border:0}
.ps-products__index a:hover,.ps-products__index a.is-active{color:#765181}
.ps-products__showcase{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:6vw;align-items:start}
.ps-product{min-height:68vh;display:flex;flex-direction:column;justify-content:center;border-top:1px solid var(--line);scroll-margin-top:85px;scroll-snap-align:start;scroll-snap-stop:always;padding:65px 0}
.ps-product:first-child{border-top:0}
.ps-product__number{font-size:11px;font-weight:700;letter-spacing:.13em;color:#806787}
.ps-product h3{font-family:Manrope,Arial,sans-serif;font-size:clamp(44px,4.45vw,72px);font-weight:500;letter-spacing:-.065em;line-height:1.05;margin:18px 0 22px}
.ps-product p{font-size:clamp(16px,1.29vw,19px);line-height:1.58;max-width:620px;color:#514850;margin:0 0 28px}
.ps-product__tags{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:10px;font-weight:700;letter-spacing:.12em;color:#736477}
.ps-product__tags span{border-top:1px solid var(--line);padding-top:11px}
.ps-product__mobile-image{display:none}
.ps-product__image-note{display:none}
.ps-products__visual{position:sticky;top:90px;min-width:0;height:calc(100svh - 118px);margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ps-products__visual img{position:absolute;top:46%;left:50%;transform:translate(-50%,-47%) scale(.96);display:block;width:min(100%,650px);max-height:calc(100% - 60px);object-fit:contain;opacity:0;transition:opacity .45s ease,transform .7s cubic-bezier(.22,1,.36,1);pointer-events:none}
.ps-products__visual img.is-active{opacity:1;transform:translate(-50%,-47%) scale(1)}
.ps-products__visual figcaption{position:absolute;left:0;right:0;bottom:2px;width:100%}

.ps-services{padding-top:80px;padding-bottom:110px;background:var(--ink);color:#fff;scroll-margin-top:80px}
.ps-services__heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.6fr);gap:4vw;align-items:end;padding:8vh 0 8vh}
.ps-services__heading .section-kicker{grid-column:1/-1;color:#d0b8d5;margin:0}
.ps-services__heading>p:last-child{font-size:clamp(16px,1.35vw,19px);line-height:1.55;color:#d3c7d6;max-width:430px;margin:0 0 6px}
.ps-services__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:5vw}
.ps-service{border-top:1px solid rgba(255,255,255,.3);padding:27px 0 42px;min-height:230px}
.ps-service[id]{scroll-margin-top:100px}
.ps-service>span{font-size:10px;font-weight:700;letter-spacing:.14em;color:#c9afd0}
.ps-service h3{font-family:Manrope,Arial,sans-serif;font-size:clamp(24px,2.1vw,34px);font-weight:600;letter-spacing:-.05em;line-height:1.18;margin:24px 0 15px}
.ps-service p{font-size:clamp(15px,1.1vw,17px);line-height:1.55;color:#d4c9d6;max-width:550px;margin:0}

.ps-next{min-height:90svh;display:flex;flex-direction:column;padding-top:80px;padding-bottom:28px;background:var(--plum);color:#fff}
.ps-next__body{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:8vh 0}
.ps-next h2{font-size:clamp(65px,7vw,116px)}
.ps-next__body>p:not(.section-kicker){font-size:clamp(17px,1.55vw,21px);line-height:1.5;max-width:600px;color:#e0d3e3;margin:32px 0 37px}
.ps-next__foot{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.35);padding-top:20px;font-size:14px}
.ps-next__foot a:hover{text-decoration:underline;text-underline-offset:5px}

@media(max-width:1100px){
.ps-hero h1{font-size:clamp(56px,6vw,72px)}
.ps-hero__main{max-width:55%}
.ps-hero__intro{gap:22px}
.ps-chemistry__layout{gap:4vw}.ps-chemistry h2{font-size:clamp(52px,5.5vw,80px)}
.ps-process__layout{gap:2vw}.ps-process h2{font-size:clamp(49px,5.2vw,75px)}
.ps-products__showcase{gap:3vw}
}
@media(max-width:900px){
.ps-hero__visual{width:42%;right:4vw}
.ps-hero__main{max-width:55%}
.ps-chemistry__layout{grid-template-columns:1fr 1fr}
.ps-chemistry__image img{height:clamp(320px,55vh,500px)}
}
@media(max-width:760px){
html{scroll-snap-type:y proximity}
.ps-hero{min-height:100svh;padding-top:72px;padding-bottom:24px}
.ps-hero__visual{top:120px;left:0;right:0;bottom:auto;width:100%;height:28svh}
.ps-hero__visual img{object-position:50% 42%}
.ps-hero__visual figcaption{display:none}
.ps-hero__main{max-width:100%;justify-content:flex-end;padding:27svh 0 24px}
.ps-hero h1{font-size:clamp(55px,11.7vw,75px)}
.ps-hero h1 em{font-size:.63em;margin-top:12px}
.ps-hero__intro{margin-top:30px;padding-top:17px;gap:18px}
.ps-hero__intro p{font-size:15px;max-width:470px}
.ps-hero__intro .text-action{font-size:11px}
.ps-hero__route{grid-template-columns:repeat(3,1fr);gap:8px 10px;font-size:8px}
.ps-hero__route span:not(:first-child){padding-left:10px}
.ps-hero__route a{display:none}
.ps-chemistry,.ps-products,.ps-services,.ps-next{padding-top:72px}
.ps-chemistry__layout{display:block;padding:60px 0 30px}
.ps-chemistry h2,.ps-products h2,.ps-services h2,.ps-next h2{font-size:clamp(46px,9.5vw,67px)}
.ps-chemistry__copy p:not(.section-kicker){font-size:16px}
.ps-chemistry__image{margin-top:42px}
.ps-chemistry__image img{height:360px}
.ps-chemistry__image figcaption{font-size:9px}
.ps-process{height:400svh}
.ps-process__sticky{padding-top:72px;padding-bottom:17px}
.ps-process__layout{display:flex;flex-direction:column;justify-content:space-around;align-items:stretch;gap:15px}
.ps-process__copy .section-kicker{font-size:9px;margin-bottom:12px}
.ps-process h2{font-size:clamp(38px,9vw,56px)}
.ps-process__detail{margin-top:18px;padding-top:14px;min-height:0}
.ps-process__detail>span{margin-bottom:8px;font-size:9px}
.ps-process__detail h3{font-size:clamp(24px,6vw,32px);margin-bottom:9px}
.ps-process__detail p{font-size:14px;line-height:1.46}
.ps-process__diagram{width:min(100%,305px);max-height:230px;flex-shrink:1}
.ps-process__node{font-size:7px}.ps-process__node span{font-size:28px}
.ps-process__center{font-size:8px}
.ps-process__steps{gap:8px}
.ps-process__steps button{font-size:9px;padding:10px 0 8px}
.ps-process__steps button span{font-size:8px;margin-right:4px}
.ps-process__progress{margin-top:6px}
.ps-products{padding-bottom:70px}
.ps-products__heading{display:block;min-height:0;padding:38px 0 30px}
.ps-products__heading>p{margin-top:30px}
.ps-products__index{gap:0;margin-bottom:0}
.ps-products__index a{font-size:10px;padding:8px 10px}
.ps-products__showcase{display:block}
.ps-product{min-height:0;padding:65px 0 48px;scroll-margin-top:72px}
.ps-product{scroll-snap-align:none}
.ps-product:first-child{border-top:1px solid var(--line)}
.ps-product h3{font-size:clamp(40px,9vw,61px)}
.ps-product p{font-size:16px}
.ps-product__mobile-image{display:block;width:min(100%,480px);height:auto;margin:25px auto 0;object-fit:contain}
.ps-product__image-note{display:block;margin:8px auto 0;text-align:center;color:#817581;font-size:9px;font-weight:700;letter-spacing:.12em}
.ps-products__visual{display:none}
.ps-services{padding-bottom:70px}
.ps-services__heading{display:block;padding:65px 0 50px}
.ps-services__heading h2{margin:22px 0 28px}
.ps-services__grid{grid-template-columns:1fr}
.ps-service{min-height:0;padding:26px 0 38px}
.ps-next{min-height:85svh;padding-bottom:28px}
.ps-next__body{padding:80px 0 100px}
.ps-next__foot{flex-direction:column;font-size:13px}
}
@media(max-width:420px){
.ps-hero h1{font-size:clamp(52px,12vw,61px)}
.ps-hero__main{padding-top:27svh}
.ps-process h2{font-size:clamp(36px,8.7vw,43px)}
.ps-process__diagram{width:min(100%,255px);max-height:190px}
.ps-products__index a{border:0;padding:7px 9px}
.ps-products__index a:first-child{padding-left:9px}
}
@media(max-width:760px) and (max-height:690px){.ps-process__diagram{display:none}.ps-process__layout{justify-content:center}}
@media(prefers-reduced-motion:reduce){
html{scroll-snap-type:none}
.products-page .ps-reveal{transition:none!important}
.products-page.has-motion .ps-reveal:not(.is-visible){opacity:1;transform:none}
.products-page .ps-scroll-landing{will-change:auto}
.ps-products__visual img,.ps-process__path-progress{transition:none}
.ps-hero__visual img{animation:none}
}
