:root{--burgundy:#510e22;--accent:#ab264b;--accent-soft:#ff8fa8;--white:#fff;--black:#000;--beige:#f2ebe2;--ink:#171315;--muted:#827a7c;--line:rgba(255,255,255,.18);--darkline:rgba(0,0,0,.14);--serif:"Cormorant Garamond",Georgia,serif;--sans:"Montserrat",sans-serif;--mono:"Montserrat",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:var(--white);font-family:var(--sans);line-height:1.5}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.container{width:min(1180px,calc(100% - 64px));margin:auto}.section-dark{background:#100d0e}.section-black{background:#000}.section-beige{background:var(--beige);color:var(--ink)}.section-burgundy{background:var(--burgundy)}.eyebrow{font:500 11px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#b8adb0}.eyebrow.dark{color:#6e6264}
.site-header{position:fixed;z-index:20;top:0;left:0;width:100%;padding:16px 40px;display:flex;justify-content:space-between;align-items:center;mix-blend-mode:normal}.logo{font:600 20px var(--mono);letter-spacing:-.08em}.logo sup{font-size:7px;vertical-align:top;margin-left:2px}.menu-toggle{border:0;background:transparent;color:#fff;font:500 11px var(--mono);text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:10px}.menu-toggle i{width:28px;height:1px;background:#fff;display:block}.nav-panel{position:fixed;inset:0;background:var(--burgundy);z-index:19;display:none;padding:120px 32px 40px}.nav-panel.open{display:block}.nav-panel nav{display:flex;flex-direction:column;gap:6px}.nav-panel nav a{font:600 clamp(42px,8vw,90px)/.95 var(--serif);letter-spacing:-.05em}.nav-panel .nav-meta{margin-top:50px;display:flex;gap:30px;font:11px var(--mono);text-transform:uppercase;color:#cdbfc3}
.hero{min-height:100svh;position:relative;overflow:hidden;padding:150px 7vw 70px;display:flex;align-items:center;background:#120c0f}.hero:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 72% 42%,#8b4a55 0,#510e22 19%,#160d10 47%,#000 73%);filter:blur(25px);opacity:.92}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.2),transparent 60%),repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),rgba(255,255,255,.025) 25%)}.hero-copy,.hero-side,.scroll-note{position:relative;z-index:2}.hero-copy{max-width:920px}.hero h1{font:500 clamp(70px,12vw,170px)/.79 var(--serif);letter-spacing:-.075em;text-transform:uppercase;margin:24px 0 38px}.hero h1 em,.page-hero h1 em{font-style:normal;font-weight:400}.hero-intro{font-size:18px;max-width:560px;color:#ddd1d4}.actions{display:flex;align-items:center;gap:28px;margin-top:35px}.btn{display:inline-flex;align-items:center;gap:28px;border:1px solid transparent;padding:16px 20px;font:500 12px var(--mono);text-transform:uppercase;cursor:pointer}.btn-light{background:#fff;color:#000}.btn-dark{background:#000;color:#fff}.btn-outline{border-color:#fff;color:#fff;margin-top:28px}.text-link{font:500 11px var(--mono);text-transform:uppercase}.text-link span,.btn span,.arrow{font-size:16px}.dark-link{color:#000}.hero-side{position:absolute;right:7vw;bottom:18vh;font:500 11px/1.5 var(--mono);text-transform:uppercase;color:#bcaeb2}.scroll-note{position:absolute;left:7vw;bottom:35px;font:10px var(--mono);color:#aaa}
.statement{padding:150px 0}.statement-grid{display:grid;grid-template-columns:1fr 2.4fr;gap:50px}.statement h2{font:500 clamp(44px,6vw,82px)/.95 var(--serif);letter-spacing:-.06em;margin:0 0 35px}.statement h2 span,.why h2 em,.about-teaser h2 span,.cases-teaser h2 span,.process-mini h2 span,.final-cta h2 span,.page-hero h1 em,.about-story h2 span,.case-note h2 span,.contact-info h2 span,.contact-bottom h2 span{color:var(--accent);font-style:normal}.statement p{max-width:650px;color:#aaa;font-size:18px}
.services-preview,.cases-teaser{padding:130px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:60px}.section-heading h2{font:500 clamp(48px,7vw,92px)/.88 var(--serif);letter-spacing:-.065em;margin:18px 0 0}.service-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--darkline)}.service-card{min-height:390px;padding:24px 22px;border-right:1px solid var(--darkline);position:relative;display:flex;flex-direction:column;transition:.3s}.service-card:first-child{border-left:1px solid var(--darkline)}.service-card:hover{background:#e7ded4;transform:translateY(-5px)}.service-card .num{font:11px var(--mono);color:#777}.service-card h3{font:600 34px/.95 var(--serif);letter-spacing:-.05em;margin-top:auto}.service-card p{font-size:14px;color:#5e5758}.service-card .arrow{position:absolute;right:20px;top:20px}
.why{padding:130px 0}.why-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:90px;margin-top:45px}.why h2{font:500 clamp(52px,7vw,100px)/.88 var(--serif);letter-spacing:-.07em;margin:0}.why-list{border-top:1px solid var(--line)}.why-list div{display:grid;grid-template-columns:50px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);font-size:16px}.why-list b{font:11px var(--mono);color:#a98b92}
.about-teaser{padding:130px 0}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.portrait-placeholder,.portrait-large{aspect-ratio:4/5;background:linear-gradient(135deg,#210d14,#7d3e4b 45%,#f0ddd3);display:flex;flex-direction:column;justify-content:flex-end;padding:30px;position:relative;overflow:hidden}.portrait-placeholder:before,.portrait-large:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 35%,rgba(255,255,255,.5),transparent 25%);mix-blend-mode:screen}.portrait-placeholder span,.portrait-large span{font:600 clamp(90px,14vw,180px)/.8 var(--serif);letter-spacing:-.1em}.portrait-placeholder small,.portrait-large small{font:10px var(--mono);margin-top:25px;z-index:1}.about-teaser h2,.about-story h2{font:500 clamp(55px,7vw,100px)/.88 var(--serif);letter-spacing:-.07em;margin:20px 0 35px}.about-teaser p,.about-story p{max-width:580px;color:#aaa;font-size:17px}
.case-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:12px}.case-card{min-height:480px;padding:25px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.case-card:before,.case-visual:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 25%,rgba(255,255,255,.45),transparent 24%),linear-gradient(135deg,#160a0e,#711f35 50%,#e0b8a8)}.case-two:before{background:radial-gradient(circle at 30% 65%,rgba(255,255,255,.5),transparent 18%),linear-gradient(135deg,#080808,#510e22 55%,#d8c0b8)}.case-three:before{background:radial-gradient(circle at 75% 65%,rgba(255,255,255,.45),transparent 20%),linear-gradient(135deg,#27201c,#aa7e6c 55%,#f2ebe2)}.case-card>*{position:relative;z-index:1}.case-card span{font:10px var(--mono)}.case-card h3{font:500 clamp(38px,4vw,66px)/.88 var(--serif);letter-spacing:-.06em;margin:0}
.process-mini{padding:130px 0}
.final-cta{background:var(--burgundy);padding:140px 0 160px}.final-cta h2{font:500 clamp(80px,14vw,190px)/.78 var(--serif);letter-spacing:-.085em;margin:25px 0 45px}
.page-hero{padding:240px 0 130px}.page-hero h1{font:500 clamp(80px,13vw,170px)/.78 var(--serif);letter-spacing:-.08em;margin:25px 0 40px}.page-hero p{font-size:19px;color:#c6b9bc;max-width:620px}.services-full{padding:30px 0 120px}.service-detail{display:grid;grid-template-columns:120px 1fr;gap:40px;padding:80px 0;border-bottom:1px solid var(--darkline);scroll-margin-top:40px}.service-number{font:12px var(--mono);padding-top:10px}.service-detail h2{font:500 clamp(44px,6vw,80px)/.9 var(--serif);letter-spacing:-.06em;margin:0 0 25px}.lead{font-size:20px;max-width:700px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:40px;border-top:1px solid var(--darkline)}.detail-list span{padding:15px 0;border-bottom:1px solid var(--darkline);font-size:14px}.note{font:11px var(--mono);margin-top:25px;color:#777}.packages{padding:120px 0}.packages h2{font:500 clamp(55px,8vw,105px)/.88 var(--serif);letter-spacing:-.07em;margin:20px 0 60px}.packages h2 span{color:var(--accent)}.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}.package{background:#100d0e;padding:35px;min-height:470px;display:flex;flex-direction:column}.package.featured{background:#2b121a}.package>span{font:10px var(--mono);color:#b8adb0}.package h3{font:500 52px var(--serif);letter-spacing:-.06em;margin:60px 0 10px}.package-price{display:block;font:500 52px var(--serif);letter-spacing:-.06em;margin:0 0 10px;font-style:normal;font-weight:500}.package-price i{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#b8adb0;font-style:normal}.package p{color:#aaa}.package ul{padding:0;list-style:none;margin-top:auto}.package li{border-top:1px solid var(--line);padding:11px 0;font-size:13px}.package a{font:11px var(--mono);text-transform:uppercase;margin-top:25px}.package-note{font:11px var(--mono);color:#8e8487;margin-top:22px}
.about-story{padding:120px 0}.about-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.about-story p{color:#4e4748}.values{padding:120px 0}.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin-top:55px}.value-grid>div{padding:30px;background:var(--burgundy);min-height:300px}.value-grid b{font:11px var(--mono);color:#c4aab0}.value-grid h3{font:500 32px var(--serif);letter-spacing:-.05em;margin-top:80px}.value-grid p{color:#c8babe;font-size:14px}.timeline{padding:100px 0 130px}.timeline-item{display:grid;grid-template-columns:100px 1fr;gap:30px;border-top:1px solid var(--darkline);padding:35px 0}.timeline-item span{font:11px var(--mono)}.timeline-item h3{font:500 42px var(--serif);letter-spacing:-.05em;margin:0 0 10px}.timeline-item p{margin:0;max-width:600px}
.cases-full{padding:40px 0 120px}.case-large{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:center;padding:80px 0;border-bottom:1px solid var(--darkline)}.case-large.reverse{grid-template-columns:1fr 1.15fr}.case-large.reverse .case-visual{order:2}.case-visual{min-height:620px;position:relative;overflow:hidden;padding:25px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.case-visual>*{position:relative;z-index:1}.case-visual span{font:10px var(--mono)}.case-visual strong{font:500 160px/.7 var(--serif);letter-spacing:-.1em;align-self:flex-end}.case-copy h2{font:500 clamp(55px,7vw,100px)/.86 var(--serif);letter-spacing:-.07em;margin:20px 0 30px}.case-copy>p:not(.eyebrow){max-width:550px;font-size:17px;color:#5c5556}.meta{margin-top:45px;border-top:1px solid var(--darkline)}.meta span{display:block;padding:13px 0;border-bottom:1px solid var(--darkline);font-size:12px}.meta b{font:10px var(--mono);margin-right:18px}.case-note{padding:130px 0}.case-note h2{font:500 clamp(55px,8vw,110px)/.86 var(--serif);letter-spacing:-.07em;margin:0 0 30px}.case-note p{max-width:580px;color:#aaa}
.approach{padding:30px 0 120px}.approach-step{display:grid;grid-template-columns:120px 1fr;gap:50px;padding:90px 0;border-bottom:1px solid var(--darkline)}.step-mark{font:11px var(--mono)}.approach-step h2{font:500 clamp(55px,7vw,100px)/.88 var(--serif);letter-spacing:-.07em;margin:15px 0 25px}.approach-step p:not(.eyebrow){max-width:650px;font-size:18px;color:#5c5556}.step-tags{display:flex;gap:8px;margin-top:35px}.step-tags span{border:1px solid var(--darkline);padding:9px 13px;font:10px var(--mono);text-transform:uppercase}.expectations{padding:120px 0}.expect-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:55px}.expect-grid>div{padding:40px;background:var(--burgundy)}.expect-grid h3{font:500 34px var(--serif);margin:0 0 10px}.expect-grid p{color:#c8babe}
.contact-hero{padding:240px 0 130px}.contact-section{padding:110px 0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:110px}.contact-info h2{font:500 clamp(52px,6vw,86px)/.88 var(--serif);letter-spacing:-.07em;margin:20px 0 35px}.contact-info>p:not(.eyebrow){color:#5c5556;max-width:500px}.contact-line{display:flex;justify-content:space-between;border-bottom:1px solid var(--darkline);padding:25px 0;margin-top:45px;font:500 16px var(--mono)}.socials{display:flex;gap:25px;margin-top:25px;font:11px var(--mono);text-transform:uppercase}.contact-form{display:flex;flex-direction:column;gap:25px}.contact-form label{font:10px var(--mono);text-transform:uppercase}.contact-form input,.contact-form textarea{width:100%;margin-top:10px;border:0;border-bottom:1px solid var(--darkline);background:transparent;padding:14px 0;outline:0;color:var(--ink);resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:#000}.contact-form .btn{align-self:flex-start;margin-top:10px}.form-status{font:11px var(--mono);min-height:18px}.contact-bottom{padding:120px 0}.contact-bottom h2{font:500 clamp(55px,8vw,110px)/.86 var(--serif);letter-spacing:-.07em;margin:25px 0 30px}.contact-bottom p:last-child{color:#aaa}
.site-footer{background:#000;padding:55px 32px 30px}.footer-top{display:flex;justify-content:space-between;align-items:end;padding-bottom:55px}.footer-top h2{font:500 clamp(50px,7vw,90px)/.85 var(--serif);letter-spacing:-.07em;margin:0}.footer-top h2 span{color:var(--accent)}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 50px;font:11px var(--mono);text-transform:uppercase}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;color:#777;font:9px var(--mono);text-transform:uppercase}
@media(max-width:800px){.container{width:min(100% - 36px,1180px)}.site-header{padding:20px 18px}.hero{padding:130px 18px 60px}.hero h1{font-size:13vw}.hero-side{display:none}.statement,.services-preview,.why,.about-teaser,.cases-teaser,.process-mini,.final-cta,.services-full,.packages,.about-story,.values,.timeline,.cases-full,.case-note,.approach,.expectations,.contact-section,.contact-bottom{padding-top:85px;padding-bottom:85px}.statement-grid,.why-layout,.about-grid,.about-story-grid,.contact-grid{grid-template-columns:1fr;gap:45px}.statement h2,.why h2,.about-teaser h2,.about-story h2{font-size:14vw}.section-heading{display:block}.section-heading .text-link{display:inline-block;margin-top:25px}.service-grid,.package-grid,.value-grid{grid-template-columns:1fr}.service-card{min-height:280px;border-left:1px solid var(--darkline);border-bottom:1px solid var(--darkline)}.case-grid{grid-template-columns:1fr}.case-card{min-height:360px}.page-hero{padding:180px 0 85px}.page-hero h1{font-size:17vw}.service-detail,.approach-step{grid-template-columns:45px 1fr;gap:15px;padding:55px 0}.detail-list{grid-template-columns:1fr}.case-large,.case-large.reverse{grid-template-columns:1fr;gap:35px}.case-large.reverse .case-visual{order:0}.case-visual{min-height:430px}.case-visual strong{font-size:100px}.expect-grid{grid-template-columns:1fr}.footer-top{display:block}.footer-nav{margin-top:45px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}.nav-panel{padding:100px 18px 30px}.nav-panel nav a{font-size:13vw}.why-layout h2{position:static}.ticker-track{animation-duration:28s}.cursor-dot,.cursor-ring{display:none}}

/* ——— Motion layer ——— */
html{overflow-x:clip}
.skip-link{position:absolute;left:16px;top:-48px;z-index:100;background:#fff;color:#000;padding:10px 14px;font:500 11px var(--mono);text-transform:uppercase;transition:top .2s}
.skip-link:focus{top:16px}
body{overflow-x:clip}
::selection{background:var(--burgundy);color:#fff}
.scroll-progress{display:none}
.site-header{transition:color .4s ease, background .4s ease}
.site-header.is-light{color:#000}
.site-header.is-light .menu-toggle{color:#000}
.site-header.is-light .menu-toggle i{background:#000}
.site-header.is-open,.site-header.is-open.is-light{color:#fff}
.site-header.is-open .menu-toggle{color:#fff}
.site-header.is-open .menu-toggle i{background:#fff}
.menu-toggle{transition:color .35s ease}
.menu-toggle i{transition:transform .4s ease, background .35s ease, width .35s ease}
.nav-panel{display:block;visibility:hidden;opacity:0;transform:translateY(-24px);pointer-events:none;transition:opacity .55s cubic-bezier(.16,1,.3,1),transform .55s cubic-bezier(.16,1,.3,1),visibility .55s}
.nav-panel.open{visibility:visible;opacity:1;transform:none;pointer-events:auto}
.nav-panel nav a{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),color .3s}
.nav-panel.open nav a{opacity:1;transform:none}
.nav-panel.open nav a:nth-child(1){transition-delay:.08s}
.nav-panel.open nav a:nth-child(2){transition-delay:.14s}
.nav-panel.open nav a:nth-child(3){transition-delay:.2s}
.nav-panel.open nav a:nth-child(4){transition-delay:.26s}
.nav-panel.open nav a:nth-child(5){transition-delay:.32s}
.nav-panel.open nav a:nth-child(6){transition-delay:.38s}
.nav-panel nav a:hover{color:#e7c4cb}
.nav-panel .nav-meta{opacity:0;transform:translateY(12px);transition:opacity .5s ease .3s,transform .5s ease .3s}
.nav-panel.open .nav-meta{opacity:1;transform:none}
body.nav-open{overflow:hidden}

.hero{background:#120c0f}
.hero:before{display:none}
.hero-glow{
  position:absolute;
  left:50%;
  right:-8%;
  top:-6%;
  bottom:-8%;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 18%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 18%)
}
.hero-blob{position:absolute;display:block;filter:blur(92px);will-change:transform,border-radius}
.hero-blob.a{
  width:min(66vw,740px);
  aspect-ratio:1;
  right:0;
  top:6%;
  background:radial-gradient(circle at 42% 40%,#b56b76 0%,#510e22 40%,rgba(81,14,34,0) 72%);
  border-radius:48% 52% 42% 58%/54% 44% 56% 46%;
  opacity:.95;
  animation:blob-a 18s ease-in-out infinite
}
.hero-blob.b{
  width:min(56vw,600px);
  aspect-ratio:1.08;
  right:4%;
  bottom:0;
  left:auto;
  background:radial-gradient(circle at 58% 48%,#7a2438 0%,#2a0710 48%,transparent 74%);
  border-radius:58% 42% 62% 38%/46% 58% 42% 54%;
  opacity:.82;
  animation:blob-b 24s ease-in-out infinite
}
.hero-blob.c{
  width:min(48vw,500px);
  aspect-ratio:.95;
  right:18%;
  top:24%;
  background:radial-gradient(circle at 50% 50%,#8b4a55 0%,rgba(81,14,34,.4) 48%,transparent 72%);
  border-radius:40% 60% 52% 48%/60% 40% 62% 38%;
  opacity:.6;
  animation:blob-c 15s ease-in-out infinite
}
@keyframes blob-a{
  0%,100%{transform:translate3d(0,0,0) scale(1) rotate(0deg);border-radius:48% 52% 42% 58%/54% 44% 56% 46%}
  25%{transform:translate3d(-18%,22%,0) scale(1.18) rotate(10deg);border-radius:62% 38% 58% 42%/40% 60% 38% 62%}
  50%{transform:translate3d(10%,12%,0) scale(.94) rotate(-4deg);border-radius:40% 60% 46% 54%/58% 42% 62% 38%}
  75%{transform:translate3d(-8%,-16%,0) scale(1.12) rotate(6deg);border-radius:38% 62% 44% 56%/58% 42% 64% 36%}
}
@keyframes blob-b{
  0%,100%{transform:translate3d(0,0,0) scale(1) rotate(0deg);border-radius:58% 42% 62% 38%/46% 58% 42% 54%}
  30%{transform:translate3d(-16%,-20%,0) scale(1.2) rotate(-8deg);border-radius:40% 60% 36% 64%/62% 38% 58% 42%}
  62%{transform:translate3d(12%,10%,0) scale(.9) rotate(7deg);border-radius:64% 36% 54% 46%/38% 62% 44% 56%}
}
@keyframes blob-c{
  0%,100%{transform:translate3d(0,0,0) scale(1);border-radius:40% 60% 52% 48%/60% 40% 62% 38%}
  40%{transform:translate3d(16%,18%,0) scale(1.22);border-radius:58% 42% 38% 62%/44% 56% 40% 60%}
  70%{transform:translate3d(-10%,-14%,0) scale(.88);border-radius:46% 54% 60% 40%/52% 48% 38% 62%}
}
.hero h1{font:500 clamp(64px,11vw,156px)/.82 var(--serif);letter-spacing:-.075em;text-transform:uppercase;margin:18px 0 34px}
.hero h1 .hero-pre{display:block;font-size:.42em;line-height:1;letter-spacing:-.04em;font-weight:500;margin-bottom:.18em;color:#d8c5c8}
.word-rotate{display:block;height:.86em;overflow:hidden;position:relative}
.word-rotate-inner{display:block;will-change:transform;transition:transform .85s cubic-bezier(.16,1,.3,1)}
.word-rotate-inner span{display:block;height:.86em;line-height:.86;color:#f4e6e8;white-space:nowrap}
.hero h1 em{display:block;font-size:.68em;margin-top:.06em;color:#fff;text-transform:none;letter-spacing:-.06em}
.scroll-note{animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

.page-hero,.contact-hero{position:relative;overflow:hidden}
.page-hero .container,.contact-hero .container{position:relative;z-index:1}
.page-hero:before,.contact-hero:before,
.page-hero:after,.contact-hero:after{
  content:"";
  position:absolute;
  right:-8%;
  top:50%;
  left:auto;
  pointer-events:none;
  z-index:0;
  filter:blur(80px);
  will-change:transform,border-radius
}
.page-hero:before,.contact-hero:before{
  width:min(70vw,780px);
  height:min(70vw,780px);
  background:radial-gradient(circle at 42% 40%,#c47a86 0%,#510e22 42%,transparent 70%);
  opacity:.88;
  border-radius:46% 54% 42% 58%/56% 44% 58% 42%;
  animation:blob-page 18s ease-in-out infinite
}
.page-hero:after,.contact-hero:after{
  width:min(46vw,520px);
  height:min(46vw,520px);
  right:4%;
  background:radial-gradient(circle at 50% 50%,#8b4a55 0%,rgba(81,14,34,.45) 48%,transparent 72%);
  opacity:.55;
  border-radius:40% 60% 52% 48%/60% 40% 62% 38%;
  animation:blob-page-b 22s ease-in-out infinite
}
.page-hero.section-burgundy:before,.contact-hero.section-burgundy:before{
  background:radial-gradient(circle at 40% 38%,#e7c4cb 0%,#8b4a55 38%,rgba(81,14,34,.15) 70%);
  opacity:.5
}
.page-hero.section-burgundy:after,.contact-hero.section-burgundy:after{
  background:radial-gradient(circle at 50% 50%,#f3dce0 0%,#7a2438 55%,transparent 72%);
  opacity:.28
}
.page-hero .actions{margin-top:36px}
.contact-hero,.page-hero{padding-top:clamp(200px,26vh,280px);padding-bottom:130px}
.contact-hero h1{font:500 clamp(80px,13vw,170px)/.78 var(--serif);letter-spacing:-.08em;margin:25px 0 40px}
.contact-hero p{font-size:19px;color:#c6b9bc;max-width:620px}
@keyframes blob-page{
  0%,100%{transform:translate3d(0,-50%,0) scale(1);border-radius:46% 54% 42% 58%/56% 44% 58% 42%}
  35%{transform:translate3d(-10%,-36%,0) scale(1.14);border-radius:60% 40% 58% 42%/40% 60% 38% 62%}
  65%{transform:translate3d(8%,-64%,0) scale(.9);border-radius:38% 62% 48% 52%/62% 38% 56% 44%}
}
@keyframes blob-page-b{
  0%,100%{transform:translate3d(0,-50%,0) scale(1);border-radius:40% 60% 52% 48%/60% 40% 62% 38%}
  40%{transform:translate3d(12%,-28%,0) scale(1.2);border-radius:58% 42% 38% 62%/44% 56% 40% 60%}
  72%{transform:translate3d(-8%,-70%,0) scale(.86);border-radius:46% 54% 60% 40%/52% 48% 38% 62%}
}

.btn{position:relative;overflow:hidden;transition:transform .45s cubic-bezier(.16,1,.3,1),background .35s,color .35s,border-color .35s}
.btn:hover{transform:translateY(-3px)}
.btn-light:hover{background:#f2ebe2}
.btn-outline:hover{background:#fff;color:#000}
.text-link{position:relative;display:inline-flex;align-items:center;gap:8px;transition:opacity .3s}
.text-link:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:1px;background:currentColor;transition:width .45s cubic-bezier(.16,1,.3,1)}
.text-link:hover:after{width:calc(100% - 22px)}

.process-mini{background:#0c0a0b}
.process-mini .section-heading{margin-bottom:clamp(40px,6vw,72px)}
.process-mini .section-heading h2{color:#fff}
.process-mini .text-link{color:#fff}
.process-stage{display:grid;grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr);gap:clamp(36px,6vw,88px);align-items:stretch}
.process-nav{display:flex;flex-direction:column;justify-content:center}
.process-nav button{
  appearance:none;-webkit-appearance:none;position:relative;display:grid;grid-template-columns:52px 1fr;align-items:end;gap:12px;
  width:100%;margin:0;padding:22px 8px 20px 0;border:0;border-bottom:1px solid rgba(255,255,255,.16);
  background:transparent;color:rgba(255,255,255,.38);text-align:left;cursor:pointer;
  transition:color .4s ease
}
.process-nav button:first-child{border-top:1px solid rgba(255,255,255,.16)}
.process-nav button b{font:500 11px/1 var(--mono);letter-spacing:.14em;color:#d7a8b2;padding-bottom:8px}
.process-nav button span{font:500 clamp(32px,3.6vw,52px)/.9 var(--serif);letter-spacing:-.05em}
.process-nav button:hover,.process-nav button[aria-selected="true"]{color:#fff}
.process-fill{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:#fff;transform:scaleX(0);transform-origin:left;pointer-events:none}
@keyframes process-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.process-board{
  position:relative;isolation:isolate;overflow:hidden;min-height:clamp(340px,42vw,460px);
  padding:clamp(28px,4vw,52px) clamp(28px,4.5vw,56px) clamp(32px,4vw,48px);
  border:1px solid rgba(255,255,255,.14);
  border-radius:clamp(28px,5.5vw,72px) 0 clamp(28px,5.5vw,72px) 0;
  background:linear-gradient(165deg,#1c1014 0%,#0c0a0b 58%)
}
.process-board:before{
  content:"";position:absolute;right:-18%;top:-28%;width:70%;aspect-ratio:1;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(81,14,34,.55) 0%,rgba(81,14,34,0) 68%)
}
.process-slides{position:relative;z-index:1;display:grid;min-height:100%;align-items:end}
.process-slide{
  grid-area:1/1;display:flex;flex-direction:column;justify-content:flex-end;
  opacity:0;visibility:hidden;pointer-events:none
}
.process-slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.process-stage[data-dir="next"] .process-slide.is-active{animation:process-in-next .9s cubic-bezier(.16,1,.3,1) both}
.process-stage[data-dir="prev"] .process-slide.is-active{animation:process-in-prev .9s cubic-bezier(.16,1,.3,1) both}
@keyframes process-in-next{from{opacity:0;transform:translate3d(0,32px,0)}to{opacity:1;transform:none}}
@keyframes process-in-prev{from{opacity:0;transform:translate3d(0,-24px,0)}to{opacity:1;transform:none}}
.process-mark{
  position:absolute;right:4%;top:-6%;z-index:0;
  font:500 clamp(120px,16vw,220px)/.7 var(--serif);letter-spacing:-.08em;
  color:rgba(227,196,202,.12);pointer-events:none;user-select:none
}
.process-slide.is-active .process-mark{animation:process-mark .95s cubic-bezier(.16,1,.3,1) both}
@keyframes process-mark{from{opacity:0;transform:translate3d(8%,4%,0) scale(.92)}to{opacity:1;transform:none}}
.process-index{position:relative;z-index:1;font:500 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#e4c4cb;margin:0 0 14px}
.process-headline{position:relative;z-index:1;overflow:hidden;font:500 clamp(40px,5.4vw,72px)/.92 var(--serif);letter-spacing:-.05em;color:#fff;margin:0 0 18px}
.process-headline span{display:block;transform:translateY(110%);transition:none}
.process-slide.is-active .process-headline span{transform:none;transition:transform .9s cubic-bezier(.16,1,.3,1) .08s}
.process-body{position:relative;z-index:1;margin:0;max-width:38ch;font-size:clamp(16px,1.45vw,19px);line-height:1.6;color:#f0e8ea}
.process-mini .step-tags{position:relative;z-index:1;margin-top:28px;flex-wrap:wrap}
.process-mini .step-tags span{
  border-color:rgba(255,255,255,.28);color:#f3ecee;
  opacity:0;transform:translateY(10px)
}
.process-slide.is-active .step-tags span{
  opacity:1;transform:none;
  transition:opacity .5s ease calc(var(--i,0) * 90ms + 280ms),transform .5s ease calc(var(--i,0) * 90ms + 280ms)
}

@media(max-width:800px){
  .process-stage{grid-template-columns:1fr;gap:28px}
  .process-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
  .process-nav button,.process-nav button:first-child{border-top:0;grid-template-columns:1fr;padding:10px 10px 16px 0}
  .process-nav button span{font-size:clamp(22px,7vw,32px)}
  .process-board{min-height:320px;padding:28px 22px 26px}
  .process-headline{font-size:clamp(34px,10vw,48px)}
  .process-mark{font-size:128px;right:0;top:-12px}
}
@media(prefers-reduced-motion:reduce){
  .process-stage{display:flex;flex-direction:column;gap:0}
  .process-nav,.process-fill,.process-mark{display:none}
  .process-board{padding:0;border:0;min-height:0;background:transparent;border-radius:0}
  .process-board:before{display:none}
  .process-slides{display:flex;flex-direction:column;gap:42px}
  .process-slide,.process-slide.is-active{
    position:relative;opacity:1 !important;visibility:visible !important;pointer-events:auto;
    animation:none !important;transform:none !important
  }
  .process-headline span,.process-mini .step-tags span{
    transform:none !important;opacity:1 !important;transition:none !important
  }
}

.service-card{transition:background .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1),color .45s}
.service-card h3{font-size:clamp(26px,2.1vw,34px)}
@media(max-width:1100px){
  .service-grid{grid-template-columns:repeat(3,1fr)}
  .service-card:nth-child(3n+1){border-left:1px solid var(--darkline)}
}
.service-card:hover{background:var(--burgundy);color:#fff;transform:translateY(-10px)}
.service-card:hover .num,.service-card:hover p{color:#e7c4cb}
.service-card .arrow{transition:transform .45s cubic-bezier(.16,1,.3,1)}
.service-card:hover .arrow{transform:translate(4px,-4px)}

.case-photo,.case-visual-photo{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.case-card.has-photo:before,.case-visual.has-photo:before{opacity:.55}
.portrait-large.has-photo,.portrait-placeholder.has-photo{background-size:cover;background-position:center}
.portrait-large.has-photo:before,.portrait-placeholder.has-photo:before{background:linear-gradient(to top,rgba(16,8,10,.7),transparent 50%);mix-blend-mode:normal}
.case-card{color:#fff;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.case-card span{color:rgba(255,255,255,.82)}
.case-card h3{color:#fff}
.case-card:before{transform:scale(var(--zoom,1.001));transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.case-card:hover{transform:translateY(-8px) scale(.985)}
.case-card:hover:before{transform:scale(1.08)}
.case-visual{transition:transform .8s cubic-bezier(.16,1,.3,1)}
.case-visual:before{transform:scale(var(--zoom,1));transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.case-large:hover .case-visual:before{transform:scale(1.07)}

.package{transition:transform .5s cubic-bezier(.16,1,.3,1),background .45s}
.package:hover{transform:translateY(-8px)}
.package.featured{position:relative}
.package.featured:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.22);pointer-events:none}

.why-layout h2{position:sticky;top:148px}
.value-grid>div,.expect-grid>div{transition:transform .45s cubic-bezier(.16,1,.3,1),background .45s}
.value-grid>div:hover,.expect-grid>div:hover{transform:translateY(-6px);background:#3a0a18}

.ticker{overflow:hidden;background:#000;color:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0}
.ticker.ticker-light{background:var(--beige);color:var(--ink);border-color:var(--darkline)}
.ticker-track{display:flex;width:max-content;gap:0;animation:ticker 36s linear infinite;font:500 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.16em}
.ticker-track span{padding:0 28px;white-space:nowrap}
.ticker-track span:after{content:"";display:inline-block;width:6px;height:6px;margin-left:28px;border-radius:50%;background:var(--accent);vertical-align:middle}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.portrait-placeholder,.portrait-large{will-change:transform}
.portrait-placeholder span,.portrait-large span{transition:transform 1s cubic-bezier(.16,1,.3,1)}
.about-teaser:hover .portrait-placeholder span,.about-story:hover .portrait-large span{transform:scale(1.04)}

.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:80;border-radius:50%;transform:translate(-50%,-50%);opacity:0}
.cursor-dot{width:6px;height:6px;background:#fff;mix-blend-mode:difference}
.cursor-ring{width:36px;height:36px;border:1px solid rgba(255,255,255,.55);transition:width .35s ease,height .35s ease,background .35s ease,border-color .35s ease,opacity .3s}
body.has-cursor .cursor-dot,body.has-cursor .cursor-ring{opacity:1}
body.has-cursor{cursor:none}
body.has-cursor a,body.has-cursor button{cursor:none}
.cursor-ring.is-hover{width:64px;height:64px;background:rgba(81,14,34,.18);border-color:transparent}

.js .hero-copy > *:not(.is-shown),
.js .hero-side:not(.is-shown),
.js .scroll-note:not(.is-shown),
.js .page-hero .container > *:not(.is-shown),
.js .contact-hero .container > *:not(.is-shown),
.js [data-reveal]:not(.is-shown),
.js .section-heading:not(.is-shown),
.js .service-card:not(.is-shown),
.js .case-card:not(.is-shown),
.js .why-layout > *:not(.is-shown),
.js .why-list div:not(.is-shown),
.js .about-grid > *:not(.is-shown),
.js .process-stage:not(.is-shown),
.js .package:not(.is-shown),
.js .value-grid > div:not(.is-shown),
.js .timeline-item:not(.is-shown),
.js .approach-step:not(.is-shown),
.js .service-detail:not(.is-shown),
.js .case-large:not(.is-shown),
.js .expect-grid > div:not(.is-shown),
.js .contact-grid > *:not(.is-shown),
.js .final-cta-copy > *:not(.is-shown),
.js .final-cta-photo:not(.is-shown),
.js .statement-grid > *:not(.is-shown),
.js .about-story-grid > *:not(.is-shown),
.js .case-note .container > *:not(.is-shown),
.js .contact-bottom .container > *:not(.is-shown),
.js .footer-top > *:not(.is-shown){
  opacity:0;
  transform:translate3d(0,48px,0);
  filter:blur(8px);
  transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1),filter .9s ease;
  transition-delay:var(--d,0ms)
}
.js .is-in:not(.is-shown){
  opacity:1;
  transform:none;
  filter:none
}

@media (max-width:800px){
  .why-layout h2{position:static}
  .hero h1 .hero-pre{font-size:.38em}
  .js .hero-copy > *:not(.is-shown),
  .js .page-hero .container > *:not(.is-shown),
  .js .contact-hero .container > *:not(.is-shown){filter:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-glow,.hero-blob,.page-hero:before,.page-hero:after,.contact-hero:before,.contact-hero:after,.scroll-note,.ticker-track,.hero > .grain:after,.process-fill{animation:none !important}
  .word-rotate-inner,.nav-panel,.nav-panel nav a,.btn,.service-card,.case-card{transition:none !important}
  .js .hero-copy > *,
  .js .hero-side,
  .js .scroll-note,
  .js .page-hero .container > *,
  .js .contact-hero .container > *,
  .js [data-reveal],
  .js .section-heading,
  .js .service-card,
  .js .case-card,
  .js .why-layout > *,
  .js .why-list div,
  .js .about-grid > *,
  .js .process-stage,
  .js .package,
  .js .value-grid > div,
  .js .timeline-item,
  .js .approach-step,
  .js .service-detail,
  .js .case-large,
  .js .expect-grid > div,
  .js .contact-grid > *,
  .js .final-cta-copy > *,
  .js .final-cta-photo,
  .js .statement-grid > *,
  .js .about-story-grid > *,
  .js .case-note .container > *,
  .js .contact-bottom .container > *,
  .js .footer-top > *{
    opacity:1 !important;
    transform:none !important;
    filter:none !important
  }
  .page-loader,.grain{display:none !important}
  html.is-booting::before{display:none !important}
}

.section-burgundy h1 em,
.section-burgundy h2 em,
.why h2 em,
.final-cta h2 span{
  color:var(--accent-soft);
  font-weight:500
}

.hero,.page-hero,.contact-hero,.final-cta{isolation:isolate}
.grain{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.2;
  mix-blend-mode:overlay;
  background:url("../img/grain.svg") repeat;
  background-size:180px
}
.hero > .grain{
  opacity:.5;
  z-index:1;
  background-size:90px;
  mix-blend-mode:overlay
}
.hero > .grain:after{
  content:"";
  position:absolute;
  inset:-40%;
  background:url("../img/grain.svg") repeat;
  background-size:55px;
  opacity:.7;
  mix-blend-mode:overlay;
  animation:grain-shift 9s steps(4) infinite
}
@keyframes grain-shift{
  0%{transform:translate(0,0)}
  25%{transform:translate(-2.4%,1.8%)}
  50%{transform:translate(1.6%,-2.8%)}
  75%{transform:translate(-1.2%,2.2%)}
  100%{transform:translate(0,0)}
}
.page-hero > .grain,.contact-hero > .grain{opacity:.34;background-size:110px}
.section-black > .grain{opacity:.14}
.final-cta > .grain{opacity:.22}
.page-hero .container,.contact-hero .container,.final-cta .container{position:relative;z-index:2}

.final-cta-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(220px,380px);
  align-items:center;
  gap:clamp(28px,5vw,72px)
}
.final-cta-photo{
  position:relative;
  z-index:2;
  width:100%;
  max-width:380px;
  aspect-ratio:4/5;
  overflow:hidden;
  justify-self:end;
  background:#1a1013
}
.final-cta-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 14%;
  display:block
}
@media(max-width:800px){
  .final-cta-grid{grid-template-columns:1fr}
  .final-cta-photo{max-height:48vh;justify-self:start}
}

html.is-booting:not(.is-ready){overflow:hidden}
html.is-booting:not(.is-ready)::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:229;
  background:var(--burgundy);
  pointer-events:none
}
body.is-loading,body.is-leaving{overflow:hidden}

.page-loader{
  position:fixed;
  inset:0;
  z-index:250;
  display:grid;
  place-items:center;
  background:var(--burgundy);
  overflow:hidden;
  pointer-events:auto
}
.page-loader.is-covering{
  animation:loader-cover .42s cubic-bezier(.16,1,.3,1) both
}
.loader-hole{
  position:absolute;
  left:50%;
  top:50%;
  width:220px;
  height:220px;
  border-radius:50%;
  transform:translate(-50%,-50%);
  pointer-events:none
}
.loader-mark{
  position:relative;
  z-index:2;
  width:min(220px,58vw);
  aspect-ratio:1;
  transition:opacity .28s ease,transform .45s cubic-bezier(.16,1,.3,1)
}
.loader-logo-wrap{
  position:relative;
  overflow:hidden;
  width:100%;
  height:100%;
  border-radius:50%;
  background:var(--burgundy);
  display:grid;
  place-items:center
}
.loader-logo{width:72%;height:auto;display:block;mix-blend-mode:screen}
.page-loader .loader-fill{
  position:absolute;
  inset:0;
  background:#f2ebe2;
  transform:translateY(101%);
  mix-blend-mode:overlay;
  pointer-events:none;
  border-radius:50%;
  transition:transform .82s cubic-bezier(.16,1,.3,1)
}
.page-loader.is-filling .loader-fill,
.page-loader.is-filled .loader-fill{transform:translateY(0)}
.page-loader.is-filled:not(.is-filling) .loader-fill{transition:none}
.page-loader.is-exit-mark .loader-mark{
  opacity:0;
  transform:scale(.88)
}
.page-loader.is-opening{
  background:transparent
}
.page-loader.is-opening .loader-hole{
  background:transparent;
  box-shadow:0 0 0 200vmax var(--burgundy);
  animation:loader-open .92s cubic-bezier(.76,0,.24,1) forwards
}
.page-loader.is-opening .loader-mark{opacity:0}
.page-loader.is-done{visibility:hidden}
@keyframes loader-cover{
  from{clip-path:circle(0 at 50% 50%)}
  to{clip-path:circle(150vmax at 50% 50%)}
}
@keyframes loader-open{
  from{width:220px;height:220px}
  to{width:280vmax;height:280vmax}
}

.logo{display:flex;align-items:center}
.logo img{height:84px;width:auto;display:block;mix-blend-mode:screen}
.site-header.is-light .logo img{filter:invert(1);mix-blend-mode:multiply}
.site-header.is-open .logo img,.site-header.is-open.is-light .logo img{filter:none;mix-blend-mode:screen}
.footer-bottom span{display:flex;align-items:center;gap:10px}
.footer-bottom img{height:44px;width:auto;mix-blend-mode:screen}

.hero-home{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(240px,.72fr);
  align-items:center;
  gap:clamp(28px,5vw,72px);
  min-height:100svh;
  padding:148px 7vw 80px
}
.hero-home .hero-copy{padding:0;max-width:720px}
.hero-home .hero-glow{z-index:0}
.hero-home:after{opacity:.55}
.hero-portrait{
  position:relative;
  z-index:2;
  width:min(100%,420px);
  justify-self:end;
  aspect-ratio:4/5;
  overflow:hidden;
  background:#1a1013
}
.hero-portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 18%;
  display:block
}
.hero-home .scroll-note{z-index:3;left:7vw}

.page-hero:has(.page-hero-photo),
.contact-hero:has(.page-hero-photo){
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(220px,400px);
  align-items:center;
  gap:clamp(28px,5vw,72px);
  padding-top:clamp(168px,20vh,230px);
  padding-bottom:clamp(72px,10vh,110px);
  padding-left:max(32px,calc((100vw - 1180px)/2));
  padding-right:max(32px,calc((100vw - 1180px)/2));
  box-sizing:border-box
}
.page-hero:has(.page-hero-photo) .container,
.contact-hero:has(.page-hero-photo) .container{
  width:auto;
  max-width:none;
  margin:0;
  padding-right:0;
  z-index:3
}
.page-hero-photo{
  position:relative;
  right:auto;
  bottom:auto;
  z-index:2;
  width:100%;
  max-height:min(68vh,540px);
  aspect-ratio:4/5;
  overflow:hidden;
  pointer-events:auto;
  justify-self:end;
  background:#1a1013
}
.page-hero-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 18%;
  display:block
}
.page-hero-photo.is-bts img{object-position:52% 42%}
.page-hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.28),transparent 42%);pointer-events:none}

.portrait-placeholder img,.portrait-large img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 16%;z-index:0}
.portrait-placeholder.has-photo span,.portrait-large.has-photo span{display:none}
.portrait-placeholder.has-photo:before,.portrait-large.has-photo:before{background:linear-gradient(to top,rgba(16,8,10,.62),transparent 48%);mix-blend-mode:normal;z-index:1}
.portrait-placeholder.has-photo small,.portrait-large.has-photo small{position:relative;z-index:2;color:#fff}

@media(max-width:980px){
  .hero-home{
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    align-items:stretch;
    gap:36px;
    padding:140px 24px 72px;
    min-height:100svh
  }
  .hero-home .hero-copy{max-width:none}
  .hero-portrait{width:min(100%,360px);max-height:46vh;justify-self:start;align-self:flex-start}
  .page-hero:has(.page-hero-photo),
  .contact-hero:has(.page-hero-photo){
    grid-template-columns:1fr;
    padding-left:24px;
    padding-right:24px;
    padding-bottom:72px
  }
  .page-hero-photo{
    width:min(100%,380px);
    max-height:52vh;
    justify-self:start
  }
  .page-hero .container,.contact-hero .container{padding-right:0}
}
@media(max-width:800px){
  .page-hero-photo{display:block;width:100%;max-height:48vh}
  .logo img{height:68px}
  .hero-home{padding:128px 18px 56px}
  .hero-portrait{width:100%;max-height:42vh;aspect-ratio:4/5}
  .actions{flex-wrap:wrap;gap:16px}
}

/* Display mix: Montserrat UI + Cormorant Garamond headlines / accents */
h1,h2,h3{
  letter-spacing:-.03em;
  text-wrap:balance;
  overflow-wrap:normal;
  hyphens:manual
}
.process-headline{
  letter-spacing:-.05em;
  white-space:normal;
  text-wrap:balance
}
.nav-panel nav a{letter-spacing:-.03em}

.hero h1{
  font-size:clamp(52px,8.6vw,128px);
  line-height:.92
}
.page-hero h1,
.contact-hero h1{
  font-size:clamp(52px,8.4vw,120px);
  line-height:.94;
  max-width:18ch
}
.final-cta h2,
.footer-top h2{
  font-size:clamp(52px,9vw,132px);
  line-height:.94
}
.statement h2,
.why h2,
.about-teaser h2,
.about-story h2,
.section-heading h2,
.case-copy h2,
.packages h2,
.case-note h2,
.contact-info h2,
.contact-bottom h2,
.approach-step h2{
  font-size:clamp(36px,4.2vw,64px);
  line-height:1.06
}
.hero h1 em,
.page-hero h1 em,
.contact-hero h1 em,
.about-teaser h2 span,
.about-story h2 span,
.cases-teaser h2 span,
.process-mini h2 span,
.final-cta h2 span,
.footer-top h2 span{
  font-family:var(--serif);
  font-style:italic;
  font-weight:500;
  letter-spacing:-.02em;
  white-space:nowrap
}
.statement h2 span,
.why h2 em,
.case-note h2 span,
.contact-info h2 span,
.contact-bottom h2 span,
.packages h2 span{
  font-family:var(--serif);
  font-style:italic;
  font-weight:500;
  letter-spacing:-.02em
}

@media(max-width:800px){
  .statement h2,
  .why h2,
  .about-teaser h2,
  .about-story h2,
  .section-heading h2,
  .case-copy h2,
  .packages h2,
  .case-note h2,
  .contact-info h2,
  .contact-bottom h2,
  .approach-step h2{
    font-size:clamp(36px,10vw,56px);
    line-height:1.08
  }
  .hero h1,
  .page-hero h1,
  .contact-hero h1{
    font-size:clamp(44px,12vw,72px);
    line-height:.96;
    max-width:none
  }
  .final-cta h2,
  .footer-top h2{
    font-size:clamp(48px,14vw,88px);
    line-height:.96
  }
}

@media(max-width:520px){
  .hero h1 em,
  .page-hero h1 em,
  .contact-hero h1 em,
  .about-teaser h2 span,
  .about-story h2 span,
  .cases-teaser h2 span,
  .process-mini h2 span,
  .final-cta h2 span,
  .footer-top h2 span{
    white-space:normal
  }
}

.hero-portrait img,
.page-hero-photo img,
.portrait-large img,
.portrait-placeholder img,
.final-cta-photo img{
  transition:transform 1.05s cubic-bezier(.16,1,.3,1)
}
.hero-portrait:hover img,
.page-hero-photo:hover img,
.portrait-large:hover img,
.portrait-placeholder:hover img,
.final-cta-photo:hover img{
  transform:scale(1.07)
}

.about-story-grid{
  grid-template-columns:minmax(240px,.88fr) minmax(0,1.12fr);
  gap:clamp(36px,6vw,88px);
  align-items:center
}
.about-story .portrait-large{
  width:100%;
  max-width:480px
}
.about-story .portrait-large img{
  object-position:50% 12%
}

@media(max-width:800px){
  .about-story-grid{grid-template-columns:1fr;gap:36px}
  .about-story .portrait-large{max-width:none}
}

.hero-portrait,
.page-hero-photo,
.portrait-placeholder,
.portrait-large,
.final-cta-photo,
.case-card,
.case-visual{
  border-radius:clamp(28px,5.5vw,72px) 0 clamp(28px,5.5vw,72px) 0
}

@media (prefers-reduced-motion:reduce){
  .hero-portrait img,
  .page-hero-photo img,
  .portrait-large img,
  .portrait-placeholder img,
  .final-cta-photo img{
    transition:none !important;
    transform:none !important
  }
}

