/* Scroll entrances share one calm rhythm across all pages. */
main{overflow-x:clip}
.reveal{--reveal-x:0px;--reveal-y:30px;transition:opacity .85s ease,transform .85s cubic-bezier(.22,.68,.3,1);transition-delay:var(--reveal-delay,0ms)}
.reveal[data-motion="left"]{--reveal-x:-42px;--reveal-y:0px}
.reveal[data-motion="right"]{--reveal-x:42px;--reveal-y:0px}
.reveal.is-pending{opacity:0;transform:translate(var(--reveal-x),var(--reveal-y))}
.reveal.is-visible,.reveal:focus-within{opacity:1;transform:translate(0,0)}
.parallax-layer{translate:0 var(--parallax-y,0px)}
@media(max-width:680px){.reveal{--reveal-y:22px}.reveal[data-motion="left"]{--reveal-x:-24px}.reveal[data-motion="right"]{--reveal-x:24px}}
@media print{.reveal,.reveal.is-pending{opacity:1;transform:none;transition:none}.parallax-layer{translate:none}}

header .brand{display:block;letter-spacing:.035em;font-size:1rem;line-height:1.55;flex-shrink:1;min-width:0}header .brand-tagline{display:block;font-size:.875rem;font-weight:600;color:var(--muted);letter-spacing:.035em}header .brand .brand-name{display:block;font-size:1.25rem;font-weight:800;color:var(--blue);letter-spacing:.06em;margin-top:2px}
.reveal{transition-duration:1.1s;--reveal-y:42px}.reveal[data-motion="left"]{--reveal-x:-54px}.reveal[data-motion="right"]{--reveal-x:54px}
@media(max-width:680px){header .brand-tagline{font-size:.75rem}header .brand .brand-name{font-size:1.0625rem}.hero h1{font-size:clamp(1.9rem,8vw,2.75rem);line-height:1.5}.hero h1 em{white-space:normal}.reveal{--reveal-y:36px}.reveal[data-motion="left"]{--reveal-x:-38px}.reveal[data-motion="right"]{--reveal-x:38px}}

/* More pronounced entrances on touch screens, with a gentle reduced-motion variant. */
.reveal{transition:opacity 1.3s ease,transform 1.3s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms);--reveal-y:78px}.reveal[data-motion="left"]{--reveal-x:-90px}.reveal[data-motion="right"]{--reveal-x:90px}
.hero-slide-title{animation-duration:1.65s;animation-delay:.2s}
@media(max-width:680px){.reveal{--reveal-y:68px}.reveal[data-motion="left"]{--reveal-x:-70px}.reveal[data-motion="right"]{--reveal-x:70px}}
@keyframes hero-gentle-in{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{--reveal-y:14px;transition:opacity .9s ease,transform .9s ease!important}.reveal[data-motion="left"]{--reveal-x:-14px}.reveal[data-motion="right"]{--reveal-x:14px}.hero-slide-title{animation:hero-gentle-in 1s ease both!important}}
@media print{.reveal,.reveal.is-pending{opacity:1;transform:none;transition:none!important}.parallax-layer{translate:none!important}.hero-slide-title{animation:none!important}}

/* Increase movement amplitude by 30%, keeping the existing rhythm. */
.reveal.is-pending{transform:translate(calc(var(--reveal-x) * 1.3),calc(var(--reveal-y) * 1.3))}
@keyframes hero-slide-in{from{opacity:0;transform:translateX(130vw)}to{opacity:1;transform:translateX(0)}}
@keyframes hero-gentle-in{from{opacity:0;transform:translateX(23.4px)}to{opacity:1;transform:translateX(0)}}
.reveal:focus-within{transform:translate(0,0)}
@media print{.reveal.is-pending{transform:none}}

/* Photographic hero: live text above the original landscape image. */
.keyvisual{padding-top:32px}.hero-visual{position:relative}.keyvisual h1{position:absolute;left:44px;top:28px;z-index:2;font-size:clamp(2.5rem,4.8vw,4rem);font-weight:600;line-height:1.4;letter-spacing:.015em;margin:0;color:#092d46}.kv-photo{margin:0;overflow:hidden;border-radius:6px}.kv-photo img{display:block;width:100%;height:auto}.kv-copy{text-align:center;max-width:800px;margin:32px auto 0}.kv-theme{font-size:1.15rem;letter-spacing:.1em;font-weight:600;margin:0 0 18px}.kv-copy .intro{max-width:none;margin:0 0 24px;line-height:1.9}.keyvisual .hero-foot{margin-top:36px}
@media(max-width:680px){.keyvisual{padding:30px 0 36px}.keyvisual h1{position:relative;left:auto;top:auto;font-size:clamp(1.9rem,8vw,2.75rem);font-weight:600;line-height:1.5;margin:0 0 24px}.kv-copy{margin-top:28px}.kv-theme{font-size:1rem;margin-bottom:14px}.kv-copy .intro{font-size:1rem}.kv-copy .btn{width:100%;max-width:360px}.kv-photo{border-radius:5px}}
/* Background layers move independently of the content. */
.has-parallax-background{position:relative;isolation:isolate;overflow:hidden;overflow:clip}.has-parallax-background>.wrap{position:relative;z-index:1}.section-parallax-background{position:absolute;z-index:0;pointer-events:none;inset:-180px -12%;background:radial-gradient(ellipse at 10% 30%,#b4d9ef85 0,transparent 58%),radial-gradient(ellipse at 92% 85%,#76b1d660 0,transparent 62%);}
.connection .section-parallax-background,.dark .section-parallax-background{background:radial-gradient(ellipse at 0% 20%,#4d92b780 0,transparent 65%),radial-gradient(ellipse at 95% 90%,#061a3780 0,transparent 58%)}
.personal .section-parallax-background{opacity:.7}
@media print{.section-parallax-background{display:none}}

.keyvisual .kv-copy .intro{margin-bottom:0}.keyvisual{padding-bottom:56px}@media(max-width:680px){.keyvisual{padding-bottom:40px}}

/* Mobile: longer, clearly visible entrances and deeper scroll movement. */
@media(max-width:680px){
 .kv-photo.parallax-layer{aspect-ratio:1566/1046;translate:none}
 .kv-photo.parallax-layer img{width:100%;height:100%;object-fit:cover;scale:1.5;translate:0 var(--parallax-y,0px)}
 .section-parallax-background{inset:-380px -16%}
}
@media(max-width:680px) and (prefers-reduced-motion:no-preference){
 .reveal{--reveal-y:140px;transition:opacity 1.2s ease,transform 1.6s cubic-bezier(.18,.7,.22,1);transition-delay:var(--reveal-delay,0ms)}
 .reveal[data-motion="left"]{--reveal-x:-110px}
 .reveal[data-motion="right"]{--reveal-x:110px}
 .hero-slide-title{animation-duration:2s}
}
@media(max-width:680px) and (prefers-reduced-motion:reduce){
 .kv-photo.parallax-layer img{scale:1.08}
}
@media print{.kv-photo.parallax-layer img{scale:none;translate:none}}
