:root{
  --paper:#FFFFFF; --off:#F6F5F2; --mist:#EDECE7; --rule:#DFDDD6; --rule2:#C7C4BA;
  --ink:#121316; --ink2:#42454B; --ink3:#767A82;
  --red:#D4000F; --red-d:#A30009; --red-soft:#FCE9EA;
  --green:#0B3A18; --lime:#8AC431; --green-soft:#E8F2E4;
  --sans:"Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif:Newsreader,Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --wrap:1180px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--serif);
  font-size:17px; line-height:1.62; -webkit-font-smoothing:antialiased}
body.lang-ja{font-family:var(--jp); font-size:15.5px; line-height:1.85}
img{max-width:100%; height:auto; display:block}
a{color:var(--red-d); text-decoration-thickness:1px; text-underline-offset:2px}
h1,h2,h3,h4{font-family:var(--sans); font-weight:800; letter-spacing:-.026em; margin:0;
  line-height:1.07; text-wrap:balance}
body.lang-ja h1,body.lang-ja h2,body.lang-ja h3,body.lang-ja h4{font-family:var(--jp);
  font-weight:700; letter-spacing:-.01em; line-height:1.34}
p{margin:0 0 15px}
.wrap{max-width:var(--wrap); margin:0 auto; padding-left:24px; padding-right:24px}
.mono{font-family:var(--mono); font-variant-numeric:tabular-nums}
.eye{font-family:var(--mono); font-size:11.5px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--red); font-weight:500; display:block; margin-bottom:14px}
.eye.g{color:var(--green)}
.eye.q{color:var(--ink3)}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2.5px solid var(--red);
  outline-offset:2px; border-radius:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* header */
header.top{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid var(--rule)}
.nav{display:flex; align-items:center; gap:22px; padding-top:13px; padding-bottom:13px}
.nav .logo{flex:0 0 auto; display:block}
.nav .logo img{width:132px}
.nav nav{margin-left:auto; display:flex; align-items:center; gap:21px}
.nav nav a{font-family:var(--sans); font-size:14px; font-weight:600; color:var(--ink2);
  text-decoration:none; letter-spacing:-.005em}
.nav nav a:hover,.nav nav a[aria-current="page"]{color:var(--red-d)}
.nav nav a.btn,.nav nav a.btn:hover{color:#fff}
.langsw{display:flex; gap:2px; font-family:var(--mono); font-size:11px; border:1px solid var(--rule2)}
.langsw a{padding:4px 7px; text-decoration:none; color:var(--ink3)}
.langsw a[aria-current="true"]{background:var(--ink); color:#fff}
.btn{display:inline-block; font-family:var(--sans); font-weight:700; font-size:14.5px;
  background:var(--red); color:#fff; padding:11px 19px; text-decoration:none;
  border:2px solid var(--red); letter-spacing:-.005em}
.btn:hover{background:var(--red-d); border-color:var(--red-d)}
.btn.ghost{background:transparent; color:var(--ink); border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink); color:#fff}
.btn.sm{font-size:13px; padding:8px 14px; border-width:1.5px}
.burger{display:none; margin-left:auto; background:none; border:1.5px solid var(--rule2);
  font-size:17px; padding:5px 10px; cursor:pointer; color:var(--ink)}
@media (max-width:900px){
  .nav nav{display:none; position:absolute; top:100%; left:0; right:0; background:var(--paper);
    border-bottom:1px solid var(--rule); flex-direction:column; align-items:stretch; gap:0; padding:8px 24px 18px}
  .nav nav.open{display:flex}
  .nav nav a{padding:11px 0; border-bottom:1px solid var(--rule); font-size:16px}
  .nav nav .btn,.nav nav .langsw{margin-top:12px; align-self:flex-start; border-bottom:none}
  .burger{display:block}
}

/* hero */
.hero{padding-top:clamp(44px,7vw,92px); padding-bottom:clamp(34px,4vw,54px)}
.hero h1{font-size:clamp(34px,6.4vw,74px)}
body.lang-ja .hero h1{font-size:clamp(26px,4.6vw,50px)}
.hero .stand{font-size:clamp(17px,1.6vw,20.5px); color:var(--ink2); max-width:56ch; margin-top:24px}
.herogrid{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(24px,4vw,56px); align-items:end; margin-top:24px}
@media (max-width:920px){.herogrid{grid-template-columns:1fr; align-items:start}}
.nextcard{border:2px solid var(--ink); padding:20px; text-decoration:none; color:inherit; display:block}
.nextcard:hover{background:var(--off)}
.nextcard .k{font-family:var(--mono); font-size:10.5px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--red); font-weight:500}
.nextcard .dt{font-family:var(--sans); font-weight:800; font-size:21px; letter-spacing:-.03em;
  margin-top:10px; font-variant-numeric:tabular-nums}
body.lang-ja .nextcard .dt{font-family:var(--jp); font-weight:700; font-size:18px}
.nextcard h3{font-size:17px; margin-top:8px; line-height:1.24}
.nextcard .wh{font-family:var(--mono); font-size:11.5px; color:var(--ink3); margin-top:10px}
.nextcard .go{font-family:var(--sans); font-weight:700; font-size:13.5px; color:var(--red-d);
  margin-top:14px; display:block}
.hero .acts{display:flex; gap:12px; flex-wrap:wrap; margin-top:30px}
.corridor{display:grid; grid-template-columns:1fr auto 1fr; gap:18px; align-items:center;
  border-top:2px solid var(--ink); border-bottom:1px solid var(--rule); margin-top:46px;
  padding-top:16px; padding-bottom:16px}
.corridor .city .n{font-family:var(--mono); font-size:11px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink3)}
.corridor .city .t{font-family:var(--sans); font-weight:800; font-size:26px; letter-spacing:-.03em;
  font-variant-numeric:tabular-nums}
.corridor .city.r{text-align:right}
.corridor .link{font-family:var(--mono); font-size:11px; color:var(--red); letter-spacing:.1em;
  text-transform:uppercase; white-space:nowrap}
@media (max-width:640px){
  .corridor{grid-template-columns:1fr 1fr; gap:10px}
  .corridor .link{grid-column:1 / -1; order:3; text-align:center; padding-top:8px; border-top:1px dotted var(--rule2)}
}

/* mechanism */
.mech{background:var(--ink); color:#fff; padding-top:clamp(40px,5vw,66px); padding-bottom:clamp(40px,5vw,66px)}
.mech h2{color:#fff; font-size:clamp(22px,2.7vw,32px); max-width:26ch}
.flow{list-style:none; display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1px; margin:26px 0 30px; padding:0; background:rgba(255,255,255,.16)}
.flow li{background:var(--ink); padding:17px 15px 19px}
.flow .n{font-family:var(--mono); font-size:11px; letter-spacing:.1em; color:var(--lime); font-weight:500}
.flow b{display:block; font-family:var(--sans); font-size:16.5px; color:#fff; margin:8px 0 5px}
.flow i{display:block; font-style:normal; font-size:13.5px; color:rgba(255,255,255,.66); line-height:1.45}
@media(max-width:900px){.flow{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.flow{grid-template-columns:1fr}}
.mech .grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:1px;
  background:rgba(255,255,255,.16); margin-top:34px}
.mech .s{background:var(--ink); padding:22px 20px 26px}
.mech .s .k{font-family:var(--mono); font-size:11px; color:var(--lime); letter-spacing:.1em; font-weight:500}
.mech .s h3{font-size:19px; margin:9px 0 7px; color:#fff}
.mech .s p{font-size:15px; color:rgba(255,255,255,.72); margin:0}
body.lang-ja .mech .s p{font-size:14px}

/* sections */
section.band{padding-top:clamp(42px,5.4vw,78px); padding-bottom:clamp(42px,5.4vw,78px)}
section.band.off{background:var(--off)}
section.band.mist{background:var(--mist)}
.lead{font-size:clamp(23px,3.1vw,37px); max-width:30ch}
.two{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(24px,4vw,62px); align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr; gap:22px}}
.prose{max-width:62ch}
.prose p:last-child{margin-bottom:0}
.prose .big{font-size:19px; color:var(--ink)}
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(248px,1fr)); gap:1px;
  background:var(--rule); border:1px solid var(--rule); margin-top:32px}
.cards .c{background:var(--paper); padding:24px 22px 28px}
/* A seven-item grid leaves an orphan cell, and an empty cell shows the grid's own
   ground as a blank block. Three columns, with the last item spanning the row. */
.cards.steps7{grid-template-columns:repeat(3,minmax(0,1fr))}
/* published documents: a plain row, not an event row */
.doclist{display:grid; gap:1px; background:var(--rule); margin-top:18px}
.doclist a{background:var(--paper); display:flex; justify-content:space-between; align-items:center;
  gap:18px; padding:17px 20px; text-decoration:none; color:var(--ink)}
.doclist a:hover{background:var(--off)}
.doclist h3{font-size:17.5px; margin:0; line-height:1.28}
.doclist .m{font-family:var(--mono); font-size:11.5px; color:var(--ink3); margin:5px 0 0}
.doclist .go{color:var(--red); font-weight:700; font-size:18px; flex:0 0 auto}
.cards.steps7 .c:last-child{grid-column:1/-1}
@media(max-width:940px){.cards.steps7{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.cards.steps7{grid-template-columns:1fr}
  .cards.steps7 .c:last-child{grid-column:auto}}
.cards .c .k{font-family:var(--mono); font-size:11px; color:var(--red); letter-spacing:.1em; font-weight:500}
.cards .c h3{font-size:19.5px; margin:10px 0 8px}
.cards .c p{font-size:15.5px; color:var(--ink2); margin:0}
.cards .c .cl{margin-top:14px}
.cards .c .cl .lnk{font-size:13.5px}
body.lang-ja .cards .c p{font-size:14.5px}
.pairfacts{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule);
  border:1px solid var(--rule); margin-top:30px}
.pairfacts .col{background:var(--paper); padding:22px}
.pairfacts .col .h{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink3); padding-bottom:10px; border-bottom:1px solid var(--rule); margin-bottom:12px}
.pairfacts .col.jp .h{color:var(--red)} .pairfacts .col.bg .h{color:var(--green)}
.pairfacts dl{margin:0; display:grid; gap:11px}
.pairfacts dt{font-family:var(--sans); font-weight:700; font-size:14px; letter-spacing:-.01em}
body.lang-ja .pairfacts dt{font-family:var(--jp)}
.pairfacts dd{margin:2px 0 0; font-size:14.5px; color:var(--ink2)}
@media (max-width:700px){.pairfacts{grid-template-columns:1fr}}

.doors{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--rule);
  border:1px solid var(--rule); margin-top:26px}
.doors .door{background:var(--paper); padding:clamp(22px,2.6vw,32px)}
.doors .door:last-child{background:var(--off)}
.doors .door h3{font-size:clamp(19px,2.1vw,24px); letter-spacing:-.02em; max-width:22ch}
.doors .door p{font-size:15.5px; color:var(--ink2); margin-top:10px; max-width:46ch}
body.lang-ja .doors .door p{font-size:14.5px}
.doors .door .acts{margin-top:20px}
@media (max-width:700px){.doors{grid-template-columns:1fr}}
.entity{border-top:1px solid var(--rule); padding-top:14px; color:var(--ink3); line-height:1.6}
.third{border-top:1px solid var(--rule); margin-top:22px; padding-top:20px; max-width:62ch}
.third b{font-size:16.5px; letter-spacing:-.01em}
.third p{font-size:15px; color:var(--ink2); margin-top:6px}
.third .acts{margin-top:12px}
.dirs{display:flex; flex-wrap:wrap; gap:20px; align-items:baseline; margin-top:18px}
.dirs .eye{margin:0}

/* events */
.evlist{margin-top:30px; border-top:2px solid var(--ink)}
.ev{display:grid; grid-template-columns:132px minmax(0,1fr) auto; gap:26px; align-items:start;
  padding:26px 0; border-bottom:1px solid var(--rule); text-decoration:none; color:inherit}
.ev:hover{background:var(--off)}
.ev .d{font-family:var(--mono); font-variant-numeric:tabular-nums}
.ev .d .dd{font-family:var(--sans); font-weight:800; font-size:33px; letter-spacing:-.04em; line-height:1}
.ev .d .mm{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink3); margin-top:5px}
.ev h3{font-size:clamp(20px,2.2vw,26px)}
.ev p{font-size:15.5px; color:var(--ink2); margin:8px 0 0; max-width:58ch}
body.lang-ja .ev p{font-size:14.5px}
.ev .meta{font-family:var(--mono); font-size:11.5px; color:var(--ink3); margin-top:10px;
  display:flex; gap:14px; flex-wrap:wrap}
.ev .go{font-family:var(--sans); font-weight:700; font-size:14px; color:var(--red-d); white-space:nowrap; padding-top:5px}
.pill{display:inline-block; font-family:var(--mono); font-size:10.5px; letter-spacing:.08em;
  text-transform:uppercase; padding:3px 7px; font-weight:500}
.pill.up{background:var(--red-soft); color:var(--red-d)}
.pill.an{background:var(--green-soft); color:var(--green)}
.pill.pa{background:var(--mist); color:var(--ink3)}
@media (max-width:780px){
  .ev{grid-template-columns:76px minmax(0,1fr); gap:16px}
  .ev .d .dd{font-size:26px}
  .ev .go{grid-column:2; padding-top:0}
}

/* event detail */
.evhero{background:var(--ink); color:#fff; padding-top:clamp(36px,5vw,66px); padding-bottom:clamp(36px,5vw,62px)}
.evhero .back{font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--lime); text-decoration:none; display:inline-block; margin-bottom:22px}
.evhero h1{color:#fff; font-size:clamp(28px,4.7vw,54px)}
body.lang-ja .evhero h1{font-size:clamp(22px,3.5vw,38px)}
.evhero .lede{font-size:clamp(16.5px,1.5vw,19px); color:rgba(255,255,255,.76); max-width:58ch; margin-top:20px}
.evhero .series{font-family:var(--mono); font-size:11.5px; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.6); margin-bottom:12px}
.evgrid{display:grid; grid-template-columns:minmax(0,1fr) 322px; gap:clamp(24px,3.4vw,46px); align-items:start;
  padding-top:clamp(32px,4vw,54px); padding-bottom:clamp(40px,5vw,78px)}
@media (max-width:920px){.evgrid{grid-template-columns:1fr}}
.factgrid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px;
  background:var(--rule); border:1px solid var(--rule); margin:0 0 30px}
@media (max-width:620px){.factgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:360px){.factgrid{grid-template-columns:1fr}}
.factgrid .f{background:var(--paper); padding:15px 16px}
.factgrid .f .k{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink3)}
.factgrid .f .v{font-family:var(--sans); font-weight:700; font-size:15px; margin-top:4px; letter-spacing:-.01em}
body.lang-ja .factgrid .f .v{font-family:var(--jp); font-weight:500; font-size:14px}
.detail{border-top:1px solid var(--rule); padding-top:26px; margin-top:30px}
.detail:first-child{border-top:0; padding-top:0; margin-top:0}
.detail h2{font-size:clamp(21px,2.4vw,28px); margin-bottom:14px}
.prog{list-style:none; margin:18px 0 0; padding:0}
.prog li{display:grid; grid-template-columns:78px minmax(0,1fr); gap:18px; padding:15px 0;
  border-top:1px solid var(--rule)}
.prog li time{font-family:var(--mono); font-size:14px; font-weight:600; color:var(--red-d)}
.prog li b{font-family:var(--sans); font-size:16.5px; letter-spacing:-.012em; display:block}
body.lang-ja .prog li b{font-family:var(--jp)}
.prog li span{font-size:15px; color:var(--ink2); display:block; margin-top:4px}
body.lang-ja .prog li span{font-size:14px}
@media (max-width:560px){.prog li{grid-template-columns:1fr; gap:3px}}
.prog.after li{grid-template-columns:150px minmax(0,1fr)}
.prog.after li time{font-size:12.5px; line-height:1.4; text-transform:uppercase; letter-spacing:.06em}
@media (max-width:560px){.prog.after li{grid-template-columns:1fr}}
.reg{border:2px solid var(--ink); position:sticky; top:82px}
.reg .rh{background:var(--ink); color:#fff; padding:14px 18px}
.reg .rh .k{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--lime)}
.reg .rh h3{color:#fff; font-size:20px; margin-top:5px}
.reg .rb{padding:18px}
.reg .rb p{font-size:14.5px; color:var(--ink2)}
.reg .btn{display:block; text-align:center; margin-bottom:10px}
.reg .fine{font-family:var(--mono); font-size:10.5px; color:var(--ink3); text-align:center; line-height:1.5}
.reg .row{border-top:1px solid var(--rule); margin-top:16px; padding-top:14px; display:flex;
  gap:10px; flex-wrap:wrap}
.reg .row a{font-family:var(--sans); font-size:13px; font-weight:600; text-decoration:none;
  border:1.5px solid var(--rule2); padding:7px 11px; color:var(--ink2)}
.reg .row a:hover{border-color:var(--ink); color:var(--ink)}
@media (max-width:920px){.reg{position:static}}
.stickybar{display:none}
@media (max-width:920px){
  .stickybar{display:block; position:fixed; left:0; right:0; bottom:0; z-index:60; background:var(--paper);
    border-top:1px solid var(--rule2); padding:10px 24px calc(10px + env(safe-area-inset-bottom,0px))}
  .stickybar .btn{display:block; text-align:center}
  body.has-bar{padding-bottom:74px}
}

/* tiers */
.tiers{display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:1px;
  background:var(--rule); border:1px solid var(--rule); margin-top:32px}
.tier{background:var(--paper); padding:24px 22px 28px; display:flex; flex-direction:column}
.tier.hi{background:var(--ink); color:#fff}
.tier.hi h3,.tier.hi .price{color:#fff}
.tier.hi li{color:rgba(255,255,255,.76)}
.tier.hi .note{color:var(--lime)}
.tier h3{font-size:20px}
.tier .price{font-family:var(--sans); font-weight:800; font-size:31px; letter-spacing:-.035em; margin:12px 0 3px;
  font-variant-numeric:tabular-nums}
.tier .per{font-family:var(--mono); font-size:11px; color:var(--ink3); letter-spacing:.06em; text-transform:uppercase}
.tier.hi .per{color:rgba(255,255,255,.55)}
.tier ul{list-style:none; margin:18px 0 0; padding:0; font-size:15px; color:var(--ink2)}
body.lang-ja .tier ul{font-size:14px}
.tier li{padding:8px 0 8px 17px; position:relative; border-top:1px solid var(--rule)}
.tier.hi li{border-color:rgba(255,255,255,.16)}
.tier li:before{content:""; position:absolute; left:0; top:15px; width:7px; height:7px; background:var(--red)}
.tier.hi li:before{background:var(--lime)}
.tier .note{font-family:var(--mono); font-size:11px; color:var(--red); margin-top:16px; letter-spacing:.04em}

/* people */
.people{display:grid; grid-template-columns:repeat(auto-fit,minmax(255px,1fr)); gap:1px;
  background:var(--rule); border:1px solid var(--rule); margin-top:32px}
.person{background:var(--paper); padding:24px 22px 28px}
.person .av{width:54px; height:54px; background:var(--ink); color:#fff; font-family:var(--sans);
  font-weight:800; font-size:19px; display:grid; place-items:center; letter-spacing:-.02em}
.person h3{font-size:18.5px; margin:16px 0 3px}
.person .role{font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--red); margin-bottom:10px}
.person p{font-size:15px; color:var(--ink2); margin:0}
body.lang-ja .person p{font-size:14px}

/* form */
form.apply{margin-top:28px; max-width:660px}
.fld{margin-bottom:16px}
.fld label{display:block; font-family:var(--sans); font-size:13px; font-weight:700; letter-spacing:.01em;
  margin-bottom:6px}
body.lang-ja .fld label{font-family:var(--jp)}
.fld input,.fld select,.fld textarea{width:100%; font-family:inherit; font-size:16px; padding:11px 13px;
  border:1.5px solid var(--rule2); background:var(--paper); color:var(--ink)}
.fld .hint{font-size:13px; color:var(--ink3); margin-top:5px}
.frow{display:grid; grid-template-columns:1fr 1fr; gap:16px}
@media (max-width:620px){.frow{grid-template-columns:1fr}}
.consent{display:grid; grid-template-columns:22px 1fr; gap:11px; align-items:start; margin-bottom:12px;
  font-size:14.5px; color:var(--ink2)}
.consent input{width:18px; height:18px; margin-top:3px}
/* A field that is one question with several answers, as the stages a fund
   invests at are. Not .fld: that class makes every label a bold block, which is
   right for one label above one control and wrong for a list of choices. */
.fldset{border:0; padding:0; margin:0 0 16px}
.fldset legend{font-family:var(--sans); font-size:13px; font-weight:700; letter-spacing:.01em;
  padding:0; margin-bottom:8px}
body.lang-ja .fldset legend{font-family:var(--jp)}
.fldset .consent{margin-bottom:9px}
.fldset .consent label{font-weight:400}

/* callout */
.callout{border-left:4px solid var(--red); background:var(--off); padding:18px 22px; margin:26px 0}
.callout p:last-child{margin-bottom:0}
.callout.g{border-left-color:var(--green); background:var(--green-soft)}
.quote{font-family:var(--sans); font-weight:800; font-size:clamp(20px,2.7vw,31px); letter-spacing:-.028em;
  line-height:1.2; max-width:34ch; border-left:5px solid var(--red); padding-left:22px; margin:30px 0}
body.lang-ja .quote{font-family:var(--jp); font-weight:700; line-height:1.5; font-size:clamp(17px,2vw,24px)}

/* footer */
footer.foot{background:var(--ink); color:rgba(255,255,255,.7); padding-top:52px; padding-bottom:40px;
  font-size:14.5px}
body.lang-ja footer.foot{font-size:13.5px}
footer.foot .cols{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:34px}
@media (max-width:760px){footer.foot .cols{grid-template-columns:1fr; gap:26px}}
footer.foot img{width:120px; filter:brightness(0) invert(1); opacity:.92}
footer.foot h4{font-family:var(--mono); font-size:11px; letter-spacing:.13em; text-transform:uppercase;
  color:rgba(255,255,255,.45); font-weight:500; margin-bottom:12px}
footer.foot a{color:#fff; text-decoration:none}
footer.foot a:hover{text-decoration:underline}
footer.foot ul{list-style:none; margin:0; padding:0}
footer.foot li{margin-bottom:8px}
footer.foot .legal{border-top:1px solid rgba(255,255,255,.16); margin-top:38px; padding-top:20px;
  font-family:var(--mono); font-size:11.5px; color:rgba(255,255,255,.45); line-height:1.7}

/* ===================================================================
   v2: only what the original stylesheet did not already provide.
   No inline styles are emitted anywhere, so the CSP needs no 'unsafe-inline'.
   =================================================================== */
.skip{position:absolute;left:-9999px;top:0;background:#fff;padding:10px 14px;z-index:99;
  border:2px solid var(--red);font-family:var(--sans);font-weight:700}
.skip:focus{left:10px;top:10px}
.pad{padding-top:clamp(42px,5.4vw,78px);padding-bottom:clamp(42px,5.4vw,78px)}
.narrowcol{max-width:68ch}
.narrow{max-width:34ch}
.mt16{margin-top:16px}.mt22{margin-top:22px}
.small{font-size:14.5px;color:var(--ink2)}
h2.sub{font-size:19px;letter-spacing:0;margin-bottom:6px;color:var(--ink3);
  font-family:var(--mono);text-transform:uppercase}
.acts{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:26px}
.lnk{font-family:var(--sans);font-weight:700;font-size:14.5px;color:var(--red-d);
  text-decoration:none;border-bottom:1.5px solid var(--red-soft);padding-bottom:2px}
.lnk:hover{border-bottom-color:var(--red)}
.langsw a{min-width:36px;text-align:center}
.cta{background:var(--off);border-top:1px solid var(--rule)}
.cta h2{max-width:22ch}
.apply{border:1.5px solid var(--rule2);padding:clamp(20px,3vw,30px);background:var(--off)}
.apply button{cursor:pointer}
.hp{position:absolute;left:-9999px}
.formerr{color:var(--red-d);font-family:var(--mono);font-size:13px;margin:0 0 14px}
.ref{display:none;font-family:var(--mono);font-size:14px;margin-top:18px}
.ref.on{display:block}
.news .d .dd{font-size:26px}
.person .role{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--red);margin:8px 0 10px}
.cards .c .role{font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink3);margin:0 0 10px}

.pairfacts.onecol{grid-template-columns:1fr}
.pairfacts dd{margin-bottom:10px}

/* The Recognition Ledger. A record, not a logo wall: text, in the classes the
   relationships actually fall into, with the legal person named on every row.
   No crest, no tier, nothing sized by what anybody paid. */
.recognition .recgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  gap:28px 36px;margin-top:26px}
.recclass h3{font-size:17px;letter-spacing:-.01em;padding-bottom:10px;
  border-bottom:2px solid var(--ink)}
.reclist{list-style:none;margin:0;padding:0}
.reclist li{padding:14px 0;border-bottom:1px solid var(--rule)}
.reclist li b{display:block;font-family:var(--sans);font-size:16px;letter-spacing:-.012em}
body.lang-ja .reclist li b{font-family:var(--jp)}
/* Which of the two legal persons. Set in the mono face, like every other
   statement of fact on this site, and never larger than the name above it. */
.reclist li .mono{display:block;font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--red);margin-top:3px}
.reclist li span:not(.mono){display:block;font-size:14.5px;color:var(--ink2);margin-top:6px}
.reclist li i{display:block;font-style:normal;font-family:var(--mono);font-size:11.5px;
  color:var(--ink3);margin-top:6px}
