/* ==========================================================================
   VESPER — Aesthetics clinic, Marylebone, London
   Layout / motion system ported from the reference build.
   1rem = 1px at a 1440px viewport (html font-size .0694444vw), rem == px <= 1024px.
   ========================================================================== */

/* ---------- reset ---------- */
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
[hidden],template{display:none}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{margin:0}
h1,h2,h3,h4,h5,h6,p,figure{margin:0}
a{background:0 0;color:inherit;text-decoration:none}
a,a:focus{outline:none}
img{border:0;max-width:100%}
svg:not(:root){overflow:hidden}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button{background:none;border:0;padding:0;cursor:pointer;color:inherit}
table{border-collapse:collapse;border-spacing:0}
ul,ol{margin:0;padding:0;list-style:none}

/* ---------- tokens ---------- */
:root{
  --bg:#dddbd6;
  --ink:#d36080;            /* dark pink (replaces the reference red) */
  --ink-33:rgba(211,96,128,.34);
  --ink-30:rgba(211,96,128,.3);
  --margin:20rem;
  --gap:20rem;
  --rvw:14.4px;             /* set by JS: clientWidth / 100 */
  --column:calc(var(--rvw)*100/12 - var(--margin)*2/12 - var(--gap)*11/12);
  --start-vh:100vh;         /* set by JS: innerHeight at load */
  --font-mono:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
  --font-sans:"Space Grotesk","Helvetica Neue",Arial,sans-serif;
  --font-display:"Anton","Arial Narrow",Impact,sans-serif;
  --ease-out:cubic-bezier(.19,1,.22,1);
  --ease-text:cubic-bezier(.65,.2,0,1);
  --ease-odo:cubic-bezier(.6,.14,0,1);
  --ease-line:cubic-bezier(.35,.42,0,1);
  --ease-fade:cubic-bezier(.26,.1,0,1);
}
@media (max-width:1024px){:root{--margin:16px;--gap:10px}}
@media (max-width:740px){:root{--margin:18px}}

/* ---------- type ---------- */
html{font-size:.0694444444vw;scroll-behavior:auto;background:var(--bg)}
@media (max-width:1024px){html{font-size:1px}}
body{background:var(--bg);color:var(--ink);font-family:var(--font-mono);font-size:19rem;font-weight:500;letter-spacing:-.005em;line-height:1.2;text-transform:uppercase;min-height:100%}
*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;text-shadow:0 0 1px transparent}
body,html{height:auto;padding:0}
.h1,.h2,.super,.super-small{font-family:var(--font-sans);font-weight:400;letter-spacing:-.04em;line-height:1;margin:0}
.super,.super-small{line-height:.65}
.super{font-size:245rem}
.super-small{font-size:190rem}
.h1{font-size:95rem;line-height:.65}
.h2{font-size:48rem;font-weight:500}
.small{font-size:16rem;font-weight:500}
.sans{font-family:var(--font-sans);letter-spacing:-.03em}
@media (max-width:1024px){body{font-size:16px}.super{font-size:170px}.super-small{font-size:120px}.h1{font-size:64px}.h2{font-size:32px}.small{font-size:14px}}
@media (max-width:890px){.super{font-size:120px}.super-small{font-size:96px}.h1{font-size:64px}.h2{font-size:32px}}
@media (max-width:580px){.super{font-size:64px}.h1,.super-small{font-size:48px}.h2{font-size:28px}.small{font-size:12px}}

#main{max-width:100vw;min-height:100svh;overflow-x:clip;width:100%;position:relative}
.no-transition,.no-transition *{transition:none!important}
.no-transform,.no-transform *{transform:none!important}
.none{display:none!important}
.full-width{width:100vw!important}
.overflow-hidden{overflow:hidden!important}
html.menu-open{overflow:hidden!important}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-scrolling iframe{pointer-events:none}
::selection{background:var(--ink);color:var(--bg)}

/* ---------- reveal helpers ---------- */
[data-fade-in]{opacity:0;transition:opacity 1s ease-in}
[data-fade-in].show{opacity:1}
[data-fade-in-y]>*{transition:transform 1s var(--ease-fade)}
[data-fade-in-y]:not(.show)>*{transform:translateY(200px)}
.u-line{position:relative}
.u-line:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease-line);width:100%}
.u-line:hover:after{transform:scaleX(1);transform-origin:100% 50%}
.u-line-on{position:relative}
.u-line-on:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleX(1);transform-origin:100% 50%;transition:transform 1s var(--ease-line);width:100%}
.u-line-on:hover:after{transform:scaleX(0);transform-origin:0 50%}

/* ---------- loader ---------- */
.loading{height:100dvh;overflow:hidden;position:fixed;width:100vw;z-index:9999999;align-items:center;display:flex;justify-content:center;left:0;top:0}
.loading .bg{background:var(--bg);height:100%;position:absolute;left:0;top:0;transition:opacity .8s var(--ease-out);width:100%;z-index:0}
.loading.hide,.loading.hide *{pointer-events:none!important}
.loading.hide .bg{opacity:0}

/* ---------- debug grid (Shift+G) ---------- */
.grid-overlay{box-sizing:border-box;display:grid;gap:var(--gap);grid-template-columns:repeat(12,1fr);grid-template-rows:auto;height:100%;left:0;padding:0 var(--margin);pointer-events:none;position:fixed;top:0;width:100%;z-index:9999999}
.grid-overlay div{background:#00f3}
.grid-overlay:not(.show){display:none}

/* ---------- nav ---------- */
#nav{align-items:flex-start;box-sizing:border-box;display:flex;justify-content:space-between;left:0;line-height:1;padding:12rem var(--margin);pointer-events:none;position:fixed;top:0;transition:opacity 1s var(--ease-out),color 1s var(--ease-out),transform 1s var(--ease-out);user-select:none;width:100%;z-index:99999}
html:not([data-loading-done]) #nav{opacity:0}
#nav .menuToggle{display:none;position:relative}
#nav .contact,#nav .item,#nav .logo,#nav .menuToggle{pointer-events:auto}
#nav .logo{display:inline-flex;left:50%;pointer-events:none;position:absolute;top:12rem;transform:translate(-50%)}
#nav .logo .wordmark{height:54rem;width:auto;pointer-events:auto;transform-origin:top;transition:transform 1s var(--ease-out);display:block}
#nav .contact,#nav .items{transition:opacity 1s var(--ease-out)}
#nav .items{align-items:flex-start;display:inline-flex;flex-direction:column;gap:2rem;pointer-events:auto;position:relative;padding:0 40rem 40rem 0;margin:0 -40rem -40rem 0}
#nav .items:hover .item{transition-delay:0s!important;transition-duration:.3s!important}
#nav .item{cursor:pointer;font-size:14rem;position:relative;transition:transform 1s var(--ease-out);z-index:9;white-space:nowrap}
#nav .item:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease-line);width:100%}
#nav .item:hover:after,#nav .item.is-current:after{transform:scaleX(1);transform-origin:100% 50%}
#nav .item.back{margin-bottom:6rem;opacity:.75}
#nav .item.back:hover{opacity:1}
#nav .item:first-child{transition-delay:.6s}
#nav .item:nth-child(2){transition-delay:.55s}
#nav .item:nth-child(3){transition-delay:.5s}
#nav .item:nth-child(4){transition-delay:.45s}
#nav .item:nth-child(5){transition-delay:.4s}
#nav .item:nth-child(6){transition-delay:.35s}
#nav .item:nth-child(7){transition-delay:.3s}
#nav .lines{display:flex;flex-direction:column;gap:10rem;left:0;pointer-events:auto;position:absolute;top:0;width:32rem;z-index:0}
#nav .lines span{background:currentColor;height:2px;transform-origin:0 0;transition:transform .3s var(--ease-out);width:100%;display:block}
#nav .lines span:first-child{transition-delay:.03s}
#nav .lines span:nth-child(2){transition-delay:.06s}
#nav .lines span:nth-child(3){transition-delay:.09s}
#nav .lines span:nth-child(4){transition-delay:.12s}
#nav .lines span:nth-child(5){transition-delay:.15s}
#nav .lines span:nth-child(6){transition-delay:.18s}
#nav .lines span:nth-child(7){transition-delay:.21s}
#nav .contact{align-items:center;cursor:pointer;display:inline-flex;font-size:24rem;line-height:.82;text-decoration:none;transform:rotate(-90deg) translateY(-38rem);transform-origin:100% 0}
#nav .contact svg{display:none}
#nav .contact svg path{transform-box:fill-box;transform-origin:center;transition:transform 1s var(--ease-out)}
#nav .contact .buttonText{align-items:flex-start;display:inline-flex;flex-direction:column;transition:transform 1s var(--ease-out)}
#nav .contact .buttonText .textMask{display:inline-block;overflow:hidden;position:relative}
#nav .contact .buttonText .textMask:first-child{padding-left:.5em}
#nav .contact .buttonText .textMask:first-child span{transition-delay:.1s}
#nav .contact .buttonText .textMask:first-child span:last-child{transition-delay:.15s}
#nav .contact .buttonText .textMask span{display:inline-block;transition:transform 2s var(--ease-out)}
#nav .contact .buttonText .textMask span:last-child{background:currentColor;height:1.5em;position:absolute;right:0;transform:translateY(-110%);width:100%;top:0}
#nav .contact .buttonText .textMask:not(:last-child){margin-bottom:-.1em}
#nav .contact:hover svg path:last-child{transform:scale(1.15)}
#nav .contact:hover svg path:first-child{transform:scale(.8) translate(-5%) translateY(-5%)}
#nav .contact:hover .textMask span:last-child{transform:translateY(100%)}
#nav.isOpen{color:var(--bg)!important}
#nav:not(.isStart).isDown .logo .wordmark{transform:scale(.72) translateY(-100rem)}
#nav:not(.isStart).isDown .items:not(:hover) .item{transform:translateY(-125rem)}
#nav:not(.isStart).isDown .items:not(:hover) .item:first-child{transition-delay:.05s}
#nav:not(.isStart).isDown .items:not(:hover) .item:nth-child(2){transition-delay:.1s}
#nav:not(.isStart).isDown .items:not(:hover) .item:nth-child(3){transition-delay:.15s}
#nav:not(.isStart).isDown .items:not(:hover) .item:nth-child(4){transition-delay:.2s}
#nav:not(.isStart).isDown .items:not(:hover) .item:nth-child(5){transition-delay:.25s}
#nav:not(.isStart).isDown .items:not(:hover) .item:nth-child(6){transition-delay:.3s}
#nav:not(.isStart).isDown .items:not(:hover) .item:nth-child(7){transition-delay:.35s}
#nav:not(.isStart).isDown .items:not(:hover) .lines span:first-child{transition-delay:.8s;transition-duration:1s}
#nav:not(.isStart).isDown .items:not(:hover) .lines span:nth-child(2){transition-delay:.75s;transition-duration:1s}
#nav:not(.isStart).isDown .items:not(:hover) .lines span:nth-child(3){transition-delay:.7s;transition-duration:1s}
#nav:not(.isStart).isDown .items:not(:hover) .lines span:nth-child(4){transition-delay:.65s;transition-duration:1s}
#nav:not(.isStart).isDown .items:not(:hover) .lines span:nth-child(5){transition-delay:.6s;transition-duration:1s}
#nav:not(.isStart).isDown .items:not(:hover) .lines span:nth-child(6){transition-delay:.55s;transition-duration:1s}
#nav:not(.isStart).isDown .items:not(:hover) .lines span:nth-child(7){transition-delay:.5s;transition-duration:1s}
#nav:not(.isStart).isDown .contact:not(:hover) .buttonText,#nav:not(.isStart).isDown .contact:not(:hover) svg{transform:translate(100rem)}
#nav .items:hover .lines span,#nav.isStart .items .lines span,#nav:not(.isDown) .items .lines span{transform:scaleX(0)}
#nav.isStart .contact .buttonText{transition-delay:.1s}
#nav.isStart .contact svg{transition-delay:0s}
#nav.isOpen .logo{pointer-events:none}
#nav.isOpen .logo .wordmark{transform:translateY(-100px)!important}
@media (max-width:1024px){#nav{padding:15px var(--margin)}}
@media (max-width:580px){
  #nav{align-items:center;padding:16px var(--margin)}
  #nav .contact,#nav .items{display:none}
  #nav .logo{position:static;transform:none}
  #nav .logo .wordmark{height:32px;transform:none!important}
  #nav .menuToggle{display:inline-flex;transition:transform 1s var(--ease-out)}
  #nav.isDown:not(.isStart) .logo .wordmark{transform:translateY(-100rem)!important}
}
.menuToggle{align-items:center;color:currentColor;cursor:pointer;display:inline-flex;height:24rem;width:24rem}
.menuToggle svg{height:auto;width:100%;fill:currentColor;overflow:visible}
.menuToggle svg path{transform-box:fill-box;transform-origin:center center;transition:transform 1s var(--ease-out)}
.menuToggle.isOpen svg path{transform:rotate(45deg)}
@media (max-width:580px){.menuToggle{height:24px;width:24px}}

/* wordmark (inline svg text) */
.wordmark text{font-family:var(--font-display);font-weight:400;fill:currentColor;text-transform:uppercase;letter-spacing:0}

/* ---------- mobile menu ---------- */
.menu{align-items:center;background:var(--ink);box-sizing:border-box;color:var(--bg);display:none;flex-direction:column;height:100dvh;justify-content:space-between;left:0;overflow:clip;padding:30px 0;position:fixed;top:0;transition:transform 1.5s var(--ease-out);width:100vw;z-index:99}
.menu .bottom,.menu .items{align-items:flex-start;display:flex;flex-direction:column;width:100%}
.menu .items{box-sizing:border-box;font-size:32px;gap:16px;padding-left:var(--margin);padding-right:var(--margin);width:100%;padding-top:60px}
.menu .item{cursor:pointer;line-height:1}
.menu .bottom .logo{display:flex;transition:transform 2s var(--ease-out);width:100%;overflow:clip}
.menu .bottom .logo svg{height:auto;width:100%;fill:currentColor;display:block}
.menu .bottom .footer{box-sizing:border-box;display:flex;font-size:12px;justify-content:space-between;margin-top:20px;padding-left:var(--margin);padding-right:var(--margin);transition:transform 2s var(--ease-out);width:100%}
.menu .bottom .footer a{position:relative}
.menu .bottom .footer a:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleX(1);transform-origin:100% 50%;transition:transform 1s var(--ease-line);width:100%}
.menu .bottom .footer a:hover:after{transform:scaleX(0);transform-origin:0 50%}
.menu:not(.isOpen) .item{transform:translateY(40px);opacity:0}
.menu .item{transition:transform 1.5s var(--ease-out),opacity 1.5s var(--ease-out)}
.menu.isOpen .item:nth-child(3){transition-delay:.5s}
.menu.isOpen .item:nth-child(2){transition-delay:.6s}
.menu.isOpen .item:first-child{transition-delay:.7s}
.menu.isOpen .item:nth-child(4){transition-delay:.4s}
.menu.isOpen .item:nth-child(5){transition-delay:.3s}
.menu.isOpen .item:nth-child(6){transition-delay:.2s}
.menu.isOpen .bottom .logo{transition-delay:.8s}
.menu.isOpen .bottom .footer{transition-delay:1.1s}
.menu:not(.isOpen) .bottom .logo{transform:translateY(40%)}
.menu:not(.isOpen) .bottom .footer{transform:translateY(200%)}
.menu:not(.isOpen){pointer-events:none;transform:translateY(-105%);transition-duration:1s}
@media (max-width:580px){.menu{display:flex}}

/* ---------- custom cursor: small dot, morphing inverted shapes over film ---------- */
.customCursor{position:fixed;left:0;top:0;width:0;height:0;pointer-events:none;z-index:9999;will-change:transform;transform:translate3d(-300px,-300px,0)}
.customCursor .dot{position:absolute;left:-7rem;top:-7rem;width:14rem;height:14rem;border-radius:50%;background:currentColor;transition:transform .35s var(--ease-out),opacity .18s linear}
.customCursor:not(.show) .dot,.customCursor.isInvert .dot{opacity:0;transform:scale(0)}
.customCursor.isInvert .dot{transition-duration:.1s}
/* the blend only reaches the film if nothing between this layer and the root isolates it */
.cursorBlob{position:fixed;left:0;top:0;width:0;height:0;pointer-events:none;z-index:9998;mix-blend-mode:difference;transform:translate3d(-300px,-300px,0)}
.cursorBlob svg{position:absolute;left:-46rem;top:-46rem;width:92rem;height:92rem;display:block;overflow:visible;opacity:0;transform:scale(.25);transition:opacity .16s linear,transform .4s var(--ease-out)}
.cursorBlob path{fill:#fff}
.cursorBlob.isOn svg{opacity:1;transform:scale(1)}
html[data-touch=true] .customCursor,html[data-touch=true] .cursorBlob{display:none}

/* ---------- smartText (line masks + per-word scramble) ---------- */
.smartText,.smartText>*{font-weight:inherit;margin:0;text-align:inherit;text-decoration:inherit}
.smartText>*{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit}
.smartText p,.smartText>*{margin:0!important}
.smartText b,.smartText strong{font-weight:inherit}
.smartText .line{display:block;font-weight:inherit;overflow-y:clip}
.smartText .line .text{position:relative;top:-.02em}
.smartText .line .word{display:inline-block}
.smartText .line .word:not(:last-child).right-space{padding-right:.25em}
.smartText .line.jump{margin-bottom:1em!important}
.smartText .line .scrambled-space{display:inline-block;width:.25em}
/* display type only: words start tight and ease apart once the scramble lands */
.smartText.stretch .line .word.right-space{transition:padding-right 1.1s var(--ease-odo)}
.smartText.stretch:not(.scrambled) .line .word.right-space{padding-right:0}
.smartText .text{display:inline-block;font-weight:inherit;white-space:nowrap;will-change:transform}
.smartText.mask .line{overflow-x:clip}
.smartText:not(.isBody) .line{height:1.16em}
.smartText:not(.isBody) .line .text{top:.06em}
.smartText:not(.isBody) .line .word:not(:last-child).right-space{padding-right:.17em}
.smartText:not(.isBody) .line .scrambled-space{width:.17em}
.smartText:not(.isBody) .line.has-brackets{height:1.22em}
.smartText:not(.isBody) .line.has-brackets .text{top:.05em}
.smartText:not(.isBody) .line.has-brackets:not(:last-child){margin-bottom:-.4em!important}
.smartText:not(.isBody) .line:not(:last-child){margin-bottom:-.44em!important}
.smartText.super .line,.smartText.super-small .line,.smartText.h1 .line,.smartText.h2 .line{height:1.16em}
.smartText.super .line .text,.smartText.super-small .line .text,.smartText.h1 .line .text,.smartText.h2 .line .text{top:.06em}
.smartText.super .line:not(:last-child),.smartText.super-small .line:not(:last-child),.smartText.h1 .line:not(:last-child),.smartText.h2 .line:not(:last-child){margin-bottom:-.44em!important}
.smartText.super .line.has-brackets:not(:last-child),.smartText.super-small .line.has-brackets:not(:last-child),.smartText.h1 .line.has-brackets:not(:last-child),.smartText.h2 .line.has-brackets:not(:last-child){margin-bottom:-.4em!important}
.smartText.super .line .word:not(:last-child).right-space,.smartText.super-small .line .word:not(:last-child).right-space,.smartText.h1 .line .word:not(:last-child).right-space,.smartText.h2 .line .word:not(:last-child).right-space{padding-right:.17em}
.smartText[data-scroll-item] .line,.smartText[data-scroll-item] .text{transition:transform 2s var(--ease-text)}
.smartText[data-scroll-item] .line:nth-child(1),.smartText[data-scroll-item] .line:nth-child(1) .text{transition-delay:calc(var(--delay)*1)}
.smartText[data-scroll-item] .line:nth-child(2),.smartText[data-scroll-item] .line:nth-child(2) .text{transition-delay:calc(var(--delay)*2)}
.smartText[data-scroll-item] .line:nth-child(3),.smartText[data-scroll-item] .line:nth-child(3) .text{transition-delay:calc(var(--delay)*3)}
.smartText[data-scroll-item] .line:nth-child(4),.smartText[data-scroll-item] .line:nth-child(4) .text{transition-delay:calc(var(--delay)*4)}
.smartText[data-scroll-item] .line:nth-child(5),.smartText[data-scroll-item] .line:nth-child(5) .text{transition-delay:calc(var(--delay)*5)}
.smartText[data-scroll-item] .line:nth-child(6),.smartText[data-scroll-item] .line:nth-child(6) .text{transition-delay:calc(var(--delay)*6)}
.smartText[data-scroll-item] .line:nth-child(7),.smartText[data-scroll-item] .line:nth-child(7) .text{transition-delay:calc(var(--delay)*7)}
.smartText[data-scroll-item] .line:nth-child(8),.smartText[data-scroll-item] .line:nth-child(8) .text{transition-delay:calc(var(--delay)*8)}
.smartText[data-scroll-item] .line:nth-child(9),.smartText[data-scroll-item] .line:nth-child(9) .text{transition-delay:calc(var(--delay)*9)}
.smartText[data-scroll-item] .line:nth-child(10),.smartText[data-scroll-item] .line:nth-child(10) .text{transition-delay:calc(var(--delay)*10)}
.smartText[data-scroll-item] .line:nth-child(11),.smartText[data-scroll-item] .line:nth-child(11) .text{transition-delay:calc(var(--delay)*11)}
.smartText[data-scroll-item] .line:nth-child(12),.smartText[data-scroll-item] .line:nth-child(12) .text{transition-delay:calc(var(--delay)*12)}
.smartText[data-scroll-item] .line:nth-child(13),.smartText[data-scroll-item] .line:nth-child(13) .text{transition-delay:calc(var(--delay)*13)}
.smartText[data-scroll-item] .line:nth-child(14),.smartText[data-scroll-item] .line:nth-child(14) .text{transition-delay:calc(var(--delay)*14)}
.smartText[data-scroll-item] .line:nth-child(15),.smartText[data-scroll-item] .line:nth-child(15) .text{transition-delay:calc(var(--delay)*15)}
.smartText[data-scroll-item] .line:nth-child(16),.smartText[data-scroll-item] .line:nth-child(16) .text{transition-delay:calc(var(--delay)*16)}
.smartText[data-scroll-item] .line:nth-child(17),.smartText[data-scroll-item] .line:nth-child(17) .text{transition-delay:calc(var(--delay)*17)}
.smartText[data-scroll-item] .line:nth-child(18),.smartText[data-scroll-item] .line:nth-child(18) .text{transition-delay:calc(var(--delay)*18)}
.smartText[data-scroll-item] .line:nth-child(19),.smartText[data-scroll-item] .line:nth-child(19) .text{transition-delay:calc(var(--delay)*19)}
.smartText[data-scroll-item] .line:nth-child(20),.smartText[data-scroll-item] .line:nth-child(20) .text{transition-delay:calc(var(--delay)*20)}
.smartText[data-scroll-item] .line:nth-child(n+21),.smartText[data-scroll-item] .line:nth-child(n+21) .text{transition-delay:calc(var(--delay)*21)}
.smartText[data-scroll-item]{overflow-y:clip}
.smartText[data-scroll-item]:not(.show) .line{transform:translateY(80%)}
.smartText[data-scroll-item]:not(.show) .text{transform:translateY(140%)}

/* ---------- media ---------- */
.responsiveImage{height:auto;margin:0;padding:0;position:relative;width:100%;overflow:hidden}
.responsiveImage .ratio{display:block;position:relative;z-index:1;background-color:rgba(211,96,128,.1);transition:opacity 1s var(--ease-out);width:100%}
.responsiveImage img{height:100%;left:0;position:absolute;top:0;width:100%;z-index:0;object-fit:cover;display:block}
.responsiveImage.loaded .ratio{opacity:0}
.responsiveImage.alignTop img{object-position:top}
.media{display:inline-flex;position:relative;width:100%}
.media .image,.media .video{width:100%}
.media video{width:100%;height:100%;object-fit:cover;display:block}
.media.hasRatio video{object-fit:cover;position:absolute;left:0;top:0}
.media.hasRatio{aspect-ratio:var(--ratio,16/9)}
.media.inheritSize .video{height:100%;object-fit:cover}

/* ---------- hero / header ---------- */
.header{position:relative;width:100%}
.header .content{align-items:center;display:flex;flex-direction:column;justify-content:center;padding-bottom:min(180rem,15vh);padding-top:min(450rem,50vh)}
.header .titleContainer{align-items:center;box-sizing:border-box;display:flex;height:100svh;height:var(--start-vh);min-height:60vh;justify-content:center;left:0;overflow:hidden;padding:0 var(--margin);position:absolute;text-align:center;width:100%;top:0;pointer-events:none}
.header .titleContainer .title{width:100%}
.header .subtitle{font-family:var(--font-sans);overflow-y:clip}
.header .subtitle span{display:block}
.header.introPending .bottom{opacity:0}
.header .bottom{transition:opacity 1s var(--ease-out);bottom:0;box-sizing:border-box;display:flex;justify-content:space-between;left:0;padding:24rem calc(var(--margin) + var(--column)*1);position:absolute;width:100%}
.header .bottom span:nth-child(2){left:50%;position:absolute;text-align:center;transform:translate(-50%)}
@media (max-width:1024px){.header .bottom{padding:16rem var(--margin)}}
@media (max-width:740px){.header .subtitle{font-size:28px;text-align:center}.header .bottom{font-size:12px}.header .bottom span:nth-child(2){position:static;transform:none}.header .bottom span:nth-child(3){display:none}}
@media (max-width:580px){.header .titleContainer{font-size:64px}}

.reelSection{overflow:hidden;position:relative;display:flex;width:100%;cursor:none}
.reelSection .media{display:flex;width:100%}
@media (max-width:1024px){.reelSection{cursor:pointer}}

/* reel overlay */
.reel{background:#000000e6;height:100%;left:0;position:fixed;top:0;transition:opacity 1s var(--ease-out);width:100%;z-index:99999;align-items:center;display:flex;justify-content:center;color:var(--bg)}
.reel .close{cursor:pointer;height:37px;position:absolute;right:var(--margin);top:var(--margin);width:37px;z-index:1;align-items:center;display:flex;justify-content:center}
.reel .close:before{border:1.5px solid;border-radius:50%;box-sizing:border-box;content:"";height:100%;left:0;position:absolute;top:0;transition:transform 1s var(--ease-out);width:100%}
.reel .close svg{height:25%;width:25%;z-index:1;fill:currentColor;transition:transform 1.1s var(--ease-odo)}
.reel .close:hover:before{transform:scale(1.1)}
.reel .close:hover svg{transform:rotate(180deg)}
.reel .video{aspect-ratio:16/9;display:flex;height:auto;max-width:min(1300px,160vh - 140px);position:relative;width:calc(100% - var(--margin)*2)}
.reel .video video{width:100%;height:100%;object-fit:contain;display:block}
.reel:not(.isOpen){opacity:0;pointer-events:none}
@media (max-width:970px){.reel .video{max-width:min(1100px,120vh)}}
@media (max-width:580px){.reel{background:#000}.reel .close{height:40px;width:40px}.reel .video{max-width:100%;width:100%}}

/* video player (reel) */
.videoPlayer{display:flex;height:100%;user-select:none;width:100%;position:relative}
.videoPlayer:before{background:#00000080;content:"";height:100%;left:0;position:absolute;top:0;transition:opacity 1s var(--ease-out);width:100%;z-index:1;pointer-events:none}
.videoPlayer .player{align-items:center;bottom:8rem;box-sizing:border-box;display:flex;flex-direction:column;font-size:12rem;left:0;padding:0 10rem;position:absolute;text-transform:uppercase;width:100%;z-index:2}
.videoPlayer .player .timeline{align-items:center;display:flex;height:10rem;justify-content:center;margin-bottom:0;transform-origin:left;transition:transform 1s var(--ease-out),opacity 1s var(--ease-out);width:100%;cursor:pointer}
.videoPlayer .player .timeline .bar{background:var(--ink-30);height:1rem;position:relative;transform-origin:left;transition:transform 1s var(--ease-out),opacity 1s var(--ease-out);width:100%}
.videoPlayer .player .timeline .bar .progress{background:currentColor;height:100%;left:0;position:absolute;top:0;transform-origin:left;width:100%;transform:scaleX(0)}
.videoPlayer .player .timeline:hover .bar{transform:scaleY(5)}
.videoPlayer .player .bottomRow{align-items:center;display:flex;justify-content:space-between;line-height:1;transition:opacity 1s var(--ease-out);width:100%;margin-top:8rem}
.videoPlayer .player .bottomRow .buttons{display:flex}
.videoPlayer .player .bottomRow .toggle,.videoPlayer .player .bottomRow .toggleSound{cursor:pointer;margin-right:10rem;position:relative}
.videoPlayer .player .bottomRow .toggle:after,.videoPlayer .player .bottomRow .toggleSound:after{background:currentColor;bottom:-1rem;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease-line);width:100%}
.videoPlayer .player .bottomRow .toggle:hover:after,.videoPlayer .player .bottomRow .toggleSound:hover:after{transform:scaleX(1);transform-origin:100% 50%}
.videoPlayer:not(.hover) .player .timeline{opacity:0;transform:scaleX(0)}
.videoPlayer:not(.hover) .player .bottomRow{opacity:0}
.videoPlayer:not(.hover):before{opacity:0}
.videoPlayer.paused:before{opacity:1}
.videoPlayer.paused .player .timeline{opacity:1;transform:scaleX(1)}
.videoPlayer.paused .player .bottomRow{opacity:1}
@media (max-width:740px){.videoPlayer:before{content:none}.videoPlayer .player{display:none}}

/* ---------- about ---------- */
.aboutSection{padding-top:24rem;width:100%}
.aboutSection .bottomContent,.aboutSection .top{align-items:flex-start;display:flex;gap:var(--gap);justify-content:space-between;margin:0 auto;width:calc(var(--column)*10 + var(--gap)*9)}
.aboutSection .bottom{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:320rem 0}
.aboutSection .bottom .left,.aboutSection .bottom .right{width:calc(var(--column)*5 + var(--gap)*4)}
.aboutSection .bottom .left .titleContainer{font-family:var(--font-sans);max-width:430rem}
.aboutSection .bottom .left .titleContainer .line:first-child{padding-left:.75em}
.aboutSection .bottom .right .description{max-width:calc(var(--column)*4 + var(--gap)*3)}
.aboutSection .bottom .right .description [data-block="1"] .text{margin-left:calc(var(--column)*.9)}
.aboutSection .bottom .right .description [data-block="2"] .text{margin-left:calc(var(--column)*.45)}
@media (max-width:1024px){.aboutSection .bottomContent,.aboutSection .top{width:calc(100% - var(--margin)*2)}.aboutSection .bottom .right{max-width:450px;width:100%}.aboutSection .bottom .right .description{max-width:100%}}
@media (max-width:890px){.aboutSection .bottom{min-height:auto}.aboutSection .bottom .bottomContent{align-items:center;flex-direction:column}.aboutSection .bottom .left{margin-bottom:100px;margin-left:auto;margin-right:auto;max-width:450px;width:100%}.aboutSection .bottom .right{max-width:385px;width:100%}}
@media (max-width:740px){.aboutSection{padding-top:16px}.aboutSection .top{font-size:12px}.aboutSection .bottom{padding-bottom:190px;padding-top:190px}}
@media (max-width:740px){.aboutSection .bottom .right .description [data-block="1"] .text,.aboutSection .bottom .right .description [data-block="2"] .text{margin-left:0}}

/* ---------- brave (super text over media) ---------- */
.braveSection{margin-bottom:100px;position:relative}
.braveSection .titleContainer{position:relative;z-index:1}
.braveSection .titleContainer .title{width:100%}
.braveSection .titleContainer:first-child{width:calc(var(--column)*11 + var(--gap)*10)}
.braveSection .titleContainer:nth-child(2){margin-left:auto;margin-top:100rem;width:calc(var(--column)*7 + var(--gap)*6)}
.braveSection .media{position:absolute;right:calc(var(--margin)*-1);top:30rem;width:calc(var(--column)*5 + var(--gap)*4);z-index:0}
.braveSection .media .responsiveImage.cutout{overflow:visible;transform:scaleX(-1)}
.braveSection .media .responsiveImage.cutout .ratio{background:none}
.braveSection .media .responsiveImage.cutout img{object-fit:contain}
@media (max-width:890px){.braveSection .titleContainer{width:100%!important}.braveSection .titleContainer:first-child{max-width:500px}.braveSection .titleContainer:nth-child(2){max-width:450px}.braveSection .media{width:70%;right:calc(var(--margin)*-1)}}
@media (max-width:740px){.braveSection{margin-bottom:100px}}
@media (max-width:580px){.braveSection .titleContainer{font-size:52px}.braveSection .titleContainer:first-child{margin-left:var(--margin);max-width:330px}.braveSection .titleContainer:nth-child(2){margin-right:var(--margin);max-width:265px}.braveSection .media{max-width:300px;width:62%;top:90px}}

/* ---------- services ---------- */
.servicesSection{padding-top:540rem;width:100%}
.servicesSection .title{font-family:var(--font-sans);margin-bottom:90rem;margin-left:calc(var(--column)*1 + var(--gap)*2);max-width:400rem;width:100%}
@media (max-width:1024px){.servicesSection .title{margin-left:var(--margin)}}
@media (max-width:740px){.servicesSection{padding-top:190px}.servicesSection .title{margin-bottom:64px;max-width:450px}}
@media (max-width:580px){.servicesSection .title{max-width:300px}}

.servicesSection .steps{box-sizing:border-box;padding:0 var(--margin);width:100%}
.servicesSection .step{width:calc(var(--column)*4 + var(--gap)*3)}
.servicesSection .step:nth-child(1){margin-left:calc(var(--column)*1 + var(--gap))}
.servicesSection .step:nth-child(2){margin-left:calc(var(--column)*7 + var(--gap)*7);margin-top:-80rem}
.servicesSection .step:nth-child(3){margin-left:calc(var(--column)*3 + var(--gap)*3);margin-top:-40rem}
.servicesSection .step .title{margin-bottom:34rem}
.servicesSection .step .description{max-width:340rem}
@media (max-width:1024px){.servicesSection .step{width:calc(var(--column)*5 + var(--gap)*4)}}
@media (max-width:890px){.servicesSection .step{width:100%;max-width:430px}.servicesSection .step:nth-child(1){margin-left:0}.servicesSection .step:nth-child(2){margin-left:auto;margin-right:0;margin-top:120px}.servicesSection .step:nth-child(3){margin-left:6%;margin-top:120px;max-width:min(430px,94%)}}
@media (max-width:740px){.servicesSection .step:nth-child(2),.servicesSection .step:nth-child(3){margin-top:90px}.servicesSection .step .title{margin-bottom:20px}.servicesSection .step .description{max-width:100%}}

/* ---------- work / treatments grid ---------- */
.workSection{box-sizing:border-box;overflow-x:clip;padding:0 var(--margin);padding-top:200rem;position:relative;width:100%}
.workSection .top{align-items:flex-start;display:flex;margin-bottom:120rem;margin-left:calc(var(--column)*1 + var(--gap)*1)}
.workSection .top .title{font-family:var(--font-sans);position:relative;top:-.1em}
.workSection .top .brackets{display:inline-block;line-height:1;margin-left:12rem;overflow:hidden;position:relative}
.workSection .top .brackets .frame{display:inline-block;transition:transform 2s var(--ease-text)}
.workSection .top .brackets .numbers{align-items:center;display:inline-flex;flex-direction:column;left:0;position:absolute;text-align:center;top:0;transform:translateY(1em);transition:transform 2s var(--ease-odo) .7s;width:100%}
.workSection .top .brackets .numbers span{display:block;line-height:1}
.workSection .top .brackets.show .numbers{transform:translateY(calc(-100% + 1.03em))}
.workSection .top .brackets:not(.show) .frame{transform:translateY(100%)}
.workSection .cards{align-items:flex-start;display:flex;flex-wrap:wrap;pointer-events:none}
.workSection .cards .card{flex-shrink:0;pointer-events:auto;transition:transform 1s var(--ease-out),filter 1s var(--ease-out);will-change:transform,filter}
.workSection .cards .card:nth-child(5n+1){margin-left:30rem;margin-top:30rem;width:510rem}
.workSection .cards .card:nth-child(5n+2){margin-left:220rem;width:400rem}
.workSection .cards .card:nth-child(5n+3){margin-left:150rem;margin-right:220rem;margin-top:160rem;width:510rem}
.workSection .cards .card:nth-child(5n+4){margin-left:auto;margin-right:0;margin-top:110rem;width:510rem}
.workSection .cards .card:nth-child(5n+5){margin-bottom:100rem;margin-left:calc(var(--column)*6 + var(--gap)*7);margin-top:60rem;width:310rem}
html[data-touch=false] .workSection .cards:hover .card:not(:hover){filter:blur(17rem);transform:scale(.8)}
@media (max-width:1024px){.workSection .top{margin-left:0}}
@media (max-width:740px){.workSection{padding-top:190px}.workSection .top{margin-bottom:65px}.workSection .cards .card:nth-child(5n+1){margin-bottom:70px;margin-left:0;margin-top:0;width:66vw}.workSection .cards .card:nth-child(5n+2){margin-bottom:50px;margin-left:auto;margin-right:0;width:52%}.workSection .cards .card:nth-child(5n+3){margin-left:10%;margin-right:0;margin-top:0;width:66vw}.workSection .cards .card:nth-child(5n+4){margin-left:auto;margin-right:0;margin-top:80px;width:48vw}.workSection .cards .card:nth-child(5n+5){margin:70px 0 0;width:45vw}.workSection .cards .card:nth-child(5n+5):not(:last-child){margin-bottom:70px}}

.projectCard{display:inline-flex;position:relative}
.projectCard .cardInner,.projectCard .cardParallax{pointer-events:none;position:relative;width:100%}
.projectCard .image{margin-bottom:32rem;width:100%}
.projectCard .bottom{left:0;padding-top:60rem;pointer-events:none;position:absolute;top:100%;white-space:nowrap}
.projectCard .bottom .services span,.projectCard .bottom .subtitle{opacity:0;transform:translateY(100%);transition:transform 1s var(--ease-out),opacity 1s var(--ease-out)}
.projectCard .bottom .subtitle{display:block;margin-bottom:1em}
.projectCard .bottom .services{align-items:flex-start;display:inline-flex;flex-direction:column}
.projectCard .bottom .services span{display:block}
.projectCard:hover{z-index:9}
.projectCard:hover .bottom .services span,.projectCard:hover .bottom .subtitle{opacity:1;transform:translateY(0)}
.projectCard:hover .bottom .services span:first-child{transition-delay:.1s}
.projectCard:hover .bottom .services span:nth-child(2){transition-delay:.2s}
.projectCard:hover .bottom .services span:nth-child(3){transition-delay:.3s}
.projectCard:hover .bottom .services span:nth-child(4){transition-delay:.4s}
.projectCard:hover .bottom .services span:nth-child(5){transition-delay:.5s}
.projectCard:hover .bottom .services span:nth-child(6){transition-delay:.6s}
.projectCard:hover .bottom .services span:nth-child(7){transition-delay:.7s}
.projectCard:hover .bottom .services span:nth-child(8){transition-delay:.8s}
@media (max-width:740px){.projectCard{font-size:12px}.projectCard .image{margin-bottom:11px}.projectCard .bottom{display:none}}

/* ---------- flags / values ---------- */
.flagsSection{margin:200rem 0}
.flagsSection .top{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:220rem;padding-left:calc(var(--column)*1 + var(--gap)*1 + var(--margin))}
.flagsSection .top .titleContainer{font-family:var(--font-sans);margin-bottom:80rem}
.flagsSection .top .titleContainer .title{max-width:400rem;width:100%}
.flagsSection .top .image{width:calc(var(--column)*7 + var(--gap)*6 + var(--margin))}
@media (max-width:740px){.flagsSection{margin:190px 0}.flagsSection .top{flex-direction:column;margin-bottom:90px;padding-left:0;align-items:flex-start}.flagsSection .top .titleContainer{margin-bottom:64px;margin-left:var(--margin);margin-right:auto;max-width:450px}.flagsSection .top .image{width:100%}}

.flagsSlider{width:100%}
.flagsSlider .mask{cursor:grab;overflow:hidden;user-select:none;white-space:nowrap;width:100%}
.flagsSlider .mask:active{cursor:grabbing}
.flagsSlider .content{align-items:flex-start;display:inline-flex;height:auto;width:auto;will-change:transform}
.flagsSlider .item{align-items:flex-start;box-sizing:border-box;display:flex;gap:var(--gap);padding:0 var(--margin);padding-left:calc(var(--column)*1 + var(--gap)*1 + var(--margin));width:80vw;white-space:normal}
.flagsSlider .item .left{margin-right:56rem}
.flagsSlider .item .left .title{max-width:410rem}
.flagsSlider .item .right{width:calc(var(--column)*5 + var(--gap)*4)}
.flagsSlider .item .right .description{max-width:355rem}
.flagsSlider .sliderBottom{align-items:center;display:flex;justify-content:flex-end;margin-top:80rem;padding:0 var(--margin)}
.flagsSlider .sliderBottom span{line-height:1;position:relative;top:-.1em}
.flagsSlider .sliderBottom .sliderNav{align-items:center;display:flex;gap:10rem;margin-left:25rem}
.flagsSlider .sliderBottom .sliderNav .next,.flagsSlider .sliderBottom .sliderNav .prev{cursor:pointer;height:auto;transition:opacity 1s var(--ease-out);width:22rem}
.flagsSlider .sliderBottom .sliderNav .next svg,.flagsSlider .sliderBottom .sliderNav .prev svg{height:auto;width:100%;fill:currentColor;transition:transform 1s var(--ease-out);display:block}
html[data-touch=false] .flagsSlider .sliderBottom .sliderNav .next:hover svg,html[data-touch=false] .flagsSlider .sliderBottom .sliderNav .prev:hover svg{transform:scale(.8)}
.flagsSlider .sliderBottom .sliderNav .prev svg{transform-origin:left center}
.flagsSlider .sliderBottom .sliderNav .next svg{transform-origin:right center}
.flagsSlider.show .item .left:not(.show) .line,.flagsSlider.show .item .right:not(.show) .line{transform:translateY(80%)}
.flagsSlider.show .item .left:not(.show) .line.has-brackets .text,.flagsSlider.show .item .right:not(.show) .line.has-brackets .text{transform:translateY(140%)}
.flagsSlider.show .item .left:not(.show) .text,.flagsSlider.show .item .right:not(.show) .text{transform:translateY(120%)}
.flagsSlider.show .item .left.show .line,.flagsSlider.show .item .left.show .text,.flagsSlider.show .item .right.show .line,.flagsSlider.show .item .right.show .text{transform:translateY(0)}
.flagsSlider[data-can-next=false] .next,.flagsSlider[data-can-prev=false] .prev{opacity:.33;pointer-events:none}
@media (max-width:1024px){.flagsSlider .item{padding-left:var(--margin)}}
@media (max-width:740px){.flagsSlider .item{flex-direction:column}.flagsSlider .item .left{margin-bottom:48px;margin-right:0}.flagsSlider .item .right{box-sizing:border-box;padding-right:20px;width:100%}.flagsSlider .item .right .description{max-width:300px}.flagsSlider.show .item:not(.active) .right .line{transform:translateY(80%)}.flagsSlider.show .item:not(.active) .right .line.has-brackets .text{transform:translateY(140%)}.flagsSlider.show .item:not(.active) .right .text{transform:translateY(120%)}.flagsSlider.show .item.active .right.show .line,.flagsSlider.show .item.active .right.show .text{transform:translateY(0)}}
@media (max-width:580px){.flagsSlider .item{width:85vw}.flagsSlider .sliderBottom{justify-content:space-between;margin-top:70px}}

/* ---------- team intro ---------- */
.teamIntro .top{box-sizing:border-box;margin:0 var(--margin);margin-top:70rem;display:flex;justify-content:space-between}
.teamIntro .top .description{width:calc(var(--column)*3 + var(--gap)*2)}
.teamIntro .top .description:first-child{margin-left:calc(var(--column)*1 + var(--gap))}
.teamIntro .top .description:last-child{margin-left:auto;margin-right:calc(var(--column)*1 + var(--gap))}
.teamIntro .bottom{overflow-x:clip;position:relative}
.teamIntro .bottom .titleContainer{display:flex;position:relative;z-index:1}
.teamIntro .bottom .titleContainer .title{display:inline-block;position:relative;width:auto}
.teamIntro .bottom .titleContainer:first-child{justify-content:flex-end}
.teamIntro .bottom .titleContainer:first-child .title{max-width:900rem;right:-.1em}
.teamIntro .bottom .titleContainer:nth-child(2) .title{left:-.1em;max-width:1100rem}
.teamIntro .bottom .titleContainer:nth-child(3){justify-content:flex-end;margin-top:100rem}
.teamIntro .bottom .titleContainer:nth-child(3) .title{max-width:800rem;right:-.1em}
.teamIntro .bottom .imageContainer{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:880rem;z-index:0}
@media (max-width:890px){.teamIntro .bottom .titleContainer{width:100%!important}.teamIntro .bottom .titleContainer:nth-child(2) .title{max-width:550px}.teamIntro .bottom .imageContainer{left:auto;right:0;transform:translateY(-50%);width:90%}}
@media (max-width:740px){.teamIntro .top{margin-top:120px;flex-direction:column}.teamIntro .top .description{max-width:290px;width:100%}.teamIntro .top .description:first-child{margin-bottom:120px;margin-left:0}}
@media (max-width:580px){.teamIntro .top .description:last-child{margin-left:auto;margin-right:0}.teamIntro .bottom .titleContainer{font-size:64px}.teamIntro .bottom .titleContainer:nth-child(2){margin-top:40px}.teamIntro .bottom .titleContainer:nth-child(2) .title{max-width:320px}.teamIntro .bottom .titleContainer:nth-child(3){margin-top:36px}.teamIntro .bottom .imageContainer{max-width:400px}}

/* ---------- team ---------- */
.teamSection{padding-top:120rem;width:100%}
.teamSection .top{margin:0 var(--margin);margin-bottom:170rem}
.teamSection .top .titleContainer{font-family:var(--font-sans);margin-left:calc(var(--column)*1 + var(--gap));width:calc(var(--column)*4 + var(--gap)*3)}
@media (max-width:890px){.teamSection .top{margin-bottom:100px}.teamSection .top .titleContainer{margin-left:0;max-width:450px;width:100%}}
@media (max-width:580px){.teamSection .top .titleContainer{max-width:320px}}

.teamSlider{width:100%}
.teamSlider .mask{cursor:grab;overflow:hidden;user-select:none;white-space:nowrap;width:100%}
.teamSlider .mask:active{cursor:grabbing}
.teamSlider .content{align-items:flex-start;display:inline-flex;height:auto;padding:0 calc(var(--column) + var(--gap) + var(--margin));transition:height 2s var(--ease-out);width:auto;will-change:transform}
.teamSlider .item{box-sizing:border-box;cursor:pointer;margin-right:calc(var(--column) + var(--gap)*2);transition:width 2s var(--ease-out) .8s,filter 1s var(--ease-out);white-space:normal;flex-shrink:0}
.teamSlider .item,.teamSlider .item .media{width:calc(var(--column)*4 + var(--gap)*3)}
.teamSlider .item .bottom{align-items:flex-start;display:flex;gap:var(--gap);margin-top:32rem;position:relative}
.teamSlider .item .bottom .left{width:calc(var(--column)*4 + var(--gap)*3);flex-shrink:0}
.teamSlider .item .bottom .left .titleContainer{align-items:center;display:flex;justify-content:space-between;margin-bottom:24rem;width:100%}
.teamSlider .item .bottom .left .titleContainer .title{line-height:.65;max-width:410rem}
.teamSlider .item .bottom .left .titleContainer svg{width:18rem;fill:currentColor;transition:transform 1s var(--ease-out);flex-shrink:0;overflow:visible}
.teamSlider .item .bottom .left .titleContainer svg path{transform-box:fill-box;transform-origin:center}
.teamSlider .item .bottom .left .titleContainer svg path:last-child{transition:transform 1s var(--ease-out)}
.teamSlider .item .bottom .left .titleContainer:hover svg{transform:rotate(180deg)}
.teamSlider .item .bottom .right{bottom:0;left:calc(var(--column)*4 + var(--gap)*4);position:absolute;width:calc(var(--column)*6 + var(--gap)*5)}
.teamSlider .item .bottom .right .description{max-width:640rem}
.teamSlider .item .bottom .right .links:not(:empty){margin-top:1em}
.teamSlider .item .bottom .right .links:not(:empty) a{display:inline-flex;position:relative}
.teamSlider .item .bottom .right .links:not(:empty) a:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleX(1);transform-origin:100% 50%;transition:transform 1s var(--ease-line),opacity 1s var(--ease-line) 0s;width:100%}
.teamSlider .item .bottom .right .links:not(:empty) a:hover:after{transform:scaleX(0);transform-origin:0 50%}
.teamSlider .item:last-child{margin-right:0}
.teamSlider .item:not(.isOpen) .bottom .right{pointer-events:none}
.teamSlider .item:not(.isOpen) .bottom .right .links a:after{opacity:0}
.teamSlider .item.isOpen{transition-delay:0s;width:calc(var(--column)*10 + var(--gap)*9)}
.teamSlider .item.isOpen .bottom .left .titleContainer svg path:last-child{transform:scaleY(.17)}
.teamSlider .item.isOpen .bottom .right .links a:after{transition:transform 1s var(--ease-line),opacity 1s var(--ease-line) 2s}
.teamSlider.show .item .left:not(.show) .line,.teamSlider.show .item:not(.isOpen) .right .line{transform:translateY(80%);transition-duration:.5s}
.teamSlider.show .item .left:not(.show) .line.has-brackets .text,.teamSlider.show .item:not(.isOpen) .right .line.has-brackets .text{transform:translateY(140%)}
.teamSlider.show .item .left:not(.show) .text,.teamSlider.show .item:not(.isOpen) .right .text{transform:translateY(120%);transition-duration:.5s}
.teamSlider.show .item .left:not(.show) svg{transform:scale(0)}
.teamSlider.show .item .left.show .description,.teamSlider.show .item.isOpen .right.show .description{--delay:1ms}
.teamSlider.show .item .left.show .line,.teamSlider.show .item .left.show .text,.teamSlider.show .item.isOpen .right.show .line,.teamSlider.show .item.isOpen .right.show .text{transform:translateY(0)}
.teamSlider .mask.someOpen .item:not(.isOpen){filter:blur(5rem)}
@media (max-width:890px){.teamSlider .content{padding:0 var(--margin)}.teamSlider .item{margin-right:10vw;width:66vw}.teamSlider .item .media{width:66vw}.teamSlider .item .bottom{flex-direction:column}.teamSlider .item .bottom .left{width:66vw}.teamSlider .item .bottom .right{box-sizing:border-box;height:0;left:0;overflow:visible;padding-top:0;position:static;transition:height 2s var(--ease-out),padding-top 2s var(--ease-out);width:calc(100vw - var(--margin)*2)}.teamSlider .item.isOpen{width:calc(100vw - var(--margin)*2)}.teamSlider .item.isOpen .bottom .right{height:var(--right-height);padding-top:50px}}
@media (max-width:580px){.teamSlider .item{margin-right:66px}.teamSlider .item .bottom{margin-top:16px}.teamSlider .item .bottom .left .titleContainer{margin-bottom:16px}.teamSlider .item .bottom .left .titleContainer .title{font-size:32px}.teamSlider .item .bottom .left .titleContainer svg{width:16px}.teamSlider .item .bottom .left .subtitle{font-size:12px}.teamSlider .item .bottom .right .description{max-width:320px}}

/* ---------- footer ---------- */
.footer{box-sizing:border-box;padding:380rem 0 60rem;position:relative;width:100%}
.footer .bottom,.footer .top{margin:0 calc(var(--column) + var(--gap) + var(--margin))}
.footer .top{display:flex;flex-direction:column}
.footer .top .title{font-family:var(--font-sans);margin-bottom:50rem;max-width:400rem}
.footer .top .links{display:flex;justify-content:space-between;margin-left:auto;margin-right:0;width:100%}
.footer .top .links a{display:flex;position:relative;white-space:nowrap}
.footer .top .links a:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleX(1);transform-origin:100% 50%;transition:transform 1s var(--ease-line),opacity 1s var(--ease-line) 2s;width:100%}
.footer .top .links a:hover:after{transform:scaleX(0);transform-origin:0 50%}
.footer .top .links a>:first-child{width:min-content}
.footer .top .links a:not(.show):after{opacity:0}
.footer .logo{display:flex;margin-bottom:70rem;margin-top:70rem;overflow:clip;width:100%}
.footer.isBare{padding-top:200rem}
.footer.isBare .logo{margin-top:0}
@media (max-width:740px){.footer.isBare{padding-top:140px}}
.footer .logo svg{height:auto;width:100%;fill:currentColor;transform:scale(1.01);display:block}
.footer .bottom{display:flex;justify-content:space-between}
.footer .bottom .right{display:flex;gap:var(--gap);justify-content:space-between;width:calc(var(--column)*3 + var(--gap)*2)}
.footer .bottom .right a{position:relative}
.footer .bottom .right a:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleX(1);transform-origin:100% 50%;transition:transform 1s var(--ease-line);width:100%}
.footer .bottom .right a:hover:after{transform:scaleX(0);transform-origin:0 50%}
@media (max-width:890px){.footer .bottom,.footer .top{margin:0 var(--margin)}.footer .top .links{gap:20px;width:auto;flex-wrap:wrap}.footer .bottom{position:relative}.footer .bottom .right{width:auto}.footer .bottom .copyright{left:50%;position:absolute;transform:translate(-50%)}}
@media (max-width:740px){.footer{padding:260px 0 30px}.footer .top .title{margin-bottom:90px;max-width:300px;width:100%}.footer .top .links{align-items:flex-end;flex-direction:column;gap:min(48px,5vh);justify-content:flex-start;width:100%}.footer .logo{margin-bottom:22px;margin-top:min(90px,9vh)}.footer .bottom{font-size:12px}}

/* ==========================================================================
   Inner pages (same system, new compositions)
   ========================================================================== */

/* page header */
.pageHeader{position:relative;width:100%;padding:250rem var(--margin) 140rem;box-sizing:border-box}
.pageHeader .eyebrow{display:flex;justify-content:space-between;margin-bottom:80rem;margin-left:calc(var(--column) + var(--gap))}
.pageHeader .titleContainer{position:relative;z-index:1;width:100%}
.pageHeader .titleContainer .title{left:-.06em;position:relative}
.pageHeader .titleContainer .title .line:first-child{padding-left:.5em}
.pageHeader .intro{display:flex;gap:var(--gap);justify-content:space-between;margin-top:120rem;align-items:flex-start}
.pageHeader .intro .description{width:calc(var(--column)*4 + var(--gap)*3);margin-left:calc(var(--column) + var(--gap))}
.pageHeader .intro .description .text{white-space:normal}
.pageHeader .intro .media{width:calc(var(--column)*5 + var(--gap)*4);margin-right:0}
.pageHeader.hasMedia .media.abs{position:absolute;right:0;top:120rem;width:calc(var(--column)*4 + var(--gap)*3);z-index:0}
@media (max-width:1024px){.pageHeader{padding-top:170px;padding-bottom:110px}.pageHeader .eyebrow{margin-left:0}.pageHeader .titleContainer{width:100%}.pageHeader .intro .description{margin-left:0}}
@media (max-width:740px){.pageHeader{padding-top:130px;padding-bottom:90px}.pageHeader .eyebrow{font-size:12px;margin-bottom:48px}.pageHeader .intro{flex-direction:column;margin-top:64px}.pageHeader .intro .description,.pageHeader .intro .media{width:100%}.pageHeader.hasMedia .media.abs{position:relative;width:100%;top:auto;margin-top:48px}}

/* at a glance */
.glance{box-sizing:border-box;padding:0 var(--margin);margin:0 0 200rem}
.glance .row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);border-top:1px solid var(--ink);padding-top:24rem;margin-left:calc(var(--column) + var(--gap));margin-right:calc(var(--column) + var(--gap))}
.glance .cell .label{font-size:14rem;margin-bottom:24rem;opacity:.7}
.glance .cell .value{font-family:var(--font-sans);font-size:32rem;letter-spacing:-.03em;line-height:1}
@media (max-width:1024px){.glance .row{margin-left:0;margin-right:0}.glance .cell .value{font-size:24px}}
@media (max-width:740px){.glance{margin-bottom:120px}.glance .row{grid-template-columns:repeat(2,1fr);row-gap:40px}.glance .cell .label{font-size:12px;margin-bottom:12px}.glance .cell .value{font-size:20px}}

/* two-column text blocks (about-style) */
.blocks{box-sizing:border-box;padding:0 var(--margin);width:100%}
.block{display:flex;gap:var(--gap);justify-content:space-between;align-items:flex-start;margin:0 auto 200rem;width:calc(var(--column)*10 + var(--gap)*9)}
.block .left{width:calc(var(--column)*4 + var(--gap)*3)}
.block .left .titleContainer{font-family:var(--font-sans);max-width:430rem}
.block .left .titleContainer .line:first-child{padding-left:.75em}
.block .right{width:calc(var(--column)*5 + var(--gap)*4)}
.block .right .description{max-width:430rem}
.block .right .description [data-block="1"] .text{margin-left:calc(var(--column)*.6)}
.block .right .description [data-block="2"] .text{margin-left:calc(var(--column)*.3)}
.block .right .list{margin-top:48rem}
.block .right .list li{display:block;position:relative}
.block .right .list li .text{white-space:normal}
.block .right .media{margin-top:60rem;width:100%}
.block.reverse{flex-direction:row-reverse}
@media (max-width:1024px){.block{width:100%}}
@media (max-width:890px){.block,.block.reverse{flex-direction:column;margin-bottom:120px}.block .left,.block .right{width:100%;max-width:450px}.block .left{margin-bottom:48px}}
@media (max-width:740px){.block .right .description [data-block="1"] .text,.block .right .description [data-block="2"] .text{margin-left:0}}

/* arrow list — the arrow lives in the text so it scrambles with it */
.arrowList li{display:block}
.arrowList li + li{margin-top:.35em}

/* price table */
.priceSection{box-sizing:border-box;padding:0 var(--margin);margin-bottom:200rem}
.priceSection .top{display:flex;align-items:flex-start;justify-content:space-between;margin-left:calc(var(--column) + var(--gap));margin-right:calc(var(--column) + var(--gap));margin-bottom:80rem}
.priceSection .top .title{font-family:var(--font-sans);max-width:430rem}
.priceSection .top .note{width:calc(var(--column)*4 + var(--gap)*3);font-size:16rem}
.priceTable{margin-left:calc(var(--column) + var(--gap));margin-right:calc(var(--column) + var(--gap))}
.priceTable .group{margin-bottom:100rem}
.priceTable .group:last-child{margin-bottom:0}
.priceTable .groupTitle{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:16rem;margin-bottom:8rem;border-bottom:1px solid var(--ink)}
.priceTable .groupTitle .h2{font-family:var(--font-sans);font-size:32rem}
.priceTable .row{display:grid;grid-template-columns:1fr auto;gap:var(--gap);padding:18rem 0;border-bottom:1px solid var(--ink-33);align-items:baseline;position:relative}
.priceTable .row .item{display:block}
.priceTable .row .item .sub{display:block;font-size:14rem;opacity:.7;margin-top:6rem;text-transform:none}
.priceTable .row .price{white-space:nowrap;text-align:right}
.priceTable .row .lineFill{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease-line)}
html[data-touch=false] .priceTable .row:hover .lineFill{transform:scaleX(1);transform-origin:100% 50%}
@media (max-width:1024px){.priceSection .top,.priceTable{margin-left:0;margin-right:0}.priceSection .top{flex-direction:column;gap:24px}.priceSection .top .note{width:100%;max-width:450px}}
@media (max-width:740px){.priceSection{margin-bottom:120px}.priceTable .group{margin-bottom:64px}.priceTable .groupTitle .h2{font-size:22px}.priceTable .row{padding:14px 0}.priceTable .row .item .sub{font-size:12px}}

/* faq accordion */
.faqSection{box-sizing:border-box;padding:0 var(--margin);margin-bottom:200rem}
.faqSection .top{margin-left:calc(var(--column) + var(--gap));margin-bottom:80rem}
.faqSection .top .title{font-family:var(--font-sans);max-width:430rem}
.faq{margin-left:calc(var(--column) + var(--gap));margin-right:calc(var(--column) + var(--gap));border-top:1px solid var(--ink)}
.faq .q{border-bottom:1px solid var(--ink);cursor:pointer}
.faq .q .head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--gap);padding:24rem 0}
.faq .q .head .question{max-width:calc(var(--column)*6 + var(--gap)*5);font-family:var(--font-sans);font-size:24rem;letter-spacing:-.03em;line-height:1.1}
.faq .q .head .question .text{white-space:normal}
.faq .q .head svg{width:18rem;fill:currentColor;transition:transform 1s var(--ease-out);flex-shrink:0;margin-top:.15em;overflow:visible}
.faq .q .head svg path{transform-box:fill-box;transform-origin:center}
.faq .q .head svg path:last-child{transition:transform 1s var(--ease-out)}
.faq .q .head:hover svg{transform:rotate(180deg)}
.faq .q.isOpen .head svg path:last-child{transform:scaleY(.17)}
.faq .q .body{height:0;overflow:hidden;transition:height 1.2s var(--ease-out)}
.faq .q .body .inner{padding:0 0 32rem;max-width:calc(var(--column)*6 + var(--gap)*5);margin-left:calc(var(--column)*1 + var(--gap))}
.faq .q .body .inner .line{transform:translateY(80%);transition:transform 1s var(--ease-text)}
.faq .q .body .inner .text{transform:translateY(120%);transition:transform 1s var(--ease-text)}
.faq .q.isOpen .body .inner .line,.faq .q.isOpen .body .inner .text{transform:translateY(0)}
@media (max-width:1024px){.faqSection .top,.faq{margin-left:0;margin-right:0}.faq .q .body .inner{margin-left:0;max-width:100%}.faq .q .head .question{max-width:80%}}
@media (max-width:740px){.faqSection{margin-bottom:120px}.faq .q .head{padding:18px 0}.faq .q .head .question{font-size:18px}.faq .q .head svg{width:14px}}

/* cta strip */
.ctaSection{box-sizing:border-box;padding:0 var(--margin);margin-bottom:100rem}
.ctaSection .inner{margin-left:calc(var(--column) + var(--gap));display:flex;justify-content:space-between;align-items:flex-end;gap:var(--gap);flex-wrap:wrap}
.ctaSection .title{font-family:var(--font-sans);max-width:430rem}
.ctaSection .links{display:flex;gap:40rem;flex-wrap:wrap}
.ctaSection .links a{position:relative;white-space:nowrap}
.ctaSection .links a:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleX(1);transform-origin:100% 50%;transition:transform 1s var(--ease-line);width:100%}
.ctaSection .links a:hover:after{transform:scaleX(0);transform-origin:0 50%}
@media (max-width:1024px){.ctaSection .inner{margin-left:0}}
@media (max-width:740px){.ctaSection .inner{flex-direction:column;align-items:flex-start;gap:40px}}

/* treatments overview list */
.menuSection{box-sizing:border-box;padding:0 var(--margin);margin-bottom:200rem}
.menuSection .group{display:flex;gap:var(--gap);margin-bottom:120rem;align-items:flex-start}
.menuSection .group .left{width:calc(var(--column)*4 + var(--gap)*3);margin-left:calc(var(--column) + var(--gap))}
.menuSection .group .left .num{display:block;margin-bottom:24rem}
.menuSection .group .left .title{max-width:430rem}
.menuSection .group .right{width:calc(var(--column)*5 + var(--gap)*4)}
.menuSection .group .right .description{max-width:355rem;margin-bottom:48rem}
.menuSection .group .right .rows{border-top:1px solid var(--ink)}
.menuSection .group .right .row{display:grid;grid-template-columns:1fr auto;gap:var(--gap);padding:18rem 0;border-bottom:1px solid var(--ink-33);position:relative;align-items:baseline}
.menuSection .group .right .row .lineFill{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease-line)}
html[data-touch=false] .menuSection .group .right .row:hover .lineFill{transform:scaleX(1);transform-origin:100% 50%}
.menuSection .group .right .row .price{white-space:nowrap}
@media (max-width:1024px){.menuSection .group .left{margin-left:0}}
@media (max-width:890px){.menuSection .group{flex-direction:column;margin-bottom:80px}.menuSection .group .left,.menuSection .group .right{width:100%}.menuSection .group .right .description{max-width:450px}}
@media (max-width:740px){.menuSection{margin-bottom:120px}.menuSection .group .left .num{margin-bottom:12px}}

/* contact page */
.contactSection{box-sizing:border-box;padding:0 var(--margin);margin-bottom:200rem}
.contactSection .grid{display:flex;gap:var(--gap);justify-content:space-between;align-items:flex-start;margin-left:calc(var(--column) + var(--gap));margin-right:calc(var(--column) + var(--gap))}
.contactSection .details{width:calc(var(--column)*4 + var(--gap)*3)}
.contactSection .details .item{margin-bottom:48rem}
.contactSection .details .item .label{font-size:14rem;opacity:.7;margin-bottom:12rem}
.contactSection .details .item a{position:relative}
.contactSection .details .item a:after{background:currentColor;bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleX(1);transform-origin:100% 50%;transition:transform 1s var(--ease-line);width:100%}
.contactSection .details .item a:hover:after{transform:scaleX(0);transform-origin:0 50%}
.contactSection .details .hours{display:grid;grid-template-columns:auto 1fr;column-gap:32rem;row-gap:6rem}
.contactSection .form{width:calc(var(--column)*5 + var(--gap)*4)}
.form .field{display:block;border-bottom:1px solid var(--ink);padding:18rem 0;position:relative}
.form .field label{display:block;font-size:14rem;opacity:.7;margin-bottom:8rem}
.form .field input,.form .field select,.form .field textarea{width:100%;background:transparent;border:0;color:var(--ink);font-family:var(--font-mono);font-size:20rem;letter-spacing:-.03em;text-transform:uppercase;outline:none;padding:0;box-sizing:border-box;border-radius:0;-webkit-appearance:none;appearance:none}
.form .field textarea{resize:vertical;min-height:120rem}
.form .field select option{color:#000}
.form .field input::placeholder,.form .field textarea::placeholder{color:var(--ink);opacity:.35}
.form .field .lineFill{position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:0 50%;transition:transform 1s var(--ease-line)}
.form .field:focus-within .lineFill{transform:scaleX(1);transform-origin:100% 50%}
.form .submit{margin-top:48rem;display:inline-flex;align-items:center;gap:12rem;position:relative;font-size:24rem;line-height:1;cursor:pointer;text-transform:uppercase;letter-spacing:-.03em}
.form .submit:after{background:currentColor;bottom:-4rem;content:"";height:1px;left:0;position:absolute;transform:scaleX(1);transform-origin:100% 50%;transition:transform 1s var(--ease-line);width:100%}
.form .submit:hover:after{transform:scaleX(0);transform-origin:0 50%}
.form .hint{font-size:14rem;opacity:.7;margin-top:24rem;max-width:355rem}
@media (max-width:1024px){.contactSection .grid{margin-left:0;margin-right:0}}
@media (max-width:890px){.contactSection .grid{flex-direction:column}.contactSection .details,.contactSection .form{width:100%;max-width:520px}.contactSection{margin-bottom:120px}}
@media (max-width:740px){.form .field input,.form .field select,.form .field textarea{font-size:16px}.form .submit{font-size:20px}}

/* simple text page (privacy) */
.textSection{box-sizing:border-box;padding:0 var(--margin);margin-bottom:200rem}
.textSection .inner{margin-left:calc(var(--column)*3 + var(--gap)*3);max-width:calc(var(--column)*6 + var(--gap)*5)}
.textSection h2{font-family:var(--font-sans);font-size:32rem;margin:80rem 0 24rem;letter-spacing:-.03em}
.textSection p{margin-bottom:1em;text-transform:none;font-size:18rem}
@media (max-width:1024px){.textSection .inner{margin-left:0;max-width:640px}}
@media (max-width:740px){.textSection{margin-bottom:120px}.textSection h2{font-size:22px;margin-top:48px}.textSection p{font-size:16px}}

/* gallery strip (about page) */
.galleryStrip{box-sizing:border-box;padding:0 var(--margin);display:flex;gap:var(--gap);align-items:flex-start;margin-bottom:200rem}
.galleryStrip .item{flex-shrink:0}
.galleryStrip .item:nth-child(1){width:calc(var(--column)*4 + var(--gap)*3);margin-left:calc(var(--column) + var(--gap));margin-top:120rem}
.galleryStrip .item:nth-child(2){width:calc(var(--column)*3 + var(--gap)*2);margin-left:auto}
.galleryStrip .item:nth-child(3){width:calc(var(--column)*2 + var(--gap)*1);margin-top:260rem;margin-right:calc(var(--column))}
@media (max-width:890px){.galleryStrip{flex-wrap:wrap;margin-bottom:120px}.galleryStrip .item:nth-child(1){width:66vw;margin-left:0;margin-top:0}.galleryStrip .item:nth-child(2){width:48%;margin-left:auto;margin-top:40px}.galleryStrip .item:nth-child(3){width:40%;margin-top:40px;margin-right:0}}

/* generic media block full width */
.mediaBand{box-sizing:border-box;padding:0 var(--margin);margin-bottom:200rem;display:flex}
.mediaBand .media{width:calc(var(--column)*7 + var(--gap)*6);margin-left:auto}
@media (max-width:890px){.mediaBand{margin-bottom:120px}.mediaBand .media{width:100%}}

/* skip link */
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:var(--margin);top:var(--margin);z-index:999999;background:var(--ink);color:var(--bg);padding:8px 12px}

@media (prefers-reduced-motion:reduce){
  .smartText[data-scroll-item]:not(.show) .line,.smartText[data-scroll-item]:not(.show) .text{transform:none}
}


/* ---------- slider chrome (shared) ---------- */
.sliderBottom{align-items:center;display:flex;justify-content:flex-end;margin-top:80rem;padding:0 var(--margin)}
.sliderNav{align-items:center;display:flex;gap:14rem}
.sliderNav .next,.sliderNav .prev{cursor:pointer;height:auto;transition:opacity 1s var(--ease-out);width:26rem}
.sliderNav .next svg,.sliderNav .prev svg{height:auto;width:100%;fill:currentColor;transition:transform 1s var(--ease-out);display:block}
html[data-touch=false] .sliderNav .next:hover svg{transform:scale(.8);transform-origin:right center}
html[data-touch=false] .sliderNav .prev:hover svg{transform:scale(.8);transform-origin:left center}
[data-can-next=false] .sliderNav .next,[data-can-prev=false] .sliderNav .prev{opacity:.3;pointer-events:none}
@media (max-width:580px){.sliderBottom{justify-content:flex-end;margin-top:56px}.sliderNav .next,.sliderNav .prev{width:30px}}

/* ---------- view all treatments card ---------- */
.projectCard.viewAll .cardInner{position:relative}
.projectCard.viewAll .image{margin-bottom:0}
.projectCard.viewAll .viewAllLabel{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8%;box-sizing:border-box;color:var(--bg);font-family:var(--font-sans);font-size:clamp(18px,2.1vw,30rem);font-weight:500;letter-spacing:-.03em;line-height:1;mix-blend-mode:difference;pointer-events:none}
.projectCard.viewAll .viewAllLabel .smartText{max-width:100%;width:100%}
.projectCard.viewAll:after{content:"";position:absolute;left:0;top:0;width:100%;height:100%;border:1px solid var(--ink);opacity:0;transition:opacity 1s var(--ease-out);pointer-events:none}
html[data-touch=false] .projectCard.viewAll:hover:after{opacity:1}

/* ---------- contact form status ---------- */
.form .formStatus{margin-top:24rem;max-width:355rem;min-height:1.2em}
.form .formStatus.isError{opacity:1}

/* ---------- team slider arrows ---------- */
.teamSection .sliderBottom{margin-top:48rem;padding-right:var(--margin)}


/* ---------- treatments menu: category heading must fit its column ---------- */
.menuSection .group .left .title{font-size:72rem}
@media (max-width:1024px){.menuSection .group .left .title{font-size:52px}}
@media (max-width:580px){.menuSection .group .left .title{font-size:40px}}

/* ---------- team intro: keep the three big lines on screen ---------- */
.teamIntro .bottom .titleContainer{box-sizing:border-box;padding:0 var(--margin)}
.teamIntro .bottom .titleContainer .title{left:0!important;right:0!important;max-width:100%!important}
.teamIntro .bottom .titleContainer:first-child{justify-content:flex-end;margin-top:0}
/* the three lines stack as tightly as every other heading */
.teamIntro .bottom .titleContainer:nth-child(3){justify-content:center;margin-top:0}
.teamIntro .bottom .titleContainer:nth-child(4){justify-content:flex-start;margin-top:0}
/* the em has to come off the heading, not the container, which is still at body size */
.teamIntro .bottom .titleContainer:nth-child(3) .title,.teamIntro .bottom .titleContainer:nth-child(4) .title{margin-top:-.44em}


/* ---------- process headings ---------- */
.servicesSection .step .title{font-size:44rem}
@media (max-width:1024px){.servicesSection .step .title{font-size:32px}}
@media (max-width:580px){.servicesSection .step .title{font-size:28px}}
