:root{
  --brand:#3d45b7;
  --brand-dark:#171a3a;
  --brand-soft:#eef0ff;
  --green:#6ede72;
  --cyan:#57fffe;
  --pink:#fa8ed4;
  --text:#171a3a;
  --muted:#667085;
  --line:#d9dcef;
  --bg:#f7f8fc;
  --white:#ffffff;
  --max:1180px;
  --shadow:0 18px 50px rgba(23,26,58,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--text);background:var(--white);line-height:1.7}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.section-shell{width:min(calc(100% - 48px),var(--max));margin:0 auto}
.section{padding:108px 0}
.section-kicker,.eyebrow{margin:0 0 14px;font-size:12px;font-weight:800;letter-spacing:.20em;line-height:1;color:var(--brand)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:42px}
.section-heading h2{margin:0;font-size:clamp(34px,4vw,52px);line-height:1.1;letter-spacing:-.04em}
.section-note{font-size:11px;font-weight:800;letter-spacing:.18em;color:#858ca8}
.text-link{font-size:13px;font-weight:800;border-bottom:1px solid currentColor;padding-bottom:5px}.text-link span{margin-left:8px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:52px;padding:0 22px;border-radius:14px;font-size:13px;font-weight:800;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.button:hover{transform:translateY(-2px)}
.button-primary{color:#fff;background:var(--brand);box-shadow:0 14px 30px rgba(61,69,183,.25)}
.button-ghost{border:1px solid #ccd0e7;background:#fff}.button-light{background:#fff;color:var(--brand);box-shadow:0 14px 30px rgba(0,0,0,.14)}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.84);backdrop-filter:blur(14px);border-bottom:1px solid rgba(217,220,239,.75)}
.header-inner{width:min(calc(100% - 48px),var(--max));margin:auto;display:flex;align-items:center;justify-content:space-between;min-height:80px}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:-.03em}.brand img{width:38px;height:38px;object-fit:cover;border-radius:10px}.brand span{font-size:14px}.site-nav{display:flex;align-items:center;gap:28px;font-size:12px;font-weight:800}.site-nav a{opacity:.78}.site-nav a:hover{opacity:1}.nav-contact{padding:12px 16px;border-radius:12px;background:var(--brand);color:#fff!important;opacity:1!important}
.nav-toggle,.nav-button{display:none}
.hero{display:grid;grid-template-columns:1.02fr .98fr;gap:42px;align-items:center;min-height:calc(100vh - 80px);padding-top:72px;padding-bottom:84px;overflow:hidden}.hero-copy{padding-left:18px}.eyebrow{display:flex;align-items:center;gap:12px;color:#757da5}.eyebrow span{display:block;width:26px;height:3px;background:var(--brand);border-radius:99px}.hero h1{margin:0;font-size:clamp(54px,6.7vw,88px);line-height:1.02;letter-spacing:-.06em}.hero h1 em{font-style:normal;position:relative;display:inline-block}.hero h1 em::after{content:"";position:absolute;left:0;right:10%;bottom:.03em;height:.16em;background:var(--green);z-index:-1;transform:rotate(-1.2deg);border-radius:2px}.hero-lead{max-width:570px;margin:28px 0 30px;color:#5f6684;font-size:16px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-meta{display:flex;gap:32px;margin-top:38px;padding-top:25px;border-top:1px solid var(--line);color:#343952}.hero-meta div{display:flex;flex-direction:column;gap:3px}.hero-meta small{font-size:9px;letter-spacing:.15em;color:#858ca8;font-weight:800}.hero-meta strong{font-size:12px}
.hero-art{position:relative;min-height:590px}.orb{position:absolute;border-radius:50%;filter:blur(2px)}.orb-a{width:300px;height:300px;right:9%;top:3%;background:radial-gradient(circle at 32% 28%,#fff 0 4%,rgba(255,255,255,.7) 5%,rgba(110,222,114,.85) 29%,rgba(110,222,114,0) 69%);opacity:.8}.orb-b{width:370px;height:370px;left:7%;bottom:0;background:radial-gradient(circle at 55% 50%,rgba(87,255,254,.9),rgba(61,69,183,0) 67%);opacity:.7}.grid-card{position:absolute;background:var(--brand-dark);color:#fff;border-radius:28px;box-shadow:28px 28px 0 rgba(61,69,183,.14);overflow:hidden}.grid-card-main{width:430px;height:480px;right:4%;top:8%;padding:34px}.grid-card-main::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(87,255,254,.12),transparent 40%),repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 1px,transparent 1px 44px),repeating-linear-gradient(0deg,rgba(255,255,255,.06) 0 1px,transparent 1px 44px)}.grid-label{position:relative;display:inline-flex;padding:6px 10px;border:1px solid rgba(255,255,255,.24);border-radius:9px;font-size:10px;letter-spacing:.18em}.grid-title{position:relative;margin-top:74px;font-size:48px;line-height:.93;font-weight:900;letter-spacing:-.06em}.grid-line{position:relative;margin-top:36px;width:72px;height:5px;background:var(--pink)}.grid-caption{position:absolute;left:34px;bottom:30px;font-size:10px;letter-spacing:.2em;color:#d9dcef}.floating-tag{position:absolute;padding:9px 12px;border-radius:12px;font-size:10px;font-weight:900;letter-spacing:.13em;box-shadow:0 10px 25px rgba(23,26,58,.14)}.tag-one{left:8%;top:18%;background:var(--green)}.tag-two{right:0;top:48%;background:var(--cyan)}.tag-three{left:4%;bottom:8%;background:var(--pink)}
.section-news{background:var(--bg);border-top:1px solid #edf0f7;border-bottom:1px solid #edf0f7}.news-list{border-top:1px solid var(--line)}.news-item{display:grid;grid-template-columns:110px 85px 1fr 30px;align-items:center;gap:20px;padding:23px 0;border-bottom:1px solid var(--line);font-size:14px}.news-date{font-variant-numeric:tabular-nums;color:#79819c;font-size:12px}.news-cat{font-size:10px;font-weight:900;letter-spacing:.14em;color:var(--brand)}.news-title{font-weight:700}.news-arrow{justify-self:end;color:#7c84a4}
.section-about{background:#fff}.about-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px}.vertical-heading p:not(.section-kicker){max-width:420px;margin-top:24px;color:#667085}.vertical-heading{align-self:start;position:sticky;top:120px}.about-cards{display:grid;gap:18px}.info-card{position:relative;min-height:182px;border-radius:22px;padding:30px 32px;background:#f7f8fc;border:1px solid #eceef6;overflow:hidden}.info-card::after{content:"";position:absolute;right:-30px;bottom:-40px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.85)}.info-card h3{margin:24px 0 8px;font-size:25px;letter-spacing:-.04em}.info-card p{max-width:500px;margin:0;color:#69718e;font-size:13px}.card-number{font-size:10px;font-weight:900;letter-spacing:.15em}.accent-green{border-top:5px solid var(--green)}.accent-cyan{border-top:5px solid var(--cyan)}.accent-pink{border-top:5px solid var(--pink)}
.section-org{background:var(--bg)}.org-layout{display:grid;grid-template-columns:320px 1fr;gap:22px;align-items:stretch}.org-main-card{background:var(--brand-dark);color:#fff;border-radius:24px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;min-height:380px;box-shadow:18px 18px 0 rgba(61,69,183,.12)}.org-badge{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,var(--green),var(--cyan),var(--pink));color:var(--brand-dark);font-weight:900}.org-main-card h3{font-size:28px;line-height:1.05;letter-spacing:-.05em;margin:36px 0 4px}.org-role{margin:0;color:#c6c9db;font-size:12px}.org-specs{border-top:1px solid rgba(255,255,255,.15);margin-top:20px;padding-top:18px;display:grid;gap:14px}.org-specs div{display:flex;flex-direction:column}.org-specs span{font-size:9px;letter-spacing:.13em;color:#9ca3c0}.org-specs strong{font-size:12px}
.org-tree{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;position:relative;min-height:380px}.tree-node{background:#f8f9fd;border:1px solid #dfe2ef;border-radius:16px;padding:16px}.tree-node.parent{max-width:360px;margin:auto;text-align:center;background:var(--brand-soft);border-color:#c9cdf7}.tree-node strong{display:block;font-size:17px}.tree-node span,.tree-node small{display:block;font-size:10px;color:#78809e}.tree-node small{margin-top:8px;font-weight:800}.tree-line{height:42px;width:1px;background:#cfd3e3;margin:auto}.tree-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;position:relative}.tree-columns::before{content:"";position:absolute;left:25%;right:25%;top:0;height:1px;background:#cfd3e3}.tree-branch{position:relative;padding-top:22px}.branch-line{position:absolute;top:0;left:50%;width:1px;height:22px;background:#cfd3e3}.tree-branch .tree-node{background:#fff}.tree-branch b{display:block;font-size:25px;letter-spacing:-.04em}.tree-branch.active .tree-node{border:2px solid var(--brand);box-shadow:0 10px 30px rgba(61,69,183,.12)}.mini-node{margin-top:10px;border-left:3px solid var(--pink);padding:9px 11px;background:#faf6fb;border-radius:10px;font-size:10px;color:#6e7087}.org-footnote{margin:20px 0 0;color:#8a90a5;font-size:10px}.leadership{margin-top:56px}.leadership-heading h3{margin:0;font-size:28px}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}.person-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;gap:14px;align-items:center}.person-avatar{width:52px;height:52px;border-radius:14px;background:#eef0ff;color:var(--brand);display:grid;place-items:center;font-size:12px;font-weight:900}.person-card span{font-size:10px;color:#7c84a0;font-weight:800}.person-card h4{margin:2px 0;font-size:17px}.person-card p{margin:0;color:#7c84a0;font-size:10px}.placeholder-note{font-size:10px;color:#8a90a5;margin:13px 0 0}
.section-careers{background:var(--brand-dark);color:#fff}.careers-panel{display:grid;grid-template-columns:1.1fr .9fr;gap:42px;align-items:center}.section-careers .section-kicker{color:#9da5ff}.careers-copy h2{font-size:clamp(42px,5.3vw,72px);line-height:1.03;letter-spacing:-.06em;margin:0}.careers-copy h2 span{background:linear-gradient(90deg,var(--green),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}.careers-copy>p:last-child{max-width:580px;margin:28px 0 0;color:#c7cadb}.recruit-card{background:linear-gradient(145deg,#3d45b7,#2d337f);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:26px;box-shadow:18px 18px 0 rgba(255,255,255,.04)}.recruit-card span{display:block;font-size:10px;letter-spacing:.18em;color:#b8bdf6;font-weight:900}.recruit-card strong{display:block;margin:10px 0 20px;font-size:21px}.role-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.role-tags span{padding:8px 10px;border:1px solid rgba(255,255,255,.16);border-radius:999px;font-size:9px;letter-spacing:.14em;color:#e7e9f4}
.section-contact{background:#fff}.contact-layout{display:grid;grid-template-columns:1fr .9fr;gap:80px;align-items:center}.contact-copy h2{font-size:clamp(40px,5vw,64px);margin:0;letter-spacing:-.06em}.contact-copy>p:last-child{max-width:580px;color:#6c738e;margin-top:24px}.contact-card{padding:30px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.contact-row{display:flex;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}.contact-row span{font-size:10px;letter-spacing:.13em;font-weight:900;color:#858ca6}.contact-row a{font-size:13px;font-weight:800;color:var(--brand);text-align:right}.full{width:100%;margin-top:20px}.contact-note{margin:13px 0 0;font-size:10px;color:#8a90a5}
.site-footer{background:#f4f5fb;border-top:1px solid #e7e9f3}.footer-inner{padding:28px 0 34px;display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:end}.footer-nav{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:10px;font-weight:800;color:#667085}.footer-inner>p{margin:0;text-align:right;color:#8a90a5;font-size:9px}.footer-brand img{width:30px;height:30px}
@media (max-width: 960px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:72px}.hero-art{min-height:480px}.grid-card-main{right:10%;width:420px;height:440px}.about-layout,.careers-panel,.contact-layout{grid-template-columns:1fr;gap:38px}.vertical-heading{position:static}.org-layout{grid-template-columns:1fr}.people-grid{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:1fr;align-items:start}.footer-inner>p{text-align:left}}
@media (max-width: 760px){.section{padding:82px 0}.section-shell,.header-inner{width:min(calc(100% - 32px),var(--max))}.site-nav{position:absolute;left:16px;right:16px;top:70px;display:none;flex-direction:column;align-items:stretch;padding:16px;background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.site-nav a{padding:11px 10px}.nav-button{display:flex;flex-direction:column;gap:5px;cursor:pointer}.nav-button span{width:24px;height:2px;background:var(--text)}.nav-toggle:checked~.site-header .site-nav{display:flex}.hero{padding-top:58px}.hero-copy{padding-left:0}.hero h1{font-size:58px}.hero-lead{font-size:14px}.hero-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px}.hero-art{min-height:400px}.grid-card-main{width:min(360px,82vw);height:385px;right:3%;top:7%;padding:28px}.grid-title{font-size:38px;margin-top:56px}.floating-tag{transform:scale(.9)}.news-item{grid-template-columns:1fr auto;gap:7px 12px}.news-date{grid-column:1}.news-cat{grid-column:2;grid-row:1;justify-self:end}.news-title{grid-column:1 / span 2}.news-arrow{display:none}.section-heading{align-items:flex-start;flex-direction:column;gap:14px}.tree-columns{grid-template-columns:1fr}.tree-columns::before{left:50%;right:auto;height:100%;width:1px;top:0}.tree-branch .tree-node,.mini-node{position:relative;background:#fff}.org-tree{padding:20px}.people-grid{grid-template-columns:1fr}.contact-layout{gap:26px}.footer-nav{justify-content:flex-start}}
