/* トップページ */

/* hero shared */
.hero{display:none}
body.hero-1 .v1,body.hero-2 .v2,body.hero-3 .v3{display:block}
body.hero-1 .v1{display:flex;flex-direction:column;min-height:max(760px,calc(100svh - 77px - var(--rvh)))}
.h1{font-family:var(--serif);font-weight:600;font-feature-settings:"palt" 1;letter-spacing:.03em;color:var(--ink);line-height:1.28}
body.lang-en .h1{font-family:var(--en-serif);font-weight:500;letter-spacing:-.02em;line-height:1.06;font-feature-settings:normal}
.lede{font-size:17px;line-height:2.05;max-width:34em}
body.lang-en .lede{line-height:1.7;max-width:36em}

/* hero 1: quiet, editorial */
.v1>.wrap{padding-top:108px;width:100%}
.v1 .h1{font-size:92px}
body.lang-en .v1 .h1{font-size:86px;max-width:11em}
.v1 .hrow{display:grid;grid-template-columns:7fr 4fr;gap:88px;margin-top:64px;margin-bottom:64px;padding-top:30px;border-top:1px solid var(--ink)}
.facts div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--rule);font-size:14px}
.facts div:first-child{padding-top:0}
.facts dt{color:var(--muted)}
.facts dd{color:var(--ink);font-weight:500;text-align:right}
.hcta{display:flex;align-items:center;gap:32px;margin-top:40px}

/* latest-news line (new items appear here automatically) */
.newsline{margin-top:auto;border-top:1px solid var(--rule)}
.newsline .wrap{display:flex;align-items:center;gap:24px;height:64px;font-size:14px}
.newsline .k{color:var(--muted)}
.newsline time{color:var(--muted)}
.newsline .t{color:var(--ink);flex:1}
.newsline .t:hover{text-decoration:underline;text-underline-offset:5px}
.v2 .newsline,.v3 .newsline{margin-top:0}
.v2 .newsline{border-top:1px solid rgba(255,255,255,.3);background:var(--ai-d)}
.v2 .newsline .k,.v2 .newsline time{color:rgba(255,255,255,.7)}
.v2 .newsline .t,.v2 .newsline .tl{color:#fff}

/* hero 2: one solid field */
.v2{background:var(--ai);color:#fff}
.v2>.wrap{min-height:calc(100svh - 141px - var(--rvh));display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:72px}
.v2 .h1{color:#fff;font-size:108px;font-weight:700;line-height:1.24}
body.lang-en .v2 .h1{font-size:96px;font-weight:500;max-width:10.5em}
.v2 .lede{color:rgba(255,255,255,.92);margin-top:40px;max-width:38em}
.v2 .foot{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.45)}
.v2 .facts2{display:flex;gap:28px;font-size:14px;color:rgba(255,255,255,.86)}
.v2 .facts2>span+span{padding-left:28px;border-left:1px solid rgba(255,255,255,.4)}
.v2 .tl{color:#fff}
.v2 .tl:hover{color:#fff;opacity:.8}
.v2 .hcta{margin-top:0}

/* hero 3: white + ai band */
.v3 .top .wrap{display:grid;grid-template-columns:7fr 5fr;gap:72px;align-items:end;padding-top:108px;padding-bottom:76px}
.v3 .h1{font-size:84px}
body.lang-en .v3 .h1{font-size:76px}
.v3 .right .lede{font-size:16px}
.band{background:var(--ai);color:#fff}
.band .wrap{display:grid;grid-template-columns:7fr 5fr;gap:72px;align-items:end;padding-top:56px;padding-bottom:56px}
.band blockquote{font-family:var(--serif);font-weight:600;font-feature-settings:"palt" 1;letter-spacing:.04em;font-size:34px;line-height:1.55;color:#fff}
body.lang-en .band blockquote{font-family:var(--en-serif);font-weight:500;letter-spacing:-.01em;line-height:1.3;font-size:36px}
.band p{font-size:15px;line-height:2;color:rgba(255,255,255,.92)}
body.lang-en .band p{line-height:1.7}
.band .tl{color:#fff;display:inline-block;margin-top:18px}
.band .tl:hover{color:#fff;opacity:.8}

/* activities */
.act{display:grid;grid-template-columns:5fr 7fr;gap:48px;padding:36px 0 38px;border-top:1px solid var(--rule)}
.act:first-child{border-top:1px solid var(--ink)}
.act .no{display:block;font-family:var(--en-serif);font-size:15px;color:var(--muted);margin-bottom:8px}
.act h3{font-size:30px;line-height:1.45}
.act p{font-size:16px}
body.lang-en .act p{line-height:1.7}
.act .sub{font-size:13px;color:var(--muted);margin-top:12px}
.act .rec{display:block;margin-top:16px;font-size:14px;color:var(--ink)}
.act .rec span.k{color:var(--muted);margin-right:10px}
.act .rec a{text-decoration:underline;text-underline-offset:5px}
.act .rec a:hover{color:var(--ai)}

/* track record: first event */
.feat .ev{border-top:1px solid var(--ink);padding-top:30px}
.feat .ev .meta{font-size:14px;color:var(--muted)}
.feat .ev h3{font-family:var(--en-serif);font-weight:500;font-size:44px;line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin-top:8px}
.feat .nums{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px;border-top:1px solid var(--rule)}
.feat .nums div{padding:24px 28px 26px 0}
.feat .nums div+div{padding-left:28px;border-left:1px solid var(--rule)}
.feat .nums b{display:block;font-family:var(--serif);font-weight:600;font-feature-settings:"palt" 1;font-size:40px;line-height:1.3;color:var(--ink);letter-spacing:.02em}
body.lang-en .feat .nums b{font-family:var(--en-serif);font-weight:500;letter-spacing:-.01em}
.feat .nums b small{font-size:20px;margin-left:2px}
.feat .nums span{display:block;font-size:13.5px;color:var(--muted);margin-top:6px}
.feat .nums div:first-child b{color:var(--ai)}
.feat .txt{display:grid;grid-template-columns:7fr 5fr;gap:48px;margin-top:8px;padding-top:28px;border-top:1px solid var(--rule)}
.feat .txt p{font-size:15.5px;max-width:34em}
body.lang-en .feat .txt p{line-height:1.7}
.feat .txt .links{display:flex;flex-direction:column;align-items:flex-start;gap:14px}

/* message */
.msg blockquote{font-family:var(--serif);font-weight:600;font-feature-settings:"palt" 1;letter-spacing:.04em;font-size:31px;line-height:1.85;color:var(--ink);max-width:23em;padding-top:30px;border-top:1px solid var(--ink)}
body.lang-en .msg blockquote{font-family:var(--en-serif);font-weight:400;letter-spacing:-.005em;line-height:1.45;font-size:32px}
.msg .who{display:grid;grid-template-columns:auto 1fr;gap:40px;margin-top:44px;align-items:start}
.msg .who .nm{font-family:var(--serif);font-weight:600;font-size:22px;color:var(--ink);letter-spacing:.08em;font-feature-settings:"palt" 1;line-height:1.5}
body.lang-en .msg .who .nm{font-family:var(--en-serif);letter-spacing:0;font-weight:500}
.msg .who .nm small{display:block;font-family:var(--sans);font-size:13px;color:var(--muted);letter-spacing:.06em;font-weight:400}
.msg .who p{font-size:14.5px;line-height:1.95;max-width:36em}
body.lang-en .msg .who p{line-height:1.65}
.msg .src{font-size:12.5px;color:var(--muted);margin-top:12px}
.msg .src a{text-decoration:underline;text-underline-offset:4px;white-space:nowrap}

/* about */
.about .intro{font-size:18px;line-height:2.05;color:var(--ink);max-width:36em;margin-bottom:44px}
body.lang-en .about .intro{line-height:1.7}
.tbl div{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:20px 0;border-top:1px solid var(--rule);font-size:15px}
.tbl div:first-child{border-top:1px solid var(--ink)}
.tbl div:last-child{border-bottom:1px solid var(--rule)}
.tbl dt{color:var(--muted)}
.tbl dd{color:var(--ink)}
.tbl ol{counter-reset:n}
.tbl ol li{counter-increment:n;position:relative;padding-left:2em;line-height:1.95}
.tbl ol li::before{content:counter(n) ".";position:absolute;left:0;color:var(--muted);font-variant-numeric:tabular-nums}

/* join */
.join .cols{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.join .col{padding:36px 48px 8px 0}
.join .col+.col{padding-left:48px;border-left:1px solid var(--rule)}
.join h3{font-size:28px;line-height:1.5;margin-bottom:16px}
.join p{font-size:15.5px;max-width:26em;margin-bottom:32px;min-height:6em}
body.lang-en .join p{line-height:1.7;min-height:5.2em}

/* proposal 2 on short laptop screens: keep the news band inside the first view */
@media (min-width:761px) and (max-height:820px){
  .v2>.wrap{min-height:calc(100svh - 141px - var(--rvh));padding-bottom:40px}
  .v2 .h1{font-size:84px}
  body.lang-en .v2 .h1{font-size:76px}
  .v2 .lede{margin-top:24px}
  .v2 .foot{margin-top:32px;padding-top:20px}
}
@media (max-width:1100px){
  .v1 .h1{font-size:72px}.v2 .h1{font-size:84px}.v3 .h1{font-size:64px}
  .band blockquote{font-size:30px}
  .feat .ev h3{font-size:38px}
}
@media (max-width:760px){
  body.hero-1 .v1{min-height:0}
  .v1>.wrap{padding-top:64px}
  .v1 .h1{font-size:46px;line-height:1.36}
  body.lang-en .v1 .h1{font-size:44px}
  .v1 .hrow{grid-template-columns:1fr;gap:32px;margin-top:40px;margin-bottom:48px}
  .hcta{gap:24px;margin-top:32px;flex-wrap:wrap}
  .newsline .wrap{height:auto;padding-top:16px;padding-bottom:16px;flex-wrap:wrap;gap:6px 14px;font-size:13px}
  .newsline .t{flex-basis:100%}
  .v2>.wrap{min-height:calc(100svh - 160px - var(--rvh));padding-bottom:40px}
  .v2 .h1{font-size:54px;line-height:1.32}
  body.lang-en .v2 .h1{font-size:48px}
  .v2 .lede{margin-top:28px}
  .v2 .foot{flex-direction:column;align-items:flex-start;gap:24px;margin-top:36px}
  .v2 .facts2{flex-direction:column;gap:2px}.v2 .facts2>span+span{padding-left:0;border-left:0}
  .v3 .top .wrap{grid-template-columns:1fr;gap:28px;padding-top:64px;padding-bottom:48px}
  .v3 .h1{font-size:46px;line-height:1.36}
  body.lang-en .v3 .h1{font-size:44px}
  .band .wrap{grid-template-columns:1fr;gap:20px;padding-top:44px;padding-bottom:44px}
  .band blockquote{font-size:24px;line-height:1.65}
  body.lang-en .band blockquote{font-size:26px}
  .act{grid-template-columns:1fr;gap:12px;padding:28px 0}
  .act h3{font-size:24px}
  .feat .ev h3{font-size:30px}
  .feat .nums{grid-template-columns:1fr;margin-top:28px}
  .feat .nums div,.feat .nums div+div{padding:18px 0;border-left:0}
  .feat .nums div+div{border-top:1px solid var(--rule)}
  .feat .nums b{font-size:32px}
  .feat .txt{grid-template-columns:1fr;gap:20px}
  .msg blockquote{font-size:22px;line-height:1.8}
  body.lang-en .msg blockquote{font-size:24px}
  .msg .who{grid-template-columns:1fr;gap:12px}
  .about .intro{font-size:16px}
  .tbl div{grid-template-columns:1fr;gap:4px;padding:16px 0}
  .join .cols{grid-template-columns:1fr}
  .join .col{padding:28px 0}
  .join .col+.col{padding-left:0;border-left:0;border-top:1px solid var(--rule)}
  .join p{min-height:0;margin-bottom:24px}
}
