/* Reading stays stable while visible; only re-entry and intentional catchcopy wipes replay. */
.copy-line{position:relative;display:inline-block;vertical-align:top;isolation:isolate}
.copy-text{display:block;position:relative}
.copy-line::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,#007fae,#28b9e5);transform:scaleX(0);transform-origin:left;z-index:3;pointer-events:none}
.copy-first{display:block;width:max-content;max-width:100%}
.copy-row{display:flex;align-items:baseline}
.copy-armed .copy-text{opacity:0}
.copy-prepare .hero-copy .copy-text,.copy-prepare .home-intro [data-copy-follow],.home-intro[data-copy-sequence="pending"] [data-copy-follow]{opacity:0}
.home-intro[data-copy-sequence="complete"] [data-copy-follow]{animation:hero-follow .7s ease both}
.home-intro[data-copy-sequence="complete"] .intro-english{animation-delay:.12s}
@keyframes hero-follow{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
.hero-copy{--copy-duration:1.45s}
.copy-playing .copy-text{animation:copy-type var(--copy-duration,1.65s) both;animation-delay:var(--copy-delay,0ms)}
.copy-playing .copy-line::after{animation:copy-cover var(--copy-duration,1.65s) cubic-bezier(.65,0,.2,1) both;animation-delay:var(--copy-delay,0ms)}
@keyframes copy-type{0%,42%{opacity:0}43%,100%{opacity:1}}
@keyframes copy-cover{0%{transform:scaleX(0);transform-origin:left}37%,51%{transform:scaleX(1);transform-origin:left}52%{transform-origin:right;transform:scaleX(1)}100%{transform:scaleX(0);transform-origin:right}}
.home-about h3>.copy-line{padding:0;background:none;border-radius:2px}
.home-about h3 .copy-text{padding:12px 16px 16px;background:var(--gradient);color:#fff;white-space:normal}
.home-about h3 .copy-text::after{display:none}
.news-progress{position:absolute;inset:-3px;width:calc(100% + 6px);height:calc(100% + 6px);rotate:-90deg;overflow:visible;pointer-events:none}
.news-progress circle{fill:none;stroke-width:2}
.news-progress-track{stroke:#c9e5ef}
.news-progress-fill{stroke:#008eba;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--news-progress,0))}
.ticker-controls [data-ticker-next]{position:relative;border:0;background:#edf8fd}
.ticker-controls [data-ticker-next]:hover{scale:1;background:#d4f1fc}
.modal-image-pending{opacity:0;background:#e4f2f7;transition:opacity .4s}
.modal-image-pending.modal-image-ready{opacity:1}
@media(max-width:1000px){
 .reveal-pending{transition-duration:1.05s,1.25s;transform:translateY(22px)}
 .reveal-pending.is-visible{transform:none}
 .risks-page .risk-card.reveal-pending{transition-duration:1s,1.25s,.3s}
 img[data-illustration]{transition:opacity 1.2s ease,scale 1.5s cubic-bezier(.2,.65,.2,1)}
 .art-prepare img[data-illustration][data-art-initial]:not(.art-ready){scale:.9}
 .mobile-nav-link__current{border:0;border-radius:0;padding:0;font-size:10px;opacity:.8}
 .mobile-menu__online{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;margin-top:18px;border:1px solid #c9f2ff80;border-radius:8px;background:#00577e38;color:#fff;opacity:0;translate:0 12px;transition:opacity .3s,translate .3s}
 .mobile-menu__online small{display:block;font-size:11px;color:#def7ff;margin-bottom:3px}
 .mobile-menu__online strong{display:block;font-size:16px;font-weight:600;line-height:1.6}
 .mobile-menu__online>span:last-child{font-size:26px}
 .menu-is-open .mobile-menu__online{opacity:1;translate:0 0;transition:opacity .45s .7s,translate .55s cubic-bezier(.22,.65,.32,1) .7s}
 .mobile-menu__online:focus-visible{outline-color:#fff}
 .home-intro .hero-orb{animation:hero-cloud 14s ease-in-out infinite alternate}
 .home-intro .orb-two{animation-duration:19s;animation-delay:-7s;animation-direction:alternate-reverse}
 .about-hero,.guidance-hero,.risks-page .risk-hero,.recruit-page .rec-hero,.news-hero__inner,.contact-hero__inner{isolation:isolate;overflow:hidden}
 .about-hero::before,.guidance-hero::before,.risks-page .risk-hero::before,.recruit-page .rec-hero::before,.news-hero__inner::before,.contact-hero__inner::before{content:'';position:absolute;inset:-45%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 72% 30%,#63cce94d,transparent 50%),radial-gradient(ellipse at 27% 75%,#fff9,transparent 55%);animation:fv-cloud 18s ease-in-out infinite alternate}
}
@keyframes menu-cloud-one{from{translate:-16px -12px;scale:1}to{translate:22px 26px;scale:1.08}}
@keyframes menu-cloud-two{from{translate:22px -20px;scale:1.04}to{translate:-28px 18px;scale:.97}}
@keyframes hero-cloud{from{translate:-18px -12px;scale:.98}to{translate:24px 18px;scale:1.08}}
@keyframes fv-cloud{from{translate:-3% 0;rotate:-7deg}to{translate:4% 5%;rotate:9deg}}
@media(max-width:700px){
 .copy-row{display:block}.hero-copy .copy-line{display:table;max-width:100%}.hero-copy .copy-first{width:auto}
 .home-about{display:grid;grid-template-columns:minmax(0,1fr) 96px;column-gap:16px;row-gap:28px;align-items:center}
 .home-about>.english-heading{grid-column:1/-1;grid-row:1;justify-self:center}
 .home-about-message{display:contents}
 .home-about-message>h3{grid-column:1/-1;grid-row:2;display:flex;gap:8px;justify-self:stretch}
 .home-about h3>.copy-line{max-width:100%;white-space:normal}
 .home-about h3 .copy-text{padding:10px 10px 13px;line-height:1.5;text-wrap:balance}
 .home-about-message>p{grid-column:1;grid-row:3;max-width:none;font-size:16px;line-height:2;text-align:left}
 .home-about>.text-link{grid-column:1/-1;grid-row:4;justify-self:center;margin-top:2px}
 .home-about .home-about-art{grid-column:2;grid-row:3;align-self:center;height:178px;width:96px;max-width:none;position:relative;inset:auto;margin:0;overflow:visible}
 .home-about .home-about-art .person-art,.home-about .home-about-art .woman-art,.home-about .home-about-art .shield-three,.home-about .home-about-art .shield-four{display:none}
 .home-about .home-about-art .pair-art{position:absolute;inset:34px auto auto 0;width:96px;height:110px}
 .home-about .home-about-art .shield-one{position:absolute;inset:0 auto auto 12px;width:24px;height:24px}
 .home-about .home-about-art .shield-two{position:absolute;inset:auto 3px 0 auto;width:25px;height:25px}
 .home-about .about-orbit{top:190px;bottom:auto;left:50%;height:360px;opacity:.22}
 .home-empathy{height:510px}
 .empathy-copy{top:-25px;right:22px;gap:12px}
 .empathy-copy p{font-size:21px;line-height:1.2;letter-spacing:.055em;padding:12px 9px 9px}
 .empathy-copy p+p{margin-top:26px}
 .mobile-menu__inner{padding-top:20px;padding-bottom:max(26px,env(safe-area-inset-bottom))}
 .mobile-menu__intro{font-size:15px;line-height:1.8;margin-bottom:16px}
 .mobile-nav-link{min-height:60px;padding:8px 0}.mobile-nav-link__ja{font-size:18px}
 .mobile-menu__contact{margin-top:18px}.mobile-menu__cta{min-height:70px;padding:12px 22px}
 .ticker-controls{gap:12px}.ticker-controls [data-ticker-next]{width:34px;height:34px}
}
@media(max-width:359px){.home-about{grid-template-columns:minmax(0,1fr) 80px;gap:24px 12px}.home-about .home-about-art{width:80px;height:154px}.home-about .home-about-art .pair-art{width:80px;height:94px;top:29px}.home-about-message>p{font-size:15px;line-height:2}.empathy-copy p{font-size:20px}}
@media(prefers-reduced-motion:reduce){.copy-armed .copy-text,.copy-playing .copy-text{opacity:1;animation:none}.copy-line::after{display:none}.reveal-pending,.risks-page .risk-card.reveal-pending{opacity:1;transform:none;transition:none}.art-prepare img[data-illustration],.art-prepare img[data-illustration][data-art-initial]:not(.art-ready){opacity:1;translate:none;scale:1;transition:none}.mobile-menu,.menu-is-open .mobile-menu{clip-path:none;transition:none}.mobile-menu__scene i,.home-intro .hero-orb,.about-hero::before,.guidance-hero::before,.risks-page .risk-hero::before,.recruit-page .rec-hero::before,.news-hero__inner::before,.contact-hero__inner::before{animation:none!important;will-change:auto}}
/* Travel across the whole word on mobile, so both the beginning and ending pass into view. */
@media(max-width:1000px){.rec-job-marquee,.about-philosophy-word{left:0!important;transform:none!important;width:max-content;max-width:none}}
@media(max-width:700px){.empathy-marquee{animation-duration:26s}}
.section-motion-paused .copy-playing .copy-text,.section-motion-paused .copy-playing .copy-line::after{animation-play-state:paused}
.section-motion-paused .home-intro [data-copy-follow]{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.copy-prepare .hero-copy .copy-text,.home-intro [data-copy-follow]{opacity:1!important;animation:none!important;translate:none!important}}
@media(min-width:1001px){.intro-english.reveal-pending,.intro-english.reveal-pending.is-visible{transform:rotate(90deg)}}
