@import url('https://fonts.googleapis.com/css2?family=Assistant:wght@300;400;500;600;700&family=Heebo:wght@300;400;500;700;800&display=swap');

:root { --ink:#151515; --night:#121214; --paper:#f2efe9; --silver:#d7d8d8; --bronze:#8b6c54; --gold:#c7a867; --ruby:#8d2030; --line:rgba(21,21,21,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Assistant, Heebo, Arial, sans-serif; font-size:16px; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
.shell { width:min(1180px, calc(100% - 80px)); margin:auto; }
.progress { position:fixed; inset:0 0 auto; height:3px; z-index:10; background:transparent; }
.progress span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--ruby),var(--gold)); }
.nav { height:86px; display:flex; align-items:center; justify-content:space-between; position:absolute; inset:0 0 auto; z-index:3; color:#fff; }
.brand { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:.16em; font-weight:700; }
.brand-mark { border:1px solid var(--gold); color:var(--gold); display:grid; place-items:center; width:28px; height:28px; border-radius:50%; font-family:serif; font-size:18px; }
.nav-links { display:flex; gap:38px; font-size:12px; opacity:.75; }
.nav-links a,.text-link,.nav-cta { transition:color .25s, opacity .25s; }
.nav-links a:hover,.text-link:hover { color:var(--gold); }
.nav-cta { font-size:11px; letter-spacing:.1em; border-bottom:1px solid var(--gold); padding-bottom:6px; }
.nav-cta span,.button span { font-size:16px; margin-inline-start:9px; }
.hero { min-height:100vh; position:relative; overflow:hidden; color:#fff; display:flex; align-items:center; }
.section-dark { background:var(--night); }
.hero:before { content:""; position:absolute; inset:0; background:linear-gradient(115deg,rgba(0,0,0,.8),rgba(0,0,0,.28)),radial-gradient(circle at 80% 48%,rgba(199,168,103,.3),transparent 33%); }
.hero:after { content:""; position:absolute; inset:0; opacity:.14; background-image:linear-gradient(rgba(255,255,255,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 1px); background-size:80px 80px; mask-image:linear-gradient(to bottom,transparent,black 25%,transparent); }
.hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:30px; padding-top:70px; }
.hero-copy { text-align:right; max-width:600px; }
.eyebrow { font-size:10px; letter-spacing:.16em; opacity:.7; display:flex; align-items:center; gap:10px; margin:0 0 25px; }
.eyebrow span { display:inline-block; width:35px; height:1px; background:var(--gold); }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Heebo,Assistant,sans-serif; font-weight:300; line-height:.95; letter-spacing:-.055em; }
h1 { font-size:clamp(55px,8vw,118px); margin-bottom:32px; }
h1 em,h2 em { color:var(--gold); font-style:normal; }
.hero-lede { max-width:350px; line-height:1.7; font-size:15px; opacity:.72; margin-right:0; }
.button { display:inline-flex; align-items:center; border:0; padding:15px 23px; margin-top:18px; font:600 11px Assistant; letter-spacing:.1em; cursor:pointer; transition:transform .25s, background .25s, box-shadow .25s; }
.button:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(0,0,0,.18); }
.button-light { background:var(--gold); color:var(--ink); }
.button-ruby { background:var(--ruby); color:white; width:100%; justify-content:center; }
.hero-object { height:590px; position:relative; display:grid; place-items:center; }
.hero-image-placeholder,.image-panel { background:linear-gradient(135deg,#272727,#969086 48%,#151515); color:rgba(255,255,255,.4); letter-spacing:.22em; text-align:center; display:grid; place-items:center; font-size:13px; line-height:1.8; }
.hero-image-placeholder { width:47%; height:49%; box-shadow:-20px 25px 0 rgba(199,168,103,.25); transform:translate3d(22%, 26%, 0) rotate(4deg); overflow:hidden; z-index:2; }
.hero-image-placeholder img,.image-panel img { width:100%; height:100%; object-fit:cover; display:block; }
.hero-main-image { position:absolute; width:82%; height:80%; right:7%; top:8%; overflow:hidden; transform:translate3d(var(--hero-shift, 0px),0,0) scale(1); box-shadow:0 25px 60px rgba(0,0,0,.35); transition:transform .15s linear; }
.hero-main-image img { width:100%; height:100%; display:block; object-fit:cover; }
.hero-image-placeholder { background:transparent; box-shadow:none; overflow:visible; }
.hero-image-placeholder img { object-fit:contain; }
.hero-card { position:absolute; z-index:2; bottom:11%; right:4%; background:rgba(242,239,233,.94); color:var(--ink); width:145px; padding:16px; font-size:10px; display:flex; justify-content:space-between; align-items:start; }
.hero-card strong { color:var(--ruby); font-size:27px; font-weight:300; }
.orb { position:absolute; border-radius:50%; filter:blur(2px); opacity:.85; }
.orb-one { width:180px; height:180px; border:1px solid var(--gold); right:2%; top:15%; }
.orb-two { width:28px; height:28px; background:var(--ruby); left:12%; bottom:15%; box-shadow:0 0 60px 20px rgba(141,32,48,.5); }
.scroll-cue { position:absolute; bottom:35px; left:50%; transform:translateX(-50%); font-size:9px; letter-spacing:.15em; opacity:.6; z-index:1; display:flex; gap:11px; align-items:center; }
.scroll-cue span { height:32px; width:1px; background:var(--gold); animation:scroll 2s ease-in-out infinite; transform-origin:top; }
.section-light { background:var(--paper); }
.intro { padding:170px 0 190px; }
.eyebrow.dark { color:var(--ink); opacity:.6; }
.intro h2,.split-copy h2,.contact-copy h2 { font-size:clamp(45px,6vw,85px); max-width:800px; margin-bottom:35px; }
.intro h2 span { color:#9b9b98; }
.intro-copy { max-width:420px; margin-right:auto; margin-left:0; line-height:1.8; color:#646462; }
.split-section { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; padding:100px 0 180px; }
.split-copy p:not(.eyebrow) { color:#666; line-height:1.8; max-width:360px; }
.split-copy h2 { margin-bottom:30px; }
.approach-text-only { display:block; }
.approach-text-only .split-copy { max-width:850px; }
.approach-text-only .split-copy p:not(.eyebrow) { max-width:640px; }
.text-link { display:inline-flex; gap:12px; color:var(--ruby); font-size:12px; font-weight:700; letter-spacing:.1em; margin-top:22px; }
.image-panel { height:570px; position:relative; box-shadow:30px 30px 0 rgba(139,108,84,.2); overflow:hidden; }
.image-panel img { object-position:center top; }
.image-panel i { position:absolute; bottom:18px; left:22px; color:var(--gold); font-style:normal; font-size:32px; font-family:serif; }
.process { padding:150px 0; }
.process h2 { font-size:clamp(48px,7vw,100px); margin-bottom:75px; }
.process h2 span { color:#9b9b98; }
.process-list { border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.process-list article { border-left:1px solid var(--line); padding:22px 0 0 18px; }
.process-list strong { color:var(--ruby); font:32px serif; font-weight:300; }
.process-list h3 { margin:30px 0 10px; font-size:20px; }
.process-list p { color:#666; font-size:14px; line-height:1.7; }
.gallery-section { padding:145px 0 175px; overflow:hidden; }
.gallery-heading { margin-bottom:72px; }
.gallery-heading h2 { font-size:clamp(48px,7vw,100px); }
.gallery-rail { display:grid; grid-template-columns:repeat(12, 1fr); gap:22px; align-items:start; }
.gallery-item { margin:0; overflow:hidden; background:#262626; }
.gallery-item img { width:100%; height:100%; display:block; object-fit:cover; transition:transform 1.2s cubic-bezier(.2,.8,.2,1), filter .8s; filter:saturate(.75); }
.gallery-item:hover img { transform:scale(1.07); filter:saturate(1); }
.gallery-item-wide { grid-column:span 5; height:290px; margin-top:50px; }
.gallery-item-tall { grid-column:span 3; height:390px; }
.gallery-item:nth-child(3) { margin-top:125px; }
.gallery-item:nth-child(5) { margin-top:85px; }
.feature-band { padding:140px 0; color:#fff; }
.section-bronze { background:var(--bronze); }
.feature-inner h2,.statement-inner h2 { font-size:clamp(48px,7vw,100px); margin-bottom:90px; }
.feature-list { border-top:1px solid rgba(255,255,255,.35); display:grid; grid-template-columns:repeat(3,1fr); gap:35px; }
.feature-list article { padding-top:20px; border-left:1px solid rgba(255,255,255,.35); padding-left:20px; }
.feature-list article img { display:block; width:100%; height:180px; object-fit:cover; object-position:center top; margin-bottom:20px; opacity:.82; filter:saturate(.7); }
.feature-list strong { color:var(--gold); font:32px serif; font-weight:300; }
.feature-list h3 { font-size:20px; margin:32px 0 10px; }
.feature-list p { font-size:17px; line-height:1.85; color:#fff; margin-bottom:20px; }
.eyebrow.light { color:#fff; }
.statement { position:relative; overflow:hidden; padding:170px 0; }
.statement:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 70% 30%,rgba(199,168,103,.22),transparent 25%); }
.statement-inner { position:relative; z-index:1; }
.statement-inner > p:last-child { max-width:300px; opacity:.65; line-height:1.8; }
.statement-watermark { position:absolute; font:900 75vw/1 serif; color:rgba(255,255,255,.025); top:-12%; left:-8%; }
.contact { padding:145px 0 120px; }
.section-silver { background:var(--silver); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:120px; align-items:start; }
.contact-copy h2 { margin-bottom:25px; }
.contact-copy > p:last-child { color:#666; max-width:250px; line-height:1.8; }
.contact-form { border-top:1px solid rgba(21,21,21,.45); padding-top:10px; margin-top:28px; min-width:0; }
.contact-choice { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:24px; }
.contact-choice[hidden] { display:none; }
.contact-choice-backdrop { position:absolute; inset:0; background:rgba(18,18,20,.72); backdrop-filter:blur(10px); }
.contact-choice-card { position:relative; width:min(470px,100%); padding:clamp(30px,6vw,58px); background:var(--paper); color:var(--ink); box-shadow:0 30px 90px rgba(0,0,0,.3); direction:rtl; }
.contact-choice-card h2 { margin:0 0 18px; font:400 clamp(40px,6vw,68px)/1.05 Heebo,Assistant,sans-serif; letter-spacing:-.04em; }
.contact-choice-card h2 em { color:#785a35; font-style:normal; }
.contact-choice-card > p:not(.eyebrow) { color:var(--muted); margin-bottom:28px; }
.contact-choice-close { position:absolute; top:14px; left:18px; border:0; background:none; color:var(--ink); font-size:30px; line-height:1; cursor:pointer; }
.contact-choice-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.contact-choice-actions .button { width:100%; justify-content:center; margin:0; }
.button-choice-whatsapp { background:#1f7a55; color:#fff; }
body.choice-open { overflow:hidden; }
.contact-form label { display:block; font-size:11px; color:#666; margin-top:26px; }
input,textarea { display:block; width:100%; background:transparent; border:0; border-bottom:1px solid rgba(21,21,21,.35); padding:12px 0; font:16px Assistant; color:var(--ink); outline:0; resize:vertical; }
input:focus,textarea:focus { border-color:var(--ruby); }
.footer { min-height:85px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; padding-block:22px 12px; font-size:10px; color:#666; letter-spacing:.08em; }
.footer a { color:var(--ruby); font-size:20px; }
.footer-rights { flex:0 0 100%; margin-top:14px; padding-top:12px; border-top:1px solid var(--line); text-align:center; letter-spacing:.06em; }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }
.reveal-delay { transition-delay:.16s; }
@keyframes scroll { 0%,100%{transform:scaleY(.55);opacity:.4} 50%{transform:scaleY(1);opacity:1} }
@media (max-width:760px) { .shell { width:min(100% - 40px,1180px); } .nav-links { display:none; } .hero-grid,.split-section,.contact-grid { grid-template-columns:1fr; gap:50px; } .hero { min-height:auto; padding:130px 0 90px; } .hero-object { height:400px; order:-1; } .hero-copy { text-align:right; } .hero-main-image { width:86%; height:78%; right:3%; top:7%; } .hero-image-placeholder { width:48%; height:50%; transform:translate3d(18%, 25%, 0) rotate(4deg); } .intro { padding:100px 0; } .split-section { padding:70px 0 110px; } .image-panel { height:390px; } .process { padding:100px 0; } .process h2 { margin-bottom:50px; } .process-list { grid-template-columns:1fr 1fr; gap:0 20px; } .process-list article { border-bottom:1px solid var(--line); padding:20px 0; } .gallery-section { padding:100px 0; } .gallery-heading { margin-bottom:48px; } .gallery-rail { grid-template-columns:1fr 1fr; gap:12px; } .gallery-item-wide,.gallery-item-tall { grid-column:span 1; height:210px; margin-top:0!important; } .gallery-item:nth-child(even) { margin-top:35px!important; } .feature-band,.statement,.contact { padding:100px 0; } .feature-inner h2,.statement-inner h2 { margin-bottom:55px; } .feature-list { grid-template-columns:1fr; gap:0; } .feature-list article { border-left:0; border-bottom:1px solid rgba(255,255,255,.35); padding:22px 0; } .feature-list h3 { margin:12px 0 4px; } .footer { font-size:8px; } }
/* Full-bleed portrait cover, based on the supplied composition. */
.nav { display:none; }
.hero { min-height:900px; height:max(900px,100svh); padding:0; display:block; isolation:isolate; }
.hero::before,.hero::after { display:none; }
.hero-backdrop { position:absolute; inset:0 -80px; z-index:-2; transform:translateX(var(--hero-shift,0px)); }
.hero-backdrop img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-backdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.64),rgba(0,0,0,.28)); }
.hero-grid { width:100%; height:100%; padding:0; display:block; position:relative; }
.hero-copy { position:relative; z-index:3; margin-left:7%; margin-right:auto; padding-top:45px; width:48%; max-width:650px; text-align:left; }
.hero-wordmark { width:min(420px,48vw); margin-bottom:45px; position:relative; left:-23vw; transform:none; }
.hero-wordmark img { display:block; width:100%; height:auto; }
.hero h1 { font-size:clamp(52px,5.6vw,86px); font-weight:700; letter-spacing:-.025em; line-height:1.08; margin-bottom:30px; }
.hero h1 em { color:#dbc29a; }
.hero-subline { display:block; font-size:.55em; line-height:1.4; margin-block:.25em .45em; }
.hero-lede { font-size:clamp(22px,2.5vw,34px); line-height:1.25; opacity:1; margin:0; }
.hero-lede::before { content:""; display:block; width:48px; height:2px; background:#eee; margin-bottom:22px; }
.hero-copy .button { margin-top:24px; }
.hero-object { position:absolute; inset:auto -2% 0 auto; width:44%; height:72%; z-index:2; pointer-events:none; }
.hero .hero-image-placeholder { width:100%; height:100%; transform:translateX(var(--hero-shift,0px)); background:none; box-shadow:none; overflow:visible; }
.hero .hero-image-placeholder img { object-fit:contain; object-position:right bottom; }
.hero .scroll-cue { display:none; }
@media (max-width:760px) {
  .hero { min-height:0; height:auto; aspect-ratio:852/1846; }
  .hero-copy { width:72%; margin-left:7.5%; padding-top:11%; }
  .hero-wordmark { width:min(420px,58vw); margin-bottom:8vw; transform:translateX(-50%); }
  .hero h1 { font-size:clamp(34px,10.8vw,82px); line-height:1.05; margin-bottom:6vw; }
  .hero-lede { font-size:clamp(19px,5.2vw,38px); }
  .hero-lede::before { width:7vw; margin-bottom:4vw; }
  .hero-copy .button { font-size:10px; padding:10px 12px; max-width:52%; margin-top:4vw; }
  .hero-object { width:74%; height:49%; right:-7%; bottom:0; }
  .hero-backdrop img { object-position:45% center; }
}
/* Shared section rhythm and typography; the reference cover retains its own scale. */
:root { --section-space:clamp(72px,9vw,128px); --heading-size:clamp(34px,4.5vw,68px); --gold-light:#dbc29a; --muted:#62615e; }
.section-dark { color:var(--paper); }
.intro,.split-section,.feature-band,.process,.gallery-section,.statement,.contact { padding-block:var(--section-space); }
.intro { padding-bottom:calc(var(--section-space) / 2); }
.split-section { padding-top:calc(var(--section-space) / 2); }
.intro h2,.split-copy h2,.contact-copy h2,.process h2,.gallery-heading h2,.feature-inner h2,.statement-inner h2 {
  font-size:var(--heading-size); font-weight:400; line-height:1.2; letter-spacing:-.025em;
  margin-bottom:clamp(28px,4vw,48px); text-wrap:balance; overflow-wrap:break-word;
}
.intro h2 span,.process h2 span { color:var(--muted); }
.section-light h2 em,.split-copy h2 em,.section-silver h2 em { color:#785a35; }
.section-dark h2 em,.section-bronze h2 em,.hero h1 em { color:var(--gold-light); }
.section-bronze { background:#715540; }
.intro-copy,.split-copy p:not(.eyebrow),.approach-text-only .split-copy p:not(.eyebrow),.statement-inner > p:last-child,.contact-copy > p:last-child {
  max-width:640px; margin-inline:0; font-size:18px; line-height:1.8; opacity:1;
}
.intro-copy,.split-copy p:not(.eyebrow),.contact-copy > p:last-child { color:var(--muted); }
.statement-inner > p:last-child { color:var(--silver); }
.eyebrow { font-size:13px; letter-spacing:0; opacity:1; line-height:1.6; }
.eyebrow.dark { color:var(--muted); opacity:1; }
.eyebrow.light { color:var(--paper); }
.feature-list { display:block; }
.feature-list article { display:grid; grid-template-columns:55px minmax(170px,1fr) minmax(0,2fr); column-gap:32px; padding:32px 0; border:0; border-bottom:1px solid rgba(255,255,255,.3); }
.feature-list strong { grid-column:1; grid-row:1; color:var(--gold-light); }
.feature-list h3 { grid-column:2; grid-row:1; margin:0; font-size:24px; line-height:1.4; }
.feature-list p { grid-column:3; font-size:18px; line-height:1.8; margin:0 0 18px; }
.feature-list p:first-of-type { grid-row:1; }
.feature-list p:last-child { margin-bottom:0; }
.process-list { gap:24px; }
.process-list article { border:0; padding:24px 0; }
.process-list p { font-size:17px; line-height:1.8; }
.gallery-heading { margin-bottom:48px; }
.gallery-rail { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.gallery-item-wide,.gallery-item-tall,.gallery-item:nth-child(3),.gallery-item:nth-child(5) { grid-column:auto; height:auto; aspect-ratio:16/10; margin:0; }
.contact-grid { gap:clamp(32px,6vw,80px); grid-template-columns:repeat(2,minmax(0,1fr)); }
.button,.hero-copy .button { font:600 16px/1.5 Assistant,Arial,sans-serif; letter-spacing:0; min-height:48px; padding:12px 20px; }
.button-light { background:var(--ruby); color:#fff; }
.text-link { font-size:16px; letter-spacing:0; min-height:44px; align-items:center; }
.contact-form label { font-size:16px; color:var(--ink); }
.footer { gap:20px; flex-wrap:wrap; font-size:13px; letter-spacing:0; padding-block:24px; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.reveal { opacity:1; transform:none; }
.motion-ready .reveal:not(.is-visible) { opacity:0; transform:translateY(28px); }
@media (max-width:760px) {
  .feature-list article { grid-template-columns:36px minmax(0,1fr); gap:16px; padding-block:28px; }
  .feature-list h3 { font-size:22px; }
  .feature-list p,.feature-list p:first-of-type { grid-column:2; grid-row:auto; }
  .gallery-rail { gap:16px; }
  .gallery-item:nth-child(even) { margin-top:0!important; }
  .contact-grid { grid-template-columns:1fr; }
  .hero-copy .button { max-width:none; font-size:14px; padding:10px 14px; }
}
.gallery-section { position:relative; isolation:isolate; }
.gallery-logo { position:absolute; top:24px; left:0; width:clamp(280px,40vw,620px); opacity:.14; pointer-events:none; z-index:0; will-change:transform; }
.gallery-logo img { display:block; width:100%; height:auto; filter:brightness(0) saturate(100%) invert(18%) sepia(68%) saturate(2200%) hue-rotate(329deg) brightness(72%) contrast(112%); }
.gallery-section .gallery-heading,.gallery-section .gallery-rail { position:relative; z-index:1; width:min(1000px,72%); margin-left:25%; margin-right:3%; }
.gallery-section .gallery-item { aspect-ratio:auto; height:auto; align-self:start; }
.gallery-section .gallery-item img { width:100%; height:auto; object-fit:contain; }
@media (max-width:760px) {
  .gallery-logo { left:0; width:58%; }
  .gallery-section .gallery-heading,.gallery-section .gallery-rail { width:73%; margin-left:25%; margin-right:2%; }
  .gallery-section .gallery-rail { grid-template-columns:1fr; }
}
@media (max-width:480px) { .gallery-rail,.process-list { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
  .motion-ready .reveal:not(.is-visible) { opacity:1; transform:none; }
}

/* Final mobile overrides for the carousel cover. */
@media (max-width:760px) {
  .hero { height:100svh; min-height:720px; aspect-ratio:auto; }
  .hero-backdrop { inset:0; }
  .hero-copy { width:78%; margin-left:7%; padding-top:9%; }
  .hero h1 { font-size:clamp(34px,10vw,58px); }
  .hero-object { width:67%; height:48%; right:-2%; bottom:-1%; }
  .hero .hero-image-placeholder { transform:translateX(0); }
  .gallery-logo { top:22px; left:7%; width:76%; opacity:.14; }
  .gallery-section .gallery-heading { height:31svh; width:calc(100% - 32px); padding-top:9svh; }
  .gallery-stage { height:69svh; min-height:490px; width:calc(100% - 32px); }
  .category-slide { width:100%; grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr); gap:16px; padding-top:10px; transition:transform .8s cubic-bezier(.22,.75,.18,1), opacity .65s ease; }
  .category-copy { padding-inline:4px; }
  .category-copy h3 { font-size:28px; }
  .category-copy p { font-size:15px; line-height:1.5; max-width:300px; }
  .category-frame { height:clamp(260px,48svh,430px); box-shadow:10px 10px 0 rgba(141,32,48,.3); display:grid; place-items:center; background:#1b1b1b; }
  .category-frame img { object-fit:contain; object-position:center; }
  .category-dots { bottom:8px; }
  .footer { justify-content:center; text-align:center; }
}

@media (max-width:760px) {
  body { min-width:320px; }
  .shell { width:calc(100% - 32px); }
  .hero { height:100svh; min-height:720px; aspect-ratio:auto; }
  .hero-backdrop { inset:0; }
  .hero-backdrop img { object-position:right center; }
  .hero-backdrop::after { background:linear-gradient(90deg,rgba(0,0,0,.68),rgba(0,0,0,.2)); }
  .hero-copy { width:78%; margin-left:7%; padding-top:9%; }
  .hero-wordmark { width:min(360px,62vw); margin-bottom:7vw; left:-17vw; transform:none; }
  .hero h1 { font-size:clamp(34px,10vw,58px); line-height:1.08; margin-bottom:5vw; }
  .hero-lede { font-size:clamp(18px,5vw,28px); }
  .hero-copy .button { max-width:100%; font-size:13px; padding:9px 12px; }
  .hero-object { width:67%; height:48%; right:-2%; bottom:-1%; }
  .hero .hero-image-placeholder { transform:translateX(0); }
  .hero .hero-image-placeholder img { object-position:right bottom; }

  .intro,.split-section,.feature-band,.process,.gallery-section,.statement,.contact { padding-block:72px; }
  .intro h2,.split-copy h2,.contact-copy h2,.process h2,.gallery-heading h2,.feature-inner h2,.statement-inner h2 { font-size:clamp(34px,9vw,54px); line-height:1.18; }
  .intro-copy,.split-copy p:not(.eyebrow),.approach-text-only .split-copy p:not(.eyebrow),.statement-inner > p:last-child,.contact-copy > p:last-child { font-size:16px; line-height:1.8; }
  .feature-list article { grid-template-columns:32px minmax(0,1fr); column-gap:12px; }
  .feature-list h3 { font-size:21px; }
  .feature-list p,.process-list p { font-size:16px; line-height:1.75; }

  .gallery-section { height:620vh; padding:0; }
  .gallery-logo { top:22px; left:7%; width:76%; opacity:.14; }
  .gallery-section .gallery-heading { top:0; height:31svh; width:calc(100% - 32px); margin:0 auto; padding-top:9svh; }
  .gallery-heading h2 { margin-bottom:12px; }
  .gallery-instruction { font-size:14px; line-height:1.6; }
  .gallery-stage { top:0; height:69svh; min-height:490px; width:calc(100% - 32px); margin:0 auto; }
  .category-slide { width:100%; grid-template-columns:1fr; grid-template-rows:auto minmax(0,1fr); gap:16px; align-content:start; padding-top:10px; }
  .category-copy { padding-inline:4px; }
  .category-copy span { font-size:22px; margin-bottom:5px; }
  .category-copy h3 { font-size:28px; margin-bottom:7px; }
  .category-copy p { font-size:15px; line-height:1.5; max-width:300px; }
  .category-frame { height:clamp(260px,48svh,430px); box-shadow:10px 10px 0 rgba(141,32,48,.3); }
  .category-dots { bottom:8px; }
  .category-slide.is-before { transform:translate3d(calc(-50% - 105vw),0,-100px) scale(.8); }
  .category-slide.is-after { transform:translate3d(calc(-50% + 105vw),0,-100px) scale(.8); }
  .contact-grid { gap:42px; }
  .contact-form { margin-top:0; }
  .footer { justify-content:center; text-align:center; }
}

/* Final mobile pass: keep controls and visual edges inside the viewport. */
@media (max-width:760px) {
  html { max-width:100%; overflow-x:clip; overflow-y:auto; }
  body { max-width:100%; overflow-x:clip; overflow-y:visible; }
  .shell { width:calc(100% - 32px); }
  .hero-copy { width:82%; margin-left:8%; padding-top:12%; }
  .hero-wordmark { width:min(340px,68vw); left:-10vw; margin-bottom:7vw; }
  .hero h1 { max-width:90%; font-size:clamp(34px,10.5vw,58px); overflow-wrap:anywhere; }
  .hero-lede { max-width:78%; }
  .hero-copy .button { width:auto; max-width:88%; white-space:normal; }
  .hero-object { width:78%; height:50%; right:-10%; }
  .gallery-heading { width:calc(100% - 32px); }
  .category-slide { width:100%; padding-inline:0; }
  .category-copy { max-width:100%; padding-inline:4px; }
  .category-copy h3 { overflow-wrap:anywhere; }
  .category-frame { width:100%; height:min(46svh,390px); min-height:250px; }
  .category-dots { bottom:4px; }
  .contact-form input, .contact-form textarea { font-size:16px; }
  .contact-form .button { width:100%; justify-content:center; }
  .contact-whatsapp { display:block; padding:14px 0 4px; text-align:center; }
  .contact-choice { padding:16px; }
  .contact-choice-card { max-height:90svh; overflow:auto; padding:34px 24px 26px; }
  .contact-choice-actions { grid-template-columns:1fr; gap:10px; }
  .contact-choice-actions .button { min-height:50px; }
}

/* Scroll-controlled category carousel. */
.gallery-section { height:500vh; padding:0; overflow:visible; }
.gallery-section .gallery-heading { position:sticky; top:0; height:34vh; padding-top:var(--section-space); margin-bottom:0; z-index:3; pointer-events:none; }
.gallery-section .gallery-heading h2 { margin-bottom:12px; }
.gallery-instruction { font-size:15px; color:rgba(242,239,233,.65); margin:0; }
.gallery-stage { position:sticky; top:0; height:66vh; min-height:430px; margin-top:0; z-index:2; }
.category-slides { position:relative; height:100%; width:100%; perspective:1200px; }
.category-slide { position:absolute; top:0; left:50%; width:min(720px,68%); height:100%; display:grid; grid-template-columns:minmax(150px,.72fr) minmax(220px,1.28fr); gap:clamp(18px,3vw,48px); align-items:center; opacity:0; pointer-events:none; transform:translate3d(-50%,0,-240px) scale(.72); transition:transform .7s cubic-bezier(.2,.8,.2,1), opacity .55s ease; }
.category-slide.is-active { opacity:1; pointer-events:auto; transform:translate3d(-50%,0,0) scale(1); z-index:3; }
.category-slide.is-before { opacity:.4; transform:translate3d(calc(-50% - 52vw),0,-100px) rotateY(18deg) scale(.76); z-index:1; }
.category-slide.is-after { opacity:.4; transform:translate3d(calc(-50% + 52vw),0,-100px) rotateY(-18deg) scale(.76); z-index:1; }
.category-copy { direction:rtl; text-align:right; }
.category-copy span { display:block; color:var(--gold-light); font:32px serif; margin-bottom:18px; }
.category-copy h3 { font-size:clamp(24px,3vw,42px); line-height:1.15; margin:0 0 18px; }
.category-copy p { color:rgba(242,239,233,.7); font-size:17px; line-height:1.8; margin:0; }
.category-frame { height:min(52vh,520px); overflow:hidden; background:#252525; box-shadow:24px 24px 0 rgba(141,32,48,.32); }
.category-frame img { width:100%; height:100%; display:block; object-fit:cover; transition:opacity .35s ease, transform .7s ease; }
.category-slide.image-switching .category-frame img { opacity:.18; transform:scale(1.04); }
.category-dots { position:absolute; bottom:18px; left:50%; transform:translateX(-50%); display:flex; gap:8px; z-index:4; }
.category-dots i { width:6px; height:6px; border-radius:50%; background:rgba(242,239,233,.35); transition:transform .3s, background .3s; }
.category-dots i.is-active { background:var(--gold-light); transform:scale(1.5); }
.gallery-image-dots { position:absolute; bottom:42px; left:50%; transform:translateX(-50%); display:flex; gap:5px; z-index:4; }
.gallery-image-dots i,.mobile-image-dots i { width:5px; height:5px; border-radius:50%; background:rgba(242,239,233,.3); transition:transform .25s, background .25s; }
.gallery-image-dots i.is-active,.mobile-image-dots i.is-active { background:var(--gold-light); transform:scale(1.55); }
.gallery-logo { z-index:1; }
@media (max-width:760px) {
  .gallery-section { height:620vh; }
  .gallery-section .gallery-heading { height:32vh; padding-top:14vh; width:88%; margin-inline:auto; }
  .gallery-stage { height:68vh; width:92%; margin-inline:auto; }
  .category-slide { width:100%; grid-template-columns:1fr; grid-template-rows:auto minmax(240px,1fr); gap:18px; align-content:center; }
  .category-copy { order:0; }
  .category-copy span { font-size:24px; margin-bottom:8px; }
  .category-copy h3 { font-size:30px; margin-bottom:8px; }
  .category-copy p { font-size:15px; line-height:1.55; }
  .category-frame { order:1; height:46vh; box-shadow:12px 12px 0 rgba(141,32,48,.3); }
  .category-slide.is-before { transform:translate3d(calc(-50% - 100vw),0,-100px) scale(.76); }
  .category-slide.is-after { transform:translate3d(calc(-50% + 100vw),0,-100px) scale(.76); }
  .gallery-logo { left:6%; width:78%; }
}

/* EXPERIMENT: natural photo proportions. Keep after all carousel overrides. */
.category-frame {
  --photo-height: min(52vh, 520px);
  width:min(100%, calc(var(--photo-height) * var(--photo-ratio, 1)));
  height:auto;
  min-height:0;
  aspect-ratio:var(--photo-ratio, auto);
  justify-self:center;
  align-self:center;
}
.category-frame img {
  width:100%;
  height:auto;
  object-fit:contain;
}
.category-slide.image-switching .category-frame img { transform:none; }
@media (max-width:760px) {
  .category-frame { --photo-height:min(46svh, 390px); }
}
/* END natural photo proportions experiment. */

/* Uniform square frames keep every carousel image on the same visual rhythm. */
@media (min-width:761px) {
  .category-frame {
    width:min(100%, 52vh, 520px);
    height:auto;
    aspect-ratio:1 / 1;
  }
  .category-frame img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }
}

/* Mobile gallery: horizontal gestures browse photos; vertical gestures scroll the page. */
/* Mobile landscape cover: copy over the full photo, portrait anchored right. */
@media (max-width:760px) {
  .hero { height:66.6667vw; min-height:0; aspect-ratio:3 / 2; padding:0; overflow:hidden; }
  .hero-backdrop { inset:0 0 auto; height:auto; aspect-ratio:3 / 2; transform:none; }
  .hero-backdrop img { object-fit:contain; object-position:center; }
  .hero-backdrop::after { background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.05)); }
  .hero-object { top:auto; bottom:0; right:0; width:40%; height:85%; }
  .hero .hero-grid { width:100%; margin:0; }
  .hero-copy { position:absolute; left:5%; right:auto; top:0; width:54%; height:100%; margin:0; padding:3vw 0; display:flex; flex-direction:column; align-items:flex-end; direction:rtl; text-align:left; justify-content:space-between; }
  .hero-wordmark { position:static; width:27vw; margin:0; transform:none; }
  .hero h1 { max-width:100%; font-size:5.5vw; line-height:1.02; margin:1vw 0; }
  .hero-subline { margin-block:.2em; }
  .hero-lede { max-width:100%; font-size:3vw; line-height:1.2; }
  .hero-lede::before { display:none; }
  .hero-copy .button { font-size:2.5vw; padding:1.7vw 2vw; margin-top:1vw; max-width:100%; min-height:0; }
}
.mobile-gallery-categories { display:none; }
@media (max-width:760px) {
  .gallery-section { height:auto; overflow:clip; padding-block:56px; }
  .gallery-section .gallery-heading { position:relative; height:auto; padding-top:0; margin-bottom:28px; }
  .gallery-stage { position:relative; top:auto; height:auto; min-height:0; width:100%; }
  .gallery-stage > .category-slides,.gallery-stage > .category-dots { display:none; }
  .gallery-image-dots { display:none; }
  .mobile-gallery-categories { display:grid; grid-template-columns:minmax(0,1fr); width:100%; min-width:0; gap:48px; }
  .mobile-gallery-categories > section { width:100%; min-width:0; }
  .mobile-gallery-categories h3 { direction:rtl; text-align:right; font-size:26px; color:var(--gold-light); margin:0 6vw 18px; }
  .mobile-photo-strip { display:flex; direction:ltr; width:100%; max-width:100%; min-width:0; gap:16px; overflow-x:auto; overflow-y:hidden; touch-action:pan-x pan-y pinch-zoom; padding:0 6vw 24px; scroll-snap-type:x proximity; scroll-padding-inline:6vw; overscroll-behavior-x:contain; overscroll-behavior-y:auto; }
  .mobile-photo-strip figure { flex:0 0 min(84vw, 520px); aspect-ratio:1 / 1; min-width:0; margin:0; scroll-snap-align:start; }
  .mobile-photo-strip img { display:block; width:100%; height:100%; aspect-ratio:1 / 1; object-fit:cover; user-select:none; }
  .mobile-image-dots { display:flex; justify-content:center; gap:6px; direction:ltr; margin-top:2px; }
  .category-slide { grid-template-rows:145px minmax(0,1fr); align-content:start; padding-bottom:36px; transition:transform .85s ease, opacity .65s ease; }
  .category-slide.is-before,.category-slide.is-after { opacity:0; }
  .category-frame img { user-select:none; -webkit-user-drag:none; transition:opacity .5s ease; }
  .category-dots { bottom:4px; }
}
@media (max-width:760px) and (prefers-reduced-motion:reduce) {
  .category-slide,.category-frame img { transition:none; }
}

/* Testimonials — content intentionally remains placeholder copy. */
.testimonials { padding-block:var(--section-space); overflow:hidden; }
.testimonials-heading { display:flex; justify-content:space-between; align-items:end; gap:48px; margin-bottom:clamp(42px,6vw,76px); }
.testimonials-heading .eyebrow { flex:0 0 auto; margin-bottom:10px; }
.testimonials-heading h2 { margin:0; font-size:var(--heading-size); font-weight:400; line-height:1.12; letter-spacing:-.025em; text-align:right; }
.testimonials-heading h2 em { color:#785a35; font-style:normal; }
.testimonials-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid rgba(21,21,21,.24); border-bottom:1px solid rgba(21,21,21,.24); }
.testimonial-card { min-height:330px; padding:32px 28px 28px; display:flex; flex-direction:column; border-left:1px solid rgba(21,21,21,.24); }
.testimonial-card:last-child { border-left:0; }
.testimonial-mark { color:var(--ruby); font:400 64px/1 Georgia,serif; height:48px; }
.testimonial-card blockquote { margin:28px 0 54px; color:#474745; font-size:clamp(20px,2vw,27px); line-height:1.55; font-weight:300; }
.testimonial-card footer { margin-top:auto; display:flex; flex-direction:column; gap:5px; }
.testimonial-card footer strong { font-size:14px; color:var(--ink); }
.testimonial-card footer span { color:#6b6966; font-size:12px; }
.testimonial-card-featured { grid-column:1 / -1; min-height:0; padding:clamp(32px,5vw,62px); background:rgba(242,239,233,.72); color:var(--ink); border:1px solid rgba(21,21,21,.14); border-right:5px solid var(--ruby); }
.testimonial-social-header { display:flex; align-items:center; gap:13px; direction:rtl; margin-bottom:20px; }
.testimonial-avatar { width:48px; height:48px; flex:0 0 48px; display:block; overflow:hidden; border-radius:50%; background:var(--ruby); box-shadow:0 0 0 1px rgba(219,194,154,.55); }
.testimonial-avatar img { width:100%; height:100%; display:block; object-fit:cover; }
.testimonial-account { display:flex; align-items:baseline; gap:10px; }
.testimonial-account strong { color:var(--ink); font-size:18px; letter-spacing:.01em; }
.testimonial-account small { color:#6b6966; font-size:13px; }
.testimonial-card-featured .testimonial-mark { color:var(--ruby); opacity:.72; }
.testimonial-card-featured blockquote { max-width:950px; margin-top:12px; color:var(--ink); font-size:clamp(20px,2.15vw,30px); line-height:1.75; }

@media (max-width:760px) {
  .testimonials { padding-block:72px; }
  .testimonials-heading { display:block; margin-bottom:38px; }
  .testimonials-heading .eyebrow { margin-bottom:22px; }
  .testimonials-heading h2 { font-size:clamp(34px,9vw,54px); }
  .testimonials-grid { grid-template-columns:1fr; }
  .testimonial-card { min-height:260px; padding:26px 4px; border-left:0; border-bottom:1px solid rgba(21,21,21,.24); }
  .testimonial-card-featured { grid-column:auto; padding:30px 22px; }
  .testimonial-card-featured blockquote { font-size:19px; line-height:1.75; }
  .testimonial-social-header { margin-bottom:12px; }
  .testimonial-avatar { width:42px; height:42px; flex-basis:42px; }
  .testimonial-account { gap:7px; }
  .testimonial-account strong { font-size:16px; }
  .testimonial-card:last-child { border-bottom:0; }
  .testimonial-card blockquote { margin:20px 0 38px; font-size:22px; }
}
