/* Generated by scripts/prepare-delivery.py; edit the original CSS sources. */

/* refinements.css */
/* Allow room for ascenders, descenders and italic overhangs. */
.water-light {
  opacity:.34;
  filter:url(#water-ripple) blur(.7px) saturate(.45) brightness(1.12);
  mask-image:radial-gradient(ellipse 60% 70% at 77% 30%,#000 10%,rgba(0,0,0,.75) 48%,transparent 85%);
  -webkit-mask-image:radial-gradient(ellipse 60% 70% at 77% 30%,#000 10%,rgba(0,0,0,.75) 48%,transparent 85%);
  animation:reflection-loop 12s ease-in-out infinite;
}
@keyframes reflection-loop {
  0%,100% { opacity:.27; transform:scale(1.035) translate3d(-.7%,.3%,0); }
  50% { opacity:.42; transform:scale(1.055) translate3d(.7%,-.45%,0); }
}
.practical-scene .scene-inner { padding:0; }
.practical-frame { display:grid; align-items:center; min-height:0; }
.practical-photo { object-position:72% center; filter:saturate(.35) brightness(.7) contrast(.92) blur(var(--practical-blur,0px)); }
.practical-frame::after { background:linear-gradient(90deg,rgba(24,22,23,.83) 0%,rgba(24,22,23,.64) 48%,rgba(24,22,23,.3) 100%); }
.practical-lines { width:auto; height:auto; margin:0; padding:118px clamp(28px,5.5vw,88px) clamp(34px,5.3vh,64px); gap:clamp(12px,2vh,24px); }
/* One display family carries the photo into its attached statement. */
.practical-lines .line-mask { align-self:flex-start; padding:.08em .12em .12em 0; overflow:visible; }
.practical-line.serif, .practical-line.sans {
  padding:.04em .12em .08em 0;
  color:var(--paper);
  font:500 clamp(3rem,6.1vw,6.6rem)/1.08 "Newsreader",Georgia,serif;
  letter-spacing:-.045em;
  text-transform:none;
}
.practical-line.serif { font-style:italic; font-weight:450; }
.quote-mark, .quote-plate { display:none; }
.practical-lines { will-change:opacity,transform,filter; }
.practical-personal {
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  align-items:center;
  padding:100px clamp(28px,5.5vw,88px) 64px;
  color:var(--paper);
  opacity:0;
  visibility:hidden;
  will-change:opacity,transform,filter;
}
.practical-personal h2 {
  max-width:940px;
  font:500 clamp(2.4rem,4.2vw,4.6rem)/1.12 "Newsreader",Georgia,serif;
  letter-spacing:-.04em;
  text-wrap:balance;
}
.practical-personal em { font-weight:450; }
/* The photo carries both statements before services enter. */
.services { z-index:25; isolation:isolate; margin-top:0; border:0; border-radius:0; box-shadow:none; }
.services-heading { transform:translate3d(0,var(--heading-shift,0px),0); }
.service-card--seo .service-media img { object-position:center; }
.about-index::after { display:none; }
.about-body { border-top:0; padding-top:0; }
.about-copy h2 { line-height:1.03; padding:.06em 0; }
.about { padding-top:110px; padding-bottom:160px; overflow:hidden; }
.about-grid { grid-template-columns:1fr 1fr; align-items:center; gap:clamp(60px,9vw,145px); }
.about-photos { position:relative; max-width:490px; width:90%; margin-left:2%; padding-bottom:50px; }
.about-photo-main { margin:0; aspect-ratio:3/4; overflow:hidden; transform:translate3d(0,var(--portrait-travel,0px),0) rotate(-3deg); }
.about-photo-main img { width:100%; height:100%; object-fit:cover; object-position:50% 65%; }
.about-photo-detail { position:absolute; right:-13%; bottom:0; width:47%; margin:0; padding:9px 9px 16px; background:var(--paper); color:var(--ink); box-shadow:0 20px 45px #0003; transform:translate3d(0,var(--detail-travel,0px),0) rotate(var(--detail-turn,5deg)); }
.about-detail-window { aspect-ratio:1; overflow:hidden; }
.about-detail-window img { width:100%; height:100%; object-fit:cover; object-position:40% 70%; transform:scale(2); transform-origin:38% 72%; }
.about-photo-detail figcaption { padding-top:13px; font:italic 500 clamp(.8rem,1.3vw,1.2rem)/1.2 "Newsreader",Georgia,serif; text-align:center; }
.about-eyebrow { margin-bottom:20px; font-size:1rem; color:var(--stone-accent); }
.about-copy h2 { font-size:clamp(3.2rem,5.7vw,6rem); }
.about-copy h2 em { display:block; }
.about-body { display:block; margin-top:28px; max-width:480px; }
.about-body p + p { margin-top:20px; }
.about-signoff { display:block; margin-top:28px; font:italic 400 2.5rem/1.2 "Newsreader",Georgia,serif; color:var(--stone-accent); }
.about-signoff small { display:block; margin-top:6px; font:400 .8rem/1.5 "Instrument Sans",Arial,sans-serif; color:#d4d0cc; }

.pricing { padding-top:clamp(76px,8vw,120px); padding-bottom:clamp(80px,9vw,132px); }
.pricing-shell { display:block; max-width:1100px; }
.pricing-intro { text-align:center; max-width:790px; margin:0 auto 34px; }
.pricing-intro h2 { max-width:none; font-size:clamp(3rem,5.6vw,5.8rem); line-height:1.06; }
.pricing-intro > p:last-child { margin:22px auto 0; max-width:620px; }
.founding-banner { display:flex; justify-content:center; flex-wrap:wrap; gap:8px 22px; margin:0 auto 24px; padding:14px 22px; background:var(--stone-accent); text-align:center; font-size:.88rem; line-height:1.5; }
.founding-banner span:first-child { font-weight:700; }
.price-options { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.price-card { display:flex; flex-direction:column; align-self:stretch; padding:clamp(26px,3vw,40px); border-top:0; }
.price-card h3 { margin:22px 0 0; font:500 clamp(2rem,3.2vw,3.1rem)/1.1 "Newsreader",Georgia,serif; letter-spacing:-.035em; }
.price-card .price { margin:18px 0 20px; font:500 clamp(1.5rem,2.5vw,2.3rem)/1.2 "Instrument Sans",Arial,sans-serif; letter-spacing:-.05em; }
.price span { font-size:.75rem; letter-spacing:.02em; }
.price-label { font-size:.75rem; letter-spacing:.09em; }
.price-note, .price-list li { font-size:1rem; }
.price-list { margin:25px 0 32px; }
.price-card .text-link { align-self:start; margin-top:auto; font-size:.78rem; letter-spacing:.05em; }
.price-card--premium { background:var(--ink); color:var(--paper); }
.price-card--premium .price-label { color:var(--stone-accent); }
.price-card--premium .price-note { color:#d4d0cc; }
.price-card--premium .price-list, .price-card--premium .price-list li { border-color:#454143; }
.pricing-footnote { max-width:720px; margin:24px auto 0; color:#655d59; text-align:center; font-size:.875rem; line-height:1.6; }
.pricing { position:relative; z-index:4; margin-top:-30px; border-radius:30px 30px 0 0; }
.pricing-shell { transform:translate3d(0,var(--pricing-rise,0px),0); }
.founding-banner { display:block; overflow:hidden; padding:14px 0; }
.founding-track { display:flex; width:max-content; animation:founding-scroll 26s linear infinite; }
.founding-group { display:flex; flex-shrink:0; align-items:center; gap:52px; padding-right:52px; }
.founding-group span { display:block; white-space:nowrap; font-size:.875rem; line-height:1.5; }
.founding-group span:nth-child(odd) { font-weight:700; }
@keyframes founding-scroll { to { transform:translateX(-50%); } }
.founding-banner:hover .founding-track { animation-play-state:paused; }
.price-options { gap:28px; padding:12px 0; }
.price-card { border-radius:18px; border:1px solid #18161712; box-shadow:0 12px 35px #18161706; transform:translate3d(0,var(--card-rise,0px),0) rotate(var(--card-turn,0deg)); transform-origin:50% 75%; }
.price-card--premium { border-color:#454143; }
.price-card h3 { margin-top:16px; }
.price-list li::before { display:none; }
.price-list li { padding-left:0; }
.pink-link { display:inline-flex; justify-content:center; align-items:center; gap:18px; padding:16px 22px; background:var(--stone-accent); color:var(--ink); font-size:.94rem; font-weight:600; line-height:1.4; text-decoration:none; transition:background .25s,transform .35s cubic-bezier(.22,1,.36,1); }
.pink-link:hover { background:#e5e3dd; transform:translateY(-3px); }
.pink-link span { display:inline-block; transition:transform .35s; }
.pink-link:hover span { transform:translate(3px,-3px); }
.closing { padding:0; }
.closing-frame { min-height:0; height:auto; aspect-ratio:1942/809; }
.closing-frame img { object-fit:contain; }
.closing-link { right:5.5%; bottom:8%; }
.site-footer { padding-top:clamp(64px,7vw,110px); }
.footer-main { display:grid; grid-template-columns:1.4fr .8fr 1fr; gap:50px; max-width:1450px; margin:0 auto 70px; }
.footer-signature { display:inline-block; text-decoration:none; font:500 clamp(3.5rem,6vw,6.6rem)/.86 "Newsreader",Georgia,serif; letter-spacing:-.065em; }
.footer-signature em { font-weight:450; }
.footer-intro p { margin-top:28px; color:#655d59; font-size:1rem; line-height:1.6; }
.footer-main h2 { margin-bottom:25px; font-size:.875rem; font-weight:650; letter-spacing:.01em; }
.footer-nav { display:flex; flex-direction:column; align-items:start; gap:16px; }
.footer-nav h2 { margin-bottom:9px; }
.footer-nav a { font-size:.95rem; text-decoration:none; text-underline-offset:5px; }
.footer-nav a:hover { text-decoration:underline; }
.footer-contact p { margin-bottom:22px; max-width:350px; color:#655d59; font-size:1rem; line-height:1.6; }
.footer-row { font-size:.75rem; letter-spacing:.035em; }

@media(min-width:861px) and (max-height:750px) {
  .practical-line.serif, .practical-line.sans { font-size:min(6vw,10vh); }
  .practical-lines { gap:8px; padding-top:100px; }
}
@media(max-width:860px) {
  .about { padding:80px 24px 110px; }
  .about-grid { grid-template-columns:1fr; gap:72px; }
  .about-photos { width:78%; max-width:390px; margin:0 auto; }
  .about-copy { max-width:570px; }
  .about-copy h2 { font-size:clamp(3rem,11vw,5.2rem); }
  .about-body { display:block; }
  .pricing { border-radius:24px 24px 0 0; }
  .story { height:auto; }
  .practical-scene .scene-inner { padding:0; min-height:0; }
  .has-motion .practical-scene { height:160svh; overflow:visible; }
  .has-motion .practical-scene .scene-inner { height:100%; }
  .practical-frame { min-height:82svh; }
  .has-motion .practical-frame { position:sticky; top:0; height:82svh; }
  .practical-personal { padding:64px 24px; }
  .practical-personal h2 { font-size:clamp(2rem,6.7vw,3.4rem); line-height:1.15; }
  .practical-lines { width:100%; padding:80px 20px; gap:16px; }
  .line-mask { width:auto; max-width:100%; }
  .practical-line.serif, .practical-line.sans { font-size:clamp(2.3rem,8.6vw,4.5rem); }
  .services { margin-top:0; border-radius:0; box-shadow:none; }
  .pricing-intro h2 { font-size:clamp(3rem,9vw,4.8rem); }
  .price-card h3 { font-size:2.1rem; }
  .price-card .price { font-size:1.7rem; }
  .price-card { padding:26px; }
  .footer-main { grid-template-columns:1fr 1fr; gap:45px 28px; }
  .footer-intro { grid-column:1/-1; }
  .closing-frame { aspect-ratio:auto; padding-bottom:88px; background:#d7dfdb; }
  .closing-frame img { position:relative; display:block; height:auto; width:100%; transform:none; }
  .closing-frame::after { display:none; }
  .closing-link { bottom:18px; right:20px; }
}
@media(max-width:620px) {
  .price-options { grid-template-columns:1fr; gap:16px; }
  .price-card { margin:0; }
  .founding-banner { display:block; }
  .founding-banner span + span { margin-top:0; }
  .footer-main { grid-template-columns:1fr; }
  .footer-contact p { max-width:390px; }
}
@media(prefers-reduced-motion:reduce) {
  .water-light, .founding-track { animation:none; }
  .water-light { filter:blur(.7px) saturate(.45); }
  .about-photo-main { transform:rotate(-3deg); }
  .about-photo-detail { transform:rotate(4deg); }
  .pricing-shell, .price-card { transform:none; }
  .story { height:auto; }
  .services { margin-top:0; border-radius:0; }
  .practical-lines, .practical-personal, .services-heading { transform:none !important; opacity:1 !important; filter:none !important; }
  .practical-personal { position:relative; visibility:visible !important; padding-top:0; padding-bottom:64px; }
  .practical-lines { padding-bottom:40px; }
  .has-motion .practical-scene { height:auto; }
  .practical-frame, .has-motion .practical-frame { position:relative; height:auto; }
  .practical-photo { filter:saturate(.35) brightness(.7) contrast(.92); }
  .pink-link, .pink-link span { transition:none; }
}

/* One type and motion language from the first screen to the final invitation. */
.story { height:400vh; }
.hero .scene-inner { justify-content:center; }
.hero-intro {
  max-width:530px;
  margin:0 0 clamp(20px,3vh,32px);
  color:var(--ink);
  font:600 clamp(.86rem,1.05vw,1rem)/1.55 "Instrument Sans",Arial,sans-serif;
  letter-spacing:-.01em;
}
.hero h1 { max-width:1010px; font-size:clamp(3.9rem,6.65vw,7.1rem); line-height:.96; }
.hero h1 em { font-style:normal; font-weight:500; }
.hero-lower { display:flex; align-items:end; justify-content:space-between; gap:36px; width:min(100%,1120px); margin-top:clamp(30px,4vh,46px); }
.hero-copy { max-width:490px; font-size:clamp(1rem,1.17vw,1.15rem); line-height:1.55; font-weight:550; letter-spacing:-.018em; }
.hero-link {
  flex:none;
  padding-bottom:7px;
  border-bottom:1px solid currentColor;
  color:var(--ink);
  font:650 .82rem/1.45 "Instrument Sans",Arial,sans-serif;
  letter-spacing:.035em;
  text-decoration:none;
  transition:opacity .3s,border-color .3s;
}
.hero-link:hover { opacity:.65; }
.hero-link span { padding-left:8px; }
.practical-frame { display:flex; align-items:center; }
.practical-personal { opacity:1; visibility:visible; }
.has-motion .practical-personal { opacity:0; visibility:hidden; }
.practical-personal h2 {
  max-width:890px;
  font:500 clamp(2.75rem,5vw,5.4rem)/1.06 "Newsreader",Georgia,serif;
  letter-spacing:-.048em;
  text-wrap:balance;
}
.practical-personal h2 span { display:block; margin-top:.12em; }
.service-name a { text-decoration:none; text-underline-offset:7px; }
.service-name a:hover,.service-name a:focus-visible { text-decoration:underline; }
.about-copy h2 span { display:block; color:var(--stone-accent); }
.about-photo-detail figcaption { font-style:normal; font-weight:500; }
.about-signoff { font-style:normal; }
.footer-signature em { font-style:normal; }

@media(max-width:860px) {
  .story { height:auto; }
  .hero .scene-inner { padding-bottom:66px; }
  .hero-intro { max-width:370px; margin-bottom:23px; font-size:.86rem; line-height:1.48; }
  .hero h1 { font-size:clamp(3rem,12.8vw,5rem); line-height:.99; }
  .hero-lower { display:block; margin-top:25px; }
  .hero-copy { max-width:380px; font-size:1rem; line-height:1.52; }
  .hero-link { display:inline-block; margin-top:24px; font-size:.8rem; }
  .practical-personal { padding:72px clamp(24px,6vw,48px); }
  .practical-personal h2 { max-width:650px; font-size:clamp(2.3rem,7vw,4.1rem); line-height:1.11; }
}
@media(max-width:560px) {
  .hero .scene-inner { padding-top:120px; padding-bottom:45px; }
  .hero h1 { font-size:clamp(3.05rem,12vw,4.1rem); }
  .practical-personal h2 { font-size:clamp(2.15rem,9vw,3.4rem); }
  .services-heading h2 { line-height:1.06; }
}
@media(prefers-reduced-motion:reduce) {
  .story { height:auto; }
  .practical-personal,.has-motion .practical-personal { opacity:1 !important; visibility:visible !important; transform:none !important; filter:none !important; }
}

/* One typographic voice carries both statements across the photo change. */
@media (min-width:861px) and (prefers-reduced-motion:no-preference) {
  .story { height:480vh; }
  .services { margin-top:-100svh; }
}
.brand-statement {
  width:min(100%, 1440px);
  max-width:1440px;
  color:var(--paper);
  font:610 clamp(3.1rem,6vw,7.5rem)/.98 "Instrument Sans",Arial,sans-serif;
  letter-spacing:-.062em;
  text-transform:uppercase;
  text-wrap:balance;
}
.brand-statement .soft { color:rgba(247,243,237,.52); }
.practical-personal { padding:118px clamp(28px,5.5vw,88px) clamp(34px,5.3vh,64px); }
.practical-personal h2 {
  width:min(66vw,1180px);
  max-width:1180px;
  margin-left:auto;
  color:var(--paper);
  font-family:"Instrument Sans",Arial,sans-serif;
  font-style:normal;
  text-transform:uppercase;
  text-wrap:normal;
}
.practical-personal h2 .practical-lead {
  display:block;
  margin:0 0 clamp(25px,3.5vh,42px);
  font:650 clamp(1.05rem,1.8vw,1.75rem)/1.2 "Instrument Sans",Arial,sans-serif;
  letter-spacing:.055em;
}
.practical-personal h2 .practical-main {
  display:block;
  font:650 clamp(4rem,7vw,8.4rem)/.98 "Instrument Sans",Arial,sans-serif;
  letter-spacing:-.07em;
}
.practical-personal h2 .practical-mask { display:block; overflow:hidden; padding:.015em 0 .07em; margin:-.015em 0 -.07em; }
.practical-personal h2 .practical-word { display:block; margin:0; will-change:transform; }
.practical-personal h2 .practical-main { margin:0; }
.has-motion .practical-lead { opacity:0; }
.has-motion .practical-word { transform:translate3d(0,105%,0); }
.practical-scene,
.practical-frame { clip-path:none; }
.practical-scene { background:var(--ink); }
.practical-frame { width:100%; height:100%; }
.practical-photo { filter:grayscale(.25) saturate(.45) brightness(.6) contrast(.9) blur(var(--practical-blur,0px)); }
.practical-frame::after { background:linear-gradient(90deg,rgba(24,22,23,.82),rgba(24,22,23,.68) 55%,rgba(24,22,23,.56)); }
.services { z-index:25; padding:clamp(78px,9svh,138px) clamp(14px,1.7vw,28px) 150px; background:#fff; }
.services::before { content:"";position:absolute;left:0;right:0;top:-13svh;height:13svh;background:#fff;pointer-events:none; }
.services-heading { max-width:none;margin-bottom:clamp(32px,5vw,68px);opacity:var(--heading-opacity,1); }
.services-heading h2 {
  font:650 clamp(2.65rem,5.15vw,5.8rem)/.97 "Instrument Sans",Arial,sans-serif;
  letter-spacing:-.065em;
  text-transform:uppercase;
}

/* Service images act as the cards, with the description revealed in place. */
.service-grid {
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:clamp(18px,1.8vw,28px);
  max-width:none;
}
.service-card { grid-column:span 2; }
.service-card:not(.service-card--additional) { grid-column:span 3; }
.service-media,.service-card--additional .service-media {
  aspect-ratio:1.22;
  background:var(--ink);
  border-radius:16px;
  clip-path:inset(0 round 16px);
}
.service-card--additional .service-media { aspect-ratio:.98; }
.has-motion .service-card:not(.is-visible) .service-media { clip-path:inset(8% 0 8% round 16px); }
.service-card--brand .service-media { padding:0; }
.service-card--seo .service-media img { object-position:center 52%; }
.service-card--additional .service-name { font-size:clamp(2rem,2.8vw,3.25rem); }
.service-card--additional .service-description { font-size:clamp(1.05rem,1.4vw,1.45rem); }
.service-media::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:rgba(13,12,13,.28);
  pointer-events:none;
}
.service-media::after {
  z-index:2;
  background:rgba(16,14,15,.12);
  transition:background .48s cubic-bezier(.22,1,.36,1);
}
.service-caption {
  position:absolute;
  inset:0;
  z-index:4;
  display:grid;
  place-items:center;
  padding:0;
}
.service-toggle {
  position:absolute;
  inset:0;
  z-index:5;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
}
.service-toggle:focus-visible { outline:2px solid var(--stone-accent); outline-offset:-7px; }
.service-name {
  position:absolute;
  z-index:4;
  width:calc(100% - 36px);
  max-width:none;
  margin:0;
  padding:0 16px;
  color:var(--paper);
  font:650 clamp(2.6rem,4vw,5.4rem)/.99 "Instrument Sans",Arial,sans-serif;
  letter-spacing:-.067em;
  text-align:center;
  text-transform:uppercase;
  text-wrap:balance;
  pointer-events:none;
  transition:opacity .24s ease,transform .36s cubic-bezier(.22,1,.36,1);
}
.service-description {
  position:relative;
  z-index:4;
  width:min(82%,720px);
  max-width:none;
  max-height:none;
  margin:0;
  opacity:0;
  color:var(--paper);
  font:500 clamp(1.35rem,2vw,2.1rem)/1.42 "Instrument Sans",Arial,sans-serif;
  letter-spacing:-.034em;
  text-align:center;
  text-wrap:balance;
  transform:translateY(22px);
  pointer-events:none;
  transition:opacity .34s ease .08s,transform .48s cubic-bezier(.22,1,.36,1) .08s;
}
.service-enquire {
  position:absolute;
  bottom:clamp(25px,3vw,43px);
  left:50%;
  z-index:6;
  width:max-content;
  max-width:calc(100% - 36px);
  padding-bottom:5px;
  border-bottom:1px solid currentColor;
  color:var(--paper);
  font:650 clamp(.76rem,.9vw,.94rem)/1.4 "Instrument Sans",Arial,sans-serif;
  letter-spacing:.045em;
  text-align:center;
  text-decoration:none;
  opacity:0;
  transform:translate(-50%,12px);
  pointer-events:none;
  transition:opacity .34s ease .15s,transform .48s cubic-bezier(.22,1,.36,1) .15s;
}
.service-enquire:focus-visible { outline:2px solid var(--stone-accent); outline-offset:5px; }
@media(hover:hover) {
  .service-card:hover .service-media::after { background:rgba(7,7,8,.92); }
  .service-card:hover .service-name { opacity:0; transform:translateY(-24px); }
  .service-card:hover .service-description { opacity:1; transform:translateY(0); }
  .service-card:hover .service-enquire { opacity:1; transform:translate(-50%,0); pointer-events:auto; }
}
.service-card.is-flipped .service-media::after,
.service-card:focus-within .service-media::after { background:rgba(7,7,8,.92); }
.service-card.is-flipped .service-name,
.service-card:focus-within .service-name { opacity:0; transform:translateY(-24px); }
.service-card.is-flipped .service-description,
.service-card:focus-within .service-description { opacity:1; transform:translateY(0); }
.service-card.is-flipped .service-enquire,
.service-card:focus-within .service-enquire { opacity:1; transform:translate(-50%,0); pointer-events:auto; }

@media(max-width:860px) {
  .brand-statement { font-size:clamp(2.9rem,9vw,5.2rem); line-height:1.02; }
  .practical-scene { clip-path:none !important; }
  .practical-personal { padding:96px clamp(20px,5.5vw,48px); }
  .practical-personal h2 { width:min(76vw,650px); }
  .practical-personal h2 .practical-main { font-size:clamp(3.25rem,8.5vw,5.5rem); }
  .has-motion .practical-word { transform:none !important; }
  .has-motion .practical-lead { opacity:1 !important; transform:none !important; }
  .services { margin-top:-10svh; padding-top:68px; }
  .services::before { display:none; }
  .services-heading { opacity:1; }
  .services-heading h2 { font-size:clamp(2.45rem,7vw,4.8rem); line-height:1.02; }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .service-card,.service-card:not(.service-card--additional) { grid-column:span 1; }
  .service-card:last-child { grid-column:1/-1; }
  .service-media,.service-card--additional .service-media { aspect-ratio:.9; }
  .service-card:last-child .service-media { aspect-ratio:1.8; }
  .service-name { font-size:clamp(1.7rem,4.5vw,3.5rem); }
  .service-card--additional .service-name { font-size:clamp(1.7rem,4.5vw,3.5rem); }
  .service-description { font-size:clamp(1rem,2vw,1.5rem); }
  .service-card--additional .service-description { font-size:clamp(1rem,2vw,1.5rem); }
}
@media(max-width:560px) {
  .brand-statement { font-size:clamp(2.38rem,10.5vw,3.3rem); line-height:1.04; letter-spacing:-.055em; }
  .practical-personal { padding:88px 20px; }
  .practical-personal h2 { width:100%;margin:0; }
  .practical-personal h2 .practical-lead { font-size:clamp(.92rem,3.7vw,1.15rem); }
  .practical-personal h2 .practical-main { font-size:clamp(2.95rem,11.5vw,4.5rem); }
  .services { padding-top:56px; }
  .services-heading h2 { font-size:clamp(2.4rem,10vw,3.3rem); }
  .service-grid { display:grid; grid-template-columns:1fr;gap:18px; }
  .service-card { margin:0; }
  .service-card:last-child { grid-column:auto; }
  .service-media,.service-card--additional .service-media,.service-card:last-child .service-media { aspect-ratio:.88;min-height:390px; }
  .service-name { font-size:clamp(2.15rem,9vw,3.5rem); }
  .service-card--additional .service-name { font-size:clamp(2.15rem,9vw,3.5rem); }
  .service-description { width:min(84%,420px);font-size:clamp(1.1rem,4vw,1.55rem); }
  .service-card--additional .service-description { font-size:clamp(1.1rem,4vw,1.55rem); }
}
@media(prefers-reduced-motion:reduce) {
  .services { margin-top:0; }
  .services::before { display:none; }
  .services-heading { opacity:1; }
  .service-media::after { display:block;transition:none; }
  .service-name,.service-description,.service-enquire { transition:none; }
  .has-motion .practical-lead { opacity:1 !important;transform:none !important; }
  .has-motion .practical-word { transform:none !important; }
}


/* editorial-motion.css */
/* One display language, with changes in scale and placement doing the storytelling. */
:root {
  --display-face:"Instrument Sans",Arial,sans-serif;
  --statement-size:clamp(3.1rem,6vw,7.5rem);
}
.brand-statement,
.practical-personal h2 .practical-main {
  font:610 var(--statement-size)/1.055 var(--display-face);
  letter-spacing:-.058em;
  text-transform:uppercase;
}
.brand-statement { width:min(91vw,1480px);max-width:none; }
.brand-statement .soft { color:rgba(247,243,237,.7); }
.practical-personal {
  align-items:center;
  padding:clamp(64px,10svh,120px) clamp(28px,5.5vw,88px);
}
.practical-personal h2 {
  width:min(82vw,1700px);
  max-width:none;
  margin:6svh 0 0 auto;
  text-wrap:normal;
}
.practical-personal h2 .practical-main { display:block; }
.practical-personal h2 .practical-mask {
  display:block;
  overflow:hidden;
  padding:.065em .025em .13em;
  margin:-.065em -.025em -.13em;
}
.practical-personal h2 .practical-word {
  display:block;
  margin:0;
  white-space:nowrap;
  will-change:transform,opacity,filter;
}
.practical-personal h2 .practical-mask:first-child .practical-word { padding-left:clamp(20px,4vw,75px); }
.has-motion .practical-word { opacity:0;transform:translate3d(0,118%,0); }
.practical-frame { clip-path:inset(0 0 0 var(--practical-wipe,0%)); }
.practical-frame::after { background:linear-gradient(90deg,rgba(22,20,21,.9),rgba(22,20,21,.74) 62%,rgba(22,20,21,.54)); }

/* The portrait sits in one held frame while light replaces the charcoal. */
.about::before { display:none; }
.about-copy h2,
.pricing-intro h2,
.price-card h3,
.legal-dialog h2 {
  font-family:var(--display-face);
  font-style:normal;
  font-weight:630;
  letter-spacing:-.065em;
  text-transform:uppercase;
}
.about-copy h2 { font-size:clamp(3rem,5.65vw,6.35rem);line-height:1.04; }
.about-copy h2 span { color:inherit; }
.about-eyebrow,.about-signoff { color:rgb(var(--about-accent,222,221,216)); }
.about-signoff { font-family:var(--display-face);font-size:clamp(1.65rem,2.4vw,2.6rem);font-weight:550; }
.about-signoff small { color:rgb(var(--about-muted,215,207,205)); }
.about-body p { color:rgb(var(--about-muted,215,207,205)); }

/* The pricing title arrives on charcoal, then the paper surface rises behind it. */
.pricing {
  overflow:hidden;
  isolation:isolate;
  margin-top:0;
  padding-top:clamp(130px,21svh,225px);
  border-radius:0;
  background:var(--ink);
}
.pricing::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  background:var(--paper);
  clip-path:inset(var(--pricing-sheet,0%) 0 0 0);
  pointer-events:none;
}
.pricing-shell { position:relative;z-index:1;transform:none; }
.pricing-intro { max-width:1000px;margin-bottom:clamp(50px,7vw,105px); }
.pricing-intro h2 {
  max-width:none;
  color:rgb(var(--pricing-ink,24,22,23));
  font-size:clamp(3.2rem,6vw,7rem);
  line-height:1.03;
  opacity:var(--pricing-title-opacity,1);
  transform:translate3d(0,var(--pricing-title-y,0px),0) scale(var(--pricing-title-scale,1));
  transform-origin:50% 65%;
  will-change:transform,opacity;
}
.pricing-intro > p:last-child { color:rgb(var(--pricing-muted,94,87,84));font-size:clamp(1rem,1.22vw,1.18rem); }
.founding-banner { margin-bottom:clamp(32px,4vw,58px);padding:16px 0; }
.founding-group { gap:clamp(18px,2vw,28px);padding-right:clamp(18px,2vw,28px); }
.founding-group span { font:650 clamp(1.05rem,1.4vw,1.45rem)/1.2 var(--display-face);letter-spacing:-.035em;white-space:nowrap; }
.price-card {
  opacity:var(--card-opacity,1);
  transform:translate3d(0,var(--card-rise,0px),0);
  will-change:transform,opacity;
}
.price-card h3 { font-size:clamp(2rem,3.25vw,3.4rem);line-height:1.06; }

/* The existing hand-lettered glass grows as one photographic scene. */
.closing { background:var(--paper); }
.closing-frame { background:#b8c3bf; }
.footer-oversize {
  max-width:1450px;
  margin:0 auto 28px;
  overflow:clip;
  color:var(--ink);
  font:650 clamp(4.25rem,10vw,10.5rem)/.98 var(--display-face);
  letter-spacing:-.09em;
  text-align:center;
  white-space:nowrap;
}
.footer-oversize span {
  display:block;
  padding:.04em .02em .11em;
  transform:translate3d(0,var(--footer-word-rise,0px),0) scale(var(--footer-word-scale,1));
  transform-origin:50% 100%;
  will-change:transform;
}

@media(min-width:861px) and (prefers-reduced-motion:no-preference) {
  .about { height:210svh;padding:0;overflow:clip;background:var(--ink); }
  .about-grid {
    position:sticky;
    top:0;
    display:grid;
    grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr);
    align-items:center;
    gap:clamp(55px,7vw,125px);
    width:100%;
    max-width:none;
    height:100svh;
    margin:0;
    padding:clamp(46px,6vw,98px) clamp(38px,6vw,100px);
    overflow:hidden;
    isolation:isolate;
  }
  .about-grid::before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    background:var(--paper);
    transform:translate3d(0,var(--about-curtain,100%),0);
    will-change:transform;
  }
  .about-photos { width:min(88%,440px);margin-left:4%;padding-bottom:35px; }
  .about-photo-main { height:min(68svh,620px);aspect-ratio:3/4; }
  .about-copy { color:rgb(var(--about-text,255,254,250)); }
  .about-body { margin-top:clamp(20px,3vw,42px); }
  .about-copy h2 { max-width:780px;color:#fff;mix-blend-mode:difference; }
  .closing { height:195svh;padding:0; }
  .closing-frame {
    position:sticky;
    top:14svh;
    width:100%;
    height:min(72svh,780px);
    min-height:0;
    aspect-ratio:auto;
    overflow:hidden;
    clip-path:inset(var(--closing-inset-y,0%) var(--closing-inset-x,0%) round var(--closing-radius,0px));
    will-change:clip-path;
  }
  .closing.reveal-section .closing-frame img {
    position:absolute;
    width:100%;height:100%;
    object-fit:cover;
    transform:scale(var(--closing-image-scale,1.035));
    transition:none;
    will-change:transform;
  }
  .closing-link {
    opacity:var(--closing-link-opacity,1);
    transform:translate3d(0,var(--closing-link-y,0px),0);
    pointer-events:auto;
  }
  .closing-link:hover { transform:translate3d(0,calc(var(--closing-link-y,0px) - 3px),0); }
}

@media(max-width:1100px) and (min-width:861px) {
  :root { --statement-size:clamp(3.1rem,5.65vw,6rem); }
  .practical-personal h2 { width:86vw; }
  .about-copy h2 { font-size:clamp(3rem,5.2vw,5.4rem); }
}
@media(max-width:860px) {
  :root { --statement-size:clamp(2.35rem,8.6vw,4.9rem); }
  .brand-statement { width:100%; }
  .practical-personal { padding:64px clamp(22px,5vw,48px); }
  .practical-personal h2 { width:100%;margin:0; }
  .practical-personal h2 .practical-main { font-size:var(--statement-size);line-height:1.075; }
  .practical-personal h2 .practical-word { white-space:normal;transform:none!important;opacity:1!important;filter:none!important; }
  .practical-frame { clip-path:none; }
  .about { padding:0 24px 85px;background:linear-gradient(to bottom,var(--ink) 0 47%,var(--paper) 47% 100%); }
  .about-grid { gap:36px; }
  .about-photos { padding-top:75px; }
  .about-copy { color:var(--ink); }
  .about-copy h2 { color:var(--ink);mix-blend-mode:normal;font-size:clamp(2.65rem,8.2vw,5rem);line-height:1.06; }
  .about-eyebrow,.about-signoff { color:#42433f; }
  .about-body p,.about-signoff small { color:#625a57; }
  .pricing { padding-top:clamp(86px,10vw,130px);background:var(--paper); }
  .pricing::before { display:none; }
  .pricing-intro h2 { color:var(--ink);font-size:clamp(2.75rem,8.5vw,5rem);transform:none;opacity:1; }
  .pricing-intro > p:last-child { color:#5e5754; }
  .price-card { opacity:1;transform:none; }
  .closing { height:auto;padding:0 0 20px; }
  .closing-frame { height:auto;aspect-ratio:1942/809;min-height:0;padding-bottom:96px;clip-path:none; }
  .closing.reveal-section .closing-frame img { position:relative;width:100%;height:auto;object-fit:contain;transform:none;transition:none; }
  .closing-link { right:20px;bottom:18px;opacity:1;transform:none; }
  .footer-oversize { font-size:clamp(2.6rem,9.4vw,6rem);margin-bottom:25px; }
  .footer-oversize span { transform:none; }
}
@media(max-width:560px) {
  :root { --statement-size:clamp(2.1rem,8.8vw,3.4rem); }
  .practical-personal { padding:40px 22px; }
  .practical-personal h2 .practical-mask { margin:0;padding:.04em 0 .11em; }
  .about { background:linear-gradient(to bottom,var(--ink) 0 45%,var(--paper) 45% 100%); }
  .about-photos { width:75%;padding-top:64px; }
  .about-copy h2 { font-size:clamp(2.5rem,9.4vw,3.9rem); }
  .founding-group { gap:17px;padding-right:17px; }
  .founding-group span { font-size:1.03rem; }
  .closing-frame { padding-bottom:86px; }
}
@media(prefers-reduced-motion:reduce) {
  .practical-personal h2 .practical-word { opacity:1;transform:none;filter:none; }
  .about { background:var(--paper);color:var(--ink); }
  .about-copy { color:var(--ink); }
  .about-copy h2 { color:var(--ink);mix-blend-mode:normal; }
  .about-body p,.about-signoff small { color:#625a57; }
  .about-eyebrow,.about-signoff { color:#42433f; }
  .pricing { background:var(--paper); }
  .pricing::before { display:none; }
  .pricing-intro h2 { color:var(--ink);opacity:1;transform:none; }
  .pricing-intro > p:last-child { color:#5e5754; }
  .price-card { opacity:1;transform:none; }
  .closing { height:auto; }
  .closing-frame { clip-path:none; }
  .closing-frame img { transform:none!important; }
  .closing-link { opacity:1;transform:none; }
  .footer-oversize span { transform:none; }
}


/* mobile.css */
/* The phone journey uses the same type and image language, with its own scroll rhythm. */
@media (max-width:860px) {
  html,body { max-width:100%;overflow-x:clip; }
  .stage { background:var(--ink); }
  .visual { height:100svh;min-height:0; }
  .hero,.hero .scene-inner { min-height:100svh; }
  .hero .scene-inner { display:flex;flex-direction:column;justify-content:center;padding:112px clamp(20px,5vw,42px) 55px; }
  .hero h1 { font-size:clamp(3rem,10.5vw,5.5rem);line-height:1.01;letter-spacing:-.048em;text-wrap:balance; }
  .hero-intro { max-width:32ch;font-size:clamp(.77rem,2.6vw,.96rem);line-height:1.45; }
  .hero-lower { margin-top:clamp(28px,5svh,55px); }
  .hero-copy { font-size:clamp(.96rem,2.8vw,1.12rem);line-height:1.55; }
  .hero-link { display:inline-flex;min-height:44px;align-items:center; }
  .brand-scene .scene-inner { min-height:85svh;display:flex;flex-direction:column;justify-content:center;padding:100px clamp(20px,5vw,42px) 78px; }
  .brand-statement { font-size:clamp(2.7rem,9.2vw,5.5rem);line-height:1.08;letter-spacing:-.052em;overflow-wrap:normal; }
  .brand-note { max-width:38ch;margin-top:clamp(32px,5svh,55px);font-size:.8rem;line-height:1.55; }
  .has-motion .practical-scene { height:185svh; }
  .has-motion .practical-frame { height:100svh;min-height:0;top:0; }
  .practical-personal { padding:76px clamp(20px,5vw,42px); }
  .practical-personal h2 { width:100%;max-width:720px;margin:0; }
  .practical-personal h2 .practical-main { font-size:clamp(2.65rem,9vw,5.4rem);line-height:1.08;letter-spacing:-.055em; }
  .practical-personal h2 .practical-mask:first-child .practical-word { padding-left:0; }
  .practical-photo { object-position:68% center; }
  .services { margin-top:0;padding:clamp(72px,10svh,125px) clamp(20px,5vw,42px) 100px; }
  .services-heading { transform:translate3d(0,var(--heading-shift,0px),0);opacity:var(--heading-opacity,1); }
  .services-heading h2 { font-size:clamp(2.65rem,7.5vw,4.8rem);line-height:1.07;text-wrap:balance; }
  .services-title-block > p { max-width:45ch;font-size:clamp(.99rem,2.8vw,1.1rem);line-height:1.5; }
  .service-grid { gap:20px; }
  .service-media { min-height:0; }
  .service-name,.service-card--additional .service-name { font-size:clamp(1.55rem,4.1vw,2.7rem);line-height:1.07;text-align:center; }
  .service-description,.service-card--additional .service-description { font-size:clamp(.95rem,2.3vw,1.2rem);line-height:1.4; }
  .about { background:var(--paper);padding:0 0 0; }
  .about-grid { gap:0; }
  .about-photos { box-sizing:content-box;max-width:none;width:65%;margin:0;padding:75px 17.5% 50px;background:var(--ink); }
  .about-copy { width:100%;max-width:none;box-sizing:border-box;padding:72px clamp(20px,5vw,42px) 88px;background:var(--paper); }
  .about-copy h2 { font-size:clamp(2.65rem,7.8vw,5.1rem);line-height:1.07; }
  .about-body { margin-top:30px; }
  .about-body p { font-size:clamp(.98rem,2.7vw,1.1rem);line-height:1.6; }
  .pricing { background:var(--paper);padding:100px clamp(20px,5vw,42px) 105px; }
  .pricing-intro h2 { font-size:clamp(2.65rem,8vw,5rem);line-height:1.08;text-wrap:balance; }
  .pricing-intro > p:last-child { font-size:clamp(.98rem,2.8vw,1.1rem);line-height:1.55; }
  .price-card { opacity:var(--card-opacity,1);transform:translate3d(0,var(--card-rise,0px),0); }
  .closing { padding:0;background:var(--paper); }
  .closing-frame { padding-bottom:0;min-height:0;background:var(--paper); }
  .closing.reveal-section .closing-frame img { display:block;width:100%;height:auto; }
  .closing-copy { position:relative;width:auto;height:auto;clip:auto;overflow:visible;white-space:normal;margin:0;padding:28px clamp(20px,5vw,42px) 14px;color:var(--ink);font:620 clamp(2.15rem,7vw,4rem)/1.09 var(--display-face);letter-spacing:-.055em;text-transform:uppercase; }
  .closing-link { position:relative;left:auto;right:auto;bottom:auto;display:inline-flex;align-items:center;min-height:48px;margin:0 clamp(20px,5vw,42px) 68px;color:var(--ink);opacity:1;transform:none; }
  .site-footer { padding:58px clamp(20px,5vw,42px) 28px; }
  .footer-oversize { font-size:clamp(2.25rem,8.3vw,5.7rem);letter-spacing:-.085em; }
}
@media (max-width:560px) {
  .nav { padding:0 20px; }
  .wordmark { font-size:clamp(1.3rem,5.2vw,1.7rem); }
  .enquire { font-size:.75rem; }
  .hero .scene-inner { padding-top:105px;padding-bottom:48px; }
  .hero h1 { font-size:clamp(2.9rem,10.2vw,4.35rem); }
  .brand-statement { font-size:clamp(2.55rem,9.4vw,4rem); }
  .practical-personal h2 .practical-main { font-size:clamp(2.45rem,8.9vw,3.8rem); }
  .services-heading h2 { font-size:clamp(2.55rem,9vw,3.5rem); }
  .service-grid { display:grid;grid-template-columns:1fr;gap:22px; }
  .service-card { margin:0; }
  .service-media,.service-card--additional .service-media,.service-card:last-child .service-media { aspect-ratio:1.05;min-height:0; }
  .service-card--additional .service-media { aspect-ratio:1.3; }
  .service-name,.service-card--additional .service-name { font-size:clamp(2rem,7vw,2.7rem); }
  .service-description,.service-card--additional .service-description { width:min(84%,360px);font-size:clamp(1rem,3.6vw,1.2rem); }
  .about-photos { width:68%;padding:64px 16% 44px; }
  .about-copy { padding-top:62px; }
  .about-copy h2 { font-size:clamp(2.55rem,9vw,3.9rem); }
  .price-card { margin:0; }
  .footer-main { grid-template-columns:1fr;gap:45px; }
  .footer-intro { grid-column:auto; }
}
@media (max-width:370px) {
  .hero h1 { font-size:clamp(2.6rem,9.7vw,3.25rem); }
  .brand-statement { font-size:9vw; }
  .practical-personal h2 .practical-main { font-size:8vw; }
}
@media (max-width:860px) and (prefers-reduced-motion:no-preference) {
  html.has-motion .brand-scene .word { opacity:var(--mobile-opacity,1)!important;transform:translate3d(0,var(--mobile-y,0px),0)!important;filter:blur(var(--mobile-blur,0px))!important; }
  html.has-motion .practical-personal h2 .practical-word { opacity:var(--mobile-opacity,1)!important;transform:translate3d(0,var(--mobile-y,0px),0)!important;filter:blur(var(--mobile-blur,0px))!important; }
  .about-copy { transform:translate3d(0,var(--mobile-about-y,0px),0); }
  .pricing-intro h2 { transform:translate3d(0,var(--pricing-title-y,0px),0) scale(var(--pricing-title-scale,1));opacity:var(--pricing-title-opacity,1); }
  .footer-oversize span { transform:translate3d(0,var(--footer-word-rise,0px),0) scale(var(--footer-word-scale,1)); }
}
@media (max-width:860px) and (prefers-reduced-motion:reduce) {
  .practical-scene .scene-inner { min-height:75svh; }
  .practical-personal { opacity:1!important;visibility:visible!important; }
  .practical-word { opacity:1!important;transform:none!important;filter:none!important; }
  .services-heading,.pricing-intro h2,.price-card,.footer-oversize span { opacity:1!important;transform:none!important; }
}
@media (max-width:860px) {
  .pricing-intro h2 { color:var(--ink); }
  .pricing-intro > p:last-child { color:#5e5754; }
  .price-card h3 { font-size:clamp(2rem,5vw,3.2rem); }
  .founding-banner { overflow:hidden; }
  .service-toggle { min-width:44px;min-height:44px; }
}
@media (max-width:860px) and (max-height:600px) and (orientation:landscape) {
  .hero,.hero .scene-inner { min-height:560px; }
  .brand-scene .scene-inner { min-height:560px; }
  .has-motion .practical-scene { height:860px; }
  .has-motion .practical-frame { height:500px; }
}


/* mobile-motion.css */
/* Phone choreography: held scenes, a photographic takeover, then rising light surfaces. */
@media (max-width:860px) and (prefers-reduced-motion:no-preference) {
  .brand-scene { height:145svh;min-height:0;background:var(--ink); }
  .brand-scene::before { display:none; }
  .brand-scene .scene-inner {
    position:sticky;top:0;isolation:isolate;height:100svh;min-height:0;
    overflow:hidden;
  }
  .brand-scene .scene-inner::before {
    content:"";position:absolute;z-index:-2;inset:0;
    background:var(--ink) url("hero-clean.jpg") 65% center / cover no-repeat;
    clip-path:inset(var(--mobile-brand-curtain,100%) 0 0 0);
    will-change:clip-path;
  }
  .brand-scene .scene-inner::after {
    content:"";position:absolute;z-index:-1;inset:0;
    background:rgba(24,22,23,.66);
    pointer-events:none;
  }
  .brand-statement { transform:translate3d(0,var(--mobile-brand-rise,0px),0); }
  .brand-note { opacity:var(--mobile-brand-note,1);transform:translate3d(0,var(--mobile-brand-note-y,0px),0); }
  .has-motion .practical-scene {
    position:relative;z-index:12;height:205svh;margin-top:-27svh;
    background:transparent;overflow:visible;
  }
  .has-motion .practical-scene .scene-inner { height:100%;padding:0; }
  .has-motion .practical-frame { position:sticky;top:0;width:100%;height:100svh; }
  .practical-photo { clip-path:inset(var(--mobile-photo-wipe,100%) 0 0 0);will-change:clip-path; }
  .practical-frame::after { clip-path:inset(var(--mobile-photo-wipe,100%) 0 0 0); }
  .services {
    position:relative;z-index:25;margin-top:-17svh!important;
    border-radius:24px 24px 0 0;
    padding-top:clamp(84px,13svh,150px);
    box-shadow:0 -24px 65px rgba(0,0,0,.08);
  }
  .services::before { display:none; }
  .about { position:relative;background:var(--paper); }
  .about-grid { display:block; }
  .about-photos {
    position:sticky;top:0;z-index:0;display:flex;align-items:center;
    width:100%;height:100svh;box-sizing:border-box;
    padding:64px 17% 100px;overflow:hidden;
  }
  .about-photo-main { width:100%;max-height:73svh;flex:none; }
  .about-copy {
    position:relative;z-index:1;min-height:70svh;margin-top:-12svh;
    border-radius:24px 24px 0 0;
    box-shadow:0 -20px 60px rgba(0,0,0,.1);
  }
  .pricing {
    position:relative;overflow:visible;
    background:linear-gradient(to bottom,var(--ink) 0 100svh,var(--paper) 100svh);
    padding:0 0 100px;
  }
  .pricing-shell { max-width:none; }
  .pricing-intro {
    position:sticky;top:0;z-index:0;display:flex;flex-direction:column;
    justify-content:center;box-sizing:border-box;
    width:100%;max-width:none;min-height:100svh;margin:0;
    padding:75px clamp(20px,5vw,42px);
    background:var(--ink);
  }
  .pricing-intro h2 { color:var(--paper)!important; }
  .pricing-intro > p:last-child { color:#e7dedb; }
  .founding-banner { position:relative;z-index:1;margin:0;background:var(--paper); }
  .price-options {
    position:relative;z-index:1;margin:0;padding:45px clamp(20px,5vw,42px) 25px;
    background:var(--paper);
  }
  .pricing-footnote {
    position:relative;z-index:1;margin:0;padding:0 clamp(20px,5vw,42px) 25px;
    background:var(--paper);
  }
  .closing { height:165svh; }
  .closing-frame {
    position:sticky;top:0;display:flex;flex-direction:column;justify-content:center;
    box-sizing:border-box;width:100%;height:100svh;min-height:0;
    padding:0 0 12px;overflow:hidden;background:var(--paper);
    clip-path:inset(var(--closing-inset-y,14%) var(--closing-inset-x,9%) round var(--closing-radius,22px));
    will-change:clip-path;
  }
  .closing.reveal-section .closing-frame img {
    position:relative;display:block;flex:none;width:100%;height:auto;
    object-fit:contain;transform:scale(var(--closing-image-scale,1));
    will-change:transform;
  }
  .closing-copy { max-width:650px;padding:clamp(22px,4svh,42px) clamp(20px,5vw,42px) 10px; }
  .closing-link { margin-bottom:0; }
}
@media (max-width:560px) and (prefers-reduced-motion:no-preference) {
  .about-photos { padding:55px 16% 90px; }
  .about-photo-main { max-height:62svh; }
  .price-options { display:grid;gap:20px; }
  .closing-copy { font-size:clamp(1.75rem,6.3vw,2.65rem); }
}
@media (max-width:860px) and (max-height:600px) and (orientation:landscape) and (prefers-reduced-motion:no-preference) {
  .brand-scene { height:800px; }
  .brand-scene .scene-inner { height:500px; }
  .has-motion .practical-scene { height:900px;margin-top:-80px; }
  .has-motion .practical-frame { height:500px; }
  .about-photos,.closing-frame { height:500px; }
  .pricing-intro { min-height:500px; }
}


/* finishing-pass.css */
/* Editorial transition, light arrival, and a quieter invitation. */
.has-motion .announcement {
  opacity:0;
  transform:translate3d(0,-100%,0);
  transition:opacity .55s ease,transform .8s cubic-bezier(.22,1,.36,1);
}
.has-motion.site-ready .announcement { opacity:1;transform:translate3d(0,0,0); }

.practical-personal { justify-content:center;text-align:center; }
.practical-personal h2 {
  width:min(85vw,1100px);
  max-width:1100px;
  margin:0 auto;
  text-align:center;
  text-wrap:balance;
}
.practical-personal h2 .practical-main { font-size:inherit;line-height:inherit;letter-spacing:normal;text-transform:none; }
.practical-personal h2 .practical-mask { margin:0;padding:.1em .04em .16em; }
.practical-personal h2 .practical-word {
  white-space:normal;
  text-wrap:balance;
}
.practical-personal h2 .practical-mask:first-child .practical-word { padding-left:0; }
.practical-personal h2 .practical-word--lead {
  font:600 clamp(2rem,3.25vw,3.8rem)/1.08 "Instrument Sans",Arial,sans-serif;
  letter-spacing:-.065em;
  text-transform:uppercase;
}
.practical-personal h2 .practical-word--editorial {
  font:italic 430 clamp(3.05rem,5.3vw,6.25rem)/1.02 "Newsreader",Georgia,serif;
  letter-spacing:-.06em;
  text-transform:none;
}
.practical-frame::after { background:linear-gradient(90deg,rgba(22,20,21,.86),rgba(22,20,21,.71) 62%,rgba(22,20,21,.57)); }

/* The same white surface covers the portrait and becomes the services page.
   The scroll sets its edge, so the reveal cannot outrun the visitor. */
.services::before { display:none; }
.services { margin-top:0!important;border-radius:0;box-shadow:none;padding-top:0; }
.services-heading {
  position:relative;
  align-items:center;
  min-height:clamp(340px,42svh,470px);
  margin-bottom:clamp(18px,2vw,32px);
  padding-top:clamp(65px,8svh,95px);
  padding-bottom:clamp(55px,7svh,85px);
  border-bottom:0;
}
.services-heading::after {
  content:"";position:absolute;left:0;right:0;bottom:clamp(28px,4svh,52px);height:1px;
  background:rgba(24,22,23,.28);
  transform:scaleX(var(--services-line,1));transform-origin:left center;
}
@media (prefers-reduced-motion:no-preference) {
  html.has-motion .services {
    margin-top:-135svh!important;
    clip-path:inset(var(--services-curtain,100svh) 0 0 0);
    transition:none;
    will-change:clip-path;
  }
  html.has-motion .services-heading {
    opacity:var(--services-title-opacity,0);
    transform:translate3d(0,var(--services-title-y,72px),0);
    transition:none;
  }
  html.has-motion .services-heading::after { transform:scaleX(var(--services-line,0)); }
  html.has-motion .services-heading .services-title-block > p,
  html.has-motion .services-heading > p {
    opacity:var(--services-note-opacity,0);
    transform:translate3d(0,var(--services-note-y,24px),0);
    transition:none;
  }
  html.has-motion .services .service-card,
  html.has-motion .services .service-card.is-visible {
    opacity:var(--service-opacity,0);
    transform:translate3d(0,var(--service-rise,68px),0) scale(var(--service-scale,.96));
    transition:none;
    will-change:transform,opacity;
  }
  html.has-motion .services .service-card .service-media,
  html.has-motion .services .service-card.is-visible .service-media {
    clip-path:inset(var(--service-inset,7%) 0 var(--service-inset,7%) round 16px);
    transition:none;
  }
  html.has-motion .services .service-card .service-media img {
    transform:translate3d(0,var(--service-image-y,0px),0) scale(1.1);
    transition:transform .35s cubic-bezier(.22,1,.36,1),filter .25s linear;
  }
  html.has-motion .services .service-card:not(.is-visible) .service-media img { filter:none; }
  html.has-motion .services .service-card--brand .service-media img,
  html.has-motion .services .service-card--brand:not(.is-visible) .service-media img { filter:grayscale(.86) sepia(.08); }
  html.has-motion .services .service-card:hover .service-media img { transform:translate3d(0,var(--service-image-y,0px),0) scale(1.14); }
}

/* The portrait arrives on charcoal; the full section changes to paper as it enters. */
@media (min-width:861px) and (prefers-reduced-motion:no-preference) {
  .about { height:128svh; }
}
html.has-motion .about { background:var(--ink);transition:background-color .46s cubic-bezier(.22,1,.36,1); }
html.has-motion .about.is-lit { background:var(--paper); }
html.has-motion .about-grid::before { display:none; }
html.has-motion .about-copy { color:var(--paper);transition:color .46s ease; }
html.has-motion .about-copy h2 { color:var(--paper);mix-blend-mode:normal;transition:color .46s ease; }
html.has-motion .about-body p,
html.has-motion .about-signoff small { color:#d7cfcd;transition:color .46s ease; }
html.has-motion .about-eyebrow,
html.has-motion .about-signoff { color:var(--stone-accent);transition:color .46s ease; }
html.has-motion .about.is-lit .about-copy,
html.has-motion .about.is-lit .about-copy h2 { color:var(--ink); }
html.has-motion .about.is-lit .about-body p,
html.has-motion .about.is-lit .about-signoff small { color:#625a57; }
html.has-motion .about.is-lit .about-eyebrow,
html.has-motion .about.is-lit .about-signoff { color:#42433f; }
html.has-motion .about-copy[data-reveal],
html.has-motion .reveal-section:not(.is-visible) .about-copy[data-reveal] {
  opacity:var(--about-opacity,1);
  transform:translate3d(0,var(--about-rise,0px),0);
  transition:color .46s ease;
}
.about-photos { transform:translate3d(0,var(--about-photo-rise,0px),0); }

/* One real portrait among loose paper layers, without duplicate imagery or lettering. */
.about-photos {
  position:relative;
  isolation:isolate;
  width:min(100%,540px);
  max-width:540px;
  height:min(68svh,620px);
  padding:0;
  overflow:visible;
}
.about-paper { position:absolute;display:block;pointer-events:none; }
.about-paper--back {
  z-index:0;inset:7% 8% 8% 10%;
  background:#353a38;
  box-shadow:0 14px 36px rgba(0,0,0,.11);
  transform:translate3d(-12px,-10px,0) rotate(-1deg);
}
.about-photos .about-photo-main {
  position:absolute;
  z-index:1;
  inset:9% 8% 8% 10%;
  width:82%;height:83%;
  margin:0;aspect-ratio:auto;
  overflow:hidden;
  box-shadow:0 18px 48px rgba(0,0,0,.16);
  transform:translate3d(0,var(--portrait-travel,0px),0);
}
.about-photos .about-photo-main img {
  display:block;width:100%;height:100%;
  object-fit:cover;object-position:56% 61%;
  filter:saturate(.72) contrast(1.02);
}
.about-photo-detail { display:none; }

/* Large editorial numerals and fine separators follow the supplied process reference. */
.process-flow { position:relative;z-index:2;background:var(--paper);color:var(--ink); }
.process-inner { max-width:1450px;margin:0 auto;padding:0 clamp(38px,6vw,100px) clamp(48px,6vw,88px); }
.process-inner > h2 {
  margin:0 0 clamp(32px,4vw,54px);
  font:650 .84rem/1.35 "Instrument Sans",Arial,sans-serif;
  letter-spacing:.13em;text-transform:uppercase;
}
.process-steps {
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;list-style:none;margin:0;padding:0;
}
.process-step {
  position:relative;display:flex;flex-direction:column;
  align-items:flex-start;gap:0;
  min-height:clamp(320px,28vw,430px);
  padding:clamp(24px,2vw,38px) clamp(18px,3vw,48px) clamp(28px,3vw,48px);
  border-left:1px solid rgba(24,22,23,.28);
}
.process-step:first-child { padding-left:0;border-left:0; }
.process-step:last-child { padding-right:0; }
.process-number {
  color:#4d413c;
  margin:0 0 clamp(28px,2.7vw,48px);
  font:410 clamp(8rem,11.5vw,14rem)/.77 "Newsreader",Georgia,serif;
  letter-spacing:-.095em;
  white-space:nowrap;
}
.process-copy { max-width:30ch; }
.process-step h3 {
  margin:0 0 13px;
  font:690 clamp(.84rem,1vw,1.04rem)/1.25 "Instrument Sans",Arial,sans-serif;
  letter-spacing:.045em;text-transform:uppercase;
}
.process-step p { max-width:26ch;margin:0;color:#625a57;font:450 clamp(.92rem,1vw,1.03rem)/1.55 "Instrument Sans",Arial,sans-serif; }
html.has-motion .process-step { opacity:var(--step-opacity,0);transform:translate3d(0,var(--step-y,40px),0); }
.process-step::before {
  content:"";position:absolute;top:0;left:0;width:100%;height:1px;
  background:rgba(24,22,23,.28);
  transform:scaleX(var(--step-line,1));transform-origin:left center;
}

/* The founding strip uses the same scale, rhythm and pink as the opening strip. */
.founding-banner {
  position:relative;left:50%;width:100vw;
  transform:translateX(-50%);
  display:flex;align-items:center;justify-content:flex-start;
  box-sizing:border-box;height:26px;padding:0;margin:0 0 clamp(32px,4vw,58px);
  background:var(--stone-accent);color:var(--ink);
  border-bottom:1px solid rgba(24,22,23,.08);overflow:hidden;
}
.founding-banner .founding-track { animation:announcement-loop 24s linear infinite; }
.founding-banner .founding-group { gap:34px;padding-right:34px;font-size:.65rem;letter-spacing:.13em;text-transform:uppercase; }
.founding-banner .founding-group span { font:650 .65rem/1.4 "Instrument Sans",Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase; }
.founding-banner .founding-group .announcement-dot { font-size:.55rem; }
.founding-banner:hover .founding-track { animation-play-state:running; }

/* The glass image glides inside the expanding frame, giving the scene depth. */
@media (min-width:861px) and (prefers-reduced-motion:no-preference) {
  .closing { height:205svh; }
  .closing-frame { top:12svh;height:min(76svh,840px); }
  .closing.reveal-section .closing-frame img {
    top:-9%;left:0;width:100%;height:118%;object-fit:cover;
    transform:perspective(1200px) translate3d(0,var(--closing-image-y,0px),0) rotateX(var(--closing-perspective,0deg)) scale(var(--closing-image-scale,1.045));
    transform-origin:center center;
  }
}

/* Pricing is one dark chapter. The moving blush strip belongs to its paper edge. */
.pricing {
  margin-top:-3svh;padding:0;overflow:hidden;
  border-radius:clamp(20px,2.5vw,38px) clamp(20px,2.5vw,38px) 0 0;
  background:var(--ink);color:var(--paper);
}
.pricing::before { display:none; }
.pricing-shell { max-width:none;width:100%; }
.pricing-intro {
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  width:100%;max-width:none;min-height:0;
  margin:0;padding:clamp(70px,9svh,115px) max(clamp(24px,5vw,70px),calc((100vw - 1300px)/2)) clamp(44px,6svh,78px);
  align-items:flex-start;text-align:left;
}
.pricing-intro h2 {
  color:var(--paper);
  font-size:clamp(2.8rem,4.2vw,5.3rem);
  line-height:1.04;
  opacity:var(--pricing-title-opacity,1);
  transform:translate3d(0,var(--pricing-title-y,0px),0) scale(var(--pricing-title-scale,1));
  transform-origin:left center;
  will-change:transform,opacity;
}
.has-motion .pricing.reveal-section:not(.is-visible) .pricing-intro[data-reveal],
.has-motion .pricing.reveal-section .pricing-intro[data-reveal] {
  opacity:1;transform:none;transition:none;
}
.pricing-intro > p:last-child {
  max-width:670px;margin:18px 0 0;
  color:#e3dad7;opacity:var(--pricing-note-opacity,1);
  transform:translate3d(0,var(--pricing-note-y,0px),0);
}
.founding-banner {
  position:relative;left:auto;z-index:2;width:100%;height:35px;
  margin:0;padding:0;transform:none;background:var(--stone-accent);
}
.price-options {
  width:100%;max-width:none;
  gap:clamp(18px,2.6vw,38px);
  margin:0;
  padding:clamp(35px,4vw,58px) max(clamp(20px,5vw,70px),calc((100vw - 1300px)/2)) clamp(50px,7vw,100px);
  border-radius:clamp(18px,2vw,30px) clamp(18px,2vw,30px) 0 0;
  background:var(--paper);color:var(--ink);
}
.founding-banner .founding-group { gap:clamp(20px,2.3vw,38px);padding-right:clamp(20px,2.3vw,38px); }
.founding-banner .founding-group span { font-size:clamp(.82rem,1vw,1.12rem);letter-spacing:.025em; }
.pricing-footnote {
  max-width:none;margin:0;
  padding:0 clamp(20px,5vw,70px) clamp(75px,9vw,130px);
  background:var(--paper);color:#655d59;
}
.has-motion .closing.reveal-section:not(.is-visible) .closing-frame[data-reveal],
.has-motion .closing.reveal-section .closing-frame[data-reveal] {
  opacity:1;transform:none;transition:none;
}
.has-motion .closing .closing-link {
  opacity:var(--closing-link-opacity,1);
  transform:translate3d(0,var(--closing-link-y,0px),0);
}
.price-card {
  opacity:var(--card-opacity,1);
  transform:translate3d(var(--card-x,0px),var(--card-rise,0px),0) scale(var(--card-scale,1));
  transform-origin:center;
}

/* One invitation on the photograph, one quieter way to reach Sabina in the footer. */
.closing-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  padding:15px 22px;
  border:1px solid rgba(255,254,250,.68);
  border-radius:12px;
  background:rgba(255,254,250,.92);
  color:var(--ink);
  font:650 .83rem/1.4 "Instrument Sans",Arial,sans-serif;
  letter-spacing:.015em;
  text-decoration:none;
  box-shadow:0 12px 40px rgba(24,22,23,.11);
  backdrop-filter:blur(9px);
  transition:background .25s,box-shadow .25s;
}
.closing-link:hover { background:var(--paper);box-shadow:0 15px 42px rgba(24,22,23,.2); }
.footer-contact { align-self:end; }
.footer-contact p { margin-bottom:18px; }
.footer-email {
  display:inline-flex;
  align-items:center;
  gap:28px;
  min-height:44px;
  padding-bottom:5px;
  border-bottom:1px solid currentColor;
  color:var(--ink);
  font:650 .91rem/1.3 "Instrument Sans",Arial,sans-serif;
  text-decoration:none;
}
.footer-email:hover span,.closing-link:hover span { transform:translate(3px,-3px); }
.footer-email span,.closing-link span { transition:transform .3s ease; }
.footer-oversize {
  width:100%;max-width:1450px;
  overflow:visible;
  font-size:clamp(2.3rem,7.8vw,8rem);
  letter-spacing:-.086em;
  line-height:1.09;
}
.footer-oversize span { padding:.04em 0 .16em; }

@media (max-width:860px) {
  .practical-personal { padding:64px clamp(20px,5vw,42px); }
  .practical-personal h2 { width:min(100%,670px); }
  .practical-personal h2 .practical-word--lead { font-size:clamp(1.45rem,5.2vw,2.65rem);line-height:1.12; }
  .practical-personal h2 .practical-word--editorial { font-size:clamp(2.45rem,8vw,4.25rem);line-height:1.03; }
  .services { padding-top:0;border-radius:0;box-shadow:none; }
  .services-heading {
    min-height:clamp(300px,46svh,400px);
    padding:clamp(55px,8svh,78px) 0 clamp(42px,6svh,62px);
    margin-bottom:clamp(12px,3vw,24px);
  }
  .about { padding:0 0 clamp(75px,10svh,120px); }
  .about-copy { transform:translate3d(0,var(--about-rise,0px),0); }
  .pricing { padding:0;background:var(--ink);border-radius:22px 22px 0 0; }
  .pricing-intro {
    position:relative;top:auto;z-index:auto;
    width:100%;max-width:none;min-height:0;
    margin:0;padding:clamp(55px,8svh,78px) clamp(20px,5vw,42px) clamp(42px,6svh,60px);
    background:transparent;
  }
  .pricing-intro h2 {
    color:var(--paper)!important;
    font-size:clamp(2.5rem,7vw,3.7rem);
    transform:translate3d(0,var(--pricing-title-y,0px),0) scale(var(--pricing-title-scale,1))!important;
    opacity:var(--pricing-title-opacity,1)!important;
  }
  .pricing-intro > p:last-child { color:#e3dad7; }
  .founding-banner { margin:0;background:var(--stone-accent); }
  .price-options { padding:clamp(30px,4svh,48px) clamp(20px,5vw,42px) 35px;background:var(--paper); }
  .price-card { transform:translate3d(0,var(--card-rise,0px),0) scale(var(--card-scale,1)); }
  .pricing-footnote { padding:0 clamp(20px,5vw,42px) clamp(75px,10svh,120px);background:var(--paper); }
  .closing-link {
    margin:8px clamp(20px,5vw,42px) 52px;
    border-color:rgba(24,22,23,.2);
    background:var(--paper);
    box-shadow:none;
    opacity:var(--closing-link-opacity,1);transform:translate3d(0,var(--closing-link-y,0px),0);
  }
  .footer-oversize { font-size:clamp(2rem,7.5vw,5.4rem); }
  .process-inner { padding:0 clamp(20px,5vw,42px) clamp(58px,8svh,88px); }
  .process-inner > h2 { margin-bottom:25px; }
  .process-steps { display:block; }
  .process-step,.process-step:first-child {
    grid-template-columns:clamp(120px,31vw,170px) minmax(0,1fr);
    gap:clamp(14px,4vw,26px);padding:24px 0;
    border-left:0;border-top:0;
    min-height:0;display:grid;align-items:start;
  }
  .process-step:last-child { border-bottom:1px solid rgba(24,22,23,.25); }
  .process-number { margin:0;font-size:clamp(5.8rem,20vw,8rem);line-height:.78; }
  .process-step h3 { font-size:clamp(.84rem,2.5vw,1rem); }
  .process-step p { max-width:34ch;font-size:clamp(.94rem,2.7vw,1rem); }
  .closing.reveal-section .closing-frame img {
    transform:translate3d(0,var(--closing-image-y,0px),0) scale(var(--closing-image-scale,1.015));
    transition:none;
  }
}
@media (max-width:860px) and (prefers-reduced-motion:no-preference) {
  html.has-motion .services { margin-top:-100svh!important; }
  html.has-motion .about-grid { position:relative;z-index:1; }
  html.has-motion .about-photos { position:relative;z-index:1;background:transparent; }
  html.has-motion .about-copy { margin-top:0;border-radius:0;box-shadow:none;background:transparent; }
  .pricing-intro { position:relative;background:transparent; }
  .closing-frame { clip-path:inset(var(--closing-inset-y,14%) var(--closing-inset-x,9%) round var(--closing-radius,24px)); }
}
@media (max-width:860px) {
  .about-photos {
    box-sizing:border-box;
    width:min(82vw,430px);max-width:430px;
    height:min(65svh,590px);
    margin:42px auto 0;
    padding:0;
    background:transparent;
  }
  .about-copy { margin-top:0;padding-top:clamp(50px,7svh,85px); }
  .about-paper--back { transform:translate3d(-9px,-8px,0) rotate(-1deg); }
}
@media (max-width:560px) {
  .practical-personal h2 .practical-word--lead { font-size:clamp(1.35rem,5.35vw,2rem); }
  .practical-personal h2 .practical-word--editorial { font-size:clamp(2.35rem,8.5vw,3.5rem); }
  .price-card { max-width:100%; }
  .footer-oversize { font-size:clamp(1.58rem,7.3vw,2.9rem);letter-spacing:-.085em; }
}
@media (prefers-reduced-motion:reduce) {
  .announcement,.practical-word,.price-card,.closing-link,.footer-oversize span { transition:none!important; }
  .practical-word,.price-card { opacity:1!important;transform:none!important;filter:none!important; }
  .footer-oversize span { transform:none!important; }
  html.has-motion .about { background:var(--paper); }
  .process-step { opacity:1!important;transform:none!important; }
  .pricing { background:var(--ink); }
  .pricing-intro h2 { color:var(--paper)!important;opacity:1!important;transform:none!important; }
  .pricing-intro > p:last-child { color:#e3dad7;opacity:1;transform:none; }
  .closing-frame img { transform:none!important; }
  html.has-motion .about-copy,
  html.has-motion .about-copy h2 { color:var(--ink);transition:none; }
  html.has-motion .about-body p,
  html.has-motion .about-signoff small { color:#625a57;transition:none; }
}


/* process-chapter.css */
/* The process: one image opens into a restrained photographic spread. */
.process-showcase{position:relative;height:210svh;color:var(--ink);background:var(--paper)}
.process-showcase-stage{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate;background:var(--paper)}
.showcase-heading{position:absolute;z-index:7;top:clamp(35px,7svh,85px);left:clamp(24px,6vw,100px);right:clamp(24px,6vw,100px);pointer-events:none}
.process-eyebrow{margin:0 0 16px;color:#847a76;font:650 .78rem/1.25 "Instrument Sans",Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.showcase-heading h2.process-eyebrow{margin:0;color:#514b48;font:680 clamp(.8rem,1vw,1rem)/1.3 "Instrument Sans",Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.process-inner>.process-intro>h2{margin:0;font:640 clamp(3.3rem,6.3vw,8rem)/.94 var(--display-face),Arial,sans-serif;letter-spacing:-.075em;text-transform:uppercase}
.showcase-gallery{position:absolute;inset:0;perspective:1000px;pointer-events:none}
.showcase-image{position:absolute;top:41%;left:50%;width:min(43vw,660px);height:auto;aspect-ratio:16/10;margin:0;overflow:hidden;border:6px solid #302d2d;border-radius:15px;background:#d5d0ca;box-shadow:0 22px 62px rgba(30,27,26,.15);opacity:var(--fan-opacity,0);transform:translate3d(calc(-50% + var(--fan-x,0vw)),calc(-50% + var(--fan-y,0px) + var(--fan-exit,0vh)),0) rotate(var(--fan-angle,0deg)) scale(var(--fan-scale,.9));will-change:transform,opacity;backface-visibility:hidden}
.showcase-image[data-slot="-2"]{z-index:1}.showcase-image[data-slot="2"]{z-index:2}.showcase-image[data-slot="-1"]{z-index:3}.showcase-image[data-slot="1"]{z-index:4}
.showcase-image--centre{z-index:5;opacity:var(--fan-opacity,1)}
.showcase-image img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(.64) saturate(.43) contrast(1.03)}
.showcase-image--centre img{filter:grayscale(.32) saturate(.65) contrast(1.02)}
.showcase-statement{position:absolute;z-index:8;top:69%;left:50%;width:min(1040px,calc(100% - 56px));margin:0;color:var(--ink);font:610 clamp(2.7rem,5.2vw,6.5rem)/.98 var(--display-face),Arial,sans-serif;letter-spacing:-.07em;text-align:center;text-wrap:balance;opacity:var(--showcase-line-opacity,0);transform:translate3d(-50%,calc(-50% + var(--showcase-line-y,40px)),0);pointer-events:none}

/* A single paper palette carries the numbered steps. */
.process-flow{position:relative;z-index:2;height:270svh;background:var(--paper);color:var(--ink)}
.process-inner{position:sticky;top:0;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1fr);align-items:center;gap:clamp(38px,7vw,120px);width:100%;max-width:1600px;height:100svh;margin:0 auto;padding:clamp(45px,7svh,95px) clamp(32px,6vw,100px);overflow:hidden}
.process-intro{align-self:center;max-width:680px}
.process-inner>.process-intro>h2{max-width:12ch;font-size:clamp(2.9rem,4.5vw,5.9rem);line-height:.97}
.process-intro h2 span{color:#5e5551}
.process-lead{max-width:39ch;margin:clamp(20px,3svh,30px) 0 0;color:#5f5653;font:450 clamp(1rem,1.18vw,1.18rem)/1.55 "Instrument Sans",Arial,sans-serif;letter-spacing:-.015em}
.process-index{position:relative;display:grid;gap:15px;list-style:none;margin:clamp(32px,5svh,60px) 0 0;padding:2px 0 2px 22px}
.process-index::before,.process-index::after{content:"";position:absolute;left:0;top:0;width:1px;height:100%;background:rgba(24,22,23,.18)}
.process-index::after{height:var(--process-line,0%);background:#514b48}
.process-index li{display:flex;gap:16px;color:#928985;font:650 .76rem/1.4 "Instrument Sans",Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;transition:color .22s ease,transform .22s ease}
.process-index li span:first-child{font-family:"Newsreader",Georgia,serif;font-size:1.1rem;letter-spacing:0}
.process-index li.is-current{color:var(--ink);transform:translateX(5px)}
.process-card-window{--process-window-h:min(66svh,640px);--process-card-h:var(--process-window-h);position:relative;isolation:isolate;align-self:center;width:100%;height:var(--process-window-h);overflow:hidden;border-radius:24px;mask-image:none;-webkit-mask-image:none}
.process-steps{position:relative;display:block;width:100%;height:100%;list-style:none;margin:0;padding:0;transform:none}
.process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{position:absolute;inset:0;display:flex;flex:none;flex-direction:column;justify-content:space-between;width:100%;height:100%;min-width:0;min-height:0;padding:clamp(27px,3.2vw,52px);border:1px solid rgba(24,22,23,.12);border-radius:clamp(17px,1.6vw,25px);background:#f5f2ee;color:var(--ink);box-shadow:0 22px 60px rgba(31,25,26,.06);opacity:0;visibility:hidden;transform:none}
.process-flow .process-step.is-active,html.has-motion .process-flow .process-step.is-active{z-index:1;opacity:1;visibility:visible;transform:none}
html.has-motion .process-flow .process-step{opacity:0;transform:none}
.process-step::before{display:none}
.process-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;color:#6b625e;font:680 .72rem/1.3 "Instrument Sans",Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.process-card-top span:first-child{color:var(--ink);font:400 clamp(5.6rem,8vw,9rem)/.75 "Newsreader",Georgia,serif;letter-spacing:-.075em}
.process-card-bottom{color:#817975;font:660 .72rem/1.3 "Instrument Sans",Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.process-copy{max-width:100%}
.process-step h3{max-width:12ch;margin:0 0 clamp(12px,2svh,24px);font:620 clamp(2.3rem,3.6vw,4.5rem)/1 var(--display-face),Arial,sans-serif;letter-spacing:-.068em;text-transform:uppercase}
.process-step p{max-width:43ch;margin:0;color:#5f5653;font:450 clamp(.99rem,1.12vw,1.15rem)/1.57 "Instrument Sans",Arial,sans-serif;letter-spacing:-.012em}

@media(max-width:860px){
 .process-showcase{height:205svh}.showcase-heading{top:8svh;left:6vw;right:6vw}
 .showcase-image{top:39%;width:min(61vw,540px);height:auto;border-width:4px}.showcase-statement{top:64%;font-size:clamp(2.7rem,6.2vw,4.8rem)}
 .process-flow{height:265svh}.process-inner{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:clamp(16px,3svh,28px);padding:clamp(25px,4svh,48px) clamp(20px,5vw,42px)}
 .process-intro{align-self:stretch;max-width:none}.process-eyebrow{margin-bottom:12px}.process-inner>.process-intro>h2{max-width:17ch;font-size:clamp(2.45rem,6.8vw,4.4rem)}
 .process-lead{max-width:48ch;margin-top:13px;font-size:.99rem}.process-index{display:flex;justify-content:space-between;gap:8px;margin-top:20px;padding:12px 0 0}
 .process-index::before,.process-index::after{top:0;left:0;width:100%;height:1px}.process-index::after{width:var(--process-line,0%);height:1px}
 .process-index li{gap:6px;font-size:.69rem;letter-spacing:.03em}.process-index li span:first-child{font-size:.94rem}.process-index li.is-current{transform:translateY(2px)}
 .process-card-window{--process-window-h:min(54svh,515px);--process-card-h:var(--process-window-h);align-self:stretch;flex:none;border-radius:20px}.process-steps{gap:0}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{padding:clamp(24px,4vw,38px)}
 .process-card-top span:first-child{font-size:clamp(5.2rem,10vw,7rem)}.process-step h3{font-size:clamp(2.1rem,5vw,3.2rem)}.process-step p{max-width:48ch;font-size:clamp(.98rem,2vw,1.07rem)}
}
@media(max-width:560px){
 .process-showcase{height:200svh}.showcase-heading{top:8svh}.showcase-image{top:38%;width:75vw;height:auto;border-width:3px;border-radius:11px}.showcase-statement{top:62%;width:calc(100% - 42px);font-size:clamp(2.15rem,7.8vw,3.2rem)}
 .process-flow{height:260svh}.process-inner{gap:15px}.process-inner>.process-intro>h2{font-size:clamp(2.15rem,8.8vw,3.1rem)}.process-lead{font-size:.92rem;line-height:1.44}.process-index{margin-top:13px}.process-index li{font-size:.64rem}
 .process-card-window{--process-window-h:min(49svh,405px);--process-card-h:var(--process-window-h)}.process-steps{gap:0}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{padding:clamp(19px,5vw,27px)}
 .process-card-top span:first-child{font-size:clamp(4.4rem,16vw,6.1rem)}.process-step h3{font-size:clamp(1.7rem,7vw,2.5rem)}.process-step p{font-size:.95rem;line-height:1.42}.process-card-bottom{font-size:.65rem}
}
@media(max-width:560px) and (max-height:680px){
 .process-inner{gap:11px;padding-top:17px;padding-bottom:17px}.process-inner>.process-intro>h2{font-size:clamp(2rem,8vw,2.7rem)}.process-lead{margin-top:8px}.process-index{margin-top:8px}.process-card-window{--process-window-h:48svh;--process-card-h:var(--process-window-h)}.process-card-top span:first-child{font-size:4rem}.process-step h3{font-size:clamp(1.6rem,6.5vw,2rem);margin-bottom:8px}.process-step p{font-size:.88rem;line-height:1.37}
}
@media(max-height:610px) and (orientation:landscape){
 .showcase-heading{top:6svh}.showcase-image{top:40%;height:auto;max-height:52svh}.showcase-statement{top:79%;font-size:clamp(2.1rem,4vw,3.6rem)}.process-inner{gap:20px;padding-top:18px;padding-bottom:18px}.process-inner>.process-intro>h2{font-size:clamp(2.1rem,4vw,3.6rem)}.process-card-window{--process-window-h:73svh;--process-card-h:var(--process-window-h)}.process-card-top span:first-child{font-size:4.5rem}.process-step h3{font-size:clamp(1.7rem,3.2vw,2.7rem)}.process-step p{font-size:.9rem;line-height:1.39}
}
@media(prefers-reduced-motion:reduce){
 .process-showcase{height:auto}.process-showcase-stage{position:relative;height:auto;min-height:0;padding:75px clamp(20px,6vw,100px)}.showcase-heading{position:relative;top:auto;left:auto;right:auto;opacity:1;transform:none}.showcase-gallery{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:45px 0;perspective:none}
 .showcase-image,.showcase-image--centre{position:relative;top:auto;left:auto;width:100%;height:auto;aspect-ratio:16/10;opacity:1;transform:none}.showcase-image[data-slot="-2"],.showcase-image[data-slot="2"]{display:none}.showcase-statement{position:relative;top:auto;left:auto;width:auto;opacity:1;transform:none;text-align:center;font-size:clamp(2.6rem,5.5vw,5.2rem)}
 .process-flow{height:auto}.process-inner{position:relative;display:block;height:auto;overflow:visible;padding-top:80px;padding-bottom:80px}.process-intro{max-width:760px}.process-index{display:none}.process-card-window{width:100%;height:auto;margin-top:36px;overflow:visible}.process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;height:auto;padding:0;transform:none!important}.process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{position:relative;inset:auto;min-height:430px;height:auto;opacity:1!important;visibility:visible}.process-card-top span:first-child{font-size:5rem}.process-step h3{font-size:clamp(2rem,3vw,3rem)}.process-step p{font-size:1rem}
}
@media(max-width:860px) and (prefers-reduced-motion:reduce){.showcase-gallery{grid-template-columns:repeat(2,1fr)}.showcase-image[data-slot="1"]{display:none}.process-steps{grid-template-columns:1fr}.process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{min-height:330px}}


/* approach-gallery.css */
/* Scroll-driven gallery. Shares the page's paper, type and restrained accents. */
.approach-gallery{--approach-gutter:max(24px,calc((100vw - 1152px)/2));position:relative;background:var(--paper);color:var(--ink)}
.approach-stage{padding:80px 0;background:var(--paper)}
.approach-heading,.approach-readout{width:100%;max-width:1152px;margin:0 auto;padding:0 24px}
.approach-eyebrow{margin:0 0 13px;color:#756d68;font:650 .72rem/1.35 "Instrument Sans",Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.approach-heading h2{margin:0;padding-bottom:.08em;font:630 clamp(2.4rem,4.4vw,3.75rem)/1.08 var(--display-face);letter-spacing:-.06em;text-transform:uppercase}
.approach-viewport{margin-top:clamp(26px,4.8svh,48px);outline-offset:-5px}
.approach-viewport:focus-visible{outline:1px solid #42433f}
.approach-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding:0 var(--approach-gutter)}
.approach-card{min-width:0;margin:0;padding:8px;background:#f6f3ef;border:1px solid rgba(74,63,57,.065);border-radius:24px;transform-origin:50% 50%}
.approach-card img{display:block;width:100%;aspect-ratio:16/10;height:auto;object-fit:cover;border-radius:17px;filter:saturate(.55);background:#e8e2dc}
.approach-card:nth-child(4) img{object-position:50% 57%}.approach-card:nth-child(5) img{object-position:50% 58%}
.approach-caption{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:17px 12px 12px}
.approach-caption h3{margin:0;font:600 clamp(1rem,1.35vw,1.2rem)/1.25 "Instrument Sans",Arial,sans-serif;letter-spacing:-.04em}
.approach-caption>span{flex-shrink:0;color:#7e746e;font:550 .63rem/1.3 "Instrument Sans",Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase}
.approach-description{padding:0 12px 16px;font-size:1rem;line-height:1.5;color:#5f5653}
.approach-readout{display:none;margin-top:clamp(26px,4svh,40px)}
.approach-readout-top{display:flex;justify-content:space-between;color:#7e746e;font:600 .68rem/1.3 "Instrument Sans",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.approach-readout-copy{display:grid;grid-template-columns:1fr 1.1fr;align-items:start;gap:36px;margin-top:12px;min-height:72px}
.approach-current-title{font:600 clamp(1.6rem,2.5vw,2.4rem)/1.15 var(--display-face);letter-spacing:-.055em}
.approach-current-description{max-width:49ch;color:#5f5653;font:450 clamp(.97rem,1.15vw,1.1rem)/1.55 "Instrument Sans",Arial,sans-serif;letter-spacing:-.015em}
.approach-progress{height:1px;width:100%;margin-top:22px;background:#dfd9d3;overflow:hidden}
.approach-progress>span{display:block;width:100%;height:100%;background:#6f625d;transform:scaleX(0);transform-origin:left}
.approach-sr-only,.approach-skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.approach-skip:focus{z-index:10;left:24px;top:12px;width:auto;height:auto;clip-path:none;padding:12px 18px;background:var(--ink);color:var(--paper);border-radius:8px}
.approach-gallery.is-scroll-gallery .approach-stage{position:sticky;top:0;display:flex;flex-direction:column;justify-content:center;height:100svh;padding:clamp(28px,5svh,60px) 0;overflow:hidden}
.approach-gallery.is-scroll-gallery .approach-track{display:flex;gap:32px;width:max-content;will-change:transform}
.approach-gallery.is-scroll-gallery .approach-card{flex:0 0 clamp(420px,44vw,700px);width:clamp(420px,44vw,700px);will-change:transform,opacity}
.approach-gallery.is-scroll-gallery .approach-card img{height:min(calc((clamp(420px,44vw,700px) - 18px)*.625),43svh);aspect-ratio:auto}
.approach-gallery.is-scroll-gallery .approach-description{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0;white-space:nowrap}
.approach-gallery.is-scroll-gallery .approach-readout{display:block}
@media(max-width:767px){
 .approach-gallery{--approach-gutter:22px}.approach-stage{padding:60px 0}.approach-heading,.approach-readout{padding:0 22px}
 .approach-heading h2{font-size:clamp(2.2rem,8.5vw,3.6rem)}.approach-track{grid-template-columns:1fr;gap:24px}
 .approach-gallery.is-scroll-gallery .approach-stage{padding:28px 0}.approach-viewport{margin-top:26px}
 .approach-gallery.is-scroll-gallery .approach-track{gap:18px}.approach-gallery.is-scroll-gallery .approach-card{width:84vw;flex-basis:84vw;border-radius:20px}
 .approach-gallery.is-scroll-gallery .approach-card img{height:min(51vw,32svh);border-radius:14px}
 .approach-caption{gap:8px;padding:14px 8px 9px}.approach-caption h3{font-size:.99rem}.approach-caption>span{font-size:.55rem;letter-spacing:.04em}
 .approach-card:nth-child(5) .approach-caption>span{display:none}.approach-readout{margin-top:26px}
 .approach-readout-copy{display:block;min-height:122px;margin-top:12px}.approach-current-title{font-size:1.7rem;line-height:1.12}.approach-current-description{margin-top:12px;font-size:.97rem;line-height:1.5;max-width:39ch}.approach-progress{margin-top:18px}
}
@media(max-height:680px){
 .approach-gallery.is-scroll-gallery .approach-stage{padding:20px 0}.approach-viewport{margin-top:18px}.approach-gallery.is-scroll-gallery .approach-card img{height:30svh}.approach-readout{margin-top:20px}.approach-readout-copy{min-height:65px}.approach-progress{margin-top:12px}
}
@media(max-width:767px) and (max-height:680px){
 .approach-eyebrow{margin-bottom:8px}.approach-heading h2{font-size:2rem}.approach-gallery.is-scroll-gallery .approach-card img{height:27svh}.approach-readout-copy{min-height:114px}.approach-current-title{font-size:1.4rem}.approach-current-description{margin-top:9px;font-size:.9rem}
}
@media(prefers-reduced-motion:reduce){.approach-track{grid-template-columns:repeat(2,minmax(0,1fr))}.approach-viewport{outline:none}.approach-caption>span{display:none}}
@media(max-width:767px) and (prefers-reduced-motion:reduce){.approach-track{grid-template-columns:1fr}}


/* light-finish.css */
/* A shared ivory surface, blush light and consistent photographic depth.
   Charcoal stays in the opening story and the personal introduction. */
:root{--stone-light:219,219,213;--glass-edge:rgba(255,255,255,.82);--accent-ink:#43443f}

/* The light arrives with the statement, on the existing scroll timeline. */
.process-showcase,.process-showcase-stage,.approach-gallery,.approach-stage,.process-flow{background-color:var(--paper)}
.process-showcase-stage::before{
 content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
 background:radial-gradient(ellipse 43% 24% at 50% 70%,rgba(var(--stone-light),.58) 0%,rgba(var(--stone-light),.18) 48%,rgba(var(--stone-light),0) 100%);
 opacity:var(--showcase-light,1);
 transform:translate3d(0,calc((1 - var(--showcase-light,1))*32px),0);
}
.showcase-image{
 border:5px solid rgba(255,254,250,.78);border-radius:20px;background:rgba(255,255,255,.45);
 box-shadow:0 28px 62px -24px rgba(35,35,32,.22),0 8px 20px -10px rgba(35,35,32,.14),inset 0 1px 0 #fff;
 -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
 transform:translate3d(calc(-50% + var(--fan-x,0vw)),calc(-50% + var(--fan-y,0px) + var(--fan-exit,0vh)),0) rotate(var(--fan-angle,0deg)) rotateY(var(--fan-depth,0deg)) scale(var(--fan-scale,.9));
}
.showcase-image::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.65);border-radius:14px;pointer-events:none;background:linear-gradient(145deg,rgba(255,255,255,.09),transparent 35%)}
.showcase-image--centre{box-shadow:0 36px 70px -26px rgba(35,35,32,.25),0 10px 24px -12px rgba(35,35,32,.15),inset 0 1px 0 #fff}
.showcase-image img{filter:saturate(.82) contrast(1.01)}
.showcase-image--centre img{filter:saturate(.95) contrast(1.01)}
.showcase-statement{width:min(1180px,calc(100% - 80px));font-size:clamp(2.7rem,4.6vw,5.6rem);font-weight:580;line-height:1.08;letter-spacing:-.045em;text-wrap:balance}
.showcase-statement>span{display:block}

/* A low blush light continues behind the translucent gallery frames. */
.approach-stage{position:relative;isolation:isolate}
.approach-stage::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 42% 20% at 50% 82%,rgba(var(--stone-light),.22),rgba(var(--stone-light),.06) 48%,transparent 100%)}
.approach-card{background:rgba(255,254,250,.62);border-color:var(--glass-edge);box-shadow:0 18px 40px -24px rgba(35,35,32,.20),inset 0 1px 0 #fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.approach-card img{filter:saturate(.86);border:1px solid rgba(255,255,255,.5)}
.approach-eyebrow,.approach-count{color:var(--accent-ink)}
.approach-progress{background:rgba(67,68,63,.16)}
.approach-progress>span{background:var(--accent-ink)}
.process-inner{isolation:isolate}
.process-inner::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 55% 42% at 77% 57%,rgba(var(--stone-light),.24),transparent 100%)}
.process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{background:rgba(251,248,245,.91);border-color:rgba(88,88,82,.13);box-shadow:inset 0 1px 0 #fff,0 22px 60px -30px rgba(35,35,32,.14)}

/* Pricing is a compact continuation of the light chapter. */
.pricing{margin-top:0;padding:0;background:var(--paper);color:var(--ink);border-radius:0}
.pricing-intro{padding-top:clamp(44px,5svh,64px);padding-bottom:clamp(28px,4svh,44px)}
.pricing .pricing-intro h2{color:var(--ink)!important;font-size:clamp(2.5rem,3.7vw,4.2rem);letter-spacing:-.055em;line-height:1.08}
.pricing .pricing-intro>p:last-child{color:#655d59;max-width:660px;margin-top:16px}
.pricing .founding-banner{background:#deddd8;color:var(--ink);border-top:1px solid rgba(67,68,63,.07);border-bottom:1px solid rgba(67,68,63,.07)}
.price-options{border-radius:0;background:transparent;padding-top:clamp(28px,3.5vw,46px);padding-bottom:clamp(32px,4vw,60px)}
.price-card{background:#faf8f4;border:1px solid rgba(106,88,96,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 15px 38px -24px rgba(35,35,32,.14)}
.price-card--premium{background:linear-gradient(145deg,#eaeae4 0%,#f3f3ee 66%,#fafaf6 100%);color:var(--ink);border-color:rgba(88,88,82,.23)}
.price-card--premium .price-label{color:var(--accent-ink)}
.price-card--premium .price-note{color:#655d59}
.price-card--premium .price-list,.price-card--premium .price-list li{border-color:rgba(67,68,63,.18)}
.price-card .text-link::after{background:#42433f}
.price-card .text-link:hover{color:var(--accent-ink)}
.pricing-footnote{padding-bottom:clamp(60px,7svh,90px);background:transparent}

@media(max-width:860px){
 .showcase-image{border-width:4px;border-radius:16px}.showcase-image::after{border-radius:11px}
 .showcase-statement{width:calc(100% - 48px);font-size:clamp(2.3rem,5.7vw,4.5rem)}
 .pricing{padding:0;background:var(--paper);border-radius:0}
 .pricing-intro{padding:44px clamp(20px,5vw,42px) 30px}
 .pricing .pricing-intro h2{font-size:clamp(2.3rem,6.5vw,3.5rem)}
 .pricing .price-options{padding-top:28px;padding-bottom:32px;background:transparent}
 .pricing .pricing-footnote{padding-bottom:64px;background:transparent}
}
@media(max-width:560px){
 .showcase-image{border-width:3px;border-radius:14px}.showcase-image::after{border-radius:10px}
 .showcase-statement{width:calc(100% - 36px);font-size:clamp(1.75rem,6.9vw,2.65rem);line-height:1.13;letter-spacing:-.04em}
 .process-showcase-stage::before{background:radial-gradient(ellipse 66% 22% at 50% 65%,rgba(var(--stone-light),.52),rgba(var(--stone-light),.12) 60%,transparent 100%)}
 .approach-stage::before{background:radial-gradient(ellipse 70% 20% at 50% 82%,rgba(var(--stone-light),.19),transparent 100%)}
 .showcase-image,.approach-card{-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media(prefers-reduced-motion:reduce){
 .process-showcase-stage::before{opacity:1;transform:none}
 .showcase-image,.showcase-image--centre{transform:none}
 .showcase-statement{font-size:clamp(1.75rem,4.6vw,5.6rem)}
 .pricing{background:var(--paper)}
}

/* Focused process composition. Step selection remains on the existing scroll timeline. */
.process-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px)}
.process-inner::before{display:none}
.process-intro{position:relative;isolation:isolate}
.process-intro::before{content:"";position:absolute;z-index:-1;inset:-55px -45px -35px;pointer-events:none;background:radial-gradient(ellipse at 35% 38%,rgba(var(--stone-light),.55),rgba(var(--stone-light),.16) 45%,transparent 72%)}
.process-inner>.process-intro>h2{max-width:none;font-size:clamp(2.4rem,3.5vw,4rem);line-height:1.04;letter-spacing:-.06em}
.process-lead{font-size:clamp(.97rem,1.1vw,1.08rem);max-width:38ch;margin-top:22px}
.process-index{margin-top:30px;gap:12px}
.process-card-window{--process-window-h:min(62svh,560px);overflow:visible;border-radius:22px}
.process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{padding:clamp(24px,2.5vw,40px);gap:20px;justify-content:flex-start;border:1px solid rgba(255,255,255,.95);border-radius:22px;background:rgba(249,247,243,.82);box-shadow:0 22px 50px -30px rgba(35,35,32,.2),0 0 0 1px rgba(83,69,73,.07);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.process-step-heading{display:flex;align-items:center;gap:clamp(18px,2vw,30px)}
.process-number{flex:none;color:#665950;font:400 clamp(4rem,5.7vw,6rem)/.9 "Newsreader",Georgia,serif;letter-spacing:-.075em}
.process-step h3{max-width:none;margin:0;font:570 clamp(1.6rem,2.25vw,2.6rem)/1.12 var(--display-face),Arial,sans-serif;letter-spacing:-.045em;text-transform:none}
.process-step p{max-width:45ch;font-size:clamp(.94rem,1.04vw,1.04rem);line-height:1.55}
.process-preview{position:relative;flex:1;min-height:100px;max-height:185px;width:100%;margin-top:auto;overflow:hidden;border:1px solid rgba(108,89,83,.1);border-radius:9px;background:#fffefa}
.process-preview--brief{display:flex;flex-direction:column;justify-content:center;padding:clamp(16px,2vw,28px);background:linear-gradient(130deg,#fffefa,#f0ede6);box-shadow:inset 0 1px 0 white}
.brief-caption{color:#776b65;font:600 .6rem/1.3 var(--display-face),Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.brief-title{margin:8px 0 18px;color:#4b403a;font:400 clamp(1.6rem,2.4vw,2.6rem)/1.1 "Newsreader",Georgia,serif;letter-spacing:-.03em}
.brief-topics{display:flex;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid #d9d2c9;color:#625952;font:500 .65rem/1.3 var(--display-face),Arial,sans-serif}
.process-preview--direction{display:grid;grid-template-columns:42% 1fr;grid-template-rows:1fr 25px;gap:0;background:#eee9e1}
.process-preview--direction>img{grid-row:1/3;width:100%;height:100%;min-height:0;object-fit:cover}
.direction-type{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;padding:8px;color:#463e38}
.direction-type>span{font:400 clamp(2.5rem,4vw,4.5rem)/1 "Newsreader",Georgia,serif}
.direction-type>small{margin-top:6px;font:500 .6rem/1.2 var(--display-face),Arial,sans-serif}
.direction-palette{display:flex}.direction-palette i{flex:1;background:#fffefa}.direction-palette i:nth-child(2){background:#bdbfb6}.direction-palette i:nth-child(3){background:#302d2c}
.process-preview--website{display:flex;flex-direction:column;background:#e9e6e0}
.preview-browser{flex:none;display:flex;align-items:center;gap:4px;height:23px;padding:0 10px;background:#fffefa;border-bottom:1px solid rgba(108,89,83,.1)}
.preview-browser>span{width:3px;height:3px;border-radius:50%;background:#c8c0b8}
.preview-browser>i{margin:auto;font:500 .55rem/1 var(--display-face),Arial,sans-serif;color:#796e65;letter-spacing:.04em}
.process-preview--website>img{display:block;width:100%;height:calc(100% - 23px);min-height:0;object-fit:cover;object-position:50% 48%}
@media(max-width:860px){
 .process-inner{gap:20px;padding-top:24px;padding-bottom:24px}
 .process-inner>.process-intro>h2{font-size:clamp(2rem,5.8vw,3.2rem)}
 .process-lead{margin-top:12px;font-size:.94rem;max-width:48ch}
 .process-index{margin-top:15px;gap:8px}
 .process-card-window{--process-window-h:min(49svh,430px)}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{padding:24px;gap:15px}
 .process-number{font-size:4.5rem}.process-step h3{font-size:clamp(1.65rem,3.8vw,2.3rem)}
 .process-step p{font-size:.95rem;max-width:55ch}
 .process-preview{max-height:155px;min-height:90px}
 .brief-title{font-size:2rem;margin:7px 0 12px}.direction-type>span{font-size:3rem}
}
@media(max-width:560px){
 .process-inner{padding:20px;gap:18px}
 .process-inner>.process-intro>h2{font-size:clamp(1.8rem,7.7vw,2.5rem)}
 .process-eyebrow{font-size:.66rem;margin-bottom:10px}
 .process-lead{font-size:.9rem;line-height:1.45;margin-top:10px}
 .process-index{margin-top:12px;padding-top:10px}
 .process-card-window{--process-window-h:min(49svh,400px)}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{padding:20px;gap:14px;border-radius:18px;-webkit-backdrop-filter:none;backdrop-filter:none}
 .process-step-heading{gap:20px}.process-number{font-size:3.9rem}.process-step h3{font-size:clamp(1.5rem,6vw,2rem)}
 .process-step p{font-size:.91rem;line-height:1.45}
 .process-preview{max-height:130px;min-height:90px}.process-preview--brief{padding:14px}
 .brief-caption{font-size:.55rem}.brief-title{font-size:1.65rem;margin:6px 0 10px}.brief-topics{font-size:.55rem;padding-top:8px}
 .direction-type>span{font-size:2.8rem}.direction-type>small{font-size:.53rem}
}
@media(max-width:560px) and (max-height:700px){
 .process-inner{padding-top:15px;padding-bottom:15px;gap:13px}
 .process-inner>.process-intro>h2{font-size:clamp(1.7rem,7vw,2.2rem)}
 .process-lead{font-size:.85rem;margin-top:8px}.process-index{margin-top:9px}
 .process-card-window{--process-window-h:49svh}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{padding:16px;gap:10px}
 .process-number{font-size:3.3rem}.process-step h3{font-size:1.5rem}.process-step p{font-size:.86rem;line-height:1.4}
 .process-preview{min-height:76px;max-height:105px}.brief-title{font-size:1.45rem;margin:4px 0 7px}.brief-caption{font-size:.5rem}.brief-topics{padding-top:6px}
 .process-preview--direction{grid-template-rows:1fr 17px}.direction-type>span{font-size:2.2rem}
}
@media(max-height:610px) and (orientation:landscape){
 .process-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;padding:18px 26px}
 .process-inner>.process-intro>h2{font-size:clamp(1.7rem,3.2vw,2.6rem)}
 .process-lead{font-size:.85rem}.process-index{margin-top:16px}
 .process-card-window{--process-window-h:88svh;align-self:center}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{padding:16px;gap:10px}
 .process-number{font-size:3.3rem}.process-step h3{font-size:1.5rem}.process-step p{font-size:.83rem;line-height:1.4}
 .process-preview{min-height:65px;max-height:110px}.brief-title{font-size:1.5rem;margin:4px 0 8px}
}
@media(prefers-reduced-motion:reduce){
 .process-inner{display:block;height:auto}.process-card-window{height:auto}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{min-height:410px;height:auto}
 .process-step-heading{gap:16px}.process-number{font-size:3.5rem}.process-step h3{font-size:1.7rem}
 .process-preview{flex:none;height:145px;margin-top:10px}
}

/* Neutral studio system: architectural edges, warm paper and charcoal contrast. */
:root{--stone-accent:#deddd8;--stone-light:219,219,213;--accent-ink:#43443f}
.announcement,.pricing .founding-banner{background:#deddd8;color:#181917;border-color:rgba(35,35,32,.12)}
.process-intro::before{background:radial-gradient(ellipse at 35% 38%,rgba(var(--stone-light),.43),rgba(var(--stone-light),.1) 45%,transparent 72%)}
.process-inner>.process-intro>h2{letter-spacing:-.045em}
.process-intro h2 span{color:#454640}
.process-lead,.process-step p,.approach-description,.approach-current-description,.pricing .pricing-intro>p:last-child,.price-note{color:#4c4d47}
.process-eyebrow,.approach-eyebrow,.approach-count{color:#555750}
.process-card-window{border-radius:12px;--process-window-h:min(59svh,520px)}
.process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{border:1px solid #d7d8d1;border-radius:12px;background:rgba(249,249,245,.95);box-shadow:0 12px 28px -24px rgba(35,35,32,.22);-webkit-backdrop-filter:none;backdrop-filter:none}
.process-number{color:#353731}
.process-step h3{font-weight:610;letter-spacing:-.035em}
.process-outcomes{display:grid;gap:0;margin:auto 0 0;padding:0}
.process-outcomes>div{display:grid;grid-template-columns:.85fr 1.35fr;gap:14px;padding:14px 0;border-top:1px solid #d7d8d1}
.process-outcomes dt{font:600 .9rem/1.45 var(--display-face);color:#252722}
.process-outcomes dd{margin:0;font:450 .9rem/1.45 var(--display-face);color:#555750}
.approach-card{border:1px solid #dadbd4;border-radius:15px;background:#fafaf6;box-shadow:0 15px 28px -24px rgba(35,35,32,.2)}
.approach-card img{border-radius:9px}
.approach-viewport:focus-visible{outline-color:#353731}
.approach-progress{background:#d6d7d0}.approach-progress>span{background:#43443f}
.price-card,.price-card--premium{border-radius:12px;border-color:#d3d5cc;box-shadow:none}
.price-card--premium{background:#edeee7}
.price-card .text-link{color:#252722}.price-card .text-link::after{background:#555750}
.pink-link,.closing-link{background:#242622;color:#fffefa;border:1px solid #242622;border-radius:8px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.pink-link:hover,.closing-link:hover{background:#41443d;color:#fffefa;box-shadow:none}
.about-eyebrow,.about-signoff,html.has-motion .about-eyebrow,html.has-motion .about-signoff{color:#deddd8}
html.has-motion .about.is-lit .about-eyebrow,html.has-motion .about.is-lit .about-signoff{color:#43443f}
.footer-email,.footer-contact p,.footer-intro p{color:#454640}
.process-preview{border-color:#d6d8cf;border-radius:6px}
@media(max-width:860px){
 .process-card-window{--process-window-h:min(49svh,430px)}
 .process-step p{font-size:1rem;line-height:1.45}
 .process-outcomes>div{padding:12px 0}.process-outcomes dt,.process-outcomes dd{font-size:.875rem}
}
@media(max-width:560px){
 .process-card-window{--process-window-h:min(50svh,420px)}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{border-radius:12px}
 .process-step-heading{gap:16px}.process-number{font-size:3.4rem}.process-step h3{font-size:1.4rem}
 .process-outcomes>div{padding:10px 0;gap:10px;grid-template-columns:.85fr 1.3fr}
 .process-outcomes dt,.process-outcomes dd{font-size:.875rem;line-height:1.35}
 .process-lead{font-size:1rem}
}
@media(max-width:560px) and (max-height:700px){
 .process-inner{padding-top:12px;padding-bottom:12px;gap:12px}
 .process-eyebrow{margin-bottom:8px}.process-index{margin-top:8px}
 .process-inner>.process-intro>h2{font-size:1.75rem}
 .process-card-window{--process-window-h:51svh}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{padding:14px;gap:9px}
 .process-number{font-size:2.7rem}.process-step h3{font-size:1.3rem}
 .process-outcomes>div{padding:7px 0}.process-outcomes dt,.process-outcomes dd{font-size:.875rem}
 .process-preview{min-height:65px;max-height:85px}
}
@media(max-height:610px) and (orientation:landscape){
 .process-card-window{--process-window-h:89svh}
 .process-outcomes>div{padding:6px 0}.process-outcomes dt,.process-outcomes dd{font-size:.875rem}
}
@media(prefers-reduced-motion:reduce){
 .about-eyebrow,.about-signoff{color:#43443f}
 .process-card-window{height:auto}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{min-height:440px;height:auto}
}

@media(max-width:560px) and (max-height:700px){
 .process-outcomes{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .process-outcomes>div{display:block;padding:10px 0}.process-outcomes dt{font-size:.875rem}
 .process-outcomes dd{display:none}
}

/* Restored pink accents, with charcoal type for readable contrast. */
:root{--studio-accent:#f2cada;--studio-accent-hover:#f5dce5;--studio-accent-ink:#875568}
.announcement,.pricing .founding-banner{background:var(--studio-accent);color:var(--ink);border-color:transparent}
.announcement-dot,.founding-banner .announcement-dot{color:inherit}
.process-intro::before{background:radial-gradient(ellipse at 28% 42%,rgba(246,218,229,.24),transparent 70%)}
.process-intro h2 span{color:var(--ink)}
.process-number{color:var(--ink)}
.process-index li.is-current,.approach-count{color:var(--studio-accent-ink)}
.process-index::after,.approach-progress>span{background:var(--studio-accent-ink)}
.price-card--premium{background:#fbf4f5;border-color:rgba(158,104,126,.23)}
.price-card--premium .price-label{color:var(--studio-accent-ink)}
.price-card .text-link::after{background:var(--studio-accent-ink)}
.price-card .text-link:hover,.footer-email:hover{color:var(--studio-accent-ink)}
.pink-link,.closing-link{background:var(--studio-accent);border-color:var(--studio-accent);color:var(--ink)}
.pink-link:hover,.closing-link:hover{background:var(--studio-accent-hover);border-color:var(--studio-accent-hover);color:var(--ink)}
.direction-palette i:nth-child(2){background:var(--studio-accent)}
.approach-viewport:focus-visible{outline-color:var(--studio-accent-ink)}
.service-toggle:focus-visible,.service-enquire:focus-visible{outline-color:var(--studio-accent)}


/* page-flow.css */
/* A single route from the offer, through evidence, to an enquiry. */
html{scroll-behavior:smooth;scroll-padding-top:24px}
:root{--nav-color:255,254,250}
.story{height:112svh;min-height:700px;background:var(--ink)}
.stage{position:sticky;top:0;height:100svh;min-height:620px;background:var(--ink)}
.visual{height:100%;min-height:0;clip-path:none}
.visual::before,.hero::before{display:none}
.visual::after{background:linear-gradient(90deg,rgba(24,22,23,.48),rgba(24,22,23,.2) 65%,rgba(24,22,23,.08))}
.hero-image{filter:brightness(1.02) contrast(1.02) saturate(.5);transform:scale(1.025);object-position:50% 50%;animation:none}
.nav{top:0;min-height:100px;color:var(--paper);padding-inline:clamp(24px,5vw,80px)}
.nav-links{display:flex;align-items:center;gap:30px;font:550 .875rem/1.4 var(--display-face)}
.nav-project{padding:12px 17px;border:1px solid #fff8;border-radius:7px}
.nav-links a:hover{text-decoration:underline;text-underline-offset:5px}
.hero{position:absolute;inset:0;min-height:0;color:var(--paper);opacity:1;visibility:visible;pointer-events:auto}
.hero .scene-inner{min-height:0;padding:125px clamp(24px,5vw,80px) 95px;justify-content:center}
.hero-intro{display:block;color:var(--paper);max-width:none;margin:0 0 26px;font:500 clamp(.875rem,1vw,1rem)/1.5 var(--display-face);text-transform:none;letter-spacing:.015em}
.hero h1{width:100%;max-width:1250px;margin:0;color:var(--paper);font:580 clamp(3.5rem,7.4vw,7.4rem)/1.03 var(--display-face);letter-spacing:-.065em;text-transform:none;text-align:left;text-wrap:balance}
.hero-lower{margin-top:28px;color:var(--paper)}
.hero-copy{max-width:540px;color:var(--paper);font:450 clamp(1rem,1.25vw,1.15rem)/1.6 var(--display-face);letter-spacing:-.015em}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:28px}
.primary-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 22px;border:1px solid transparent;border-radius:7px;background:#f2cada;color:#181617;font:650 .95rem/1.3 var(--display-face);letter-spacing:-.01em;text-decoration:none;cursor:pointer;transition:background .2s,transform .2s}
.primary-cta:hover{background:#f5dce5;transform:translateY(-2px)}
.quiet-cta{display:inline-flex;align-items:center;min-height:44px;color:inherit;font:550 .95rem/1.4 var(--display-face);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.scroll-cue{color:var(--paper);bottom:35px;opacity:1;z-index:20}
.scroll-line{background:var(--paper)}
/* The first light surface rises over the photograph, then the work opens out. */
.process-showcase{z-index:4;margin-top:-12svh;height:185svh;background:transparent}
.process-showcase-stage{border-radius:24px 24px 0 0;background:var(--paper)}
.showcase-heading{top:clamp(28px,5svh,55px)}
.work-note{margin-top:10px;color:#625c58;font:450 .875rem/1.5 var(--display-face)}
.showcase-statement{font-size:clamp(2.2rem,4.5vw,4.9rem)}
.showcase-image{top:44%}
.showcase-statement{top:77%}
html.has-motion .services,.services{margin-top:0!important;clip-path:none;will-change:auto;padding:clamp(70px,8vw,120px) clamp(20px,4vw,64px) clamp(65px,7vw,110px);background:var(--paper)}
.services-heading{min-height:0;max-width:1450px;margin:0 auto 20px;padding:0;align-items:start;gap:36px}
.services-heading::after{display:none}
.services-heading h2{font-size:clamp(2.5rem,4.7vw,5rem);line-height:1.06;letter-spacing:-.06em}
.services-title-block>p{max-width:660px;margin-top:20px;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.5}
.services-heading>p{font-size:.8rem;line-height:1.5;white-space:nowrap}
.services-scope{max-width:1450px;margin:0 auto 28px;font:450 .9375rem/1.5 var(--display-face);color:#655e5a}
.service-grid{max-width:1450px;margin:0 auto}
.services-heading,.services-heading .services-title-block>p,.services-heading>p{opacity:1;transform:none}
html.has-motion .services-heading{opacity:var(--services-title-opacity,1);transform:translateY(var(--services-title-y,0px))}
html.has-motion .services-heading .services-title-block>p,html.has-motion .services-heading>p{opacity:1;transform:none}
.approach-heading h2{font-size:clamp(2.5rem,4.7vw,5rem)}
/* The person and the process are one continuous chapter. */
.about,html.has-motion .about{height:auto;min-height:0;padding:0;overflow:clip;background:var(--ink)}
.about-grid{position:relative;top:auto;height:auto;min-height:0;padding:clamp(70px,8vw,120px) clamp(24px,6vw,95px) 45px;gap:clamp(40px,6vw,95px);overflow:visible}
.about-photos{height:560px;max-height:70svh;width:100%;max-width:520px;margin:0;padding:0;background:transparent}
.about-copy{padding:0;background:transparent}
.about-copy h2{font-size:clamp(2.7rem,4.8vw,5.1rem);line-height:1.04}
.about-body{margin-top:24px}.about-body p{font-size:clamp(1rem,1.15vw,1.1rem);line-height:1.65}
.about-process-link{display:inline-block;margin-top:24px;color:inherit;font:550 .9375rem/1.4 var(--display-face);text-underline-offset:6px}
.about-signoff{margin-top:24px;font-size:1.5rem}
.process-flow{height:225svh;background:var(--paper)}
.process-inner{padding-top:45px;padding-bottom:45px}
.process-inner>.process-intro>h2{font-size:clamp(2.2rem,3.5vw,4rem)}
.process-eyebrow{font-size:.8125rem}.process-lead{font-size:1rem}
.process-index li{font-size:.75rem;letter-spacing:.04em}
.process-step p{font-size:1rem;line-height:1.5}
/* The decision section stays compact and readable. */
.pricing-intro{max-width:1000px;margin:0 auto;padding:70px 24px 30px;text-align:center}
.pricing .pricing-intro h2{font-size:clamp(2.3rem,4vw,4.1rem)}
.pricing .pricing-intro>p:last-child{font-size:1rem;line-height:1.6;margin:16px auto 0}
.price-options{max-width:1250px;margin:0 auto;padding:32px clamp(20px,4vw,54px) 24px;gap:24px}
.price-card{padding:clamp(26px,3vw,42px)}
.price-card h3{font-size:clamp(2rem,3vw,3.2rem)}
.price-card .price-note{font-size:1rem;line-height:1.6}
.price-card .text-link{min-height:46px;align-items:center}
.pricing-footnote{max-width:950px;margin:auto;padding:0 24px 18px;font-size:.9375rem;line-height:1.6}
.pricing-footnote a{text-underline-offset:4px}
.scope-assurance{text-align:center;padding:0 24px 65px;font:600 .875rem/1.5 var(--display-face);color:#4f4946}
/* Useful answers sit close to the decision, without another full-screen sequence. */
.project-faq{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,8vw,110px);max-width:1450px;margin:0 auto;padding:70px clamp(24px,6vw,80px) 100px}
.section-kicker{font:650 .8125rem/1.4 var(--display-face);text-transform:uppercase;letter-spacing:.1em;color:#756b67;margin-bottom:16px}
.faq-intro h2,.enquiry-intro h2{font:620 clamp(2.4rem,3.6vw,4rem)/1.08 var(--display-face);letter-spacing:-.055em;margin:0 0 24px}
.faq-list details{border-top:1px solid #d8d3cf}.faq-list details:last-child{border-bottom:1px solid #d8d3cf}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px;padding:20px 0;list-style:none;cursor:pointer;font:600 1rem/1.5 var(--display-face)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';font-size:1.6rem;font-weight:400;flex:none}
.faq-list details[open] summary::after{content:'−'}
.faq-list p{max-width:58ch;margin:0;padding:0 30px 24px 0;font:450 1rem/1.65 var(--display-face);color:#5b5450}
.closing{height:135svh}
.project-enquiry{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,110px);max-width:1450px;margin:0 auto;padding:clamp(75px,9vw,130px) clamp(24px,6vw,80px)}
.enquiry-intro>p:not(.section-kicker){max-width:39ch;font:450 1.05rem/1.65 var(--display-face);color:#5b5450;margin:0 0 24px}
.enquiry-intro>a{font:550 1rem/1.5 var(--display-face);color:var(--ink);text-underline-offset:5px}
#project-enquiry-form{display:grid;gap:20px}
.enquiry-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
#project-enquiry-form label{display:grid;gap:9px;font:550 .875rem/1.45 var(--display-face);min-width:0}
#project-enquiry-form input,#project-enquiry-form select,#project-enquiry-form textarea{width:100%;min-width:0;min-height:48px;padding:12px 13px;border:1px solid #cec8c2;border-radius:6px;background:#faf9f6;color:var(--ink);font:450 1rem/1.5 var(--display-face)}
#project-enquiry-form textarea{resize:vertical;min-height:110px}
#project-enquiry-form :is(input,select,textarea):focus-visible{outline:2px solid #875568;outline-offset:2px}
.enquiry-help,.enquiry-status{font:450 .875rem/1.5 var(--display-face);color:#655d59;margin:0}
#project-enquiry-form>.primary-cta{justify-self:start}
.enquiry-status:empty{display:none}
.site-footer{border-top:1px solid #d8d3cf}.footer-main{padding-top:60px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #875568;outline-offset:5px}
@media(max-width:860px){
 .story{height:108svh;min-height:660px}.stage{height:100svh;min-height:600px}
 .hero,.hero .scene-inner{min-height:0}.hero .scene-inner{height:100%;padding:115px 24px 90px}
 .hero h1{font-size:clamp(3rem,8vw,5.6rem);width:100%;line-height:1.06}
 .hero-intro{max-width:32ch;font-size:.875rem}.hero-copy{font-size:1rem;max-width:36ch}
 .hero-lower{margin-top:24px}.hero-actions{gap:22px;margin-top:25px}
 .nav{min-height:84px;padding-inline:24px}.wordmark{font-size:1.4rem}.nav-links{gap:16px}.nav-links>a:not(.nav-project){display:none}.nav-project{font-size:.8125rem;padding:10px 12px}
 .process-showcase{height:170svh;margin-top:-8svh}.showcase-image{top:44%}.showcase-statement{top:75%;font-size:clamp(2rem,6vw,3rem)}
 .services-heading{display:block;min-height:0;padding:0;margin-bottom:16px}.services-heading>p{display:none}.services-title-block>p{font-size:1.05rem;line-height:1.55}
 .services-scope{font-size:.9375rem;margin-bottom:24px}.services-heading h2{font-size:clamp(2.4rem,7vw,4rem)}
 .about-grid{display:grid;grid-template-columns:.85fr 1.15fr;padding:70px 24px 25px;gap:30px}
 .about-photos{height:470px;max-height:none}.about-copy{transform:none}.about-copy h2{font-size:clamp(2.2rem,5.5vw,3.5rem)}
 .about-body p{font-size:1rem}.about-signoff small{font-size:.875rem}
 .process-flow{height:220svh}.process-inner{padding:28px 24px;gap:20px}.process-inner>.process-intro>h2{font-size:clamp(2rem,6vw,3rem)}
 .process-card-window{--process-window-h:min(50svh,430px)}
 .project-faq,.project-enquiry{grid-template-columns:1fr;gap:35px;padding:65px 24px}
 .faq-intro h2 br,.enquiry-intro h2 br{display:none}.faq-intro h2,.enquiry-intro h2{font-size:clamp(2.4rem,6vw,3.4rem)}
 .pricing-intro{padding-top:55px}.scope-assurance{padding-bottom:40px}
 .closing{height:130svh}
}
@media(max-width:560px){
 .hero h1{font-size:clamp(2.65rem,10.4vw,3.8rem);letter-spacing:-.06em}
 .hero-intro{margin-bottom:20px}.hero-actions{gap:18px}.primary-cta{font-size:.875rem;padding-inline:18px}.quiet-cta{font-size:.875rem}
 .hero-actions .quiet-cta{min-height:44px}.nav{padding-inline:20px}.wordmark{font-size:1.3rem}.nav-project{max-width:145px;text-align:center;font-size:.75rem}
 .scroll-cue{bottom:40px}.work-note{max-width:27ch;font-size:.8125rem}
 .showcase-heading{top:32px}.showcase-statement{top:76%;font-size:clamp(1.8rem,7vw,2.5rem)}
 .services{padding:58px 20px 62px}.services-heading h2{font-size:2.5rem}.service-grid{gap:18px}
 .about-grid{grid-template-columns:1fr;padding:55px 20px 22px;gap:25px}.about-photos{height:410px;width:min(100%,380px);margin:auto}.about-copy{width:auto;padding:0}.about-copy h2{font-size:2.8rem}
 .process-inner{padding:22px 20px;gap:18px}.process-inner>.process-intro>h2{font-size:2rem}.process-lead{line-height:1.45}
 .process-step h3{font-size:1.5rem}.process-index li{font-size:.7rem;letter-spacing:0}
 .price-options{padding-inline:20px}.enquiry-fields{grid-template-columns:1fr;gap:20px}
 .faq-list summary{font-size:1rem;min-height:74px}.faq-list p{padding-right:0}
 .closing{height:120svh}.closing-link{white-space:normal;text-align:center}
}
/* A short phone or enlarged text gets readable flowing steps instead of a clipped pin. */
@media(max-width:860px) and (max-height:700px){
 .process-flow{height:auto}.process-inner{position:relative;height:auto;display:block;padding:45px 20px}
 .process-index{display:none}.process-card-window{height:auto;margin-top:25px}.process-steps{display:grid;gap:16px;height:auto}
 .process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{position:relative;inset:auto;opacity:1!important;visibility:visible!important;height:auto;min-height:350px;padding:24px}
 .process-preview{flex:none;height:110px;max-height:110px}.process-outcomes{margin-top:18px}.process-outcomes dd{display:block}
 .hero .scene-inner{padding-top:100px;padding-bottom:75px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}.story,.stage{height:auto;min-height:650px}.stage{position:relative}.hero{position:relative}.hero .scene-inner{min-height:650px}
 .process-showcase{height:auto;margin-top:0}.process-showcase-stage{height:auto}
 .showcase-image,.showcase-image--centre,.showcase-statement{transform:none}
 .showcase-heading{position:relative;top:auto}.showcase-statement{position:relative;top:auto}
 .services-heading,.service-card,.price-card{opacity:1!important;transform:none!important}
 .about,html.has-motion .about{background:var(--paper)}.about-copy,.about-copy h2,.about-eyebrow,.about-signoff{color:var(--ink)}.about-body p,.about-signoff small{color:#625a57}
 .process-flow{height:auto}.process-inner{position:relative;height:auto;padding-block:50px}.process-index{display:none}.process-card-window{height:auto}
 .process-steps{display:grid;height:auto;gap:18px}.process-flow .process-step{position:relative;opacity:1!important;visibility:visible!important;min-height:420px}
 .closing{height:auto}.closing-frame{position:relative;height:auto;min-height:0;clip-path:none}.closing-frame img{transform:none}
 .primary-cta:hover{transform:none}
}


/* studio-library.css */
/* Two continuous, opposing rows. The first light surface now belongs to the library. */
.studio-library{--library-gap:24px;--library-width:26vw;position:relative;z-index:4;margin-top:-12svh;padding:90px 0 70px;overflow:hidden;background:var(--paper);color:var(--ink);border-radius:24px 24px 0 0;isolation:isolate}
.studio-library::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 45% 45% at 42% 48%,rgba(242,202,218,.15),transparent 80%)}
.library-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1450px;margin:0 auto 32px;padding:0 clamp(24px,5vw,80px)}
.library-heading h2{margin:0;font:600 .75rem/1.5 var(--display-face);text-transform:uppercase;letter-spacing:.14em;color:#655d59}
.library-pause{min-height:44px;padding:8px 0;border:0;background:transparent;color:#655d59;font:500 .75rem/1.5 var(--display-face);text-decoration:underline;text-underline-offset:5px;cursor:pointer}
.library-pause[hidden]{display:none}
.library-rows{display:grid;gap:var(--library-gap)}
.library-viewport{overflow:hidden;touch-action:pan-y;cursor:grab;outline-offset:-3px;padding-block:8px;margin-block:-8px}
.library-viewport.is-dragging{cursor:grabbing}
.library-track{display:flex;width:max-content;will-change:transform;user-select:none}
.library-group{display:flex;align-items:stretch;gap:var(--library-gap);padding-right:var(--library-gap);flex:none}
.library-card{flex:none;width:var(--library-width);min-width:0;margin:0;padding:8px;border:1px solid rgba(255,255,255,.95);border-radius:36px;background:rgba(255,255,255,.6);box-shadow:0 1px 3px #3e303309,inset 0 1px 0 #fff;overflow:hidden;transition:transform .45s cubic-bezier(.2,.65,.3,1),box-shadow .45s}
.library-card img{display:block;width:100%;height:auto;aspect-ratio:1.6;object-fit:cover;object-position:center;border-radius:25px;background:#e5e1dc;pointer-events:none}
.library-card figcaption{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding:10px 13px 8px;font:500 .8rem/1.3 var(--display-face);color:#4d4744}
.library-card figcaption span:last-child{font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:#857b76;text-align:right}
.library-card--statement{display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,2.5vw,40px);background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(249,241,244,.65))}
.library-card--statement p{margin:0 0 20px;font:550 clamp(1.5rem,2.1vw,2.4rem)/1.12 var(--display-face);letter-spacing:-.045em}
.library-card--statement>span{font:550 .68rem/1.5 var(--display-face);letter-spacing:.09em;text-transform:uppercase;color:#87756f}
@media(hover:hover){.library-card:hover{transform:translateY(-6px);box-shadow:0 18px 28px -20px #3e30334d,inset 0 1px 0 #fff}}
/* Keep the fan gallery attached without overlapping the new rows. */
.studio-library+.process-showcase{margin-top:0}
.studio-library+.process-showcase .process-showcase-stage{border-radius:0}
@media(max-width:1279px){.studio-library{--library-width:32vw}}
@media(max-width:1023px){.studio-library{--library-width:52vw;--library-gap:20px}}
@media(max-width:860px){.studio-library{margin-top:-8svh;padding:62px 0 48px}.library-card{border-radius:30px}.library-card img{border-radius:21px}.library-card--statement p{font-size:1.8rem}}
@media(max-width:639px){.studio-library{--library-width:78vw;--library-gap:16px;padding:45px 0 35px}.library-heading{margin-bottom:22px;padding-inline:24px}.library-card{border-radius:28px}.library-card img{border-radius:20px}.library-card--statement{padding:28px}.library-card--statement p{font-size:1.7rem}.library-card figcaption{font-size:.75rem;padding-inline:10px}.library-card figcaption span:last-child{font-size:.59rem}}
@media(prefers-reduced-motion:reduce){.studio-library{margin-top:0}.library-viewport{overflow-x:auto;scroll-snap-type:x mandatory;padding-inline:20px}.library-card{scroll-snap-align:center;transition:none}.library-track{transform:none!important;will-change:auto;user-select:auto}.library-group[aria-hidden="true"]{display:none}.library-pause{display:none}.library-card:hover{transform:none}}


/* studio-system.css */
/* Hey Callie: one continuous warm surface, photographic depth, charcoal punctuation. */
:root{--paper:#f6f2ed;--ivory:#f6f2ed;--studio-radius:20px;--studio-shadow:0 22px 52px -32px rgba(38,29,31,.3);--studio-line:rgba(67,48,55,.16);--section-title:clamp(2.6rem,4.7vw,5rem);--page-gutter:clamp(24px,5vw,80px)}
body{background:var(--paper)}
.studio-surface{position:relative;z-index:4;display:flow-root;margin-top:-12svh;border-radius:30px 30px 0 0;background-color:var(--paper);background-image:radial-gradient(ellipse 920px 1500px at 90% 6%,rgba(242,202,218,.40),transparent 80%),radial-gradient(ellipse 1100px 1900px at 0% 30%,rgba(242,202,218,.30),transparent 80%),radial-gradient(ellipse 1100px 1500px at 95% 67%,rgba(242,202,218,.32),transparent 80%)}
.studio-surface .studio-library,.studio-surface .process-showcase,.studio-surface .process-showcase-stage,.studio-surface .services,.studio-surface .approach-gallery,.studio-surface .approach-stage,.studio-surface .process-flow,.studio-surface .pricing,.studio-surface .price-options,.studio-surface .pricing-footnote,.studio-surface .project-faq,.studio-surface .project-enquiry{background:transparent}
.studio-library::before,.process-showcase-stage::before,.approach-stage::before,.process-intro::before,.process-inner::before{display:none}
html.has-motion .studio-surface .services{background:transparent}
/* Short, confident type hierarchy across every chapter. */
.services-heading h2,.approach-heading h2,.about-copy h2,.process-inner>.process-intro>h2,.pricing .pricing-intro h2,.faq-intro h2,.enquiry-intro h2{font-family:var(--display-face);font-weight:620;line-height:1.08;letter-spacing:-.045em;text-wrap:balance}
.services-heading h2,.approach-heading h2,.about-copy h2{font-size:var(--section-title)}
.hero h1{letter-spacing:-.045em;line-height:1.08}
.services-title-block>p,.services-scope,.about-body p,.process-lead,.process-step p,.pricing-intro>p,.price-note,.faq-list p,.enquiry-intro>p{font-size:1rem;line-height:1.65;letter-spacing:-.01em}
.section-kicker,.process-eyebrow,.approach-eyebrow,.library-heading h2,.showcase-heading h2.process-eyebrow{font-family:var(--display-face)}
.section-kicker,.process-eyebrow,.approach-eyebrow{font-size:.875rem;line-height:1.4;letter-spacing:.1em}
/* The collection is photography, with one dark editorial pause. */
.studio-surface .studio-library{margin-top:0;border-radius:0;padding:70px 0 70px;--library-width:30vw;--library-gap:22px;overflow:clip}
.library-heading{max-width:1600px;margin-bottom:32px;padding-inline:var(--page-gutter);align-items:end}
.library-heading h2{max-width:22ch;color:var(--ink);font-size:clamp(1.8rem,2.8vw,3rem);font-weight:550;line-height:1.12;text-transform:none;letter-spacing:-.04em}
.library-pause{font-size:.875rem;white-space:nowrap;flex:none;color:#655957}
.library-rows{gap:22px}
.library-viewport{mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);opacity:calc(1 - var(--library-departure,0)*.85);transform:translate3d(calc(-1*var(--library-exit-x,0px)),calc(-1*var(--library-exit-y,0px)),0);will-change:transform,opacity}
.library-viewport:nth-child(2){transform:translate3d(var(--library-exit-x,0px),var(--library-exit-y,0px),0)}
.library-card{position:relative;padding:0;border:1px solid rgba(255,255,255,.6);border-radius:var(--studio-radius);background:#262324;aspect-ratio:1.48;box-shadow:var(--studio-shadow)}
.library-card img{height:100%;aspect-ratio:auto;border-radius:0;filter:saturate(.85);object-fit:cover}
.library-card figcaption{position:absolute;inset:auto 0 0;min-height:100px;align-items:end;padding:36px 22px 22px;background:linear-gradient(transparent,rgba(20,17,18,.77));color:#fffefa;pointer-events:none;font-size:.9375rem;line-height:1.4}
.library-card figcaption span:last-child{color:#f0e4e4;font-size:.75rem;letter-spacing:.045em}
.library-card--statement{padding:clamp(25px,3vw,48px);justify-content:space-between;background:#242122;color:#fffefa;border-color:#383033}
.library-card--statement p{font-size:clamp(1.7rem,2.7vw,3rem);line-height:1.1;letter-spacing:-.04em;max-width:13ch;margin:0}
.library-card--statement>span{color:#f2cada;font-size:.75rem;line-height:1.5;letter-spacing:.08em;max-width:23ch}
/* The rows open out and hand the same photographic language to the featured work. */
.studio-library+.process-showcase{margin-top:-7svh;height:175svh}
.process-showcase-stage{border-radius:0}
.showcase-heading{left:var(--page-gutter);right:var(--page-gutter);top:clamp(30px,5svh,55px)}
.showcase-heading h2.process-eyebrow{font-size:.875rem;letter-spacing:.1em;font-weight:600}
.work-note{font-size:.9375rem}
.showcase-image{border:1px solid #fff9;border-radius:var(--studio-radius);box-shadow:var(--studio-shadow);background:#e3dcd7;transform:translate3d(calc(-50% + var(--fan-x,0vw)),calc(-50% + var(--fan-y,0px) + var(--fan-exit,0vh) + var(--work-entry-y,0px)),0) rotate(var(--fan-angle,0deg)) rotateY(var(--fan-depth,0deg)) scale(calc(var(--fan-scale,.9)*var(--work-entry-scale,1)))}
.showcase-image::after{display:none}.showcase-image img,.showcase-image--centre img{filter:saturate(.85)}
.showcase-statement{font-weight:550;letter-spacing:-.04em;line-height:1.12;top:76%}
/* Services stay grouped tightly while each image gets room. */
html.has-motion .studio-surface .services,.studio-surface .services{padding:60px var(--page-gutter) 80px}
.services-heading{gap:30px;margin-bottom:14px}.services-heading>p{padding-top:10px;font-size:.875rem;white-space:normal}
.services-title-block>p{max-width:620px;margin-top:20px}.services-scope{margin-bottom:30px;color:#655957;max-width:1450px}
.service-media,.service-card .service-media{border-radius:var(--studio-radius);box-shadow:var(--studio-shadow);border:1px solid #fff7}
.service-name{font-weight:620;letter-spacing:-.04em;line-height:1.12}
.service-description{font-size:clamp(1.1rem,1.8vw,1.8rem);line-height:1.4;letter-spacing:-.025em}
.service-enquire{min-height:44px;font-size:.875rem}
/* A shared frame, edge and shadow replaces unrelated glass treatments. */
.approach-card{border-radius:var(--studio-radius);padding:6px;background:rgba(255,255,255,.42);border:1px solid #fff9;box-shadow:var(--studio-shadow);backdrop-filter:none;-webkit-backdrop-filter:none}
.approach-card img{border-radius:calc(var(--studio-radius) - 6px);filter:saturate(.85);border:0}
.approach-caption{padding:16px 14px 12px}.approach-caption h3{letter-spacing:-.025em;font-size:1.0625rem}.approach-caption>span{font-size:.75rem;letter-spacing:.04em}
.approach-readout-top{font-size:.8125rem;line-height:1.5;letter-spacing:.07em}.approach-current-description{font-size:1rem;line-height:1.6}.approach-current-title{letter-spacing:-.035em}
.approach-heading,.approach-readout{max-width:1450px;padding-inline:var(--page-gutter)}
/* The personal introduction changes tone without adding another boxed surface. */
.about,html.has-motion .about{border-radius:28px 28px 0 0;transition:background-color .5s ease,color .5s ease}
html.has-motion .about.is-lit{background:transparent}
.about-grid{max-width:1450px;margin:auto;padding-inline:var(--page-gutter)}
.about-paper--back{background:#282425;border-radius:var(--studio-radius);box-shadow:var(--studio-shadow)}
.about-photos .about-photo-main{border:1px solid #fff8;border-radius:var(--studio-radius);box-shadow:var(--studio-shadow)}
.about-photos .about-photo-main img{filter:saturate(.85)}
.about-signoff{font-family:var(--display-face);font-weight:550;letter-spacing:-.035em}.about-signoff small{font-size:.875rem;letter-spacing:0}
.process-flow{height:215svh}.process-inner{padding-inline:var(--page-gutter)}
.process-inner>.process-intro>h2{font-size:clamp(2.4rem,3.7vw,4rem)}
.process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{border-radius:var(--studio-radius);background:rgba(255,255,255,.6);box-shadow:var(--studio-shadow);border:1px solid #fff9;backdrop-filter:none;-webkit-backdrop-filter:none}
.process-step h3{font-weight:600;letter-spacing:-.03em;line-height:1.15}.process-number{letter-spacing:-.055em}
.process-index li{font-size:.8125rem;letter-spacing:.015em}
/* Compact pricing, a consistent accent, and a clear end to the page. */
.pricing-intro{padding-top:64px;margin-bottom:0}.pricing .pricing-intro h2{font-size:clamp(2.3rem,3.7vw,4rem)}
.founding-banner{position:relative;inset:auto;box-shadow:none}
.price-options{gap:24px;padding-top:30px}.price-card{border-radius:var(--studio-radius);border:1px solid #fff9;background:rgba(255,255,255,.58);box-shadow:var(--studio-shadow)}
.price-card--premium{background:linear-gradient(145deg,rgba(242,202,218,.4),rgba(255,255,255,.66));border-color:#b57b902f}
.price-card h3{font-family:var(--display-face);font-size:clamp(1.9rem,2.7vw,2.8rem);font-weight:550;letter-spacing:-.04em;line-height:1.12}
.price-list{font-size:1rem;line-height:1.6}.price-label,.price-card .text-link{font-size:.875rem}
.scope-assurance{padding-bottom:45px}.project-faq{padding-top:55px;border-top:1px solid var(--studio-line)}
.faq-list details,.faq-list details:last-child{border-color:var(--studio-line)}
.closing-frame{border-radius:var(--studio-radius)}
.primary-cta,.nav-project,.closing-link,.pink-link{border-radius:8px}
#project-enquiry-form input,#project-enquiry-form select,#project-enquiry-form textarea{background:rgba(255,255,255,.55);border-color:var(--studio-line);border-radius:8px}
.site-footer{background:#242122;color:var(--paper);border:0;border-radius:28px 28px 0 0}
.footer-main{gap:50px}.footer-intro p,.footer-contact p,.footer-nav a,.footer-contact a,.footer-row,.footer-links button,.footer-copy{color:#e0d7d5}.footer-email{border-color:#e0d7d5}
.footer-nav h2,.footer-contact h2{color:#f2cada;font-size:.875rem}.footer-oversize{color:var(--paper);letter-spacing:-.05em;font-size:clamp(2rem,8.2vw,9rem);line-height:1.2;overflow:visible;margin-inline:var(--page-gutter)}
.footer-oversize span{padding:.12em 0 .18em}.footer-row{border-color:#fff3;font-size:.8125rem}
@media(min-width:1600px){.studio-surface .studio-library{--library-width:26vw}}
@media(max-width:1023px){.studio-surface .studio-library{--library-width:44vw;--library-gap:18px}.library-rows{gap:18px}.library-card--statement p{font-size:clamp(1.7rem,3.4vw,2.4rem)}}
@media(max-width:860px){
 :root{--page-gutter:24px;--studio-radius:18px;--section-title:clamp(2.35rem,6.8vw,3.6rem)}
 .studio-surface{margin-top:-8svh;border-radius:24px 24px 0 0;background-image:radial-gradient(ellipse 650px 1200px at 105% 8%,rgba(242,202,218,.37),transparent 80%),radial-gradient(ellipse 650px 1400px at -20% 34%,rgba(242,202,218,.25),transparent 80%),radial-gradient(ellipse 650px 1300px at 110% 68%,rgba(242,202,218,.3),transparent 80%)}
 .studio-surface .studio-library{padding:48px 0 55px}.library-heading{gap:16px;margin-bottom:24px}.library-heading h2{max-width:15ch;font-size:2rem}
 .studio-library+.process-showcase{height:155svh;margin-top:-4svh}.showcase-image{top:44%}.showcase-statement{top:73%}
 .studio-surface .services{padding-top:45px;padding-bottom:55px}.services-scope{margin-bottom:24px}.services-heading h2{max-width:14ch}
 .about-grid{padding-block:60px 30px;gap:30px}.about-copy h2{font-size:clamp(2.3rem,6.2vw,3.6rem)}
 .process-flow{height:195svh}.process-inner{gap:20px}.process-inner>.process-intro>h2{font-size:clamp(2rem,5.5vw,3rem)}
 .process-lead{font-size:1rem;line-height:1.5}.process-card-window{--process-window-h:min(49svh,440px)}
 .approach-gallery.is-scroll-gallery .approach-card{border-radius:var(--studio-radius)}.approach-gallery.is-scroll-gallery .approach-card img{border-radius:12px}
 .approach-caption>span{font-size:.75rem}.approach-current-description{font-size:1rem;line-height:1.5}.approach-readout-copy{min-height:130px}
 .pricing-intro{padding-top:45px}.price-options{padding-top:24px}.price-card{padding:28px}.project-faq{padding-top:45px;padding-bottom:60px}.project-enquiry{padding-block:60px}
 .footer-main{gap:30px}.footer-oversize{font-size:8vw;letter-spacing:-.055em}
}
@media(max-width:639px){
 :root{--page-gutter:20px;--studio-radius:16px}
 .studio-surface .studio-library{--library-width:78vw;--library-gap:14px;padding-top:40px}.library-rows{gap:14px}
 .library-heading h2{font-size:1.7rem;max-width:15ch}.library-pause{font-size:.8125rem}.library-card{aspect-ratio:1.35;border-radius:var(--studio-radius)}
 .library-card figcaption{padding:35px 18px 18px;font-size:1rem}.library-card figcaption span:last-child{display:none}
 .library-card--statement{padding:26px}.library-card--statement p{font-size:clamp(1.6rem,6.8vw,2.1rem)}.library-card--statement>span{font-size:.75rem}
 .showcase-heading{top:30px}.showcase-image{width:80vw;border-radius:16px}.showcase-statement{font-size:clamp(2rem,7.2vw,2.7rem);width:calc(100% - 40px)}
 .services-heading h2{font-size:2.45rem}.services-title-block>p{font-size:1rem;margin-top:18px}.services-scope{font-size:1rem}
 .service-description{font-size:1.125rem;line-height:1.4}.service-name{font-size:clamp(1.9rem,7.5vw,2.6rem)}
 .approach-caption h3{font-size:1rem}.approach-caption>span{display:none}.approach-readout-top{font-size:.75rem}.approach-current-title{font-size:1.65rem}.approach-current-description{font-size:1rem}
 .about-grid{gap:24px}.about-photos{height:390px}.about-copy h2{font-size:2.6rem}.about-body p{font-size:1rem}
 .process-inner>.process-intro>h2{font-size:2.1rem}.process-index li{font-size:.75rem}.process-step h3{font-size:1.5rem}.process-step p{font-size:1rem}.process-number{font-size:4rem}
 .faq-intro h2,.enquiry-intro h2{font-size:2.4rem}.pricing .pricing-intro h2{font-size:2.3rem}.price-card h3{font-size:2rem}
 .footer-main{padding-inline:20px}.footer-row{padding-inline:20px;gap:18px}.footer-oversize{font-size:7.7vw;letter-spacing:-.045em}
}
@media(max-width:370px){.library-heading{align-items:start;gap:10px}.library-heading h2{font-size:1.5rem}.library-pause{font-size:.75rem}.hero-actions{gap:12px}.process-index li{font-size:.7rem}}
/* Short screens and zoomed text must remain readable, with no trapped scroll chapter. */
@media(max-width:860px) and (max-height:740px){.process-flow{height:auto}.process-inner{position:relative;height:auto;display:block;padding-block:45px}.process-card-window{height:auto;margin-top:26px}.process-steps{display:grid;grid-template-columns:1fr;gap:18px;height:auto}.process-flow .process-step,.process-flow .process-step:first-child,.process-flow .process-step:last-child{position:relative;height:auto;min-height:360px;opacity:1!important;visibility:visible!important}.process-index{display:none}.process-preview{height:100px;max-height:100px;flex:none}.process-outcomes{margin-top:18px}}
@media(prefers-reduced-motion:reduce){
 .studio-surface{margin-top:0}.library-viewport{mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);opacity:1;transform:none;will-change:auto}.studio-library+.process-showcase{margin-top:0;height:auto}.showcase-image{transform:none}.process-showcase-stage{height:auto}.showcase-statement{top:auto;transform:none}.process-flow{height:auto}.about,html.has-motion .about,.about.is-lit{background:transparent;transition:none}.about-copy,.about-copy h2,.about-eyebrow,.about-signoff{color:var(--ink)}.process-inner{height:auto;position:relative}.process-steps{height:auto}.library-card:hover{transform:none}
}

/* Phone composition: editorial hero, a dimensional image fan and generous service rail. */
.mobile-service-detail,.additional-services-label{display:none}
.additional-services{display:contents}
@media(max-width:639px){
 .story{min-height:0;height:108svh}.stage{min-height:520px;height:100svh}
 .hero .scene-inner{padding:112px 20px 92px}
 .hero h1{font-family:"Newsreader",Georgia,serif;font-size:clamp(2.8rem,11.6vw,4.4rem);font-weight:450;font-style:normal;line-height:1.04;letter-spacing:-.035em;max-width:12ch;text-wrap:pretty}
 .hero-intro{font-size:.8125rem;line-height:1.5;max-width:29ch;margin-bottom:24px;letter-spacing:.015em}
 .hero-copy,.hero-actions .quiet-cta{display:none}.hero-lower{margin-top:24px}.hero-actions{margin-top:0}
 .studio-library+.process-showcase{height:175svh}
 .process-showcase-stage{min-height:calc(98vw + 185px)}
 .showcase-heading{top:24px}.work-note{margin-top:8px;font-size:.875rem}
 .showcase-image{top:calc(100px + 47vw);width:80vw;aspect-ratio:16/10;max-height:none;border-radius:14px;box-shadow:0 14px 26px -12px #30232b55}
 .showcase-image--centre{box-shadow:0 26px 38px -15px #30232b66;border:1px solid #fff9}
 .showcase-statement{top:calc(143px + 96vw);font-size:clamp(1.65rem,6.7vw,2.6rem)}
 .service-grid{grid-template-columns:minmax(0,1fr);gap:18px}
 .service-card,.service-card:not(.service-card--additional){grid-column:1/-1;min-width:0;margin:0}
 .additional-services-label{display:flex;justify-content:space-between;gap:12px;margin-top:18px;font:500 .875rem/1.5 var(--display-face);color:#655957}
 .additional-services-label span:last-child{font-size:.8125rem}
 .additional-services{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:2px;padding:4px 20px 14px 2px;margin:0 -20px 0 -2px;scrollbar-width:thin;scrollbar-color:#a99498 transparent;-webkit-overflow-scrolling:touch}
 .additional-services .service-card--additional{flex:0 0 60vw;max-width:300px;min-width:200px;grid-column:auto;margin:0;scroll-snap-align:start}
 .additional-services .service-card--additional:last-child{margin-right:0}
 .additional-services .service-card--additional .service-media{aspect-ratio:1.04;min-height:0;height:auto;border-radius:16px}
 .additional-services .service-card--additional .service-name{width:100%;padding:0 12px;font-size:clamp(1.35rem,5.7vw,1.9rem);line-height:1.16;letter-spacing:-.035em;font-weight:650;opacity:1;transform:none}
 .service-card--additional .service-description,.service-card--additional .service-enquire{display:none}
 .service-card--additional .service-media::after{background:rgba(20,17,18,.22)}
 .service-card--additional.is-flipped .service-media::after{background:rgba(20,17,18,.68)}
 .service-card--additional.is-flipped .service-media{outline:2px solid #986678;outline-offset:3px}
 .mobile-service-detail:not([hidden]){display:block;grid-column:1/-1;padding:20px;margin-top:6px;background:rgba(255,255,255,.65);border:1px solid #fff9;border-radius:16px;color:var(--ink)}
 .mobile-service-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
 .mobile-service-detail h3{font:600 1.25rem/1.3 var(--display-face);letter-spacing:-.03em;margin:0}
 .mobile-service-close{font:500 .8125rem/1.3 var(--display-face);color:#655957;background:none;border:0;min-height:44px;padding:0 4px;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
 .mobile-service-copy{font:450 1rem/1.6 var(--display-face);margin:10px 0}
 .mobile-service-link{display:inline-flex;align-items:center;min-height:44px;font:600 .875rem/1.4 var(--display-face);color:var(--ink);text-underline-offset:5px}
}
@media(max-width:639px) and (prefers-reduced-motion:reduce){
 .studio-library+.process-showcase{height:auto}
 .process-showcase-stage{height:auto;min-height:0;padding:32px 20px}
 .showcase-heading{position:relative;inset:auto}
 .showcase-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0}
 .showcase-image,.showcase-image--centre,.showcase-image[data-slot]{display:block;position:relative;inset:auto;width:100%;height:auto;opacity:1;transform:none}
 .showcase-image--centre{grid-column:1/-1;grid-row:2}
 .showcase-statement{position:relative;inset:auto;width:100%;opacity:1;transform:none;font-size:1.8rem}
}

/* A quieter opening, concise process, and a photographic closing chapter. */
.story .visual{transform:scale(var(--hero-pullback,1));border-radius:var(--hero-radius,0px);overflow:hidden;transform-origin:50% 60%;will-change:transform}
.hero h1{font-family:"Newsreader",Georgia,serif;font-weight:450;font-style:normal;font-size:clamp(4rem,8vw,8.5rem);line-height:1.02;letter-spacing:-.035em;max-width:16ch;text-wrap:balance}
.hero-intro{font-size:.875rem;margin-bottom:30px;max-width:none;letter-spacing:.025em}
.hero-lower{margin-top:32px}.hero-actions{margin:0}.hero .primary-cta{gap:24px;padding:14px 20px;font-weight:600;box-shadow:none}
.nav .nav-project{padding:10px 0;border:0;border-radius:0;text-decoration:underline;text-underline-offset:6px}
.approach-caption h3{max-width:27ch}.approach-current-title{max-width:29ch;text-wrap:balance}.approach-count{display:none}
.closing.reveal-section{position:relative;height:155svh;padding:0;background:transparent;overflow:visible}
.closing-stage{position:sticky;top:0;height:100svh;min-height:560px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:26px;padding:24px 0;perspective:1200px}
.closing .closing-frame{position:relative;top:auto;flex:none;width:calc(100% - var(--closing-gutter,24px)*2);height:var(--closing-height,60svh);max-height:640px;min-height:0;aspect-ratio:auto;margin:0;padding:0;clip-path:none;border-radius:var(--closing-radius,12px);overflow:hidden;background:#b9b5a9;transform:rotateX(var(--closing-perspective,0deg));box-shadow:0 26px 50px -34px #30282b60;will-change:height,width,transform}
.closing-frame::after{display:none}.closing-frame picture{display:block;width:100%;height:100%}
.closing.reveal-section .closing-frame img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:translate3d(0,var(--closing-image-y,0%),0) scale(var(--closing-image-scale,1.04));transition:none;will-change:transform}
.closing-caption{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;padding:0 var(--page-gutter);transform:translateY(var(--closing-caption-y,0px))}
.closing-caption h2{font:550 clamp(1.8rem,3.2vw,3.8rem)/1.1 var(--display-face);letter-spacing:-.045em;margin:0;color:var(--ink)}
.closing .closing-link{position:relative;inset:auto;display:inline-flex;justify-content:center;align-items:center;gap:26px;flex:none;min-height:48px;margin:0;padding:13px 20px;font:600 .9375rem/1.4 var(--display-face);border-radius:8px;white-space:nowrap;opacity:1;transform:none;box-shadow:none}
@media(max-width:860px){
 .closing-caption{flex-direction:column;text-align:center;gap:18px}.closing-caption h2{max-width:22ch;font-size:clamp(1.65rem,4.7vw,2.5rem)}
}
@media(max-width:639px){
 .hero .scene-inner{padding:110px 24px 90px}.hero h1{width:100%;max-width:16ch;font-size:clamp(2.8rem,11.5vw,4.6rem);line-height:1.04;letter-spacing:-.035em}
 .hero-intro{max-width:34ch;font-size:.75rem;line-height:1.7;margin-bottom:25px}.hero-lower{margin-top:28px}
 .closing.reveal-section{height:150svh}.closing-stage{min-height:0;gap:20px;padding:20px 0}.closing .closing-frame{max-height:600px}
 .closing-caption{padding-inline:20px;gap:15px}.closing-caption h2{max-width:20ch;font-size:clamp(1.6rem,6.3vw,2.2rem)}
 .closing .closing-link{font-size:.875rem;min-height:46px;padding:12px 18px}
}
@media(max-height:520px){
 .closing.reveal-section{height:auto;padding-block:24px}.closing-stage{position:relative;height:auto;min-height:0}.closing .closing-frame{height:auto;aspect-ratio:2.1;transform:none}.closing-caption{transform:none}
 .hero .scene-inner{padding-top:85px;padding-bottom:70px}.hero h1{font-size:clamp(2.5rem,7vw,4rem)}.hero-intro{margin-bottom:14px}.hero-lower{margin-top:18px}
}
@media(prefers-reduced-motion:reduce){
 .story .visual{transform:none;will-change:auto}
 .closing.reveal-section{height:auto}.closing-stage{position:relative;height:auto;min-height:0}.closing .closing-frame{height:auto;aspect-ratio:2.4;transform:none;will-change:auto}.closing.reveal-section .closing-frame img{transform:none!important;will-change:auto}.closing-caption{transform:none}
}
@media(max-width:639px) and (prefers-reduced-motion:reduce){.closing .closing-frame{aspect-ratio:3/4}}
@media(max-width:639px) and (max-height:520px){.closing .closing-frame{aspect-ratio:3/4}}

/* Preserve the original full-width phone cards in every motion mode. */
.process-index li span:first-child{font:inherit;letter-spacing:inherit}
@media(max-width:860px){
 .process-flow .process-steps{grid-template-columns:minmax(0,1fr)}
 .process-flow .process-step{min-width:0;max-width:100%}
 .process-flow .process-step h3{overflow-wrap:normal}
}

/* Finished website previews: preserve the complete design and its own colours. */
.studio-surface .library-card--preview { aspect-ratio: var(--preview-ratio, 1.5); align-self: center; background: #f4f1eb; }
.studio-surface .library-card--preview img { height: 100%; object-fit: contain; filter: none; border-radius: 0; }

/* Fit the new, concise copy within the existing visual system. */
.hero-lower { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.hero .hero-copy { display: block; max-width: 43ch; margin: 0; font-size: 1rem; line-height: 1.55; }
.library-heading > div { min-width: 0; }
.library-note { margin-top: 10px; font: 450 .875rem/1.5 var(--display-face); color: #655957; }
@media(max-width:639px) {
 .hero-lower { display: flex; gap: 18px; margin-top: 22px; }
 .hero .hero-copy { max-width: 35ch; }
 .story, .stage { min-height: 650px; }
}


/* gallery-refinement.css */
/* The gallery holds still while visitors browse; only the rows travel. */
.studio-surface .studio-library{padding-bottom:44px}
.library-heading{align-items:center}
.library-heading>div{flex:1}
.library-heading h2{max-width:23ch}
.library-note{max-width:46ch}
.library-viewport,.library-viewport:nth-child(2){overflow-x:auto;overflow-y:hidden;touch-action:auto;overscroll-behavior-x:contain;scrollbar-width:none;scroll-behavior:auto;opacity:1;transform:none;will-change:auto}
.library-viewport::-webkit-scrollbar{display:none}
.library-track{transform:none;will-change:auto}
.library-is-running .library-track{will-change:transform}
.concept-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;border-radius:inherit;cursor:zoom-in;color:inherit}
.concept-open:focus-visible{outline:3px solid #875568;outline-offset:-4px}
.library-card{transition:box-shadow .25s ease;transform:none!important}
.library-card:hover{box-shadow:0 24px 48px -24px #30242d44}
.library-viewport.is-dragging,.library-viewport.is-dragging .concept-open{cursor:grabbing}
/* A single service chapter follows the examples with no extra pinned screen. */
html.has-motion .studio-surface .services,.studio-surface .services{padding-top:clamp(45px,6vw,88px)}
.services-heading{align-items:end;margin-bottom:22px}
.services-heading h2{max-width:21ch;text-transform:none;font-size:clamp(2.6rem,4.7vw,5rem)}
.services-title-block>p{max-width:54ch;margin-top:22px}
.services-project-link{flex:none;white-space:nowrap;margin-bottom:4px}
.services-scope{margin-bottom:30px;font-size:.9375rem;max-width:1450px}
.service-grid{row-gap:26px}
/* A larger, deliberately simple look at each concept. */
html.concept-is-open{overflow:hidden}
.concept-viewer{width:min(1280px,calc(100% - 48px));height:min(90dvh,1040px);max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #fff9;border-radius:20px;background:var(--paper);color:var(--ink);box-shadow:0 32px 100px #0005;overflow:hidden}
.concept-viewer[open]{display:flex;flex-direction:column}
.concept-viewer::backdrop{background:rgba(23,20,21,.76);backdrop-filter:blur(8px)}
.concept-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 26px;border-bottom:1px solid var(--studio-line);flex:none}
.concept-type{font:500 .8125rem/1.4 var(--display-face);color:#655957;margin:0 0 4px}
.concept-toolbar h2{font:600 clamp(1.05rem,2vw,1.4rem)/1.3 var(--display-face);letter-spacing:-.025em;margin:0}
.concept-close{min-height:44px;padding:8px 12px;cursor:pointer;background:transparent;border:0;color:inherit;font:550 .9375rem/1.4 var(--display-face);text-decoration:underline;text-underline-offset:4px}
.concept-toolbar-actions{display:flex;gap:14px;align-items:center;flex:none}
.concept-visit{display:inline-flex;align-items:center;min-height:44px;color:inherit;font:550 .9375rem/1.4 var(--display-face);text-underline-offset:4px}
.concept-visit[hidden]{display:none}
.concept-viewer-content{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;background:#ece8e1}
.concept-viewer-content>img{display:block;width:100%;height:auto;margin:0 auto}
.concept-viewer-content>iframe{display:block;width:100%;height:100%;border:0;background:var(--paper)}
@media(max-width:860px){.services-heading{display:block}.services-project-link{margin-top:18px}.services-heading h2{font-size:clamp(2.4rem,6.8vw,4rem)}}
@media(max-width:639px){
 .library-heading{flex-wrap:wrap;align-items:start;gap:10px}.library-heading>div{flex-basis:100%}.library-heading h2{max-width:19ch}.library-note{max-width:34ch;font-size:.875rem}.library-pause{min-height:36px}
 .studio-surface .studio-library{padding-bottom:26px}
 html.has-motion .studio-surface .services,.studio-surface .services{padding-top:42px;padding-bottom:65px}
 .services-heading h2{font-size:clamp(2.3rem,9.4vw,3.25rem);line-height:1.08}.services-title-block>p{margin-top:18px}.services-scope{font-size:.9375rem;margin-bottom:24px}.service-grid{row-gap:18px}
 .concept-viewer{width:calc(100% - 16px);height:94dvh;border-radius:14px}.concept-toolbar{padding:10px 12px;gap:12px}.concept-close{font-size:.875rem}.concept-type{font-size:.75rem}
 .concept-viewer-content>img{width:100%;max-width:100%}
 .concept-toolbar>div:first-child{min-width:0;flex:1}
 .concept-toolbar h2{overflow-wrap:anywhere}
 .concept-toolbar-actions{gap:4px}.concept-visit{font-size:.8125rem}.concept-toolbar h2{font-size:1rem}
}
@media(prefers-reduced-motion:reduce){.library-group[data-loop-copy]{display:none}.library-viewport{touch-action:auto;scroll-snap-type:x proximity}.library-card{scroll-snap-align:center}.library-pause{display:none}}

/* Static compositions: the hero and next section are visible together. */
.concept-open--page{position:relative;overflow:hidden}
.studio-surface .library-card--page{height:calc(var(--library-width) / 1.5)}
.studio-surface .library-card--preview .concept-open--page img{object-fit:contain;object-position:50% 50%;animation:none}

/* A readable services introduction, followed immediately by the work. */
.services-heading{margin-bottom:32px;gap:40px;align-items:end}
.services-heading h2,.approach-heading h2{text-transform:none}
.services-title-block>p{max-width:53ch;margin-top:24px;font-size:clamp(1.125rem,1.65vw,1.55rem);line-height:1.55;color:#4d4743;letter-spacing:-.018em}
.showcase-statement{max-width:1050px;text-wrap:balance;font-size:clamp(2.25rem,4.3vw,4.8rem);top:72%;line-height:1.12}

/* The principle is the image headline, with no repeated text below it. */
.approach-gallery{--approach-gutter:max(24px,calc((100vw - clamp(420px,54vw,800px))/2))}
.approach-gallery .approach-card{position:relative;isolation:isolate;padding:0;overflow:hidden;border:0;background:#4c4743;border-radius:22px;box-shadow:0 20px 45px -32px #30252470}
.approach-gallery .approach-card::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,#17121266,#17121266)}
.approach-gallery .approach-card img,.approach-gallery.is-scroll-gallery .approach-card img{height:clamp(340px,54svh,610px);aspect-ratio:auto;object-fit:cover;border-radius:0;filter:saturate(.7) brightness(.82)}
.approach-gallery .approach-caption{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:30px;text-align:center;color:#fffdf8}
.approach-gallery .approach-caption h3{max-width:22ch;margin:0;font-family:var(--display-face);font-size:clamp(2rem,3.5vw,3.75rem);font-weight:600;line-height:1.13;letter-spacing:-.045em;text-wrap:balance;text-shadow:0 2px 24px #0002}
.approach-gallery.is-scroll-gallery .approach-card{flex-basis:clamp(420px,54vw,800px);width:clamp(420px,54vw,800px)}
.approach-gallery .approach-progress{width:min(300px,40%);margin:30px auto 0}
.approach-gallery:not(.is-scroll-gallery) .approach-track{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 var(--page-gutter)}
.approach-gallery:not(.is-scroll-gallery) .approach-progress{display:none}
.approach-card:last-child img{object-position:50% 54%}
@media(max-width:767px){
 .approach-gallery{--approach-gutter:8vw}
 .approach-gallery.is-scroll-gallery .approach-card{width:84vw;flex-basis:84vw;border-radius:20px}
 .approach-gallery .approach-card img,.approach-gallery.is-scroll-gallery .approach-card img{height:clamp(300px,54svh,530px)}
 .approach-gallery .approach-caption{padding:24px}
 .approach-gallery .approach-caption h3{font-size:clamp(1.85rem,7.4vw,3.1rem);line-height:1.14}
 .approach-gallery:not(.is-scroll-gallery) .approach-track{grid-template-columns:1fr}
 .approach-gallery .approach-progress{margin-top:24px}
}
@media(max-width:639px){
 .services-heading{margin-bottom:26px}.services-title-block>p{font-size:1.125rem;line-height:1.55;margin-top:20px}
 .process-showcase-stage{min-height:calc(100vw + 250px)}
 .showcase-statement{top:calc(130px + 88vw);font-size:clamp(1.85rem,7vw,2.5rem);width:calc(100% - 44px)}
}
@media(max-height:680px){
 .approach-gallery.is-scroll-gallery .approach-card img{height:48svh;min-height:260px}
 .approach-gallery .approach-caption h3{font-size:clamp(1.75rem,3.7vw,2.8rem)}
}
@media(prefers-reduced-motion:reduce){
 .showcase-statement{position:relative;top:auto;font-size:clamp(1.85rem,4vw,4rem)}
 .process-showcase-stage{min-height:0}
}


/* hero-presence.css */
/* Static photographic hero: one photograph, dark overlay, shared display font. */
.photo-hero-story{position:relative;height:auto;min-height:0;background:#25221f;color:#fffefa}
.photo-hero-story .stage{position:relative;top:auto;height:auto;min-height:0;overflow:hidden;background:#25221f}
.photo-hero-story .visual{position:absolute;inset:0;height:100%;min-height:0;clip-path:none;transform:none;border-radius:0;will-change:auto;background:#39342d}
.photo-hero-story .visual::before,.photo-hero-story .hero::before{display:none}
.photo-hero-story .visual::after{display:block;position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(20,19,18,.88) 0%,rgba(20,19,18,.79) 35%,rgba(20,19,18,.48) 72%,rgba(20,19,18,.45) 100%),linear-gradient(0deg,rgba(20,19,18,.2),transparent 48%);pointer-events:none}
.hero-photo,.hero-photo img{display:block;position:absolute;inset:0;width:100%;height:100%}
.hero-photo img{object-fit:cover;object-position:center;transform:none;filter:none;animation:none}
.photo-hero-story .hero{position:relative;inset:auto;min-height:0;z-index:10;opacity:1;visibility:visible;transform:none;pointer-events:auto}
.photo-hero-story .hero .scene-inner{width:100%;max-width:1800px;height:auto;min-height:max(700px,100svh);padding:180px clamp(24px,5vw,88px) 150px;margin:auto;display:flex;flex-direction:column;justify-content:center}
.photo-hero-story .hero-message{position:relative;width:100%;max-width:850px;color:#fffefa}
.photo-hero-story .hero-intro{color:#f5efea;font-size:.875rem;font-weight:500;line-height:1.5;letter-spacing:.015em;margin-bottom:25px;max-width:none}
.photo-hero-story .hero h1{font-family:var(--display-face,"Instrument Sans",Arial,sans-serif);font-size:clamp(3.2rem,6.3vw,6.9rem);font-weight:580;line-height:1.06;letter-spacing:-.055em;color:#fffefa;width:100%;max-width:15ch;margin:0;text-wrap:initial;text-align:left;text-transform:none}
.photo-hero-story .hero-lower{display:flex;flex-direction:column;align-items:flex-start;gap:28px;margin-top:28px;max-width:420px}
.photo-hero-story .hero .hero-copy{display:block;font-size:1.0625rem;line-height:1.6;font-weight:450;letter-spacing:-.015em;color:#f2eee9;max-width:36ch}
.photo-hero-story .hero-actions{margin:0;gap:24px}
.photo-hero-story .primary-cta{color:#24201e;background:#fffaf5;border:1px solid #fffaf5;border-radius:7px;min-height:52px;padding:16px 24px;font-size:.9375rem;font-weight:600;box-shadow:none}
.photo-hero-story .primary-cta:hover{background:#f2cada;border-color:#f2cada;transform:none}
.photo-hero-story .nav{top:0;z-index:30;max-width:1800px;margin:auto;min-height:100px;color:#fffefa;--nav-color:255,254,250}
.photo-hero-story .nav :is(a,.wordmark){color:#fffefa}
.photo-hero-story .nav-project{background:transparent;border-color:#fff8}
.photo-hero-story a:focus-visible{outline:2px solid #f2cada;outline-offset:5px}
.photo-hero-story+.studio-surface{margin-top:0;border-radius:0}
.studio-surface .studio-library{padding-top:65px}
.library-heading h2{max-width:20ch;line-height:1.1}
.library-note{max-width:52ch;font-size:1rem;line-height:1.6;margin-top:16px}
.price-card .price--bespoke{font-size:clamp(1.4rem,2.1vw,2rem);letter-spacing:-.035em;line-height:1.3;max-width:19ch}
@media(max-width:1000px){
 .photo-hero-story .hero .scene-inner{min-height:max(680px,96svh);padding-top:155px;padding-bottom:110px}
 .photo-hero-story .hero-message{max-width:700px}
 .photo-hero-story .hero h1{font-size:clamp(3.3rem,6.6vw,4.3rem)}
 .photo-hero-story .visual::after{background:linear-gradient(90deg,rgba(20,19,18,.88),rgba(20,19,18,.76) 48%,rgba(20,19,18,.50))}
}
@media(max-width:640px){
 .photo-hero-story .nav{min-height:83px;padding-inline:22px;gap:12px}
 .photo-hero-story .wordmark{font-size:1.4rem}
 .photo-hero-story .nav-links a:not(.nav-project){display:none}
 .photo-hero-story .nav-project{font-size:.75rem;line-height:1.4;padding:8px 0;min-height:44px;display:flex;align-items:center;border:0;text-decoration:underline;text-underline-offset:5px}
 .photo-hero-story .hero .scene-inner{padding:130px 24px 64px;min-height:max(690px,100svh);justify-content:flex-start}
 .photo-hero-story .hero h1{font-size:clamp(2rem,8.65vw,3.5rem);font-weight:600;line-height:1.12;letter-spacing:-.052em;max-width:15ch}
 .photo-hero-story .hero-intro{font-size:.8125rem;margin-bottom:24px;max-width:29ch}
 .photo-hero-story .hero-lower{margin-top:26px;gap:24px;max-width:330px}
 .photo-hero-story .hero .hero-copy{font-size:1rem;line-height:1.6;max-width:31ch}
 .photo-hero-story .primary-cta{font-size:.875rem;min-height:50px;padding:14px 21px}
 .hero-photo img{object-position:70% center}
 .photo-hero-story .visual::after{background:linear-gradient(180deg,rgba(20,19,18,.83) 0%,rgba(20,19,18,.77) 45%,rgba(20,19,18,.48) 82%,rgba(20,19,18,.52)),linear-gradient(90deg,rgba(20,19,18,.17),transparent)}
 .studio-surface .studio-library{padding-top:44px}
 .library-heading{align-items:flex-start;flex-wrap:wrap;gap:18px}
 .library-heading>div{flex:1 1 100%}
 .library-heading h2{font-size:clamp(2rem,8.7vw,2.8rem);max-width:none}
 .library-note{max-width:32ch;font-size:1rem;margin-top:15px}
 .library-pause{min-height:44px;font-size:.8125rem;margin-top:0}
}

/* The enquiry is a clear destination, not another pale block of text. */
.studio-surface .project-enquiry{position:relative;isolation:isolate;overflow:hidden;width:calc(100% - 48px);max-width:1600px;margin:0 auto 24px;padding:clamp(54px,6vw,96px);gap:clamp(35px,6vw,96px);border-radius:28px;background:#292428;color:#fff7f3;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center}
.project-enquiry::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 0 100%,#985e744a,transparent 65%);pointer-events:none}
.project-enquiry .section-kicker{color:#e9b9cd;font-size:.8125rem;margin-bottom:27px}
.project-enquiry .enquiry-intro h2{font-size:clamp(3.1rem,5.5vw,6rem);line-height:1.04;letter-spacing:-.055em;max-width:12ch;text-wrap:balance;color:#fff7f3;margin-bottom:28px}
.project-enquiry .enquiry-intro>p:not(.section-kicker){font-size:1.125rem;line-height:1.65;color:#dfd0d6;max-width:33ch;margin-bottom:30px}
.project-enquiry .enquiry-intro>a{font-size:1.125rem;color:#f5cddd;text-decoration-thickness:1px;text-underline-offset:7px;display:inline-flex;align-items:center;min-height:44px}
.project-enquiry #project-enquiry-form{padding:30px;border-radius:18px;background:#f8f4ef;color:#282326;gap:19px;box-shadow:0 22px 70px #140e172b}
.project-enquiry #project-enquiry-form label{font-size:.875rem;line-height:1.5;color:#382f34}
.project-enquiry #project-enquiry-form :is(input,select,textarea){background:#fffdf9;border:1px solid #d4c9cf;border-radius:7px;font-size:1rem;color:#282326}
.project-enquiry #project-enquiry-form textarea{min-height:105px}
.project-enquiry #project-enquiry-form .primary-cta{justify-self:stretch;display:flex;justify-content:space-between;min-height:55px;padding-inline:20px;font-size:1rem;background:#282226;color:#fff7f3}
.project-enquiry #project-enquiry-form .primary-cta:hover{background:#49343f}
.project-enquiry #project-enquiry-form .primary-cta span{font-size:1.3rem}
.project-enquiry .enquiry-help,.project-enquiry .enquiry-status{color:#665960;font-size:.8125rem;line-height:1.6}

@media(max-width:900px){
 .studio-surface .project-enquiry{grid-template-columns:1fr;padding:46px 30px;gap:36px}
 .project-enquiry .enquiry-intro h2{max-width:15ch;font-size:clamp(3rem,6.5vw,4.5rem)}
 .project-enquiry .enquiry-intro>p:not(.section-kicker){max-width:43ch}
}
@media(max-width:560px){
 .studio-surface .project-enquiry{width:calc(100% - 24px);margin-bottom:12px;border-radius:22px;padding:40px 20px;gap:32px}
 .project-enquiry .section-kicker{font-size:.6875rem;letter-spacing:.08em;margin-bottom:20px}
 .project-enquiry .enquiry-intro h2{font-size:clamp(2.75rem,11vw,3.5rem);max-width:12ch;margin-bottom:22px}
 .project-enquiry .enquiry-intro>p:not(.section-kicker){font-size:1rem;margin-bottom:18px}
 .project-enquiry .enquiry-intro>a{font-size:1rem}
 .project-enquiry #project-enquiry-form{padding:22px 18px;border-radius:14px;gap:18px}
 .project-enquiry .enquiry-fields{grid-template-columns:1fr;gap:18px}
}


/* offer-flow.css */
/* Work, packages, process, optional services: one continuous page. */
.studio-surface .pricing{padding:12px var(--page-gutter) 48px;margin:0;overflow:visible;border-radius:0;background:transparent}
.studio-surface .pricing::before{display:none}
.studio-surface .pricing-shell{display:block;max-width:1260px;margin:auto;transform:none}
.studio-surface .pricing-intro{padding:35px 0 30px;margin:0 auto;text-align:center;max-width:770px}
.studio-surface .pricing .pricing-intro h2{text-transform:none;font-size:clamp(2.5rem,4vw,4.2rem);line-height:1.08}
.studio-surface .pricing-intro>p:last-child{max-width:55ch;font-size:1.0625rem;line-height:1.65;margin:18px auto 0}
.studio-surface .price-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:0 0 26px;max-width:none}
.studio-surface .price-card{min-width:0;margin:0;padding:clamp(28px,3.2vw,44px);color:var(--ink)}
.studio-surface .price-label{font-size:.875rem;line-height:1.45;letter-spacing:.025em;text-transform:none;color:#655957}
.studio-surface .price-card h3{margin-top:17px;font-size:clamp(2.2rem,3.6vw,3.5rem);font-weight:600;line-height:1.12;letter-spacing:-.045em;text-transform:none}
.studio-surface .price-card .price{font-size:clamp(1.6rem,2.5vw,2.3rem);min-height:2.8rem;margin:17px 0 20px;line-height:1.3}
.studio-surface .price-card .price--bespoke{font-size:clamp(1.5rem,2.25vw,2rem);max-width:21ch}
.studio-surface .price-card .price-note{font-size:1rem;line-height:1.65;max-width:43ch;color:#5c5451}
.studio-surface .price-list{margin:24px 0 28px;padding:0}
.studio-surface .price-list li{font-size:1rem;line-height:1.55;padding-block:12px}
.studio-surface .price-card .text-link{font-size:.9375rem;letter-spacing:0;text-transform:none;min-height:48px;display:inline-flex;align-items:center}
.studio-surface .pricing-footnote{max-width:800px;padding:0;margin:0 auto;font-size:.9375rem;line-height:1.7;color:#655957}
.studio-surface .scope-assurance{padding:18px 0 0;margin:0;font-size:.9375rem;line-height:1.6;font-weight:550}
.simple-process{max-width:1450px;margin:0 auto;padding:40px var(--page-gutter) 62px;color:var(--ink)}
.simple-process h2{font-family:var(--display-face);font-size:clamp(2.2rem,3.5vw,3.7rem);font-weight:600;line-height:1.1;letter-spacing:-.045em;margin:0 0 32px}
.simple-process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:clamp(24px,4vw,64px)}
.simple-process-steps li{min-width:0;border-top:1px solid #a28c9355;padding-top:24px}
.simple-process-steps h3{font:600 clamp(1.25rem,1.9vw,1.6rem)/1.25 var(--display-face);letter-spacing:-.025em;margin:0 0 13px;max-width:20ch}
.simple-process-steps p{font:450 1rem/1.65 var(--display-face);letter-spacing:-.01em;color:#5c5451;max-width:34ch;margin:0}
html.has-motion .studio-surface .optional-services,.studio-surface .optional-services{padding:38px var(--page-gutter) 55px}
.optional-services .services-heading{min-height:0;margin:0 auto 26px;padding:0;max-width:1450px;gap:35px;align-items:end}
.optional-services .services-heading h2{font-size:clamp(2.2rem,3.5vw,3.7rem);max-width:none;line-height:1.1}
.optional-services .services-title-block>p{font-size:1rem;line-height:1.65;max-width:54ch;margin-top:17px}
.optional-services .service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;max-width:1450px}
.optional-services .service-card,.optional-services .service-card:not(.service-card--additional){grid-column:auto;margin:0;min-width:0}
.optional-services .service-media,.optional-services .service-card--additional .service-media{aspect-ratio:.88;padding:0;min-height:0;border-radius:18px}
.optional-services .service-media img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.optional-services .service-media::after{display:block}
.optional-services .service-name{font-size:clamp(1.3rem,2.15vw,2.1rem);line-height:1.2;font-weight:600;letter-spacing:-.035em;text-transform:none}
.optional-services .service-description{font-size:1rem;line-height:1.6;letter-spacing:-.01em;max-width:27ch}
.optional-services .service-enquire{font-size:.875rem;letter-spacing:0;min-height:44px;text-transform:none}
.studio-surface .project-faq{padding-top:45px;padding-bottom:65px}
@media(min-width:640px) and (max-width:1000px){
 .optional-services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .optional-services .service-media,.optional-services .service-card--additional .service-media{aspect-ratio:1.3}
 .optional-services .service-description{max-width:34ch}
 .optional-services .services-heading{display:block}
}
@media(max-width:767px){
 .studio-surface .pricing{padding:8px 20px 35px}
 .studio-surface .pricing-intro{padding:26px 0 27px;text-align:left}
 .studio-surface .pricing .pricing-intro h2{font-size:clamp(2.2rem,8.8vw,3.1rem)}
 .studio-surface .pricing-intro>p:last-child{font-size:1rem;max-width:39ch;margin-left:0}
 .studio-surface .price-options{grid-template-columns:minmax(0,1fr);gap:20px;padding-bottom:24px}
 .studio-surface .price-card{padding:29px 25px;border-radius:20px}
 .studio-surface .price-card h3{font-size:2.6rem}
 .studio-surface .price-card .price{min-height:0;font-size:1.75rem}
 .studio-surface .price-card .price--bespoke{font-size:1.6rem}
 .studio-surface .price-list li{font-size:1rem;padding-block:11px}
 .studio-surface .pricing-footnote,.studio-surface .scope-assurance{text-align:left}
 .simple-process{padding:24px 24px 40px}
 .simple-process h2{font-size:clamp(2.1rem,8.5vw,3rem);margin-bottom:25px}
 .simple-process-steps{grid-template-columns:minmax(0,1fr);gap:24px}
 .simple-process-steps li{padding-top:22px}
 .simple-process-steps h3{font-size:1.3rem;max-width:none;margin-bottom:10px}
 .simple-process-steps p{max-width:42ch}
 html.has-motion .studio-surface .optional-services,.studio-surface .optional-services{padding-top:30px;padding-bottom:38px}
 .optional-services .services-heading h2{font-size:clamp(2.1rem,8.5vw,3rem)}
 .studio-surface .project-faq{padding-top:30px;padding-bottom:45px}
}
@media(max-width:639px){
 .optional-services .service-grid{display:block}
 .optional-services .additional-services-label{margin:0 0 15px;font-size:.875rem}
 .optional-services .additional-services{display:flex;gap:14px;margin-inline:-2px -20px;padding-bottom:14px}
 .optional-services .additional-services .service-card--additional{flex:0 0 64vw;min-width:208px;max-width:300px}
 .optional-services .additional-services .service-media{aspect-ratio:1.05}
 .optional-services .additional-services .service-name{font-size:clamp(1.4rem,5.8vw,1.85rem);opacity:1;transform:none}
 .optional-services .mobile-service-detail:not([hidden]){margin-top:15px}
}
@media(prefers-reduced-motion:reduce){
 .studio-surface .price-card,.optional-services .service-card,.optional-services .services-heading{opacity:1!important;transform:none!important}
}


/* cohesive-finish.css */
/* One neutral system: photograph, charcoal work chapter, warm paper, charcoal enquiry. */
:root{--paper:#f4f1eb;--ink:#191919;--studio-accent:#343330;--studio-accent-hover:#4a4945;--studio-accent-ink:#353431;--studio-line:#23232124;--page-gutter:clamp(22px,5vw,80px);--chapter-space:clamp(64px,8vw,112px)}
body{background:#151516;color:var(--ink)}
main{overflow:clip}
.studio-surface{margin-top:0;border-radius:0;background:#f4f1eb;background-image:none}
.hero-ribbon{position:relative;z-index:5;background:#edd1dc;color:#191919;padding:17px var(--page-gutter);font:600 .875rem/1.4 var(--display-face);letter-spacing:.005em}
.hero-ribbon>div{display:flex;align-items:center;justify-content:center;gap:clamp(18px,4vw,64px);max-width:1400px;margin:auto}
.hero-ribbon span{white-space:nowrap}.hero-ribbon i{width:4px;height:4px;border-radius:50%;background:currentColor;flex:none}
.photo-hero-story .hero h1{font-weight:570;max-width:14ch}
.photo-hero-story .hero .scene-inner{min-height:max(720px,94svh);padding-bottom:125px}
.photo-hero-story .hero .hero-copy{max-width:33ch;color:#e8e5e0}
.photo-hero-story .primary-cta:hover{background:#e5dfd5;border-color:#e5dfd5}
.photo-hero-story a:focus-visible{outline-color:#fffefa}
.dark-chapter{position:relative;z-index:2;isolation:isolate;color:#f4f1eb;background:radial-gradient(ellipse 70% 32% at 75% 17%,#42413c55,transparent 88%),radial-gradient(ellipse 90% 25% at 12% 75%,#43413b38,transparent 85%),#151516;border-radius:0 0 30px 30px}
.dark-chapter.is-arriving{animation:chapter-rise .8s cubic-bezier(.16,.75,.22,1) both}
@keyframes chapter-rise{from{translate:0 110px;border-radius:30px}to{translate:0 0;border-radius:0 0 30px 30px}}
.studio-surface .dark-chapter .studio-library{padding:var(--chapter-space) 0 30px;background:transparent;color:#f4f1eb;--library-width:31vw;--library-gap:22px}
.dark-chapter .library-heading{max-width:1600px;align-items:end;margin-bottom:35px}
.dark-chapter .library-heading h2{font-size:clamp(2.2rem,4vw,4rem);line-height:1.08;font-weight:550;letter-spacing:-.055em;color:#f4f1eb;max-width:22ch}
.dark-chapter .library-note{font-size:1rem;line-height:1.6;color:#c2bfba;max-width:45ch;margin-top:18px}
.dark-chapter .library-pause{font-size:.875rem;color:#c2bfba;min-height:44px}
.dark-chapter .library-card{border-color:#ffffff24;background:#242424;box-shadow:0 20px 35px -28px #000b;border-radius:20px;padding:0}
.dark-chapter .library-card img{border-radius:0}
.dark-chapter .library-viewport{mask-image:linear-gradient(90deg,transparent,#000 2.5%,#000 97.5%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 2.5%,#000 97.5%,transparent)}
.dark-chapter .concept-open:focus-visible{outline:3px solid #f4f1eb;outline-offset:-4px}
.dark-chapter .simple-process{max-width:1600px;padding:clamp(60px,7vw,105px) var(--page-gutter) 20px;color:#f4f1eb}
.process-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}
.dark-chapter .simple-process h2{font-size:clamp(2.1rem,3.5vw,3.5rem);font-weight:550;line-height:1.1;letter-spacing:-.05em;margin:0}
.process-heading>p{font:450 1rem/1.6 var(--display-face);color:#c2bfba;margin:0;max-width:30ch}
.dark-chapter .simple-process-steps{padding:clamp(26px,3vw,44px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid #ffffff21;border-radius:24px;background:linear-gradient(130deg,#ffffff0b,#ffffff03);box-shadow:inset 0 1px #ffffff08}
.dark-chapter .simple-process-steps li{border:0;padding:0 clamp(20px,3vw,45px);min-width:0}
.dark-chapter .simple-process-steps li:first-child{padding-left:0}
.dark-chapter .simple-process-steps li:last-child{padding-right:0}
.dark-chapter .simple-process-steps li+li{border-left:1px solid #ffffff26}
.dark-chapter .simple-process-steps h3{font:550 clamp(1.2rem,1.65vw,1.6rem)/1.23 var(--display-face);letter-spacing:-.025em;max-width:19ch;margin:0 0 17px}
.dark-chapter .simple-process-steps p{font-size:1rem;line-height:1.65;color:#c2bfba;max-width:33ch;margin:0}
.simple-process.is-arriving .simple-process-steps li{animation:step-rise .6s cubic-bezier(.2,.7,.25,1) both}
.simple-process.is-arriving .simple-process-steps li:nth-child(2){animation-delay:.09s}.simple-process.is-arriving .simple-process-steps li:nth-child(3){animation-delay:.18s}
@keyframes step-rise{from{opacity:.25;translate:0 22px}to{opacity:1;translate:0 0}}
.studio-surface .dark-chapter .process-showcase{height:155svh;margin:0;background:transparent}
.dark-chapter .process-showcase-stage{border-radius:0;background:transparent;min-height:560px}
.dark-chapter .showcase-image{top:43%;border-color:#ffffff42;box-shadow:0 24px 60px -25px #000b}
.dark-chapter .showcase-statement{color:#f4f1eb;top:76%;max-width:27ch;font-size:clamp(1.65rem,2.8vw,2.8rem);font-weight:500;line-height:1.17;letter-spacing:-.04em;text-transform:none;margin:0}
.light-chapter{position:relative;background:#f4f1eb;padding-top:12px;padding-bottom:24px}
html.has-motion .studio-surface .optional-services,.studio-surface .optional-services{padding:var(--chapter-space) var(--page-gutter) clamp(50px,6vw,85px);color:var(--ink)}
.optional-services .services-heading{margin-bottom:30px}
.optional-services .services-heading h2,.studio-surface .pricing .pricing-intro h2,.approach-heading h2,.faq-intro h2{font-size:clamp(2.1rem,3.5vw,3.5rem);font-weight:550;line-height:1.1;letter-spacing:-.05em;text-transform:none}
.optional-services .services-title-block>p{font-size:1rem;color:#5e5c57;line-height:1.65;margin-top:17px}
.optional-services .service-media,.optional-services .service-card--additional .service-media{border-radius:18px;box-shadow:none}
.optional-services .service-name{font-weight:550}
.optional-services .mobile-service-detail{background:#e9e5dc;border:1px solid #2323211a;border-radius:16px;color:#242421;box-shadow:none}
.optional-services .mobile-service-detail h3,.optional-services .mobile-service-detail p,.optional-services .mobile-service-detail a,.optional-services .mobile-service-close{color:#242421}
.optional-services .service-card--additional.is-flipped .service-media{outline-color:#343330}
.studio-surface .pricing{padding:0 var(--page-gutter) clamp(50px,6vw,80px);background:transparent;color:var(--ink)}
.studio-surface .pricing-shell{max-width:1450px;border-top:1px solid #23232124;padding-top:clamp(42px,5vw,72px)}
.studio-surface .pricing-intro{display:flex;align-items:end;justify-content:space-between;gap:25px;text-align:left;max-width:none;padding:0;margin:0 0 30px}
.studio-surface .pricing-intro h2{margin:0}
.studio-surface .pricing-intro>p:last-child{margin:0;color:#5e5c57;font-size:1rem;line-height:1.6;max-width:30ch}
.studio-surface .price-options{gap:20px;background:transparent;padding:0;margin:0}
.studio-surface .price-card{align-self:stretch;display:flex;flex-direction:column;min-width:0;min-height:0;background:#fbfaf7;background-image:none;border:1px solid #2323211c;border-radius:22px;box-shadow:none;padding:clamp(28px,3.5vw,50px);color:#191919;overflow:hidden}
.studio-surface .price-card::before,.studio-surface .price-card::after{display:none}
.studio-surface .price-card .package-top{display:block}
.studio-surface .price-card h3{font-size:clamp(1.8rem,2.5vw,2.4rem);font-weight:550;letter-spacing:-.045em;line-height:1.13;margin:0 0 9px}
.studio-surface .price-card .price-label{font-size:.9375rem;line-height:1.5;color:#66635e;margin:0;letter-spacing:0}
.studio-surface .price-card .price{font-family:var(--display-face);font-size:clamp(2.5rem,4vw,4rem);font-weight:500;line-height:1.15;letter-spacing:-.055em;min-height:0;margin:28px 0 14px;color:inherit}
.studio-surface .price-card .price span{font-size:.8125rem;font-weight:500;letter-spacing:.02em;margin-left:4px}
.studio-surface .price-card .price-note{font-size:1rem;line-height:1.6;margin:0;color:#5e5c57;max-width:38ch}
.studio-surface .price-list{list-style:none;margin:23px 0 30px;padding:0;border:0}
.studio-surface .price-list li{padding:10px 0;border:0;border-top:1px solid #2323211c;font-size:1rem;line-height:1.5;color:inherit}
.studio-surface .price-list li::before{display:none}
.package-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;min-height:52px;padding:14px 19px;border:1px solid #292928;border-radius:9px;color:#faf8f3;background:#222222;font:550 .9375rem/1.45 var(--display-face);text-decoration:none;transition:background .2s}
.package-cta:hover{background:#42413f}
.studio-surface .price-card--premium{color:#f5f2ec;background:#222222;border-color:#222222}
.studio-surface .price-card--premium .price-label,.studio-surface .price-card--premium .price-note{color:#c7c4bf}
.studio-surface .price-card--premium .price-list li{border-color:#ffffff24}
.price-card--premium .package-cta{color:#222222;background:#f4f1eb;border-color:#f4f1eb}.price-card--premium .package-cta:hover{background:#ded9cf}
.package-inclusions{display:flex;align-items:baseline;gap:30px;padding:27px 0 18px}
.package-inclusions>p{font:600 .875rem/1.5 var(--display-face);white-space:nowrap;margin:0}
.package-inclusions ul{display:flex;flex-wrap:wrap;gap:10px 25px;list-style:none;padding:0;margin:0;font:450 .9375rem/1.6 var(--display-face);color:#5e5c57}
.studio-surface .pricing-footnote{padding:0;margin:0;max-width:85ch;color:#69665f;font-size:.8125rem;line-height:1.6}
.studio-surface .approach-gallery,.studio-surface .approach-stage{background:transparent}
.approach-heading{max-width:1610px;padding-inline:var(--page-gutter)}
.approach-progress{background:#24242126}.approach-progress>span{background:#343330}
.studio-surface .project-faq{max-width:1610px;padding:clamp(50px,6vw,90px) var(--page-gutter) var(--chapter-space);border:0;gap:clamp(40px,7vw,110px);align-items:start}
.faq-intro h2{margin-bottom:25px}
.faq-list{display:grid;gap:10px}
.faq-list details,.faq-list details:last-child{border:1px solid #23232121;border-radius:14px;background:#fbfaf780;overflow:hidden}
.faq-list details[open]{background:#fbfaf7}
.faq-list summary{padding:22px 24px;min-height:72px;font-weight:550;font-size:1rem;line-height:1.5;gap:25px}
.faq-list summary::after{font-size:1.35rem;color:#5e5c57}
.faq-list p{padding:0 55px 24px 24px;font-size:1rem;line-height:1.7;color:#5e5c57;max-width:65ch}
.studio-surface .project-enquiry{background:#1b1b1c;color:#f4f1eb;width:calc(100% - var(--page-gutter)*2);max-width:1450px;border-radius:24px;margin:0 auto;padding:clamp(35px,5.3vw,78px);gap:clamp(32px,6vw,80px);box-shadow:none}
.project-enquiry::before{background:radial-gradient(ellipse at 0 0,#ffffff0b,transparent 70%)}
.project-enquiry .section-kicker{color:#c6c3bd;font-size:.8125rem;letter-spacing:.06em}
.project-enquiry .enquiry-intro h2{color:#f4f1eb;font-size:clamp(2.4rem,4.7vw,4.7rem);font-weight:550;line-height:1.07;max-width:12ch}
.project-enquiry .enquiry-intro>p:not(.section-kicker){color:#c6c3bd;font-size:1rem;line-height:1.7}
.project-enquiry .enquiry-intro>a{color:#f4f1eb}
.project-enquiry #project-enquiry-form{background:#f4f1eb;color:#292928;border-radius:16px;padding:clamp(22px,2.5vw,36px)}
.project-enquiry #project-enquiry-form :is(input,select,textarea){background:#fbfaf7;border-color:#23232130;border-radius:8px;color:#252523}
.project-enquiry #project-enquiry-form>.primary-cta{background:#242424;color:#f4f1eb;border-color:#242424;justify-self:stretch;border-radius:8px;min-height:50px}
.project-enquiry #project-enquiry-form>.primary-cta:hover{background:#454440;transform:none}
.enquiry-help,.enquiry-status{font-size:.8125rem;color:#68655f}
#project-enquiry-form :is(input,select,textarea):focus-visible{outline-color:#4a4945}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.studio-surface .closing{height:135svh;background:#f4f1eb;padding:0}
.closing-stage{gap:0;padding:0;min-height:0}
.closing .closing-frame{height:calc(var(--closing-height,60svh) + 12svh);max-height:780px;box-shadow:none}
.site-footer{border-radius:0;background:#151516;color:#f4f1eb}
.footer-nav h2,.footer-contact h2{color:#b5b1aa}
.footer-signature,.footer-signature em,.footer-oversize{color:#f4f1eb}
.footer-intro p,.footer-contact p,.footer-nav a,.footer-contact a,.footer-row,.footer-links button,.footer-copy{color:#c9c6c0}
.footer-email{border-color:#c9c6c0}.footer-email:hover{color:#fffefa}
@media(min-width:1600px){.studio-surface .dark-chapter .studio-library{--library-width:27vw}}
@media(max-width:1023px){.studio-surface .dark-chapter .studio-library{--library-width:46vw;--library-gap:18px}.process-heading{align-items:start;flex-direction:column;gap:16px}.process-heading>p{max-width:none}.dark-chapter .simple-process-steps li{padding-inline:23px}.studio-surface .project-enquiry{gap:30px;padding:35px}.project-enquiry .enquiry-fields{grid-template-columns:1fr}}
@media(max-width:860px){.studio-surface .project-enquiry{grid-template-columns:1fr}.project-enquiry .enquiry-intro h2{max-width:16ch}.project-enquiry .enquiry-fields{grid-template-columns:1fr 1fr}.dark-chapter .simple-process-steps{grid-template-columns:1fr;padding:6px 28px}.dark-chapter .simple-process-steps li,.dark-chapter .simple-process-steps li:first-child,.dark-chapter .simple-process-steps li:last-child{padding:27px 0}.dark-chapter .simple-process-steps li+li{border-left:0;border-top:1px solid #ffffff26}.dark-chapter .simple-process-steps h3{max-width:none;font-size:1.35rem;margin-bottom:10px}.dark-chapter .simple-process-steps p{max-width:55ch}.studio-surface .pricing-intro{display:block}.studio-surface .pricing-intro>p:last-child{margin-top:15px}.package-inclusions{display:block}.package-inclusions>p{margin-bottom:12px}.package-inclusions ul{gap:8px 25px}.studio-surface .price-card .price{font-size:3rem}.dark-chapter .process-showcase-stage{min-height:0}}
@media(max-width:639px){
 :root{--page-gutter:22px;--chapter-space:64px}
 .photo-hero-story .hero .scene-inner{min-height:max(670px,94svh);padding:135px 24px 75px}
 .photo-hero-story .hero-photo{background:#c3bfb5}
 .photo-hero-story .hero-photo img{inset:auto -5% 0 auto;width:125%;max-width:none;height:auto;object-fit:contain;object-position:center;mask-image:linear-gradient(transparent,#000 24%);-webkit-mask-image:linear-gradient(transparent,#000 24%)}
 .photo-hero-story .hero h1{font-size:clamp(2.3rem,9.3vw,3.55rem);line-height:1.12;max-width:15ch}
 .hero-ribbon{padding:16px 12px;font-size:.75rem;letter-spacing:0}.hero-ribbon>div{justify-content:space-between;gap:9px}.hero-ribbon span{white-space:normal;text-align:center;max-width:12ch}.hero-ribbon i{width:3px;height:3px}
 .dark-chapter{border-radius:0 0 22px 22px}
 .studio-surface .dark-chapter .studio-library{--library-width:83vw;--library-gap:14px;padding-top:52px;padding-bottom:15px}
 .dark-chapter .library-heading{gap:12px;margin-bottom:22px}.dark-chapter .library-heading h2{font-size:clamp(2rem,8.7vw,2.75rem);max-width:19ch}.dark-chapter .library-note{max-width:32ch;font-size:.9375rem}.dark-chapter .library-pause{font-size:.8125rem;min-height:44px}
 .dark-chapter .library-card{border-radius:16px}
 .dark-chapter .simple-process{padding-top:48px;padding-bottom:5px}.process-heading{margin-bottom:23px;gap:13px}.dark-chapter .simple-process h2{font-size:2.1rem}.process-heading>p{font-size:.9375rem}
 .dark-chapter .simple-process-steps{border-radius:20px;padding:2px 24px}.dark-chapter .simple-process-steps p{font-size:1rem}
 .studio-surface .dark-chapter .process-showcase{height:170svh;min-height:0}
 .dark-chapter .process-showcase-stage{min-height:calc(100vw + 230px)}
 .dark-chapter .showcase-image{top:calc(85px + 47vw)}
 .dark-chapter .showcase-statement{top:calc(165px + 87vw);width:calc(100% - 48px);max-width:26ch;font-size:clamp(1.65rem,6.4vw,2rem);line-height:1.2}
 .optional-services .services-heading h2,.studio-surface .pricing .pricing-intro h2,.approach-heading h2,.faq-intro h2{font-size:clamp(2rem,8.2vw,2.8rem)}
 .optional-services .services-title-block>p{max-width:34ch}
 .optional-services .additional-services{scrollbar-color:#8c8982 transparent;gap:14px;margin-right:-22px;padding-right:22px}
 .optional-services .additional-services .service-card--additional{flex-basis:68vw;min-width:220px;max-width:320px}
 .optional-services .additional-services .service-name{font-size:1.6rem}
 .studio-surface .pricing{padding-bottom:30px}.studio-surface .pricing-shell{padding-top:45px}.studio-surface .pricing-intro{margin-bottom:26px}
 .studio-surface .price-options{grid-template-columns:1fr;gap:18px}.studio-surface .price-card{padding:28px;border-radius:20px}.studio-surface .price-card h3{font-size:1.9rem}.studio-surface .price-card .price{font-size:3.2rem;margin-top:24px}.studio-surface .price-list{margin-top:23px;margin-bottom:26px}
 .package-inclusions ul{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;font-size:.875rem}.studio-surface .pricing-footnote{font-size:.8125rem}
 .studio-surface .project-faq{gap:27px;padding-top:40px}.faq-intro h2{margin-bottom:13px}.faq-list summary{padding:19px 20px;min-height:70px;gap:20px}.faq-list p{padding:0 20px 22px}.faq-list details{border-radius:13px}
 .studio-surface .project-enquiry{width:calc(100% - 28px);padding:33px 20px;border-radius:22px;gap:30px}.project-enquiry .enquiry-intro h2{font-size:clamp(2.5rem,10vw,3.4rem);max-width:12ch}.project-enquiry .section-kicker{margin-bottom:19px}.project-enquiry #project-enquiry-form{padding:22px 18px}.project-enquiry .enquiry-fields{grid-template-columns:1fr}
 .studio-surface .closing{height:145svh}.closing .closing-frame{height:calc(var(--closing-height,60svh) + 10svh);max-height:720px}
}
@media(max-width:360px){.hero-ribbon{font-size:.75rem;padding-inline:10px}.hero-ribbon>div{gap:5px}.package-inclusions ul{grid-template-columns:1fr}.photo-hero-story .wordmark{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){
 .dark-chapter.is-arriving,.simple-process.is-arriving .simple-process-steps li{animation:none}
 .studio-surface .dark-chapter .process-showcase{height:auto;min-height:0;margin:0}
 .dark-chapter .process-showcase-stage{position:relative;height:auto;min-height:0;padding:35px var(--page-gutter) 55px}
 .dark-chapter .showcase-image{position:relative;top:auto;left:auto;opacity:1;transform:none}
 .dark-chapter .showcase-statement{position:relative;top:auto;left:auto;transform:none;opacity:1;width:100%;max-width:27ch;margin:30px auto 0;font-size:clamp(1.65rem,2.8vw,2.8rem)}
 .studio-surface .closing{height:auto;padding:28px 0}.closing-stage{position:relative;height:auto}
 .closing .closing-frame{height:auto;max-height:none;aspect-ratio:2.1;transform:none}.closing.reveal-section .closing-frame img{transform:none}
}
@media(max-width:639px) and (prefers-reduced-motion:reduce){.closing .closing-frame{aspect-ratio:3/4}}
@media(max-height:520px){.studio-surface .closing{height:auto;padding:28px 0}.closing-stage{position:relative;height:auto}.closing .closing-frame{height:auto;aspect-ratio:2;max-height:none;transform:none}}


/* intro-sequence.css */
/* The archived two-scene introduction: one pinned screen, then normal page flow. */
.brand-welcome{position:relative;background:#151516;color:#f4f1eb;isolation:isolate}
.welcome-stage{display:grid;place-items:center;min-height:75svh;padding:90px var(--page-gutter)}
.welcome-content{width:100%;max-width:1050px;text-align:center}
.welcome-kicker{margin:0 0 28px;font:500 .875rem/1.5 var(--display-face);letter-spacing:.035em;color:#c1bdb6}
.welcome-content h2{max-width:26ch;margin:0 auto;font:430 clamp(2.4rem,4.5vw,4.8rem)/1.1 "Newsreader",Georgia,serif;letter-spacing:-.035em;text-transform:none;text-wrap:balance;color:#f4f1eb}
.welcome-word{display:inline-block;white-space:nowrap;vertical-align:baseline}
.welcome-copy{max-width:59ch;margin:30px auto 0;color:#c9c5bf;font:450 clamp(1rem,1.2vw,1.125rem)/1.7 var(--display-face);letter-spacing:-.01em;text-wrap:pretty}
.intro-shade{display:none}
#story.has-intro-sequence{height:250svh;background:#151516}
#story.has-intro-sequence .stage{position:sticky;top:0;height:100svh;min-height:0;background:#151516;overflow:hidden}
#story.has-intro-sequence .visual{clip-path:inset(var(--intro-inset-y,0%) var(--intro-inset-x,0%) round var(--intro-radius,0px));filter:blur(var(--intro-blur,0px));will-change:clip-path}
#story.has-intro-sequence .intro-shade{display:block;position:absolute;inset:0;z-index:7;pointer-events:none;background:#151516;opacity:var(--intro-dark,0)}
#story.has-intro-sequence .hero{position:absolute;inset:0;height:100%;min-height:0}
#story.has-intro-sequence .hero .scene-inner{height:100%;min-height:0;padding-top:140px;padding-bottom:80px}
#story.has-intro-sequence .brand-welcome{position:absolute;inset:0;z-index:11;height:100%;min-height:0;background:transparent;opacity:0;pointer-events:none}
#story.has-intro-sequence .welcome-stage{height:100%;min-height:0;padding:100px var(--page-gutter) 65px}
#story.has-intro-sequence .hero[aria-hidden="true"]{pointer-events:none}
#story.has-intro-sequence .brand-welcome .welcome-word{will-change:opacity,transform}
/* Each process step is a complete card, including at phone widths. */
.dark-chapter .simple-process-steps{padding:0;border:0;border-radius:0;background:none;box-shadow:none;gap:20px;align-items:stretch}
.dark-chapter .simple-process-steps li,.dark-chapter .simple-process-steps li:first-child,.dark-chapter .simple-process-steps li:last-child{padding:clamp(28px,2.5vw,36px);border:1px solid #ffffff26;border-radius:var(--card-radius,20px);background:#242425;box-shadow:inset 0 1px #ffffff06}
.dark-chapter .simple-process-steps h3{margin-bottom:20px;font-size:clamp(1.6rem,2vw,2rem)}
.dark-chapter .simple-process-steps p{font-size:.9375rem;line-height:1.7;max-width:34ch}
/* Compact packages, with the shared inclusions kept close and easy to compare. */
.studio-surface .pricing-shell{max-width:1220px}
.studio-surface .price-options{gap:18px}
.studio-surface .price-card{padding:clamp(25px,2.5vw,34px);border-radius:19px}
.studio-surface .price-card h3{font-size:clamp(1.7rem,2.1vw,2rem)}
.studio-surface .price-card .price{font-size:clamp(2.6rem,3.3vw,3.3rem);margin:20px 0 10px}
.studio-surface .price-card .price-note,.studio-surface .price-card .price-label{font-size:.9375rem}
.studio-surface .price-list{margin:20px 0 24px}
.studio-surface .price-list li{position:relative;padding:8px 0 8px 24px;border:0;font-size:.9375rem;line-height:1.5}
.studio-surface .price-list li::before,.package-inclusions li::before{content:"✓";display:block;position:absolute;left:0;top:8px;font-family:Arial,sans-serif;font-size:.95rem;font-weight:400;color:currentColor}
.package-inclusions{display:block;margin:22px 0 14px;padding:24px 28px;border:1px solid #2323211c;border-radius:16px;background:#ebe7e033}
.package-inclusions>p{font-size:.9375rem;margin-bottom:16px}
.package-inclusions ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 35px;font-size:.875rem;line-height:1.65;color:#504e49}
.package-inclusions li{position:relative;padding-left:23px}
.package-inclusions li::before{top:0}
@media(max-width:860px){.dark-chapter .simple-process-steps{grid-template-columns:minmax(0,1fr);gap:14px}.dark-chapter .simple-process-steps li,.dark-chapter .simple-process-steps li:first-child,.dark-chapter .simple-process-steps li:last-child{padding:28px}.dark-chapter .simple-process-steps p{max-width:48ch}.dark-chapter .simple-process-steps h3{font-size:1.6rem;margin-bottom:14px}}
@media(max-width:639px){
 #story.has-intro-sequence{height:235svh}
 #story.has-intro-sequence .hero .scene-inner{padding:110px 24px 45px;justify-content:center}
 #story.has-intro-sequence .hero h1{font-size:clamp(2.1rem,8.65vw,3.5rem)}
 #story.has-intro-sequence .welcome-stage{padding:85px 25px 45px}
 .welcome-content h2{font-size:clamp(2.2rem,8.3vw,3.3rem);max-width:23ch;line-height:1.12;letter-spacing:-.025em}
 .welcome-kicker{font-size:.8125rem;margin-bottom:25px}
 .welcome-copy{font-size:.9375rem;line-height:1.7;max-width:36ch;margin-top:25px}
 .package-inclusions{padding:23px;margin-top:18px}
 .package-inclusions ul{grid-template-columns:1fr;gap:12px;font-size:.875rem}
 .studio-surface .price-card .price{font-size:2.75rem}
}
@media(prefers-reduced-motion:reduce){.welcome-word{opacity:1!important;transform:none!important;filter:none!important}}


/* mobile-performance.css */
/* Mobile keeps the same scenes; touch scrolling drives lightweight layers. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.project-enquiry>*,.project-faq>*{min-width:0}
@media(max-width:767px){
 html{scroll-padding-top:16px}
 .photo-hero-story .nav-project,.welcome-kicker,.dark-chapter .library-pause{font-size:.875rem}
 .welcome-copy,.dark-chapter .library-note,.dark-chapter .simple-process-steps p,.process-heading>p{font-size:1rem}
 .faq-list summary,.package-cta{min-height:48px}
 .project-enquiry .enquiry-intro>a{overflow-wrap:anywhere}
 .library-pause,.concept-close,.mobile-service-close{min-width:44px;min-height:44px}
 .approach-gallery.is-scroll-gallery .approach-card img{height:clamp(245px,48svh,440px);min-height:0}
 .approach-gallery .approach-caption{padding:22px}
 .approach-gallery .approach-caption h3{font-size:clamp(1.65rem,7vw,2.5rem);line-height:1.15}
 .footer-nav{gap:4px}
 .footer-nav a{display:flex;align-items:center;min-height:44px}
 .footer-links button{min-height:44px}
}
@media(max-width:639px) and (prefers-reduced-motion:no-preference){
 #story.has-intro-sequence{height:225svh}
 #story.has-intro-sequence .visual{filter:none;will-change:auto}
 #story.has-intro-sequence .hero,#story.has-intro-sequence .brand-welcome,#story.has-intro-sequence .welcome-word{filter:none;will-change:opacity,transform}
 #story.has-intro-sequence .intro-shade{will-change:opacity}
 #story.has-intro-sequence .welcome-stage{padding:78px 24px 36px}
 .studio-surface .dark-chapter .process-showcase{height:155svh}
 .dark-chapter .process-showcase-stage{min-height:0;height:100svh}
 .dark-chapter .showcase-image{top:43%;width:min(80vw,56svh)}
 .dark-chapter .showcase-statement{top:80%;max-width:26ch}

}
@media(max-width:639px) and (max-height:640px){
 #story.has-intro-sequence .hero .scene-inner{padding:92px 22px 28px}
 #story.has-intro-sequence .hero-intro{margin-bottom:18px}
 #story.has-intro-sequence .hero-lower{margin-top:20px;gap:19px}
 #story.has-intro-sequence .welcome-stage{padding:76px 24px 30px}
 .welcome-content h2{font-size:clamp(2rem,8vw,2.5rem)}
 .welcome-kicker{margin-bottom:20px}
 .welcome-copy{margin-top:21px;line-height:1.6}
}
@media(max-width:359px){
 .photo-hero-story .wordmark{font-size:1.2rem}
 .photo-hero-story .nav{padding-inline:18px;gap:8px}
 .photo-hero-story .nav-project{font-size:.8125rem}
 .hero-ribbon{padding-inline:12px;font-size:.75rem}
 .dark-chapter .simple-process-steps li,.dark-chapter .simple-process-steps li:first-child,.dark-chapter .simple-process-steps li:last-child{padding:23px}
 .studio-surface .price-card{padding:24px}
 .project-enquiry #project-enquiry-form{padding:20px 14px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* One photographic ending: the cream fades away into the footer's charcoal. */
.studio-surface .closing{position:relative;isolation:isolate;height:calc(min(90svh,41.67vw + 12svh) + 45svh);padding:0;background:#151516}
.studio-surface .closing::before{content:"";position:absolute;inset:0;z-index:-1;background:#f4f1eb;opacity:calc(1 - var(--closing-dark,0));pointer-events:none;will-change:opacity}
.closing .closing-stage{height:min(90svh,calc(41.67vw + 12svh));min-height:0;padding:0;gap:0}
.closing .closing-frame{width:min(calc(100% - var(--page-gutter)*2),1600px,168svh);height:auto;aspect-ratio:1942/809;max-height:none;min-height:0;border-radius:var(--closing-radius,22px);transform:translate3d(0,var(--closing-rise,14px),0) rotateX(var(--closing-perspective,3deg)) scale(var(--closing-scale,.88));will-change:transform;border:0;box-shadow:none}
.closing.reveal-section .closing-frame img{object-fit:cover;transform:translate3d(0,var(--closing-image-y,0%),0) scale(var(--closing-image-scale,1.04))}
.site-footer{border-top:0}
@media(max-width:639px){
 .studio-surface .closing{height:135svh}
 .closing .closing-stage{height:90svh}
 .closing .closing-frame{width:min(calc(100% - 40px),54svh);height:auto;aspect-ratio:3/4;transform:translate3d(0,var(--closing-rise,14px),0) rotateX(var(--closing-perspective,3deg)) scale(var(--closing-scale,.88))}
}
@media(prefers-reduced-motion:reduce),(max-height:520px){
 .studio-surface .closing{height:auto;padding:24px 0 0}
 .studio-surface .closing::before{display:none}
 .closing .closing-stage{position:relative;height:auto}
 .closing .closing-frame{height:auto;aspect-ratio:2.4;transform:none;border-radius:18px;will-change:auto}
 .closing.reveal-section .closing-frame img{transform:none;will-change:auto}
}
@media(max-width:639px) and (prefers-reduced-motion:reduce),(max-width:639px) and (max-height:520px){
 .closing .closing-frame{width:calc(100% - 40px);aspect-ratio:3/4}
}

/* Shared typography: expressive headings, readable copy and deliberate italic accents. */
:root{--display-face:"Instrument Sans",Arial,sans-serif;--section-title-size:clamp(2.5rem,4.5vw,4.6rem);--section-title-leading:1.08;--section-title-tracking:-.045em;--card-radius:20px}
.hero-ribbon{background:#fff;color:#191919}
.dark-chapter .library-heading h2,.dark-chapter .simple-process h2,.optional-services .services-heading h2,.studio-surface .pricing .pricing-intro h2,.studio-surface .approach-heading h2,.studio-surface .faq-intro h2,.project-enquiry .enquiry-intro h2{
 font-family:var(--display-face);font-size:var(--section-title-size);font-weight:600;line-height:var(--section-title-leading);letter-spacing:var(--section-title-tracking);text-transform:none;text-wrap:balance
}
.project-enquiry .enquiry-intro h2{max-width:16ch}
.dark-chapter .library-note,.process-heading>p,.optional-services .services-title-block>p,.studio-surface .pricing-intro>p:last-child,.project-enquiry .enquiry-intro>p:not(.section-kicker){font-family:var(--display-face);font-size:1rem;font-weight:400;line-height:1.65;letter-spacing:-.01em;max-width:46ch}
.library-concept-label{display:block;margin-top:10px;font-size:.875rem;line-height:1.5;color:#c2bfba}
.dark-chapter .simple-process-steps h3,.optional-services .service-name,.studio-surface .price-card h3{font-family:var(--display-face);font-weight:600;letter-spacing:-.03em;line-height:1.2}
.dark-chapter .simple-process-steps p{font-size:1rem;line-height:1.65}
.dark-chapter .library-heading,.process-heading,.optional-services .services-heading,.studio-surface .pricing-intro{margin-bottom:30px}
.dark-chapter .library-card,.optional-services .service-media,.optional-services .service-card--additional .service-media,.studio-surface .price-card,.dark-chapter .simple-process-steps li{border-radius:var(--card-radius)}
.primary-cta,.package-cta,.quiet-cta,.nav-project,.library-pause{font-family:var(--display-face);letter-spacing:-.01em}
#project-enquiry-form :is(input,select,textarea){font-family:var(--display-face);font-size:1rem;line-height:1.5;min-width:0;max-width:100%}
#project-enquiry-form label{font-family:var(--display-face);font-size:.9375rem;line-height:1.5}
@media(max-width:639px){
 :root{--section-title-size:clamp(2.2rem,9.6vw,3rem);--card-radius:18px}
 .project-enquiry .enquiry-intro h2{max-width:16ch}
 .dark-chapter .library-heading,.process-heading,.optional-services .services-heading,.studio-surface .pricing-intro{margin-bottom:24px}
 .hero-ribbon{font-size:.8125rem}
 .dark-chapter .showcase-statement{letter-spacing:-.035em;text-wrap:balance}
 .project-enquiry .enquiry-intro>a{overflow-wrap:anywhere;display:block}
}

/* The actual work gallery sweeps over the welcome, then rejoins normal flow. */
.studio-surface.has-entry-sweep{position:relative;z-index:15;margin-top:calc(-1 * var(--intro-screen-height));background:transparent}
.studio-surface.has-entry-sweep .dark-chapter{background:transparent}
.studio-surface.has-entry-sweep .dark-chapter::before{content:"";position:absolute;inset:var(--entry-height) 0 0;z-index:-1;background:radial-gradient(ellipse 90% 40% at 12% 75%,#43413b38,transparent 85%),#151516;border-radius:0 0 30px 30px;pointer-events:none}
.intro-entry{position:relative;background:radial-gradient(ellipse 80% 65% at 75% 40%,#42413c55,transparent 90%),#151516}
.has-entry-sweep .intro-entry{min-height:var(--intro-screen-height);overflow:clip}
.welcome-content{max-width:1400px}
.welcome-content h2{max-width:none;font-family:"Instrument Sans",Arial,sans-serif;font-weight:600;font-size:clamp(2.8rem,5.4vw,6rem);line-height:1.12;letter-spacing:-.05em}
.welcome-content .welcome-line{display:block}
.welcome-content .welcome-phrase{display:inline-block;max-width:100%}
.welcome-content em{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;font-size:1.06em;line-height:1.15;letter-spacing:-.025em}
.welcome-copy{max-width:48ch;margin-top:30px;font-family:"Instrument Sans",Arial,sans-serif;font-weight:400;font-size:1.125rem;line-height:1.65;letter-spacing:-.01em}

/* Open process columns: typography and fine rules instead of filled cards. */
.dark-chapter .simple-process-steps{gap:0;padding:0;border:0;border-top:1px solid #ffffff35;border-radius:0;background:none;box-shadow:none}
.dark-chapter .simple-process-steps li,.dark-chapter .simple-process-steps li:first-child,.dark-chapter .simple-process-steps li:last-child{padding:30px clamp(24px,3vw,44px) 0;border:0;border-radius:0;background:none;box-shadow:none}
.dark-chapter .simple-process-steps li:first-child{padding-left:0}
.dark-chapter .simple-process-steps li:last-child{padding-right:0}
.dark-chapter .simple-process-steps li+li{border-left:1px solid #ffffff26}
.dark-chapter .simple-process-steps h3{font-size:clamp(1.9rem,2.65vw,2.65rem);line-height:1.12;margin:0 0 20px;max-width:none}
.dark-chapter .simple-process-steps p{font-size:1rem;line-height:1.7;max-width:34ch;color:#cbc8c2}
.studio-surface .price-card .package-offer{display:inline-flex;align-items:center;align-self:flex-start;margin:0 0 8px;font:600 .875rem/1.5 var(--display-face);letter-spacing:0;border-bottom:1px solid #23232140;padding-bottom:3px}
.studio-surface .price-card .price-standard{font-size:.875rem;line-height:1.5;letter-spacing:0;margin:0 0 20px;color:#64615b}
.studio-surface .price-card--premium .price-standard{color:#c7c4bf}
@media(max-width:860px){
 .dark-chapter .simple-process-steps{grid-template-columns:minmax(0,1fr)}
 .dark-chapter .simple-process-steps li,.dark-chapter .simple-process-steps li:first-child,.dark-chapter .simple-process-steps li:last-child{padding:26px 0;border:0;border-radius:0}
 .dark-chapter .simple-process-steps li+li{border-left:0;border-top:1px solid #ffffff26}
 .dark-chapter .simple-process-steps h3{font-size:1.9rem;margin-bottom:13px}
 .dark-chapter .simple-process-steps p{max-width:52ch}
}
@media(max-width:639px){
 .welcome-content h2{font-size:clamp(1.9rem,9vw,3.5rem)}
 .welcome-copy{max-width:33ch;font-size:1rem;line-height:1.65}
}

/* The big hero statement leads; the service promise sits underneath. */
.photo-hero-story .hero h1{max-width:16ch;font-family:var(--display-face);font-weight:600;font-size:clamp(3.3rem,6.7vw,7.4rem);line-height:1.06;letter-spacing:-.045em;text-wrap:balance}
.photo-hero-story .hero .hero-copy{font-family:var(--display-face);font-weight:400;font-size:clamp(1.0625rem,1.3vw,1.25rem);line-height:1.55;letter-spacing:-.01em;max-width:38ch}
.photo-hero-story .hero-copy em{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-style:italic;font-size:1.2em;line-height:1;letter-spacing:0;white-space:nowrap}
.photo-hero-story .hero-actions{gap:12px;width:auto;max-width:100%;flex-wrap:wrap}
.photo-hero-story .hero-actions :is(.primary-cta,.hero-call-cta){display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid #fffaf5;border-radius:7px;font:600 .875rem/1.4 "Instrument Sans",Arial,sans-serif;letter-spacing:-.01em;text-decoration:none;white-space:nowrap;box-shadow:none;transition:background .2s,border-color .2s,color .2s}
.photo-hero-story .hero-actions .hero-call-cta{background:transparent;color:#fffaf5;border-color:#fffaf5a6}
@media(hover:hover){.photo-hero-story .hero-actions .hero-call-cta:hover{background:#fffaf514;border-color:#fffaf5}}
@media(max-width:639px){
 .photo-hero-story .hero h1,#story.has-intro-sequence .hero h1{max-width:16ch;font-size:clamp(2.5rem,10.8vw,4.3rem);line-height:1.08;letter-spacing:-.045em}
 .photo-hero-story .hero-actions{gap:10px}
 .photo-hero-story .hero-actions :is(.primary-cta,.hero-call-cta){padding-inline:16px}
}

/* Carry the same family into the remaining statements and utility headings. */
.dark-chapter .showcase-statement{font-family:var(--display-face);font-weight:600;font-size:var(--section-title-size);line-height:var(--section-title-leading);letter-spacing:var(--section-title-tracking)}
.approach-gallery .approach-caption h3{font-family:var(--display-face);font-weight:600}
.footer-nav h2,.footer-contact h2,.legal-dialog h2,.concept-toolbar h2{font-family:var(--display-face);font-weight:600;letter-spacing:-.03em}
.legal-dialog h2{font-size:clamp(2.2rem,4.5vw,3.5rem);line-height:1.08}
.services-title-block,.pricing-intro>*,.faq-intro,.enquiry-intro{min-width:0}
.studio-surface .pricing-intro,.optional-services .services-heading{flex-wrap:wrap}


/* hero-packages.css */
/* Dark photographic hero, with a light gradient only along its very top edge. */
.photo-hero-story,
.photo-hero-story .stage {
  background: #25221f;
  color: #fffefa;
}
.photo-hero-story .visual {
  background: #25221f;
}
.photo-hero-story .hero-photo {
  background: #25221f;
}
.photo-hero-story .visual::after {
  background:
    linear-gradient(180deg, #f4f1eb2e 0px, #f4f1eb14 75px, #f4f1eb00 200px),
    linear-gradient(90deg, rgba(20,19,18,.88) 0%, rgba(20,19,18,.79) 35%, rgba(20,19,18,.48) 72%, rgba(20,19,18,.45) 100%),
    linear-gradient(0deg, rgba(20,19,18,.2), transparent 48%);
}
.photo-hero-story .hero-message,
.photo-hero-story .hero h1 {
  color: #fffefa;
}
.photo-hero-story .hero .hero-copy {
  color: #e8e5e0;
}
.photo-hero-story .nav {
  --nav-color: 255,250,245;
  color: #fffaf5;
}
/* The soft glow is still dark enough for the same light navigation throughout. */
.photo-hero-story .nav :is(a,.wordmark) {
  color: #fffaf5;
}
.photo-hero-story .nav-project {
  border-color: currentColor;
}
.photo-hero-story .hero-actions .primary-cta {
  color: #24201e;
  background: #fffaf5;
  border-color: #fffaf5;
}
.photo-hero-story .hero-actions .hero-call-cta {
  color: #fffaf5;
  background: transparent;
  border-color: #fffaf5a6;
}
.photo-hero-story a:focus-visible {
  outline-color: currentColor;
}

/* One continuous, unhurried industries ribbon above the packages. */
.industry-banner {
  position: relative;
  padding: 19px 0;
  background: #141414;
  border-block: 1px solid #ffffff1f;
  color: #f4f1eb;
  overflow: hidden;
}
.industry-banner .industry-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px 30px;
  margin: 0;
  padding: 0 var(--page-gutter);
  list-style: none;
}
.industry-banner li {
  display: flex;
  align-items: center;
  gap: 30px;
  flex-shrink: 0;
  padding: 0;
  text-align: center;
  font: 500 1.0625rem/1.5 var(--display-face);
  letter-spacing: -.01em;
  white-space: nowrap;
}
.industry-banner.is-animated .industry-viewport {
  padding-block: 2px;
  mask-image: linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 86px),transparent calc(100% - 54px));
  -webkit-mask-image: linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 86px),transparent calc(100% - 54px));
}
.industry-banner.is-animated .industry-track {
  display: flex;
  width: max-content;
  animation: industry-drift var(--industry-duration,90s) linear infinite;
  animation-play-state: paused;
}
.industry-banner.is-animated.is-running .industry-track {animation-play-state:running}
.industry-banner.is-animated .industry-group {
  flex: 0 0 auto;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0;
  min-width: 100vw;
  padding: 0;
}
.industry-banner.is-animated li {padding-right:30px}
.industry-banner.is-animated li::after {
  content: "";
  flex: 0 0 14px;
  height: 14px;
  background: currentColor;
  mask: url("studio-star.svg") center/contain no-repeat;
  -webkit-mask: url("studio-star.svg") center/contain no-repeat;
  opacity: .6;
}
.industry-pause {
  position: absolute;
  right: 12px;
  top: 50%;
  translate: 0 -50%;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  color: #f4f1eb;
  background: #141414;
  border: 1px solid #ffffff38;
  border-radius: 50%;
  cursor: pointer;
}
.industry-pause[hidden] {display:none}
.industry-pause::before {
  content: "";
  width: 9px;
  height: 11px;
  border-inline: 2px solid currentColor;
}
.industry-pause[aria-pressed="true"]::before {
  width: 10px;
  height: 10px;
  border: 1px solid currentColor;
  border-radius: 50%;
}
.industry-pause:focus-visible {outline:2px solid currentColor;outline-offset:3px}
@keyframes industry-drift {to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce) {
  .industry-banner.is-animated .industry-track {animation:none;transform:none}
  .industry-banner.is-animated .industry-group[aria-hidden="true"] {display:none}
}
/* Same surface, same hierarchy, same action for both packages. */
.studio-surface .pricing-shell {
  border-top: 0;
  padding-top: clamp(38px,4vw,58px);
}
.studio-surface .pricing-intro {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  justify-items: center;
  align-items: center;
  gap: 20px;
  padding: 0;
  margin: 0 0 38px;
  text-align: center;
}
.studio-surface .pricing .pricing-intro h2 {
  max-width: 100%;
  margin: 0 auto;
  /* Earlier motion styles used !important for the former dark title panel. */
  color: #232321 !important;
}
.studio-surface .pricing-intro > p:last-child {
  max-width: 48ch;
  margin: 0 auto;
  text-align: center;
  color: #59574f;
}
.studio-surface .price-options {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  padding: 0;
}
.studio-surface .price-card,
.studio-surface .price-card--premium {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
  padding: clamp(26px,3vw,40px);
  border: 1px solid #d6d2c8;
  border-top: 3px solid #232321;
  border-radius: 20px;
  background: #fbfaf7;
  background-image: none;
  box-shadow: 0 1px 0 #ffffffb3 inset;
  color: #232321;
}
.studio-surface .price-card .package-top {
  padding-bottom: 22px;
  border-bottom: 1px solid #e3dfd6;
}
.studio-surface .price-card h3 {
  margin: 0 0 7px;
  font-size: clamp(1.85rem,2.6vw,2.3rem);
  line-height: 1.15;
}
.studio-surface .price-card .price-label,
.studio-surface .price-card--premium .price-label {
  margin: 0;
  color: #615e56;
  font-size: .9375rem;
  line-height: 1.5;
}
.package-price {
  padding: 22px 0 18px;
}
.studio-surface .price-card .price {
  margin: 0;
  font-size: clamp(2.8rem,3.5vw,3.6rem);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -.055em;
  color: #232321;
}
.studio-surface .price-card .price span {
  display: inline-block;
  font-size: .875rem;
  font-weight: 400;
  letter-spacing: 0;
  white-space: nowrap;
}
.studio-surface .package-total {
  margin: 8px 0 0;
  font-size: .8125rem;
  line-height: 1.5;
  color: #646158;
}
.studio-surface .package-terms {
  min-height: 2.9em;
  margin: 0 0 20px;
  font-size: .875rem;
  line-height: 1.5;
  color: #615e56;
}
.package-terms strong {
  display: block;
  font-weight: 600;
  color: #34342f;
}
.package-terms span {
  display: block;
  margin-top: 3px;
}
.studio-surface .price-card .price-note,
.studio-surface .price-card--premium .price-note {
  margin: 0;
  max-width: 43ch;
  font-size: 1rem;
  line-height: 1.55;
  color: #504e47;
}
.studio-surface .price-list {
  list-style: none;
  margin: 20px 0 26px;
  padding: 0;
  border: 0;
}
.studio-surface .price-list li {
  position: relative;
  margin: 0;
  padding: 7px 0 7px 24px;
  border: 0;
  color: #34342f;
  font-size: .9375rem;
  line-height: 1.5;
}
/* Fully reset the old round bullet before drawing one clean checklist tick. */
.studio-surface .price-list li::before,
.studio-surface .package-inclusions li::before {
  content: "✓";
  display: block;
  position: absolute;
  top: 7px;
  left: 0;
  width: auto;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font: 400 .95rem/1.5 Arial,sans-serif;
  color: #56594d;
}
.studio-surface .price-card .package-cta {
  justify-content: center;
  min-height: 48px;
  margin-top: auto;
  padding: 13px 16px;
  border: 1px solid #252523;
  border-radius: 999px;
  background: #252523;
  color: #fbfaf7;
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
}
.studio-surface .price-card .package-cta:focus-visible {
  outline: 2px solid #232321;
  outline-offset: 4px;
}
.studio-surface .package-inclusions {
  display: block;
  margin: 24px 0 20px;
  padding: 0;
  border: 0;
  border-block: 1px solid #d6d2c8;
  border-radius: 0;
  background: none;
}
.studio-surface .package-inclusions > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 72px;
  padding: 20px 0;
  cursor: pointer;
  list-style: none;
  -webkit-tap-highlight-color: transparent;
}
.package-inclusions > summary::-webkit-details-marker {
  display: none;
}
.package-inclusions > summary::marker {
  content: "";
}
.package-inclusions > summary:focus-visible {
  outline: 2px solid #44423b;
  outline-offset: 5px;
  border-radius: 4px;
}
.studio-surface .inclusions-label {
  margin: 0;
  color: #232321;
  font: 600 1.25rem/1.25 var(--display-face);
  letter-spacing: -.025em;
}
.inclusions-toggle {
  flex-shrink: 0;
  color: #59574f;
  font: 400 .875rem/1.5 var(--display-face);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.package-inclusions:not([open]) .inclusions-content,
.package-inclusions:not([open]) .inclusions-hide,
.package-inclusions[open] .inclusions-show {
  display: none;
}
.inclusions-content {
  padding: 2px 0 28px;
}
.studio-surface .package-inclusions ul {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px 26px;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #504e47;
  font-size: .9375rem;
  line-height: 1.55;
}
.studio-surface .package-inclusions li {
  position: relative;
  padding-left: 24px;
}
.studio-surface .package-inclusions li::before {
  top: 0;
}
.studio-surface .pricing-footnote {
  max-width: 95ch;
  margin: 0;
  color: #67635b;
  font-size: .8125rem;
  line-height: 1.65;
}
@media (hover:hover) {
  .photo-hero-story .hero-actions .primary-cta:hover {
    background: #e5dfd5;
    border-color: #e5dfd5;
  }
  .studio-surface .price-card .package-cta:hover {
    background: #44443e;
    border-color: #44443e;
  }
  .photo-hero-story .hero-actions .hero-call-cta:hover {
    color: #fffaf5;
    background: #fffaf514;
    border-color: #fffaf5;
  }
}
@media (max-width:860px) {
  .studio-surface .pricing-intro {
    grid-template-columns: minmax(0,1fr);
    gap: 16px;
  }
  .studio-surface .pricing-intro > p:last-child {
    max-width: 42ch;
    margin: 0 auto;
  }
}
@media (max-width:767px) {
  .industry-banner {
    padding-block: 14px;
  }
  .industry-banner li {
    font-size: 1rem;
  }
  .studio-surface .price-options {
    grid-template-columns: minmax(0,1fr);
    gap: 18px;
  }
  .studio-surface .price-card {
    padding: 26px;
    border-radius: 18px;
  }
  .studio-surface .package-terms {
    min-height: 0;
  }
}
@media (max-width:639px) {
  .photo-hero-story .visual::after {
    background:
      linear-gradient(180deg, #f4f1eb24 0px, #f4f1eb0f 58px, #f4f1eb00 140px),
      linear-gradient(180deg, rgba(20,19,18,.83) 0%, rgba(20,19,18,.77) 45%, rgba(20,19,18,.48) 82%, rgba(20,19,18,.52)),
      linear-gradient(90deg, rgba(20,19,18,.17), transparent);
  }
  .photo-hero-story .hero-photo {
    background: #25221f;
  }
  .photo-hero-story .hero-photo img {
    width: 125%;
    right: -5%;
    bottom: 0;
  }
  .photo-hero-story .hero .scene-inner,
  #story.has-intro-sequence .hero .scene-inner {
    justify-content: flex-start;
    padding: 120px 24px clamp(165px,27svh,240px);
  }
  .photo-hero-story .hero-lower {
    gap: 24px;
    margin-top: 24px;
  }
  .studio-surface .pricing-intro {
    margin-bottom: 30px;
  }
  .studio-surface .package-inclusions ul {
    grid-template-columns: minmax(0,1fr);
    gap: 12px;
  }
}
@media (max-width:359px) {
  .photo-hero-story .hero .scene-inner,
  #story.has-intro-sequence .hero .scene-inner {
    padding-top: 102px;
  }
  .photo-hero-story .hero-actions {
    gap: 8px;
  }
  .photo-hero-story .hero-actions :is(.primary-cta,.hero-call-cta) {
    padding-inline: 13px;
  }
  .studio-surface .price-card {
    padding: 23px;
  }
  .studio-surface .inclusions-label {
    font-size: 1.125rem;
  }
  .inclusions-toggle {
    font-size: .8125rem;
  }
  .studio-surface .package-inclusions > summary {
    gap: 12px;
  }
}

.photo-hero-story .hero-actions :is(.primary-cta,.hero-call-cta),
.photo-hero-story .nav-project,
.studio-surface .quiet-cta,
.project-enquiry #project-enquiry-form > .primary-cta {
  border-radius: 999px;
}

/* Geometric asterisks connect the services without decorative arrows. */
.hero-ribbon {
  padding-block: 18px;
  font-size: clamp(1rem,1.4vw,1.3rem);
  letter-spacing: -.02em;
}
.hero-ribbon > div {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
  gap: clamp(12px,3vw,44px);
  max-width: 1100px;
}
.hero-ribbon span {
  min-width: 0;
  max-width: none;
  white-space: normal;
  text-align: center;
}
.hero-ribbon i {
  display: block;
  width: 20px;
  height: 20px;
  margin-inline: 2px;
  border: 0;
  border-radius: 0;
  background: currentColor;
  mask: url("studio-star.svg") center/contain no-repeat;
  -webkit-mask: url("studio-star.svg") center/contain no-repeat;
  transform: none;
  opacity: .85;
}

/* Shared coordinates keep the entrance and the rest of the chapter seamless.
   The split surface is necessary for the existing upward entrance animation. */
.dark-chapter {
  --chapter-light-x: 64%;
  --chapter-light-y: 50vh;
  --chapter-light-width: 900px;
  --chapter-light-height: 650px;
  --chapter-light-colour: #e0d8c613;
  background: radial-gradient(ellipse var(--chapter-light-width) var(--chapter-light-height) at var(--chapter-light-x) var(--chapter-light-y),var(--chapter-light-colour),transparent 72%),#141414;
}
.dark-chapter .intro-entry {
  background: radial-gradient(ellipse var(--chapter-light-width) var(--chapter-light-height) at var(--chapter-light-x) var(--chapter-light-y),var(--chapter-light-colour),transparent 72%),#141414;
}
.studio-surface.has-entry-sweep .dark-chapter {
  background: transparent;
}
.studio-surface.has-entry-sweep .dark-chapter::before {
  top: var(--ambient-entry-height,var(--entry-height));
  background: radial-gradient(ellipse var(--chapter-light-width) var(--chapter-light-height) at var(--chapter-light-x) calc(var(--chapter-light-y) - var(--ambient-entry-height,var(--entry-height))),var(--chapter-light-colour),transparent 72%),#141414;
}
.brand-welcome,
#story.has-intro-sequence .intro-shade {
  background: #141414;
}
@media (max-width:639px) {
  .hero-ribbon {
    padding: 17px 14px;
    font-size: 1rem;
    line-height: 1.25;
  }
  .hero-ribbon > div {gap: 9px}
  .hero-ribbon i {width: 14px;height: 14px;margin: 0}
  .dark-chapter {
    --chapter-light-width: 460px;
    --chapter-light-height: 520px;
    --chapter-light-colour: #e0d8c610;
  }
}

/* Shared serif headings; body copy and controls retain their readable sans. */
:root {
  --heading-face: "Noto Serif Display",Georgia,serif;
  --section-title-size: clamp(2.25rem,3.7vw,3.5rem);
  --section-title-leading: 1.12;
  --section-title-tracking: -.045em;
}
.dark-chapter .library-heading h2,
.dark-chapter .simple-process h2,
.dark-chapter .simple-process-steps h3,
.dark-chapter .showcase-statement,
.optional-services .services-heading h2,
.optional-services .service-name,
.optional-services .additional-services .service-card--additional .service-name,
.optional-services .mobile-service-detail h3,
.studio-surface .pricing .pricing-intro h2,
.studio-surface .price-card h3,
.studio-surface .price-card .price,
.studio-surface .inclusions-label,
.studio-surface .approach-heading h2,
.approach-gallery .approach-caption h3,
.studio-surface .faq-intro h2,
.project-enquiry .enquiry-intro h2,
.footer-nav h2,
.footer-contact h2,
.legal-dialog h2,
.concept-toolbar h2 {
  font-family: var(--heading-face);
  font-weight: 500;
  letter-spacing: -.04em;
  text-transform: none;
}
.studio-surface .price-card .price span {
  font-family: var(--display-face);
  letter-spacing: 0;
}
.dark-chapter .simple-process-steps h3 {
  font-size: clamp(1.8rem,2.4vw,2.4rem);
  line-height: 1.18;
}
.optional-services .service-name,
.optional-services .additional-services .service-card--additional .service-name {
  line-height: 1.2;
}
.approach-gallery .approach-caption h3 {
  line-height: 1.18;
}
.footer-nav h2,
.footer-contact h2 {
  font-size: 1.2rem;
  line-height: 1.25;
}

/* Left-aligned hero: deeper photograph, with a soft white glow at the top. */
.photo-hero-story .visual::after {
  background:
    linear-gradient(180deg,rgba(250,248,243,.26) 0%,rgba(250,248,243,.10) 10%,transparent 31%),
    linear-gradient(90deg,rgba(20,19,18,.12),transparent 72%),
    linear-gradient(180deg,rgba(20,19,18,.68) 0%,rgba(20,19,18,.76) 48%,rgba(20,19,18,.80) 100%);
}
.photo-hero-story .hero .scene-inner,
#story.has-intro-sequence .hero .scene-inner {
  justify-content: center;
  align-items: flex-start;
  padding: 140px clamp(24px,6vw,100px) 90px;
}
.photo-hero-story .hero-message {
  max-width: 1000px;
  margin: 0;
  text-align: left;
}
.photo-hero-story .hero h1,
#story.has-intro-sequence .hero h1 {
  width: 100%;
  max-width: none;
  margin: 0;
  font-family: var(--heading-face);
  font-size: clamp(2.8rem,6.6vw,5.85rem);
  font-style: normal;
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -.055em;
  text-align: left;
  text-wrap: balance;
}
.photo-hero-story .hero h1 > span,
.photo-hero-story .hero h1 > em {
  display: block;
}
.photo-hero-story .hero h1 > em {
  font-family: inherit;
  font-size: inherit;
  font-style: italic;
  font-weight: 500;
  letter-spacing: -.06em;
}
.photo-hero-story .hero-lower,
#story.has-intro-sequence .hero-lower {
  width: 100%;
  max-width: none;
  align-items: flex-start;
  gap: 28px;
  margin-top: 28px;
}
.photo-hero-story .hero .hero-copy {
  max-width: 39ch;
  color: #e6e0d8;
  font-family: "Instrument Sans",Arial,sans-serif;
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: -.01em;
  text-wrap: balance;
}
.photo-hero-story .hero-actions {
  justify-content: flex-start;
  gap: 12px;
}
.photo-hero-story .hero-actions :is(.primary-cta,.hero-call-cta) {
  min-height: 46px;
  padding: 12px 25px;
  font-size: .8125rem;
  font-weight: 500;
}
.studio-surface .dark-chapter .studio-library {
  --library-width: 28vw;
}
.dark-chapter .library-heading {
  margin-bottom: 48px;
}

/* One complete statement, composed in three lines as the photograph recedes. */
.brand-welcome::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse 55% 42% at 50% 48%,#ffffff0d,transparent 85%);
}
#story .welcome-content {
  max-width: 880px;
}
#story .welcome-content h2 {
  max-width: none;
  font-family: var(--display-face);
  font-size: clamp(2rem,3.9vw,3.5rem);
  font-style: normal;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -.045em;
  text-align: center;
}
#story .welcome-content .welcome-line {
  display: block;
}
#story .welcome-content .welcome-phrase {
  margin-block: .04em;
}
#story .welcome-content em {
  font-family: "Instrument Serif",Georgia,serif;
  font-size: 1.13em;
  font-weight: 400;
  font-style: italic;
  line-height: inherit;
  letter-spacing: -.025em;
}
@media (min-width:1600px) {
  .studio-surface .dark-chapter .studio-library {--library-width:24vw}
}
@media (max-width:1023px) {
  .studio-surface .dark-chapter .studio-library {--library-width:42vw}
}
@media (max-width:639px) {
  :root {
    --section-title-size: clamp(2rem,8vw,2.6rem);
  }
  .photo-hero-story .hero-photo img {
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 64% center;
    mask-image: none;
    -webkit-mask-image: none;
  }
  .photo-hero-story .hero .scene-inner,
  #story.has-intro-sequence .hero .scene-inner {
    padding: 110px 6% 70px;
  }
  .photo-hero-story .hero h1,
  #story.has-intro-sequence .hero h1 {
    font-size: clamp(2rem,8.9vw,3.05rem);
    line-height: 1.13;
    letter-spacing: -.06em;
  }
  .photo-hero-story .hero .hero-copy {
    max-width: 30ch;
    font-size: .9375rem;
  }
  .photo-hero-story .hero-lower,
  #story.has-intro-sequence .hero-lower {
    margin-top: 25px;
    gap: 26px;
  }
  .photo-hero-story .hero-actions {gap:10px}
  .photo-hero-story .hero-actions :is(.primary-cta,.hero-call-cta) {
    padding-inline: 21px;
  }
  .studio-surface .dark-chapter .studio-library {--library-width:75vw}
  .dark-chapter .library-heading {margin-bottom:38px}
  #story .welcome-content h2 {
    font-size: clamp(1.25rem,5.8vw,2.1rem);
    line-height: 1.24;
  }
  #story .welcome-content .welcome-phrase {
    margin-block: .08em;
  }
}

/* The gallery leads from the left; the process has its own centred composition. */
.dark-chapter .library-heading,
.dark-chapter .simple-process .process-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.dark-chapter .library-heading {align-items:flex-start;text-align:left;gap:0;margin-bottom:38px}
.dark-chapter .library-heading > div {flex:0 1 auto;width:100%;min-width:0}
.dark-chapter .library-heading h2,
.dark-chapter .simple-process h2,
.optional-services .services-heading h2,
.studio-surface .approach-heading h2 {
  max-width: none;
  margin-inline: auto;
  text-align: center;
}
.dark-chapter .library-note,
.optional-services .services-title-block > p {
  margin-inline: auto;
  text-align: center;
}
.dark-chapter .library-heading h2 {
  margin-inline: 0;
  text-align: left;
  font-size: var(--section-title-size);
  line-height: 1.16;
  letter-spacing: -.04em;
}
.dark-chapter .library-heading h2 em {
  font-family: inherit;
  font-style: italic;
  font-size: inherit;
  font-weight: inherit;
}
.dark-chapter .library-heading-meta {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 2px 24px;
  margin-top: 14px;
}
.dark-chapter .library-heading-meta .library-note {
  margin: 0;
  text-align: left;
  font-size: .9375rem;
  line-height: 1.6;
}
.dark-chapter .library-heading-meta .library-pause {
  margin: 0;
  font-size: .8125rem;
  min-height: 44px;
}
.optional-services .services-heading {
  display: block;
  text-align: center;
  margin-bottom: clamp(32px,4vw,56px);
}
.studio-surface .faq-intro,
.project-enquiry .enquiry-intro {
  text-align: center;
}
.studio-surface .faq-intro h2,
.project-enquiry .enquiry-intro h2 {
  font-size: var(--section-title-size);
  margin-inline: auto;
  max-width: 16ch;
}
.project-enquiry .enquiry-intro > p:not(.section-kicker) {margin-inline:auto}

/* A deeper vignette sits behind the previews, never over their artwork. */
.dark-chapter .library-rows {
  position: relative;
  isolation: isolate;
}
.dark-chapter .library-rows::before {
  content: "";
  position: absolute;
  inset: -44px 0 -60px;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse 86% 57% at 50% 50%,#050506ee 15%,#090909b3 56%,transparent 100%);
}
/* One line, scaled with the available screen rather than a forced line break. */
.studio-surface .pricing .pricing-intro h2 {
  font-size: clamp(1.25rem,4.7vw,3.5rem);
  line-height: 1.2;
  /* Fits one line normally, but can wrap when a visitor enlarges their text. */
  white-space: normal;
}

/* Three compact cards, with the studio photograph retained behind them. */
.studio-surface .dark-chapter .simple-process {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: none;
  margin-top: clamp(24px,3vw,44px);
  padding: clamp(60px,6vw,86px) var(--page-gutter) clamp(28px,3vw,40px);
  background: transparent;
}
.studio-surface .dark-chapter .simple-process::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: linear-gradient(180deg,transparent,#20201e 20%,#20201e 80%,transparent);
}
.process-backdrop {
  position: absolute;
  inset: 0;
  z-index: -1;
  display: block;
  overflow: hidden;
  opacity: .24;
  pointer-events: none;
  mask-image: linear-gradient(180deg,transparent,#000 25%,#000 74%,transparent);
  -webkit-mask-image: linear-gradient(180deg,transparent,#000 25%,#000 74%,transparent);
}
.process-backdrop img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 68%;
  filter: brightness(.56);
}
.studio-surface .dark-chapter .simple-process + .process-showcase {margin-top:-20px}
.dark-chapter .simple-process .process-heading {
  margin: 0 auto clamp(30px,3vw,42px);
}
.dark-chapter .simple-process-steps {
  max-width: 1180px;
  margin: 0 auto;
  border: 0;
  padding: 0;
  gap: 20px;
  grid-template-columns: repeat(3,minmax(0,1fr));
}
.dark-chapter .simple-process-steps li,
.dark-chapter .simple-process-steps li:first-child,
.dark-chapter .simple-process-steps li:last-child,
.dark-chapter .simple-process-steps li + li {
  padding: clamp(24px,2.5vw,34px);
  border: 1px solid #ffffff24;
  border-radius: 16px;
  background: transparent;
  box-shadow: none;
  text-align: left;
}
.dark-chapter .simple-process-steps h3 {
  font-size: clamp(1.8rem,2.3vw,2.25rem);
  line-height: 1.16;
  max-width: none;
  margin: 0 0 16px;
}
.dark-chapter .simple-process-steps p {
  max-width: 32ch;
  margin: 0;
  color: #d2cfca;
  font-size: 1rem;
  line-height: 1.75;
  text-wrap: pretty;
}
/* Image captions keep their own scale so pinned screens remain readable. */
.dark-chapter .showcase-statement {font-size:clamp(2rem,3.2vw,3.1rem)}
@media (max-width:860px) {
  .dark-chapter .simple-process-steps {
    grid-template-columns: minmax(0,1fr);
    gap: 16px;
    max-width: 680px;
  }
  .dark-chapter .simple-process-steps p {max-width:none}
  .process-backdrop img {object-position:center 60%}
}
@media (max-width:639px) {
  .has-entry-sweep .intro-entry {min-height:0}
  .studio-surface .dark-chapter .studio-library {padding-top:36px}
  .dark-chapter .library-heading {margin-bottom:24px}
  .dark-chapter .library-heading h2 {font-size:var(--section-title-size)}
  .dark-chapter .library-heading-meta {gap:0 18px;margin-top:10px}
  .dark-chapter .library-heading-meta .library-note {font-size:.875rem}
  .studio-surface .dark-chapter .simple-process {margin-top:12px;padding:36px 24px 28px}
  .dark-chapter .simple-process .process-heading {margin-bottom:28px}
  .dark-chapter .simple-process-steps h3 {font-size:1.8rem;margin-bottom:12px}
  .dark-chapter .simple-process-steps p {font-size:1rem;line-height:1.7}
  .studio-surface .faq-intro h2,
  .project-enquiry .enquiry-intro h2 {font-size:var(--section-title-size)}
  .dark-chapter .showcase-statement {font-size:clamp(1.75rem,7.5vw,2.25rem)}
}
@media (min-width:768px) and (max-height:700px) {
  .studio-surface .approach-heading h2 {font-size:var(--section-title-size)}
  .approach-gallery.is-scroll-gallery .approach-card img {height:43svh;min-height:0}
}

/* Keep display type for emphasis, with a more restrained scale elsewhere. */
.approach-gallery .approach-caption h3 {font-size:clamp(1.75rem,2.7vw,2.75rem)}
.optional-services .service-name {font-size:clamp(1.75rem,2.8vw,2.8rem)}
.simple-process.is-arriving .simple-process-steps li {animation:none}
.dark-chapter .simple-process-steps li.is-entering {
  animation: process-card-in .48s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes process-card-in {
  from {opacity:.45;transform:translate3d(0,18px,0)}
  to {opacity:1;transform:none}
}
@media (min-width:861px) {
  .dark-chapter .simple-process-steps li.is-entering:nth-child(2) {animation-delay:.07s}
  .dark-chapter .simple-process-steps li.is-entering:nth-child(3) {animation-delay:.14s}
}
/* Compact charcoal headers connect the packages to the dark chapter. */
.studio-surface .pricing-shell {max-width:1180px;padding-top:44px}
.studio-surface .pricing-intro {gap:12px;margin-bottom:44px}
.studio-surface .price-options {gap:clamp(20px,3vw,36px)}
.studio-surface .price-card {
  padding:0;
  border:1px solid #23232124;
  border-radius:16px;
  background:#faf8f3;
  box-shadow:none;
  opacity:1;
}
.package-heading {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));
  align-items:flex-start;
  gap:14px;
  padding:26px;
  border-bottom:0;
  background:#1c1c1d;
  color:#f4f1eb;
}
.studio-surface .price-card .package-top {padding:0;border:0;min-width:0}
.studio-surface .price-card h3 {font-size:clamp(1.65rem,2.3vw,2.1rem);color:#f4f1eb}
.studio-surface .price-card .price-label {font-size:.875rem;font-weight:400;color:#c9c6bf}
.package-heading .package-price {padding:0;min-width:0;text-align:right}
.studio-surface .price-card .price {
  font-family:var(--display-face);
  font-size:clamp(2rem,2.7vw,2.5rem);
  font-weight:400;
  letter-spacing:-.04em;
  line-height:1.12;
  margin:0;
  color:#f4f1eb;
  white-space:nowrap;
}
.studio-surface .price-card .price span {display:block;font-size:.75rem;margin:5px 0 0;color:#c9c6bf;letter-spacing:0}
.studio-surface .package-total {font-size:.75rem;margin:6px 0 0;color:#c9c6bf;line-height:1.45}
.package-body {
  display:flex;
  flex-direction:column;
  flex:1;
  padding:24px 26px 26px;
}
.studio-surface .price-card .price-note {font-size:.9375rem;line-height:1.6}
.studio-surface .price-list {margin:16px 0 22px}
.studio-surface .price-list li {padding-block:6px;font-size:.875rem;line-height:1.6}
.studio-surface .price-list li::before {font-size:.8rem;top:7px}
.studio-surface .price-card .package-cta {
  align-self:flex-start;
  width:fit-content;
  max-width:100%;
  min-height:46px;
  padding:12px 23px;
  font-size:.875rem;
  font-weight:500;
}
.studio-surface .package-inclusions {margin-top:36px;border-radius:0;background:transparent}
.studio-surface .inclusions-label {font-size:1.35rem}
@media (max-width:767px) {
  .studio-surface .price-options {gap:22px}
  .package-heading {padding:22px;gap:12px}
  .package-body {padding:20px 22px 22px}
  .studio-surface .pricing-intro {margin-bottom:32px}
  .studio-surface .price-card h3 {font-size:clamp(1.35rem,5.8vw,1.85rem)}
  .studio-surface .price-card .price {font-size:clamp(1.8rem,6.2vw,2.2rem)}
}

/* The enquiry belongs to the charcoal section, without a separate cream panel. */
.studio-surface .project-enquiry {
  max-width:1280px;
  padding:clamp(28px,4vw,56px);
  gap:clamp(30px,4vw,56px);
  border-radius:22px;
  background:#1b1b1c;
}
.project-enquiry::before {background:radial-gradient(ellipse at 0 20%,#4b443a35,transparent 72%)}
.project-enquiry .enquiry-intro {text-align:left}
.project-enquiry .enquiry-intro h2 {
  max-width:17ch;
  margin:0 0 24px;
  text-align:left;
  font-size:var(--section-title-size);
  line-height:1.16;
}
.project-enquiry .enquiry-intro > p:not(.section-kicker) {max-width:36ch;margin:0 0 24px}
.project-enquiry .enquiry-intro > a {font-size:1rem}
.project-enquiry #project-enquiry-form {
  padding:clamp(22px,2.4vw,30px);
  gap:16px;
  background:#272726;
  color:#f4f1eb;
  border:1px solid #ffffff1f;
  border-radius:16px;
  box-shadow:none;
  color-scheme:dark;
}
.project-enquiry #project-enquiry-form label {color:#eeebe5;font-size:.875rem}
.project-enquiry #project-enquiry-form :is(input,select,textarea) {
  background:#1e1e1e;
  color:#f4f1eb;
  border:1px solid #62615c;
  border-radius:8px;
  font-size:1rem;
}
.project-enquiry #project-enquiry-form :is(input,textarea)::placeholder {color:#bcb9b2;opacity:1}
.project-enquiry #project-enquiry-form :is(input,select,textarea):focus-visible {outline-color:#eee8dd}
.project-enquiry #project-enquiry-form > .primary-cta {
  justify-content:center;
  background:#f4f1eb;
  color:#232321;
  border-color:#f4f1eb;
  font-size:.9375rem;
  min-height:48px;
}
.project-enquiry #project-enquiry-form > .primary-cta:hover {background:#ded8cc;border-color:#ded8cc}
.project-enquiry .enquiry-help,.project-enquiry .enquiry-status {color:#c9c6bf;font-size:.8125rem;line-height:1.55}
.project-enquiry .enquiry-status:empty {display:none}
.project-enquiry .enquiry-help a {color:inherit;text-decoration:underline;text-underline-offset:3px}
.project-enquiry button:disabled {opacity:.55;cursor:wait}
.project-enquiry .enquiry-fallback {padding-top:4px}
.enquiry-fallback[hidden],#enquiry-copy-field[hidden] {display:none}
.enquiry-fallback-actions {display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
.enquiry-fallback-actions a,.enquiry-fallback-actions button {
  display:inline-flex;align-items:center;justify-content:center;
  min-height:44px;font:500 .875rem/1.4 "Instrument Sans",Arial,sans-serif;color:#f4f1eb;
}
.enquiry-fallback-actions a {text-underline-offset:5px}
.enquiry-fallback-actions button {padding:9px 16px;border:1px solid #a8a49b;border-radius:999px;background:transparent;cursor:pointer}
.enquiry-fallback-actions :focus-visible {outline:2px solid #f4f1eb;outline-offset:4px}
#enquiry-copy-field {margin-top:16px}
#enquiry-copy-text {margin-top:10px;max-height:240px;resize:vertical}
.footer-links a {display:inline-flex;align-items:center;min-height:44px;font-size:.85rem;color:#c9c6c0;text-decoration:none}
.footer-links a:hover {text-decoration:underline;text-underline-offset:4px}
.footer-links a:focus-visible {outline:2px solid #f4f1eb;outline-offset:4px}
@media (max-width:860px) {
  .studio-surface .project-enquiry {grid-template-columns:minmax(0,1fr)}
  .project-enquiry .enquiry-intro > p:not(.section-kicker) {max-width:48ch}
}
@media (max-width:639px) {
  .approach-gallery .approach-caption h3 {font-size:clamp(1.65rem,6.6vw,2.1rem)}
  .optional-services .service-name {font-size:clamp(1.75rem,7vw,2.25rem)}
  .studio-surface .project-enquiry {width:calc(100% - 28px);padding:28px 20px;gap:26px}
  .project-enquiry #project-enquiry-form {padding:22px 18px}
  .project-enquiry .enquiry-fields {grid-template-columns:minmax(0,1fr);gap:16px}
}
@media (prefers-reduced-motion:reduce) {
  .dark-chapter .simple-process-steps li.is-entering {animation:none}
  .studio-surface .dark-chapter .simple-process + .process-showcase {margin-top:0}
}

/* Phone finishing: usable controls, narrow layouts and short-screen fallbacks. */
.legal-close {
  display: inline-grid;
  place-items: center;
  min-width: 44px;
  min-height: 44px;
  flex: 0 0 auto;
}
@media (max-width:639px) {
  .photo-hero-story .nav {gap:12px}
  .photo-hero-story .nav-links {min-width:0;flex:0 1 auto}
  .photo-hero-story .nav-project {text-align:right;white-space:normal}
  .photo-hero-story .wordmark {flex:0 1 auto;min-width:0;line-height:1.15}
  .photo-hero-story:not(.has-intro-sequence) .hero .scene-inner {min-height:100svh}
  .studio-surface .package-inclusions > summary {flex-wrap:wrap;gap:8px 16px}
  .studio-surface .package-inclusions {padding-inline:0}
  .studio-surface .price-card .package-price {max-width:100%}
  .footer-main > * {min-width:0}
  .footer-contact a {overflow-wrap:anywhere}
  .concept-toolbar-actions {flex-wrap:wrap;justify-content:flex-end;max-width:45%}
}
@media (max-width:359px) {
  .package-heading .package-price {text-align:left}
  .photo-hero-story .nav {padding-inline:18px}
  .photo-hero-story .wordmark {font-size:1.2rem}
  .photo-hero-story .nav-project {font-size:.8125rem}
  .photo-hero-story .hero-actions :is(.primary-cta,.hero-call-cta) {padding-inline:16px}
}
@media (max-width:639px) and (max-height:640px) {
  .photo-hero-story .hero .scene-inner,
  #story.has-intro-sequence .hero .scene-inner {padding:96px 6% 36px}
  .photo-hero-story .hero-lower,
  #story.has-intro-sequence .hero-lower {margin-top:22px;gap:22px}
}
/* Leave the laptop visible, with the mobile introduction grounded below it. */
@media (max-width:639px) {
  .photo-hero-story .hero .scene-inner,
  #story.has-intro-sequence .hero .scene-inner {
    justify-content:flex-end;
    padding-bottom:clamp(68px,14svh,128px);
  }
}
/* Landscape phones scroll through a complete composition, without clipping a pin. */
@media (max-height:520px) {
  .studio-surface .dark-chapter .simple-process + .process-showcase {margin-top:0}
  .photo-hero-story:not(.has-intro-sequence) .hero .scene-inner {
    min-height:100svh;
    padding-top:110px;
    padding-bottom:48px;
  }
  .studio-surface .dark-chapter .process-showcase {height:auto;min-height:0}
  .dark-chapter .process-showcase-stage {
    position:relative;
    height:auto;
    min-height:0;
    padding:36px var(--page-gutter) 48px;
  }
  .dark-chapter .showcase-gallery {
    position:relative;
    inset:auto;
    width:min(100%,580px);
    height:auto;
    aspect-ratio:1.35;
    margin:auto;
  }
  .dark-chapter .showcase-image {
    position:absolute;
    top:50%;left:50%;width:72%;
    opacity:1;
    transform:translate(-50%,-50%);
    will-change:auto;
  }
  .dark-chapter .showcase-image[data-slot="-2"] {transform:translate(-79%,-101%) scale(.7) rotate(-8deg)}
  .dark-chapter .showcase-image[data-slot="-1"] {transform:translate(-21%,-95%) scale(.7) rotate(7deg)}
  .dark-chapter .showcase-image[data-slot="1"] {transform:translate(-79%,-5%) scale(.7) rotate(-6deg)}
  .dark-chapter .showcase-image[data-slot="2"] {transform:translate(-21%,1%) scale(.7) rotate(8deg)}
  .dark-chapter .showcase-statement {
    position:relative;top:auto;left:auto;
    width:100%;max-width:27ch;margin:24px auto 0;
    opacity:1;transform:none;
  }
}


/* launch-offer.css */
/* Original blush fades into the photograph, without a separate ribbon edge. */
.launch-banner {
  --offer-blush:#f0ccd9;
  position:relative;isolation:isolate;min-height:44px;overflow:visible;
  border:0;background:transparent;
  color:#34302f;
}
.launch-banner::before {
  content:"";position:absolute;inset:0 0 auto;height:128px;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,var(--offer-blush) 0%,var(--offer-blush) 16%,#f0ccd9db 28%,#f0ccd94d 50%,#f0ccd914 74%,#f0ccd900 100%);
}
.photo-hero-story .launch-banner {position:absolute;inset:0 0 auto;z-index:3}
.photo-hero-story .nav {top:44px}
.photo-hero-story .visual::after {
  background:
    linear-gradient(180deg,rgba(240,204,217,.26) 0%,rgba(240,204,217,.10) 10%,transparent 31%),
    linear-gradient(90deg,rgba(20,19,18,.12),transparent 72%),
    linear-gradient(180deg,rgba(20,19,18,.68) 0%,rgba(20,19,18,.76) 48%,rgba(20,19,18,.80) 100%);
}
.launch-banner-link {
  display:flex;align-items:center;justify-content:center;
  min-height:44px;overflow:hidden;color:inherit;text-decoration:none;
}
.launch-track {width:100%}
.launch-group {display:flex;justify-content:center;align-items:center;min-height:44px}
.launch-group > span {font:600 .8125rem/1.4 "Instrument Sans",Arial,sans-serif;letter-spacing:.035em;white-space:nowrap}
.launch-banner:not(.is-animated) .launch-group > span:not(:first-child) {display:none}
.launch-banner.is-animated .launch-banner-link {
  justify-content:flex-start;padding-right:48px;
  mask-image:linear-gradient(90deg,#000 0%,#000 calc(100% - 70px),transparent calc(100% - 46px));
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 calc(100% - 70px),transparent calc(100% - 46px));
}
.launch-banner.is-animated .launch-track {display:flex;flex:0 0 auto;width:max-content;animation:launch-drift var(--launch-duration,36s) linear infinite;animation-play-state:paused}
.launch-banner.is-running .launch-track {animation-play-state:running}
.launch-banner.is-animated .launch-group {flex:0 0 auto;min-width:100vw;justify-content:space-around}
.launch-banner.is-animated .launch-group > span {display:flex;align-items:center;gap:52px;padding-right:52px}
.launch-banner.is-animated .launch-group > span::after {
  content:"";width:9px;height:9px;flex:0 0 9px;background:currentColor;opacity:.55;
  mask:url("studio-star.svg") center/contain no-repeat;
  -webkit-mask:url("studio-star.svg") center/contain no-repeat;
}
.launch-pause {
  position:absolute;right:0;top:0;display:grid;place-items:center;
  width:44px;height:44px;border:0;
  border-radius:0;background:transparent;color:#514846;cursor:pointer;
}
.launch-pause[hidden] {display:none}
.launch-pause::before {content:"";width:8px;height:10px;border-inline:1px solid currentColor}
.launch-pause[aria-pressed="true"]::before {width:10px;height:10px;border:1px solid currentColor;border-radius:50%}
.photo-hero-story .launch-banner :focus-visible {outline:2px solid #514846;outline-offset:-5px}
@keyframes launch-drift {to {transform:translateX(-50%)}}

/* Colour sits behind the packages, without a separate promotional headline. */
.studio-surface .pricing {padding-top:0;padding-inline:0;overflow:clip}
.studio-surface .pricing-shell {
  width:calc(100% - var(--page-gutter) * 2);
  padding-top:clamp(44px,5vw,68px);
}
.studio-surface .pricing-intro {margin-bottom:48px}
.studio-surface .price-options {position:relative;isolation:isolate;gap:clamp(26px,3vw,36px)}
.studio-surface .price-options::before {
  content:"";position:absolute;inset:-54px calc(-1 * var(--page-gutter)) -46px;
  z-index:-1;pointer-events:none;
  background:
    radial-gradient(ellipse 65% 45% at 18% 40%,#f0ccd9b8 0%,#f0ccd980 48%,#f0ccd900 100%),
    radial-gradient(ellipse 62% 52% at 85% 58%,#f0ccd9a6 0%,#f0ccd966 46%,#f0ccd900 100%);
}

/* The label overlaps the top edge instead of adding height to the header. */
.studio-surface .price-card {
  position:relative;overflow:visible;
  border:1px solid #27262424;
  box-shadow:0 14px 40px -30px #543a3c42;
}
.studio-surface .price-card .package-offer-badge {
  position:absolute;z-index:2;top:0;right:24px;transform:translateY(-50%);
  display:inline-flex;align-items:center;justify-content:center;
  min-height:28px;max-width:calc(100% - 48px);padding:6px 14px;
  border:1px solid #fff9;border-radius:8px;
  background:linear-gradient(110deg,#f6dce6,#f0ccd9);
  color:#423535;font:500 .75rem/1.2 "Instrument Sans",Arial,sans-serif;
  letter-spacing:.015em;text-align:center;
}
.studio-surface .price-card .package-heading {
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(12px,2vw,22px);align-items:center;
  padding:28px 26px 24px;border-radius:15px 15px 0 0;
}
.studio-surface .price-card .package-top {min-width:0}
.studio-surface .price-card h3 {margin-top:0}
.studio-surface .price-card .package-price {
  justify-self:end;text-align:right;display:flex;flex-direction:column;align-items:flex-end;
}
.studio-surface .price-card .package-body {border-radius:0 0 15px 15px}
.photo-hero-story .hero .scene-inner,
#story.has-intro-sequence .hero .scene-inner {padding-top:184px}
@media (max-width:767px) {
  .studio-surface .pricing-intro {margin-bottom:38px}
  .studio-surface .price-options {gap:36px}
  .studio-surface .price-options::before {
    inset:-36px calc(-1 * var(--page-gutter)) -30px;
    background:
      radial-gradient(ellipse 95% 35% at 20% 25%,#f0ccd9a6,#f0ccd900 100%),
      radial-gradient(ellipse 95% 35% at 80% 75%,#f0ccd999,#f0ccd900 100%);
  }
  .studio-surface .price-card .package-heading {padding:26px 20px 22px;gap:12px}
  .studio-surface .price-card .package-offer-badge {right:20px}
}
@media (max-width:639px) {
  .photo-hero-story .hero .scene-inner,
  #story.has-intro-sequence .hero .scene-inner {padding-top:154px;padding-bottom:clamp(68px,14svh,128px)}
  .studio-surface .price-card h3 {font-size:clamp(1.3rem,5.4vw,1.85rem);overflow-wrap:break-word}
  .studio-surface .price-card .price {font-size:clamp(1.7rem,6.2vw,2.2rem)}
}
@media (max-height:520px) {
  .photo-hero-story:not(.has-intro-sequence) .hero .scene-inner {padding-top:154px;padding-bottom:48px}
}
@media (prefers-reduced-motion:reduce) {
  .launch-banner .launch-track {animation:none!important;transform:none!important}
}


.optimized-picture{display:contents}
