/* FURUYA v26 motion system — 2026-09-28 */
:root{
  --motion-ease:cubic-bezier(.2,.75,.3,1);
  --motion-soft:cubic-bezier(.22,.61,.36,1);
  --motion-gold:#b98a2f;
  --motion-gold2:#d8b56a;
  --motion-navy:#0a2f5a;
}
.motion-page{overflow-x:hidden}
.motion-page .v25-reveal-target.reveal{opacity:1;transform:none}
.motion-page .v25-reveal-target.reveal.is-visible{opacity:1;transform:none}
.motion-page .hero{isolation:isolate}
.motion-page .hero .wrap{position:relative;z-index:2}
.motion-page .hero .eyebrow,.motion-page .hero h1,.motion-page .hero .gold-line,.motion-page .hero .lead,.motion-page .hero .badges,.motion-region-note{
  opacity:0;transform:translateY(18px);will-change:transform,opacity
}
.motion-page.motion-ready .hero .eyebrow{animation:heroIn .72s var(--motion-ease) .08s forwards}
.motion-page.motion-ready .hero h1{animation:heroIn .72s var(--motion-ease) .20s forwards}
.motion-page.motion-ready .hero .gold-line{animation:heroLine .72s var(--motion-ease) .34s forwards}
.motion-page.motion-ready .hero .lead{animation:heroIn .72s var(--motion-ease) .42s forwards}
.motion-page.motion-ready .motion-region-note{animation:heroIn .72s var(--motion-ease) .54s forwards}
.motion-page.motion-ready .hero .badges{animation:heroIn .72s var(--motion-ease) .62s forwards}
@keyframes heroIn{to{opacity:1;transform:none}}
@keyframes heroLine{0%{opacity:0;transform:translateY(10px) scaleX(.15);transform-origin:left}100%{opacity:1;transform:none}}
.motion-region-note{margin-top:15px;display:inline-flex;align-items:center;gap:9px;color:#365979;font-size:14px;font-weight:700;letter-spacing:.02em}
.motion-region-note::before{content:"";width:28px;height:1px;background:linear-gradient(90deg,var(--motion-gold),var(--motion-gold2));flex:none}

/* v26.2: no hero photo zoom. */
.motion-page .hero-photo,.motion-page .hero-composite{overflow:hidden}

.motion-reveal{opacity:0;transform:translateY(18px);transition:opacity .62s var(--motion-ease) var(--motion-delay,0s),transform .62s var(--motion-ease) var(--motion-delay,0s);will-change:transform,opacity}
.motion-reveal.motion-from-left{transform:translateX(-28px)}
.motion-reveal.motion-from-right{transform:translateX(28px)}
.motion-reveal.motion-scale{transform:scale(.965)}
.motion-reveal.is-motion-visible{opacity:1;transform:none}
.motion-reveal-group>*{opacity:0;transform:translateY(16px);transition:opacity .6s var(--motion-ease),transform .6s var(--motion-ease)}
.motion-reveal-group.is-motion-visible>*{opacity:1;transform:none}
.motion-reveal-group.is-motion-visible>*:nth-child(2){transition-delay:.08s}
.motion-reveal-group.is-motion-visible>*:nth-child(3){transition-delay:.16s}
.motion-reveal-group.is-motion-visible>*:nth-child(4){transition-delay:.24s}
.motion-reveal-group.is-motion-visible>*:nth-child(5){transition-delay:.32s}
.motion-reveal-group.is-motion-visible>*:nth-child(6){transition-delay:.40s}

/* staff / cards */
.motion-page .person.motion-person{overflow:hidden}
.motion-page .person.motion-person>img{opacity:0;transform:translateX(-28px);transition:opacity .7s var(--motion-ease),transform .7s var(--motion-ease)}
.motion-page .person.motion-person>div{opacity:0;transform:translateY(18px);transition:opacity .62s var(--motion-ease) .12s,transform .62s var(--motion-ease) .12s}
.motion-page .person.motion-person.is-motion-visible>img,.motion-page .person.motion-person.is-motion-visible>div{opacity:1;transform:none}
.motion-page .person.motion-person .career{position:relative;border-top:0;padding-top:18px}
.motion-page .person.motion-person .career::before{content:"";position:absolute;left:0;top:0;height:1px;width:100%;background:linear-gradient(90deg,var(--motion-gold),#e9d8b4);transform:scaleX(0);transform-origin:left;transition:transform .9s var(--motion-ease) .42s}
.motion-page .person.motion-person.is-motion-visible .career::before{transform:scaleX(1)}
.motion-page .service,.motion-page .photo-card,.motion-page .v25-card,.motion-page .check{transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}
@media(hover:hover){.motion-page .service:hover,.motion-page .photo-card:hover,.motion-page .v25-card:hover{transform:translateY(-4px);box-shadow:0 15px 30px rgba(8,35,61,.09);border-color:#cad7e2}}

/* visual story sections */
.motion-story{padding:78px 0;background:linear-gradient(180deg,#fff 0%,#f7fafc 100%);border-top:1px solid #e7edf2;border-bottom:1px solid #e7edf2;overflow:hidden}
.motion-story.ivory-story{background:linear-gradient(180deg,#fffdfa,#fbf7ef)}
.motion-story.green-story{background:linear-gradient(180deg,#fbfefc,#eef8f4)}
.motion-story-head{text-align:center;max-width:860px;margin:0 auto 38px}
.motion-story-head .kicker{display:block;margin-bottom:8px}
.motion-story-head h2{font-family:var(--serif);font-size:36px;line-height:1.45;font-weight:500;color:#17385f;margin:0 0 10px}
.motion-story-head p{margin:0;color:#60768a;font-size:15px}

/* homepage cycle */
.motion-cycle-wrap{max-width:860px;margin:0 auto;text-align:center}
.motion-cycle{position:relative;width:min(720px,86vw);height:560px;margin:0 auto;background:radial-gradient(circle at center,#fff 0 33%,rgba(255,255,255,.3) 34% 100%)}
.motion-cycle-ring{position:absolute;inset:50%;width:410px;height:410px;transform:translate(-50%,-50%) rotate(-90deg);overflow:visible}
.motion-cycle-ring circle{fill:none;stroke:#e1e9ef;stroke-width:2}
.motion-cycle-ring .draw{stroke:url(#cycleGold) #b98a2f;stroke-width:4;stroke-linecap:round;stroke-dasharray:1131;stroke-dashoffset:1131}
.motion-cycle.is-motion-visible .motion-cycle-ring .draw,.motion-cycle.is-replaying .motion-cycle-ring .draw{animation:drawCycle 5.12s var(--motion-soft) 0.288s forwards}
@keyframes drawCycle{to{stroke-dashoffset:0}}
.motion-cycle-dot{position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px;background:#c5963d;border-radius:50%;box-shadow:0 0 0 7px rgba(197,150,61,.16);opacity:0;transform-origin:5px 5px}
.motion-cycle.is-motion-visible .motion-cycle-dot,.motion-cycle.is-replaying .motion-cycle-dot{animation:orbitDot 5.12s linear 0.288s forwards}
@keyframes orbitDot{0%{opacity:0;transform:rotate(-90deg) translateX(205px)}5%{opacity:1}94%{opacity:1}100%{opacity:0;transform:rotate(270deg) translateX(205px)}}
.motion-cycle-center{position:absolute;left:50%;top:50%;width:230px;height:230px;transform:translate(-50%,-50%) scale(.92);border-radius:50%;display:grid;place-items:center;padding:26px;background:linear-gradient(135deg,#123f72,#082d54);color:#fff;box-shadow:0 22px 44px rgba(8,35,61,.18);opacity:0;transition:opacity 0.96s var(--motion-ease) 0.4s,transform 0.96s var(--motion-ease) 0.4s}
.motion-cycle.is-motion-visible .motion-cycle-center,.motion-cycle.is-replaying .motion-cycle-center{opacity:1;transform:translate(-50%,-50%) scale(1)}
.motion-cycle-center strong{font-family:var(--serif);font-size:23px;line-height:1.55;font-weight:600}.motion-cycle-center span{display:block;font-size:12px;opacity:.8;letter-spacing:.12em;margin-top:6px}
.motion-cycle-node{position:absolute;width:190px;min-height:92px;padding:16px 14px;background:#fff;border:1px solid #dbe5ed;border-radius:13px;box-shadow:0 12px 28px rgba(8,35,61,.06);display:grid;place-items:center;opacity:0;transform:translateY(10px) scale(.97);transition:opacity 0.72s var(--motion-ease),transform 0.72s var(--motion-ease),border-color 0.56s,box-shadow 0.56s}
.motion-cycle-node strong{font-family:var(--serif);font-size:19px;color:#17395f;font-weight:600}.motion-cycle-node small{display:block;color:#72869a;font-size:11px;letter-spacing:.08em;margin-top:4px}
.motion-cycle-node.n1{left:50%;top:0;transform:translate(-50%,10px) scale(.97)}
.motion-cycle-node.n2{right:0;top:50%;transform:translate(0,-50%) scale(.97)}
.motion-cycle-node.n3{left:50%;bottom:0;transform:translate(-50%,10px) scale(.97)}
.motion-cycle-node.n4{left:0;top:50%;transform:translate(0,-50%) scale(.97)}
.motion-cycle.is-motion-visible .motion-cycle-node,.motion-cycle.is-replaying .motion-cycle-node{opacity:1}
.motion-cycle.is-motion-visible .n1,.motion-cycle.is-replaying .n1{transform:translate(-50%,0) scale(1);transition-delay:0.448s}
.motion-cycle.is-motion-visible .n2,.motion-cycle.is-replaying .n2{transform:translate(0,-50%) scale(1);transition-delay:1.6s}
.motion-cycle.is-motion-visible .n3,.motion-cycle.is-replaying .n3{transform:translate(-50%,0) scale(1);transition-delay:2.752s}
.motion-cycle.is-motion-visible .n4,.motion-cycle.is-replaying .n4{transform:translate(0,-50%) scale(1);transition-delay:3.904s}

/* linear process diagrams */
.motion-process{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1080px;margin:0 auto;padding-top:8px}
.motion-process::before{content:"";position:absolute;left:10%;right:10%;top:48px;height:2px;background:#dce5ec;z-index:0}
.motion-process::after{content:"";position:absolute;left:10%;right:10%;top:48px;height:2px;background:linear-gradient(90deg,var(--motion-gold),var(--motion-gold2));transform:scaleX(0);transform-origin:left;z-index:1}
.motion-process.is-motion-visible::after{animation:processLine 2.56s var(--motion-ease) 0.608s forwards}
@keyframes processLine{to{transform:scaleX(1)}}
.motion-process-step{position:relative;z-index:2;text-align:center;opacity:0;transform:translateY(15px);transition:opacity 0.8s var(--motion-ease),transform 0.8s var(--motion-ease)}
.motion-process.is-motion-visible .motion-process-step{opacity:1;transform:none}
.motion-process.is-motion-visible .motion-process-step:nth-child(1){transition-delay:0.288s}.motion-process.is-motion-visible .motion-process-step:nth-child(2){transition-delay:0.96s}.motion-process.is-motion-visible .motion-process-step:nth-child(3){transition-delay:1.632s}.motion-process.is-motion-visible .motion-process-step:nth-child(4){transition-delay:2.304s}
.motion-process-icon{width:80px;height:80px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:#fff;border:2px solid #dfe7ee;box-shadow:0 10px 22px rgba(8,35,61,.06);color:#0d487e;font:700 18px Georgia,serif;transition:border-color 0.56s,box-shadow 0.56s,color 0.56s}
.motion-process.is-motion-visible .motion-process-step:nth-child(1) .motion-process-icon{transition-delay:0.48s}.motion-process.is-motion-visible .motion-process-step:nth-child(2) .motion-process-icon{transition-delay:1.152s}.motion-process.is-motion-visible .motion-process-step:nth-child(3) .motion-process-icon{transition-delay:1.824s}.motion-process.is-motion-visible .motion-process-step:nth-child(4) .motion-process-icon{transition-delay:2.496s}
.motion-process.is-motion-visible .motion-process-icon{border-color:#cba45b;box-shadow:0 10px 24px rgba(185,138,47,.12);color:#9a6c1c}
.motion-process-step strong{display:block;font-family:var(--serif);font-size:19px;color:#17395f}.motion-process-step span{display:block;font-size:13px;color:#6a7f92;line-height:1.7;margin-top:5px}

/* succession curved bridge */
.motion-bridge{position:relative;max-width:950px;height:285px;margin:0 auto}
.motion-bridge svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.motion-bridge path.base{fill:none;stroke:#e0e7eb;stroke-width:3}.motion-bridge path.draw{fill:none;stroke:#b98a2f;stroke-width:4;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900}
.motion-bridge.is-motion-visible path.draw{animation:drawBridge 2.48s var(--motion-soft) 0.56s forwards}@keyframes drawBridge{to{stroke-dashoffset:0}}
.motion-bridge-point{position:absolute;width:220px;text-align:center;opacity:0;transform:translateY(14px);transition:opacity 0.768s var(--motion-ease),transform 0.768s var(--motion-ease)}
.motion-bridge-point strong{display:block;font-family:var(--serif);font-size:20px;color:#694b18;background:#fffdfa;border:1px solid #eadcc0;border-radius:12px;padding:15px 12px;box-shadow:0 10px 24px rgba(105,75,24,.06)}
.motion-bridge-point span{display:block;font-size:12px;color:#7b6b50;margin-top:6px}.motion-bridge-point.p1{left:0;bottom:12px}.motion-bridge-point.p2{left:50%;top:0;transform:translate(-50%,14px)}.motion-bridge-point.p3{right:0;bottom:12px}
.motion-bridge.is-motion-visible .p1{opacity:1;transform:none;transition-delay:0.288s}.motion-bridge.is-motion-visible .p2{opacity:1;transform:translate(-50%,0);transition-delay:1.248s}.motion-bridge.is-motion-visible .p3{opacity:1;transform:none;transition-delay:2.208s}

/* FAQ */
.motion-page .faq details.motion-faq-item{padding:0 22px;overflow:hidden;transition:border-color .25s,box-shadow .25s,background .25s}
.motion-page .faq details.motion-faq-item[open]{border-color:#c9d8e4;box-shadow:0 10px 22px rgba(8,35,61,.055);background:#fff}
.motion-page .faq details.motion-faq-item summary{display:grid;grid-template-columns:32px 1fr 28px;gap:12px;align-items:center;list-style:none;padding:20px 0}.motion-page .faq details.motion-faq-item summary::-webkit-details-marker{display:none}
.motion-faq-q{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#edf4fa;color:#0d487e;font-weight:800}
.motion-faq-toggle{position:relative;width:22px;height:22px;font-size:0;justify-self:end}.motion-faq-toggle::before,.motion-faq-toggle::after{content:"";position:absolute;left:4px;right:4px;top:10px;height:2px;background:#315a7c;transition:transform .26s var(--motion-ease),opacity .26s}.motion-faq-toggle::after{transform:rotate(90deg)}details[open] .motion-faq-toggle::after{transform:rotate(90deg) scaleX(0);opacity:0}
.motion-faq-answer{display:grid!important;grid-template-rows:0fr;transition:grid-template-rows .26s var(--motion-ease)}.motion-faq-answer-inner{overflow:hidden}.motion-faq-answer-inner p{margin:0;padding:0 0 20px 44px;color:#5c7185}details[open]>.motion-faq-answer{grid-template-rows:1fr}

/* access */
.motion-map-frame{position:relative;overflow:hidden;border-radius:12px;box-shadow:0 14px 32px rgba(8,35,61,.07)}.motion-map-frame::after{content:"";position:absolute;inset:0;border:1px solid rgba(10,47,90,.08);border-radius:inherit;pointer-events:none;transform:scale(.985);opacity:0;transition:transform .6s var(--motion-ease),opacity .6s}.motion-map-frame.is-motion-visible::after{transform:scale(1);opacity:1}

@media(max-width:760px){
  .motion-story{padding:56px 0}.motion-story-head{margin-bottom:28px}.motion-story-head h2{font-size:29px}
  .motion-page .hero .wrap{padding-top:34px;padding-bottom:38px}.motion-page .hero-photo img,.motion-page .hero-composite img{transform:none!important;animation:none!important}
  .motion-cycle{width:100%;height:auto;display:grid;gap:12px;padding:0 0 8px}.motion-cycle-ring,.motion-cycle-dot{display:none}.motion-cycle-center{position:relative;left:auto;top:auto;width:190px;height:190px;transform:scale(.94);margin:0 auto 8px;order:0}.motion-cycle.is-motion-visible .motion-cycle-center,.motion-cycle.is-replaying .motion-cycle-center{transform:scale(1)}
  .motion-cycle-node{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:100%;min-height:76px;transform:translateY(12px)!important}.motion-cycle.is-motion-visible .motion-cycle-node,.motion-cycle.is-replaying .motion-cycle-node{transform:none!important}.motion-cycle-node::after{content:"↓";position:absolute;left:50%;bottom:-20px;transform:translateX(-50%);color:#b98a2f;font-size:18px}.motion-cycle-node.n4::after{content:"↺"}.motion-cycle-node.n1{order:1}.motion-cycle-node.n2{order:2}.motion-cycle-node.n3{order:3}.motion-cycle-node.n4{order:4}
  .motion-process{grid-template-columns:1fr;gap:14px;padding-left:0}.motion-process::before,.motion-process::after{left:39px;right:auto;top:40px;bottom:40px;width:2px;height:auto}.motion-process::after{transform:scaleY(0);transform-origin:top}.motion-process.is-motion-visible::after{animation:processLineY 2.56s var(--motion-ease) .608s forwards}@keyframes processLineY{to{transform:scaleY(1)}}.motion-process-step{display:grid;grid-template-columns:80px 1fr;gap:14px;text-align:left;align-items:center}.motion-process-icon{margin:0}.motion-process-step span{margin-top:2px}
  .motion-bridge{height:auto;display:grid;gap:16px}.motion-bridge svg{display:none}.motion-bridge-point{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:100%;transform:translateY(12px)!important}.motion-bridge.is-motion-visible .motion-bridge-point{transform:none!important}.motion-bridge-point:not(:last-child)::after{content:"↓";display:block;color:#b98a2f;font-size:18px;margin-top:8px}
  .motion-faq-answer-inner p{padding-left:0}
}
@media(prefers-reduced-motion:reduce){
  .motion-page *,.motion-page *::before,.motion-page *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .motion-reveal,.motion-reveal-group>*,.motion-page .hero .eyebrow,.motion-page .hero h1,.motion-page .hero .gold-line,.motion-page .hero .lead,.motion-page .hero .badges,.motion-region-note,.motion-page .person.motion-person>img,.motion-page .person.motion-person>div,.motion-cycle-node,.motion-cycle-center,.motion-process-step,.motion-bridge-point{opacity:1!important;transform:none!important}
  .motion-cycle-ring .draw,.motion-bridge path.draw{stroke-dashoffset:0!important}.motion-process::after{transform:none!important}.motion-cycle-dot{display:none!important}
}
