/* ピントの移り変わりで、ガラス・一滴・手元を一続きにする。 */
.luminous-journey { position: relative; }
.luminous-stage { position: relative; height: 100svh; min-height: 620px; overflow: hidden; isolation: isolate; background: #ded6ca; }
html.luminous-ready .luminous-journey { height: 250svh; }
html.luminous-ready .luminous-stage { position: sticky; top: 0; }
.luminous-scene { position: absolute; inset: 0; overflow: hidden; background: #e1d9cc; }
.luminous-scene picture { display: block; width: 100%; height: 100%; }
.luminous-scene img { height: 100%; width: 100%; object-fit: cover; object-position: 61% 50%; transform: scale(var(--scene-scale,1.01)); filter: blur(calc(var(--light-bloom,0) * 4px)); transition: filter 320ms ease-out; }
.luminous-scene[data-scene="0"] { opacity: var(--scene-0,1); }
.luminous-scene[data-scene="1"] { opacity: var(--scene-1,0); }
.luminous-scene[data-scene="2"] { opacity: var(--scene-2,0); }
.luminous-scene--drop { background: #e4dac8; }
.luminous-scene--drop img { width: 67%; margin-left: auto; object-position: 48% 64%; -webkit-mask-image: linear-gradient(90deg,transparent,#000 15%); mask-image: linear-gradient(90deg,transparent,#000 15%); }
.luminous-scene--hand { background: #e1d9cd; }
.luminous-scene--hand img { width: 64%; margin-left: auto; object-position: 54% 54%; -webkit-mask-image: linear-gradient(90deg,transparent,#000 15%); mask-image: linear-gradient(90deg,transparent,#000 15%); }
.luminous-title { position: absolute; z-index: 5; left: var(--gutter); top: 124px; }
.luminous-title .chapter-label { font-size: 9px; letter-spacing: .18em; margin-bottom: 15px; }
.luminous-title h2 { font-size: 18px; line-height: 1.8; letter-spacing: .055em; }
.luminous-words { position: absolute; z-index: 5; left: var(--gutter); top: 39%; width: 50%; height: 250px; pointer-events: none; }
.luminous-words p { position: absolute; inset: 0; font: 400 clamp(40px,4.5vw,70px)/1.75 var(--font-display); letter-spacing: .05em; }
.luminous-words [data-scene-caption="0"] { opacity: clamp(0,calc((var(--scene-0,1) - .58) * 2.381),1); }
.luminous-words [data-scene-caption="1"] { opacity: clamp(0,calc((var(--scene-1,0) - .58) * 2.381),1); }
.luminous-words [data-scene-caption="2"] { opacity: clamp(0,calc((var(--scene-2,0) - .58) * 2.381),1); }
.luminous-bottom { position: absolute; z-index: 5; left: var(--gutter); right: var(--gutter); bottom: 40px; display: flex; justify-content: space-between; align-items: flex-end; gap: 25px; }
.luminous-bottom > p { font-size: 11px; line-height: 2; letter-spacing: .05em; }
.luminous-bottom > span { font: italic 29px/1 var(--font-logo); }
/* 欧文の反復を整理し、章ごとの視線の速度を変える。 */
.concept-details { padding-top: 75px; padding-bottom: 82px; }
.concept-word { font-family: var(--font-display); font-size: clamp(29px,3.2vw,49px); line-height: 1.75; letter-spacing: .01em; }
.texture-copy { padding-top: 28px; }
.texture-copy .chapter-label { margin-top: 0; }
.daily-note { font: 400 clamp(23px,2.5vw,38px)/1.85 var(--font-display); color: var(--accent); padding-top: 12px; }
.care-aside { font: 400 14px/2.2 var(--font-display); padding-bottom: 14px; letter-spacing: .07em; }
html.luminous-paused .luminous-scene img { transform: none; }
html.editorial-motion-paused { scroll-behavior: auto; }
@media (max-width: 760px) {
  html.luminous-ready .luminous-journey { height: 220svh; }
  .luminous-stage { height: 100svh; min-height: 600px; }
  .luminous-title { top: 78px; }
  .luminous-title h2 { font-size: 14px; letter-spacing: .02em; }
  .luminous-title .chapter-label { font-size: 8px; margin-bottom: 10px; letter-spacing: .12em; }
  .luminous-scene--glass img { object-position: 50% 50%; }
  .luminous-scene--drop img { width: 100%; object-position: 58% 72%; -webkit-mask-image: none; mask-image: none; }
  .luminous-scene--hand img { width: 100%; object-position: 48% 55%; -webkit-mask-image: none; mask-image: none; }
  .luminous-words { top: auto; bottom: 143px; width: calc(100% - 50px); height: 120px; }
  .luminous-words p { font-size: clamp(30px,8vw,43px); line-height: 1.65; }
  .luminous-bottom { bottom: 33px; gap: 15px; }
  .luminous-bottom > p { font-size: 9px; line-height: 1.9; }
  .luminous-bottom > span { font-size: 22px; }
  .concept-details { padding-top: 45px; padding-bottom: 56px; }
  .concept-word { font-size: 28px; line-height: 1.7; margin-bottom: 30px; }
  .texture-copy { margin-top: 28px; }
  .daily-note { font-size: 24px; padding: 0; margin-bottom: 31px; }
  .care-aside { font-size: 12px; line-height: 2; margin-top: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .luminous-scene img { transform: none; transition: none; }
}

/* どの章からでも、サイト全体の動きを停止・再開できる。 */
.primary-nav { margin-right: 43px; }
.motion-toggle { position: fixed; z-index: 30; top: 21px; right: var(--gutter); display: grid; place-items: center; width: 28px; min-height: 44px; padding: 0; margin: 0; font-size: 0; border: 0; background: transparent; }
.motion-toggle::before { content: ''; display: block; width: 7px; height: 11px; border-left: 1px solid currentColor; border-right: 1px solid currentColor; }
.motion-toggle[aria-pressed="true"]::before { width: 0; height: 0; border-left: 8px solid currentColor; border-right: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
@media (max-width: 760px) {
  .primary-nav { margin-right: 31px; font-size: 8px; gap: 13px; }
  .motion-toggle { top: 11px; right: 16px; font-size: 0; }
  .site-header { padding-left: 20px; padding-right: 20px; }
}
