/* An additive motion study. Design C remains a separate, unchanged edition. */
.edition-d .d-reviews-grid{display:grid;grid-auto-flow:column;grid-auto-columns:44%;grid-template-columns:none;gap:3%;text-align:left;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding-bottom:18px;max-width:100%;scrollbar-width:thin}
.edition-d .d-reviews-grid article{min-width:0;display:flex;flex-direction:column;align-items:flex-start;scroll-snap-align:start}
.edition-d .d-reviews-grid .d-client-quote{margin:36px 0 24px;flex:1}
.edition-d .d-reviews-grid blockquote{font-size:clamp(22px,2vw,28px)}
@media(max-width:700px){.edition-d .d-reviews-grid{grid-auto-columns:86%;gap:20px}}
.edition-d .d-review-controls{display:flex;justify-content:flex-end;gap:12px;margin-top:16px}
.edition-d .d-review-controls button{min-width:44px;min-height:44px;border:1px solid var(--line);background:transparent;color:inherit;font-size:22px;cursor:pointer}
.edition-d .d-review-controls button:disabled{opacity:.3;cursor:default}
.edition-d .d-review-controls button:focus-visible,.edition-d .d-reviews-grid:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.edition-d .d-client-quote{max-width:760px;margin:38px auto 24px}
.edition-d .d-client-quote blockquote{margin:0;font-family:var(--serif);font-size:clamp(22px,2.5vw,32px);line-height:1.8}
.edition-d .d-client-quote figcaption{margin-top:24px;font-size:14px}
.edition-d .d-client-quote small{display:block;margin-top:6px;font-size:12px;color:var(--muted)}
.edition-d .d-review-open{width:auto;background:none;border:0;border-bottom:1px solid currentColor;padding:10px 0;min-height:44px;color:inherit;font:inherit;font-size:14px;cursor:pointer}
.edition-d .d-review-open img[hidden]{display:none}
.edition-d .d-review-open:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.edition-d .gallery.d-product-gallery>.zoom{width:100%;margin:0;padding:0!important;min-width:0}
.edition-d .gallery.d-product-gallery>.zoom img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.edition-d article.d-landscape-chapter.d-chapter{height:auto;padding-bottom:90px}
.edition-d .d-landscape-chapter.d-chapter .d-stage{position:relative;top:auto;height:auto;display:block;padding:0}
.edition-d .d-landscape-chapter .c-chapter-copy{margin-bottom:35px}
.edition-d .d-landscape-chapter.d-chapter .d-stage .c-chapter-picture{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:3/2}
.edition-d .d-landscape-chapter.d-chapter .c-chapter-picture>img{transform:none!important;object-fit:contain}
.edition-d .d-real-gallery{grid-template-columns:1fr;max-width:1400px;margin:auto}
.edition-d .d-real-gallery .zoom{padding-top:0!important}
.edition-d .d-real-gallery .zoom img{height:auto;max-height:90svh;object-fit:contain}
.edition-d .d-real-gallery .d-landscape-work img{max-height:none}
.edition-d .portfolio-item img.d-supplied-photo{height:auto;max-height:600px;object-fit:contain}
.edition-d .d-heading-text{display:inline-block;max-width:100%;transform-origin:0 50%}
.edition-d .c-chapter{display:block}
.edition-d .d-stage{display:grid;grid-template-columns:.75fr 1.25fr;gap:8%;align-items:start}
.edition-d .c-chapter-kimono .d-stage{grid-template-columns:1.15fr .85fr}
.edition-d .c-chapter-copy{position:static}
.edition-d .c-section-title h2{line-height:1.5}
.edition-d .c-commercial figure{overflow:hidden}
.edition-d .c-commercial figure>img,.edition-d .c-story-picture>img{transform-origin:50% 50%}
.edition-d .d-shichigosan{padding:90px 8% 30px;background:var(--c-gray);scroll-margin-top:90px}
.edition-d .d-shichigosan .c-chapter-copy h2{font-size:clamp(40px,5vw,76px);letter-spacing:-.025em;overflow-wrap:anywhere;line-height:1.3}
.edition-d .d-753-visual{min-width:0;width:100%}
.edition-d .d-753-visual .c-chapter-picture img{object-position:75% center}
.edition-d .d-753-demo{display:block;font-size:12px;line-height:1.8;color:var(--muted);margin-top:14px}
.edition-d .d-menu-commercial{margin-top:20px;padding-top:18px;border-top:1px solid #ffffff30}
.edition-d #menu .d-menu-commercial>div a{font-size:14px;padding:7px 0 7px 16px}
@media(min-width:1001px) and (min-height:640px) and (prefers-reduced-motion:no-preference){.c-motion .edition-d .d-stage .d-753-visual .c-chapter-picture{height:calc(100svh - 205px)}}
@media(max-width:600px){.edition-d .d-shichigosan{padding:65px 8% 0}.edition-d .d-shichigosan .c-chapter-copy h2{font-size:48px}.edition-d .d-753-visual .c-chapter-picture{height:460px}}
@media(prefers-reduced-motion:no-preference){
 .c-motion .edition-d .d-heading-text{opacity:var(--heading-opacity,1);transform:translateY(var(--heading-y,0px)) scale(var(--heading-scale,1));will-change:transform,opacity}
 .c-motion .edition-d [data-photo-reveal]>img{clip-path:inset(var(--photo-inset,0%) 0);transform:scale(var(--photo-scale,1));will-change:transform,clip-path}
 .c-motion .edition-d .c-chapter-picture{clip-path:inset(var(--chapter-inset,0%) 0);will-change:clip-path}
 .c-motion .edition-d .c-chapter-picture>img{transform:scale(var(--chapter-scale,1))!important;will-change:transform}
 .c-motion .edition-d .c-chapter-copy>p,.c-motion .edition-d .c-chapter-copy>.text-link{transform:translateY(var(--copy-y,0px));opacity:var(--copy-opacity,1)}
 .edition-d .d-stage:focus-within .c-chapter-copy>.text-link{opacity:1!important;transform:none!important}
}
@media(min-width:1001px) and (min-height:640px) and (prefers-reduced-motion:no-preference){
 .c-motion .edition-d .d-chapter{height:170svh;padding:0 0 40px}
 .c-motion .edition-d .d-stage{position:sticky;top:80px;height:calc(100svh - 80px);gap:8%;align-items:center;padding:30px 0}
 .c-motion .edition-d .d-stage .c-chapter-copy{position:static;padding-top:0}
 .c-motion .edition-d .d-stage .c-chapter-picture{height:calc(100svh - 140px);max-height:920px;min-height:0;width:100%}
 .c-motion .edition-d .c-chapter-kimono .c-chapter-copy{grid-column:2;grid-row:1}
 .c-motion .edition-d .c-chapter-kimono .c-chapter-picture{grid-column:1;grid-row:1}
 .c-motion .edition-d .c-chapter-family .c-chapter-picture>img{object-position:58% center}
 .c-motion .edition-d .c-chapter-copy h2{font-size:clamp(60px,7.5vw,115px)}
}
@media(max-width:1000px){
 .edition-d .d-stage{gap:6%}
 .edition-d .c-chapter-copy{align-self:center}
}
@media(max-width:800px){
 .edition-d .d-stage{grid-template-columns:.8fr 1.2fr}
 .edition-d .c-chapter-kimono .d-stage{grid-template-columns:1.15fr .85fr}
}
@media(max-width:800px) and (prefers-reduced-motion:no-preference){
 .c-motion .edition-d .c-hero-frame{transform:scale(var(--frame-scale,1))!important}
 .c-motion .edition-d .c-hero-frame>img{transform:scale(var(--image-scale,1.22))!important}
 .c-motion .edition-d .c-hero-title{transform:translateY(var(--title-y,0px))!important;opacity:var(--title-opacity,1)!important}
 .c-motion .edition-d .c-hero-title:focus-within{opacity:1!important;transform:none!important}
}
@media(max-width:600px){
 .edition-d .d-stage,.edition-d .c-chapter-kimono .d-stage{display:flex;flex-direction:column;gap:30px;width:100%}
 .edition-d .c-chapter{padding-bottom:70px}
 .edition-d .c-chapter-copy{align-self:stretch}
 .edition-d .c-chapter-kimono .c-chapter-picture{width:86%;align-self:flex-end}
 .edition-d .c-edition{gap:10px}
 .edition-d .c-edition>div{gap:15px}
 .edition-d .c-edition>span{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
 .edition-d .d-heading-text,.edition-d .c-chapter-copy>p,.edition-d .c-chapter-copy>.text-link{opacity:1!important;transform:none!important;will-change:auto}
 .edition-d .c-chapter-picture,.edition-d [data-photo-reveal]>img{clip-path:none!important;transform:none!important;will-change:auto}
 .edition-d .d-chapter{height:auto}
 .edition-d .d-stage{position:static;height:auto}
}

/* Position the supplied wedding photograph and keep the couple's faces clear. */
.edition-d .c-hero-frame>img{object-position:50% 52%}
.edition-d .c-hero-title{left:6%;right:auto;bottom:12%;width:36%}
.edition-d .c-hero-title h1{font-size:clamp(38px,4.5vw,72px);letter-spacing:0}
@media(max-width:800px){
 .edition-d .c-hero-frame>img{object-position:52% center}
 .edition-d .c-hero-title{left:7%;right:7%;bottom:14%;width:auto}
 .edition-d .c-hero-title h1{font-size:clamp(36px,9vw,56px);margin-top:12px}
 .edition-d .c-hero-title h1 span{margin-top:10px}
 .edition-d .c-hero-title>p{font-size:23px;margin-top:16px;max-width:310px}
 .edition-d .c-actions{margin-top:18px}
 .edition-d .c-hero-foot{bottom:16px}
}
/* Keep the floating booking control clear of the hero's existing actions. */
@media(max-width:800px){
 .edition-d.home .mobile-book{visibility:hidden;opacity:0;pointer-events:none}
 .d-past-hero .edition-d.home .mobile-book{visibility:visible;opacity:1;pointer-events:auto}
 .edition-d .mobile-book{bottom:calc(16px + env(safe-area-inset-bottom,0px));min-height:44px}
 .edition-d .c-actions{flex-wrap:wrap;column-gap:22px;row-gap:12px;align-items:center}
 .edition-d .c-actions>a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
 .edition-d footer{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}
 .edition-d:has(#menu:not([hidden])) .mobile-book,.edition-d:has(dialog[open]) .mobile-book{visibility:hidden;pointer-events:none}
}

/* Keep all family members inside the supplied portrait and wide shrine frame. */
.edition-d #shichi-go-san .c-chapter-picture{height:auto;min-height:0;max-height:none;aspect-ratio:3/2}
.edition-d .c-chapter-family.d-chapter .d-stage .c-chapter-picture{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:1366/2048;justify-self:center;background:transparent}
.edition-d .c-chapter-family .c-chapter-picture>img.d-supplied-photo{display:block;width:100%;height:auto;object-fit:contain;object-position:center;transform:none!important}
@media(min-width:1001px) and (min-height:640px) and (prefers-reduced-motion:no-preference){.c-motion .edition-d .c-chapter-family.d-chapter .d-stage .c-chapter-picture{max-width:calc((100svh - 140px)*1366/2048)}}
/* Preserve the complete horizontal proposal photograph in the story cover. */
.edition-d .c-story-picture{height:auto;width:100%;aspect-ratio:3/2}
.edition-d .c-story-picture>img.d-supplied-photo{object-fit:contain;transform:none!important}
/* An editorial photo sequence with original image proportions. */
.edition-d .d-story-chapter{width:84%;max-width:1280px;margin:0 auto;padding:35px 0 85px}
.edition-d .d-story-chapter h2{font-family:var(--serif);font-size:clamp(28px,3.6vw,48px);line-height:1.5;margin:0 0 36px}
.edition-d .d-story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px 32px;align-items:start}
.edition-d .d-story-shot{display:block;width:100%;min-width:0;padding:0;border:0;background:transparent;color:inherit;cursor:pointer}
.edition-d .d-story-shot.wide{grid-column:1/-1}
.edition-d .d-story-shot img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.edition-d .d-story-shot:focus-visible{outline:2px solid currentColor;outline-offset:6px}
.edition-d.d-proposal-story .page-intro h1{line-height:1.25;overflow-wrap:break-word}
.edition-d .d-story-finale .portrait{grid-column:1/-1;width:58%;margin:0 auto}
.edition-d .d-story-back{display:block;width:84%;max-width:1280px;margin:0 auto 70px}
.edition-d.d-story-index .d-story-chapter h2{margin-top:30px;margin-bottom:20px}
@media(max-width:700px){.edition-d .d-story-grid{grid-template-columns:1fr;gap:30px}.edition-d .d-story-finale .portrait{width:100%}.edition-d .d-story-chapter{padding:20px 0 50px}.edition-d .d-story-chapter h2{margin-bottom:24px}}
/* Wedding selections: wide scenes and paired portraits, without cropping. */
.edition-d .gallery:is(.d-wedding-gallery,.d-kimono-gallery){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px 32px;align-items:start}
.edition-d .gallery:is(.d-wedding-gallery,.d-kimono-gallery)>.zoom{width:100%;min-width:0;margin:0;padding:0!important}
.edition-d .gallery:is(.d-wedding-gallery,.d-kimono-gallery)>.zoom img{width:100%;height:auto;max-height:none;object-fit:contain}
.edition-d :is(.d-wedding-gallery,.d-kimono-gallery)>.d-landscape-work{grid-column:1/-1}
.edition-d .gallery:is(.d-wedding-gallery,.d-kimono-gallery)>.d-solo-portrait{grid-column:1/-1;width:60%;justify-self:center}
.edition-d :is(.d-wedding-gallery,.d-kimono-gallery)>.zoom:focus-visible{outline:2px solid currentColor;outline-offset:6px}
@media(max-width:800px){.edition-d .gallery:is(.d-wedding-gallery,.d-kimono-gallery){grid-template-columns:minmax(0,1fr);gap:30px}.edition-d .gallery:is(.d-wedding-gallery,.d-kimono-gallery)>.d-solo-portrait{width:100%}}

/* Balanced story cover: larger photograph left, quieter copy right. */
.edition-d.home .c-story{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:center;gap:7%;padding:110px 8%}
.edition-d.home .c-story-picture{display:block;width:100%;height:auto;aspect-ratio:3/2}
.edition-d.home .c-story-picture>img.d-supplied-photo{display:block;width:100%;height:auto}
.edition-d.home .c-story-copy{min-width:0;padding:0}
.edition-d.home .c-story-copy h2{font-size:clamp(32px,3.8vw,54px)}
.edition-d.home .c-story-copy p{font-size:16px}
@media(max-width:600px){
 .edition-d.home .c-story{display:flex;flex-direction:column;align-items:stretch;padding:65px 6%;gap:32px}
 .edition-d.home .c-story-copy{padding-left:6%}
 .edition-d.home .c-story-copy h2{font-size:35px}
}

/* A consistent heading rhythm and more legible language navigation. */
.edition-d.home .languages{font-size:14px}
html:lang(zh) .edition-d.home :is(.c-section-title,.c-collections,.testimonials,.closing) h2{font-size:clamp(36px,4.5vw,64px);line-height:1.5}
@media(max-width:600px){
 html:lang(zh) .edition-d.home :is(.c-section-title,.c-collections,.testimonials,.closing) h2{font-size:35px}
 .edition-d.home .languages{gap:8px;white-space:nowrap}
 .edition-d.home .header-right{gap:12px}
}
@media(max-width:360px){
 .edition-d.home header{padding-left:4%;padding-right:4%;gap:8px}
 .edition-d.home header .brand{font-size:16px}
 .edition-d.home .header-right{gap:8px}
}

/* All portrait categories flow naturally; only the opening hero stays pinned. */
.c-motion .edition-d.home .d-chapter{height:auto;padding-bottom:80px}
.c-motion .edition-d.home .d-chapter .d-stage{position:relative;top:auto;height:auto;padding:0;align-items:center}
.c-motion .edition-d.home .d-chapter .d-stage .c-chapter-picture{height:auto;min-height:0;aspect-ratio:auto}
.c-motion .edition-d.home .d-chapter .c-chapter-picture>img{display:block;width:100%;height:auto;transform:none!important}
@media(max-width:600px){.c-motion .edition-d.home .d-chapter{padding-bottom:70px}}
