.kagabu-spring-intro{color-scheme:dark;--paper:#f1f1e6;--sage:#d2e4c7}.kagabu-spring-intro *{box-sizing:border-box}.kagabu-spring-intro{margin:0;background:#0b547f;color:var(--paper);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif}.kagabu-spring-intro button,.kagabu-spring-intro a{-webkit-tap-highlight-color:transparent}.kagabu-spring-intro button:focus-visible,.kagabu-spring-intro a:focus-visible{outline:2px solid #e6f5d5;outline-offset:5px}.kagabu-spring-intro .journey{height:440svh;position:relative}.kagabu-spring-intro .stage{height:100svh;position:sticky;top:0;overflow:hidden;isolation:isolate;background:#145c87}.kagabu-spring-intro canvas,.kagabu-spring-intro .layer{position:absolute;inset:0;width:100%;height:100%}.kagabu-spring-intro .world{visibility:hidden;pointer-events:none}.kagabu-spring-intro .header{position:absolute;z-index:5;top:0;left:0;right:0;padding:30px 5%;display:flex;align-items:center;justify-content:space-between}.kagabu-spring-intro .brand{font:22px Georgia,serif;letter-spacing:.075em}.kagabu-spring-intro .brand small{display:block;font:9px/1.6 sans-serif;letter-spacing:.16em;margin-top:6px}.kagabu-spring-intro .badge{font-size:9px;letter-spacing:.13em;border:1px solid #e6eed33d;border-radius:30px;padding:9px 13px;background:#0b2e2b16}.kagabu-spring-intro .intro{position:absolute;left:8%;top:24%;z-index:4;pointer-events:none;max-width:36%}.kagabu-spring-intro .eyebrow{font-size:10px;letter-spacing:.25em;color:#d2e4d4}.kagabu-spring-intro .intro h1{font:400 clamp(44px,5.7vw,86px)/1.42 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.10em;margin:23px 0}.kagabu-spring-intro .intro p{font-size:12px;line-height:2.2;letter-spacing:.10em;color:#dfebdd}.kagabu-spring-intro .side{position:absolute;right:8%;top:65%;z-index:4;text-align:right;font:400 clamp(24px,2.8vw,42px)/1.3 Georgia,serif;pointer-events:none}.kagabu-spring-intro .side small{display:block;margin-top:15px;font:10px/2 sans-serif;letter-spacing:.14em;color:#d0ded4}.kagabu-spring-intro .outro{position:absolute;left:8%;right:7%;top:22%;z-index:4;opacity:0;pointer-events:none;text-shadow:0 2px 30px #001c2677}.kagabu-spring-intro .outro h2{font:400 clamp(38px,5.3vw,79px)/1.16 Georgia,serif;letter-spacing:-.025em;margin:22px 0}.kagabu-spring-intro .outro p{font-size:13px;line-height:2.1;letter-spacing:.11em}.kagabu-spring-intro .outro .message{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(14px,1.5vw,21px);letter-spacing:.07em;max-width:650px}.kagabu-spring-intro .after .research-message{max-width:480px;text-wrap:balance}.kagabu-spring-intro .shade{pointer-events:none;background:linear-gradient(180deg,#00181e3b 0%,transparent 25%,transparent 65%,#0421264d)}.kagabu-spring-intro .caption{position:absolute;bottom:117px;left:0;right:0;text-align:center;font-size:11px;letter-spacing:.16em;z-index:5;text-shadow:0 2px 12px #092e29}.kagabu-spring-intro .bottom{position:absolute;bottom:28px;left:5%;right:5%;display:flex;justify-content:space-between;gap:22px;align-items:end;z-index:5}.kagabu-spring-intro .hint{font-size:9px;letter-spacing:.18em;line-height:2.1;display:flex;gap:12px;align-items:center}.kagabu-spring-intro .hint i{display:block;width:1px;height:36px;background:#e2ecd254;position:relative}.kagabu-spring-intro .hint i:after{content:"";position:absolute;width:1px;height:12px;background:#f0f6db;animation:kagabuSpringDrift 2s ease infinite}@keyframes kagabuSpringDrift{to{transform:translateY(24px);opacity:0}}.kagabu-spring-intro .steps{display:flex;gap:24px}.kagabu-spring-intro .steps button{appearance:none;background:none;color:#f0f1e8aa;border:0;border-top:1px solid #d9e7d651;padding:10px 0;min-width:100px;text-align:left;cursor:pointer}.kagabu-spring-intro .steps button.active{color:#f7f9eb;border-top-color:#eff2d6}.kagabu-spring-intro .steps span{display:block;font:9px/1.6 Georgia,serif;letter-spacing:.11em;margin-bottom:4px}.kagabu-spring-intro .steps b{font:400 11px sans-serif;letter-spacing:.1em}.kagabu-spring-intro .progress{position:absolute;bottom:0;left:0;height:2px;background:#e3e8c8;width:0;z-index:6}.kagabu-spring-intro .after{min-height:70svh;background:#eff0e6;color:#173d37;padding:90px 9%;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:70px}.kagabu-spring-intro .after .eyebrow{color:#527c6b}.kagabu-spring-intro .after h2{font:400 clamp(28px,3.5vw,48px)/1.65 "Yu Mincho",serif;letter-spacing:.06em}.kagabu-spring-intro .after p{font-size:14px;line-height:2.5;color:#4c685b}.kagabu-spring-intro .after .note{font-size:11px;line-height:1.9;color:#7a8a7a}.kagabu-spring-intro .after a{display:inline-block;font-size:12px;color:#375e4b;text-decoration:none;border-bottom:1px solid #758e79;padding-bottom:7px;margin-top:16px}.kagabu-spring-intro .loading{position:absolute;inset:0;background:#145c87;z-index:8;display:grid;place-content:center;font-size:12px;letter-spacing:.18em}.kagabu-spring-intro .loading.hidden{display:none}@media(max-width:650px){.kagabu-spring-intro .journey{height:400svh}.kagabu-spring-intro .header{padding:24px 7%}.kagabu-spring-intro .brand{font-size:17px}.kagabu-spring-intro .brand small{font-size:7px}.kagabu-spring-intro .badge{font-size:8px;padding:7px 9px}.kagabu-spring-intro .intro{top:64%;left:8%;right:8%;max-width:none}.kagabu-spring-intro .intro h1{font-size:32px;line-height:1.4;margin:0 0 10px}.kagabu-spring-intro .intro h1 br{display:none}.kagabu-spring-intro .intro .eyebrow{display:none}.kagabu-spring-intro .intro p{font-size:10px;margin:0}.kagabu-spring-intro .side{display:none}.kagabu-spring-intro .outro{top:24%}.kagabu-spring-intro .outro h2{font-size:38px}.kagabu-spring-intro .outro p{font-size:12px}.kagabu-spring-intro .bottom{left:7%;right:7%;bottom:25px;gap:10px}.kagabu-spring-intro .steps{gap:12px}.kagabu-spring-intro .steps button{min-width:62px}.kagabu-spring-intro .steps span{font-size:8px}.kagabu-spring-intro .steps b{font-size:9px}.kagabu-spring-intro .hint{font-size:8px;gap:8px}.kagabu-spring-intro .caption{font-size:9px;bottom:113px}.kagabu-spring-intro .after{display:block;padding:60px 8%}.kagabu-spring-intro .after p{font-size:13px}}@media(prefers-reduced-motion:reduce){.kagabu-spring-intro .hint i:after{animation:none}}
.kagabu-spring-intro{position:relative;--kagabu-spring-top:0px;line-height:1.5}.kagabu-spring-intro .stage{top:var(--kagabu-spring-top);height:calc(100svh - var(--kagabu-spring-top))}.kagabu-spring-intro .outro{display:none}.kagabu-spring-intro .steps{margin:0;position:static;width:auto;order:initial;border:0;padding:0;background:none;display:flex}.kagabu-spring-intro .spring-skip{position:absolute;top:26px;right:5%;z-index:6;color:#edf2df;font-size:11px;letter-spacing:.12em;border-bottom:1px solid #cfdfbf66;padding:8px 0;text-decoration:none}.kagabu-spring-photo .hero-ja{font-size:clamp(22px,2.4vw,36px);font-weight:700;letter-spacing:.06em;line-height:1.7;max-width:100%;text-shadow:0 2px 20px #071e2bb3}.kagabu-spring-intro .caption{max-width:90%;margin:auto}.kagabu-spring-intro .steps button{font-family:inherit;line-height:1.4}@media(max-width:650px){.kagabu-spring-intro .spring-skip{top:18px;right:7%;font-size:10px}.kagabu-spring-photo .hero-ja{font-size:24px;max-width:95%}}

/* Version 2.1: blue surface, typography and a droplet scroll cue. */
.kagabu-spring-intro{--paper:#f5fcff;--sage:#d3f3ff}
.kagabu-spring-intro .intro{left:6%;top:25%;max-width:40%}
.kagabu-spring-intro .eyebrow{font:500 clamp(9px,.85vw,12px)/1.6 sans-serif;letter-spacing:.15em;color:#e1f5ff}
.kagabu-spring-intro .intro h1{font-size:clamp(26px,3.1vw,47px);letter-spacing:.045em;line-height:1.75;margin:18px 0}
.kagabu-spring-intro .intro h1 span{display:block;white-space:nowrap}
.kagabu-spring-intro .intro p{color:#e1f5ff;font-size:11px}
.kagabu-spring-intro .side{right:6%;top:68%;max-width:49%;font-size:clamp(17px,2vw,30px);line-height:1.45;color:#f5fcff}
.kagabu-spring-intro .side small{color:#dcefff;margin-top:8px}
.kagabu-spring-intro .spring-skip{top:28px;right:5%;display:flex;align-items:flex-start;gap:18px;border:0;padding:10px 14px;color:#fff;min-width:44px;min-height:44px;text-shadow:0 1px 8px #083955}
.kagabu-spring-intro .spring-skip-label{padding-top:3px}
.kagabu-spring-intro .spring-skip-track{display:block;position:relative;width:2px;height:104px;background:#a3e6b66e;border-radius:2px;margin:0 7px}
.kagabu-spring-intro .spring-skip-drop{position:absolute;left:-6px;top:0;width:14px;height:24px;fill:#72e8a0;filter:drop-shadow(0 0 4px #0b624c88);animation:kagabuSpringSkipDrop 2.6s cubic-bezier(.4,0,.85,.6) infinite}
@keyframes kagabuSpringSkipDrop{0%{transform:translateY(0);opacity:0}8%{transform:translateY(0);opacity:1}72%{transform:translateY(80px);opacity:1}82%{transform:translateY(80px);opacity:0}100%{transform:translateY(80px);opacity:0}}
.kagabu-spring-intro .spring-skip:hover .spring-skip-label{text-decoration:underline;text-underline-offset:6px}
@media(max-width:850px) and (min-width:651px){.kagabu-spring-intro .intro{left:5%;top:27%}.kagabu-spring-intro .intro h1{font-size:25px}.kagabu-spring-intro .intro p{font-size:9px}.kagabu-spring-intro .side{font-size:19px}}
@media(max-width:650px){
.kagabu-spring-intro .intro{top:12%;left:7%;right:7%;max-width:none}
.kagabu-spring-intro .intro .eyebrow{display:block;font-size:9px;letter-spacing:.10em}
.kagabu-spring-intro .intro h1{font-size:clamp(22px,6vw,30px);line-height:1.6;margin:10px 0}
.kagabu-spring-intro .intro p{display:none}
.kagabu-spring-intro .side{display:block;top:auto;bottom:150px;left:7%;right:7%;max-width:none;font-size:clamp(14px,4vw,19px);line-height:1.35}
.kagabu-spring-intro .side small{display:none}
.kagabu-spring-intro .spring-skip{top:10px;right:5%;font-size:9px;gap:12px;padding:8px}
.kagabu-spring-intro .spring-skip-track{height:60px}
.kagabu-spring-intro .spring-skip-drop{width:12px;height:21px;left:-5px;animation-name:kagabuSpringSkipDropSmall}
@keyframes kagabuSpringSkipDropSmall{0%{transform:translateY(0);opacity:0}8%{transform:translateY(0);opacity:1}72%{transform:translateY(39px);opacity:1}82%{transform:translateY(39px);opacity:0}100%{transform:translateY(39px);opacity:0}}
}
@media(prefers-reduced-motion:reduce){.kagabu-spring-intro .spring-skip-drop{animation:none;opacity:1;top:50%;transform:translateY(-50%)}}
