@charset "utf-8";
/* About only: the shared stylesheet and other page assets stay independent. */
.about-page { --c-blue:#0064ff; --c-focus:#004fd6; color:#35415e; background:#fff; overflow-x:visible; }
.about-page .header { background:#fff; }
.about-page .header__inner { max-width:1440px; min-height:88px; }
.about-page .ab-brand { font-size:28px; letter-spacing:.16em; }
.about-page .ab-brand::before { display:none; }
.about-page .ab-brand-mark { display:inline-block; width:35px; height:36px; flex-shrink:0; background:linear-gradient(135deg,#99eaff 8%,#0878ff 45%,#001338 75%); clip-path:polygon(43% 4%,64% 0,100% 90%,71% 87%,55% 39%,29% 92%,0 100%); }
.about-page .nav .btn { border-radius:7px; background:linear-gradient(115deg,#0879ef,#0050ed); gap:16px; }
.about-page .nav__link { min-height:44px; display:flex; align-items:center; }
.about-page :focus-visible { outline:3px solid #004fd6; outline-offset:5px; }
.about-page .ab-main:focus { outline:none; }
.about-page .ab-wrap { width:100%; max-width:1440px; margin-inline:auto; padding-inline:64px; }
.about-page .ab-main { font-weight:500; line-height:1.95; overflow-wrap:normal; line-break:strict; }
.about-page .ab-main p { text-wrap:pretty; }
.about-page .ab-main :is(h1,h2,h3) { color:#080b11; font-weight:750; letter-spacing:-.04em; word-break:normal; overflow-wrap:normal; }
.about-page .ab-main h2 { font-size:clamp(28px,2.6vw,38px); line-height:1.4; }
.about-page .ab-main h3 { font-size:20px; line-height:1.6; letter-spacing:-.035em; }
.about-page .ab-main :is(h1,h2,h3) span,.about-page .ab-lead span,.about-page .ab-cta-copy>p span,.about-page .ab-cta-button>span>span { display:inline-block; }
.about-page .ab-main em { font-style:normal; color:var(--c-blue); }
.about-page .ab-main .ab-eyebrow { color:#005bea; font-size:13px; font-weight:700; letter-spacing:.18em; line-height:1.5; margin:0 0 12px; }
.about-page .ab-hero { position:relative; isolation:isolate; background:linear-gradient(105deg,#fff 30%,#f6fbff 60%,#dcefff); }
.about-page .ab-hero-grid { min-height:420px; padding-block:52px 64px; display:grid; grid-template-columns:1.35fr 1fr; gap:40px; align-items:center; }
.about-page .ab-main h1 { font-size:clamp(42px,4.2vw,62px); font-weight:800; line-height:1.27; letter-spacing:-.065em; }
.about-page .ab-main h1 em { font-size:1.12em; }
.about-page .ab-main .ab-lead { font-size:18px; line-height:1.95; margin-top:24px; }
.about-page .ab-facets { position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.about-page .ab-facets i { position:absolute; top:-50%; left:58%; height:210%; width:140px; transform:rotate(27deg); background:linear-gradient(90deg,#7ebeff04,#63b7ff30 70%,#fff9 71%,#bbdfff33); border-right:1px solid #fff9; }
.about-page .ab-facets i:nth-child(2) { left:76%; width:240px; background:linear-gradient(90deg,#007fff12,#7bcaff55,#ffffffc9); }
.about-page .ab-facets i:nth-child(3) { left:99%; width:130px; }
.about-page .ab-facets i:nth-child(4) { left:68%; top:10%; height:150%; width:70px; transform:rotate(-48deg); background:linear-gradient(90deg,transparent,#fffc,transparent); border:0; }
.about-page .ab-hero-art { color:#005bea; padding:24px 12px 12px; justify-self:center; position:relative; }
.about-page .ab-hero-art::before { content:""; position:absolute; right:-14px; top:-35px; width:1px; height:94px; background:#0064ff; transform:rotate(26deg); }
.about-page .ab-handwriting { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-style:italic; font-size:clamp(25px,2.5vw,38px); line-height:1.6; letter-spacing:.14em; transform:rotate(-8deg); }
.about-page .ab-handwriting span { display:block; margin-left:24px; border-bottom:1px solid #0064ff; padding-bottom:10px; }
.about-page .ab-art-caption { font-size:10px; line-height:1.7; letter-spacing:.2em; text-align:center; margin-top:34px; }
.about-page .ab-section { padding-block:64px; }
.about-page .ab-why { background:linear-gradient(112deg,#fff 72%,#f3faff); }
.about-page .ab-why-grid { display:grid; grid-template-columns:300px 1fr 94px; gap:52px; align-items:center; }
.about-page .ab-intro { margin-top:20px; font-size:16px; line-height:1.95; }
.about-page .ab-story { position:relative; padding-left:28px; font-size:17px; }
.about-page .ab-story::before { content:""; position:absolute; top:4px; left:-22px; height:118px; width:1px; background:#0064ff; transform:rotate(24deg); }
.about-page .ab-story p+p { margin-top:26px; }
.about-page .ab-margin-note { border-left:1px solid #bbcce5; padding-left:19px; font-size:11px; line-height:1.7; letter-spacing:.15em; color:#5b7197; margin:0; }
.about-page .ab-values { background:#f2f9ff; }
.about-page .ab-section-head { display:grid; grid-template-columns:1.1fr 1fr; gap:48px; align-items:center; margin-bottom:30px; }
.about-page .ab-section-head h2 em { font-size:1.35em; line-height:1; margin-inline:4px; }
.about-page .ab-section-summary { border-left:1px solid #0064ff; padding-left:28px; font-size:15px; margin:0; }
.about-page .ab-values-grid { list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.about-page .ab-card { background:#fff; border:1px solid #dcecf9; border-radius:7px; padding:26px 26px 30px; }
.about-page .ab-card-top { position:relative; height:100px; display:grid; place-items:center; }
.about-page .ab-number { color:#0064ff; font-size:27px; font-weight:750; letter-spacing:-.05em; line-height:1.2; }
.about-page .ab-card-top .ab-number { position:absolute; top:0; left:0; }
.about-page .ab-icon { width:52px; height:52px; color:#0064ff; flex-shrink:0; overflow:visible; }
.about-page .ab-card h3 { min-height:64px; margin-top:8px; }
.about-page .ab-card p { font-size:16px; line-height:1.85; margin-top:12px; }
.about-page .ab-work-grid { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; }
.about-page .ab-step { position:relative; display:grid; grid-template-columns:44px 1fr; gap:18px; padding:28px; border:1px solid #dcecf9; border-radius:7px; background:linear-gradient(125deg,#fff,#fbfdff); }
.about-page .ab-step:not(:last-child)::after { content:""; position:absolute; right:-28px; top:50%; width:12px; height:12px; border-top:3px solid #0064ff; border-right:3px solid #0064ff; transform:rotate(45deg); }
.about-page .ab-step .ab-icon { width:44px; height:44px; margin-bottom:18px; }
.about-page .ab-step p { margin-top:10px; font-size:16px; line-height:1.85; }
.about-page .ab-profile { border-top:1px solid #eef4fa; background:linear-gradient(110deg,#fff,#fafdff); }
.about-page .ab-profile-grid { display:grid; grid-template-columns:1fr 1fr 1.1fr; gap:48px; align-items:center; }
.about-page .ab-profile-card { background:#f0f7fd; padding:32px; border-radius:4px; }
.about-page .ab-profile-card h3 { font-size:30px; }
.about-page .ab-role { font-size:15px; font-weight:700; color:#172948; margin-top:2px; }
.about-page .ab-profile-fields { margin-top:22px; padding-top:18px; border-top:1px solid #c4d9ed; }
.about-page .ab-profile-fields>p { font-size:14px; font-weight:700; margin-bottom:6px; }
.about-page .ab-profile-fields ul { display:flex; flex-wrap:wrap; gap:2px 0; list-style:none; font-size:15px; }
.about-page .ab-profile-fields li:not(:last-child)::after { content:" / "; color:#6682a6; white-space:pre; }
.about-page .ab-profile-message { border-left:1px solid #0064ff; padding-left:30px; font-size:16px; }
.about-page .ab-profile-message p+p { margin-top:16px; }
.about-page .ab-cta { background:#0060ec; color:#fff; position:relative; isolation:isolate; padding-block:56px; }
.about-page .ab-cta-grid { display:grid; grid-template-columns:130px 1fr 170px; gap:28px; align-items:center; }
.about-page .ab-cta .ab-facets i { left:1%; background:linear-gradient(90deg,#24baff00,#39c6ff65,#94e3ff77); }
.about-page .ab-cta .ab-facets i:nth-child(2) { left:88%; }
.about-page .ab-cta .ab-facets i:nth-child(3) { left:16%; background:#009aff22; }
.about-page .ab-cta .ab-facets i:nth-child(4) { left:90%; }
.about-page .ab-cta-copy { text-align:center; }
.about-page .ab-cta h2 { color:#fff; font-size:clamp(27px,2.2vw,32px); letter-spacing:-.03em; line-height:1.55; }
.about-page .ab-cta-copy>p { margin-top:18px; font-size:16px; }
.about-page .ab-cta .ab-margin-note { color:#fff; border-color:#9ed8ff; }
.about-page .ab-cta-sign { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-style:italic; font-size:24px; line-height:1.6; transform:rotate(-8deg); margin:0; }
.about-page .ab-cta-sign span { display:inline-block; white-space:nowrap; border-bottom:1px solid #fff; margin-left:0; padding-bottom:10px; }
.about-page .ab-cta-button { display:flex; justify-content:center; align-items:center; gap:20px; max-width:440px; margin:26px auto 0; min-height:64px; padding:16px 28px; background:#fff; color:#0044bf; border-radius:40px; font-size:18px; font-weight:750; line-height:1.6; text-decoration:none; transition:transform .2s,box-shadow .2s; }
.about-page .ab-arrow { display:grid; place-items:center; width:1em; height:1.2em; flex-shrink:0; }
.about-page .ab-arrow svg { display:block; width:1em; height:1em; overflow:visible; }
.about-page .ab-arrow path { vector-effect:non-scaling-stroke; }
.about-page .ab-cta :focus-visible { outline-color:#fff; outline-offset:6px; }
.about-page .footer { background:#fff; }
.about-page .ab-animate { animation:ab-appear .48s both; animation-delay:var(--ab-delay,0ms); }
@keyframes ab-appear { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media (hover:hover) { .about-page .ab-cta-button:hover { color:#0044bf; transform:translateY(-2px); box-shadow:0 10px 24px #00379855; } }
@media (max-width:1199px) {
 .about-page .ab-wrap { padding-inline:40px; }
 .about-page .ab-hero-grid { grid-template-columns:1.5fr 1fr; gap:20px; }
 .about-page .ab-why-grid { grid-template-columns:270px 1fr; gap:44px; }
 .about-page .ab-margin-note { display:none; }
 .about-page .ab-values-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .about-page .ab-card h3 { min-height:0; }
 .about-page .ab-card-top { height:84px; }
 .about-page .ab-section-head { gap:32px; }
 .about-page .ab-work-grid { gap:32px; }
 .about-page .ab-step { padding:24px 20px; grid-template-columns:1fr; gap:14px; }
 .about-page .ab-step:not(:last-child)::after { right:-23px; width:10px; height:10px; }
 .about-page .ab-profile-grid { gap:28px; }
 .about-page .ab-profile-card { padding:24px; }
 .about-page .ab-profile-message { padding-left:24px; }
 .about-page .ab-cta-grid { grid-template-columns:1fr; }
 .about-page .ab-cta-sign { display:none; }
}
@media (max-width:899px) {
 .about-page .ab-hero-grid { grid-template-columns:1fr; min-height:0; padding-block:44px; }
 .about-page .ab-hero-art { justify-self:end; padding-block:16px; margin-right:30px; }
 .about-page .ab-hero-art::before { top:-5px; height:70px; }
 .about-page .ab-handwriting { font-size:27px; }
 .about-page .ab-art-caption { display:none; }
 .about-page .ab-why-grid { grid-template-columns:1fr; gap:28px; }
 .about-page .ab-story { padding-left:24px; border-left:1px solid #0064ff; }
 .about-page .ab-story::before { display:none; }
 .about-page .ab-section-head { grid-template-columns:1fr; gap:20px; }
 .about-page .ab-section-summary { padding-left:20px; }
 .about-page .ab-profile-grid { grid-template-columns:1fr 1fr; }
 .about-page .ab-profile-grid>div:first-child { grid-column:1 / -1; }
}
@media (max-width:599px) {
 .about-page .ab-wrap { padding-inline:24px; }
 .about-page .header__inner { min-height:76px; }
 .about-page .ab-main h1 { font-size:clamp(33px,8.7vw,48px); line-height:1.4; }
 .about-page .ab-main h2 { font-size:29px; }
 .about-page .ab-main h3 { font-size:20px; }
 .about-page .ab-main .ab-lead { font-size:16px; margin-top:20px; }
 .about-page .ab-hero-grid { padding-block:36px 32px; gap:24px; }
 .about-page .ab-hero-art { margin:0 12px 0 0; }
 .about-page .ab-handwriting { font-size:24px; }
 .about-page .ab-desktop-break { display:none; }
 .about-page .ab-section { padding-block:48px; }
 .about-page .ab-story { font-size:16px; padding-left:20px; }
 .about-page .ab-values-grid,.about-page .ab-work-grid,.about-page .ab-profile-grid { grid-template-columns:1fr; }
 .about-page .ab-card { padding:24px 26px 28px; }
 .about-page .ab-card-top { height:84px; }
 .about-page .ab-card h3 { margin-top:10px; }
 .about-page .ab-work-grid { gap:32px; }
 .about-page .ab-step { grid-template-columns:38px 1fr; gap:18px; padding:26px; }
 .about-page .ab-step:not(:last-child)::after { top:auto; bottom:-21px; right:calc(50% - 5px); transform:rotate(135deg); }
 .about-page .ab-profile-card { padding:28px; }
 .about-page .ab-profile-card h3 { font-size:30px; }
 .about-page .ab-profile-message { padding-left:20px; }
 .about-page .ab-cta { padding-block:44px; }
 .about-page .ab-cta h2 { font-size:27px; }
 .about-page .ab-cta-copy>p { font-size:15px; }
 .about-page .ab-cta-button { font-size:17px; padding:16px 20px; gap:14px; }
 .about-page .mobile-nav { padding-inline:12px; }
 .about-page .mobile-nav .btn { font-size:16px; gap:12px; }
}
@media (max-width:359px) {
 .about-page .ab-wrap { padding-inline:18px; }
 .about-page .ab-main h2 { font-size:27px; }
 .about-page .ab-main .ab-lead { letter-spacing:0; }
 .about-page .ab-card { padding-inline:22px; }
 .about-page .ab-step { padding:24px 20px; gap:12px; }
 .about-page .ab-cta h2 { font-size:25px; }
 .about-page .ab-cta-button { padding-inline:18px; }
}
@media (prefers-reduced-motion:reduce) {
 html:has(.about-page) { scroll-behavior:auto; }
 .about-page *,.about-page *::before,.about-page *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
@media print { .about-page .ab-animate { animation:none; }.about-page .ab-card,.about-page .ab-step { break-inside:avoid; } }
