@font-face{font-family:Barlow;src:url('/fonts/display.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/body.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/semibold.woff2') format('woff2');font-weight:600 800;font-display:swap}
:root{--ink:#000;--paper:#f2f2ee;--red:#df1026;--muted:#b6b6b4;--line:#343434;--gutter:clamp(22px,5vw,88px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--ink);color:var(--paper);font-family:Manrope,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-underline-offset:5px}button{font:inherit;color:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #ff6475;outline-offset:6px}button[hidden],[hidden]{display:none!important}img{max-width:100%;height:auto;display:block}svg{display:block}h1,h2,h3,p,figure{margin:0}h1,h2,.display-name,.shop-type{font-family:Barlow,sans-serif;font-weight:700;line-height:.88;letter-spacing:-.025em}h1{font-size:clamp(76px,9.2vw,158px)}h2{font-size:clamp(52px,6.6vw,108px)}h3{font-size:24px;line-height:1.2}p{max-width:65ch}strong{font-weight:600}::selection{background:var(--red);color:white}.red{color:#ff344a}.outline{-webkit-text-stroke:1px currentColor;color:transparent}.light-surface .outline{-webkit-text-stroke:1px var(--ink)}.section{padding:110px var(--gutter)}.light-surface{background:var(--paper);color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:8px;left:20px;padding:12px 20px;background:var(--paper);color:black;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}
.site-header{height:110px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 var(--gutter);border-bottom:1px solid var(--line);position:relative;z-index:10;background:black}.brand{font-family:Barlow,sans-serif;font-size:30px;font-weight:700;line-height:.9;letter-spacing:-.01em;text-decoration:none;flex-shrink:0}.brand span{display:block;font-family:Manrope,sans-serif;font-size:11px;font-weight:600;letter-spacing:.18em;margin-top:10px}nav{display:flex;gap:28px;align-items:center}nav a{font-size:15px;font-weight:600;text-decoration:none;position:relative}nav a:hover,nav a[aria-current]{text-decoration:underline;text-decoration-color:#ff344a;text-decoration-thickness:2px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;background:var(--red);color:white;font-size:15px;line-height:1.2;font-weight:600;min-height:58px;padding:18px 24px;text-decoration:none;border:1px solid transparent;border-radius:3px;transition:background .2s,color .2s}.button:hover{background:#b6081b}.button svg,.text-link svg{width:24px;height:24px;flex-shrink:0;transition:transform .2s}.button:hover svg,.text-link:hover svg{transform:translateX(4px)}.button.light{background:var(--paper);color:black}.button.light:hover{background:#d7d7d2}.light-surface .button.light{background:black;color:white}.header-book{min-height:48px;padding:12px 18px;gap:18px}.text-link{display:inline-flex;align-items:center;gap:22px;font-size:15px;font-weight:600;text-decoration:none;padding:12px 0;border-bottom:1px solid currentColor}.menu-toggle{border:0;background:transparent;padding:12px 0;align-items:center;gap:12px}.menu-toggle svg{width:24px;height:24px}
.hero{padding:78px var(--gutter) 0;min-height:calc(100svh - 110px);display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:24px;overflow:hidden}.hero h1{font-size:clamp(80px,8.7vw,148px);position:relative;z-index:1}.hero h1 span{color:#f2f2ee}.hero-copy>p{margin-top:32px;color:#c3c3c0;font-size:18px;line-height:1.7}.hero-actions{display:flex;gap:30px;align-items:center;margin-top:32px;flex-wrap:wrap}.logo-stage{width:100%;max-width:590px;aspect-ratio:1;position:relative;justify-self:end}.logo-stage>img{position:absolute;width:74%;height:auto;top:13%;left:13%}.logo-orbit{position:absolute;inset:0;width:100%;height:100%;will-change:transform}.logo-orbit text{fill:var(--paper);font-family:Barlow,sans-serif;font-size:33px;font-weight:700;letter-spacing:.05em}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:28px 0;margin-top:60px;font-size:15px;letter-spacing:.05em;font-weight:600}.section-top{display:grid;grid-template-columns:1.4fr 1fr;gap:50px;align-items:end;margin-bottom:65px}.section-top>p{font-size:20px;line-height:1.7}.section-top strong{display:block;margin-top:20px}.work-pair{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:start}.work-pair figure:nth-child(2){margin-top:110px}.work-pair img{width:100%;aspect-ratio:4/5;object-fit:cover}.work-pair .working-photo{object-position:center 36%}figcaption{font-size:15px;font-weight:600;margin-top:16px}.intro>.text-link{margin-top:40px}.service-story{display:grid;grid-template-columns:1fr 1.1fr;gap:10vw;align-items:start}.sticky-story{position:sticky;top:50px}.sticky-story>p{color:var(--muted);margin:28px 0 12px}.story-mark{width:250px;aspect-ratio:1;margin-top:38px;position:relative;display:grid;place-items:center}.story-mark svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#424242;stroke-width:1}.story-mark svg path{stroke:var(--red);stroke-width:7}.story-word{background:black;padding:8px;font-family:Barlow,sans-serif;font-size:34px;font-weight:700}.chapters article{padding:70px 0 110px;border-top:1px solid var(--line);min-height:65vh}.chapters article>h3{font-family:Barlow,sans-serif;font-size:clamp(38px,4vw,64px);letter-spacing:-.02em}.chapters article>p{color:var(--muted);margin:22px 0 35px}.service-row{display:flex;align-items:start;justify-content:space-between;gap:22px;border-bottom:1px solid var(--line);padding:27px 0}.service-row h3{font-size:21px;font-weight:600}.service-row p{font-size:15px;color:var(--muted);margin-top:9px}.service-price{font-size:18px;font-weight:600;white-space:nowrap;text-align:right}.service-price span{display:block;color:var(--muted);font-size:14px;font-weight:400;margin-top:10px}.chapters .button{margin-top:32px}.price-note{font-size:14px;color:var(--muted);margin-top:24px;max-width:70ch}.studio-body{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-top:80px}.display-name{font-size:clamp(60px,8vw,128px);color:#b7081b}.studio-body p:not(.display-name){font-size:18px;margin-bottom:28px}.shop-tease{display:flex;justify-content:space-between;align-items:center;gap:50px;border-bottom:1px solid var(--line)}.shop-tease p{color:var(--muted);margin:30px 0 18px}.shop-type{font-size:clamp(100px,17vw,260px);-webkit-text-stroke:1px #6f6f6f;color:transparent;line-height:.8}.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.visit-grid h2{font-size:clamp(90px,13vw,190px)}.address{font-size:28px;font-weight:600;line-height:1.5;margin-bottom:32px}.visit-details>.muted{font-size:15px;max-width:35ch;margin-top:25px}.visit-details>.text-link{margin-top:12px}.light-surface .muted{color:#50504e}footer{padding:90px var(--gutter) 28px}.footer-cta{display:flex;align-items:end;justify-content:space-between;gap:50px;padding-bottom:80px}.footer-cta h2{font-size:clamp(60px,8vw,125px)}.footer-bottom{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:35px;padding-top:40px;font-size:14px}.footer-bottom>div{display:flex;gap:25px}.copyright{grid-column:1/-1;font-size:13px;color:var(--muted);padding-top:25px}.page-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:end}.page-heading p{font-size:18px;margin-bottom:25px}.service-menu h2{font-size:64px;margin-bottom:35px}.filters{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0}.filters button{background:transparent;border:1px solid #8c8c88;padding:12px 20px;border-radius:3px;font-size:15px;font-weight:600}.filters button[aria-pressed=true]{background:black;color:white;border-color:black}.service-menu .service-row{border-color:#bdbdb7}.service-menu .service-row p,.service-menu .service-price span,.service-menu .price-note{color:#50504e}.service-menu .button{margin-top:32px}.faq h2{margin-bottom:50px}.faq details{border-top:1px solid var(--line);padding:25px 0;max-width:950px}.faq summary{font-size:20px;font-weight:600;cursor:pointer}.faq details p{margin-top:20px;color:var(--muted)}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:65px}.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover}.gallery figure:nth-of-type(2){margin-top:180px}.gallery figure:nth-of-type(3){max-width:75%}.gallery .working-photo{object-position:center 40%}.studio-profile{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.studio-profile img{width:100%;max-height:800px;object-fit:cover;aspect-ratio:3/4;object-position:center 35%}.studio-profile p{margin:35px 0}.studio-profile .text-link{display:flex;width:fit-content;margin-bottom:16px}.profile-note{font-size:15px;color:#50504e}.shop-hero h1{font-size:clamp(72px,10.7vw,170px)}.shop-hero .outline{-webkit-text-stroke:1px #c4c4c4}.availability{color:#ff6475;font-size:15px;font-weight:600;letter-spacing:.06em;margin-bottom:35px}.shop-intro{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin:60px 0;font-size:18px}.shop-intro>p:last-child{color:var(--muted)}.coming-collection{display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:35px 0;margin-bottom:40px;font-size:15px;font-weight:600;letter-spacing:.05em}.visit-help p{font-size:18px;margin:30px 0}.legal{max-width:1050px;min-height:65vh}.legal h1{margin-bottom:45px}.legal h2{font-size:42px;margin:50px 0 20px}.legal p{margin-bottom:25px}
@media(min-width:1700px){.hero{min-height:830px}.section,footer{padding-left:max(88px,calc((100vw - 1540px)/2));padding-right:max(88px,calc((100vw - 1540px)/2))}}
@media(max-width:1100px){nav{gap:17px}.site-header{gap:18px}.header-book{gap:10px}.brand{font-size:26px}.hero{padding-top:65px}.hero-actions{gap:18px}.hero-actions .text-link{font-size:14px}.service-story{gap:6vw}.story-mark{width:210px}.studio-profile{gap:50px}.section{padding-top:80px;padding-bottom:80px}}
@media(max-width:800px){html{scroll-padding-top:20px}.site-header{height:auto;min-height:90px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px;gap:22px}.brand{font-size:25px}.brand span{font-size:10px}.header-book{margin-left:auto;min-height:44px;font-size:14px;padding:10px 14px}.header-book svg{width:18px}.menu-toggle{display:flex;order:3;width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;padding-bottom:0}.site-header nav{order:4;width:100%;flex-wrap:wrap;gap:20px}.js .site-header nav:not(.is-open){display:none}.hero{padding-top:50px;grid-template-columns:1fr;gap:36px;min-height:0}.hero h1{font-size:clamp(68px,15.3vw,119px)}.hero-copy>p{font-size:16px;margin-top:25px}.hero-actions{margin-top:25px;gap:16px 24px}.hero-actions .button{min-height:54px}.logo-stage{max-width:410px;justify-self:center;width:90%;margin-top:10px}.hero-bottom{margin-top:10px;font-size:12px;letter-spacing:0;gap:20px;padding:22px 0}.hero-bottom span{max-width:45%}.section{padding-top:65px;padding-bottom:65px}.section-top{grid-template-columns:1fr;gap:30px;margin-bottom:40px}.section-top>p{font-size:17px}.section-top strong{margin-top:14px}.work-pair{gap:20px;grid-template-columns:1fr 1fr}.work-pair figure:nth-child(2){margin-top:75px}.work-pair img{aspect-ratio:3/5}.work-pair figcaption{font-size:13px;line-height:1.5}.service-story{grid-template-columns:1fr;gap:45px}.sticky-story{position:static}.story-mark{display:none}.sticky-story>p{margin-top:24px}.chapters article{min-height:0;padding:35px 0 55px}.chapters article>h3{font-size:40px}.chapters article>p{font-size:15px;margin-bottom:20px}.service-row h3{font-size:18px}.service-row p{font-size:14px}.service-price{font-size:16px}.service-row{gap:15px;padding:23px 0}.studio-body{grid-template-columns:1fr;gap:35px;margin-top:45px}.display-name{font-size:78px}.shop-tease{align-items:flex-start;flex-direction:column;gap:55px}.shop-type{font-size:110px;align-self:flex-end}.visit-grid{grid-template-columns:1fr;gap:45px}.visit-grid h2{font-size:110px}.address{font-size:24px}.footer-cta{align-items:start;flex-direction:column;gap:35px;padding-bottom:55px}.footer-bottom{grid-template-columns:1fr;gap:25px}.copyright{padding-top:10px}footer{padding-top:65px}.page-heading{grid-template-columns:1fr;gap:40px}.page-heading h1{font-size:clamp(70px,15vw,115px)}.page-heading p{font-size:16px}.service-menu h2{font-size:48px}.filters{gap:9px}.filters button{padding:10px 14px;font-size:14px}.gallery{gap:35px 20px}.gallery figure:nth-of-type(2){margin-top:95px}.gallery figure:nth-of-type(3){max-width:100%}.gallery img{aspect-ratio:3/5}.gallery figcaption{font-size:13px}.studio-profile{grid-template-columns:1fr;gap:45px}.studio-profile img{max-height:570px}.shop-hero h1{font-size:clamp(62px,12.8vw,96px)}.shop-intro{grid-template-columns:1fr;gap:25px;margin:40px 0;font-size:16px}.coming-collection{font-size:13px;letter-spacing:0;padding:25px 0}.legal h1{font-size:68px}.legal h2{font-size:36px}}
/* Brand wordmark and utility text retain the house legibility floor. */
.brand span{font-size:15px;letter-spacing:.06em}.logo-orbit{z-index:2;pointer-events:none}.story-word{position:relative;z-index:1}.menu-toggle{display:none}.copyright{font-size:14px}
@media(max-width:800px){.menu-toggle{display:flex}.hero-bottom{font-size:15px;line-height:1.4}.work-pair figcaption,.gallery figcaption,.coming-collection{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.sticky-story{position:static}}
/* Ritual sequence: static scaffold. Four editorial beats and a second booking action between the poster hero and the real work. */
.ritual{padding-top:90px}.beats{list-style:none;margin:0;padding:0}.beat{display:grid;grid-template-columns:minmax(110px,.32fr) 1fr;gap:30px;align-items:start;border-top:1px solid var(--line);padding:56px 0 64px}.beat:last-child{border-bottom:1px solid var(--line)}.beat-n{font-family:Barlow,sans-serif;font-size:clamp(72px,8vw,132px);font-weight:700;line-height:.8;-webkit-text-stroke:1px #6f6f6f;color:transparent;letter-spacing:-.02em}.beat-word{font-size:15px;font-weight:600;letter-spacing:.06em;color:var(--muted)}.beat h3{font-family:Barlow,sans-serif;font-size:clamp(44px,5.2vw,84px);font-weight:700;line-height:.9;letter-spacing:-.025em;margin-top:18px}.beat-line{font-size:18px;color:#c3c3c0;margin-top:22px;max-width:40ch}.ritual-actions{display:flex;gap:30px;align-items:center;flex-wrap:wrap;margin-top:50px}
@media(max-width:800px){.ritual{padding-top:65px}.beat{grid-template-columns:1fr;gap:14px;padding:36px 0 44px}.beat-n{font-size:64px}.beat h3{font-size:40px;margin-top:10px}.beat-line{font-size:16px;margin-top:16px}.ritual-actions{gap:16px 24px;margin-top:40px}}
/* Ritual sequence: live media stage (only when the build injects .ritual-stage). Beats become full-viewport overlays.
   The stage breaks the section gutter to sit full-bleed; one soft bottom scrim carries legibility, per-beat boxes do not. */
.ritual-stage{display:none}
.ritual.is-live{padding-top:0;position:relative}
.ritual.is-live .ritual-stage{display:block;position:sticky;top:0;height:100svh;width:100vw;margin-left:calc(50% - 50vw);overflow:hidden;background:#000;z-index:0}
.ritual.is-live .ritual-stage>img,.ritual.is-live .ritual-stage>video,.ritual.is-live .ritual-stage>canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .4s}
.ritual.is-live .ritual-stage>video,.ritual.is-live .ritual-stage>canvas{opacity:0}
.ritual.is-live .ritual-stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.45) 22%,rgba(0,0,0,0) 52%)}
.ritual.is-live .beats{position:relative;z-index:1;margin-top:-100svh}
.ritual.is-live .beat{min-height:132svh;border:0;padding:0;display:block}
.ritual.is-live .beat:last-child{border-bottom:0}
.ritual.is-live .beat-n{display:none}
/* Each beat's copy pins to the bottom of the viewport for the middle of its own scroll span,
   so it holds inside the scrim instead of drifting up out of the legible zone. The beat box is
   taller than the 100svh sticky wrapper; that surplus is the hold. Kept tight so the sequence
   does not push the real work and the booking action too far down the page. */
.ritual.is-live .beat>div{background:none;position:sticky;top:0;height:100svh;display:grid;align-content:end;padding-bottom:16vh}
/* The headlines carry their own line breaks; only the supporting line is measure-limited. */
.ritual.is-live .beat h3{max-width:none}
.ritual.is-live .beat-line{max-width:34ch}
.ritual.is-live .beat-word{color:var(--paper);opacity:.85}
.ritual.is-live .beat h3,.ritual.is-live .beat-line{text-shadow:0 2px 20px rgba(0,0,0,.9),0 1px 3px rgba(0,0,0,.8)}
.ritual.is-live .beat-line{color:var(--paper)}
.ritual.is-live .ritual-actions{position:relative;z-index:1;padding-bottom:14vh;margin-top:-10vh}
.ritual-note{font-size:14px;color:var(--muted);margin-top:22px;max-width:60ch}
@media(max-width:800px){.ritual.is-live .beat>div{padding-bottom:13vh}.ritual.is-live .ritual-stage::after{background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.5) 28%,rgba(0,0,0,0) 58%)}}
@media(prefers-reduced-motion:reduce){.ritual.is-live .ritual-stage>video,.ritual.is-live .ritual-stage>canvas{display:none}}
