:root{--paper:#f3eee5;--ink:#302d27;--muted:#777368;--gold:#a38355}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:6px}header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;position:absolute;z-index:10;width:100%}header img{width:150px;height:70px;object-fit:contain}nav{display:flex;align-items:center;gap:32px;font-size:12px}nav .book{border:1px solid #aaa18f;border-radius:40px;padding:15px 23px}.hero{min-height:850px;height:100svh;max-height:1100px;position:relative;padding:160px 8% 100px;overflow:hidden;background:#eae4d8}.hero-copy{position:relative;z-index:2;width:52%}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:500}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(60px,6.8vw,110px);line-height:1.04;letter-spacing:-5px;margin:26px 0}em{font-weight:400;color:#9c7a4d}h1 em,h2 em{font-style:italic}p{font-size:14px;line-height:1.9;color:var(--muted)}.button{display:inline-flex;align-items:center;gap:48px;padding:20px 28px;border-radius:40px;background:var(--paper);color:var(--ink);font-size:12px;margin-top:30px}.button.dark{background:var(--ink);color:white}.button:hover{transform:translateY(-2px)}.portrait{position:absolute;right:4%;bottom:60px;width:49%;height:calc(100% - 155px)}.arch{position:absolute;inset:7% 6% 0 4%;background:#d9cdbc;border-radius:50% 50% 0 0;box-shadow:0 0 100px #fff8}.portrait>img{height:100%;width:100%;object-fit:contain;object-position:bottom;position:relative;z-index:1;transform-origin:bottom}.outline{position:absolute;font:italic 160px Georgia;color:#ede5d7;top:10%;left:-10%}.signature{position:absolute;z-index:2;bottom:32px;right:0;font:italic 29px Georgia;color:#463e31;background:#f2ecdfdf;padding:16px 22px}.signature small{display:block;font:8px Arial;letter-spacing:2px;margin-top:9px}.hero-foot{position:absolute;bottom:24px;left:6%;right:6%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.5px}.intro{text-align:center;padding:120px 20px;background:radial-gradient(ellipse at bottom,#d7c7b5 0,transparent 65%),#302b26;color:var(--paper)}h2{font-size:clamp(38px,4.4vw,68px);line-height:1.14;letter-spacing:-2px}.intro h2{margin:28px 0}.intro p{max-width:540px;margin:auto;color:#d3c8b8}.story{height:850vh;position:relative;background:#211b16}.stage{height:100svh;position:sticky;top:0;overflow:hidden;color:#fff}.stage>img{position:absolute;width:100%;height:100%;object-fit:cover;will-change:transform,opacity;object-position:60% center}#scene-b{opacity:0}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,18,13,.78),transparent 80%),linear-gradient(0deg,#1e181b88,transparent 40%)}.story-top,.story-bottom{position:absolute;left:6%;right:6%;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:2px}.story-top{top:40px}.story-top button{color:#fff;border:1px solid #ffffff60;background:#0002;border-radius:30px;padding:10px 15px;font-size:10px;letter-spacing:.5px}.story-copy{position:absolute;left:8%;top:50%;transform:translateY(-35%);max-width:500px}.story-copy h2{margin:22px 0;font-size:clamp(48px,5.5vw,85px)}.story-copy em{color:#e5cdaa}.story-copy p{color:#e1d5c7;max-width:320px}.story-bottom{bottom:35px}#dots{display:flex;gap:10px}#dots button{width:7px;height:7px;padding:0;border:0;background:#ffffff55;border-radius:50%;transition:.3s}#dots button.active{background:#eacb9e;transform:scale(1.6)}.progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff25}.progress i{display:block;height:100%;width:0;background:#dec097}.about{padding:110px 12%;display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.about-photo{height:550px;background:#e4d8c8;border-radius:180px 180px 0 0;overflow:hidden}.about-photo img{width:100%;height:100%;object-fit:contain;object-position:bottom}.about h2{margin:25px 0}.about p{margin:16px 0}.text-link{display:inline-block;font-size:12px;border-bottom:1px solid #a49885;padding-bottom:9px;margin-top:22px}.services{padding:65px 8% 100px}.section-head{margin-bottom:50px}.section-head h2{margin-top:20px}.service{display:grid;grid-template-columns:60px 1fr 1fr 40px;align-items:center;border-top:1px solid #ccc2b4;padding:32px 0;gap:20px}.service:last-child{border-bottom:1px solid #ccc2b4}.service>span{font-size:10px;color:var(--gold)}.service h3{font-size:30px}.service p{font-size:12px}.service b{font-size:23px;font-weight:400}.service:hover h3{color:var(--gold)}.editorial{background:#e9e1d5;padding:100px 6%}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.gallery figure{margin:0}.gallery figure:nth-child(2){padding-top:55px}.gallery img{width:100%;height:350px;object-fit:cover;object-position:55%}.gallery figcaption{font-size:11px;margin-top:18px}.gallery-note{display:flex;justify-content:space-between;align-items:end;gap:20px}.gallery-note small{font-size:10px;color:#797265}.contact{text-align:center;padding:110px 20px;background:#332d27;color:#f3eee5}.contact h2{font-size:clamp(50px,6vw,85px);margin:30px 0}.contact p{color:#c7baaa}.contact small{display:block;font-size:10px;color:#baab99;margin-top:23px}footer{padding:40px 6%;display:flex;align-items:center;justify-content:space-between;font-size:11px}footer img{width:130px}.skip{position:fixed;top:-80px;left:10px;z-index:100;background:white;padding:15px}.skip:focus{top:10px}@media(max-width:700px){header{height:80px;padding:0 6%}header img{width:115px}nav>a:not(.book){display:none}nav .book{padding:11px 14px;font-size:10px}.hero{min-height:870px;max-height:none;height:100svh;padding:115px 7% 0}.hero-copy{width:100%}h1{font-size:64px;letter-spacing:-3px;margin:20px 0}h1 br:nth-of-type(2){display:none}.hero-copy p{font-size:12px}.hero .button{padding:14px 20px;margin-top:20px}.portrait{right:-12%;height:48%;width:88%;bottom:58px}.outline{font-size:95px}.signature{font-size:21px;right:17%;bottom:16px;padding:10px}.signature small{font-size:6px}.hero-foot{font-size:8px}.hero-foot>span:nth-child(2){display:none}.intro{padding:85px 24px}.intro h2{font-size:37px}.story{height:750vh}.stage>img{object-position:56% center}.shade{background:linear-gradient(0deg,#20160fe8,transparent 85%)}.story-copy{left:7%;top:auto;bottom:115px;transform:none;right:6%}.story-copy h2{font-size:48px}.story-copy p{font-size:12px}.story-top{top:25px;font-size:8px}.story-bottom>span{display:none}#dots{gap:18px}.about{padding:70px 7%;grid-template-columns:1fr;gap:45px}.about-photo{height:410px;width:85%;margin:auto}.about h2{font-size:48px}.services{padding:30px 7% 65px}.service{grid-template-columns:25px 1fr 20px;gap:12px;padding:24px 0}.service h3{font-size:27px}.service p{grid-column:2;grid-row:2}.service b{grid-column:3;grid-row:1}.editorial{padding:65px 7%}.gallery{gap:12px;grid-template-columns:1fr 1fr}.gallery figure:last-child{grid-column:1/-1}.gallery img{height:230px}.gallery figure:last-child img{height:340px}.gallery figure:nth-child(2){padding-top:30px}.gallery figcaption{font-size:9px}.gallery-note{align-items:start;flex-direction:column;margin-top:25px;gap:0}.contact{padding:85px 20px}footer{flex-wrap:wrap;gap:25px}footer img{width:105px}footer>a:last-child{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Scroll choreography: readable words, staggered letters, a longer editorial pace. */
.word{display:inline-block;white-space:nowrap}.letter{display:inline-block;transform-origin:50% 100%}h1 .word,h2 .word{padding-bottom:.09em;margin-bottom:-.09em}.story{height:1250vh}.story-copy{max-width:650px}.story-copy h2{min-height:2.35em}.story-copy p{min-height:3.8em}.gallery figure{overflow:hidden}.gallery img{transition:none}.story-top,.story-bottom{z-index:2}#dots button{position:relative}#dots button:before{content:"";position:absolute;inset:-10px}.intro{padding-top:150px;padding-bottom:150px}.motion-off .letter{opacity:1!important;transform:none!important;filter:none!important}@media(max-width:700px){.story{height:1100vh}.story-copy{bottom:110px}.story-copy h2{font-size:clamp(35px,9.5vw,48px);letter-spacing:-1.5px}.intro{padding:100px 24px}.word{max-width:100%}}@media(prefers-reduced-motion:reduce){.letter{opacity:1!important;transform:none!important;filter:none!important}}

/* Edition 3 — editorial cover and a guided journey through beauty details. */
.hero{background:radial-gradient(ellipse at 78% 45%,#fbf5e8 0,#e8dfd1 48%,#eee7dc 75%)}
.hero-copy{width:60%}h1{font-size:clamp(64px,6.5vw,104px);line-height:1.02;letter-spacing:-4px}.hero-copy p{margin-top:25px}.hero .eyebrow{display:block;letter-spacing:3px}.portrait{right:2%;width:48%;bottom:62px}.arch{border-radius:48% 48% 0 0;background:linear-gradient(145deg,#c7b69c,#e6dacc);inset:5% 7% 0 7%}.portrait-caption{position:absolute;right:0;top:16%;writing-mode:vertical-rl;font-size:8px;letter-spacing:2.5px;z-index:2}.outline{font-size:clamp(100px,13vw,200px);top:24%;left:-9%;color:#f8f1e5}.signature{background:#f4eddfeb;backdrop-filter:blur(12px);right:6%;border-left:1px solid #b39a74}.hero-foot{border-top:1px solid #b8aa934d;padding-top:20px}.intro{background:radial-gradient(ellipse at 20% 100%,#6e5942 0,transparent 60%),#28241f}.story{height:1050vh}.detail-label{position:absolute;right:8%;top:48%;font-size:9px;letter-spacing:3px;display:flex;align-items:center;gap:16px;color:#f4e6d1;pointer-events:none}.detail-label i{width:11px;height:11px;border:1px solid #f4e6d1;border-radius:50%;box-shadow:0 0 0 7px #f4e6d11c}.detail-label:before{content:'';width:55px;height:1px;background:#f4e6d180}.story-copy{max-width:580px}.gallery{grid-template-columns:1.25fr .8fr;gap:42px}.gallery img{height:440px}.gallery .gallery-lead img{height:610px}.gallery figure:nth-child(2){padding-top:115px}.gallery figure:last-child{grid-column:2;margin-top:-80px}.gallery figure:last-child img{height:380px}.gallery figcaption{padding-top:15px;border-top:1px solid #baab94;letter-spacing:1px}.gallery-note{margin-top:45px}.contact{background:radial-gradient(ellipse at bottom,#5e4b36,transparent 70%),#28241f}.button{transition:transform .2s,background .2s}.service{transition:padding .25s}.service:hover{padding-left:12px}.story-bottom>span{letter-spacing:2px}
@media(max-width:700px){.hero{min-height:920px}.hero-copy{width:100%}h1{font-size:clamp(49px,12.5vw,68px);letter-spacing:-2.5px}.hero h1 br:nth-of-type(2){display:block}.hero-copy p{margin-top:18px}.portrait{height:44%;width:88%;right:-9%}.portrait-caption{right:14%;font-size:7px;top:7%}.signature{right:17%}.story{height:1000vh}.detail-label{top:30%;right:8%;font-size:8px;letter-spacing:2px}.detail-label:before{width:28px}.gallery{grid-template-columns:1fr 1fr;gap:18px}.gallery .gallery-lead{grid-column:1/-1}.gallery .gallery-lead img{height:430px}.gallery figure:nth-child(2){padding-top:0}.gallery figure:last-child{grid-column:auto;margin-top:45px}.gallery img,.gallery figure:last-child img{height:240px}.gallery-note{margin-top:30px}.hero-foot{bottom:20px}}
@media(prefers-reduced-motion:reduce){.button,.service{transition:none}.detail-label i{box-shadow:none}}

@media(max-width:700px){.reveal-scene .shade{background:linear-gradient(0deg,rgba(24,18,13,.92),rgba(24,18,13,.32) 32%,transparent 62%)}.reveal-scene .story-copy{bottom:90px}.reveal-scene .story-copy h2{font-size:clamp(32px,8.5vw,43px);margin:15px 0}.reveal-scene .detail-label{top:20%;right:6%}.reveal-scene .story-copy p{min-height:0}.hero h1{font-size:clamp(44px,11vw,62px)}}

/* Image-bound annotations, shared by desktop and mobile. */
.stage .detail-label{right:auto;gap:0;z-index:2;white-space:nowrap;padding:9px 11px;background:#211b1640;border-radius:20px;text-shadow:0 1px 6px #0008;line-height:1.2}
.stage .detail-label:before,.stage .detail-label i{display:none}
.detail-leader{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:hidden}
.detail-leader path{fill:none;stroke:#f4e6d1b0;stroke-width:1}
.detail-leader circle{fill:#f4e6d122;stroke:#f4e6d1;stroke-width:1}

/* Black identity and scroll-led portrait layers. */
header img,footer img{filter:brightness(0)}
.portrait{isolation:isolate}.portrait .arch{z-index:-2}.portrait .outline{z-index:0;top:35%;left:-32%;font-size:clamp(130px,16vw,250px);color:#a88d66;opacity:.65;white-space:nowrap;will-change:transform;pointer-events:none}.portrait>img{z-index:1;will-change:transform}.signature{z-index:3}
.hero-motion{border:1px solid #aaa18f;border-radius:30px;background:transparent;color:var(--ink);padding:11px 14px;font-size:10px}
.detail-leader path{stroke:#f4e6d170;stroke-width:.8}.stage .detail-label{background:#211b16b8;letter-spacing:2px;padding:10px 14px}
.about-photo{height:620px}.about p{max-width:510px}
@media(max-width:700px){nav{gap:9px}.hero-motion{font-size:9px;padding:10px}header img{width:100px}.portrait .outline{font-size:145px;left:-27%;top:32%}.about-photo{height:480px;width:100%}.stage .detail-label{font-size:9px}.hero .portrait{overflow:visible}}

/* Aligned portrait frame and compact chapter annotations. */
.portrait .arch{inset:5% 7% 0;border-radius:50% 50% 0 0;transform:none}
.stage .detail-label{left:auto;right:6%;top:105px;gap:8px;padding:10px 14px}
.stage .detail-label i{display:block;flex:0 0 6px;width:6px;height:6px;border:1px solid #f4e6d1;border-radius:50%;box-shadow:none;background:#f4e6d155}
.detail-leader{display:none}
@media(max-width:700px){
 .hero-motion,.story-top #motion{display:none}
 .hero .portrait{right:6%;width:88%}
 .portrait .arch{inset:5% 10% 0;border-radius:50% 50% 0 0}
 .portrait-caption{right:0}
 .signature{right:0}
 .stage .detail-label,.reveal-scene .detail-label{top:82px;right:6%;left:auto;font-size:8px;letter-spacing:1.7px}
}

/* Short annotation leader with breathing room around the marker. */
.stage .detail-label{gap:12px}
.stage .detail-label:before{display:block;order:1;width:24px;height:1px;background:#f4e6d199}
.stage .detail-label i{order:0}
.stage .detail-label span{order:2}
nav .book,.hero .hero-book{background:#493329;color:#fff9f0;border:1px solid #493329;box-shadow:0 5px 18px #49332920}
nav .book:hover,.hero .hero-book:hover{background:#322219}
.hero-experience{display:inline-block;margin:20px 0 0 20px;font-size:12px;border-bottom:1px solid #aa9581;padding-bottom:6px}
@media(max-width:700px){.hero-experience{margin-left:15px;font-size:10px}.stage .detail-label{gap:10px}.stage .detail-label:before{width:20px}}

/* Reference portrait arch and a scroll-written signature. */
.hero .portrait .arch{inset:0 7% 0;background:#e3d7c6;border-radius:44% 44% 0 0;box-shadow:none;transform:none}
.hero .portrait .outline{transform:none;will-change:auto}
.hero .signature{width:290px;padding:8px 14px 14px;background:#f4eddfed}
.signature-writing{display:block;width:100%;height:auto;overflow:visible;color:#493329}
.signature-writing path{stroke-dasharray:1;stroke-dashoffset:1}
.hero .signature small{text-align:center;font-size:7px;letter-spacing:1.6px;margin-top:1px}
@media(max-width:700px){.hero .portrait .arch{inset:0 5%;border-radius:44% 44% 0 0}.hero .signature{width:230px;right:0;bottom:12px;padding:5px 10px 10px}.hero .signature small{font-size:6px}}
@media(prefers-reduced-motion:reduce){.signature-writing path{stroke-dashoffset:0!important}}

/* Real client work, displayed in the original portrait framing. */
.portfolio-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:start}
.portfolio-gallery figure,.portfolio-gallery figure:nth-child(2),.portfolio-gallery figure:last-child{grid-column:auto;margin:0;padding:0;overflow:visible}
.portfolio-gallery img,.portfolio-gallery figure:last-child img{display:block;width:100%;height:auto;object-fit:contain;transform:none!important}
.portfolio-gallery figcaption{font-size:10px;line-height:1.6;letter-spacing:.6px}
@media(max-width:700px){.portfolio-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.portfolio-gallery figcaption{font-size:9px}}

/* Official LV and butterfly, cropped to the emblem without lettering. */
.hero .portrait .arch{inset:0 7%;border-radius:48% 48% 0 0 / 30% 30% 0 0;background:#e3d7c6}
.hero .portrait .monogram{left:-6%;top:62%;width:128%;height:auto;line-height:0;opacity:.65;filter:none;z-index:0;white-space:normal}
.monogram svg{display:block;width:100%;height:auto;overflow:hidden}
@media(max-width:700px){.hero .portrait .arch{inset:0 5%;border-radius:48% 48% 0 0 / 30% 30% 0 0}.hero .portrait .monogram{left:-5%;top:62%;width:120%}}

@font-face{font-family:LuanaSignature;src:url('assets/signature-font.ttf') format('truetype');font-display:swap}
.hero .modern-signature{position:absolute;z-index:4;right:7%;bottom:77px;color:#493329;pointer-events:none;transform:rotate(-5deg)}
.modern-signature span{display:block;font:400 clamp(64px,7vw,106px)/1.25 LuanaSignature,cursive;white-space:nowrap;padding:0 14px;clip-path:inset(0 100% 0 0)}
@media(max-width:700px){.hero .modern-signature{right:8%;bottom:70px}.modern-signature span{font-size:72px}}
@media(prefers-reduced-motion:reduce){.modern-signature span{clip-path:none!important}}

.hero .portrait-name{position:absolute;z-index:4;right:8%;bottom:82px;text-align:center;color:#493329;pointer-events:none}
.portrait-name>span{display:block;font:400 clamp(29px,3vw,43px)/1.25 Georgia,serif;letter-spacing:1px}
.portrait-name small{display:block;font:400 10px/1.5 Arial,sans-serif;letter-spacing:2px;margin-top:9px}
@media(max-width:700px){.hero .portrait-name{right:10%;bottom:78px}.portrait-name>span{font-size:30px}.portrait-name small{font-size:8px;letter-spacing:1.5px;margin-top:6px}}

/* Editorial portfolio: feature story, alternating rhythm, generous spacing. */
.editorial{padding:110px 8%;background:#eee7dc}
.editorial .section-head{margin-bottom:70px}
.portfolio-feature{display:grid;grid-template-columns:1.15fr 1fr;gap:10%;align-items:center;margin-bottom:100px}
.portfolio-feature figure{margin:0}.photo-open{display:block;width:100%;padding:0;border:0;background:transparent;text-align:inherit;cursor:zoom-in}
.portfolio-feature img{display:block;width:100%;height:auto}.feature-copy h3{font-size:clamp(40px,4.7vw,70px);line-height:1.12;letter-spacing:-2px;margin:30px 0}.feature-copy p{font-size:13px}.portfolio-index{display:block;margin-top:60px;font-size:9px;letter-spacing:2px;color:#89775e}
.portfolio-gallery{grid-template-columns:1.1fr .85fr;gap:85px 12%;align-items:start}
.portfolio-gallery figure:nth-child(even){padding-top:100px}
.portfolio-gallery figcaption{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #bba98c66;padding-top:14px;margin-top:18px;font-size:8px;letter-spacing:1.3px;color:#85745c}
.portfolio-gallery figure{transition:opacity .7s,translate .7s}.portfolio-gallery figure.pending-reveal{opacity:0;translate:0 24px}
.photo-viewer{border:0;padding:0;max-width:none;max-height:none;width:100vw;height:100dvh;background:#181511f5;color:#fff;overflow:hidden}.photo-viewer::backdrop{background:#181511}.photo-viewer[open]{display:flex;align-items:center;justify-content:center}.photo-viewer>img{max-width:86%;max-height:85dvh;object-fit:contain}.photo-viewer button{position:absolute;background:transparent;border:1px solid #ffffff50;color:white;border-radius:50%;width:46px;height:46px;font-size:23px}.viewer-close{top:20px;right:24px}.viewer-prev{left:20px;top:48%}.viewer-next{right:20px;top:48%}.viewer-count{position:absolute;bottom:20px;font-size:11px;letter-spacing:3px}
@media(max-width:700px){.editorial{padding:75px 7%}.editorial .section-head{margin-bottom:40px}.portfolio-feature{grid-template-columns:1fr;gap:30px;margin-bottom:60px}.feature-copy h3{font-size:42px;margin:18px 0}.feature-copy h3 br{display:none}.portfolio-index{margin-top:25px}.portfolio-gallery{gap:40px 18px;grid-template-columns:1fr 1fr}.portfolio-gallery figure:nth-child(even){padding-top:50px}.portfolio-gallery figcaption{font-size:7px;letter-spacing:.6px;flex-direction:column;gap:5px}.photo-viewer>img{max-width:94%;max-height:82dvh}.photo-viewer .viewer-prev,.photo-viewer .viewer-next{top:auto;bottom:18px;width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.portfolio-gallery figure{transition:none}}

/* Horizontal portfolio strip with native touch scrolling and snap. */
.gallery-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px;gap:20px}.gallery-controls>span{font-size:9px;letter-spacing:2px;color:#79674f}.gallery-controls small{display:block;font-size:10px;letter-spacing:.5px;margin-top:10px;color:#8b8071}.gallery-controls>div{display:flex;gap:10px}.gallery-controls button{border:1px solid #aa958166;background:transparent;color:#493329;border-radius:50%;width:44px;height:44px;font-size:20px;transition:background .2s}.gallery-controls button:hover{background:#dfd3c0}.gallery-controls button:disabled{opacity:.3;cursor:default}
.gallery.portfolio-gallery{display:flex;gap:32px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;align-items:start;padding:0 0 25px;scrollbar-width:thin;scrollbar-color:#a38355 #ddd3c5;overscroll-behavior-x:contain}
.portfolio-gallery figure,.portfolio-gallery figure:nth-child(even),.portfolio-gallery figure:nth-child(2),.portfolio-gallery figure:last-child{flex:0 0 35%;padding:0;margin:0;scroll-snap-align:start;opacity:1;translate:none;transition:none}
.portfolio-gallery .photo-open{overflow:hidden;background:#e3d7c6}.portfolio-gallery img,.portfolio-gallery figure:last-child img{height:460px;width:100%;object-fit:contain;transform:none!important}.portfolio-gallery figcaption{margin-top:15px}
@media(max-width:700px){.gallery.portfolio-gallery{gap:18px;padding-bottom:20px}.portfolio-gallery figure,.portfolio-gallery figure:nth-child(even),.portfolio-gallery figure:nth-child(2),.portfolio-gallery figure:last-child{flex-basis:82%}.portfolio-gallery img,.portfolio-gallery figure:last-child img{height:auto;aspect-ratio:3/4;object-fit:contain}.gallery-controls button{width:38px;height:38px}.gallery-controls>span{font-size:8px;letter-spacing:1px}.portfolio-gallery figcaption{flex-direction:row}}
@media(prefers-reduced-motion:reduce){.gallery.portfolio-gallery{scroll-behavior:auto}}

/* Immersive portrait theatre, matching the cinematic chapters. */
.cinema-portfolio{margin:0 -9.53%;padding:80px 0 55px;background:radial-gradient(ellipse at 50% 55%,#65503b 0,#302820 45%,#211e1a 85%);color:#f4ecdf;overflow:hidden}
.cinema-heading{text-align:center;padding:0 20px 35px}.cinema-heading .eyebrow{color:#c4ae8e;font-size:9px}.cinema-heading h3{font-size:clamp(42px,5vw,70px);line-height:1.06;margin-top:25px;letter-spacing:-2px}.cinema-heading h3 em{color:#d6b98f}
.cinema-portfolio .gallery-controls{padding:0 8%;margin-bottom:10px}.cinema-portfolio .gallery-controls>span{color:#f3e7d7}.cinema-portfolio .gallery-controls small{color:#baa990}.cinema-portfolio .gallery-controls button{color:#eee0cb;border-color:#d4b68b66}.cinema-portfolio .gallery-controls button:hover{background:#ffffff15}.cinema-counter{font:italic 26px Georgia;letter-spacing:1px}
.cinema-portfolio .portfolio-gallery{gap:36px;padding:35px calc(50% - 195px) 40px;scroll-padding-inline:calc(50% - 195px);scrollbar-width:none;perspective:1200px;align-items:center}
.cinema-portfolio .portfolio-gallery::-webkit-scrollbar{display:none}
.cinema-portfolio .portfolio-gallery figure,.cinema-portfolio .portfolio-gallery figure:nth-child(even),.cinema-portfolio .portfolio-gallery figure:last-child{flex:0 0 390px;scroll-snap-align:center;transform:scale(.86) rotateY(-7deg);opacity:.5;transition:transform .65s cubic-bezier(.2,.7,.2,1),opacity .65s;transform-origin:center}
.cinema-portfolio .portfolio-gallery figure.cinema-active{transform:scale(1) rotateY(0);opacity:1}
.cinema-portfolio .photo-open{background:#2b241e;box-shadow:0 20px 45px #0006;border:1px solid #c2a37933}
.cinema-portfolio .portfolio-gallery img,.cinema-portfolio .portfolio-gallery figure:last-child img{height:520px;object-fit:contain}
.cinema-portfolio .portfolio-gallery figcaption{border-color:#c0a07955;color:#d1baa0;padding-top:18px;font-size:8px;letter-spacing:2px}
.cinema-track{height:1px;background:#cfb18c33;width:160px;margin:10px auto 0}.cinema-track i{display:block;height:2px;background:#d9bd95;width:12.5%;transition:transform .5s}
@media(max-width:700px){.cinema-portfolio{margin:0 -8.14%;padding:60px 0 40px}.cinema-heading{padding-bottom:30px}.cinema-heading h3{font-size:46px}.cinema-portfolio .gallery-controls{padding:0 7%}.cinema-portfolio .portfolio-gallery{gap:20px;padding:25px 14vw 35px;scroll-padding-inline:14vw}.cinema-portfolio .portfolio-gallery figure,.cinema-portfolio .portfolio-gallery figure:nth-child(even),.cinema-portfolio .portfolio-gallery figure:last-child{flex-basis:72vw}.cinema-portfolio .portfolio-gallery img,.cinema-portfolio .portfolio-gallery figure:last-child img{height:auto;aspect-ratio:3/4}.cinema-portfolio .portfolio-gallery figcaption{letter-spacing:1px;font-size:7px}.cinema-counter{font-size:22px}}
@media(prefers-reduced-motion:reduce){.cinema-portfolio .portfolio-gallery figure{transition:none}.cinema-track i{transition:none}}

/* Clean photographs with no surrounding frame. */
.cinema-portfolio .photo-open,.portfolio-feature .photo-open{border:0;box-shadow:none;background:transparent}
.cinema-portfolio .portfolio-gallery img,.cinema-portfolio .portfolio-gallery figure:last-child img{height:auto;aspect-ratio:auto;background:transparent}
.photo-viewer>img{border:0;box-shadow:none;cursor:pointer}

/* 2026-11-04: Preserve the mobile portrait silhouette on every screen size.
   Width and height always follow one shared ratio; the shape never stretches as
   the viewport becomes wider. Keep the portrait inside the existing hero. */
.hero .portrait {
  --portrait-ratio: 343 / 405;
  width: min(48vw, 680px, calc((100svh - 150px) * 0.847));
  height: auto;
  aspect-ratio: var(--portrait-ratio);
  right: 2%;
  bottom: 62px;
}
.hero .portrait .arch {
  inset: 0 5%;
  border-radius: 48% 48% 0 0 / 30% 30% 0 0;
  background: #e3d7c6;
  transform: none;
}
.hero .portrait > img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom center;
}
.hero h1 .letter,
.intro h2 .letter,
.about h2 .letter,
.section-head h2 .letter,
.contact h2 .letter,
.story-copy h2 .letter {
  transform-origin: 50% 100%;
  will-change: opacity, transform, filter;
}
@media (max-width:700px) {
  .hero .portrait {
    width: 88%;
    height: auto;
    aspect-ratio: var(--portrait-ratio);
    right: 6%;
    bottom: 62px;
  }
  .hero .portrait .arch { inset: 0 5%; }
  .hero .portrait > img { object-position: bottom center; }
}
@media (max-height:700px) and (min-width:701px) {
  .hero .portrait { width: min(44vw, 570px, calc((100svh - 100px) * 0.847)); bottom: 50px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero h1 .letter, .intro h2 .letter, .about h2 .letter,
  .section-head h2 .letter, .contact h2 .letter,
  .story-copy h2 .letter { will-change: auto; }
}

/* Keep the fixed-size portrait near the content column on ultrawide screens. */
@media (min-width:1600px) {
  .hero .portrait { right: calc((100vw - 1600px) / 2 + 20px); }
  .hero .portrait-name { right: calc((100vw - 1600px) / 2 + 145px); }
}
