:root{--pink:#ff3691;--ink:#151518;--paper:#f3f1ed;--muted:#6d6c73;--line:rgba(21,21,24,.2);--font:'Manrope',sans-serif;--display:'Oswald',Impact,sans-serif}
*{box-sizing:border-box}html{scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--pink);outline-offset:6px}::selection{background:var(--pink);color:var(--ink)}img{display:block;width:100%;height:100%;object-fit:cover}button{border:0}p,h1,h2,h3,figure{margin:0}.skip-link{position:fixed;top:-60px;left:16px;z-index:1000;background:var(--paper);color:var(--ink);padding:14px}.skip-link:focus{top:10px}.header{height:102px;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:0 3.5vw;background:var(--paper);position:relative;z-index:20;border-bottom:1px solid var(--line)}.brand{font-family:var(--display);font-size:31px;font-weight:700;line-height:1;letter-spacing:-1.2px;display:flex;flex-direction:column;gap:9px}.brand span{font-family:var(--font);font-size:10px;font-weight:700;letter-spacing:1.7px}.desktop-nav{display:flex;gap:32px;font-size:14px;font-weight:600}.desktop-nav a{position:relative}.desktop-nav a:after{content:'';position:absolute;left:0;bottom:-5px;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}.desktop-nav a:hover:after{transform:scaleX(1)}.header-book{font-size:14px;display:flex;align-items:center;gap:25px;border-bottom:1px solid var(--ink);padding:10px 0}.small-star{font-size:30px;line-height:1;display:inline-block}.menu-toggle{display:none}.hero{background:var(--ink);color:var(--paper);padding:25px 3.5vw 30px;overflow:hidden;min-height:calc(100svh - 102px);position:relative}.hero-topline{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1.5px;position:relative;z-index:4}.hero-composition{position:relative;height:min(51vw,735px);min-height:470px;margin-top:16px}.hero h1{font-family:var(--display);font-weight:600;line-height:.86;letter-spacing:-.052em}.hero-na{position:absolute;left:-.5vw;top:0;font-size:16vw;z-index:1}.hero-word{position:absolute;left:-1vw;bottom:0;font-size:22.5vw;color:var(--pink);z-index:3;white-space:nowrap;letter-spacing:-.045em;line-height:1.04}.hero-media{position:absolute;top:2%;left:27%;width:50%;height:82%;overflow:hidden}.hero-caption{font-size:12px;line-height:1.6;letter-spacing:.7px;position:absolute;right:0;top:30px}.round-cta{position:absolute;right:1%;top:41%;width:146px;height:146px;border-radius:50%;background:var(--pink);color:var(--ink);z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:800;line-height:1.25;text-align:center;transform:rotate(9deg);transition:background .3s,transform .3s}.round-cta:hover{background:var(--paper);transform:rotate(-8deg)}.round-cta .small-star{font-size:38px}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:16px;font-size:14px;position:relative;z-index:6}.hero-bottom p{line-height:1.45}.scroll-cue{font-size:11px;letter-spacing:1px;display:flex;gap:20px;align-items:center}.scroll-cue span{font-size:28px}.hero-loc{text-align:right;font-size:11px;letter-spacing:1px}.menu-toggle span{height:1px;width:25px;background:var(--ink);display:block}
@media(min-width:1600px){.hero-composition{height:43vw;max-height:850px}.hero-na{font-size:15vw}.hero-word{font-size:22vw}}
@media(max-width:800px){.header{height:80px;padding:0 22px}.brand{font-size:26px}.brand span{font-size:9px;letter-spacing:1px}.desktop-nav{display:none}.header-book{font-size:12px;gap:12px}.header-book .small-star{font-size:25px}.hero{padding:22px 22px 26px;min-height:calc(92svh - 80px)}.hero-topline{font-size:9px;letter-spacing:1px}.hero-topline>span:last-child{display:none}.hero-composition{min-height:430px;height:63svh;max-height:680px;margin-top:26px}.hero-na{font-size:28vw;top:0}.hero-word{font-size:22.5vw;bottom:1%;left:-.5vw}.hero-media{left:16%;width:76%;height:78%;top:11%}.hero-caption{top:4px;font-size:9px}.round-cta{width:106px;height:106px;top:57%;right:-7px;font-size:10px}.round-cta .small-star{font-size:25px}.hero-bottom{font-size:12px;gap:20px;margin-top:10px}.hero-loc{font-size:9px}.scroll-cue{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Editorial rhythm */
.section-pad{padding:85px 5vw}.section-index{display:flex;justify-content:space-between;gap:30px;font-size:12px;letter-spacing:1.3px;font-weight:600;margin-bottom:65px}.display{font-family:var(--display);font-size:clamp(64px,8.7vw,140px);letter-spacing:-.045em;line-height:1.04;font-weight:500}.display em,.statement em{font-style:normal;color:var(--ink)}.ticker{background:var(--pink);color:var(--ink);overflow:hidden;padding:16px 0}.ticker-track{display:flex;align-items:center;gap:45px;white-space:nowrap;width:max-content;font-family:var(--display);font-size:32px;font-weight:500;letter-spacing:-.5px}.ticker b{font-size:44px;font-weight:400;line-height:1}.manifesto{padding-top:95px;padding-bottom:65px}.manifesto-grid{display:grid;grid-template-columns:27% 1fr}.statement{font-family:var(--display);font-size:clamp(50px,7.5vw,120px);line-height:1.12;font-weight:500;letter-spacing:-.04em}.statement-star{color:var(--ink);font-size:clamp(100px,17vw,270px);line-height:1.1;align-self:center;justify-self:start}.manifesto-copy{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:45px;max-width:850px}.manifesto-copy p{font-size:16px;line-height:1.7}.approach-tags{margin-top:80px;padding-top:23px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:14px}.works{padding-top:75px;background:#e8e6e1}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:45px}.section-heading p{font-size:16px;line-height:1.7;max-width:390px;padding-bottom:8px}.work-filters{display:flex;gap:12px;margin:40px 0 30px;flex-wrap:wrap}.work-filters button{border:1px solid #a7a6a3;border-radius:30px;padding:12px 21px;background:transparent;color:var(--ink);font-size:14px;transition:background .2s,color .2s}.work-filters button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.work-filters button span{font-size:12px;margin-left:12px}.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:start;min-height:450px}.work-card{background:none;text-align:left;padding:0;color:inherit;width:100%;min-width:0}.work-card:nth-child(even){margin-top:70px}.work-card[hidden]{display:none}.work-image{position:relative;overflow:hidden;aspect-ratio:3/4;background:#d2d0cb}.work-image img{transition:transform .75s cubic-bezier(.2,.6,.3,1);object-position:center}.work-card:hover img{transform:scale(1.055)}.image-open{position:absolute;bottom:15px;right:15px;width:42px;height:42px;border-radius:50%;background:var(--paper);display:grid;place-content:center;font-size:25px;line-height:1;transition:background .2s}.work-card:hover .image-open{background:var(--pink)}.work-caption{display:flex;flex-direction:column;gap:8px;margin-top:17px;font-size:12px;font-weight:700;letter-spacing:.5px}.work-caption span:last-child{font-weight:500;color:#666;font-size:12px}.works-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);margin-top:60px;padding-top:25px}.works-bottom p{font-size:14px}.text-link{font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:24px;padding:8px 0;border-bottom:1px solid currentColor}.text-link span{font-size:25px;line-height:1;transition:transform .4s}.text-link:hover span{transform:rotate(90deg)}.services{background:var(--ink);color:var(--paper);padding-top:85px;padding-bottom:55px}.services-layout{display:grid;grid-template-columns:43% 1fr;gap:5%}.services .display{font-size:clamp(65px,7.4vw,118px)}.services .display em{color:var(--pink)}.services-intro>p{margin:35px 0;font-size:16px;line-height:1.7}.pill-link{display:inline-flex;align-items:center;gap:22px;border:1px solid rgba(255,255,255,.5);border-radius:40px;padding:15px 22px;font-size:14px;transition:background .25s,color .25s}.pill-link:hover{background:var(--paper);color:var(--ink)}.pill-link span{font-size:26px;line-height:1}.service-list details{border-top:1px solid #ffffff60}.service-list details:last-child{border-bottom:1px solid #ffffff60}.service-list summary{display:flex;align-items:center;gap:20px;padding:27px 0;cursor:pointer;list-style:none}.service-list summary::-webkit-details-marker{display:none}.service-num{font-size:12px;align-self:center;opacity:.7}.service-list h3{font-size:clamp(21px,2.15vw,34px);font-weight:500;letter-spacing:-1px}.plus{height:20px;width:20px;position:relative;margin-left:auto;flex-shrink:0}.plus:before,.plus:after{content:'';height:1px;width:100%;position:absolute;top:50%;left:0;background:var(--paper)}.plus:after{transform:rotate(90deg);transition:transform .3s}details[open] .plus:after{transform:rotate(0)}.service-content{padding:0 30px 30px 36px;font-size:16px;line-height:1.7;max-width:570px}.service-types{opacity:.7;font-size:14px;margin-top:18px}.service-content a{font-size:14px;display:inline-block;margin-top:24px;border-bottom:1px solid #ffffff80;padding-bottom:4px}.price-note{font-size:13px;line-height:1.7;opacity:.75;border-top:1px solid #ffffff40;margin-top:65px;padding-top:25px;max-width:750px}.studio{padding-top:90px;padding-bottom:110px}.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.team-photo{position:relative;transform:rotate(-3deg)}.team-photo img{height:auto;aspect-ratio:3/4;object-fit:cover}.team-photo figcaption{font-size:12px;font-weight:700;letter-spacing:1px;margin-top:15px}.studio-copy .display{font-size:clamp(60px,7.4vw,118px)}.studio-lead{font-size:30px!important;line-height:1.25!important;letter-spacing:-1px;margin-top:35px!important}.studio-copy>p{font-size:16px;line-height:1.7;max-width:450px;margin-top:22px}.studio-copy .text-link{margin-top:25px}.studio-stamp{font-family:var(--display);font-size:27px;line-height:1.1;border:2px solid var(--ink);color:var(--ink);display:table;padding:15px 20px;transform:rotate(6deg);margin-top:40px;margin-left:auto}.studio-stamp span{font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:1px}.consult{background:var(--pink);padding-top:45px;padding-bottom:50px;overflow:hidden}.consult-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;letter-spacing:1px}.consult-top>span:last-child{font-size:80px;line-height:1}.consult h2{font-family:var(--display);font-size:clamp(66px,13.3vw,210px);font-weight:500;letter-spacing:-.055em;line-height:1.05;margin:30px 0 40px}.consult em{font-style:normal;color:var(--ink)}.consult-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px}.consult-bottom p{font-size:16px;line-height:1.7}.dark-pill{display:inline-flex;align-items:center;justify-content:center;gap:35px;padding:20px 28px;background:var(--ink);color:var(--paper);border-radius:50px;font-size:14px;white-space:nowrap;transition:background .25s}.dark-pill:hover{background:var(--ink)}.dark-pill span{font-size:30px;line-height:1}.contacts{padding-top:85px;padding-bottom:50px}.contacts-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:start}.contacts .display{font-size:clamp(55px,6.9vw,110px)}.contact-details{display:grid;gap:35px}.eyebrow{display:block;font-size:12px;letter-spacing:1px;font-weight:700;margin-bottom:12px}.contact-details p{font-size:20px;line-height:1.6;letter-spacing:-.4px}.muted{color:var(--muted);font-size:16px}.contact-details .text-link{margin-top:14px}.contact-socials{border-top:1px solid var(--line);display:flex;gap:50px;margin-top:65px;padding-top:25px;font-size:14px}.contact-socials a:hover{color:var(--ink)}footer{padding:25px 3.5vw;background:var(--ink);color:var(--paper);overflow:hidden}.footer-word{display:flex;justify-content:space-between;align-items:center;font-family:var(--display);font-weight:600;line-height:1.3;font-size:15.5vw;letter-spacing:-.055em;white-space:nowrap}.footer-word span{font-family:var(--font);font-size:12vw;color:var(--pink)}.footer-bottom{border-top:1px solid #ffffff35;padding-top:25px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px}.mobile-menu{display:none}.lightbox{background:#151518f5;border:0;max-width:100vw;width:100vw;max-height:100svh;height:100svh;padding:30px;color:var(--paper);margin:0}.lightbox::backdrop{background:#151518}.lightbox[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}.lightbox img{max-height:83svh;width:auto;max-width:90vw;object-fit:contain}.lightbox p{font-size:14px;text-align:center}.lightbox-close{position:absolute;top:16px;right:22px;font-size:38px;color:white;background:transparent;width:48px;height:48px;z-index:1}.brand span{font-size:11px}.hero-loc,.scroll-cue{font-size:12px}.hero-media img{object-position:46% 40%;transform:scale(1.035)}
@media(min-width:1700px){.section-pad{padding-left:8vw;padding-right:8vw}.work-grid{gap:30px}}
@media(max-width:1050px){.desktop-nav{gap:20px}.section-pad{padding:65px 4vw}.section-index{margin-bottom:45px}.work-grid{grid-template-columns:repeat(2,1fr);gap:28px}.work-card:nth-child(even){margin-top:60px}.work-card:nth-child(3){margin-top:-15px}.work-grid{min-height:0}.services-layout{grid-template-columns:1fr;gap:45px}.services-intro{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;align-items:center}.services-intro h2{grid-row:span 2}.services-intro>p{margin:0}.services-intro .pill-link{justify-self:start}.studio-grid{gap:6%}.studio-stamp{margin-top:28px}.contacts-grid{gap:6%}.consult-bottom{align-items:flex-start}.dark-pill{gap:20px}}
@media(max-width:800px){.header-book{margin-left:auto}.menu-toggle{display:flex;flex-direction:column;gap:6px;justify-content:center;background:none;width:28px;height:44px;padding:0}.mobile-menu{display:flex;position:fixed;inset:80px 0 0;background:var(--paper);z-index:19;flex-direction:column;padding:40px 24px;gap:12px;visibility:hidden;opacity:0;transform:translateY(-12px);transition:opacity .3s,transform .3s,visibility .3s}.mobile-menu.open{visibility:visible;opacity:1;transform:none}.mobile-menu>a{font-family:var(--display);font-size:55px;line-height:1.4;color:var(--ink)}.mobile-menu>span{font-size:12px;margin-top:auto;letter-spacing:1px}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.menu-toggle span{transition:transform .2s}.header:has(.menu-toggle[aria-expanded=true]){position:fixed;top:0;width:100%}.hero-caption{font-size:11px}.hero-topline{font-size:11px}.hero-bottom p{font-size:14px}.hero-loc{font-size:11px}.round-cta{font-size:12px}.brand span{font-size:10px}.header{gap:18px}.manifesto-grid{grid-template-columns:18% 1fr}.statement-star{font-size:70px;align-self:start;margin-top:15px}.manifesto-copy{gap:25px}.statement{font-size:8.7vw}.section-heading .display{font-size:90px}.section-heading p{max-width:240px}.studio-grid{align-items:start}.studio-copy .display{font-size:64px}.studio-copy>p{font-size:15px}.studio-lead{font-size:25px!important}.studio-stamp{display:none}.consult-top>span:last-child{font-size:55px}.consult-bottom{flex-direction:column;gap:25px}.contacts-grid{grid-template-columns:1fr;gap:45px}.contacts .display{font-size:11vw}.contact-details{grid-template-columns:1fr 1fr;gap:30px}.contact-details p{font-size:17px}}
@media(max-width:560px){.header{padding:0 20px;height:80px;gap:15px}.brand{font-size:24px}.header-book{font-size:12px;gap:0}.header-book .small-star{display:none}.hero{padding-left:20px;padding-right:20px}.hero-composition{height:58svh;min-height:385px;max-height:570px}.hero-media{top:14%;left:9%;width:83%;height:72%}.hero-media img{object-position:41% center}.hero-na{font-size:32vw;top:0;z-index:2}.hero-word{font-size:22.6vw;bottom:0;left:-1.2vw}.hero-caption{font-size:10px;top:10px}.round-cta{width:95px;height:95px;top:58%;right:-6px;font-size:11px}.hero-loc{display:none}.hero-bottom p{font-size:14px}.hero-bottom{margin-top:18px;margin-bottom:3px}.hero{min-height:0}.ticker{padding:12px 0}.ticker-track{font-size:25px;gap:28px}.ticker b{font-size:32px}.section-pad{padding:55px 22px}.section-index{font-size:11px;letter-spacing:1px;margin-bottom:40px}.section-index>span:last-child{display:none}.manifesto-grid{display:block}.statement-star{font-size:65px;display:block;margin:0 0 22px;line-height:1}.statement{font-size:12.5vw;line-height:1.13}.manifesto-copy{grid-template-columns:1fr;gap:18px;margin-top:28px}.manifesto-copy p{font-size:16px}.approach-tags{margin-top:35px;font-size:12px;gap:15px;flex-wrap:wrap}.approach-tags>span:last-child{display:none}.section-heading{display:block;margin-bottom:25px}.section-heading .display{font-size:23vw}.section-heading p{max-width:none;margin-top:25px;font-size:15px}.work-filters{gap:7px;margin:27px 0 23px}.work-filters button{padding:9px 12px;font-size:12px}.work-filters button span{margin-left:5px}.work-grid{gap:24px 13px}.work-card:nth-child(even){margin-top:38px}.work-card:nth-child(3){margin-top:-8px}.work-caption{font-size:10px;letter-spacing:0;gap:4px;margin-top:10px}.work-caption span:last-child{font-size:10px}.image-open{width:30px;height:30px;font-size:20px;bottom:9px;right:9px}.works-bottom{margin-top:35px;align-items:flex-start;flex-direction:column;gap:12px}.works-bottom p{font-size:13px}.services-intro{display:block}.services .display{font-size:21vw}.services-intro>p{margin:26px 0}.pill-link{font-size:13px;padding:14px 19px}.service-list summary{padding:24px 0;gap:15px}.service-list h3{font-size:23px}.service-content{padding-left:28px;padding-right:0;font-size:15px}.price-note{margin-top:35px;font-size:12px}.studio-grid{display:flex;flex-direction:column;gap:45px}.team-photo{width:85%;align-self:center}.studio-copy .display{font-size:21vw}.studio-copy>p{font-size:16px;max-width:100%}.studio-copy .text-link{font-size:13px}.consult-top{font-size:10px;gap:15px}.consult-top>span:last-child{font-size:44px}.consult h2{font-size:15.5vw;margin:28px 0}.consult-bottom p{font-size:15px}.consult-bottom p br{display:none}.dark-pill{font-size:13px;padding:17px 22px;width:100%;gap:20px}.contacts .display{font-size:14.5vw}.contact-details{grid-template-columns:1fr;gap:30px}.contact-details p{font-size:18px}.contact-socials{margin-top:35px;gap:22px;flex-wrap:wrap;font-size:13px}.footer-bottom{font-size:10px;letter-spacing:.4px;gap:20px;padding-top:20px}.footer-bottom>span:nth-child(2){display:none}footer{padding:20px}.footer-word{font-size:15vw;padding:15px 0 25px}.lightbox{padding:50px 15px 25px}.lightbox p{font-size:12px}}
/* Pink-led opening: cobalt lives inside the editorial photograph. */
.hero{background:var(--pink);color:var(--ink)}.hero-na{color:var(--paper)}.hero-word{color:var(--ink)}.round-cta{background:var(--ink);color:var(--paper)}.round-cta:hover{background:var(--paper);color:var(--ink)}.ticker{background:var(--ink);color:var(--paper)}
.hero-word{color:var(--paper)}
@media(max-width:560px){.work-caption,.work-caption span:last-child{font-size:12px}.footer-bottom{font-size:12px}.hero-caption{font-size:11px}.consult-top{font-size:12px}}
@media(max-width:360px){.header{gap:12px;padding:0 15px}.brand{font-size:21px}.brand span{font-size:9px}.header-book{font-size:11px}.hero-caption{font-size:10px}.hero-composition{min-height:355px}.hero-topline{font-size:10px}}
/* A bespoke hair-strand motif, used sparingly; text actions remain unadorned. */
.strand-mark{display:block;flex-shrink:0;width:60px;height:72px}.strand-art{display:block;color:var(--ink);align-self:center;justify-self:start;width:65%}.strand-art .strand-mark{width:100%;height:auto}.round-cta{gap:5px}.round-cta .strand-mark{width:34px;height:40px}.consult-top>.strand-mark{width:65px;height:78px}.footer-word>.strand-mark{width:9vw;height:12vw;color:var(--pink);margin-right:1vw}.scroll-line{width:1px;height:30px;background:currentColor;display:block}.ticker-divider{opacity:.6}.consult-top>span:first-child{font-size:12px;line-height:1.5}.header-book{min-height:42px}.dark-pill{padding:22px 32px}.round-cta:hover .strand-mark{transform:rotate(-8deg)}
@media(max-width:800px){.strand-art{width:75%;align-self:start;margin-top:10px}}
@media(max-width:560px){.strand-art{width:60px;margin:0 0 25px}.round-cta .strand-mark{width:23px;height:28px}.consult-top>.strand-mark{width:45px;height:54px}.dark-pill{padding:19px 24px}}

/* Salon-owned imagery and pink / ink / ivory identity. */
.hero-media{left:31%;width:43%;height:82%;top:2%;}
.hero-media img{object-position:center 52%;transform:scale(1.035)}
.manifesto-grid{display:block}.manifesto-grid>div{max-width:960px;margin-left:auto}
.round-cta{font-size:16px;line-height:1.25;transform:rotate(0)}.round-cta:hover{transform:scale(1.04)}
.consult-top{min-height:50px}.consult em{color:var(--ink)}
.services .display em{color:var(--pink)}.display em,.statement em{color:#b51259}
.studio-stamp{border-color:var(--ink);color:var(--ink)}
.hero-word{font-size:23.4vw;letter-spacing:-.05em}.hero-na{font-size:16vw}
@media(max-width:800px){.hero-media{left:17%;width:73%;height:77%;top:11%}.hero-na{font-size:28vw}.round-cta{font-size:13px}}
@media(max-width:560px){.hero-media{left:18%;width:75%;height:74%;top:14%}.hero-na{font-size:32vw}.hero-word{font-size:23.3vw;left:-1vw}.round-cta{font-size:12px}.hero-caption{right:0;top:8px}.consult-top{min-height:30px}}
/* Pink identity with cobalt used in the supporting sections. */
:root{--blue:#273bc7}.services{background:var(--blue)}.works .display em,.studio .display em,.statement em,.contacts .display em{color:var(--blue)}.ticker{background:var(--blue)}.consult em{color:var(--blue)}
/* Scroll-controlled film cover. */
.header{position:absolute;top:0;left:0;width:100%;background:var(--paper);border-bottom:0}.hero{height:100svh;min-height:700px;padding:0;isolation:isolate}.hero-film,.hero-next-film{position:absolute;inset:0;overflow:hidden;background:transparent;z-index:0;will-change:clip-path}.hero-film{clip-path:inset(16% 28% 15% 28%)}.hero-next-film{clip-path:inset(100% 0 0 0);z-index:1}.hero-film video,.hero-next-film video{width:100%;height:100%;display:block;object-fit:cover;object-position:center 48%}.hero-film video{transform:scale(1.04)}.film-shade{position:absolute;inset:0;background:linear-gradient(180deg,#00000008 35%,#00000055);pointer-events:none}.hero-topline{position:absolute;left:3.5%;right:3.5%;top:122px;z-index:3}.hero h1{position:absolute;inset:0;pointer-events:none;z-index:4}.hero-na{left:3.1%;top:15%;font-size:16vw;line-height:1}.hero-word{left:2.5%;bottom:10%;font-size:25vw;line-height:1;letter-spacing:-.058em}.hero-caption{right:3.5%;top:20%;z-index:3}.round-cta{right:3.5%;top:48%;z-index:5}.hero-bottom{position:absolute;bottom:3.5%;left:3.5%;right:3.5%;margin:0;z-index:4}.hero-scene-title{position:absolute;left:5%;right:5%;bottom:12%;z-index:3;color:var(--paper);visibility:hidden;pointer-events:none}.hero-scene-title>span{font-family:var(--display);font-size:24vw;line-height:1;font-weight:600;letter-spacing:-.065em;display:block}.hero-scene-title small{font-size:13px;letter-spacing:1.8px;font-weight:600}.scene-color{text-align:right}.film-controls{position:absolute;left:3.5%;right:3.5%;bottom:10%;display:flex;justify-content:space-between;align-items:center;z-index:6;color:var(--ink);pointer-events:none}.film-credit{font-size:11px;letter-spacing:1px;opacity:0}.video-toggle{pointer-events:auto;color:inherit;background:transparent;padding:10px 0;border-bottom:1px solid currentColor;font-size:12px}.film-controls .video-toggle{margin-left:auto}.hero .round-cta:focus-visible,.video-toggle:focus-visible{outline-color:var(--paper)}
.statement-line{display:block;will-change:transform}.manifesto{overflow:hidden}.works{overflow:hidden}.work-image img{height:112%;transform:translateY(-4%);object-fit:cover}.team-photo{will-change:transform}.consult{overflow:hidden}.consult h2{transform-origin:left center}footer{position:relative}.footer-word{will-change:transform}
/* All 36 booking positions, grouped into five service sections. */
.services-layout{grid-template-columns:34% 1fr;gap:6%}.services-intro{align-self:start;position:sticky;top:45px}.services .display{font-size:clamp(56px,6.2vw,102px)}.service-list summary{gap:14px;flex-wrap:wrap}.service-list h3{font-size:clamp(20px,1.8vw,28px);letter-spacing:-.6px;flex:1}.summary-price{font-size:13px;white-space:nowrap;opacity:.8}.service-list .plus{margin-left:4px;width:16px;height:16px}.service-content{padding:0 0 28px 28px;max-width:none}.price-lines{margin:0}.price-row{display:flex;align-items:baseline;justify-content:space-between;gap:25px;padding:18px 0;border-top:1px solid #ffffff25}.price-row dt{font-size:15px;line-height:1.5;max-width:75%}.price-row dd{margin:0;font-size:16px;font-weight:700;white-space:nowrap}.price-row small,.length-row small{display:block;font-size:12px;font-weight:400;opacity:.65;margin-top:5px}.individual-price{font-size:13px;opacity:.75;line-height:1.6;margin-top:15px}.length-head,.length-row{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:12px;align-items:center}.length-head{padding-bottom:15px;font-size:11px;opacity:.65}.length-row{padding:19px 0;border-top:1px solid #ffffff25}.length-row h4{margin:0;font-size:14px;font-weight:500;line-height:1.4}.length-row b{font-size:14px;font-weight:700;white-space:nowrap}.mobile-length{display:none}.price-note{max-width:none}.price-note a{text-decoration:underline;text-underline-offset:4px}.services-intro .pill-link{font-size:13px;padding:14px 20px}
@media(min-width:1600px){.hero-word{font-size:25vw}.hero-na{font-size:16vw}}
@media(max-width:1050px){.services-layout{grid-template-columns:1fr;gap:40px}.services-intro{position:static;display:grid}.services .display{font-size:10vw}.services-intro>p{margin-bottom:20px}.length-row h4{font-size:16px}.length-row b{font-size:16px}.hero-word{font-size:25vw}.hero-caption{font-size:11px}.hero .round-cta{width:115px;height:115px;font-size:13px}.hero-film{clip-path:inset(20% 22% 19% 22%)}.hero-topline{top:115px}}
@media(max-width:800px){.hero{min-height:640px}.hero-topline{top:105px;left:22px;right:22px}.hero-na{font-size:28vw;top:17%;left:20px}.hero-word{font-size:25vw;bottom:14%;left:16px}.hero-caption{right:22px;top:20%;font-size:11px}.hero-film{clip-path:inset(25% 13% 20% 13%)}.hero-bottom{bottom:24px;left:22px;right:22px}.hero .round-cta{width:100px;height:100px;top:57%;right:22px;font-size:12px}.film-controls{bottom:11%;left:22px;right:22px}.hero-scene-title>span{font-size:28vw}.hero-scene-title{bottom:18%}.hero-scene-title small{font-size:11px}.services-intro .display{font-size:12vw}}
@media(max-width:560px){.hero{min-height:660px;height:100svh}.hero-topline{top:103px;font-size:10px}.hero-na{top:16%;font-size:32vw}.hero-caption{top:19%;font-size:10px}.hero-film{clip-path:inset(29% 11% 21% 16%)}.hero-word{bottom:17%;font-size:24vw}.hero .round-cta{width:90px;height:90px;top:56%;right:17px;font-size:11px}.hero-bottom{bottom:25px}.film-controls{bottom:11.5%;right:22px}.video-toggle{font-size:11px}.film-credit{max-width:125px;font-size:10px}.hero-scene-title>span{font-size:32vw}.hero-scene-title{bottom:19%}.hero-next-film video{object-position:52% center}.services-intro{display:block}.services-intro .display{font-size:21vw}.service-list summary{gap:12px;padding:22px 0}.service-list h3{font-size:22px;flex-basis:calc(100% - 50px);flex-grow:0}.summary-price{margin-left:26px;order:3;font-size:13px}.service-list .plus{position:absolute;right:0;top:32px}.service-list summary{position:relative}.service-content{padding:0 0 25px}.price-row{gap:15px;padding:15px 0}.price-row dt{font-size:14px;max-width:69%}.price-row dd{font-size:14px}.length-head{display:none}.length-row{grid-template-columns:repeat(3,1fr);gap:14px 8px}.length-row h4{grid-column:1/-1;font-size:16px}.length-row h4 small{display:inline;margin-left:10px}.length-row b{font-size:14px}.mobile-length{display:block;font-size:11px;opacity:.65;margin-bottom:5px}.statement{font-size:12vw}}
@media(prefers-reduced-motion:reduce){.hero-next-film,.hero-scene-title{display:none}.hero-film{will-change:auto}}

.hero-film video{object-fit:contain;transform:scale(1);transform-origin:center center}

/* Keep the opening film free of tinted letterboxing. */
.hero-film .film-shade{display:none}

/* Original real-time hair artwork; no framed video or media underlay. */
.hair-art{position:absolute;inset:0;z-index:0;background:var(--pink) url('./assets/hair-art-poster.webp') center/cover no-repeat;pointer-events:none}
#hair-art{display:block;width:100%;height:100%;opacity:0}#hair-art.ready{opacity:1}
.art-toggle{pointer-events:auto;color:inherit;background:transparent;padding:10px 0;border-bottom:1px solid currentColor;font-size:12px;margin-left:auto;min-height:44px}
.hero-caption,.hero-topline,.hero-bottom{color:var(--ink)}

.hero-bottom{color:var(--paper);text-shadow:0 1px 5px #15151875}
.hero-caption{color:var(--paper);text-shadow:0 1px 5px #15151885}.art-toggle{color:var(--paper);text-shadow:0 1px 5px #15151875}.hero .round-cta{border:1px solid #ff369160}
@media(max-width:800px){.hero-topline{color:var(--paper);text-shadow:0 1px 5px #15151885}}

/* Compact navigation and explicit vertical separation between slogan and wordmark. */
.header{height:76px}.brand{font-size:27px;gap:6px}.brand span{font-size:9px}
.hero-topline{top:100px;line-height:1.5}.hero-na{top:150px}
.salon-film{position:absolute;inset:0;z-index:1;visibility:hidden;opacity:0;clip-path:inset(100% 0% 0% 0%);overflow:hidden;will-change:clip-path;background:var(--ink);pointer-events:none}
.salon-color{z-index:2}.salon-film video{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.salon-film:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 50%,#0005)}
@media(max-width:800px){.header{height:64px}.brand{font-size:23px;gap:5px}.brand span{font-size:8px}.mobile-menu{top:64px}.hero-topline{top:88px}.hero-na{top:132px}.hero-caption{top:156px}}
@media(max-width:360px){.brand{font-size:21px}.header{gap:10px}.header-book{font-size:11px}}
@media(prefers-reduced-motion:reduce){.salon-film{display:none}}
/* Two independent wordmark rows always retain breathing room, including short wide windows. */
.hero h1{inset:150px 2.5% 10% 3.1%;display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.hero-na,.hero-word{position:static;display:block;flex-shrink:0;line-height:1}
.hero-na{font-size:min(16vw,calc((100svh - 290px)*.4))}
.hero-word{font-size:min(25vw,calc((100svh - 290px)*.6));letter-spacing:-.058em}
.hero-caption,.hero-topline,.hero-bottom,.art-toggle{text-shadow:none}
.hero-caption{top:104px;font-size:11px;color:var(--ink);right:3.5%}
.hero-topline>span:last-child{display:none}
.hero-bottom p,.hero-loc,.scroll-cue{background:var(--pink);color:var(--ink);padding:4px 7px}
@media(max-width:800px){.hero h1{inset:132px 16px 17% 20px;gap:24px}.hero-na{font-size:min(32vw,calc((100svh - 270px)*.4))}.hero-word{font-size:min(24vw,calc((100svh - 270px)*.6))}.hero-topline{color:var(--ink);text-shadow:none}.hero-caption{display:none}}
.hair-art{background-image:url('./assets/hair-macro.webp');background-size:cover;background-position:center}
.hero-scene-title>span{letter-spacing:.015em;font-kerning:normal}
@media(max-width:800px){.hair-art{background-position:67% center}}
.hero-caption{color:var(--paper)}
.hero-bottom p,.hero-loc,.scroll-cue{background:none;padding:0}
.hero-loc,.scroll-cue{color:var(--paper)}
@media(max-width:800px){.hero-bottom p{color:var(--paper)}}

/* Read the two words as one compact mark, with a visible gap between glyphs. */
.hero h1{top:clamp(140px,18svh,170px);bottom:auto;justify-content:flex-start;gap:clamp(14px,1.5vw,26px)}
.hero-na,.hero-word{line-height:.82}
@media(max-width:800px){.hero h1{top:140px;gap:18px;bottom:auto}}

/* Reveal large scene titles above the fixed credit/control row, never through it. */
.scene-window{position:absolute;inset:0 0 calc(10% + 64px);overflow:hidden;z-index:3;pointer-events:none}
.scene-window .hero-scene-title{bottom:0}
@media(max-width:800px){.scene-window{bottom:calc(11.5% + 62px)}}

/* Portrait salon film, revealed through six synchronized vertical apertures. */
.hero{background:var(--pink)}
.reveal-defs{position:absolute;pointer-events:none}
.hero-outline{position:absolute;left:28%;bottom:9%;z-index:0;font:600 24vw/.95 var(--display);letter-spacing:-.025em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(243,241,237,.45);pointer-events:none}
.portrait-film{position:absolute;right:8%;top:17%;height:68%;aspect-ratio:4/5;z-index:1;transform-origin:center;max-width:45%}
.portrait-reveal{width:100%;height:100%;clip-path:url(#portrait-slices)}
.portrait-film video{display:block;width:100%;height:100%;object-fit:cover}
.portrait-label{position:absolute;left:0;bottom:-28px;font-size:9px;letter-spacing:1.5px;color:var(--ink);white-space:nowrap}
.hero h1{top:26%;left:3.5%;right:auto;gap:20px}
.hero-na{font-size:min(17vw,25svh)}
.hero-word{font-size:min(20vw,29svh);letter-spacing:-.045em;color:var(--paper)}
.hero-caption{top:auto;bottom:18%;left:3.5%;right:auto;color:var(--ink);font-size:10px}
.hero .round-cta{top:auto;bottom:16%;right:4%;background:var(--paper);color:var(--ink);border:0;width:116px;height:116px}
.hero .round-cta:hover{background:var(--ink);color:var(--paper)}
.hero-loc,.scroll-cue,.hero-bottom p,.art-toggle{color:var(--ink)}
.film-controls{bottom:5%;left:auto;right:3.5%;gap:24px;color:var(--ink)}
.film-credit{display:none}
.art-toggle{color:inherit}
.hero-bottom{bottom:5%;right:18%}
.hero-loc{display:none}
.scene-window{bottom:calc(5% + 64px)}
@media(max-width:800px){
 .hero{min-height:680px}
 .portrait-film{right:8%;top:25%;height:53%;max-width:70%}
 .hero h1{top:18%;left:20px;gap:16px}
 .hero-na{font-size:30vw}
 .hero-word{font-size:23.5vw}
 .hero-outline{left:12%;bottom:15%;font-size:37vw}
 .hero .round-cta{bottom:17%;right:5%;width:94px;height:94px;font-size:11px}
 .hero-bottom{left:22px;bottom:5%;right:120px}
 .hero-bottom p{color:var(--ink);font-size:11px}
 .film-controls{bottom:4%;right:22px;left:auto}
 .scene-window{bottom:calc(4% + 64px)}
 .portrait-label{font-size:8px;letter-spacing:.8px;bottom:-24px}
}
@media(prefers-reduced-motion:reduce){.portrait-reveal{clip-path:none}}

/* A shared gutter anchors the cover; opposing cuts give the film its silhouette. */
.hero{--cover-gutter:clamp(24px,3.5vw,72px)}
.hero-topline{left:var(--cover-gutter);right:var(--cover-gutter);top:104px}
.portrait-film{right:var(--cover-gutter);top:132px;height:calc(100% - 232px);width:auto;max-width:48%;aspect-ratio:4/5}
.portrait-shape{width:100%;height:100%;clip-path:polygon(14% 0,100% 0,100% 83%,83% 100%,0 100%,0 17%)}
.portrait-label{left:0;bottom:-25px;letter-spacing:1.1px;font-size:9px}
.hero h1{left:var(--cover-gutter);top:25%;gap:clamp(18px,1.5vw,28px)}
.hero-na{font-size:min(18vw,26svh)}
.hero-word{font-size:min(24vw,34svh)}
.hero-outline{left:34%;bottom:10%;font-size:26vw;-webkit-text-stroke-color:rgba(243,241,237,.32)}
.hero-caption{left:var(--cover-gutter);bottom:112px;font-size:10px;line-height:1.65}
.hero .round-cta{right:var(--cover-gutter);bottom:102px;width:126px;height:126px;font-size:12px;transform:rotate(0deg)}
.hero .round-cta:hover{transform:rotate(-6deg)}
.hero-bottom{left:var(--cover-gutter);right:calc(var(--cover-gutter) + 190px);bottom:30px;align-items:flex-end}
.film-controls{right:var(--cover-gutter);bottom:25px}
.scene-window{bottom:89px}
@media(max-width:1050px) and (min-width:801px){
 .hero-word{font-size:24vw}.hero-na{font-size:20vw}
 .portrait-film{max-width:46%}.scroll-cue{display:none}
}
@media(max-width:800px){
 .hero{--cover-gutter:22px;--film-top:clamp(214px,28svh,260px)}
 .hero-topline{top:88px;font-size:9px;letter-spacing:1px}
 .hero h1{top:132px;gap:18px}
 .hero-na{font-size:28vw}.hero-word{font-size:23.5vw}
 .portrait-film{top:var(--film-top);right:var(--cover-gutter);width:84%;height:auto;max-width:none;aspect-ratio:4/5}
 .portrait-label{bottom:-22px;font-size:8px;letter-spacing:.6px}
 .hero-outline{left:4%;bottom:14%;font-size:40vw}
 .hero .round-cta{top:calc(var(--film-top) + 105vw - 84px);bottom:auto;right:var(--cover-gutter);width:94px;height:94px;font-size:11px}
 .hero-bottom{bottom:30px;right:135px}
 .film-controls{bottom:24px;right:var(--cover-gutter)}
 .scene-window{bottom:88px}
}
@media(min-width:561px) and (max-width:800px){
 .portrait-film{width:auto;height:calc(100% - 320px);max-width:70%}
 .hero .round-cta{top:auto;bottom:100px}
}
@media(max-width:360px){.hero{--cover-gutter:18px}.hero-topline{letter-spacing:.6px}.hero h1{top:126px}.hero-bottom p{font-size:10px}.art-toggle{font-size:11px}}

.salon-gloss video{object-position:center 28%}
/* Quieter navigation lets the wordmark carry the header. */
.desktop-nav{font-weight:400;gap:36px;font-size:14px;letter-spacing:.01em}
.mobile-menu>a{font-weight:400}
@media(min-width:801px) and (max-width:1100px){.desktop-nav{gap:22px;font-size:13px}}
@media(min-width:561px) and (max-width:800px){.portrait-film{height:calc(100% - 390px)}}
/* Keep controls inside the pinned viewport on compact phones. */
@media(max-width:800px) and (max-height:720px){
 .hero{min-height:0;--film-top:185px}
 .hero h1{top:116px;gap:15px}.hero-na{font-size:24vw}
 .portrait-film{height:calc(100% - 266px);width:auto;max-width:82%}
 .portrait-label{display:none}
 .hero .round-cta{top:auto;bottom:72px;width:82px;height:82px;font-size:10px}
 .hero-bottom{bottom:20px}.film-controls{bottom:14px}
}

/* Keep the service caption in the title's flow, away from its visible glyphs. */
.hero-copy{position:absolute;top:25%;left:var(--cover-gutter);z-index:4;width:max-content;pointer-events:none}
.hero .hero-copy h1{position:static;inset:auto;width:auto}
.hero .hero-copy .hero-caption{position:static;inset:auto;width:max-content;margin-top:40px}
/* A solid quiet area separates the film caption from the outline artwork. */
.portrait-label{background:var(--pink);box-shadow:0 0 0 6px var(--pink);line-height:1.6}
@media(max-width:800px){.hero-copy{top:132px}.hero .hero-copy .hero-caption{display:none}}
@media(max-width:360px){.hero-copy{top:126px}}
@media(max-width:800px) and (max-height:720px){.hero-copy{top:116px}}

.lightbox-close{display:grid;place-items:center;padding:0;line-height:1;flex-shrink:0}
.lightbox-close svg{display:block;width:24px;height:24px;pointer-events:none}
.lightbox-close:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
/* Restore the pink frame without shifting the SVG's optical centre. */
.lightbox-close::before{content:'';position:absolute;inset:-6px;border:3px solid var(--pink);pointer-events:none;transition:transform .28s cubic-bezier(.22,1,.36,1)}
.lightbox-close svg{transform-origin:center;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.lightbox-close:focus-visible{outline:none;background:rgba(255,54,145,.2)}
@media(hover:hover) and (pointer:fine){
 .lightbox-close:hover::before{transform:scale(1.08)}
 .lightbox-close:hover svg{transform:rotate(90deg)}
}
@media(prefers-reduced-motion:reduce){.lightbox-close:hover::before,.lightbox-close:hover svg{transform:none}}

/* The CTA and the film share a circular junction with an even pink clearance. */
.portrait-film{--cta-size:126px;--cta-gap:12px}
.portrait-shape{clip-path:polygon(14% 0,100% 0,100% 100%,0 100%,0 17%);-webkit-mask-image:radial-gradient(circle calc(var(--cta-size)*.5 + var(--cta-gap)) at calc(100% - var(--cta-size)*.5) calc(100% - var(--cta-size)*.5),transparent calc(100% - 1px),#000 100%);mask-image:radial-gradient(circle calc(var(--cta-size)*.5 + var(--cta-gap)) at calc(100% - var(--cta-size)*.5) calc(100% - var(--cta-size)*.5),transparent calc(100% - 1px),#000 100%)}
.hero .portrait-film .round-cta{top:auto;right:0;bottom:0;width:var(--cta-size);height:var(--cta-size);box-shadow:0 0 0 var(--cta-gap) var(--pink)}
@media(max-width:800px){.portrait-film{--cta-size:94px}}
@media(max-width:800px) and (max-height:720px){.portrait-film{--cta-size:82px}}

/* Include trailing spacing in each identical unit so the loop has no seam. */
.ticker-track{gap:0}
.ticker-group{display:flex;align-items:center;flex:0 0 auto;gap:45px;padding-right:45px;white-space:nowrap}

/* Separate service metadata from the emotional continuation of the wordmark. */
.hero-services{display:flex;gap:10px;font-size:10px;font-weight:400;letter-spacing:.065em;align-items:center}
.hero-services span+span:before{content:'/';margin-right:10px;opacity:.65}
.hero .hero-copy .hero-message{margin-top:32px;font-size:clamp(18px,1.4vw,24px);line-height:1.4;letter-spacing:-.025em;font-weight:400}
@media(max-width:1050px) and (min-width:801px){.hero-services{font-size:8px;gap:7px}.hero-services span+span:before{margin-right:7px}}
@media(max-width:800px){
 .hero-topline{display:block}.hero-services{margin-top:14px;font-size:8px;gap:7px;letter-spacing:.015em}
 .hero-services span+span:before{margin-right:7px}
 .hero-copy{top:150px}
 .hero .hero-copy .hero-message{display:block;font-size:18px;max-width:26vw}
 .hero-bottom{display:none}
}
@media(max-width:560px){
 .hero{--film-top:clamp(230px,30svh,280px)}
 .hero-copy{display:contents}
 .hero .hero-copy h1{position:absolute;top:150px;left:var(--cover-gutter);width:max-content;gap:18px}
 .hero-na{font-size:24vw}
 .hero .hero-copy .hero-message{position:absolute;top:calc(var(--film-top) + 105vw + 48px);left:var(--cover-gutter);width:calc(100% - 2*var(--cover-gutter));max-width:none;margin:0;font-size:18px;line-height:1.4;z-index:4}
 .portrait-film{width:84%;height:auto;max-width:none}
}
@media(max-width:560px) and (max-height:800px){
 .hero{min-height:0;--film-top:210px}
 .hero .hero-copy h1{top:142px;gap:15px}
 .portrait-film{height:calc(100% - 340px);width:auto;max-width:82%;--cta-size:82px;--cta-gap:10px}
 .portrait-label{display:none}
 .hero .hero-copy .hero-message{top:auto;bottom:70px;font-size:16px;line-height:1.35}
 .film-controls{bottom:14px}
}
.portrait-shape{clip-path:polygon(14% 0,100% 0,100% calc(100% - var(--cta-size)*.5),calc(100% - var(--cta-size)*.5) calc(100% - var(--cta-size)*.5),calc(100% - var(--cta-size)*.5) 100%,0 100%,0 17%)}
@media(max-width:800px){.hero-message{background:var(--pink);box-shadow:0 0 0 8px var(--pink)}}
@media(max-width:560px){.hero-outline{top:calc(var(--film-top) + 105vw - 180px);bottom:auto}}
@media(max-width:560px) and (max-height:800px){.hero-outline{top:auto;bottom:140px}}
/* The sculpted opening resolves into a rectangle as the CTA leaves. */
.portrait-shape{--shape-cut:1;clip-path:polygon(calc(14%*var(--shape-cut)) 0,100% 0,100% calc(100% - var(--cta-size)*.5*var(--shape-cut)),calc(100% - var(--cta-size)*.5*var(--shape-cut)) calc(100% - var(--cta-size)*.5*var(--shape-cut)),calc(100% - var(--cta-size)*.5*var(--shape-cut)) 100%,0 100%,0 calc(17%*var(--shape-cut)));-webkit-mask-image:radial-gradient(circle calc((var(--cta-size)*.5 + var(--cta-gap))*var(--shape-cut)) at calc(100% - var(--cta-size)*.5*var(--shape-cut)) calc(100% - var(--cta-size)*.5*var(--shape-cut)),transparent calc(100% - 1px),#000 100%);mask-image:radial-gradient(circle calc((var(--cta-size)*.5 + var(--cta-gap))*var(--shape-cut)) at calc(100% - var(--cta-size)*.5*var(--shape-cut)) calc(100% - var(--cta-size)*.5*var(--shape-cut)),transparent calc(100% - 1px),#000 100%)}

/* A radial colour reveal and rotating SVG make the gallery affordance respond. */
.image-open{isolation:isolate;place-items:center;place-content:normal;transition:transform .42s cubic-bezier(.22,1.35,.36,1);transform:scale(1)}
.image-open:before{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--pink);transform:scale(0);transition:transform .36s cubic-bezier(.22,1,.36,1);z-index:-1}
.image-open:after{content:'';position:absolute;inset:-4px;border:1px solid var(--pink);border-radius:inherit;opacity:0;transform:scale(.8);transition:transform .4s ease,opacity .3s ease;pointer-events:none}
.image-open svg{display:block;transform-origin:center;transition:transform .48s cubic-bezier(.22,1,.36,1)}
.work-card:hover .image-open{background:var(--paper)}
.work-card:focus-visible .image-open{transform:scale(1.16)}
.work-card:focus-visible .image-open:before{transform:scale(1)}
.work-card:focus-visible .image-open:after{transform:scale(1);opacity:.7}
.work-card:focus-visible .image-open svg{transform:rotate(90deg)}
@media(hover:hover) and (pointer:fine){
 .work-card:hover .image-open{transform:scale(1.16)}
 .work-card:hover .image-open:before{transform:scale(1)}
 .work-card:hover .image-open:after{transform:scale(1);opacity:.7}
 .work-card:hover .image-open svg{transform:rotate(90deg)}
}
@media(max-width:560px){.image-open svg{width:17px;height:17px}}
@media(prefers-reduced-motion:reduce){.work-card .image-open,.work-card .image-open svg{transform:none!important}}
/* Keep the upper bars of Е and Т distinct in the large invitation. */
.consult h2 em{letter-spacing:.015em;font-kerning:normal}

/* Original agency signature, optically aligned and slightly smaller than usual. */
.footer-bottom{align-items:center;gap:24px;flex-wrap:wrap}
.footer-top{margin-left:auto}
.agency-credit{--credit-height:30px;display:inline-flex;align-items:center;gap:12px;min-height:44px;max-width:100%;flex:none;color:var(--pink);letter-spacing:0;text-decoration:none}
.agency-credit-mark{display:block;flex:none;width:auto;height:var(--credit-height)}
.agency-credit-dots{fill:var(--paper)}
.agency-credit-copy{display:flex;flex-direction:column;justify-content:space-between;height:var(--credit-height);padding-bottom:calc(var(--credit-height)*35/335);white-space:nowrap}
.agency-credit-label{margin-top:-.12em;font-size:10px;line-height:1;letter-spacing:.01em;color:#f3f1edb3}
.agency-credit-name{font-size:12px;line-height:1;color:var(--paper)}
.agency-credit-name strong{font-weight:550;color:var(--pink)}
.agency-credit:focus-visible{outline:2px solid var(--pink);outline-offset:5px;border-radius:2px}
@media(max-width:800px){.footer-bottom>span:nth-child(2){display:none}}
@media(max-width:560px){.footer-bottom{display:grid;grid-template-columns:1fr auto;gap:16px}.agency-credit{grid-column:1 / -1;justify-self:start}.footer-top{margin-left:0}}

/* Preserve the invitation motion, with each typographic row moving separately. */
.consult-line{display:block;transform-origin:left center;white-space:nowrap}
