:root{--ink:#283d38;--gold:#927947;--cream:#f5f5ec;--line:rgba(40,61,56,.22);--serif:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif;--sans:'Yu Gothic','Hiragino Kaku Gothic ProN',sans-serif;--gutter:clamp(24px,4.5vw,88px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#b3b8a5 #edf1e9}body{margin:0;background:#e9f0e9;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button{border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #947c3b;outline-offset:7px}button:disabled{cursor:default}em{font-style:normal}button,a{text-underline-offset:5px}::selection{background:#e7d799;color:#253931}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:10px;left:10px;z-index:100;background:var(--cream);padding:14px;transform:translateY(-200%)}.skip:focus{transform:none}
.scenery{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:linear-gradient(180deg,#d8eaf0,#edf1e9 65%,#f5ecda)}#world{width:100%;height:100%;display:block;opacity:0;transition:opacity 1.6s}body.world-ready #world{opacity:1}.atmosphere{position:absolute;inset:0;background:linear-gradient(90deg,rgba(242,245,232,.58),rgba(242,245,232,.30) 25%,transparent 56%),linear-gradient(0deg,rgba(246,245,230,.75),transparent 19%,transparent 90%,rgba(238,242,232,.25));transition:opacity 1s}.film-grain{position:absolute;inset:0;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.93' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.6' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.sky-fallback{position:absolute;inset:0;overflow:hidden;opacity:1;transition:opacity 1.4s}.world-ready .sky-fallback{opacity:0}.sky-fallback i{position:absolute;right:12%;top:22%;width:36vw;height:36vw;max-width:650px;max-height:650px;border:14px solid #e3d4a8;border-radius:50%;box-shadow:inset 8px 3px 17px #fff,18px 28px 60px #96b5ba55,0 0 70px #fff9;transform:rotate(-20deg) rotateY(35deg)}.sky-fallback i:nth-child(2){top:37%;right:8%;width:38vw;height:9vw;transform:rotate(-17deg);border-width:2px;box-shadow:0 0 14px #fff;background:#fff5}.sky-fallback i:nth-child(3){top:75%;right:-10%;width:75vw;height:20vw;background:#fafbf199;border:0;box-shadow:0 -35px 80px #fff;transform:rotate(-10deg)}
.header{position:fixed;z-index:12;inset:0 0 auto;padding:30px var(--gutter);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:12px;align-items:center}.brand svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:1}.brand>span{font-family:Georgia,serif;font-size:29px;letter-spacing:.18em;line-height:1.05}.brand small{display:block;font-family:Arial,sans-serif;font-size:7px;letter-spacing:.15em;margin-top:8px}.header nav{display:flex;gap:40px;align-items:center}.text-button{font-size:11px;letter-spacing:.04em;padding:10px 0}.text-button span{margin-left:16px}.text-button:hover{color:#876a30}.menu-open{width:44px;height:44px;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center}.menu-open span{height:1px;width:26px;background:currentColor;transition:width .3s}.menu-open:hover span:last-child{width:17px}
.journey{height:1040vh;position:relative}.scene{position:fixed;inset:0;display:flex;align-items:center;opacity:0;visibility:hidden;pointer-events:none;z-index:2;padding:120px var(--gutter) 150px;will-change:opacity}.scene.active{pointer-events:auto;visibility:visible}.scene-inner{max-width:680px;transform:translateY(0);will-change:transform}.eyebrow{font-family:var(--sans);font-size:11px!important;font-weight:500;letter-spacing:.14em;line-height:1.7!important;margin:0 0 33px!important;display:flex;align-items:center;gap:14px}.eyebrow span:not(.tiny-sun){font-family:Arial,sans-serif;font-size:9px;opacity:.65;letter-spacing:.2em;margin-left:8px}.tiny-sun{font-size:22px;color:var(--gold);line-height:1}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;font-feature-settings:'palt';letter-spacing:.025em}h1{font-size:clamp(64px,6.8vw,120px);line-height:1.3;margin:0 0 28px;letter-spacing:.07em}h1 em{padding-left:.45em}h2{font-size:clamp(42px,4.1vw,73px);line-height:1.5;margin:0 0 27px}h2 em{color:#716135}.scene p:not(.eyebrow){font-size:14px;line-height:2.3;letter-spacing:.09em;margin-bottom:30px}.hero .scene-inner{margin-top:12px}.hero-copy{font-size:13px!important;letter-spacing:.09em!important}.journey-start{display:inline-flex;align-items:center;gap:19px;font-size:12px;letter-spacing:.08em;margin-top:10px}.round-arrow{display:grid;place-items:center;width:62px;height:62px;border:1px solid #7e8c7580;border-radius:50%;font-size:25px;font-family:Arial;transition:background .4s,transform .4s}.journey-start:hover .round-arrow{background:#f6f2dba6;transform:rotate(45deg)}.journey-start small{display:block;font-size:9px;margin-top:8px;letter-spacing:.13em;opacity:.7}.scene-caption{position:absolute;right:var(--gutter);top:49%;writing-mode:vertical-rl;letter-spacing:.3em;font-size:8px;color:#52675e;opacity:.8}.chapter-detail{font-size:11px;border-bottom:1px solid var(--line);padding:12px 0 14px;display:flex;align-items:center;gap:46px;letter-spacing:.05em}.chapter-detail span{font-family:Arial;font-size:19px;font-weight:200}.chapter-detail:hover span{transform:rotate(90deg);transition:transform .3s}.chapter-detail:hover{border-color:var(--gold)}.light-interaction{position:absolute;left:67%;top:68%;display:flex;align-items:center;gap:15px;font-size:11px;letter-spacing:.1em}.light-symbol{font-size:35px;border:1px solid #ac995399;border-radius:50%;width:74px;height:74px;display:grid;place-items:center;background:#ffffef4d;box-shadow:0 0 35px #ffe8a98c;transition:transform 1s,box-shadow 1s}.light-interaction small{display:block;font-size:7px;margin-top:6px;letter-spacing:.15em}.light-interaction[aria-pressed=true] .light-symbol{transform:rotate(90deg);box-shadow:0 0 60px #ffe991;background:#fff5be}.solid-button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--ink);color:var(--cream);padding:20px 26px;font-size:12px;letter-spacing:.05em;min-height:58px;transition:background .3s,transform .3s}.solid-button:hover{background:#496355;transform:translateY(-2px)}.solid-button span{font-size:20px;line-height:1}.finale .scene-inner{max-width:760px}.finale h2{font-size:clamp(42px,4.5vw,80px)}.final-service{display:block;font-size:11px;padding:18px 0;border-bottom:1px solid var(--line);margin:0 0 24px}.replay{font-size:10px;opacity:.7;letter-spacing:.06em}.end-credit{position:absolute;bottom:140px;right:var(--gutter);font-size:8px;letter-spacing:.12em}
.journey-footer{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:25px var(--gutter) 30px;gap:35px;pointer-events:none}.journey-footer>*{pointer-events:auto}.chapter-status{display:flex;align-items:center;gap:16px;min-width:176px}#chapter-number{font:45px Georgia,serif;letter-spacing:-.055em}.chapter-label{font-size:10px;line-height:1.7;letter-spacing:.1em}.chapter-label small{display:block;font-size:7px;letter-spacing:.17em;opacity:.65}.chapter-nav{display:flex;gap:8px;align-items:center;max-width:440px;width:38%;height:44px}.chapter-nav a{position:relative;flex:1;display:block;height:44px;min-width:22px}.chapter-nav a:before{content:'';position:absolute;top:22px;left:0;right:0;height:1px;background:#84948566}.chapter-nav a:after{content:'';width:5px;height:5px;position:absolute;left:0;top:20px;border-radius:50%;background:#9ba897;transition:width .4s,background .4s}.chapter-nav a[aria-current]:before{background:#687f56}.chapter-nav a[aria-current]:after{background:#937a3e;width:7px;height:7px;top:19px}.chapter-nav span{position:absolute;top:3px;font-family:Arial,sans-serif;font-size:8px;letter-spacing:.05em;opacity:0;transition:opacity .3s}.chapter-nav a:hover span,.chapter-nav a[aria-current] span{opacity:1}.experience-controls{display:flex;align-items:center;gap:22px;min-width:176px;justify-content:flex-end}.experience-controls button{display:flex;gap:9px;align-items:center;min-width:44px;min-height:44px;padding:5px 0}.control-label{font-size:8px;white-space:nowrap;letter-spacing:.06em}.motion-icon{font-size:24px}.equalizer{display:flex;gap:3px;align-items:center;height:18px}.equalizer i{width:1px;height:4px;background:currentColor}.equalizer i:nth-child(2){height:13px}.equalizer i:nth-child(3){height:9px}.equalizer i:nth-child(4){height:16px}#sound-toggle[aria-pressed=true] .equalizer i{animation:soundwave 1s alternate infinite}#sound-toggle[aria-pressed=true] .equalizer i:nth-child(2){animation-delay:-.6s}#sound-toggle[aria-pressed=true] .equalizer i:nth-child(3){animation-delay:-.3s}.scroll-cue{position:fixed;z-index:9;bottom:116px;left:50%;transform:translateX(-50%);font:8px Arial,sans-serif;letter-spacing:.25em;display:flex;align-items:center;gap:15px;opacity:.72;pointer-events:none;transition:opacity .4s}.scroll-cue i{font-size:19px;font-style:normal;animation:downward 2s infinite}.in-story .scroll-cue{opacity:0}@keyframes downward{0%,100%{transform:translateY(-3px);opacity:.5}50%{transform:translateY(4px);opacity:1}}@keyframes soundwave{to{transform:scaleY(.35)}}
dialog{border:1px solid #d8decf;background:#f5f5ee;color:var(--ink);padding:60px;max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;box-shadow:0 20px 120px #14312730;scrollbar-width:thin}dialog::backdrop{background:#233e3355;backdrop-filter:blur(10px)}dialog h2{font-size:38px;line-height:1.55;margin-bottom:20px}dialog p{font-size:12px;line-height:2.1}.dialog-close{position:absolute;top:18px;right:22px;width:44px;height:44px;font-size:30px;line-height:1;font-family:Arial;font-weight:200;z-index:2}.dialog-close:hover{transform:rotate(90deg);transition:transform .3s}.detail-dialog{width:min(570px,calc(100% - 32px));padding:58px 45px 44px}.detail-dialog h2{font-size:30px}.detail-dialog ul{list-style:none;padding:0;margin:28px 0 34px}.detail-dialog li{border-top:1px solid var(--line);padding:16px 0;font-size:12px;line-height:1.8}.detail-dialog li:before{content:'＋';margin-right:10px;color:var(--gold)}.detail-dialog .eyebrow{font-size:9px!important;margin-bottom:24px!important}.menu-dialog{width:calc(100% - 48px);max-width:1120px;padding:80px;gap:65px}.menu-dialog[open]{display:grid;grid-template-columns:1fr 1fr}.menu-heading h2{font-size:64px}.menu-chapters{padding-top:0;display:grid;grid-template-columns:1fr 1fr;column-gap:36px}.menu-chapters a{display:flex;align-items:center;font-size:15px;font-family:var(--serif);gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.menu-chapters small{font:11px Georgia;color:var(--gold)}.menu-chapters span{font:14px Arial;margin-left:auto}.menu-chapters a:hover{color:var(--gold)}.menu-actions{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px}.menu-actions button{font-size:11px;padding:15px 0}.service-dialog{width:min(900px,calc(100% - 32px));padding:70px}.service-dialog h2{font-size:45px}.service-lead{margin-bottom:42px}.service-list article{display:flex;gap:25px;border-top:1px solid var(--line);padding:29px 0}.service-list article>span{font:23px Georgia;color:var(--gold)}.service-list h3{font-family:var(--serif);font-weight:400;font-size:23px;margin-bottom:12px}.service-list p{margin-bottom:12px}.service-list small{font-size:9px;letter-spacing:.06em;color:#637668}.service-bottom{margin-top:20px;padding-top:28px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.service-bottom p{margin:0}.consult-dialog{width:min(650px,calc(100% - 28px));padding:60px 50px}.consult-dialog h2{font-size:37px}.consult-dialog>p:not(.eyebrow){font-size:11px}.consult-dialog form{margin-top:30px}.consult-dialog form>label,.consult-dialog legend{display:block;font-size:12px;font-weight:500;margin-bottom:13px;letter-spacing:.015em}.consult-dialog select{font-family:inherit;border:1px solid #c8cdbc;border-radius:0;color:var(--ink);background:#fafbf5;width:100%;padding:15px;font-size:12px;margin-bottom:27px}.consult-dialog fieldset{border:0;margin:0 0 24px;padding:0}.choice{display:flex;gap:12px;border:1px solid #c8cdbc;padding:15px;margin-bottom:8px;font-size:11px;align-items:center;cursor:pointer}.choice:has(:checked){border-color:#647b59;background:#e7ecd9}.choice input{accent-color:#5c7252}.form-note{font-size:9px!important;color:#687569;line-height:1.9!important;margin:20px 0 0}.result-kicker{color:var(--gold);font-size:10px!important;border-top:1px solid var(--line);padding-top:27px;margin-top:30px}#result-title{font-size:26px;font-family:var(--serif);font-weight:400;line-height:1.7}#result-steps{padding-left:24px;margin:25px 0}#result-steps li{padding:10px 0;font-size:12px;line-height:1.9}#result-rhythm{padding:18px;background:#e9eddf;font-size:11px}.result-actions{display:flex;align-items:center;gap:24px}.no-script{position:relative;padding:40px;background:#f5f5ea}.reduced *{animation:none!important;scroll-behavior:auto!important}.reduced #world{transition:none}.world-fallback .atmosphere{opacity:.5}
@media(min-width:1650px){.scene-inner{margin-left:2vw}.scene{padding-top:150px}.header{padding-top:40px}.journey-footer{padding-bottom:40px}.hero-copy{font-size:15px!important}.scene p:not(.eyebrow){font-size:16px}}
@media(max-width:900px){.header{padding-top:25px}.header nav{gap:20px}.scene{padding-bottom:140px}.scene-inner{max-width:550px}h2{font-size:46px}.atmosphere{background:linear-gradient(90deg,#f3f6e974,#f3f6e930 47%,transparent),linear-gradient(0deg,#f5f6e6bd,transparent 30%)}.chapter-status,.experience-controls{min-width:140px}.journey-footer{gap:20px}.menu-dialog{padding:65px 40px;gap:40px}.menu-heading h2{font-size:46px}.service-dialog{padding:55px 45px}}
@media(max-width:600px){:root{--gutter:24px}.header{padding:22px 24px}.brand svg{width:32px;height:32px}.brand>span{font-size:23px}.brand small{font-size:5.7px;margin-top:6px}.brand{gap:9px}.header .text-button{display:none}.header nav{gap:0}.menu-open{width:38px}.scene{padding:0 26px;align-items:flex-start}.scene-inner{margin-top:19vh!important;max-width:100%;width:100%}.hero .scene-inner{margin-top:22vh!important}.eyebrow{font-size:9px!important;margin-bottom:23px!important;letter-spacing:.08em;gap:8px}.eyebrow span:not(.tiny-sun){font-size:7px;letter-spacing:.14em}.tiny-sun{font-size:18px}h1{font-size:clamp(56px,14vw,82px);line-height:1.35;letter-spacing:.055em;margin-bottom:23px}h1 em{padding-left:.3em}.hero-copy{font-size:11px!important;line-height:2.25!important}.hero .hero-copy{margin-bottom:15px}.journey-start{gap:13px;font-size:10px;margin-top:0}.round-arrow{width:48px;height:48px;font-size:22px}.journey-start small{font-size:8px;margin-top:7px}h2{font-size:clamp(33px,8.6vw,48px);line-height:1.6;margin-bottom:20px}.scene p:not(.eyebrow){font-size:11px;line-height:2.2;letter-spacing:.065em;margin-bottom:15px}.chapter-detail{font-size:10px;gap:30px;padding-top:8px;padding-bottom:11px}.scene-caption{right:20px;top:42%;font-size:6px;letter-spacing:.2em}.atmosphere{background:linear-gradient(180deg,#eef4e954,#eff4e579 22%,#f3f5e38a 48%,transparent 68%,#f5f4e3ab 92%),linear-gradient(90deg,#f3f6e954,transparent 80%)}.journey-footer{padding:17px 24px 20px;flex-wrap:wrap;gap:0;align-items:center}.chapter-status{min-width:100px;gap:12px;width:50%;order:1}#chapter-number{font-size:34px}.chapter-label{font-size:9px}.chapter-label small{font-size:6px}.experience-controls{width:50%;min-width:unset;order:2;gap:18px}.control-label{font-size:7px}.chapter-nav{order:3;width:100%;max-width:none;height:29px;gap:9px;margin-top:6px}.chapter-nav a{height:29px}.chapter-nav a:before{top:20px}.chapter-nav a:after{top:18px}.chapter-nav a[aria-current]:after{top:17px}.chapter-nav span{top:1px;font-size:7px}.scroll-cue{bottom:129px;font-size:6px;gap:10px;letter-spacing:.17em}.scroll-cue i{font-size:15px}.light-interaction{top:auto;bottom:23%;left:auto;right:27px;gap:11px;font-size:9px}.light-symbol{width:56px;height:56px;font-size:29px}.light-interaction small{font-size:6px}.finale .scene-inner{margin-top:19vh!important}.finale h2{font-size:clamp(32px,8.7vw,46px)}.solid-button{font-size:10px;padding:16px 21px;min-height:52px;gap:25px}.finale p{font-size:11px}.final-service{font-size:9px;margin-bottom:17px;padding:15px 0}.replay{font-size:9px}.end-credit{right:26px;bottom:145px;font-size:6px}.menu-dialog{padding:55px 25px 28px;width:calc(100% - 24px);max-height:calc(100dvh - 24px);gap:20px}.menu-dialog[open]{grid-template-columns:1fr}.menu-heading .eyebrow{margin-bottom:9px!important}.menu-heading h2{font-size:36px;margin-bottom:0}.menu-heading>p:not(.eyebrow){display:none}.menu-chapters{column-gap:23px}.menu-chapters a{font-size:14px;padding:16px 0;gap:12px}.menu-actions{gap:15px;padding-top:10px}.menu-actions button{font-size:9px;text-align:left;line-height:1.8}.dialog-close{top:12px;right:14px}.detail-dialog{padding:55px 28px 35px}.detail-dialog h2{font-size:26px}.detail-dialog .solid-button{font-size:10px}.service-dialog{padding:56px 27px 35px}.service-dialog h2{font-size:31px}.service-lead{font-size:11px;margin-bottom:25px}.service-list article{gap:18px;padding:23px 0}.service-list article>span{font-size:18px}.service-list h3{font-size:19px;line-height:1.7}.service-list p{font-size:11px;line-height:2}.service-list small{font-size:8px;line-height:1.8;display:block}.service-bottom{display:block}.service-bottom p{font-size:11px;margin-bottom:20px}.consult-dialog{padding:55px 26px 30px}.consult-dialog h2{font-size:31px}.consult-dialog>p:not(.eyebrow){font-size:10px}.consult-dialog form>label,.consult-dialog legend{font-size:11px;line-height:1.7}.choice{font-size:10px;padding:14px 10px;gap:8px}.consult-dialog select{font-size:12px}.result-actions{gap:16px}#result-title{font-size:23px}}
@media(max-height:720px) and (min-width:601px){.header{padding-top:18px}.brand svg{width:34px;height:34px}.brand>span{font-size:24px}.scene{padding-top:100px;padding-bottom:115px}.eyebrow{margin-bottom:20px!important}h1{font-size:66px;margin-bottom:14px}h2,.finale h2{font-size:43px;margin-bottom:15px}.scene p:not(.eyebrow){font-size:12px;line-height:2;margin-bottom:17px}.round-arrow{width:48px;height:48px}.journey-footer{padding-bottom:20px}.scroll-cue{bottom:90px}.end-credit{bottom:110px}.journey-start{margin-top:0}}
@media(max-height:650px) and (max-width:600px){.scene-inner,.hero .scene-inner,.finale .scene-inner{margin-top:17vh!important}h1{font-size:50px;margin-bottom:13px}h2,.finale h2{font-size:30px;line-height:1.45}.eyebrow{margin-bottom:12px!important}.scene p:not(.eyebrow){font-size:10px;line-height:1.9}.journey-footer{padding-bottom:9px}.scroll-cue{display:none}.hero-copy{font-size:10px!important}.journey-start small{display:none}.final-service{margin-bottom:10px}.replay{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-height:500px) and (orientation:landscape){.header{padding:12px 30px}.brand svg{width:27px;height:27px}.brand>span{font-size:20px}.brand small{font-size:5px}.scene{padding:70px 36px 75px;align-items:flex-start}.scene-inner,.hero .scene-inner,.finale .scene-inner{margin-top:0!important;max-height:calc(100dvh - 145px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;max-width:560px;padding-right:20px}.eyebrow{font-size:8px!important;margin-bottom:10px!important}h1{font-size:42px;line-height:1.2;margin-bottom:10px}h2,.finale h2{font-size:30px;line-height:1.35;margin-bottom:12px}.scene p:not(.eyebrow),.hero-copy{font-size:10px!important;line-height:1.8!important;margin-bottom:12px}.round-arrow{width:36px;height:36px;font-size:19px}.journey-start{font-size:9px;margin-top:0}.journey-start small{display:none}.journey-footer{padding:8px 30px;flex-wrap:nowrap;gap:22px}.chapter-status{width:auto;min-width:120px;order:0}#chapter-number{font-size:30px}.chapter-nav{order:0;width:35%;margin:0}.experience-controls{width:auto;min-width:130px;order:0}.scroll-cue,.end-credit{display:none}.light-interaction{top:55%;bottom:auto;right:10%;left:auto}.light-symbol{width:54px;height:54px}.solid-button{font-size:10px;padding:12px 20px;min-height:45px}.final-service{margin-bottom:13px;padding:10px 0}.replay{font-size:9px}}
@media(max-width:600px) and (min-height:651px){.hero .scene-inner{margin-top:18vh!important}}

/* v2 — 章ごとに距離、余白、左右、色、動作のテンポを変える。 */
.journey{height:760vh}
.reduced *,.reduced *::before,.reduced *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body[data-chapter="1"]{--ink:#354a3b;--gold:#997244}
body[data-chapter="2"]{--ink:#254b53;--gold:#397e91}
body[data-chapter="3"]{--ink:#563f39;--gold:#af6848}
body[data-chapter="4"]{--ink:#234e43;--gold:#638356}
body[data-chapter="5"]{--ink:#3f4869;--gold:#7c799c}
body[data-chapter="6"],body[data-chapter="7"]{--ink:#50402c;--gold:#a37a39}
.header,.journey-footer,.scene{transition:color .6s}
.scene-right{justify-content:flex-end}
.chapter-transition{position:fixed;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;pointer-events:none;opacity:0;color:var(--ink);text-shadow:0 1px 35px #ffffeb,0 2px 65px #ffffeb;background:radial-gradient(ellipse at 50% 50%,#fbf7ee38,transparent 60%);will-change:opacity,transform}
#transition-number{font-size:9px;letter-spacing:.35em}
#transition-phrase{font-family:var(--serif);font-size:clamp(37px,6.4vw,108px);letter-spacing:.055em;line-height:1.4;text-align:center}
.chapter-transition i{display:block;width:1px;height:52px;background:linear-gradient(var(--gold),transparent);margin-top:10px}
body[data-chapter="3"] .atmosphere{background:linear-gradient(270deg,#fff0e5b0,#fff0e560 32%,transparent 66%),linear-gradient(0deg,#fff4e5ac,transparent 19%)}
body[data-chapter="5"] .atmosphere{background:linear-gradient(270deg,#f1eef9c0,#f1eef962 32%,transparent 64%),linear-gradient(0deg,#eff1f2ac,transparent 19%)}
body[data-chapter="7"] .atmosphere{background:linear-gradient(180deg,#fff1d7b0,#fff1d770 35%,transparent 63%),linear-gradient(0deg,#fff2dba8,transparent 15%)}
.scene.active .eyebrow{animation:chapter-appear .6s both}
.scene.active h2{animation:chapter-appear .85s .08s both}
.scene.active .scene-inner>p:not(.eyebrow){animation:chapter-appear .8s .17s both}
.scene.active .chapter-detail{animation:chapter-appear .8s .25s both}
.light-interaction b{display:block;font-weight:400}
.light-interaction>span:last-child{padding:9px 12px;background:#fffaeccf;border:1px solid #fff9;backdrop-filter:blur(6px);box-shadow:0 2px 20px #36473508}
.light-interaction small{letter-spacing:.04em;line-height:1.7;font-family:var(--sans);font-size:8px;opacity:.8}
.light-interaction{gap:16px;white-space:nowrap;text-align:left}
.light-symbol{position:relative;background:#fffcdf66;border-color:var(--gold);color:var(--gold);box-shadow:0 0 40px #fff1c88c;font-family:var(--serif);font-weight:400}
.light-symbol:after{content:'';position:absolute;inset:-1px;border:1px solid var(--gold);border-radius:50%;opacity:0;transform:scale(1)}
.light-interaction.pulse .light-symbol:after{animation:light-pulse 1.8s ease-out 2}
.light-interaction[aria-pressed=true] .light-symbol{background:#fff2ba;box-shadow:0 0 70px #ffe592a6}
@keyframes chapter-appear{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@keyframes light-pulse{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(2)}}
@media(min-width:901px){
  .scene-right .scene-inner{width:38%;max-width:600px}
  #focus h2,#expression h2{font-size:clamp(62px,6vw,105px);line-height:1.25;letter-spacing:.055em}
  #focus .scene-inner{margin-top:10vh}
  #discovery .scene-inner{margin-top:12vh}
  #expression .scene-inner{margin-top:-5vh}
  #insight .scene-inner{margin-top:7vh}
  #insight h2{font-size:clamp(40px,4vw,68px)}
  #growth .scene-inner{margin-top:-5vh}
  #connection .scene-inner{margin-top:-7vh}
  #connection h2{font-size:clamp(44px,4.8vw,78px)}
  #expression .light-interaction{left:22%;top:75%}
  #focus .light-interaction{left:62%;top:74%}
  #growth .light-interaction{left:67%;top:73%}
}
@media(min-width:601px){
  body[data-chapter="1"] .atmosphere{background:linear-gradient(90deg,#faf0dcf0,#faf0dcc0 26%,#faf0dc50 42%,transparent 59%),linear-gradient(0deg,#f5f0dfac,transparent 18%)}
  body[data-chapter="3"] .atmosphere{background:linear-gradient(270deg,#fff0e5f2,#fff0e5d4 34%,#fff0e576 49%,transparent 66%),linear-gradient(0deg,#fff4e5ac,transparent 18%)}
  body[data-chapter="4"] .atmosphere{background:linear-gradient(90deg,#eaf3e5ed,#eaf3e5bf 26%,#eaf3e54d 43%,transparent 61%),linear-gradient(0deg,#eff4e7ac,transparent 18%)}
  body[data-chapter="5"] .atmosphere{background:linear-gradient(270deg,#f1eef9f2,#f1eef9d4 34%,#f1eef968 48%,transparent 66%),linear-gradient(0deg,#eff1f2ac,transparent 18%)}
  body[data-chapter="6"] .atmosphere{background:linear-gradient(90deg,#fff0daf0,#fff0dac9 26%,#fff0da52 42%,transparent 58%),linear-gradient(0deg,#fff0d8ac,transparent 18%)}
}
@media(min-width:601px){
  .finale{align-items:flex-start;justify-content:center;padding-top:14vh}
  .finale .scene-inner{text-align:center;margin:0;max-width:850px;width:100%}
  .finale .eyebrow{justify-content:center;font-size:9px!important;margin-bottom:18px!important}
  .finale h2{font-size:clamp(40px,4vw,65px);line-height:1.4;margin-bottom:16px}
  .finale p:not(.eyebrow){font-size:12px;line-height:2;margin-bottom:20px}
  .finale .solid-button{padding:17px 24px;min-height:54px;font-size:11px}
  .finale .final-service{display:inline-block;margin:0 0 0 25px;padding:13px 0;font-size:10px}
  .finale .replay{display:block;margin-top:20px;font-size:9px}
}
@media(min-width:601px) and (max-width:900px){.scene-right .scene-inner{width:46%;min-width:320px}#focus h2,#expression h2{font-size:56px}.scene-right .light-interaction{left:18%;right:auto;top:75%}.scene-right p{font-size:12px!important}}
@media(max-width:600px){
  .scene-right{justify-content:flex-start}
  .scene-inner{margin-top:17vh!important}
  .scene.active .scene-inner>p:not(.eyebrow){font-size:11px}
  #focus h2,#expression h2{font-size:clamp(44px,12vw,66px);line-height:1.2}
  #focus .eyebrow,#expression .eyebrow{margin-bottom:18px!important}
  #focus p:not(.eyebrow),#expression p:not(.eyebrow){margin-top:22px}
  #expression .scene-inner{text-align:right;max-width:100%}
  #expression .eyebrow,#expression .chapter-detail{justify-content:flex-end}
  #expression .chapter-detail{margin-left:auto}
  #insight .scene-inner{text-align:right}
  #insight .eyebrow{justify-content:flex-end}
  #insight .chapter-detail{margin-left:auto}
  #expression .light-interaction,#insight .light-interaction{left:26px;right:auto}
  .light-interaction{bottom:24%;top:auto;font-size:10px}
  .light-interaction small{font-size:7px}
  .light-symbol{width:57px;height:57px;font-size:30px}
  #transition-phrase{font-size:clamp(29px,8vw,45px);letter-spacing:.02em;padding:0 12px}
  #transition-number{font-size:7px;letter-spacing:.25em}
  .chapter-transition{gap:20px}.chapter-transition i{height:36px}
  body[data-chapter="1"] .atmosphere{background:linear-gradient(180deg,#faf0dcdb,#faf0dcf2 20%,#faf0dce6 44%,transparent 63%,#faf0dc8c)}
  body[data-chapter="2"] .atmosphere{background:linear-gradient(180deg,#eef5f5db,#eef5f5f2 20%,#eef5f5e6 44%,transparent 63%,#eef5f58c)}
  body[data-chapter="3"] .atmosphere{background:linear-gradient(180deg,#fff0e5db,#fff0e5f2 20%,#fff0e5e6 44%,transparent 63%,#fff1df8c)}
  body[data-chapter="4"] .atmosphere{background:linear-gradient(180deg,#eaf3e5db,#eaf3e5f2 20%,#eaf3e5e6 44%,transparent 63%,#eaf3e58c)}
  body[data-chapter="5"] .atmosphere{background:linear-gradient(180deg,#efedf5db,#efedf5f2 20%,#efedf5e6 44%,transparent 63%,#eef1f18c)}
  body[data-chapter="6"] .atmosphere{background:linear-gradient(180deg,#fff0dadb,#fff0daf2 20%,#fff0dae6 44%,transparent 63%,#fff0da8c)}
  body[data-chapter="7"] .atmosphere{background:linear-gradient(180deg,#fff1dadb,#fff1daf2 20%,#fff1dadb 44%,transparent 65%,#fff1da8c)}
  .finale .scene-inner{text-align:center;margin-top:17vh!important}
  .finale .eyebrow{justify-content:center;font-size:8px!important;margin-bottom:18px!important}
  .finale h2{font-size:clamp(29px,8.6vw,44px);line-height:1.5}
  .finale .final-service{margin:5px auto 16px;padding:12px 0}
  .finale .replay{display:block}
}
@media(max-height:720px) and (min-width:601px){#focus h2,#expression h2{font-size:56px}#discovery .scene-inner,#focus .scene-inner,#expression .scene-inner,#insight .scene-inner,#growth .scene-inner,#connection .scene-inner{margin-top:0}#connection h2,#insight h2{font-size:42px}.finale{padding-top:15vh}.finale h2{font-size:40px}.finale .eyebrow{margin-bottom:12px!important}.finale .replay{margin-top:12px}}
@media(max-height:650px) and (max-width:600px){#focus h2,#expression h2{font-size:38px}.scene-inner,.hero .scene-inner,.finale .scene-inner{margin-top:17vh!important}.finale .final-service{margin-bottom:10px}#focus p:not(.eyebrow),#expression p:not(.eyebrow){margin-top:14px}}
@media(max-height:500px) and (orientation:landscape){.scene-right .scene-inner{min-width:0;width:46%}.scene-inner,#discovery .scene-inner,#focus .scene-inner,#expression .scene-inner,#insight .scene-inner,#growth .scene-inner,#connection .scene-inner,.finale .scene-inner{margin-top:0!important}#focus h2,#expression h2{font-size:38px}#connection h2,#insight h2{font-size:30px}.finale{padding-top:70px}.finale h2{font-size:30px}.finale .eyebrow{margin-bottom:10px!important}.finale .solid-button{padding:11px 20px;min-height:44px;font-size:10px}.finale .final-service{font-size:9px;margin-left:20px}.finale .replay{margin-top:10px}.light-interaction,#focus .light-interaction,#growth .light-interaction{top:65%;bottom:auto}.scene-right .light-interaction{top:64%;left:14%}.chapter-transition{gap:15px}#transition-phrase{font-size:48px}.chapter-transition i{height:25px}}

/* v3 — 物語の伴走者が、街の光から静かに現れる。 */
.consultant-portrait{position:absolute;right:10vw;top:16vh;width:clamp(260px,min(30vw,43vh),420px);margin:0;pointer-events:none;opacity:0;isolation:isolate}
.consultant-portrait::before{content:"";position:absolute;inset:-8% -24% -8%;z-index:-1;background:radial-gradient(ellipse at 50% 48%,#fff3e5 20%,#fff3e5ed 45%,#fff3e599 61%,transparent 74%);filter:blur(12px)}
.portrait-image{position:relative;aspect-ratio:1;isolation:isolate}
.portrait-image::before{content:"";position:absolute;inset:0 -12% -3%;z-index:-1;background:radial-gradient(ellipse,#fff7e8 30%,#fff0ded1 52%,transparent 72%);filter:blur(10px)}
.portrait-image img{display:block;width:100%;height:auto;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse 73% 80% at 50% 39%,#000 37%,#000 50%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 73% 80% at 50% 39%,#000 37%,#000 50%,transparent 75%)}
.consultant-portrait figcaption{position:relative;margin-top:-8px;padding:5px 0 8px;text-align:center;color:#3d4336;text-shadow:0 1px 10px #fff9;background:linear-gradient(90deg,transparent,#fff3e5eb 18%,#fff3e5eb 82%,transparent)}
.portrait-kicker{display:block;font-size:8px;letter-spacing:.23em;margin-bottom:11px;color:#826d4a}
.portrait-name{font-family:var(--serif);font-size:24px;letter-spacing:.14em;display:block;line-height:1.3}
.portrait-name small{display:inline-block;margin-left:15px;font:9px var(--sans);letter-spacing:.06em;vertical-align:middle}
.portrait-message{display:block;margin-top:13px;font-size:10px;letter-spacing:.07em}
#growth.active .consultant-portrait{animation:consultant-emerge 1.5s .18s both}
@keyframes consultant-emerge{from{opacity:0;transform:translateY(32px);filter:blur(9px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.reduced #growth.active .consultant-portrait{opacity:1;transform:none;filter:none}
.loop-cue{position:absolute;left:50%;bottom:13vh;transform:translateX(-50%);display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.12em;white-space:nowrap;text-shadow:0 1px 12px #fff}
.loop-cue i{font-style:normal;font-size:18px;animation:loop-cue-drift 2.3s ease-in-out infinite}
@keyframes loop-cue-drift{50%{transform:translateY(5px)}}
@media(max-width:900px) and (min-width:601px){.consultant-portrait{right:7vw;width:clamp(220px,31vw,310px)}#growth .scene-inner{max-width:54%}}
@media(max-width:600px){
  .consultant-portrait{width:min(51vw,26vh);right:calc(50% - min(25.5vw,13vh));top:auto;bottom:23vh}
  .portrait-kicker{font-size:6px;margin-bottom:6px;letter-spacing:.18em}
  .portrait-name{font-size:19px}.portrait-name small{font-size:7px;margin-left:9px}
  .portrait-message{font-size:8px;margin-top:7px}
  #growth .light-interaction{top:auto;left:26px;right:auto;bottom:14.5vh}
  #growth .light-symbol{width:44px;height:44px;font-size:25px}
  .loop-cue{bottom:17vh;font-size:7px;gap:8px;letter-spacing:.05em}
  .loop-cue i{font-size:15px}
  .finale .end-credit{bottom:21.5vh;right:0;left:0;text-align:center}
}
@media(max-height:650px) and (max-width:600px){.consultant-portrait{width:34vw;right:25px;bottom:24vh}.portrait-kicker{display:none}.portrait-name{font-size:16px}.portrait-name small{display:block;margin:6px 0 0;font-size:7px}.portrait-message{display:none}#growth .light-interaction{bottom:21vh;left:25px;gap:8px}#growth .light-interaction>span:last-child{max-width:124px;padding:7px;font-size:8px}#growth .light-interaction small{font-size:6px}.loop-cue{bottom:18vh}.finale .end-credit{display:none}}
@media(max-height:500px) and (orientation:landscape){.consultant-portrait{width:min(29vh,170px);right:21vw;top:18vh;bottom:auto}.portrait-kicker{font-size:6px;margin-bottom:5px}.portrait-name{font-size:16px}.portrait-name small{font-size:7px;margin-left:9px}.portrait-message{font-size:8px;margin-top:6px}#growth .scene-inner{max-width:48%}#growth .light-interaction{top:auto;bottom:16vh;left:auto;right:9vw}#growth .light-symbol{width:40px;height:40px;font-size:25px}#growth .light-interaction>span:last-child{padding:7px;font-size:8px}#growth .light-interaction small{font-size:6px}.loop-cue{left:auto;right:5vw;bottom:19vh;transform:none;font-size:8px}.finale .scene-inner{padding-bottom:4px}}
@media(prefers-reduced-motion:reduce){#growth.active .consultant-portrait{opacity:1;transform:none;filter:none}}
