/* A readable introduction anchored to the bottom of the city photograph. */
.hero .hero-copy{top:auto;bottom:16%;left:9%;right:9%;padding:5px 0 7px 30px;border-left:1px solid rgba(255,255,255,.7);color:#fff;text-shadow:0 2px 18px rgba(10,25,35,.15)}
.hero .hero-description{margin:0;max-width:1100px;animation:appear 1.6s .5s both;letter-spacing:.035em}
.hero-description-lead{font-size:clamp(17px,1.5vw,23px);font-weight:500;line-height:1.7;letter-spacing:.04em;word-break:normal;line-break:strict}
.hero-description-note{font-size:clamp(17px,1.5vw,23px);font-weight:400;line-height:1.9;letter-spacing:.035em;margin-top:22px;word-break:normal;line-break:strict}
.hero-shade{background:linear-gradient(180deg,rgba(20,40,50,.01) 25%,rgba(20,35,45,.08) 45%,rgba(20,35,45,.68) 100%)}
.hero-description p{max-width:100%}.hero-copy-unit{display:inline-block;white-space:nowrap;max-width:100%}

/* The viewport holds the statement; the long color field moves with native scrolling. */
.home-purpose{--purpose-frame:max(100svh,680px);position:relative;height:max(210vw,190svh);isolation:isolate;background:#fff}
.purpose-anchor{position:sticky;top:0;height:var(--purpose-frame);z-index:1;pointer-events:none}
.purpose-viewport{position:relative;isolation:isolate;overflow:hidden;height:var(--purpose-frame);width:100%;display:flex;align-items:center;justify-content:center;padding:70px 7%;box-sizing:border-box}
.purpose-content{position:relative;z-index:1;width:100%;max-width:826px;color:#fff;pointer-events:auto}
.purpose-label{font-family:Inter,sans-serif;font-size:18px;line-height:1.5;font-weight:500;letter-spacing:.015em;margin-bottom:35px;text-align:center}
.purpose-content h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:clamp(34px,4.25vw,60px);line-height:1.65;letter-spacing:.025em;margin:0;text-align:center;word-break:normal;line-break:strict}
.purpose-summary{font-size:18px;line-height:2;letter-spacing:.035em;max-width:710px;margin:30px auto 0;text-align:center;text-wrap:pretty}
.purpose-content .purpose-link{display:flex;width:max-content;max-width:100%;align-items:center;gap:60px;margin:35px auto 0;padding:10px 18px 12px;font-size:13px;line-height:1.6;background:#fff;color:#344957;border-bottom:1px solid #aabac2;text-shadow:none}
.purpose-field{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;background:radial-gradient(ellipse at 8% 34%,rgba(146,167,166,.75),transparent 32%),radial-gradient(ellipse at 90% 60%,rgba(194,153,171,.6),transparent 38%),linear-gradient(180deg,#fff 0%,#fff 2%,#edf0f3 7%,#b1b5c9 16%,#78859c 28%,#8c829f 43%,#9e8194 57%,#7a9990 72%,#b4cac4 87%,#edf3f0 96%,#fff 100%)}
@media(max-width:1050px) and (min-width:701px){.hero .hero-copy{left:8%;right:8%;padding-left:26px;bottom:18%}.hero-description-lead{font-size:18px}.hero-description-note{font-size:18px}.purpose-content{max-width:760px}.purpose-content h2{font-size:42px}.purpose-summary{font-size:17px}}
@media(max-width:700px){
 .hero .hero-copy{left:9%;right:9%;bottom:18%;padding:3px 0 5px 17px}
 .hero-description-lead{font-size:14px;line-height:1.75;letter-spacing:.015em}
 .hero-description-note{font-size:14px;line-height:1.95;letter-spacing:.015em;margin-top:20px}
 .hero .hero-description{font-size:inherit}
 .home-purpose{--purpose-frame:max(100svh,620px);height:max(310vw,160svh)}.purpose-viewport{padding:62px 8%}
 .purpose-label{font-size:16px;margin-bottom:30px}
 .purpose-content h2{font-size:clamp(25px,6.65vw,34px);line-height:1.8;letter-spacing:0}
 .purpose-summary{font-size:15px;line-height:2.05;margin-top:27px;text-align:left}
 .purpose-content .purpose-link{font-size:12px;gap:45px;margin-top:28px;padding:10px 17px 12px}
}
@media(max-height:680px) and (min-width:701px){.home-purpose{--purpose-frame:max(100svh,580px)}.purpose-viewport{padding-block:40px}.purpose-label{margin-bottom:22px}.purpose-content h2{font-size:40px}.purpose-summary{font-size:16px;margin-top:22px}.purpose-content .purpose-link{margin-top:22px}}
/* Stopping animation also removes the extended scroll scene. */
.motion-off .home-purpose{height:auto;background:#7b879d}.motion-off .purpose-anchor{position:relative;height:auto;margin-bottom:0}.motion-off .purpose-viewport{height:auto;min-height:720px}.motion-off .purpose-field{display:none}
@media(prefers-reduced-motion:reduce){.home-purpose{height:auto;background:#7b879d}.purpose-anchor{position:relative;height:auto;margin-bottom:0}.purpose-viewport{height:auto;min-height:680px}.purpose-field{display:none}.hero .hero-description{animation:none}}

/* Supplied logo remains proportionate and decorative, beneath all readable copy. */
.purpose-watermark{position:absolute;z-index:0;left:50%;top:51%;transform:translate(-50%,-50%);width:min(68vw,calc(var(--purpose-frame) * .95),820px);height:auto;max-height:82%;object-fit:contain;opacity:.055;pointer-events:none;user-select:none}
@media(max-width:700px){.purpose-watermark{width:84%;max-height:64%;opacity:.045;top:50%}}
