.hero{--edge:28%;--head-size:clamp(130px,23svh,280px)}
.photo-window{inset:0}.shot{position:absolute;inset:0;opacity:0;object-position:52% 46%;transform:scale(1.02)}.shot.active{opacity:1}.shot:nth-child(2){object-position:56% 25%}.shot:nth-child(3){object-position:53% 46%}
.type{transition:none}.type-top{bottom:-.05em}.type-bottom{top:-.17em}.hero[data-scene="1"] .type{justify-content:center;gap:.24em;letter-spacing:-.015em}.hero[data-scene="1"] .type-top{bottom:8px}.hero[data-scene="1"] .type-bottom{top:4px}
.masthead{right:auto;padding-right:12px}.photo-caption{transition:none}.photo-caption p{font-size:clamp(24px,2.55vw,44px)}
.review-actions{align-items:center}#play-status{font-size:12px;line-height:1.5;color:#b5b7bc;min-width:100px}.review .review-actions button{min-width:96px}
@media(max-width:767px){.hero{--edge:24%;--head-size:clamp(76px,15.8svh,126px)}.shot:nth-child(1){object-position:51% 45%}.shot:nth-child(2){object-position:63% 24%}.shot:nth-child(3){object-position:55% 45%}.review-actions{display:flex;flex-wrap:wrap;width:100%;gap:8px}.review .review-actions button{padding:0 12px;min-width:90px}#play-status{margin-left:auto;min-width:0;font-size:12px}.photo-caption p{font-size:21px}.hero[data-scene="1"] .type-top{display:none}.hero[data-scene="1"] .type-bottom{display:none}}
@media(prefers-reduced-motion:reduce){.shot{transform:none!important}}

/* Text ribbons are independent of the photo timeline and share its pause control. */
.type{display:block}.type-track{display:flex;width:max-content;gap:max(24px,4cqw);will-change:transform}.hero{container-type:inline-size}
/* FVは帯の高さから計算した文字サイズを使い、下層CTAの指定を継承しない。 */
.hero .type-track{font:inherit;letter-spacing:inherit}
.type-copy{display:flex;flex:0 0 auto;justify-content:space-between;width:calc(100cqw - 56px);gap:16px}
.type .word{display:inline-flex;white-space:nowrap;flex:none}.type .glyph{display:inline-block;line-height:inherit;will-change:transform}
.type-top .glyph{transform-origin:50% 87%}.type-bottom .glyph{transform-origin:50% 19%}
.hero[data-scene="1"] .type-copy{justify-content:center;gap:.24em}.hero[data-scene="1"] .type-copy:not(:first-child){visibility:hidden}
@media(min-width:1600px){.type-copy{width:calc(100cqw - 80px)}}
@media(max-width:767px){.type-copy{width:calc(100cqw - 24px)}#play-status{max-width:120px}}
@media(prefers-reduced-motion:reduce){.type-track,.type .glyph{transform:none!important}.type-copy:not(:first-child){visibility:hidden}}

/* Bare copy: no box or shadow; contrast comes from the photo treatment. */
.photo-caption p{background:none;padding:0;color:#fff;text-shadow:none;box-shadow:none}
.photo-window::after{content:"";position:absolute;inset:var(--photo-edge,28%) 0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.60),rgba(0,0,0,.40) 28%,transparent 64%)}
.dock .trial{background:#fff}
@media(max-width:767px){.photo-window::after{background:linear-gradient(0deg,rgba(0,0,0,.68),rgba(0,0,0,.38) 36%,transparent 72%)}}
