
@font-face { font-family: "Editorial"; src: url('assets/editorial-roman.otf') format('opentype'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Editorial"; src: url('assets/editorial-italic.otf') format('opentype'); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: "Beauty Sans"; src: url('assets/beauty-sans.otf') format('opentype'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Beauty Sans"; src: url('assets/beauty-sans-bold.otf') format('opentype'); font-style: normal; font-weight: 700; font-display: swap; }

:root { --ink:#17110f; --espresso:#241815; --cocoa:#6e4d45; --rose:#c8757c; --rose-deep:#a94f5c; --blush:#e5afb1; --ivory:#fbf7f0; --pearl:#f1e7dc; --champagne:#c9a27f; --line:rgba(36,24,21,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--ivory); color:var(--ink); font-family:"Beauty Sans",Arial,sans-serif; font-size:18px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
img { width:100%; display:block; }
.skip-link { position:fixed; z-index:999; left:10px; top:10px; padding:10px 14px; background:#fff; transform:translateY(-160%); }
.skip-link:focus { transform:none; }

.site-header { position:sticky; top:0; z-index:100; height:86px; padding:0 clamp(22px,5vw,78px); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; color:var(--ivory); background:rgba(23,17,15,.94); border-bottom:1px solid rgba(255,255,255,.1); backdrop-filter:blur(18px); }
.brand { width:210px; height:70px; padding:7px 15px; display:grid; place-items:center; background:var(--ivory); border-radius:0 0 48px 0; }
.brand img { height:100%; object-fit:contain; }
.desktop-nav { display:flex; gap:34px; }
.desktop-nav a,.header-book,.mobile-nav summary { font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.desktop-nav a { padding:31px 0; position:relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:24px; height:1px; background:var(--blush); transition:.25s; }
.desktop-nav a:hover::after { right:0; }
.header-book { justify-self:end; display:flex; gap:20px; align-items:center; padding:12px 0 9px; border-bottom:1px solid var(--blush); }
.header-book span { color:var(--blush); font-size:16px; }
.mobile-nav { display:none; justify-self:end; position:relative; }
.mobile-nav summary { cursor:pointer; list-style:none; }
.mobile-nav summary::-webkit-details-marker { display:none; }
.mobile-nav div { position:absolute; right:0; top:42px; width:240px; padding:14px; display:grid; background:var(--ivory); color:var(--ink); box-shadow:0 22px 60px rgba(0,0,0,.26); }
.mobile-nav a { padding:13px; font-size:13px; text-transform:uppercase; letter-spacing:.12em; }

.hero { min-height:calc(100vh - 86px); position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(430px,.82fr); align-items:center; gap:clamp(50px,7vw,120px); padding:clamp(74px,8vw,120px) clamp(24px,7vw,108px) 110px; overflow:hidden; background:radial-gradient(circle at 16% 15%,rgba(200,117,124,.22),transparent 28%),var(--ivory); }
.hero::before { content:""; position:absolute; left:-120px; bottom:-330px; width:520px; height:520px; border:1px solid rgba(169,79,92,.28); border-radius:50%; box-shadow:0 0 0 55px var(--ivory),0 0 0 56px rgba(169,79,92,.16),0 0 0 110px var(--ivory),0 0 0 111px rgba(169,79,92,.1); }
.hero-copy { position:relative; z-index:2; }
.kicker { margin:0 0 25px; display:flex; gap:16px; align-items:center; flex-wrap:wrap; color:var(--cocoa); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.kicker span { color:var(--rose-deep); }
.kicker span::after { content:""; display:inline-block; width:36px; height:1px; margin-left:16px; vertical-align:middle; background:currentColor; }
h1,h2 { margin:0; font-family:"Editorial",Georgia,serif; font-weight:400; line-height:.92; letter-spacing:-.045em; }
h1 { max-width:780px; font-size:clamp(62px,7vw,112px); }
h2 { font-size:clamp(54px,6vw,92px); }
h1 em,h2 em { color:var(--rose-deep); font-weight:400; font-style:italic; }
.hero-lede { max-width:610px; margin:32px 0 0; color:#5d4f4a; font-family:"Editorial",Georgia,serif; font-size:clamp(20px,1.7vw,27px); line-height:1.45; }
.hero-actions { margin-top:38px; display:flex; align-items:center; gap:32px; flex-wrap:wrap; }
.button { min-height:58px; padding:15px 24px; display:inline-flex; align-items:center; justify-content:center; gap:28px; border:1px solid transparent; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; transition:.25s; }
.button:hover { transform:translateY(-3px); box-shadow:0 14px 32px rgba(36,24,21,.18); }
.button-rose { color:#fff; background:var(--rose-deep); }
.button-dark { color:#fff; background:var(--ink); }
.button-ivory { color:var(--ink); background:var(--ivory); }
.button span,.underlink span { font-size:17px; }
.underlink { display:inline-flex; align-items:center; gap:14px; padding:8px 0; border-bottom:1px solid currentColor; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.hero-proof { margin-top:56px; padding-top:24px; display:flex; gap:clamp(24px,4vw,58px); border-top:1px solid var(--line); }
.hero-proof div { display:grid; gap:4px; }
.hero-proof strong { color:var(--rose-deep); font-family:"Editorial",serif; font-size:33px; font-weight:400; line-height:1; }
.hero-proof span { max-width:100px; color:#71605a; font-size:10px; line-height:1.4; letter-spacing:.1em; text-transform:uppercase; }
.hero-portrait { position:relative; min-height:690px; z-index:2; }
.hero-portrait::before { content:""; position:absolute; inset:6% 3% 0 16%; border:1px solid var(--champagne); border-radius:250px 250px 18px 18px; transform:rotate(4deg); }
.portrait-arch { position:absolute; inset:0 8% 0 0; overflow:hidden; border-radius:260px 260px 20px 20px; background:#d7d4cf; box-shadow:0 35px 90px rgba(36,24,21,.2); }
.portrait-arch img { height:100%; object-fit:cover; object-position:center 34%; filter:contrast(1.035) saturate(.92); }
.portrait-arch::after { content:""; position:absolute; inset:0; box-shadow:inset 0 -120px 100px -85px rgba(23,17,15,.75); }
.hero-logo-card { position:absolute; z-index:3; left:-12%; bottom:8%; width:48%; aspect-ratio:1.8; display:grid; place-items:center; padding:14px 22px; background:rgba(251,247,240,.96); box-shadow:0 20px 55px rgba(23,17,15,.22); transform:rotate(-3deg); }
.hero-logo-card img { height:100%; object-fit:contain; }
.hero-monogram { position:absolute; z-index:3; right:-2%; top:9%; color:rgba(251,247,240,.92); font-family:"Editorial",serif; font-size:130px; font-style:italic; line-height:1; text-shadow:0 4px 25px rgba(0,0,0,.18); }
.portrait-note { position:absolute; z-index:3; right:13%; bottom:3%; margin:0; color:white; font-size:9px; letter-spacing:.2em; }
.style-rail { position:absolute; left:0; right:0; bottom:0; height:46px; padding:0 clamp(24px,7vw,108px); display:flex; align-items:center; justify-content:space-between; color:var(--ivory); background:var(--ink); font-family:"Editorial",serif; font-size:17px; font-style:italic; }
.style-rail i { color:var(--rose); font-style:normal; }

.beauty-statement { min-height:190px; padding:50px clamp(24px,6vw,90px); display:flex; align-items:center; justify-content:space-between; gap:20px; text-align:center; color:var(--ink); background:var(--pearl); border-top:1px solid rgba(201,162,127,.5); border-bottom:1px solid rgba(201,162,127,.5); }
.beauty-statement p { margin:0; font-family:"Editorial",serif; font-size:clamp(24px,2.3vw,38px); font-style:italic; }
.beauty-statement span { color:var(--rose-deep); }

.services-section,.about-section,.ritual-section { padding:clamp(90px,10vw,155px) clamp(24px,7vw,108px); }
.section-title { display:grid; grid-template-columns:1fr minmax(300px,430px); column-gap:60px; align-items:end; margin-bottom:70px; }
.section-title .kicker { grid-column:1/-1; }
.section-lede { margin:0 0 8px; color:#675953; font-size:19px; line-height:1.65; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.service-card { min-height:470px; padding:30px; display:flex; flex-direction:column; background:#f5eee6; border:1px solid transparent; transition:.3s; }
.service-card:nth-child(even) { background:#eee1d7; }
.service-card:hover { border-color:var(--rose); transform:translateY(-8px); box-shadow:0 24px 60px rgba(36,24,21,.1); }
.service-number { display:flex; justify-content:space-between; color:var(--rose-deep); font-size:12px; letter-spacing:.16em; }
.service-number i { font-style:normal; }
.service-card h3 { margin:60px 0 18px; font-family:"Editorial",serif; font-size:34px; font-weight:400; line-height:1.05; }
.service-card>p { margin:0; color:#665852; font-size:17px; line-height:1.65; }
.tag-row { margin:26px 0; display:flex; flex-wrap:wrap; gap:7px; }
.tag-row span { padding:6px 10px; border:1px solid var(--line); border-radius:99px; color:#665852; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.service-meta { margin-top:auto; padding-top:22px; display:flex; align-items:end; justify-content:space-between; border-top:1px solid var(--line); }
.service-meta strong { color:var(--rose-deep); font-family:"Editorial",serif; font-size:25px; font-weight:400; }
.service-meta span { font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.menu-link { margin-top:24px; padding:22px 2px; display:flex; justify-content:space-between; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); font-family:"Editorial",serif; font-size:22px; }
.menu-link b { color:var(--rose-deep); font-weight:400; }

.lookbook-section { padding:clamp(90px,10vw,150px) clamp(24px,6vw,92px); color:var(--ivory); background:var(--ink); overflow:hidden; }
.lookbook-head { margin-bottom:65px; display:grid; grid-template-columns:1fr minmax(290px,420px); gap:60px; align-items:end; }
.kicker-light { color:#cdbdb6; }
.kicker-light span { color:var(--blush); }
.lookbook-head h2 em { color:var(--blush); }
.lookbook-note p { margin:0 0 26px; color:#c8bbb5; font-size:19px; line-height:1.65; }
.underlink-light { color:var(--ivory); }
.lookbook-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:110px; gap:14px; }
.look { position:relative; margin:0; overflow:hidden; background:#302420; }
.look img { height:100%; object-fit:cover; transition:.45s; image-rendering:auto; }
.look::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 58%,rgba(14,10,9,.75)); pointer-events:none; }
.look:hover img { transform:scale(1.045); filter:contrast(1.04) saturate(1.08); }
.look figcaption { position:absolute; z-index:2; left:18px; right:18px; bottom:13px; display:flex; justify-content:space-between; color:#fff; font-size:11px; letter-spacing:.11em; text-transform:uppercase; }
.look figcaption span { color:var(--blush); }
.look-1 { grid-column:span 5; grid-row:span 4; }
.look-2 { grid-column:span 3; grid-row:span 3; }
.look-3 { grid-column:span 4; grid-row:span 5; }
.look-4 { grid-column:span 3; grid-row:span 4; }
.look-5 { grid-column:span 5; grid-row:span 3; }
.look-6 { grid-column:span 4; grid-row:span 3; }
.look-7 { grid-column:span 4; grid-row:span 4; }
.look-8 { grid-column:span 4; grid-row:span 3; }
.look-9 { grid-column:span 4; grid-row:span 3; }

.about-section { display:grid; grid-template-columns:.9fr 1fr; gap:clamp(70px,9vw,150px); align-items:center; background:radial-gradient(circle at 82% 22%,rgba(229,175,177,.3),transparent 26%),var(--ivory); }
.about-visual { position:relative; min-height:730px; }
.about-photo { position:absolute; inset:0 7% 0 5%; overflow:hidden; border-radius:250px 250px 14px 14px; box-shadow:0 28px 75px rgba(36,24,21,.16); }
.about-photo img { height:100%; object-fit:cover; object-position:center 32%; }
.about-orbit { position:absolute; left:-2%; top:8%; width:145px; height:145px; border:1px solid var(--rose-deep); border-radius:50%; color:var(--rose-deep); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; background:rgba(251,247,240,.86); backdrop-filter:blur(8px); font-size:9px; letter-spacing:.18em; transform:rotate(-8deg); }
.about-logo { position:absolute; right:-4%; bottom:7%; width:48%; padding:20px; background:var(--ivory); box-shadow:0 18px 50px rgba(36,24,21,.18); }
.about-copy h2 { font-size:clamp(52px,5.8vw,88px); }
.about-lede { margin:34px 0 20px; color:var(--ink); font-family:"Editorial",serif; font-size:25px; line-height:1.45; }
.about-copy>p:not(.kicker):not(.about-lede) { max-width:650px; margin:0; color:#62544f; font-size:18px; line-height:1.75; }
.credential-row { margin:32px 0; display:flex; flex-wrap:wrap; gap:8px; }
.credential-row span { padding:8px 12px; color:var(--rose-deep); background:#f0dfe0; border-radius:99px; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }

.ritual-section { background:var(--pearl); }
.ritual-title { grid-template-columns:1fr; }
.ritual-grid { margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); list-style:none; border-top:1px solid var(--line); }
.ritual-grid li { min-height:300px; padding:32px 30px; border-right:1px solid var(--line); }
.ritual-grid li:last-child { border-right:0; }
.ritual-grid>li>span { color:var(--rose-deep); font-size:11px; letter-spacing:.14em; }
.ritual-grid h3 { margin:55px 0 12px; font-family:"Editorial",serif; font-size:29px; font-weight:400; line-height:1.1; }
.ritual-grid p { margin:0; color:#655750; font-size:17px; line-height:1.65; }

.details-section { display:grid; grid-template-columns:1fr 1fr; }
.studio-card,.policy-card { min-height:700px; padding:clamp(70px,7vw,110px); }
.studio-card { color:var(--ivory); background:radial-gradient(circle at 90% 8%,rgba(200,117,124,.3),transparent 28%),var(--espresso); }
.studio-card h2 em { color:var(--blush); }
.studio-card dl { margin:65px 0 0; }
.studio-card dl div { display:flex; justify-content:space-between; padding:17px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.studio-card dt,.studio-card dd { margin:0; font-size:13px; letter-spacing:.1em; text-transform:uppercase; }
.studio-card dd { color:var(--blush); }
.locations { margin:28px 0 0; color:#c9bbb4; font-family:"Editorial",serif; font-size:22px; font-style:italic; }
.policy-card { position:relative; background:#ead7cf; overflow:hidden; }
.policy-mark { position:absolute; right:-35px; top:-90px; color:rgba(169,79,92,.16); font-size:250px; line-height:1; }
.policy-card h2 { font-size:clamp(52px,5vw,80px); }
.policy-card ul { margin:42px 0 35px; padding:0; list-style:none; }
.policy-card li { display:grid; grid-template-columns:38px 1fr; gap:15px; padding:14px 0; border-bottom:1px solid rgba(36,24,21,.13); color:#5d4f49; font-size:17px; line-height:1.5; }
.policy-card li b { color:var(--rose-deep); font-size:10px; letter-spacing:.1em; }

.final-cta { min-height:720px; padding:95px 24px; display:grid; place-content:center; justify-items:center; text-align:center; color:var(--ivory); background:radial-gradient(circle at 50% 45%,rgba(200,117,124,.27),transparent 31%),var(--ink); }
.final-logo { width:min(320px,65vw); margin-bottom:35px; padding:14px 24px; background:var(--ivory); }
.final-cta>p { margin:0 0 22px; color:var(--blush); font-size:11px; font-weight:700; letter-spacing:.2em; }
.final-cta h2 { font-size:clamp(64px,8vw,122px); }
.final-cta h2 em { color:var(--blush); }
.final-cta>div { margin-top:44px; display:flex; align-items:center; justify-content:center; gap:30px; flex-wrap:wrap; }

footer { padding:55px clamp(24px,6vw,92px) 32px; display:grid; grid-template-columns:1fr auto; gap:38px; color:var(--ivory); background:#0d0908; }
.footer-brand img { width:250px; height:85px; object-fit:contain; padding:8px 14px; background:var(--ivory); }
.footer-brand p { margin:14px 0 0; color:#9e8f88; font-size:14px; }
.footer-links { display:flex; align-items:center; gap:26px; }
.footer-links a { font-size:11px; letter-spacing:.13em; text-transform:uppercase; }
footer small { grid-column:1/-1; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); color:#746862; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }

@media (max-width:1080px) {
  .desktop-nav { display:none; } .mobile-nav { display:block; } .site-header { grid-template-columns:1fr auto; } .header-book { display:none; }
  .hero { grid-template-columns:1fr .8fr; } .hero-portrait { min-height:590px; }
  .service-grid { grid-template-columns:repeat(2,1fr); } .service-card { min-height:420px; }
  .lookbook-grid { grid-auto-rows:95px; } .about-section { gap:55px; } .about-visual { min-height:630px; }
}
@media (max-width:760px) {
  body { font-size:17px; } .site-header { height:72px; padding:0 18px; } .brand { width:174px; height:58px; }
  .hero { min-height:auto; padding:70px 22px 95px; grid-template-columns:1fr; gap:60px; } h1 { font-size:clamp(60px,18vw,84px); } h2 { font-size:clamp(50px,15vw,72px); }
  .hero-lede { font-size:21px; } .hero-proof { justify-content:space-between; gap:12px; } .hero-portrait { min-height:580px; margin-left:12px; }
  .hero-logo-card { left:-4%; width:52%; } .hero-monogram { right:2%; font-size:94px; } .style-rail { padding:0 16px; font-size:13px; }
  .beauty-statement { min-height:160px; flex-direction:column; gap:5px; } .beauty-statement span { display:none; }
  .services-section,.about-section,.ritual-section { padding:85px 22px; } .section-title,.lookbook-head { grid-template-columns:1fr; gap:28px; margin-bottom:48px; }
  .section-lede,.lookbook-note p { font-size:18px; } .service-grid { grid-template-columns:1fr; } .service-card { min-height:390px; }
  .lookbook-section { padding:85px 16px; } .lookbook-grid { grid-template-columns:repeat(2,1fr); grid-auto-rows:165px; gap:8px; }
  .look { grid-column:span 1 !important; grid-row:span 1 !important; } .look-1,.look-3,.look-6 { grid-row:span 2 !important; }
  .about-section { grid-template-columns:1fr; } .about-visual { min-height:610px; order:2; } .about-copy { order:1; } .about-logo { right:0; }
  .ritual-grid { grid-template-columns:1fr; } .ritual-grid li { min-height:0; border-right:0; border-bottom:1px solid var(--line); } .ritual-grid h3 { margin-top:28px; }
  .details-section { grid-template-columns:1fr; } .studio-card,.policy-card { min-height:auto; padding:78px 24px; }
  .final-cta { min-height:650px; } .final-cta h2 { font-size:clamp(58px,17vw,82px); }
  footer { grid-template-columns:1fr; } .footer-links { flex-wrap:wrap; gap:20px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; } }
