/* ============================================================
   TEIGEN JP — Design System v2
   CIVIC EDITORIAL × YOUTH ENERGY
   Navy #233A70 / Off #F5F5F5 / Gold #C8A84B(accent only)
   ============================================================ */
:root{
  --navy:#233A70;--navy-d:#17264A;--navy-l:#4F6FAF;--gold:#C8A84B;
  --off:#F5F5F5;--white:#FFFFFF;--ink:#151A24;--ink2:#49506000;--ink-2:#4A5160;--ink-3:#828A9B;
  --line:#E3E6ED;--line-n:rgba(35,58,112,.16);
  --font:Arial,"Inter","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;
  --en:"Inter",Arial,sans-serif;
  --max:1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--font);color:var(--ink);background:var(--white);font-size:15px;line-height:1.85;font-feature-settings:"palt"}
img{max-width:100%;display:block}
a{color:inherit}
ul,ol{list-style:none}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--navy);color:#fff}

/* ---- a11y ---- */
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:999}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---- layout ---- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 40px}
.wrap-n{max-width:880px;margin:0 auto;padding:0 40px}
.sec{padding:104px 0}
.sec-s{padding:72px 0}
.sec-off{background:var(--off)}
.sec-navy{background:var(--navy);color:#fff}

/* ---- type ---- */
.eyebrow{font-family:var(--en);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--navy-l);margin-bottom:14px}
.sec-navy .eyebrow,.sec-navyd .eyebrow{color:var(--gold)}
.h-xl{font-size:clamp(34px,4.6vw,56px);font-weight:800;line-height:1.35;letter-spacing:.01em;color:var(--navy)}
.h-lg{font-size:clamp(26px,3.2vw,38px);font-weight:800;line-height:1.45;color:var(--navy)}
.h-md{font-size:clamp(19px,2.2vw,24px);font-weight:800;line-height:1.55;color:var(--navy)}
.sec-navy .h-xl,.sec-navy .h-lg,.sec-navy .h-md,.sec-navyd .h-xl,.sec-navyd .h-lg,.sec-navyd .h-md{color:#fff}
.lead{font-size:15.5px;color:var(--ink-2);max-width:640px;line-height:2.05;margin-top:20px}
.sec-navy .lead,.sec-navyd .lead{color:rgba(255,255,255,.72)}
.note{font-size:11.5px;color:var(--ink-3)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:15px 30px;font-size:13.5px;font-weight:700;letter-spacing:.04em;text-decoration:none;border:1px solid transparent;transition:all .2s;min-height:44px}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-d)}
.btn-white{background:#fff;color:var(--navy)}
.btn-white:hover{background:var(--off)}
.btn-line{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-line:hover{background:var(--navy);color:#fff}
.btn-linew{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-linew:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.tlink{font-size:13px;font-weight:700;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:3px}
.tlink:hover{border-color:var(--navy)}

/* ---- header ---- */
#site-header{position:sticky;top:0;z-index:300}
.gh{background:var(--navy);border-bottom:1px solid rgba(255,255,255,.1)}
.gh-in{max-width:var(--max);margin:0 auto;padding:0 40px;height:66px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.gh-logo{font-family:var(--en);font-size:18px;font-weight:800;letter-spacing:.05em;color:#fff;text-decoration:none;white-space:nowrap}
.gh-logo b{color:var(--gold)}
.gh-nav{display:flex;gap:26px;align-items:center}
.gh-nav a{font-size:12.5px;color:rgba(255,255,255,.78);text-decoration:none;padding:6px 0;white-space:nowrap}
.gh-nav a:hover{color:#fff}
.gh-nav a.on{color:#fff;border-bottom:2px solid var(--gold)}
.gh-cta{background:#fff;color:var(--navy);font-size:12px;font-weight:800;padding:7px 18px;text-decoration:none;white-space:nowrap}
.gh-cta:hover{background:var(--off)}
.gh-burger{display:none;background:none;border:0;width:44px;height:44px;position:relative}
.gh-burger span{position:absolute;left:11px;width:22px;height:2px;background:#fff;transition:.25s}
.gh-burger span:nth-child(1){top:15px}.gh-burger span:nth-child(2){top:21px}.gh-burger span:nth-child(3){top:27px}
.gh-burger[aria-expanded="true"] span:nth-child(1){top:21px;transform:rotate(45deg)}
.gh-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.gh-burger[aria-expanded="true"] span:nth-child(3){top:21px;transform:rotate(-45deg)}
.mnav{display:none;position:fixed;inset:66px 0 0;background:var(--navy-d);z-index:290;overflow-y:auto;padding:32px 24px 48px}
.mnav.open{display:block}
.mnav a{display:block;color:#fff;text-decoration:none;font-size:16px;font-weight:700;padding:15px 4px;border-bottom:1px solid rgba(255,255,255,.1)}
.mnav .mnav-cta{margin-top:24px;display:flex;flex-direction:column;gap:10px}
.mnav .mnav-cta a{border:1px solid rgba(255,255,255,.4);text-align:center;font-size:13.5px;padding:14px}
.mnav .mnav-cta a:first-child{background:#fff;color:var(--navy);border-color:#fff}
body.lock{overflow:hidden}

/* ---- footer ---- */
.ft{background:var(--navy-d);color:#fff}
.ft-cta{border-bottom:1px solid rgba(255,255,255,.1);padding:72px 0}
.ft-cta h2{font-size:clamp(24px,3vw,34px);font-weight:800;line-height:1.5}
.ft-cta p{color:rgba(255,255,255,.6);margin-top:12px;font-size:14px}
.ft-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.ft-main{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:48px;padding:64px 0}
.ft h3{font-family:var(--en);font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.ft-main a{display:block;font-size:12.5px;color:rgba(255,255,255,.62);text-decoration:none;padding:5px 0}
.ft-main a:hover{color:#fff}
.ft-logo{font-family:var(--en);font-size:20px;font-weight:800;color:#fff}
.ft-logo b{color:var(--gold)}
.ft-tag{font-size:13px;color:rgba(255,255,255,.55);margin-top:10px}
.ft-contact{font-size:12.5px;color:rgba(255,255,255,.62);margin-top:20px;line-height:2}
.ft-btm{border-top:1px solid rgba(255,255,255,.1);padding:24px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;color:rgba(255,255,255,.4)}

/* ---- hero (top) ---- */
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;background:var(--navy);overflow:hidden}
.hero-slides{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.8s ease}
.hero-slide.on{opacity:1}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(78deg,rgba(23,38,74,.94) 8%,rgba(35,58,112,.78) 46%,rgba(35,58,112,.42) 100%)}
.hero-in{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;padding:140px 40px 0}
.hero-eyebrow{font-family:var(--en);font-size:11.5px;font-weight:700;letter-spacing:.26em;color:var(--gold);text-transform:uppercase}
.hero h1{font-size:clamp(40px,6.4vw,76px);font-weight:800;line-height:1.28;color:#fff;margin-top:26px;letter-spacing:.01em}
.hero-sub{font-size:clamp(15px,1.8vw,19px);color:rgba(255,255,255,.85);margin-top:26px;line-height:2;font-weight:600}
.hero-desc{font-size:13.5px;color:rgba(255,255,255,.62);margin-top:14px}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:40px}
.hero-aud{display:flex;gap:28px;flex-wrap:wrap;margin-top:56px;padding:22px 0;border-top:1px solid rgba(255,255,255,.18)}
.hero-aud a{font-size:12.5px;color:rgba(255,255,255,.66);text-decoration:none;display:flex;gap:8px;align-items:center}
.hero-aud a::before{content:"→";color:var(--gold)}
.hero-aud a:hover{color:#fff}

/* ---- trust ---- */
.trust{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);background:var(--line)}
.trust>div{background:#fff;padding:30px 20px;display:flex;flex-direction:column;gap:6px}
.trust b{font-family:var(--en);font-size:26px;font-weight:800;color:var(--navy);line-height:1.1}
.trust b i{font-style:normal;color:var(--gold);font-size:.7em}
.trust span{font-size:12px;color:var(--ink-2);line-height:1.7}
.trust-note{margin-top:14px;text-align:right}

/* ---- origin question ---- */
.origin{text-align:center;position:relative}
.qmark{font-family:var(--en);font-size:clamp(88px,13vw,170px);font-weight:800;color:var(--navy);line-height:1;opacity:.1;transition:opacity .8s,transform .8s;display:inline-block}
.origin .h-xl{margin-top:-24px;position:relative}
.origin-body{max-width:640px;margin:44px auto 0;text-align:left;color:var(--ink-2);line-height:2.2;font-size:15.5px}

/* ---- process ---- */
.proc{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:var(--line);border:1px solid var(--line);margin-top:56px}
.proc>div{background:#fff;padding:0 0 28px;position:relative}
.proc-img{aspect-ratio:4/3;background:var(--navy) center/cover no-repeat}
.proc-body{padding:22px 20px 0}
.proc i{font-family:var(--en);font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--gold);font-style:normal}
.proc h3{font-size:16px;font-weight:800;color:var(--navy);margin:8px 0 8px}
.proc p{font-size:12px;color:var(--ink-2);line-height:1.9}
.proc>div:not(:last-child)::after{content:"→";position:absolute;right:-14px;top:38%;z-index:2;font-family:var(--en);font-weight:800;color:var(--gold);font-size:18px}
.case-l .eyebrow{color:var(--gold)}

/* ---- cards ---- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{background:#fff;border:1px solid var(--line);padding:34px 30px;text-decoration:none;display:block;transition:all .2s;position:relative}
a.card:hover{border-color:var(--navy);transform:translateY(-3px)}
.card i{font-family:var(--en);font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--navy-l);font-style:normal}
.card h3{font-size:18px;font-weight:800;color:var(--navy);margin:12px 0 4px;line-height:1.55}
.card .tag-line{font-size:13px;font-weight:700;color:var(--gold);margin-bottom:12px}
.card p{font-size:12.5px;color:var(--ink-2);line-height:1.95}
.card .st{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.08em;padding:3px 10px;border:1px solid var(--gold);color:#8a6d1f;margin-bottom:12px}
.card-img{aspect-ratio:16/9;background:var(--navy) center/cover no-repeat;margin:-34px -30px 24px}

/* ---- impact dashboard ---- */
.dash{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:52px}
.dash>div{background:#fff;border-top:3px solid var(--navy);padding:36px 32px;border:1px solid var(--line);border-top:3px solid var(--navy)}
.dash h3{font-family:var(--en);font-size:13px;font-weight:800;letter-spacing:.14em;color:var(--navy)}
.dash h3 span{display:block;font-family:var(--font);font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:0;margin-top:4px}
.dash ul{margin-top:20px}
.dash li{font-size:13px;color:var(--ink-2);padding:9px 0 9px 16px;border-bottom:1px solid var(--line);position:relative;line-height:1.8}
.dash li::before{content:"";position:absolute;left:0;top:18px;width:6px;height:2px;background:var(--gold)}
.metric{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border:1px solid var(--line)}
.metric>div{background:#fff;padding:34px 28px}
.metric b{font-family:var(--en);font-size:38px;font-weight:800;color:var(--navy);line-height:1;display:block}
.metric b i{font-style:normal;color:var(--gold);font-size:.55em}
.metric span{font-size:12px;color:var(--ink-2);display:block;margin-top:10px;line-height:1.8}

/* ---- quotes ---- */
.quote{background:#fff;border:1px solid var(--line);border-left:3px solid var(--navy);padding:36px 34px}
.quote p{font-size:14px;line-height:2.1;color:var(--ink)}
.quote footer{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);display:flex;gap:14px;align-items:center}
.quote footer img{width:44px;height:44px;object-fit:cover;background:var(--navy)}
.quote b{font-size:13.5px;color:var(--navy);display:block}
.quote span{font-size:11.5px;color:var(--ink-3)}

/* ---- founder ---- */
.founder{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.founder-img{aspect-ratio:4/5;background:var(--navy) center/cover no-repeat;border:1px solid var(--line)}
.founder-name{margin-top:28px;font-size:14px;color:var(--ink-2)}
.founder-name b{font-size:19px;color:var(--navy);display:block;margin-bottom:4px}

/* ---- media strip ---- */
.mstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:48px}
.mstrip>div{aspect-ratio:4/3;background:var(--navy-d) center/cover no-repeat;position:relative}
/* 実際の全ページで直下は <figure>。高さを与えるルールが >div にしか無く、
   index / speaking / project-mogi-kucho / join の帯が高さ0で不可視になっていた */
.mstrip>figure{aspect-ratio:4/3;background:var(--navy-d) center/cover no-repeat;position:relative;margin:0}
.mstrip figcaption,.mstrip .cap{position:absolute;left:0;bottom:0;right:0;background:linear-gradient(transparent,rgba(23,38,74,.92));color:#fff;font-size:12px;padding:36px 18px 14px;line-height:1.6}
/* ── シネマティック・アコーディオン型フィルムストリップ（全ページ共通） ── */
.flm{display:flex;gap:8px;height:min(62vh,540px);margin-top:34px}
.flm-p{position:relative;flex:1;min-width:0;border:0;padding:0;cursor:pointer;overflow:hidden;background:#0e1830;transition:flex .7s cubic-bezier(.25,.8,.25,1);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.flm-p::before{content:"";position:absolute;inset:0;background-image:var(--fi);background-size:cover;background-position:center;transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .5s;filter:grayscale(.35) brightness(.72)}
.flm-p::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,24,48,.04) 42%,rgba(14,24,48,.88));opacity:0;transition:opacity .5s}
.flm-p.is-on{flex:4.6}
.flm-p.is-on::before{filter:none;transform:scale(1.03)}
.flm-p.is-on::after{opacity:1}
.flm-side{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.85);font-size:12px;font-weight:800;letter-spacing:.12em;writing-mode:vertical-rl;white-space:nowrap;transition:opacity .35s;z-index:2}
.flm-side i{font-family:var(--en);font-style:normal;font-size:10px;color:var(--gold);letter-spacing:.18em;writing-mode:horizontal-tb}
.flm-p.is-on .flm-side{opacity:0}
.flm-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 24px 20px;text-align:left;opacity:0;transform:translateY(12px);transition:opacity .55s .18s,transform .55s .18s;z-index:2}
.flm-p.is-on .flm-cap{opacity:1;transform:none}
.flm-cap i{display:block;font-family:var(--en);font-style:normal;font-size:10px;font-weight:800;letter-spacing:.22em;color:var(--gold);text-transform:uppercase}
.flm-cap b{display:block;font-size:clamp(19px,2.4vw,26px);font-weight:800;color:#fff;margin-top:6px}
.flm-cap em{display:block;font-style:normal;font-size:12px;color:rgba(255,255,255,.78);line-height:1.9;margin-top:6px;max-width:440px}
@media(hover:hover){.flm-p:hover::before{filter:grayscale(0) brightness(.9)}}
@media(max-width:860px){
 .flm{height:58vh;max-height:460px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:10px;padding-bottom:6px}
 .flm-p{flex:0 0 76%;scroll-snap-align:center}
 .flm-p.is-on{flex:0 0 76%}
 .flm-p::before{filter:none}.flm-p::after{opacity:1}
 .flm-cap{opacity:1;transform:none}.flm-side{display:none}
}
@media(prefers-reduced-motion:reduce){.flm-p,.flm-p::before,.flm-cap{transition:none}}
.fmt{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.fmt span{font-size:12.5px;font-weight:700;color:var(--navy);border:1px solid var(--line-n);padding:8px 18px;background:#fff}

/* ---- news ---- */
.news{margin-top:44px;border-top:1px solid var(--line)}
.news a{display:grid;grid-template-columns:96px 118px 1fr;gap:20px;align-items:baseline;padding:19px 4px;border-bottom:1px solid var(--line);text-decoration:none;transition:background .15s}
.news a:hover{background:var(--off)}
.news time{font-family:var(--en);font-size:12px;color:var(--ink-3)}
.news i{font-family:var(--en);font-size:9.5px;font-weight:800;letter-spacing:.12em;color:var(--navy);border:1px solid var(--line-n);padding:3px 0;text-align:center;font-style:normal}
.news span{font-size:13.5px;color:var(--ink)}

/* ---- final CTA ---- */
.final{position:relative;background:var(--navy-d);overflow:hidden}
.final-bg{position:absolute;inset:0;background:center/cover no-repeat;opacity:.18}
.final .wrap{position:relative;z-index:2;text-align:center;padding-top:120px;padding-bottom:120px}
.final h2{font-size:clamp(30px,4.6vw,52px);font-weight:800;color:#fff;line-height:1.5}
.final p{color:rgba(255,255,255,.7);margin-top:22px;font-size:15px}
.final .hero-btns{justify-content:center;margin-top:44px}

/* ---- page hero ---- */
.phero{background:var(--navy);color:#fff;padding:96px 0 72px;position:relative;overflow:hidden}
.phero-q{position:absolute;right:-2%;top:-18%;font-family:var(--en);font-size:340px;font-weight:800;color:rgba(255,255,255,.045);line-height:1;pointer-events:none}
.phero .eyebrow{color:var(--gold)}
.phero h1{font-size:clamp(30px,4.4vw,50px);font-weight:800;line-height:1.42}
.phero p{color:rgba(255,255,255,.7);margin-top:20px;max-width:620px;font-size:14.5px;line-height:2}
.crumb{font-size:11px;color:rgba(255,255,255,.5);margin-bottom:28px;font-family:var(--en)}
.crumb a{color:rgba(255,255,255,.5);text-decoration:none}
.crumb a:hover{color:#fff}

/* ---- tables ---- */
.tbl{width:100%;border-collapse:collapse;margin-top:36px;background:#fff;border:1px solid var(--line)}
.tbl th{width:190px;background:var(--off);font-size:12.5px;font-weight:700;color:var(--ink-2);text-align:left;padding:16px 20px;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}
.tbl td{font-size:13.5px;padding:16px 20px;border-bottom:1px solid var(--line);line-height:1.95}

/* ---- timeline ---- */
.tline{position:relative;padding-left:36px;margin-top:52px}
.tline::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tl-y{position:relative;margin-bottom:52px}
.tl-y>b{display:inline-block;font-family:var(--en);font-size:13px;font-weight:800;background:var(--navy);color:#fff;padding:5px 16px;margin-left:-36px;margin-bottom:8px}
.tl-y>i{display:block;font-size:12px;color:var(--ink-3);font-style:normal;margin-bottom:18px}
.tl-i{background:#fff;border:1px solid var(--line);border-left:3px solid var(--navy-l);padding:16px 20px;margin-bottom:12px}
.tl-i.g{border-left-color:var(--gold)}
/* 年表の合間に差し込む写真（年ブロックの直前に置く） */
.tl-ph{margin:0 0 30px -36px;overflow:hidden}
/* 4つの節目（index.html と history.html で共用。もとは index のページ内定義だった） */
.fs-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.fs-steps>div{background:#fff;padding:26px 22px 24px}
.fs-steps i{display:block;font-family:var(--en);font-style:normal;font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--gold)}
.fs-steps b{display:block;font-size:14px;font-weight:800;color:var(--navy);margin:10px 0 12px;line-height:1.7}
.fs-steps span{display:block;font-size:12.5px;line-height:2;color:var(--ink-2)}
@media(max-width:1080px){.fs-steps{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.fs-steps{grid-template-columns:1fr}}
.tl-ph img{width:100%;height:auto;display:block;aspect-ratio:16/4.9;object-fit:cover}
@media(max-width:760px){.tl-ph{margin-left:-36px}.tl-ph img{aspect-ratio:16/6.3}}
.tl-i b{font-size:13.5px;color:var(--navy);display:block}
.tl-i span{font-size:12px;color:var(--ink-2);display:block;margin-top:4px;line-height:1.8}
.tl-i i{display:inline-block;font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.1em;color:#8a6d1f;border:1px solid var(--gold);padding:2px 9px;margin-bottom:7px}
.tl-src{display:inline-block;font-size:11px;font-family:var(--en);font-weight:700;color:var(--navy-l);text-decoration:none;border-bottom:1px solid rgba(79,111,175,.4);margin-top:9px;transition:color .2s,border-color .2s}
.tl-src:hover{color:var(--navy);border-color:var(--navy)}

/* ---- project case template ---- */
.pj-q{background:var(--off);text-align:center;padding:110px 0;position:relative;overflow:hidden}
.pj-q i{font-family:var(--en);font-size:12px;font-weight:800;letter-spacing:.22em;color:var(--gold);font-style:normal;text-transform:uppercase}
.pj-q h2{font-size:clamp(26px,4vw,44px);font-weight:800;color:var(--navy);line-height:1.6;margin-top:22px}
/* 問いのセクションに共通の巨大Q（疑問を大切にする美学の統一記号） */
.pj-q::before{content:"Q";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--en);font-size:min(340px,52vw);font-weight:800;line-height:1;color:var(--navy);opacity:.045;pointer-events:none;z-index:0}
.pj-q>*{position:relative;z-index:1}
/* 重要な問い見出しに添える共通Qバッジ（.q-badge）— 見出しサイズに依らず一定
   ★ box-sizing を明示すること。`*{box-sizing:border-box}` は擬似要素に効かないため、
     省略すると content-box になり width/height に border 2px×2 が上乗せされる。
     以前は「34px指定・実寸38px」で、行ボックス(line-height)は content-box の
     上端から積まれるため Q が円の中心より2px上にずれていた。
     line-height は必ず content-box の高さ（＝width−border×2）と一致させる。 */
.q-badge::before{content:"Q";display:block;box-sizing:border-box;font-family:var(--en);font-size:15px;font-weight:800;line-height:34px;text-align:center;color:var(--gold);border:2px solid var(--gold);border-radius:50%;width:38px;height:38px;margin-bottom:16px}
@media(max-width:600px){.q-badge::before{font-size:13px;line-height:30px;width:34px;height:34px;margin-bottom:12px}}
.pj-block{padding:88px 0;border-bottom:1px solid var(--line)}
.pj-num{font-family:var(--en);font-size:12px;font-weight:800;letter-spacing:.2em;color:var(--gold)}
.pj-t{font-size:clamp(22px,2.8vw,30px);font-weight:800;color:var(--navy);margin-top:10px;line-height:1.55}
.pj-body{margin-top:26px;max-width:720px;color:var(--ink-2);line-height:2.15;font-size:15px}
.exp{margin-top:44px;border-top:1px solid var(--line)}
.exp>div{display:grid;grid-template-columns:120px 200px 1fr;gap:24px;padding:22px 4px;border-bottom:1px solid var(--line);align-items:baseline}
.exp b{font-family:var(--en);font-size:13px;font-weight:800;color:var(--gold)}
.exp h4{font-size:15px;font-weight:800;color:var(--navy)}
.exp p{font-size:13px;color:var(--ink-2);line-height:1.9}
.next-q{background:var(--navy);color:#fff;padding:88px 0;text-align:center}
.next-q i{font-family:var(--en);font-size:12px;font-weight:800;letter-spacing:.22em;color:var(--gold);font-style:normal}
.next-q h2{font-size:clamp(22px,3.2vw,34px);font-weight:800;line-height:1.7;margin-top:20px}
.next-q p{color:rgba(255,255,255,.68);margin-top:18px;font-size:14px}
.pcard .rom{font-family:var(--en);font-size:11px;letter-spacing:.14em;color:var(--ink-3);margin-top:2px}
.pcard .role{font-size:12.5px;font-weight:700;color:var(--navy-l);margin-top:8px}
.pcard .q{margin-top:16px;padding:14px 18px;background:var(--off);border-left:2px solid var(--gold);font-size:13px;line-height:1.95}
.pcard .q i{font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.14em;color:#8a6d1f;display:block;margin-bottom:4px}
.pcard .bio{font-size:13px;color:var(--ink-2);margin-top:14px;line-height:2}
.mgrid .ph{aspect-ratio:1;background:var(--navy);overflow:hidden}

/* ---- chips / filter ---- */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.chips button,.chips span{font-size:12px;font-weight:700;border:1px solid var(--line-n);background:#fff;color:var(--navy);padding:8px 18px}
.chips button.on{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ---- forms ---- */
.form{background:#fff;border:1px solid var(--line);padding:48px 44px;max-width:760px}
.f-row{margin-bottom:22px}
.f-row label{display:block;font-size:12.5px;font-weight:800;color:var(--navy);margin-bottom:8px}
.f-row label em{font-style:normal;color:#B0432E;font-size:10.5px;margin-left:6px;font-weight:700}
.f-row input,.f-row select,.f-row textarea{width:100%;padding:13px 15px;border:1px solid var(--line);background:var(--off);font-family:inherit;font-size:14px;color:var(--ink);min-height:44px}
.f-row textarea{min-height:130px;resize:vertical}
.f-row input:focus,.f-row select:focus,.f-row textarea:focus{outline:2px solid var(--navy);background:#fff}
.f-err{display:none;color:#B0432E;font-size:11.5px;margin-top:6px;font-weight:700}
.f-row.error input,.f-row.error select,.f-row.error textarea{border-color:#B0432E}
.f-row.error .f-err{display:block}
.f-ok{display:none;background:var(--off);border-left:3px solid var(--navy);padding:28px;font-size:14px;line-height:2}
.f-hide{display:none}

/* ---- FAQ ---- */
.faq{margin-top:40px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 34px;font-size:15px;font-weight:800;color:var(--navy);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--en);position:absolute;left:2px;color:var(--gold);font-weight:800}
.faq summary::after{content:"+";font-family:var(--en);position:absolute;right:10px;top:20px;font-size:20px;color:var(--navy-l);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 34px 26px;font-size:13.5px;color:var(--ink-2);line-height:2.05;position:relative}
.faq .a::before{content:"A";font-family:var(--en);position:absolute;left:2px;color:var(--navy-l);font-weight:800}

/* ---- misc ---- */
.dl-list{margin-top:32px;border-top:1px solid var(--line)}
.dl-list>div{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 4px;border-bottom:1px solid var(--line);font-size:13.5px}
.dl-list b{color:var(--navy)}
.dl-list span{font-size:11.5px;color:var(--ink-3)}
.bio-box{background:#fff;border:1px solid var(--line);padding:26px 28px;margin-top:16px}
.bio-box i{font-family:var(--en);font-size:10.5px;font-weight:800;letter-spacing:.16em;color:var(--gold);font-style:normal}
.bio-box p{font-size:13.5px;margin-top:10px;line-height:2}
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.marq{overflow:hidden;background:var(--navy);padding:16px 0;border-top:1px solid rgba(255,255,255,.08)}
.marq div{display:flex;white-space:nowrap;animation:mq 30s linear infinite;width:max-content}
.marq span{font-family:var(--en);font-size:12px;letter-spacing:.2em;color:rgba(255,255,255,.4);padding:0 34px}
.marq b{color:var(--gold);font-weight:700}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---- reveal ---- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.hero-slide{transition:none}.marq div{animation:none}}

/* ---- responsive ---- */
@media(max-width:1080px){
  .gh-nav{display:none}.gh-burger{display:block}
  .proc{grid-template-columns:1fr 1fr}.proc>div::after{display:none}
  .trust{grid-template-columns:repeat(3,1fr)}
  .ft-main{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .wrap,.wrap-n,.gh-in{padding-left:22px;padding-right:22px}
  .sec{padding:72px 0}.sec-s{padding:52px 0}
  .grid2,.grid3,.grid4,.dash,.metric,.case,.founder,.split{grid-template-columns:1fr}
  .trust{grid-template-columns:1fr 1fr}
  .mstrip{grid-template-columns:1fr}
  .news a{grid-template-columns:82px 1fr;grid-template-rows:auto auto}
  .news span{grid-column:1/3}
  .exp>div{grid-template-columns:1fr;gap:6px}
  .hero-in{padding:120px 22px 0}
  .hero{min-height:78vh}
  .proc{grid-template-columns:1fr}
  .tbl th{width:120px;white-space:normal}
  /* セル内の文章が長い表は縦積みにする（.tbl tbl-stack） */
  .tbl-stack tr{display:block;border-bottom:1px solid var(--line)}
  .tbl-stack tr:last-child{border-bottom:0}
  .tbl-stack th,.tbl-stack td{display:block;width:auto;white-space:normal;border-bottom:0}
  .tbl-stack th{padding:14px 20px 8px}
  .tbl-stack td{padding:0 20px 16px}
  .form{padding:32px 24px}
  .phero-q{font-size:220px}
}

/* ============================================================
   v2.1 — MOTION & VISUAL LAYER
   ============================================================ */

/* ---- opening intro ---- */
#intro{position:fixed;inset:0;z-index:9999;background:var(--navy-d);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:26px;transition:opacity .7s ease,visibility .7s}
#intro.out{opacity:0;visibility:hidden;pointer-events:none}


#intro.zoom .intro-logo{animation:logoZoom .8s cubic-bezier(.7,0,.9,.2) forwards}
#intro.zoom .intro-tag,#intro.zoom .intro-bar{animation:introFade .25s forwards}
@keyframes logoZoom{60%{opacity:1}100%{transform:scale(15);opacity:0}}
@keyframes introFade{to{opacity:0}}

/* hero entrance (after intro / on load) */
/* HERO文言群（indexヒーロー限定）＝開口後、h1（line-stack）と同時に一斉に素早く立ち上げる。
   終点はopacity:1を明示（riseの暗黙終点に依存しない） */
.hero .hero-eyebrow,.hero .hero-sub,.hero .hero-desc,.hero .hero-btns,.hero .hero-aud{
 opacity:0;transform:translateY(24px);
 transition:opacity .5s ease,transform .55s cubic-bezier(.2,.72,.2,1)}
.hero-lit .hero .hero-eyebrow,.hero-lit .hero .hero-sub,.hero-lit .hero .hero-desc,.hero-lit .hero .hero-btns,.hero-lit .hero .hero-aud{opacity:1;transform:none}
@keyframes rise{from{opacity:0;transform:translateY(30px)}}

/* ---- scroll progress / header ---- */
#pbar{position:fixed;top:0;left:0;height:3px;background:var(--gold);width:0;z-index:9998}
.gh{transition:box-shadow .3s}
.gh.scrolled{box-shadow:0 8px 28px rgba(8,15,36,.4)}

/* ---- ken burns ---- */
.hero-slide.on{animation:kb 8.5s ease-out forwards}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.07)}}

/* ---- staggered reveal for grids ---- */
.rv.grid2>*,.rv.grid3>*,.rv.grid4>*,.rv.proc>div,.rv.trust>div,.rv.metric>div,.rv.dash>div,.rv.mstrip>figure,.rv.mosaic>a{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}
.rv.in.grid2>*,.rv.in.grid3>*,.rv.in.grid4>*,.rv.in.proc>div,.rv.in.trust>div,.rv.in.metric>div,.rv.in.dash>div,.rv.in.mstrip>figure,.rv.in.mosaic>a{opacity:1;transform:none}
.rv.in.grid2>*:nth-child(2),.rv.in.grid3>*:nth-child(2),.rv.in.grid4>*:nth-child(2),.rv.in.proc>div:nth-child(2),.rv.in.trust>div:nth-child(2),.rv.in.metric>div:nth-child(2),.rv.in.dash>div:nth-child(2),.rv.in.mstrip>figure:nth-child(2),.rv.in.mosaic>a:nth-child(2){transition-delay:.08s}
.rv.in.grid2>*:nth-child(3),.rv.in.grid3>*:nth-child(3),.rv.in.grid4>*:nth-child(3),.rv.in.proc>div:nth-child(3),.rv.in.trust>div:nth-child(3),.rv.in.metric>div:nth-child(3),.rv.in.dash>div:nth-child(3),.rv.in.mstrip>figure:nth-child(3),.rv.in.mosaic>a:nth-child(3){transition-delay:.16s}
.rv.in.grid2>*:nth-child(4),.rv.in.grid3>*:nth-child(4),.rv.in.grid4>*:nth-child(4),.rv.in.proc>div:nth-child(4),.rv.in.trust>div:nth-child(4),.rv.in.metric>div:nth-child(4),.rv.in.mosaic>a:nth-child(4){transition-delay:.24s}
.rv.in.grid2>*:nth-child(5),.rv.in.grid3>*:nth-child(5),.rv.in.grid4>*:nth-child(5),.rv.in.proc>div:nth-child(5),.rv.in.trust>div:nth-child(5),.rv.in.metric>div:nth-child(5),.rv.in.mosaic>a:nth-child(5){transition-delay:.32s}
.rv.in.grid2>*:nth-child(6),.rv.in.grid3>*:nth-child(6),.rv.in.metric>div:nth-child(6),.rv.in.mosaic>a:nth-child(6){transition-delay:.4s}
.rv.in.mosaic>a:nth-child(7){transition-delay:.48s}
.rv.in.mosaic>a:nth-child(8){transition-delay:.56s}

/* ---- photo mosaic ---- */
.mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:8px;margin-top:48px}
.mosaic a{position:relative;overflow:hidden;display:block;background:var(--navy);cursor:zoom-in}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.mosaic a:hover img{transform:scale(1.08)}
.mosaic .cap{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 12px;background:linear-gradient(transparent,rgba(23,38,74,.88));color:#fff;font-size:11px;opacity:0;transition:opacity .3s}
.mosaic a:hover .cap,.mosaic a:focus-visible .cap{opacity:1}
.mo-w2{grid-column:span 2}.mo-h2{grid-row:span 2}
@media(max-width:820px){.mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:130px}}

/* ---- lightbox ---- */
#lbx{position:fixed;inset:0;background:rgba(10,16,34,.93);z-index:9997;display:none;align-items:center;justify-content:center;padding:4vh 4vw;cursor:zoom-out}
#lbx.on{display:flex}
#lbx img{max-width:100%;max-height:88vh;box-shadow:0 30px 90px rgba(0,0,0,.55)}
#lbx figcaption{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:rgba(255,255,255,.75);font-size:12.5px}
#lbx figcaption:empty{display:none}
.mstrip figure{cursor:zoom-in}

/* ---- expansion map ---- */
.xmap-wrap{margin-top:52px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(180deg,#1C2E5B,#17264A);overflow:hidden}
.xmap{display:block;width:100%;height:auto}
.xmap .grid line{stroke:rgba(255,255,255,.05);stroke-width:1}
.xmap .coast{fill:none;stroke:rgba(79,111,175,.45);stroke-width:1.5}
.xmap text{font-family:var(--font);fill:#fff}
.xmap .lbl{font-size:16px;font-weight:800}
.xmap .sub{font-size:10.5px;fill:rgba(255,255,255,.62)}
.xmap .en{font-family:var(--en);letter-spacing:.22em;font-size:9.5px;fill:var(--gold);font-weight:700}
.xmap .en.b{fill:#8FA7D9}
.xmap .node{fill:var(--gold);filter:drop-shadow(0 0 7px rgba(200,168,75,.65))}
.xmap .node-w{fill:#fff;filter:drop-shadow(0 0 5px rgba(255,255,255,.5))}
.xmap .planned{fill:#4F6FAF;filter:drop-shadow(0 0 6px rgba(79,111,175,.7))}
.xmap .ring{fill:none;stroke:#4F6FAF;stroke-width:1.3;stroke-dasharray:3 4}
.xmap .zone{fill:none;stroke:rgba(255,255,255,.25);stroke-dasharray:3 7;stroke-width:1.2}
.xmap .pulse{fill:none;stroke:var(--gold);stroke-width:1.3;opacity:0;transform-origin:center;transform-box:fill-box}
.rv.in .pulse{animation:pulse 2.6s ease-out infinite}
.rv.in .pulse.p2{animation-delay:1.3s}
@keyframes pulse{0%{opacity:.75;transform:scale(.35)}100%{opacity:0;transform:scale(2.3)}}
.xmap .route{fill:none;stroke:rgba(255,255,255,.6);stroke-width:1.6;stroke-dasharray:5 8;opacity:0;transition:opacity .9s ease}
.rv.in .route{opacity:.9;animation:flow 1.5s linear infinite}
.rv.in .route.r2{transition-delay:.35s;animation-delay:.35s}
.rv.in .route.r3{transition-delay:.7s;animation-delay:.7s}
.rv.in .route.rg{transition-delay:1.1s;animation-delay:1.1s;stroke:rgba(200,168,75,.55)}
@keyframes flow{to{stroke-dashoffset:-26}}
.xmap-legend{display:flex;gap:26px;flex-wrap:wrap;padding:16px 26px;border-top:1px solid rgba(255,255,255,.12);font-size:11.5px;color:rgba(255,255,255,.65)}
.xmap-legend b{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:8px;vertical-align:-1px}

/* ---- org chart ---- */
.org{margin-top:52px}
.rv.org .org-node,.rv.org .org-sub,.rv.org .org-line{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.rv.in.org .org-node,.rv.in.org .org-sub,.rv.in.org .org-line{opacity:1;transform:none}
.dl1{transition-delay:.05s!important}.dl2{transition-delay:.14s!important}.dl3{transition-delay:.24s!important}.dl4{transition-delay:.34s!important}.dl5{transition-delay:.44s!important}.dl6{transition-delay:.54s!important}.dl7{transition-delay:.66s!important}.dl8{transition-delay:.76s!important}

/* ---- parallax hint ---- */
.phero-q{will-change:transform}

/* ---- reduced motion (v2.1) ---- */
@media(prefers-reduced-motion:reduce){
  #intro,#pbar{display:none}
  .hero-slide.on{animation:none}
  .hero .hero-eyebrow,.hero .hero-sub,.hero .hero-desc,.hero .hero-btns,.hero .hero-aud{opacity:1;transform:none;transition:none;animation:none}
  .rv.grid2>*,.rv.grid3>*,.rv.grid4>*,.rv.proc>div,.rv.trust>div,.rv.metric>div,.rv.dash>div,.rv.mstrip>figure,.rv.mosaic>a,.rv.org .org-node,.rv.org .org-sub,.rv.org .org-line{opacity:1;transform:none;transition:none}
  .rv.in .pulse,.rv.in .route{animation:none}
  .xmap .route{opacity:.9}
  .mosaic img{transition:none}
}

/* ============================================================
   v2.2 — LOGO / PAGE HERO IMAGE / PARTNERS / DEPT MEMBERS / NEWS
   ============================================================ */

/* ---- logo (typeC) ---- */
.gh-logo{display:flex;align-items:center}
.gh-logo img{height:30px;width:auto;display:block}
.ft-logo img{height:38px;width:auto;display:block}

#intro.zoom .intro-img{animation:logoZoom .8s cubic-bezier(.7,0,.9,.2) forwards}

/* ---- page hero background image ---- */
.phero{isolation:isolate}
.phero-bg{position:absolute;inset:0;background-position:center;background-size:cover;opacity:.34;z-index:-1}
.phero-bg.multi{animation:none}
.phero-bg.multi .hero-slide{animation:none}
.phero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,38,74,.78) 12%,rgba(23,38,74,.35) 70%,rgba(23,38,74,.25))}

/* ---- expansion map: online links / base ring ---- */
.xmap .olink{fill:none;stroke:rgba(255,255,255,.38);stroke-width:1.1;stroke-dasharray:2 6;opacity:0;transition:opacity .9s ease 1.4s}
.rv.in .olink{opacity:1}
.xmap .ring-w{fill:none;stroke:rgba(255,255,255,.55);stroke-width:1.1;stroke-dasharray:2 4}

/* ---- partner logo marquee ---- */
.plogos{overflow:hidden;display:flex;flex-direction:column;gap:12px;margin-top:40px}
.plogos-track{display:flex;gap:12px;width:max-content;animation:plmq 80s linear infinite;padding:2px 6px}
.plogos-row.rev .plogos-track{animation-direction:reverse;animation-duration:138s}
.plogos:hover .plogos-track{animation-play-state:paused}
@keyframes plmq{to{transform:translateX(-50%)}}
.pl-chip{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:#fff;padding:15px 28px;font-size:13.5px;font-weight:800;color:var(--navy);white-space:nowrap}
.pl-chip i{font-style:normal;font-family:var(--en);font-size:9.5px;letter-spacing:.16em;color:var(--ink-3);font-weight:700}

/* ---- department member layout ---- */
.dept{margin-top:64px}
.dept:first-of-type{margin-top:48px}
.dept-h{display:flex;align-items:baseline;gap:16px;border-bottom:2px solid var(--navy);padding-bottom:12px}
.dept-h h3{font-size:21px;font-weight:800;color:var(--navy)}
.dept-h span{font-family:var(--en);font-size:10px;letter-spacing:.22em;color:var(--gold);font-weight:800;text-transform:uppercase}
.dept-note{font-size:12px;color:var(--ink-2);margin-top:12px;line-height:1.9}
.unit{font-size:13px;font-weight:800;color:var(--navy-l);margin:32px 0 0;letter-spacing:.05em;display:flex;align-items:center;gap:10px}
.unit::after{content:"";flex:1;height:1px;background:var(--line)}
.mcards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.mcard{background:#fff;border:1px solid var(--line);padding:18px}
.mcard-top{display:flex;gap:14px;align-items:center}
.mcard .ph{width:62px;height:62px;background:var(--navy);flex:none;overflow:hidden;position:relative}
.mcard .ph img{width:100%;height:100%;object-fit:cover}
.mcard .ph.noimg::after{content:"？";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:var(--en);font-weight:800;font-size:24px}
.mcard b{font-size:14.5px;color:var(--navy);display:block;line-height:1.4}
.mcard .rom{font-family:var(--en);font-size:9.5px;letter-spacing:.12em;color:var(--ink-3);display:block;margin-top:1px}
.mcard .rl{font-size:10.5px;color:var(--ink-2);margin-top:4px}
.mcard .rl i{font-style:normal;color:#8a6d1f;border:1px solid var(--gold);padding:1px 7px;font-size:9.5px;font-weight:800;margin-left:6px;white-space:nowrap}
.mcard .mq{margin-top:12px;padding-top:11px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-2);line-height:1.9}
.mcard .mq::before{content:"Q. ";color:var(--gold);font-weight:800;font-family:var(--en)}
@media(max-width:900px){.mcards{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.mcards{grid-template-columns:1fr}}

/* ---- news article ---- */
.news-meta{display:flex;gap:14px;align-items:center;margin-bottom:22px}
.news-meta time{font-family:var(--en);color:var(--ink-3);font-size:13px}
.news-cat{font-family:var(--en);font-size:9.5px;font-weight:800;letter-spacing:.12em;color:var(--navy);border:1px solid var(--line-n);padding:4px 12px}
.news-body p{margin-bottom:20px;line-height:2.15;color:var(--ink-2);font-size:15px}
.news-fig{margin:38px 0;border:1px solid var(--line)}
.news-fig img{width:100%;display:block;background:var(--navy)}
.news-fig figcaption{padding:10px 14px;font-size:11.5px;color:var(--ink-3);background:var(--off)}
.news-back{margin-top:44px;padding-top:28px;border-top:1px solid var(--line);display:flex;gap:14px;flex-wrap:wrap}

/* ---- reduced motion (v2.2) ---- */
@media(prefers-reduced-motion:reduce){
  .plogos-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}
  /* 無限ループ用の複製セット（main.jsがaria-hidden付与）は静止時は「同じロゴの壁」になるだけなので隠す */
  .plogos-track>[aria-hidden="true"]{display:none}
  .rv.in .olink{transition:none;opacity:1}
  .intro-img{animation:none;opacity:1;transform:none}
}

/* ============================================================
   v2.3 — DATA VIZ / TOKYO MAP / OFFICIAL ORG LAYOUT / DEPT COLORS
   ============================================================ */

/* ---- dept colors (公式組織図準拠) ---- */
.dc-brand{--dc:#7B52C7}.dc-civic{--dc:#C2479B}.dc-clean{--dc:#4F8A3D}.dc-legacy{--dc:#5B8DEF}.dc-exec{--dc:#C8A84B}
.dept-h.dc-brand,.dept-h.dc-civic,.dept-h.dc-clean,.dept-h.dc-legacy,.dept-h.dc-exec{border-bottom-color:var(--dc)}
.dept-h.dc-brand span,.dept-h.dc-civic span,.dept-h.dc-clean span,.dept-h.dc-legacy span,.dept-h.dc-exec span{color:var(--dc)}

/* ---- demographic stacked bars ---- */
.dbars{margin-top:44px;display:grid;gap:38px;max-width:780px}
.dbar-t{font-size:13.5px;font-weight:800;color:var(--navy);margin-bottom:10px}
.dbar-bar{display:flex;height:40px;background:var(--off)}
.dbar-bar span{position:relative;display:block;height:100%;min-width:0}
.dbar-bar span::before{content:"";position:absolute;inset:0;background:var(--c);transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.dbar-bar span i{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--en);font-style:normal;font-weight:800;font-size:12px;color:#fff;opacity:0;transition:opacity .4s .75s}
.rv.in .dbar-bar span::before{transform:none}
.rv.in .dbar-bar span i{opacity:1}
.rv.in .dbar-bar span:nth-child(2)::before{transition-delay:.12s}
.rv.in .dbar-bar span:nth-child(3)::before{transition-delay:.24s}
.rv.in .dbar-bar span:nth-child(4)::before{transition-delay:.36s}
.dbar-lb{display:flex;margin-top:7px}
.dbar-lb span{font-size:11px;color:var(--ink-2);text-align:center;font-weight:700;min-width:0;overflow:hidden;white-space:nowrap}
.cA{--c:#9FB2DC}.cB{--c:#6D82B8}.cC{--c:#233A70}.cD{--c:#4F6FAF}
@media(prefers-reduced-motion:reduce){.dbar-bar span::before{transform:none;transition:none}.dbar-bar span i{opacity:1;transition:none}}

/* ---- Tokyo 23-ward map ---- */
.xmap .tk-out{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.4);stroke-width:1.6}
.xmap .tk-line{fill:none;stroke:rgba(255,255,255,.14);stroke-width:1}
.xmap .tk-adachi{fill:rgba(200,168,75,.26);stroke:var(--gold);stroke-width:1.4}
.xmap .tk-setagaya{fill:rgba(79,111,175,.3);stroke:#8FA7D9;stroke-width:1.3;stroke-dasharray:4 4}
.xmap .tk-pin{fill:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}
.xmap .tk-pin-dot{fill:var(--navy-d)}
.xmap .tk-lead{stroke:rgba(255,255,255,.45);stroke-width:1;fill:none}
.xmap .tk-sea{font-family:var(--en);font-size:10px;letter-spacing:.3em;fill:rgba(255,255,255,.25)}

/* ---- official-layout org chart (orgx) ---- */
.orgx{margin-top:52px;display:grid;grid-template-columns:minmax(150px,200px) 1fr minmax(110px,150px);grid-template-rows:auto 26px auto 30px auto;column-gap:18px;position:relative}
.ox-node{background:#fff;border:1.5px solid var(--navy);padding:12px 14px;text-align:center;position:relative;align-self:stretch}
.ox-node b{display:block;font-size:14px;font-weight:800;color:var(--navy);line-height:1.5}
.ox-node span{font-size:9.5px;color:var(--ink-2);line-height:1.7;display:block;margin-top:3px}
.ox-vision{grid-area:1/1;align-self:stretch}
.ox-soukai{grid-area:1/2}
.ox-soukai b{font-size:17px}
.ox-c1{grid-area:2/2;position:relative}
.ox-c1::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--line-n);transform:translateX(-50%)}
.ox-toukatsu{grid-area:3/1;align-self:center}
.ox-toukatsu::after{content:"";position:absolute;top:50%;right:-19px;width:19px;height:2px;background:var(--line-n)}
.ox-yakuin{grid-area:3/2}
.ox-c2{grid-area:4/2;position:relative}
.ox-c2::before{content:"";position:absolute;left:50%;top:0;height:50%;width:2px;background:var(--line-n);transform:translateX(-50%)}
.ox-c2::after{content:"";position:absolute;left:16.6%;right:16.6%;top:50%;height:2px;background:var(--line-n)}
.ox-rail{grid-area:1/3/5/4;position:relative}
.ox-rail::before{content:"";position:absolute;top:30px;left:-18px;right:50%;height:2px;background:var(--line-n)}
.ox-rail::after{content:"";position:absolute;top:30px;bottom:0;left:50%;width:2px;background:var(--line-n);transform:translateX(-50%)}
.ox-branches{grid-area:5/2;display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:16px;align-items:start}
.ox-b{position:relative}
.ox-branches .ox-b::before{content:"";position:absolute;top:-15px;left:50%;width:2px;height:15px;background:var(--line-n);transform:translateX(-50%)}
.ox-dept{border-left:5px solid var(--dc,var(--navy))}
.ox-t{color:var(--dc,var(--navy))!important}
.ox-shofu{grid-area:5/3;align-self:start}
.ox-shofu::before{content:"";position:absolute;top:-15px;left:50%;width:2px;height:15px;background:var(--line-n);transform:translateX(-50%)}
.ox-subs{display:grid;gap:10px;margin-top:28px;position:relative}
.ox-subs::before{content:"";position:absolute;top:-14px;height:2px;background:var(--line-n);left:var(--sl,25%);right:var(--sl,25%)}
.ox-subs.s2{--sl:25%;grid-template-columns:1fr 1fr}
.ox-subs.s3{--sl:16.6%;grid-template-columns:1fr 1fr 1fr}
.ox-sub{position:relative;background:#fff;border:1px solid var(--line);border-left:4px solid var(--dc,var(--navy));padding:10px 8px;font-size:10px;font-weight:800;color:var(--dc,var(--navy));text-align:center;line-height:1.6}
.ox-sub::before{content:"";position:absolute;top:-14px;left:50%;width:2px;height:14px;background:var(--line-n);transform:translateX(-50%)}
.ox-sub small{display:block;font-weight:400;color:var(--ink-3);font-size:9.5px;margin-top:3px;line-height:1.5}
.rv .ox-node,.rv .ox-sub{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.rv.in .ox-node,.rv.in .ox-sub{opacity:1;transform:none}
@media(max-width:860px){
  /* ---- 組織図（モバイル）: 左のレールに全ノードをぶら下げるツリーに組み替える ----
     PCの3列グリッドをそのまま縦積みすると、階層が消えて箱の羅列になり、
     さらに .ox-subs と次の部のノードが噛み合って重なっていた（実測 -9px）。 */
  .orgx{display:block;position:relative;padding-left:16px;margin-top:34px}
  .orgx::before{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:2px;background:var(--line-n)}
  .ox-c1,.ox-c2,.ox-rail{display:none}
  .ox-toukatsu::after,.ox-branches .ox-b::before,.ox-shofu::before{display:none}
  .ox-branches{display:block}
  /* 各ノードはレールから枝を1本伸ばしてぶら下がる */
  .ox-node{margin:0 0 12px;position:relative;text-align:left;padding:13px 15px}
  .ox-node::before{content:"";position:absolute;left:-11px;top:24px;width:11px;height:2px;background:var(--line-n)}
  .ox-node b{font-size:15px}
  .ox-node span{font-size:10.5px;margin-top:4px}
  /* 部の塊は前後に間を取り、どこからどこまでが一つの部かを分ける */
  .ox-branches>.ox-b{margin:0 0 22px;position:relative}
  .ox-branches>.ox-b>.ox-node{margin-bottom:0}
  /* 課は部の色のレールにぶら下げて字下げする（親子関係を線で示す） */
  .ox-subs{display:block;margin:0;padding-left:20px;position:relative}
  .ox-subs::before{content:"";display:block;position:absolute;left:9px;top:0;bottom:auto;
    height:calc(100% - 22px);width:2px;background:var(--dc,var(--line-n));opacity:.5;right:auto}
  .ox-sub{margin-top:8px;text-align:left;padding:10px 13px;font-size:11.5px;position:relative}
  .ox-sub::after{content:"";position:absolute;left:-11px;top:20px;width:11px;height:2px;
    background:var(--dc,var(--line-n));opacity:.5}
  .ox-sub br{display:none}          /* PC用の強制改行はモバイルでは不要（語中で割れる） */
  .ox-sub small{font-size:10px;margin-top:4px}
  .ox-shofu{margin-top:0}
}

@media(prefers-reduced-motion:reduce){.rv .ox-node,.rv .ox-sub{opacity:1;transform:none;transition:none}}

/* ============================================================
   v2.4 — MEMBER INTERVIEW
   ============================================================ */
.iv-head{display:grid;grid-template-columns:170px 1fr;gap:32px;align-items:center;background:#fff;border:1px solid var(--line);padding:32px;margin-top:8px}
.iv-head .ph{aspect-ratio:1;background:var(--navy) center/cover no-repeat}
.iv-head h2{font-size:22px;font-weight:800;color:var(--navy)}
.iv-head .rom{font-family:var(--en);font-size:10.5px;letter-spacing:.14em;color:var(--ink-3);margin-top:2px}
.iv-head .role{font-size:12px;font-weight:700;color:var(--navy-l);margin-top:8px;line-height:1.8}
.iv-lead{margin-top:36px;font-size:15px;color:var(--ink-2);line-height:2.15;border-left:3px solid var(--gold);padding-left:20px}
.iv-qa{margin-top:20px}
.iv-q{font-weight:800;color:var(--navy);font-size:15.5px;padding-left:34px;position:relative;margin-top:44px;line-height:1.85}
.iv-q::before{content:"Q";font-family:var(--en);position:absolute;left:0;top:-2px;color:var(--gold);font-weight:800;font-size:19px}
.iv-a{margin-top:14px;color:var(--ink-2);line-height:2.15;font-size:14.5px;padding-left:34px}
.iv-pull{margin:56px 0;padding:40px 44px 36px;background:var(--navy);color:#fff;font-size:clamp(17px,2.3vw,22px);font-weight:800;line-height:1.9;position:relative}
.iv-pull::before{content:"\201C";font-family:var(--en);font-size:64px;color:var(--gold);position:absolute;top:-4px;left:14px;opacity:.85;line-height:1}
.iv-prof{margin-top:60px;background:var(--off);border-left:3px solid var(--gold);padding:24px 28px;font-size:12.5px;line-height:2.1;color:var(--ink-2)}
.iv-prof b{color:var(--navy)}
.iv-nav{margin-top:52px;padding-top:32px;border-top:1px solid var(--line)}
.iv-nav p{font-family:var(--en);font-size:10.5px;font-weight:800;letter-spacing:.2em;color:var(--navy-l);margin-bottom:16px}
.iv-nav .grid3 a.card{padding:20px 22px}
.iv-nav .grid3 h3{font-size:14px;margin:6px 0 2px}
.iv-nav .grid3 p{font-size:11px}
@media(max-width:700px){.iv-head{grid-template-columns:1fr}.iv-head .ph{max-width:200px}.iv-pull{padding:32px 26px 28px}}

/* ============================================================
   v2.5 — PRECISION MAP / ORG LINKS / PROJECT LOGOS / PHOTO MOTION
   ============================================================ */
.xmap .tk-ward{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.22);stroke-width:1}
.ox-go{position:absolute;inset:0;z-index:2}
.ox-node{transition:transform .25s ease,box-shadow .25s ease}
.ox-node:has(.ox-go):hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(23,38,74,.14);border-color:var(--dc,var(--navy))}
.dept{scroll-margin-top:92px}
.pj-logo{display:inline-block;background:#fff;padding:12px 20px;margin-top:28px}
.pj-logo img{height:58px;width:auto;display:block}
.mstrip figure{overflow:hidden}
.mstrip figure>div{transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.mstrip figure:hover>div{transform:scale(1.06)}
.phero-bg{animation:kbg 16s ease-out forwards}
@keyframes kbg{from{transform:scale(1)}to{transform:scale(1.06)}}
@media(prefers-reduced-motion:reduce){.phero-bg{animation:none}.mstrip figure>div{transition:none}.ox-node{transition:none}}

/* ============================================================
   v2.6 — XL NUMBERS / XL FACES / MOTION POLISH
   ============================================================ */

/* ---- インパクト数値の大型化 ---- */
.trust b:has(span[data-count]){font-size:clamp(38px,4.4vw,56px);line-height:1;letter-spacing:-.01em}
.metric b{font-size:clamp(46px,6vw,70px);letter-spacing:-.015em}
.metric b i{font-size:.48em}
.dbar-bar{height:46px}
.dbar-bar span i{font-size:13.5px}

/* ---- メンバーカード：顔写真を全幅に（縦型再設計） ---- */
.mcard{padding:0;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease}
.mcard:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(23,38,74,.12)}
.mcard-top{display:block}
.mcard .ph{width:100%;height:auto;aspect-ratio:1/1}
.mcard .ph img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.mcard:hover .ph img{transform:scale(1.06)}
.mcard .ph.noimg::after{font-size:60px}
.mcard-top>div{padding:16px 18px 0}
.mcard b{font-size:16px}
.mcard .rom{font-size:10px;margin-top:2px}
.mcard .rl{margin-top:6px}
.mcard .mq{margin:12px 18px 18px;flex:1}
@media(min-width:701px){.iv-head{grid-template-columns:210px 1fr}}

/* ---- 部署見出し：下線が伸びる ---- */
.dept-h{border-bottom:0;position:relative}
.dept-h::after{content:"";position:absolute;left:0;bottom:0;height:2.5px;width:100%;background:var(--dc,var(--navy));transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.7,.2,1) .15s}
.dept-h.rv.in::after{transform:none}

/* ---- カード写真ホバーズーム統一 ---- */
a.card{overflow:hidden}
a.card .card-img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
a.card:hover .card-img{transform:scale(1.045)}
.proc>div{overflow:hidden}
.proc-img{transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.proc>div:hover .proc-img{transform:scale(1.05)}

@media(max-width:820px){.trust b:has(span[data-count]){font-size:40px}}
@media(prefers-reduced-motion:reduce){
  .mcard,.mcard .ph img,a.card .card-img,.proc-img{transition:none}
  .dept-h::after{transform:none;transition:none}
}

/* ============================================================
   v2.7 — CLEAN FACES / MEMBER MODAL / UNIFIED MANAGER CARDS
   ============================================================ */
.mcard .ph{background:var(--off)}
.iv-head .ph{background-color:var(--off)}
.quote footer img{background:var(--off)}
.mcard{position:relative}
.mcard[data-q]{cursor:pointer}
.mcard[data-q]::after{content:"＋";position:absolute;top:10px;right:12px;width:26px;height:26px;border:1px solid var(--line-n);background:rgba(255,255,255,.92);color:var(--navy);font-family:var(--en);font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;border-radius:50%;z-index:1;transition:transform .25s,background .25s}
.mcard[data-q]:hover::after{background:var(--navy);color:#fff;transform:rotate(90deg)}
.mcard[data-q]:focus-visible{outline:2px solid var(--navy);outline-offset:2px}

#mdl{position:fixed;inset:0;background:rgba(10,16,34,.9);z-index:9996;display:none;align-items:center;justify-content:center;padding:4vh 4vw}
#mdl.on{display:flex}
.mdl-p{background:#fff;max-width:780px;width:100%;display:grid;grid-template-columns:300px 1fr;position:relative;box-shadow:0 30px 90px rgba(0,0,0,.5);max-height:90vh;overflow:auto}
.mdl-ph{aspect-ratio:1;background:var(--off) center/cover no-repeat;min-height:260px}
.mdl-b{padding:34px 36px 30px}
.mdl-b h3{font-size:25px;font-weight:800;color:var(--navy)}
.mdl-rom{font-family:var(--en);font-size:10.5px;letter-spacing:.14em;color:var(--ink-3);margin-top:3px}
.mdl-rl{font-size:12.5px;font-weight:700;color:var(--navy-l);margin-top:10px;line-height:1.8}
.mdl-q{margin-top:20px;padding:16px 18px;background:var(--off);border-left:3px solid var(--gold);font-size:13.5px;line-height:2.05}
.mdl-q i{font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.14em;color:#8a6d1f;display:block;margin-bottom:6px}
.mdl-bio{margin-top:16px;font-size:12.5px;color:var(--ink-2);line-height:2}
.mdl-x{position:absolute;top:8px;right:10px;background:rgba(255,255,255,.9);border:0;font-size:26px;color:var(--ink-3);z-index:2;line-height:1;padding:4px 10px;cursor:pointer}
.mdl-x:hover{color:var(--navy)}
@media(max-width:640px){.mdl-p{grid-template-columns:1fr}.mdl-ph{aspect-ratio:4/3}}

/* ============================================================
   v2.8 — COUNTER FIX & XXL NUMBERS / PARTNER VOICES
   ============================================================ */
/* 原因修正：説明文用span規則がb内のカウンターspanを縮小・ブロック化していた */
.trust b span,.metric b span{display:inline;margin:0;color:inherit;line-height:1;font-size:inherit;font-family:var(--en)}
.trust b{font-size:21px;line-height:1.45}
.trust b span[data-count]{font-size:clamp(42px,5vw,62px);letter-spacing:-.01em;font-weight:800}
.trust b span[data-count]+i{font-size:clamp(22px,2.4vw,32px);vertical-align:2px}
.metric b{font-size:clamp(54px,7vw,84px);letter-spacing:-.02em}
.metric b i{font-size:.42em;margin-left:3px}

/* ============================================================
   v3.0 — CINEMATIC OPENING「観客席ではなくステージへ」(3.8s)
   ============================================================ */
#intro3{position:fixed;inset:0;z-index:9999;background:var(--navy-d);overflow:hidden}
#intro3 .skip3{position:absolute;right:22px;bottom:20px;z-index:20;background:none;border:1px solid rgba(255,255,255,.35);color:rgba(255,255,255,.75);font-family:var(--en);font-size:10px;letter-spacing:.2em;padding:8px 16px;cursor:pointer}
#intro3 .st{opacity:.85}
#intro3 .b3{animation:bandOff .1s .38s forwards}
#intro3 .b2{animation:bandOff .1s .47s forwards}
#intro3 .b1{animation:bandOff .1s .56s forwards}
@keyframes bandOff{to{opacity:.05}}



#intro3 .ch{opacity:0;animation:chOn .01s steps(1) forwards;text-shadow:0 0 14px rgba(255,255,255,.35)}
@keyframes chOn{to{opacity:1}}
#intro3 .fl{position:absolute;width:min(34vmin,300px);aspect-ratio:3/2;object-fit:cover;opacity:0;border:1px solid rgba(255,255,255,.25)}






/* Scene3 ロゴ生成 1.98-2.65s */
#intro3 .sc3{position:absolute;inset:0;z-index:7}
#intro3 .lg3{position:absolute;left:50%;top:46%;width:min(52vmin,430px);transform:translate(-50%,-50%)}
#intro3 .lg3 path{fill:#fff}




@media(prefers-reduced-motion:reduce){#intro3{display:none}}
@media(max-width:640px){#intro3 .fl{width:38vmin}}

/* v3.0.1 — ヘッダーCTA可読性修正（.gh-nav a の白文字が上書きしていた） */
.gh-nav a.gh-cta{background:#fff;color:var(--navy);opacity:1}
.gh-nav a.gh-cta:hover{background:var(--gold);color:var(--navy-d)}

/* ============================================================
   v3.1 — OPENING REBUILD（可読性・確実動作・約6.3s）
   ============================================================ */
#intro3:not(.play) *{animation-play-state:paused!important}
#intro3 .boot{position:absolute;left:50%;bottom:34px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--gold);opacity:.9;animation:bootP 1s ease-in-out infinite!important}
#intro3.play .boot{display:none}
@keyframes bootP{50%{opacity:.25;transform:scale(.6)}}
@keyframes hallIn{to{opacity:1}}
#intro3 .b3{animation:bandOff .1s 1.42s forwards}
#intro3 .b2{animation:bandOff .1s 1.54s forwards}
#intro3 .b1{animation:bandOff .1s 1.66s forwards}
/* フラッシュ 1.55-2.45s */
#intro3 .fl{border:1px solid rgba(255,255,255,.3);box-shadow:0 10px 40px rgba(0,0,0,.45)}
/* Scene3 ロゴ生成 4.66-5.4s（画面座標系・3枚のSVG） */
#intro3 .lg3wrap{position:absolute;left:50%;top:46%;width:min(52vmin,430px);aspect-ratio:3326/2996;transform:translate(-50%,-50%)}
#intro3 .lgp{position:absolute;inset:0;width:100%;height:100%}
#intro3 .lgp path{fill:#fff}
#intro3 .lgp-t{opacity:0;transform:translate(54vw,34vh) rotate(58deg) scale(1.5);animation:lgpIn .5s 3.61s cubic-bezier(.2,.85,.25,1) forwards}
#intro3 .lgp-o{opacity:0;transform:translate(38vw,-42vh) rotate(160deg) scale(.35);animation:lgpIn .5s 3.67s cubic-bezier(.2,.85,.25,1) forwards}
@keyframes lgpIn{12%{opacity:1}100%{opacity:1;transform:none}}
/* リビール：円を「通過」する */
#intro3.go .lg3wrap{transition:transform .8s cubic-bezier(.6,0,.85,.4),opacity .8s ease;transform:translate(-50%,-50%) scale(7);opacity:0}
#intro3.go .tag3,#intro3.go .shock,#intro3.go .sc2,#intro3.go .sc-fl,#intro3.go .sc1{transition:opacity .3s;opacity:0}
#intro3 .mm{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.05);will-change:opacity,transform}


#intro3 .lgp-t{opacity:0;transform:translate(50vw,32vh) rotate(50deg) scale(1.45);animation:lgpIn2 .55s 3.52s cubic-bezier(.22,.8,.26,1) forwards}
#intro3 .lgp-o{opacity:0;transform:translate(36vw,-40vh) rotate(140deg) scale(.35);animation:lgpIn2 .55s 3.59s cubic-bezier(.22,.8,.26,1) forwards}
@keyframes lgpIn2{0%{opacity:0}34%{opacity:1}100%{opacity:1;transform:none}}

#intro3.go .msn{transition:opacity .3s;opacity:0}
#intro3.go .mont,#intro3.go .cp1{transition:opacity .25s;opacity:0}
#intro3 .fr{position:absolute;transform:translate(-50%,-50%);aspect-ratio:3/2;opacity:0;z-index:2;
  animation-name:frIn,frOut;animation-duration:.45s,.34s;
  animation-timing-function:cubic-bezier(.2,.85,.3,1),cubic-bezier(.6,0,.9,.5);animation-fill-mode:both,forwards}
#intro3 .fr img{width:100%;height:100%;object-fit:cover;display:block;border:1px solid rgba(200,168,75,.95);box-shadow:0 0 16px rgba(200,168,75,.3),0 0 44px rgba(200,168,75,.14),0 10px 34px rgba(0,0,0,.55);animation:frFloat 4.5s ease-in-out infinite alternate}
@keyframes frIn{0%{opacity:0;transform:translate(-50%,-50%) translateY(18px) scale(.9)}100%{opacity:1;transform:translate(-50%,-50%)}}
@keyframes frOut{to{opacity:0;transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) scale(.86)}}
@keyframes frFloat{to{transform:translateY(-7px)}}
/* ロゴ：円→？曲線→T直線の順に、別々の振付で完成（3.95/4.40/4.85） */
#intro3 .lgp-o{opacity:0;transform:rotate(130deg) scale(.28);animation:lgpO .55s 3.95s cubic-bezier(.22,.8,.28,1) forwards}
#intro3 .lgp-t{opacity:0;transform:translate(0,-58vh) rotate(-10deg) scale(1.15);animation:lgpT .6s 4.85s cubic-bezier(.25,.95,.3,1.22) forwards}
@keyframes lgpO{0%{opacity:0}30%{opacity:1}100%{opacity:1;transform:none}}

@keyframes lgpT{0%{opacity:0}30%{opacity:1}100%{opacity:1;transform:none}}
.hero-sub{font-family:Arial,"Helvetica Neue",sans-serif}
#intro3.go .mont{transition:opacity .25s;opacity:0}
@media(max-width:680px){#intro3 .fr{width:24vmin!important}}
@media(prefers-reduced-motion:reduce){#intro3 .fr img{animation:none}}

/* v3.3.1 — ロゴ5パーツ順次完成：円→？本体→？フレア→T縦→T横（各0.3s間隔） */
#intro3 .lgp-o{opacity:0;transform:rotate(130deg) scale(.28);animation:lgpO .5s 3.90s cubic-bezier(.22,.8,.28,1) forwards}
#intro3 .lgp-hb{opacity:0;transform:translate(-56vw,4vh) rotate(-70deg) scale(1.3);animation:lgpO .5s 4.20s cubic-bezier(.22,.8,.28,1) forwards}
#intro3 .lgp-hf{opacity:0;transform:translate(24vw,26vh) scale(.5) rotate(90deg);animation:lgpO .45s 4.50s cubic-bezier(.25,.95,.3,1.25) forwards}
#intro3 .lgp-tv{opacity:0;transform:translate(0,-58vh) rotate(-8deg) scale(1.12);animation:lgpO .55s 4.75s cubic-bezier(.25,.95,.3,1.2) forwards}
#intro3 .lgp-th{opacity:0;transform:translate(46vw,-6vh) rotate(10deg);animation:lgpO .5s 5.05s cubic-bezier(.25,.9,.3,1.15) forwards}
#intro3 .fr{position:absolute;aspect-ratio:3/2;z-index:2;opacity:0;
  animation:frUp .85s cubic-bezier(.16,.8,.3,1) both}
@keyframes frUp{0%{opacity:0;transform:translate(-50%,-50%) translateY(82vh) rotate(var(--r)) scale(.9)}
 30%{opacity:1}100%{opacity:1;transform:translate(-50%,-50%) rotate(var(--r))}}
#intro3 .fr img{border:1px solid rgba(232,204,120,.95);box-shadow:0 0 14px rgba(212,180,90,.45),0 0 40px rgba(200,168,75,.18),0 10px 30px rgba(0,0,0,.55)}
#intro3 .sp{position:absolute;width:5px;height:5px;border-radius:50%;background:#F6E1A6;box-shadow:0 0 9px 2px rgba(212,180,90,.85);opacity:0;z-index:3;animation:tw 2.4s ease-in-out infinite}
@keyframes tw{0%,100%{opacity:0;transform:scale(.35)}50%{opacity:.95;transform:scale(1)}}
/* ロゴ5パーツ：同時フェードイン（1.15s・多方向から結像） */
#intro3 .lgp-o,#intro3 .lgp-hb,#intro3 .lgp-hf,#intro3 .lgp-tv,#intro3 .lgp-th{animation-name:lgpO;animation-duration:.65s;animation-delay:1.15s;animation-timing-function:cubic-bezier(.22,.85,.28,1);animation-fill-mode:forwards}
@media(max-width:680px){#intro3 .fr{width:26vmin!important}}
@media(prefers-reduced-motion:reduce){#intro3 .sp,#intro3 .sps{animation:none;opacity:0}}

/* ============================================================
   v3.5 — GEOMETRIC BRAND LAYER（全ページ）＋ アルバム流オープニング
   ============================================================ */
/* ---- 幾何学レイヤー：斜めプレーン＋金の斜線（グロー）＋ハーフトーン ---- */
.phero,.hero,.sec-navy,.next-q,#intro3{position:relative}
.phero::before,.hero::after,.sec-navy::before,.next-q::before,#intro3::before{
 content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
 background:
  linear-gradient(115deg,transparent 62.4%,rgba(232,204,120,.85) 62.55%,rgba(212,180,90,.9) 62.72%,transparent 62.9%),
  linear-gradient(115deg,transparent 61.4%,rgba(200,168,75,.18) 62.6%,transparent 63.9%),
  linear-gradient(115deg,transparent 62.9%,rgba(10,17,40,.38) 63%),
  linear-gradient(115deg,transparent 78%,rgba(232,204,120,.55) 78.12%,transparent 78.28%),
  linear-gradient(115deg,rgba(255,255,255,.035) 0 26%,transparent 26.08%),
  linear-gradient(295deg,rgba(10,17,40,.3) 0 12%,transparent 12.08%)}
.phero::after,.sec-navy::after,.next-q::after,#intro3::after{
 content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
 background-image:radial-gradient(rgba(143,167,217,.32) 1.1px,transparent 1.5px);
 background-size:15px 15px;
 -webkit-mask-image:radial-gradient(60% 80% at 12% 22%,#000 0 38%,transparent 72%);
 mask-image:radial-gradient(60% 80% at 12% 22%,#000 0 38%,transparent 72%)}
.hero .wrap,.phero>.wrap,.next-q .wrap-n,.sec-navy>.wrap{position:relative;z-index:2}
.phero .phero-q{z-index:1}
/* ---- オープニング：既置アルバム→上奥へ流層→写真の壁→ロゴ浮上 ---- */
#intro3::before,#intro3::after{z-index:1}
#intro3 .stream{position:absolute;left:0;top:0;width:100%;height:262vh;z-index:2;transform:translateY(0);animation:streamUp 2.6s .05s cubic-bezier(.42,.05,.36,.97) forwards;will-change:transform}
@keyframes streamUp{to{transform:translateY(-162vh)}}
#intro3 .fr{position:absolute;aspect-ratio:3/2;opacity:1;transform:translate(-50%,-50%) rotate(var(--r));animation:phGrow 6.6s .15s linear forwards}
@keyframes phGrow{to{transform:translate(-50%,-50%) rotate(var(--r)) scale(1.15)}}
#intro3 .fr img{width:100%;height:100%;object-fit:cover;display:block;border:1px solid rgba(232,204,120,.8);box-shadow:0 0 12px rgba(212,180,90,.28),0 12px 34px rgba(0,0,0,.55);animation:none}
#intro3 .fr.back{filter:blur(1.3px) brightness(.78);opacity:.9}
#intro3 .lgback{position:absolute;left:50%;top:46%;width:130vmin;height:130vmin;transform:translate(-50%,-50%);z-index:4;background:radial-gradient(circle,rgba(13,22,48,.78),rgba(13,22,48,.4) 42%,transparent 68%);opacity:0;animation:hallIn .6s 3.55s ease forwards}
#intro3 .sc3{z-index:5}
#intro3 .lgp-o,#intro3 .lgp-hb,#intro3 .lgp-hf,#intro3 .lgp-tv,#intro3 .lgp-th{opacity:0;transform:scale(.96);animation:lgFade .8s 3.55s cubic-bezier(.2,.7,.25,1) forwards}
@keyframes lgFade{to{opacity:1;transform:none}}
#intro3 .lg3wrap{filter:drop-shadow(0 6px 30px rgba(0,0,0,.5))}
#intro3.go .stream,#intro3.go .lgback{transition:opacity .3s;opacity:0}
@media(max-width:680px){#intro3 .fr{min-width:24vmin}}
@media(prefers-reduced-motion:reduce){#intro3 .stream,#intro3 .fr{animation:none}}

/* ============================================================
   v3.5.1 — 重大修正＋幾何学の全面統一（ヘッダー/メニュー/フッター/白セクション）
   ============================================================ */
/* 【修正】v3.5の一括position:relativeが#intro3のfixedを上書きしていた */
#intro3{position:fixed}

/* ---- ヘッダー：金の斜めシーン＋下端ゴールドヘアライン ---- */
.gh{background-image:
  linear-gradient(115deg,transparent 72%,rgba(200,168,75,.14) 72.08%,transparent 82%),
  linear-gradient(90deg,transparent 4%,rgba(232,204,120,.6) 50%,transparent 96%);
 background-size:100% 100%,100% 1.5px;
 background-position:0 0,bottom;
 background-repeat:no-repeat}

/* ---- モバイルメニュー：プレーン＋金斜線＋ドット ---- */
.mnav::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
 background:
  linear-gradient(115deg,transparent 60%,rgba(232,204,120,.7) 60.15%,transparent 60.35%),
  linear-gradient(115deg,transparent 60.4%,rgba(10,17,40,.4) 60.5%),
  linear-gradient(295deg,rgba(255,255,255,.03) 0 14%,transparent 14.08%)}
.mnav::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
 background-image:radial-gradient(rgba(143,167,217,.3) 1.1px,transparent 1.5px);background-size:15px 15px;
 -webkit-mask-image:radial-gradient(55% 60% at 10% 90%,#000 0 36%,transparent 70%);
 mask-image:radial-gradient(55% 60% at 10% 90%,#000 0 36%,transparent 70%)}
.mnav>*{position:relative;z-index:1}

/* ---- フッター：フル幾何学 ---- */
.ft{position:relative;overflow:hidden}
.ft::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
 background:
  linear-gradient(115deg,transparent 66%,rgba(232,204,120,.75) 66.13%,rgba(212,180,90,.8) 66.28%,transparent 66.45%),
  linear-gradient(115deg,transparent 65.2%,rgba(200,168,75,.16) 66.3%,transparent 67.4%),
  linear-gradient(115deg,transparent 66.5%,rgba(10,17,40,.4) 66.6%),
  linear-gradient(115deg,transparent 84%,rgba(232,204,120,.45) 84.1%,transparent 84.24%),
  linear-gradient(295deg,rgba(255,255,255,.03) 0 18%,transparent 18.08%)}
.ft::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
 background-image:radial-gradient(rgba(143,167,217,.26) 1.1px,transparent 1.5px);background-size:15px 15px;
 -webkit-mask-image:radial-gradient(55% 75% at 8% 30%,#000 0 34%,transparent 70%);
 mask-image:radial-gradient(55% 75% at 8% 30%,#000 0 34%,transparent 70%)}
.ft>*{position:relative;z-index:1}

/* ---- 白セクション：右上に微細ネイビーハーフトーン（navy節は除外） ---- */
.sec:not(.sec-navy),.sec-s:not(.sec-navy){position:relative}
.sec:not(.sec-navy)::before,.sec-s:not(.sec-navy)::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
 background-image:radial-gradient(rgba(35,58,112,.13) 1px,transparent 1.4px);background-size:16px 16px;
 -webkit-mask-image:radial-gradient(40% 52% at 91% 5%,#000 0 30%,transparent 68%);
 mask-image:radial-gradient(40% 52% at 91% 5%,#000 0 30%,transparent 68%)}
.sec:not(.sec-navy)>*,.sec-s:not(.sec-navy)>*{position:relative;z-index:1}

/* ============================================================
   v3.6 — 四方からの結像 → 黄金一閃 → 円開口リビール
   ============================================================ */
/* 5.6s：4パーツが四方から同時フェードイン（円は収束点で結像） */
#intro3 .lgp-hb{opacity:0;transform:translate(-46vw,0);animation:lgIn4 .7s 3.55s cubic-bezier(.22,.85,.28,1) forwards}
#intro3 .lgp-tv{opacity:0;transform:translate(0,-46vh);animation:lgIn4 .7s 3.55s cubic-bezier(.22,.85,.28,1) forwards}
#intro3 .lgp-th{opacity:0;transform:translate(46vw,0);animation:lgIn4 .7s 3.55s cubic-bezier(.22,.85,.28,1) forwards}
#intro3 .lgp-hf{opacity:0;transform:translate(0,46vh);animation:lgIn4 .7s 3.55s cubic-bezier(.22,.85,.28,1) forwards}
#intro3 .lgp-o{opacity:0;transform:scale(.82);animation:lgIn4 .7s 3.55s cubic-bezier(.22,.85,.28,1) forwards}
@keyframes lgIn4{0%{opacity:0}38%{opacity:1}100%{opacity:1;transform:none}}
/* リビール：ロゴ全体の通過をやめ、円のみJS拡大（他パーツはJSで消灯） */
#intro3.go .lg3wrap{transition:none;transform:translate(-50%,-50%);opacity:1;filter:none}
#intro3.go .lgback{transition:opacity .3s;opacity:0}

/* v3.6.1 — 結像0.9s／円は回転フェード進入／一閃6.65s／ヘッダーロゴ拡大 */
#intro3 .lgp-hb,#intro3 .lgp-tv,#intro3 .lgp-th,#intro3 .lgp-hf{animation-duration:.9s}
#intro3 .lgp-o{transform:rotate(-90deg) scale(.55);animation-duration:.9s}
.gh-logo img{height:38px}

/* ============================================================
   v3.7 — ホワイトアウト開口／全面ディム／回想加速／幾何学の細部展開
   ============================================================ */
/* 回想スクロールを加速 6.6s→5.8s */
#intro3 .stream,#intro3 .fr{animation-duration:5.8s}
/* ロゴ出現と同時に画面全体を薄暗く（5.5s） */
#intro3 .lgback{left:0;top:0;width:100%;height:100%;transform:none;background:radial-gradient(circle at 50% 46%,rgba(10,17,40,.34),rgba(10,17,40,.66) 58%,rgba(10,17,40,.82));animation:hallIn .5s 3.0s ease forwards}
/* ホワイトアウト層 */
#intro3 .wout{position:absolute;inset:0;background:#fff;opacity:0;z-index:40;pointer-events:none}
#intro3.wdone{background:transparent}
#intro3.wdone::before,#intro3.wdone::after{display:none}
#intro3.wdone>*:not(.wout){display:none}

/* ---- 幾何学の細部展開（白背景セクション・カード・ボタン） ---- */
.sec:not(.sec-navy)::after,.sec-s:not(.sec-navy)::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
 background:
  linear-gradient(115deg,transparent 87.6%,rgba(200,168,75,.5) 87.68%,rgba(212,180,90,.55) 87.78%,transparent 87.9%),
  linear-gradient(115deg,transparent 88.2%,rgba(35,58,112,.1) 88.3%,transparent 97%),
  linear-gradient(295deg,rgba(35,58,112,.055) 0 9%,transparent 9.07%)}
.card{position:relative;overflow:hidden}
.card::after{content:"";position:absolute;top:-1px;right:-1px;width:42px;height:42px;pointer-events:none;
 background:linear-gradient(115deg,transparent 46%,rgba(200,168,75,.6) 47%,rgba(212,180,90,.65) 49%,transparent 50%)}
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(232,204,120,.35) 50%,transparent 70%);transform:translateX(-130%);transition:transform .55s ease}
.btn:hover::after{transform:translateX(130%)}
@media(prefers-reduced-motion:reduce){.btn::after{display:none}}

/* ============================================================
   v4.0 — DESIGN SYSTEM（トークン／切り欠き／グリッド／ナンバリング／プレートUI）
   ============================================================ */
:root{--dur:.35s;--ease:cubic-bezier(.3,.65,.25,1);--sh1:0 8px 24px rgba(23,38,74,.10);--sh2:0 18px 44px rgba(23,38,74,.16);--cut:16px}

/* ---- 切り欠き（ノッチ）＝新シグネチャ。金シームを通す ---- */
.card,.pcard,.news-fig,.iv-head{clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.card::after{content:"";position:absolute;top:0;right:0;width:var(--cut);height:var(--cut);pointer-events:none;
 background:linear-gradient(45deg,transparent calc(50% - .8px),var(--gold) 50%,transparent calc(50% + .8px))}
.mcard{--cut:12px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.mcard[data-q]::after{top:14px;right:15px}
.btn{clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%)}

/* ---- 白背景＝座標グリッドへ転換（金ヘアライン依存を廃止） ---- */
.sec:not(.sec-navy)::after,.sec-s:not(.sec-navy)::after{
 background:
  linear-gradient(rgba(35,58,112,.05) 1px,transparent 1px),
  linear-gradient(90deg,rgba(35,58,112,.05) 1px,transparent 1px);
 background-size:76px 76px;
 -webkit-mask-image:linear-gradient(#000 82%,transparent);mask-image:linear-gradient(#000 82%,transparent)}

/* ---- セクション自動ナンバリング＋見出しラベルの金ダッシュ ---- */
main{counter-reset:secn}
main section>.wrap>.eyebrow::before{counter-increment:secn;content:counter(secn,decimal-leading-zero) "\0020/\0020";color:var(--gold);font-weight:800}
.eyebrow::after{content:"";display:inline-block;width:26px;height:1px;background:var(--gold);margin-left:12px;vertical-align:4px}

/* ---- ホバー規格（通常→Hover→Active一貫） ---- */
a.card{transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur)}
a.card:hover{transform:translateY(-4px) rotate(-.35deg);box-shadow:var(--sh2);border-color:var(--navy-l)}
a.card:active{transform:translateY(-1px) rotate(0)}
.mcard:hover{box-shadow:var(--sh2)}
.btn{transition:transform .18s var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-navy:hover{background:#fff;color:var(--navy);border-color:var(--navy)}
.btn-line:hover{background:var(--navy);color:#fff}
.btn-white:hover{background:var(--gold);color:var(--navy-d);border-color:var(--gold)}
.btn-linew:hover{background:#fff;color:var(--navy);border-color:#fff}
.tlink{border-bottom:0;padding-bottom:3px;background:linear-gradient(var(--gold),var(--gold)) left bottom/30% 1px no-repeat;transition:background-size .3s var(--ease),color .2s}
.tlink:hover{background-size:100% 1px}
.ft a:not(.btn){background:linear-gradient(var(--gold),var(--gold)) left bottom/0% 1px no-repeat;transition:background-size .3s var(--ease)}
.ft a:not(.btn):hover{background-size:100% 1px}

/* ---- ヘッダーナビ：スライドプレート（白プレート滑走・色反転） ---- */
.gh-nav{position:relative}
.gh-nav a{position:relative;z-index:1;padding:7px 12px;transition:color .28s var(--ease)}
.gh-pill{position:absolute;top:50%;height:31px;transform:translateY(-50%);background:#fff;z-index:0;opacity:0;
 clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%);
 transition:left var(--dur) var(--ease),width var(--dur) var(--ease),opacity .25s ease}
.gh-nav a.on,.gh-nav a.pon{color:var(--navy);opacity:1}

/* ---- タブUI（design system component：data-tabsで自動起動） ---- */
.tabs{position:relative;display:flex;gap:2px;border:1px solid var(--line);background:#fff;padding:4px;width:max-content;max-width:100%;overflow-x:auto}
.tabs button{position:relative;z-index:1;border:0;background:none;padding:11px 20px;font-weight:800;font-size:13px;color:var(--ink-2);cursor:pointer;white-space:nowrap;transition:color .28s var(--ease)}
.tabs button:hover{color:var(--navy)}
.tabs .tab-pill{position:absolute;top:4px;bottom:4px;left:0;background:var(--navy);z-index:0;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%);transition:left var(--dur) var(--ease),width var(--dur) var(--ease)}
.tabs button.on{color:#fff}
.tabpane.on{display:block;animation:paneIn .38s var(--ease)}
@keyframes paneIn{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
 a.card,.btn,.mcard{transition:none}
 .gh-pill,.tabs .tab-pill{transition:opacity .2s}
 .tabpane.on{animation:none}
}

/* v4.0.1 — ナビプレートの可読性・反応域・復帰制御の修正 */
.gh-nav{gap:0}
.gh-nav a{padding:20px 13px;margin:-13px 0;color:rgba(255,255,255,.82);transition:color var(--dur) var(--ease)}
.gh-nav a.on{color:rgba(255,255,255,.95)}   /* 現在地：プレート不在時は白を維持 */
.gh-nav a.pon{color:var(--navy)}            /* 紺はプレート直下のタブのみ（0.35s同期フェード） */
.gh-nav a:focus-visible{outline:1px solid var(--gold);outline-offset:-8px}
.gh-nav .gh-cta{margin-left:16px}
.gh-pill{height:32px}
.tabs button:focus-visible{outline:1px solid var(--gold);outline-offset:2px}

/* ============================================================
   v4.1 — 理念統一改修（Institution年表／学校導入スペック／exec強調）
   ============================================================ */
ol.inst{margin:26px 0 18px;display:grid;gap:10px;list-style:none;padding:0}
.inst li{display:grid;grid-template-columns:74px 1fr;gap:14px;font-size:13px;line-height:1.9;color:var(--ink-2)}
.inst b{font-family:var(--en);color:#8a6d1f;font-weight:800;letter-spacing:.03em}
.f-lead{margin-top:18px;font-size:14px;line-height:2.05;color:var(--ink-2)}
.f-close{font-weight:800;color:var(--navy);margin:4px 0 16px}
.spec{margin-top:40px;border-top:1px solid rgba(255,255,255,.28)}
.spec-row{display:grid;grid-template-columns:190px 1fr;gap:18px;padding:15px 4px;border-bottom:1px solid rgba(255,255,255,.16);font-size:13.5px;margin:0}
.spec-row dt{font-weight:800;color:var(--gold)}
.spec-row dd{margin:0;color:rgba(255,255,255,.88);line-height:1.95}
@media(max-width:640px){.spec-row{grid-template-columns:1fr;gap:4px}}
.mcards.exec .mcard{border-top:3px solid var(--gold)}
.mcards.exec .rl{color:#8a6d1f;font-weight:800}
.ft-legal{margin-top:10px;font-size:11px}
.ft-legal a{color:rgba(255,255,255,.6);text-decoration:none}
.ft-legal a:hover{color:#fff}

/* ============================================================
   v4.2 — OUR BELIEF（没入型・章送りページ）
   ============================================================ */
.belief-body{overflow:hidden;height:100dvh}
.belief{position:fixed;inset:0;background:var(--navy-d)}
.bs{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s .9s;overflow:hidden}
.bs.on{opacity:1;visibility:visible;transition:opacity .9s ease}
.bs-bg{position:absolute;inset:0;background:var(--navy-d) center/cover no-repeat;transform:scale(1.02)}
.bs.on .bs-bg{animation:bKen 14s ease-out forwards}
@keyframes bKen{to{transform:scale(1.08)}}
.bs-grad{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,22,48,.9) 0 30%,rgba(13,22,48,.55) 52%,rgba(13,22,48,.18) 74%,rgba(13,22,48,.28))}
.bs-in{position:absolute;left:max(6vw,32px);top:50%;transform:translateY(-50%);max-width:600px;color:#fff;z-index:2;padding-right:24px}
.bs-center{left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;max-width:none;padding:0}
.intro-bg{background:
  radial-gradient(60% 80% at 14% 20%,rgba(143,167,217,.08),transparent 70%),
  linear-gradient(115deg,transparent 66%,rgba(200,168,75,.5) 66.08%,transparent 66.2%),
  var(--navy-d)}
.ch-no{display:block;font-family:var(--en);font-weight:800;font-size:12px;letter-spacing:.42em;color:var(--gold)}
.ch-no .dash{display:inline-block;width:34px;height:1px;background:var(--gold);vertical-align:4px;margin-left:12px}
.ch-h{font-size:clamp(26px,4.4vw,50px);font-weight:800;line-height:1.55;letter-spacing:.04em;margin:18px 0 30px;text-shadow:0 2px 30px rgba(0,0,0,.45)}
.bs-intro .ch-h{font-size:clamp(30px,5vw,56px);margin:22px 0 34px}
.bs-intro .ch-no{font-size:14px}
.blk{opacity:0;transform:translateY(14px);transition:opacity 1.1s ease,transform 1.1s ease;font-size:clamp(14px,1.6vw,16.5px);line-height:2.35;letter-spacing:.06em;color:rgba(255,255,255,.94);margin:0 0 26px;text-shadow:0 1px 18px rgba(0,0,0,.5)}
.blk.in{opacity:1;transform:none}
.blk-words{font-size:clamp(19px,2.6vw,27px);font-weight:800;letter-spacing:.1em}
.blk-words .w{display:inline-block;opacity:0;transform:translateY(10px);transition:opacity .7s ease,transform .7s ease;margin-right:.5em}
.blk-words .w.in{opacity:1;transform:none}
.blk-after{font-size:clamp(17px,2.2vw,23px);font-weight:800}
.b-hint{font-family:var(--en);font-size:10.5px;letter-spacing:.3em;color:rgba(255,255,255,.7)}
.b-hint i{display:block;font-style:normal;margin-top:10px;animation:bUp 1.8s ease-in-out infinite}
@keyframes bUp{50%{transform:translateY(6px);opacity:.5}}
.b-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:38px}
.b-cta .b-cp{width:100%;margin:26px 0 0;font-family:var(--en);font-size:10px;letter-spacing:.18em;color:rgba(255,255,255,.5)}
.b-cta .b-lg{display:block;margin-top:12px;font-family:inherit;letter-spacing:0}
.b-cta .b-lg a{font-size:11px;color:rgba(255,255,255,.55);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.22);margin-right:18px;transition:color .2s,border-color .2s}
.b-cta .b-lg a:hover{color:#fff;border-color:#fff}
.bnav{position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:5;display:grid;gap:14px;opacity:0;transition:opacity .5s}
.bnav.show{opacity:1}
.bnav button{background:none;border:0;cursor:pointer;padding:4px;display:flex;align-items:center;gap:8px}
.bnav button i{font-style:normal;font-family:var(--en);font-size:10px;letter-spacing:.14em;color:rgba(255,255,255,.45);transition:color .3s}
.bnav button::before{content:"";width:18px;height:1px;background:rgba(255,255,255,.35);transition:width .3s,background .3s}
.bnav button.on i{color:var(--gold)}
.bnav button.on::before{width:30px;background:var(--gold)}
.b-more{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);color:rgba(255,255,255,.65);z-index:5;opacity:0;transition:opacity .5s;animation:bUp 1.8s ease-in-out infinite;margin:0}
.b-more.show{opacity:1}
/* reduced-motion：通常スクロール文書化 */
.b-rm .belief,.belief-body.b-rm main.belief{position:static;height:auto}
.b-rm{overflow:auto;height:auto}
.b-rm .bs{position:relative;min-height:100vh;opacity:1;visibility:visible}
.b-rm .bs-in{position:relative;left:auto;top:auto;transform:none;padding:18vh 6vw}
@media(max-width:760px){
 .bs-grad{background:linear-gradient(0deg,rgba(13,22,48,.92) 0 36%,rgba(13,22,48,.5) 60%,rgba(13,22,48,.2))}
 .bs-in{left:6vw;right:6vw;top:auto;bottom:9dvh;transform:none;max-width:none;padding-right:0}
 .bs-center{top:50%;bottom:auto;transform:translateY(-50%);left:6vw;right:6vw}
 .ch-h{margin:14px 0 22px}
 .blk{margin-bottom:18px;line-height:2.15}
 .bnav{right:12px;gap:10px}
 .bnav button i{display:none}
}

/* ============================================================
   v4.3 — ナビ傘下ドロップダウン／belief調整（透明ヘッダー・タイトルXL）
   ============================================================ */
/* ---- ナビ構造：ヒット領域はラッパーへ移設 ---- */
.gh-nav{align-items:center}
.gh-it{position:relative;display:flex;align-items:center;padding:13px 0}
.gh-nav .gh-it>a{margin:0;padding:7px 13px}
.gh-dd{position:absolute;top:calc(100% + 4px);left:0;min-width:248px;background:var(--navy-d);border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 48px rgba(0,0,0,.45);padding:9px 0;opacity:0;visibility:hidden;transform:translateY(8px);z-index:6;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%);transition:opacity .28s var(--ease),transform .28s var(--ease),visibility 0s .3s}
.gh-it.open .gh-dd{opacity:1;visibility:visible;transform:none;transition:opacity .28s var(--ease),transform .28s var(--ease)}
.gh-dd.flip{left:auto;right:0}
.gh-dd::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--gold),transparent 72%)}
.gh-nav .gh-dd a{display:block;margin:0;padding:10px 20px;font-size:12px;letter-spacing:.05em;color:rgba(255,255,255,.85);background:none;transition:background .22s,color .22s,padding-left .22s}
.gh-nav .gh-dd a:hover,.gh-nav .gh-dd a:focus-visible{background:rgba(255,255,255,.08);color:#fff;padding-left:26px}
.mnav .msub{padding-left:36px;font-size:13px;opacity:.85;position:relative}
.mnav .msub::before{content:"";position:absolute;left:20px;top:50%;width:9px;height:1px;background:var(--gold)}
/* ---- belief：ヘッダーを透明化し全画面を確保 ---- */
.belief-body .gh{background:transparent;background-image:none;border-bottom:0;box-shadow:none}
.bs::before{content:"";position:absolute;inset:0 0 auto 0;height:140px;background:linear-gradient(rgba(13,22,48,.62),transparent);z-index:1;pointer-events:none}
/* ---- belief：5章タイトルXL・他は控えめに ---- */
.ch-h{font-size:clamp(34px,6vw,74px);line-height:1.4;letter-spacing:.03em}
.bs-intro .ch-h{font-size:clamp(36px,6.6vw,80px)}
.ch-no{font-size:11px}
.blk{font-size:clamp(13px,1.4vw,15px)}
.blk-words{font-size:clamp(20px,2.8vw,30px)}
.blk-after{font-size:clamp(17px,2.3vw,24px)}
.b-sub{font-size:12.5px;letter-spacing:.3em;color:rgba(255,255,255,.72)}
@media(max-width:760px){.ch-h{font-size:clamp(27px,7.6vw,40px)}}

/* v4.4 — beliefタイトルXL／語句を本文同サイズ化／アンカーオフセット */
.ch-h{font-size:clamp(38px,7vw,88px);line-height:1.36}
.bs-intro .ch-h{font-size:clamp(40px,7.4vw,94px)}
.blk-words,.blk-after{font-size:clamp(13px,1.4vw,15px);font-weight:400;letter-spacing:.06em}
@media(max-width:760px){.ch-h,.bs-intro .ch-h{font-size:clamp(29px,8.6vw,44px)}}
section[id]{scroll-margin-top:84px}
/* v4.4.1 — 見出しアンカー（p/div id）にもオフセット適用 */
[id]{scroll-margin-top:84px}

/* v4.5 — beliefタイトル適正化（折返し崩壊の修正）＋本文コラム拡幅 */
.bs-in{max-width:690px}
.ch-h{font-size:clamp(27px,4.3vw,53px);line-height:1.52;letter-spacing:.04em}
.bs-intro .ch-h{font-size:clamp(31px,5vw,60px)}
@media(max-width:760px){.ch-h,.bs-intro .ch-h{font-size:clamp(23px,6.6vw,33px)}}

/* v4.6 — belief：2行タイトル固定・上下余白最優先（1画面収容） */
.bs-in{max-width:640px}
.ch-no{font-size:10.5px}
.ch-h{font-size:clamp(23px,3.1vw,40px);line-height:1.62;letter-spacing:.05em;margin:12px 0 20px}
.bs-intro .ch-h{font-size:clamp(25px,3.5vw,45px)}
.blk{margin:0 0 17px;line-height:2.02}
.b-sub{margin-top:2px}
@media(max-height:780px){
  .blk{line-height:1.88;margin-bottom:13px;font-size:12.5px}
  .ch-h{font-size:clamp(21px,2.8vw,32px);margin:10px 0 16px}
}
@media(max-width:760px){.ch-h,.bs-intro .ch-h{font-size:clamp(21px,5.8vw,28px);line-height:1.7}}

/* ============================================================
   v4.7 — 三原則×連結／概念図・段階図／ページ内ナビ／素材仮枠
   ============================================================ */
.prin{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:14px;align-items:stretch}
.prin .card{text-align:center}
.prin .card h3{font-size:19px}
.pxx{align-self:center;font-family:var(--en);font-weight:800;font-size:22px;color:var(--navy-l)}
@media(max-width:820px){.prin{grid-template-columns:1fr}.pxx{text-align:center;font-size:18px}}
.dgm{display:block;width:100%;height:auto;margin:34px 0 8px}
.ptoc{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:3}
.ptoc .wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:13px 0}
.ptoc-l{font-family:var(--en);font-size:9.5px;font-weight:800;letter-spacing:.24em;color:var(--ink-3);margin-right:8px}
.ptoc a{font-size:11.5px;font-weight:700;color:var(--navy);border:1px solid var(--line-n);padding:6px 13px;text-decoration:none;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,0 100%);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.ptoc a:hover{background:var(--navy);color:#fff}

/* v4.8 — belief：章インデックス画面・タグライン着地行 */
.toc{list-style:none;margin:24px 0 26px;padding:0;display:grid;gap:19px}
.toc button{background:none;border:0;color:#fff;display:flex;gap:18px;align-items:baseline;cursor:pointer;text-align:left;padding:2px 0}
.toc i{font-style:normal;font-family:var(--en);font-weight:800;font-size:11px;letter-spacing:.22em;color:var(--gold);min-width:34px}
.toc span{font-size:clamp(15px,2vw,22px);font-weight:700;letter-spacing:.05em;line-height:1.75;background:linear-gradient(var(--gold),var(--gold)) left bottom/0% 1px no-repeat;transition:background-size .35s var(--ease)}
.toc button:hover span,.toc button:focus-visible span{background-size:100% 1px}
.bs-index .bs-in{max-width:720px}
.blk-final{font-weight:800;font-size:clamp(15px,1.9vw,20px);letter-spacing:.14em;margin-top:34px}
.bnav .bn-ix{margin-bottom:6px}
.bnav .bn-ix i{letter-spacing:.2em;font-size:9.5px}
@media(max-height:780px){.toc{gap:13px}.toc span{font-size:clamp(14px,1.8vw,18px)}}
@media(max-width:760px){.toc{gap:15px}.toc span{font-size:15px;line-height:1.65}}
.v-num b.vg{color:var(--gold)}
.jmap{display:block;width:min(720px,100%);margin:44px auto 10px}
.jmap path{fill:#1B2C56;stroke:rgba(143,167,217,.45);stroke-width:.5;transition:fill .3s}
.jmap path:hover{fill:#2C4687}
.jmap .tokyo{fill:var(--gold);stroke:var(--gold);animation:vpulse 2.6s ease-in-out infinite}
@keyframes vpulse{50%{opacity:.55}}
.ft-sns{margin-top:12px}
.ft-sns a{display:inline-flex;align-items:center;gap:7px;color:rgba(255,255,255,.72);text-decoration:none;font-family:var(--en);font-size:11.5px;letter-spacing:.08em;transition:color .25s}
.ft-sns a:hover{color:var(--gold)}
@media(prefers-reduced-motion:reduce){.jmap .tokyo{animation:none}}

/* ============================================================
   v5.2 — VISION 2030再設計（フルスクリーン地図／階段ロードマップ／ベン図）
   ============================================================ */
.vhero{position:relative;background:linear-gradient(160deg,#0F1B3D,#233A70 65%,#1B2C56);color:#fff;padding:120px 0 70px;min-height:94vh;display:flex;align-items:center;overflow:hidden}
.vh-grid{display:grid;grid-template-columns:minmax(340px,460px) 1fr;gap:40px;align-items:center;width:100%}
.vh-copy h1{font-size:clamp(24px,2.6vw,37px);line-height:1.75;letter-spacing:.04em;margin-top:16px}
.vh-body{margin-top:22px;font-size:13.5px;line-height:2.25;color:rgba(255,255,255,.88)}
.vh-sub{margin-top:14px;font-size:12px;line-height:2;color:rgba(255,255,255,.6)}
.vh-legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:22px;font-size:11.5px;color:rgba(255,255,255,.85)}
.vh-legend i{display:inline-block;width:11px;height:11px;margin-right:7px;vertical-align:-1px}
.lg-g{background:var(--gold)}.lg-n{background:#31477F;border:1px solid rgba(143,167,217,.5)}
.vh-stat{margin-top:20px;border:1px solid rgba(255,255,255,.25);display:inline-flex;align-items:baseline;gap:12px;padding:12px 18px;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
.vh-stat b{font-family:var(--en);font-weight:800;font-size:34px;color:var(--gold)}
.vh-stat b span{font-size:16px;color:rgba(255,255,255,.7);margin-left:4px}
.vh-stat em{font-style:normal;font-size:10.5px;letter-spacing:.1em;color:rgba(255,255,255,.65)}
.vh-map{min-width:0}
.vhero .jmap{width:100%;max-width:none;margin:0}
.jmap path{fill:#1B2C56;stroke:rgba(143,167,217,.45);stroke-width:.5;transition:fill .25s;cursor:default}
.jmap path:hover{fill:#31477F}
.jmap .tokyo,.jmap .tokyo:hover{fill:var(--gold);stroke:var(--gold)}
.jmap .rip{fill:none;stroke:var(--gold);stroke-width:1;opacity:.5;animation:vrip 2.8s ease-out infinite}
.jmap .r2{animation-delay:1.4s}
@keyframes vrip{0%{opacity:.65}70%{opacity:.08}100%{opacity:.55}}
.jmap .jline{stroke:var(--gold);stroke-width:1}
.jmap .jlabel rect{fill:#0F1B3D;stroke:var(--gold);stroke-width:1}
.jmap .jlabel text{fill:#fff;font-size:14px;font-weight:800;text-anchor:middle;font-family:Arial}
.jtip{position:fixed;z-index:60;pointer-events:none;background:var(--navy-d);color:#fff;border:1px solid var(--gold);font-size:11.5px;font-weight:700;padding:5px 10px;opacity:0;transition:opacity .15s;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,0 100%)}
.vstats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:38px}
.vstats>div{border:1px solid var(--line-n);padding:20px 18px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.vstats b{display:block;font-family:var(--en);font-weight:800;font-size:44px;color:var(--navy);line-height:1}
.vstats b span{font-size:17px;color:#8a6d1f;margin-left:2px}
.vstats em{display:block;font-style:normal;font-size:11px;color:var(--ink-2);margin-top:9px;line-height:1.7}
.venn{display:block;width:min(640px,100%);margin:44px auto 0}
.vcard{position:relative;padding-top:88px}
.stair{display:block;width:100%;height:auto;margin-top:40px}
.stair .scard path{fill:#fff;stroke:var(--navy);stroke-width:1.3}
.stair .scard.sg path{fill:#FBF6E9;stroke:#8a6d1f}
.stair text{font-family:Arial,'Inter',sans-serif;fill:var(--navy)}
.stair .ygold{fill:#8a6d1f}
.stair .tagbx{fill:var(--navy)}
.stair .tagbx.tg{fill:#8a6d1f}
.stair .tagtx{fill:#fff;font-size:11px;font-weight:800;text-anchor:middle}
.stair .l1{font-size:13.5px;font-weight:800}
.stair .l2{font-size:10.5px;fill:var(--ink-2)}
.stair .conn{stroke:var(--gold);stroke-width:1.6}
.stair .rays line{stroke:var(--gold);stroke-width:1.4;opacity:.8}
.stair-m{display:none}
@media(max-width:900px){
 .vhero{min-height:0;padding:110px 0 50px}
 .vh-grid{grid-template-columns:1fr}
 .vh-body br{display:none}
 .stair{display:none}
 .stair-m{display:grid}
 .vstats{grid-template-columns:repeat(2,1fr)}
}
@media(prefers-reduced-motion:reduce){.jmap .rip{animation:none}}

/* v5.2.1 — VISION 2030：地図表示修正・ベン図/ロードマップ洗練・ロゴ大型化 */
.vhero .jmap{width:auto;max-width:100%;max-height:80vh;margin:0 auto;display:block}
.vcard{padding-top:30px}
.venn{width:min(700px,100%);margin:48px auto 0}
.stair .base{stroke:#E3E6EE;stroke-width:1}
.stair .cline{fill:none;stroke:var(--gold);stroke-width:1.6}
.stair .pin{fill:var(--gold);stroke:#fff;stroke-width:1.5}
.stair .cardp{stroke-width:1.3}
.stair text{font-family:Arial,'Inter',sans-serif;fill:var(--navy)}
.stair .yr{font-size:25px;font-weight:800;letter-spacing:.02em}
.stair .yr.yg{font-size:50px;fill:#8a6d1f}
.stair .tg-o{fill:#fff;stroke:var(--navy);stroke-width:1}
.stair .tg-ot{fill:var(--navy);font-size:11px;font-weight:800;text-anchor:middle}
.stair .tg-st{fill:#fff;font-size:11px;font-weight:800;text-anchor:middle}
.stair .ray{stroke:var(--gold);stroke-width:1.3;opacity:.75}

/* v5.3 — VISION 2030：白地図×全幅2倍／ロゴ2.5倍／図解対／水平タイムライン */
.vh-grid{display:block}
.vh-copy h1{font-size:clamp(25px,3vw,38px);line-height:1.72;letter-spacing:.04em;margin-top:16px}
.vh-aside .hero-btns{margin-top:24px}
.vh-map{margin-top:52px}
.vhero{min-height:0;padding:118px 0 64px}
.vhero .jmap{width:min(1120px,100%);max-height:none;height:auto;margin:0 auto;display:block}
.jmap path{fill:#F7F9FD;stroke:#9FB2D8;stroke-width:.6}
.jmap path:hover{fill:#F0E7CE}
.jmap .tokyo,.jmap .tokyo:hover{fill:var(--gold);stroke:#8a6d1f}
.lg-n{background:#F7F9FD;border:1px solid #9FB2D8}
.figrow{align-items:stretch}
.figc{margin:0;border:1px solid var(--line);padding:22px 14px 14px;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);background:#fff}
.figc .venn{width:100%;margin:0}
.figc figcaption{margin-top:12px;text-align:center;font-family:var(--en);font-size:10px;font-weight:800;letter-spacing:.22em;color:var(--ink-3)}
.stair .yr2{font-size:21px;font-weight:800;fill:var(--navy);letter-spacing:.02em}
.stair .yr2.yg{font-size:31px;fill:#8a6d1f}
.stair .pinring{fill:none;stroke:var(--gold);stroke-width:1.4}
.stair .drop{stroke:#D7DCE8;stroke-width:1}
@media(max-width:900px){
 .figrow{grid-template-columns:1fr}
}

/* ============================================================
   v5.4 — VISION独立タブ／HERO一画面化／ロゴ全幅／MVV強調／写真帯
   ============================================================ */
.vh-grid2{display:grid;grid-template-columns:minmax(330px,470px) 1fr;gap:56px;align-items:center}
.vhero{min-height:96vh;display:flex;align-items:center;padding:112px 0 56px}
.vh-grid2 .vh-copy h1{font-size:clamp(21px,2.05vw,28px);line-height:1.9;letter-spacing:.04em;margin-top:16px}
.vh-grid2 .vh-legend{margin-top:26px}
.vh-grid2 .hero-btns{margin-top:26px}
.vh-grid2 .vh-map{margin-top:0}
.vhero .jmap{width:auto;max-width:100%;max-height:82vh;margin:0 auto}
.vh-copy>*{opacity:0;animation:vfade .8s var(--ease) forwards}
.vh-copy>*:nth-child(1){animation-delay:.05s}.vh-copy>*:nth-child(2){animation-delay:.15s}
.vh-copy>*:nth-child(3){animation-delay:.3s}.vh-copy>*:nth-child(4){animation-delay:.45s}
.vh-copy>*:nth-child(5){animation-delay:.6s}.vh-copy>*:nth-child(6){animation-delay:.7s}
.vh-copy>*:nth-child(7){animation-delay:.8s}
.vh-map{opacity:0;animation:vfade 1.1s .25s var(--ease) forwards}
@keyframes vfade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.vph figure{margin:0;overflow:hidden;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.vph img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s var(--ease)}
.vph figure:hover img{transform:scale(1.04)}
.stair .cline{stroke-dasharray:1300;stroke-dashoffset:1300}
.stair.rv.in .cline{animation:tldraw 1.9s .2s var(--ease) forwards}
@keyframes tldraw{to{stroke-dashoffset:0}}
.mvvL{display:block;margin-top:36px;border-top:1px solid var(--line-n)}
.mvvL .card{border:0;background:none;clip-path:none;padding:50px 6px;border-bottom:1px solid var(--line-n)}
.mvvL .card::after{display:none}
.mvvL .card i{font-size:11.5px;letter-spacing:.34em;color:#8a6d1f}
.mvvL .card h3{font-size:clamp(23px,3vw,34px);line-height:1.85;letter-spacing:.05em;margin:16px 0 14px;color:var(--navy)}
.mvvL .card p{max-width:660px;font-size:13.5px;line-height:2.1}
@media(max-width:900px){
 .vh-grid2{grid-template-columns:1fr;gap:34px}
 .vhero{min-height:0}
 .vhero .jmap{max-height:64vh}
 .mvvL .card{padding:36px 2px}
}
@media(prefers-reduced-motion:reduce){
 .vh-copy>*,.vh-map{opacity:1;animation:none}
 .stair .cline{stroke-dasharray:none;stroke-dashoffset:0}
 .stair.rv.in .cline{animation:none}
 .vph img{transition:none}
}

/* v5.4.1 — 地図不可視バグ修正（width:auto→100%）・右上=北海道の上寄せ配置 */
.vh-grid2{align-items:start}
.vh-grid2 .vh-map{align-self:start}
.vhero{padding-top:98px}
.vhero .jmap{width:100%;height:auto;max-height:88vh;margin:0}
@media(max-width:900px){.vhero .jmap{max-height:none}}

/* v5.4.2 — 地図3倍拡大（北海道=右上アンカー・左下へ拡張）・図解をカード下へ */
.vhero{align-items:flex-start;min-height:0;padding:98px 0 56px;overflow:hidden}
.vh-grid2{align-items:start}
.vh-grid2 .vh-copy{position:relative;z-index:2;pointer-events:none}
.vh-grid2 .vh-copy a,.vh-grid2 .vh-copy button{pointer-events:auto}
.vh-grid2 .vh-map{position:relative;z-index:1;display:flex;justify-content:flex-end}
.vhero .jmap{width:170%;max-width:1500px;max-height:none;height:auto;margin:0;flex:none;pointer-events:none}
.vhero .jmap path{pointer-events:auto}
.figrow{margin-top:48px}
@media(max-width:900px){
 .vhero .jmap{width:100%;max-width:100%}
 .vh-grid2 .vh-map{justify-content:center}
}

/* ============================================================
   v5.5 — 地図拡大200%・金の衝撃波／数字XL／タイプ演出／mapswap／フッター整理
   ============================================================ */
.vhero .jmap{width:200%;max-width:1800px}
.jmap .rip{fill:none;stroke:var(--gold);stroke-width:1.4;transform-box:fill-box;transform-origin:center;animation:shock 3.3s linear infinite}
.jmap .rip.s2{animation-delay:1.1s}
.jmap .rip.s3{animation-delay:2.2s}
@keyframes shock{0%{transform:scale(.2);opacity:.85}70%{opacity:.25}100%{transform:scale(3.6);opacity:0}}
.vstats b{font-size:clamp(52px,5.5vw,80px)}
.vstats b span{font-size:clamp(16px,1.6vw,22px)}
.mvvL .card h3.typing::after{content:"▍";color:var(--gold);margin-left:2px;animation:carblink .9s steps(1) infinite}
@keyframes carblink{50%{opacity:0}}
.mapswap{position:relative}
.mapswap .ms-a,.mapswap .ms-b{transition:opacity 1.15s var(--ease),transform 1.15s var(--ease)}
.mapswap .ms-b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(1.1);pointer-events:none}
.mapswap .ms-b .jmap{width:auto;max-width:100%;max-height:100%;height:100%}
.mapswap.on .ms-a{opacity:0;transform:scale(.94)}
.mapswap.on .ms-b{opacity:1;transform:none}
.ft-btm{margin-top:34px;display:grid;gap:11px}
.ft-btm .ft-legal{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0}
.ft-btm .ft-sns{margin:0}
@media(prefers-reduced-motion:reduce){.jmap .rip{animation:none}.mvvL .card h3.typing::after{display:none}}

/* v5.6a — vstats数字修正（社会的意味と同手法）・SNSアイコン列 */
.vstats b{font-size:clamp(54px,6vw,84px);color:var(--navy)}
.vstats b span[data-count]{font-size:inherit;color:inherit;letter-spacing:-.01em}
.vstats b span:not([data-count]){font-size:clamp(15px,1.6vw,21px);color:#8a6d1f;margin-left:4px}
.ft-sns{display:flex;align-items:center;gap:16px}
.ft-sns a{display:inline-flex;color:rgba(255,255,255,.72)}
.ft-sns a:hover{color:var(--gold)}

/* v5.6b — フッター再構築（クラス衝突解消・行間整理） */
.ft-btm{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;margin-top:0}
.ft-btm .ft-legal{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0}
.ft-abq{font-family:var(--en);font-size:10px;font-weight:800;letter-spacing:.28em;color:var(--gold);margin:14px 0 0}
.ft-main .ft-sns{margin:14px 0 0}
.vh-stat b span[data-count]{font-size:inherit;color:inherit;margin-left:0}
.msw-ctl{display:flex;gap:10px;justify-content:center;margin-top:20px}
.msw-btn{font-family:var(--en);font-size:11px;font-weight:800;letter-spacing:.14em;padding:9px 20px;border:1px solid var(--navy);background:#fff;color:var(--navy);cursor:pointer;transition:all .2s;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%)}
.msw-btn.is-on{background:var(--navy);color:#fff}
.msw-btn:hover{border-color:#8a6d1f;color:#8a6d1f}
.msw-btn.is-on:hover{background:var(--navy-d);color:#fff}
.vloop{margin:30px 0 6px;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);background:var(--navy-d)}
.vloop video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.vloop figcaption{font-family:var(--en);font-size:10px;font-weight:800;letter-spacing:.2em;color:rgba(255,255,255,.65);padding:10px 16px;text-transform:uppercase}

/* v5.8 — 動画ローカル化（原比率）・インタビュー写真化・視認性向上 */
.vloop video{aspect-ratio:auto;height:auto;object-fit:contain;background:#0F1B3D}
.ivc{background-size:cover;background-position:center;border-color:rgba(255,255,255,.14)}
.ivc i{color:var(--gold)}
.ivc h3{color:#fff}
.ivc .tag-line{color:#E8D9A8}
.ivc p{color:rgba(255,255,255,.88)}
a.ivc:hover{border-color:var(--gold);transform:translateY(-3px)}
.vh-sub{color:rgba(255,255,255,.8)}
.note{font-size:12px;color:var(--ink-2);line-height:1.9}

/* v5.8.1 — ロゴ×ロゴ（TWO PILLARS） */
.logoduo{display:flex;align-items:center;justify-content:center;gap:clamp(22px,5vw,64px);margin:54px 0 14px}
.logoduo img{height:clamp(84px,11vw,150px);width:auto;max-width:38%;object-fit:contain;animation:lfloat 5.2s ease-in-out infinite}
.logoduo img:last-child{animation-delay:2.6s}
.logoduo span{font-family:var(--en);font-weight:800;font-size:clamp(26px,4vw,44px);color:var(--gold);line-height:1;animation:lpulse 5.2s ease-in-out infinite}
@keyframes lfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes lpulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.14);opacity:1}}
@media(prefers-reduced-motion:reduce){.logoduo img,.logoduo span{animation:none}}

/* v5.8.2 — ロゴ×ロゴ 2倍 */
.logoduo{gap:clamp(28px,6vw,84px);margin:64px 0 20px}
.logoduo img{height:clamp(150px,20vw,300px);max-width:44%}
.logoduo span{font-size:clamp(34px,5vw,62px)}

/* ============================================================
   v6.0 — モバイル抜本改修（最終カスケード・全上書き層）
   集合写真の非クロップ／地図200%事故の是正／比率・余白・操作性
   ============================================================ */
.vph-solo{margin:0}
.vph-solo img{width:100%;height:auto;display:block;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%)}
@media(hover:none){.jtip{display:none}}

@media(max-width:900px){
 body{overflow-x:hidden}
 .wrap{padding:0 22px}
 /* VISION地図：後期追加の200%指定を最終層で是正（右上=北海道は維持） */
 .vhero{padding:88px 0 44px;min-height:0}
 .vh-grid2{grid-template-columns:1fr;gap:30px;align-items:start}
 .vh-grid2 .vh-map{justify-content:center}
 .vhero .jmap{width:100%;max-width:100%;max-height:none;height:auto;margin:0}
 .vh-copy h1{font-size:clamp(19px,5.6vw,24px);line-height:1.9}
 .vh-body{font-size:12.5px;line-height:2.1}
 .vh-stat b{font-size:28px}
 .vh-legend{gap:12px 18px;font-size:11px}
 /* ロゴ×ロゴ：固定高×最大幅の同時制約による潰れを解消→縦積み */
 .logoduo{flex-direction:column;gap:16px;margin:44px 0 10px}
 .logoduo img{height:auto;width:min(76%,300px);max-width:none}
 .logoduo span{font-size:30px}
 /* 数字・カード・図解 */
 .vstats{grid-template-columns:1fr 1fr;gap:10px}
 .vstats b{font-size:clamp(38px,11vw,52px)}
 .figc{padding:14px 8px 10px}
 .mvvL .card{padding:34px 2px}
 .mvvL .card h3{line-height:1.95}
 /* 操作性 */
 .hero-btns{flex-wrap:wrap;gap:10px}
 .hero-btns .btn{flex:1 1 auto;min-width:150px;text-align:center}
 .msw-btn{padding:10px 14px;font-size:10px}
 .stair{display:none}
 .stair-m{display:grid}
 .vloop{margin:22px 0 4px}
 .ivc{background-position:center 30%}
}
@media(max-width:760px){
 .ptoc{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:6px}
 .ptoc>*{flex:0 0 auto}
 /* 章数が多いページで.wrapのmax-widthに当たり複数行に折れるのを防ぐ（常に1行スクロール） */
 .ptoc .wrap{max-width:none;width:max-content;flex-wrap:nowrap}
}
@media(max-width:560px){
 .fr.back{display:none}          /* イントロ演出の負荷・密度を軽減 */
 .vh-stat{width:100%;justify-content:flex-start}
 .msw-ctl{gap:8px}
 .ft-btm{flex-direction:column;align-items:flex-start;gap:10px}
 .venn text{letter-spacing:0}
}

/* ============================================================
   v6.2 — モバイル体験の抜本改善（A-H実行層）
   ============================================================ */
html{-webkit-text-size-adjust:100%}
a,button{-webkit-tap-highlight-color:rgba(200,168,75,.18)}

/* ドロワー：アコーディオン */
.mnav .mn-g{border-bottom:1px solid rgba(255,255,255,.12)}
.mnav .mn-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mnav .mn-p{display:block;flex:1;font-size:15.5px;font-weight:700;padding:15px 0;color:#fff}
.mnav .mn-tg{width:46px;height:46px;flex:0 0 46px;background:none;border:0;position:relative;cursor:pointer}
.mnav .mn-tg::before{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;border-right:1.6px solid var(--gold);border-bottom:1.6px solid var(--gold);transform:translate(-50%,-62%) rotate(45deg);transition:transform .25s var(--ease)}
.mnav .mn-g.open .mn-tg::before{transform:translate(-50%,-38%) rotate(-135deg)}
/* 閉じている間は visibility:hidden にしてタブ順から外す（max-height:0 だけでは focus 可能なまま） */
.mnav .mn-sub{max-height:0;overflow:hidden;visibility:hidden;transition:max-height .32s var(--ease),visibility 0s .32s}
.mnav .mn-g.open .mn-sub{max-height:680px;visibility:visible;transition:max-height .32s var(--ease),visibility 0s 0s}
.mnav .mn-sub .msub{display:block;font-size:13px;padding:11px 4px 11px 16px;border-top:1px solid rgba(255,255,255,.07)}

/* プロセス図：モバイル縦フロー */
.flow-m{display:none;list-style:none;margin:26px 0 0;padding:0}
.flow-m li{background:var(--navy);color:#fff;text-align:center;padding:14px 10px 12px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%);position:relative}
.flow-m li b{display:block;font-size:16px;letter-spacing:.08em}
.flow-m li span{display:block;font-family:var(--en);font-size:9.5px;letter-spacing:.24em;opacity:.75;margin-top:3px}
.flow-m li.gold{background:var(--gold);color:#0F1B3D}
.flow-m li+li{margin-top:26px}
.flow-m li+li::before{content:"";position:absolute;top:-19px;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top:9px solid var(--gold)}

@media(max-width:760px){
 #intro3 .fr{display:none}
 #intro3 .lgback{display:none}
 #intro3 .lg3wrap{width:min(80vw,340px);max-width:80vw}
 .dgm{display:none}
 .flow-m{display:block;max-width:300px;margin-left:auto;margin-right:auto}
 input,select,textarea{font-size:16px}
}

/* belief章（全5章共通）：上部可読性 */
@media(max-width:900px){
 .bs{padding-top:118px;box-shadow:inset 0 0 0 2000px rgba(15,27,61,.28)}
}

/* タブレット帯（761-1080px） */
@media(min-width:761px) and (max-width:1080px){
 .wrap{padding:0 34px}
 .vh-grid2{grid-template-columns:minmax(300px,400px) 1fr;gap:36px}
 .vhero .jmap{max-height:74vh}
 .logoduo img{height:clamp(130px,17vw,210px)}
 .venn{width:min(560px,100%)}
 .mvvL .card h3{font-size:clamp(22px,3.4vw,30px)}
}

/* ============================================================
   v6.3 — オープニング写真のモバイル再設計＋A-H細部仕上げ
   ============================================================ */
/* 文字組・フォーカス・共通の細部 */
h1,h2,h3{text-wrap:balance}
/* フォーカスリング：明背景では濃紺の輪（対比12:1）、暗背景では外側の金の輪（対比6.5:1）が見える二重構造 */
:focus-visible{outline:2px solid var(--navy-d);outline-offset:0;box-shadow:0 0 0 5px var(--gold);border-radius:1px}
body:has(.gh-burger[aria-expanded="true"]){overflow:hidden}
.gh-in{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}
.mnav{padding-bottom:calc(28px + env(safe-area-inset-bottom))}

@media(max-width:760px){
 /* --- オープニング：整列カスケード（写真は主役として復活） --- */
 #intro3 .fr{display:block}
 #intro3 .stream{height:auto;inset:0;padding:10vh 18px calc(16vh + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start;transform:none;animation:streamUpM 2.6s .05s cubic-bezier(.42,.05,.36,.97) forwards}
 #intro3 .fr{position:static;width:100%!important;min-width:0;aspect-ratio:4/5;transform:none;opacity:0;animation:frInM .85s var(--ease) both}
 #intro3 .fr:nth-child(even){margin-top:26px}
 #intro3 .fr:nth-child(1){animation-delay:.15s}
 #intro3 .fr:nth-child(2){animation-delay:.28s}
 #intro3 .fr:nth-child(3){animation-delay:.41s}
 #intro3 .fr:nth-child(4){animation-delay:.54s}
 #intro3 .fr:nth-child(5){animation-delay:.67s}
 #intro3 .fr:nth-child(6){animation-delay:.80s}
 #intro3 .fr:nth-child(7){animation-delay:.93s}
 #intro3 .fr:nth-child(8){animation-delay:1.06s}
 #intro3 .fr:nth-child(n+9){display:none}
 #intro3 .fr.back{filter:none;opacity:0}
 #intro3 .fr img{aspect-ratio:4/5;border:1px solid rgba(232,204,120,.85);box-shadow:0 10px 30px rgba(0,0,0,.5)}
 /* ロゴ組み上げ：下敷き・光彩の矩形感を排し、専用の暗幕で写真から浮かせる */
 #intro3 .lgback,#intro3 .mglow{display:none}
 #intro3 .lg3wrap{width:min(66vw,300px)}
 #intro3 .sc3::before{content:"";position:absolute;inset:0;background:rgba(13,22,48,.62);opacity:0;animation:hallIn .5s 3.0s ease forwards}
 #intro3 .skip3{right:18px;bottom:calc(16px + env(safe-area-inset-bottom))}
 /* 地図クロスフェード：日本地図の縦比を活かす */
 .mapswap .ms-b .jmap{width:auto;height:auto;max-width:100%;max-height:100%}
}
@keyframes streamUpM{to{transform:translateY(-24vh)}}
@keyframes frInM{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:760px) and (prefers-reduced-motion:reduce){
 #intro3 .stream{animation:none}
 #intro3 .fr{animation:none;opacity:1}
}

/* ============================================================
   v6.4 — 日本語改行システム／belief積層モードのモバイル仕上げ
   ============================================================ */
/* 【改行規約】1) 禁則強化＋長い英数の折返し（全文共通） */
p,li,dt,dd,figcaption{line-break:strict;overflow-wrap:break-word}
h1,h2,h3,.ch-h{line-break:strict;text-wrap:balance}
p,.lead{text-wrap:pretty}
/* 2) 見出し・リード内の<br>はPC専用。モバイルはブラウザ折返し＋balanceに委ねる */
@media(max-width:760px){
 h1 br,h2 br,h3 br,.lead br,.vh-body br,.ch-h br{display:none}
}
/* 3) 例外ユーティリティ：br.sp=モバイルのみ改行／.nb=分断禁止（数値+単位・固有名詞） */
br.sp{display:none}
@media(max-width:760px){br.sp{display:inline}}
.nb{white-space:nowrap}

/* belief：モバイル積層モードの仕上げ（可読性・ヘッダー回避・余白） */
@media(max-width:760px){
 .b-rm .bs{min-height:100svh;display:flex;align-items:center}
 .b-rm .bs-in,.b-rm .bs-center{position:relative;left:0;top:0;transform:none;max-width:none;width:100%;padding:104px 22px 64px;text-align:left}
 .b-rm .bs-center{text-align:center}
 .b-rm .bs-grad{background:linear-gradient(180deg,rgba(13,22,48,.92) 0 18%,rgba(13,22,48,.55) 42%,rgba(13,22,48,.68))}
 .b-rm .ch-h{font-size:clamp(24px,7vw,30px);line-height:1.85}
 .b-rm .blk{font-size:14px;line-height:2.15}
 .b-rm .b-hint{display:none}
}

/* ============================================================
   v6.5 — 被写体保護システム（顔切れ防止の焦点統一）＋数値追加
   ============================================================ */
/* 写真の重心＝上部1/3に焦点を合わせる（cover既定の中央50%を是正） */
.hero-slide{background-position:center 30%}
.vph img,.vph-solo img{object-position:center 30%}
.ivc{background-position:center 26%}
.bs-bg{background-position:center 32%}
.phero img{object-position:center 30%}
/* オープニング：原比率3:2で切り抜きゼロに（人物の左右切れ解消） */
@media(max-width:760px){
 #intro3 .fr{aspect-ratio:3/2}
 #intro3 .fr img{aspect-ratio:3/2}
 #intro3 .fr:nth-child(even){margin-top:20px}
}

/* ============================================================
   v6.7 — 信頼帯3×2／モデル図解のループ・アクション
   ============================================================ */
.trust{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.trust{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.trust{grid-template-columns:1fr}}
/* ベン図：共通レンズの脈動＋外周オービット */
.vn-lens{transform-box:fill-box;transform-origin:center;animation:vnPulse 4.6s ease-in-out infinite}
@keyframes vnPulse{0%,100%{opacity:.92;transform:scale(1)}50%{opacity:1;transform:scale(1.035)}}
.vn-spin{transform-box:fill-box;transform-origin:center;animation:vnSpin 72s linear infinite}
.vn-spin.r{animation-direction:reverse;animation-duration:88s}
@keyframes vnSpin{to{transform:rotate(360deg)}}
/* 公共の半径：中心から外へ広がり続けるソナー */
.orip{transform-box:fill-box;transform-origin:center;animation:oSonar 3.8s ease-out infinite}
@keyframes oSonar{0%{transform:scale(.55);opacity:.8}75%{opacity:.16}100%{transform:scale(3.85);opacity:0}}
@media(prefers-reduced-motion:reduce){.vn-lens,.vn-spin,.orip{animation:none}}
@keyframes pinBeat{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.75}}
@keyframes tlPulse{0%,100%{opacity:.5}50%{opacity:1}}

/* ベン図：呼吸＋衛星＋増幅 */
.vn-f{transform-box:fill-box;transform-origin:center;animation:vnBreath 7s ease-in-out infinite}
.vn-f.r{animation-delay:3.5s}
@keyframes vnBreath{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
.vn-lens{animation-duration:4s}
@keyframes vnPulse{0%,100%{opacity:.88;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
.vn-spin{opacity:.45;animation-duration:26s}
.vn-spin.r{animation-duration:34s}
.vn-sat{transform-box:view-box;transform-origin:265px 185px;animation:vnOrbit 14s linear infinite}
.vn-sat.rr{transform-origin:455px 185px;animation-direction:reverse;animation-duration:18s}
@keyframes vnOrbit{to{transform:rotate(360deg)}}

/* 公共の半径：3重ソナー＋矢印永久ドロー */
.orip.o2{animation-delay:1.27s}
.orip.o3{animation-delay:2.54s}
.oline{stroke-dasharray:167;animation:oDraw 3.8s ease-in-out infinite}
@keyframes oDraw{0%{stroke-dashoffset:167;opacity:0}10%{opacity:1}55%{stroke-dashoffset:0}88%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}

/* トップ・プロセス図：流れ続ける矢印＋社会変化チップの鼓動 */
.dgm line{stroke-dasharray:6 7;animation:dashMarch 1.15s linear infinite}
.dgm path[fill="#C8A84B"]{transform-box:fill-box;transform-origin:center;animation:chipBeat 3s ease-in-out infinite}
@keyframes chipBeat{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.flow-m li+li::before{animation:fmBounce 1.6s ease-in-out infinite}
@keyframes fmBounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,4px)}}
.flow-m li.gold{animation:chipBeat 3s ease-in-out infinite}

/* ロードマップ：2030へ流れ続ける時間軸＋ピンの波 */
.stair .cline{stroke-dasharray:14 12;stroke-dashoffset:0;animation:dashMarch 1.5s linear infinite}
.stair.rv.in .cline{animation:dashMarch 1.5s linear infinite}
.stair .pin{transform-box:fill-box;transform-origin:center;animation:pinBeat 2.6s ease-in-out infinite}
.stair .pin:nth-of-type(1){animation-delay:0s}
.stair .pin:nth-of-type(2){animation-delay:.35s}
.stair .pin:nth-of-type(3){animation-delay:.7s}
.stair .pin:nth-of-type(4){animation-delay:1.05s}
.stair .pin:nth-of-type(5){animation-delay:1.4s}

/* 受賞年表：マーカーの順次パルス */
.tl-i::before{animation:tlPulse 3.2s ease-in-out infinite}
.tl-i:nth-child(2)::before{animation-delay:.3s}
.tl-i:nth-child(3)::before{animation-delay:.6s}
.tl-i:nth-child(4)::before{animation-delay:.9s}
.tl-i:nth-child(5)::before{animation-delay:1.2s}
.tl-i:nth-child(6)::before{animation-delay:1.5s}
.tl-i:nth-child(7)::before{animation-delay:1.8s}
.tl-i:nth-child(8)::before{animation-delay:2.1s}
.tl-i:nth-child(9)::before{animation-delay:2.4s}

@media(prefers-reduced-motion:reduce){
 .vn-f,.vn-sat,.orip.o2,.orip.o3,.oline,.dgm line,.dgm path[fill="#C8A84B"],
 .flow-m li+li::before,.flow-m li.gold,.stair .cline,.stair .pin,.tl-i::before,
 .anim-march,.anim-beat{animation:none}
 .oline{stroke-dasharray:none}
}

/* v7.3 — ニュース写真ギャラリー（スワイプ） */
.igal{margin:34px auto 30px;max-width:540px}
.igal-cap{margin-top:10px;text-align:center;font-size:11.5px;color:var(--ink-3);font-family:var(--en);letter-spacing:.06em}
.igal-tr{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:10px;scrollbar-width:none}
.igal-tr::-webkit-scrollbar{display:none}
.igal-s{flex:0 0 100%;margin:0;scroll-snap-align:center;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.igal-s img{display:block;width:100%;height:auto;background:#0F1B3D}
.igal-dots{display:flex;justify-content:center;gap:8px;margin-top:12px}
.igal-dots button{width:9px;height:9px;border-radius:50%;border:1px solid var(--navy);background:#fff;cursor:pointer;padding:0}
.igal-dots button.on{background:var(--gold);border-color:#8a6d1f}

/* ============================================================
   v7.4 — イントロ1.5倍速仕上げ・contact縦積み・belief演出復帰
   ============================================================ */
@media(max-width:900px){
 .c2col{grid-template-columns:1fr!important;gap:28px!important}
}
@media(max-width:760px){
 /* belief：デッキ演出のまま、内容を下げてヘッダー衝突を回避 */
 .bs-in{top:calc(50% + 32px);left:22px;right:22px;max-width:none}
 .bs-center{top:calc(50% + 26px)}
 .bs .ch-h{font-size:clamp(21px,6vw,26px);line-height:1.8}
 .bs .blk{font-size:13.5px;line-height:2.05}
 /* 円形ワイプ排除の保険（lgback二重確認） */
 #intro3 .lgback{display:none!important}
}


/* v7.5.1 — trust第6項の順次フェード補完（全国優勝の演出差を解消） */
.rv.in.trust>div:nth-child(6){transition-delay:.4s}

/* v7.5.5 — モバイル・オープニング：最終フレームで写真が画面いっぱいに（8→16枚） */
@media(max-width:760px){
 #intro3 .fr:nth-child(n+9){display:block}
 #intro3 .fr:nth-child(n+17){display:none}
 #intro3 .fr:nth-child(9){animation-delay:1.19s}
 #intro3 .fr:nth-child(10){animation-delay:1.32s}
 #intro3 .fr:nth-child(11){animation-delay:1.45s}
 #intro3 .fr:nth-child(12){animation-delay:1.58s}
 #intro3 .fr:nth-child(13){animation-delay:1.71s}
 #intro3 .fr:nth-child(14){animation-delay:1.84s}
 #intro3 .fr:nth-child(15){animation-delay:1.97s}
 #intro3 .fr:nth-child(16){animation-delay:2.10s}
}

/* ============================================================
   v7.6 — A-H第2次：操作性・組版・タブレット・スクロール挙動
   ============================================================ */
/* D) タップ領域44px級：SKIP・ギャラリードット */
@media(max-width:760px){
 .skip3{padding:13px 22px;font-size:10.5px;bottom:calc(18px + env(safe-area-inset-bottom))}
}
.igal-dots{gap:4px;margin-top:8px}
.igal-dots button{width:28px;height:28px;border:0;background:none;position:relative;border-radius:0}
.igal-dots button::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:9px;height:9px;border-radius:50%;border:1px solid var(--navy);background:#fff;transition:background .2s}
.igal-dots button.on::before{background:var(--gold);border-color:#8a6d1f}
/* D) ドロワー内スクロールの連鎖防止 */
.mnav{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
/* C) 統計数字＋単位の分断禁止 */
.trust>div>b,.vstats b,.case-stats b,.metric>div>b,.vh-stat b{white-space:nowrap}
/* B) タブレット帯：3列カードの窮屈さを2列へ */
@media(min-width:761px) and (max-width:1080px){
 .grid3{grid-template-columns:repeat(2,1fr)}
}

/* v7.8 — J/D微調整：立場別入口のモバイル最適化 */
@media(max-width:760px){
 .hero-aud{gap:14px 22px;margin-top:40px}
 .hero-aud a{font-size:12px;padding:4px 0}
}

/* ============================================================
   v7.9 — 人ページ改良：集合写真縮小・名簿コンパクト化・モーダル
   ============================================================ */
/* 集合写真：全幅→中央840pxに */
.vph-solo{max-width:640px;margin-left:auto;margin-right:auto}
/* 名簿：個人写真の占有縮小（画質配慮）＋カード高密度化 */
/* タップ・フィードバック（軽いギミックの前段） */
.mcard{cursor:pointer}
.mcard:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(15,27,61,.12)}
.mcard:active{transform:translateY(-1px) scale(.985)}
.mcard .ph img{transition:transform .3s ease}
.mcard:hover .ph img{transform:scale(1.07)}
@media(prefers-reduced-motion:reduce){.mcard,.mcard .ph img{transition:none}}}


/* v8.0 — OUR BELIEF見出しの光学中央（letter-spacing:.42emの末尾余白を先頭indentで相殺） */
.bs-center .ch-no{text-indent:.42em}


/* v8.1 — 人ページ復元＋幅縮小＋モーダル致命バグ修正 */
.mcards,.mcards.exec{max-width:1000px;margin-left:auto;margin-right:auto}


/* ============================================================
   v8.2 — beliefモバイル確定形：全文1画面フィット＋タイトル強調
   （スワイプ章送りと衝突するため内部スクロールは用いない）
   ============================================================ */
@media(max-width:760px){
 .bs .bs-in,.bs .bs-center{position:absolute;left:0;right:0;top:0;bottom:0;transform:none;max-width:none;
  display:flex;flex-direction:column;justify-content:center;
  padding:76px 20px calc(20px + env(safe-area-inset-bottom));overflow:hidden;text-align:left}
 .bs .bs-center{text-align:center;align-items:center}
 .bs .ch-no{font-size:11px;letter-spacing:.3em;margin-bottom:8px}
 .bs .ch-h{font-size:clamp(28px,8.6vw,35px);line-height:1.55;font-weight:800;letter-spacing:.02em;margin:0 0 14px}
 .bs-center .ch-h{align-self:center}
 .bs .blk{font-size:12.5px;line-height:1.85;margin:8px 0}
 .bs .blk br{display:inline}
 .bs-grad{background:linear-gradient(180deg,rgba(13,22,48,.88) 0 14%,rgba(13,22,48,.62) 40%,rgba(13,22,48,.8))}
}
@media(max-width:760px) and (max-height:700px){
 .bs .blk{font-size:11.5px;line-height:1.7;margin:6px 0}
 .bs .ch-h{font-size:25px}
}

/* v8.4 — 参加者の声（モギ区長選アンケート） */
.voices{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:34px}
.voice{margin:0;background:#fff;border:1px solid var(--line);padding:22px 22px 18px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%)}
.voice blockquote{margin:0;font-size:13.5px;line-height:2;color:var(--ink)}
.voice figcaption{margin-top:12px;font-size:11px;letter-spacing:.08em;color:#8a6d1f;font-weight:700}
.voice.council{background:var(--navy);border-color:var(--navy)}
.voice.council blockquote{color:#fff}
.voice.council figcaption{color:var(--gold)}
@media(max-width:560px){.voices{grid-template-columns:1fr}}

/* ============================================================
   v8.5 — モデル拡大・参加者の声（吹き出し・順次出現）
   ============================================================ */
.logoduo img{height:clamp(150px,20vw,290px);max-width:46%}
.figrow{grid-template-columns:1fr!important;max-width:980px;margin-left:auto;margin-right:auto}
.venn{width:min(960px,100%)}
.voices{display:flex;flex-direction:column;gap:16px;margin-top:30px;max-width:760px;margin-left:auto;margin-right:auto}
.voice{position:relative;margin:0;background:#fff;border:1px solid var(--line);padding:16px 20px;max-width:82%;clip-path:none;
 opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.voice::after{content:"";position:absolute;bottom:-8px;left:26px;width:14px;height:14px;background:#fff;
 border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}
.voice:nth-child(even){align-self:flex-end}
.voice:nth-child(even)::after{left:auto;right:26px}
.voices.in .voice{opacity:1;transform:none}
.voices.in .voice:nth-child(2){transition-delay:.2s}
.voices.in .voice:nth-child(3){transition-delay:.4s}
.voices.in .voice:nth-child(4){transition-delay:.6s}
.voices.in .voice:nth-child(5){transition-delay:.8s}
.voice blockquote{margin:0;font-size:13px;line-height:1.95;color:var(--ink)}
.voice figcaption{margin-top:8px;font-size:10.5px;letter-spacing:.08em;color:#8a6d1f;font-weight:700}
@media(max-width:560px){.voice{max-width:94%}}

/* v8.6 — VISIONモデル：ロゴ⇄図の自動クロスフェード（9秒周期） */
.figc.mswap{position:relative}
.figc.mswap .msw-logo{position:absolute;left:50%;top:calc(50% - 18px);transform:translate(-50%,-50%);
 width:min(52%,420px);max-height:58%;object-fit:contain;opacity:0;pointer-events:none;
 animation:mswL 9s ease-in-out infinite}
.figc.mswap .venn{animation:mswF 9s ease-in-out infinite}
@keyframes mswL{0%,38%{opacity:1}46%,92%{opacity:0}100%{opacity:1}}
@keyframes mswF{0%,38%{opacity:0}46%,92%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
 .figc.mswap .msw-logo{display:none}
 .figc.mswap .venn{animation:none;opacity:1}
}

/* ============================================================
   v8.7 — 見出し改行システム・事業ロゴ幅・自ドメインfavicon
   ============================================================ */
/* 日本語見出し：均衡折返し＋モバイル最適サイズ */
.phero h1,.pj-t,.h-xl,.h-lg,.h-md{text-wrap:balance}

/* ── eyebrow（英字ラベル）と直後の見出しの間隔（全ページ共通） ──
   見出しが大きいほど間隔も広げる。固定14pxだと大見出しで文字が詰まって見えるため。 */
:is(.eyebrow,.pj-num,.eyb) + :is(h2,h3,.h-lg,.h-md,.pj-t,.mstory-lead){
  margin-top:clamp(16px,1.5vw,26px)!important;
}
/* 特大見出し（h1・h-xl）は字面が大きいぶん、さらに間隔を確保する */
:is(.eyebrow,.pj-num,.eyb) + :is(h1,.h-xl,.ch-h){
  margin-top:clamp(20px,2.2vw,34px)!important;
}
/* 中央寄せの創設セクションは意図的に詰めていたが、eyebrowと重なるため解除 */
.origin .h-xl{margin-top:clamp(20px,2.2vw,34px)!important}

/* ── 写真ブロックの直後に見出し／小見出しが来るときの余白（全ページ共通） ──
   写真の下端に文字が貼りつくのを防ぐ。inline style の margin-top より強く効かせる。 */
:is(figure,.vph,.vph-solo,.mstrip,.flm,.mosaic,.grid2,.grid3,.grid4)
 + :is(.eyebrow,.h-xl,.h-lg,.h-md,.pj-num,.pj-t,h2,h3){
  margin-top:clamp(56px,7vw,92px)!important;
}
@media(max-width:760px){
 :is(figure,.vph,.vph-solo,.mstrip,.flm,.mosaic,.grid2,.grid3,.grid4)
  + :is(.eyebrow,.h-xl,.h-lg,.h-md,.pj-num,.pj-t,h2,h3){
   margin-top:clamp(40px,9vw,64px)!important;
 }
}
@media(max-width:760px){
 .phero h1{font-size:clamp(26px,7.6vw,34px);line-height:1.5}
 .h-xl{font-size:clamp(24px,7vw,32px)}
 .h-lg{font-size:clamp(21px,6.2vw,27px)}
}
/* 事業ロゴ：スマホ・iPad=画面いっぱい／PC=上限幅 */
.plogo{display:block;margin:0 auto;width:min(88%,520px);height:auto}
@media(max-width:1080px){.plogo{width:min(92%,560px)}}
@media(max-width:760px){.plogo{width:92vw;max-width:440px}}

@media(prefers-reduced-motion:reduce){
 .anim .an-u,.anim .an-line-i{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
 .anim-typewriter.anim-run::after{display:none}
}

/* ============================================================
   v8.9 — TJPアニメーションライブラリ
   ============================================================ */
.tja-ch{display:inline-block;white-space:pre;opacity:0;transform:translateY(.34em);
 transition:opacity .5s ease,transform .55s cubic-bezier(.2,.7,.3,1)}
[data-anim="type"] .tja-ch{transform:none;transition:none;opacity:0}
[data-anim="type"].tja-in .tja-ch{opacity:0}
[data-anim="type"] .tja-ch.on{opacity:1}
/* type：全文字を先に配置し順次可視化（改行揺れ防止）。キャレットは絶対配置で無影響 */
[data-anim="type"] .tja-tc{opacity:0}
[data-anim="type"] .tja-tc.on{opacity:1}
[data-anim="type"] .tja-tc.cur{position:relative}
[data-anim="type"] .tja-tc.cur::after{content:"";position:absolute;left:100%;top:.08em;height:.86em;width:2px;margin-left:1px;background:currentColor;animation:tjaCaret .75s steps(1) infinite}
.tja-line{display:block;opacity:0;transform:translateY(22px);
 transition:opacity .6s ease,transform .65s cubic-bezier(.2,.7,.3,1)}
.tja-in .tja-ch,.tja-in .tja-line{opacity:1;transform:none}
/* トップHERO見出し＝line-stackを滑らかに（大きめのせり上がり・上品な減速カーブ） */
.hero .hero-in h1 .tja-line{transform:translateY(26px);transition:opacity .5s ease,transform .58s cubic-bezier(.22,.72,.2,1)}
.hero .hero-in h1.tja-in .tja-line{opacity:1;transform:none}
.tja-caret{display:inline-block;width:2px;height:.95em;background:currentColor;
 margin-left:3px;vertical-align:-.1em;animation:tjaCaret .75s steps(1) infinite}
@keyframes tjaCaret{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){
 .tja-ch,.tja-line,.tja-tc{opacity:1;transform:none;transition:none}
 .tja-caret,.tja-tc.cur::after{display:none}
}

/* ============================================================
   v8.9.1 — Two Pillarsロゴ：旧.logoduo imgルールへの詳細度勝ち
   （原因：.plogo(0,1,0)が.logoduo img(0,1,1)に敗北していた）
   ============================================================ */
@media(max-width:760px){
 .logoduo{flex-direction:column;gap:10px;margin:40px 0 10px}
 .logoduo img,.logoduo img.plogo{height:auto!important;width:92vw!important;max-width:480px!important}
 .logoduo span{font-size:26px}
}
@media(min-width:761px) and (max-width:1080px){
 .logoduo img,.logoduo img.plogo{height:auto!important;width:min(42%,430px)!important;max-width:none!important}
}

/* ============================================================
   v9.0.1 — 写真背景帯の一律基準（②形式）：濃スクリム・説明なし
   ============================================================ */
.mstrip figure{position:relative;overflow:hidden}
.mstrip figure::after{content:"";position:absolute;inset:0;
 background:linear-gradient(180deg,rgba(13,22,48,.58),rgba(13,22,48,.72))}
@media(max-width:760px){
 .mstrip{grid-template-columns:1fr!important;gap:10px}
 .mstrip figure{aspect-ratio:16/7;min-height:0}
 .mstrip + .fmt{margin-top:26px}
}

/* ============================================================
   v9.3 — パートナーロゴ壁（.plogo-wall）：光学サイズを統一する枠方式
   ============================================================ */
.plogo-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1px;
 background:var(--line);border:1px solid var(--line);margin-top:34px}
.plogo-wall li{list-style:none;background:#fff;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;padding:22px}
.plogo-wall img{max-width:78%;max-height:60%;width:auto;height:auto;object-fit:contain;
 filter:grayscale(1);opacity:.72;transition:filter .4s ease,opacity .4s ease}
.plogo-wall li:hover img{filter:none;opacity:1}
.plogo-wall figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:760px){
 .plogo-wall{grid-template-columns:1fr 1fr}
 .plogo-wall li{aspect-ratio:3/2;padding:16px}
}
@media(prefers-reduced-motion:reduce){.plogo-wall img{transition:none}}

/* v9.3.1 — 足立区（単体掲出） */
.p-host{display:flex;align-items:center;gap:26px;margin-top:34px;padding:26px 30px;
 background:#fff;border:1px solid var(--line);border-left:4px solid var(--navy)}
.p-host img{width:min(200px,34%);height:auto;flex:none}
.p-host b{display:block;font-size:15px;color:var(--navy);margin-bottom:6px}
.p-host span{font-size:12.5px;line-height:2;color:var(--ink-2)}
@media(max-width:640px){.p-host{flex-direction:column;align-items:flex-start;gap:14px;padding:22px}
 .p-host img{width:min(190px,60%)}}

/* v9.3.2 — マーキー内の実ロゴチップ */
.pl-chip.pl-logo{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.pl-chip.pl-logo img{height:30px;width:auto;max-width:150px;object-fit:contain;
 opacity:1;transition:transform .4s ease}
.pl-chip.pl-logo:hover img{opacity:1}
@media(max-width:760px){.pl-chip.pl-logo img{height:24px;max-width:120px}}

/* v9.3.3 — 地色を持つロゴ（TYC等）は枠内で正方形として整える */
.plogo-wall img[src*="toronto"],.plogo-wall img[src*="earth-guardians"],.plogo-wall img[src*="jyc"]{max-height:76%;max-width:56%}
.pl-chip.pl-logo img[src*="toronto"],.pl-chip.pl-logo img[src*="earth-guardians"],.pl-chip.pl-logo img[src*="jyc"]{height:34px}

/* v9.6 — Dock Magnification（ホバー中はマーキー停止・拡大の下地） */
.plogos-row:hover .plogos-track{animation-play-state:paused}
.pl-chip{transition:transform .16s cubic-bezier(.2,.7,.3,1);transform-origin:bottom center;will-change:transform}
.plogo-wall li{transition:transform .16s cubic-bezier(.2,.7,.3,1);transform-origin:center;will-change:transform;position:relative}
.plogos-row{padding:14px 0}

/* v9.6.4 — JS不調時のCSS単体フォールバック（インラインstyleが優先されるため干渉なし） */
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .pl-chip:hover{transform:translateY(-8px) scale(1.24);z-index:3}
 .plogo-wall li:hover{transform:scale(1.18);z-index:3}
}

/* v9.8 ARCHIVE標本（.ins デュオトーン挿絵）は廃止（世界観維持のため色演出を全撤去） */
@media(prefers-reduced-motion:reduce){.ins img{transition:none}}
/* ── v933: リンクカードの常時CTA（押せることの明示・全ページ共通）── */
a.card{display:flex;flex-direction:column}
a.card .card-go{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);font-size:12px;font-weight:800;color:var(--navy);display:flex;align-items:center;justify-content:space-between;letter-spacing:.04em}
a.card .card-go::after{content:"→";color:var(--gold);font-weight:700;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
a.card:hover .card-go{color:var(--navy-d)}
a.card:hover .card-go::after{transform:translateX(6px)}
a.card>p:last-of-type{margin-bottom:14px}


/* assets/css/style.css の末尾に追記する。既存ルールは1行も変更しない。
   .news / .news a / .news i / .news span（style.css:220-225, 349-350）は
   別コンポーネント（.nwr）へ移行するため触らず、そのまま放置してよい（index/press から参照が消えるだけ）。 */

/* ============================================================
   v9.5 NEWSROOM — 記録レジスタ（.nwr）
   要素“順”依存グリッドを廃し、grid-template-areas ＋ 要素名/クラス指定へ移行。
   これにより newsItem() に要素を足しても列が崩壊しない。
   ============================================================ */
.nwr{--nwr-th:112px;margin-top:34px;border-top:2px solid var(--navy)}

/* 年帯 */
.nwr-y{display:flex;align-items:baseline;gap:14px;padding:30px 4px 10px;border-bottom:1px solid var(--line-n)}
.nwr-y:first-child{padding-top:16px}
.nwr-y b{font-family:var(--en);font-size:20px;font-weight:800;letter-spacing:.08em;color:var(--navy);font-variant-numeric:tabular-nums}
.nwr-y span{font-family:var(--en);font-size:9.5px;font-weight:800;letter-spacing:.24em;color:var(--ink-3)}

/* 1件＝1グリッド。列は名前で決まる（順序非依存） */
.nwr .nw-i{
  display:grid;
  grid-template-columns:var(--nwr-th) 92px 104px 1fr;
  grid-template-areas:"th date cat title" "th date cat deck";
  column-gap:20px;row-gap:0;
  padding:18px 4px;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.nwr .nw-i:hover,.nwr .nw-i:focus-visible{background:var(--off);box-shadow:inset 2px 0 0 var(--gold)}
.nwr .nw-i:focus-visible{outline:2px solid var(--navy-l);outline-offset:-2px}
.nwr .nw-th{grid-area:th}
.nwr .nw-i>time{grid-area:date;align-self:start;font-family:var(--en);font-size:11.5px;letter-spacing:.06em;color:var(--ink-3);font-variant-numeric:tabular-nums;padding-top:2px}
.nwr .nw-i>i{grid-area:cat;align-self:start;font-family:var(--en);font-size:9.5px;font-weight:800;letter-spacing:.12em;font-style:normal;line-height:1.9;color:var(--navy);border:1px solid var(--line-n);padding:3px 0;text-align:center}
.nwr .nw-i>i[data-c="AWARD"]{color:#8a6d1f;border-color:var(--gold)}
.nwr .nw-t{grid-area:title;font-size:14.5px;font-weight:700;line-height:1.7;color:var(--navy)}
.nwr .nw-d{grid-area:deck;margin-top:7px;font-size:12.5px;line-height:1.9;color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nwr .nw-i:hover .nw-t{color:var(--navy-d)}

/* サムネイル。案3が発見した実バグ（aspect-ratio + height:100% が親高さ不定で解決しない）
   を position:absolute;inset:0 で回避する。 */
.nwr .nw-th{position:relative;overflow:hidden;width:var(--nwr-th);aspect-ratio:3/2;background:#0F1B3D;
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
.nwr .nw-th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.nwr .nw-i:hover .nw-th img{transform:scale(1.05)}
/* 写真のない記事は「？」で埋める（欠落ではなく記号として立たせる） */
.nwr .nw-th.nw-q::after{content:"？";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--en);font-weight:800;font-size:30px;color:rgba(255,255,255,.14)}
/* 前年以前＝サムネなしの索引行 */
.nwr .nw-i.nw-arch{grid-template-columns:92px 104px 1fr;grid-template-areas:"date cat title" "date cat deck"}
.nwr .nw-i.nw-arch .nw-th{display:none}
/* 外部リンク行（メディア掲載） */
.nwr .nw-ext .nw-t::after{content:"↗";margin-left:7px;color:var(--gold);font-weight:700}

/* 操作バー：検索は塗り面ではなく下線1本（フォーム部品／管理画面の質感を避ける） */
.nwr-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:30px}
.nwr-find{flex:1 1 260px;max-width:360px;position:relative}
.nwr-find input{width:100%;font-family:var(--font);font-size:13px;color:var(--ink);background:transparent;
  border:0;border-bottom:1px solid var(--line-n);border-radius:0;padding:10px 0 10px 24px;-webkit-appearance:none;appearance:none}
.nwr-find input::placeholder{color:var(--ink-3)}
.nwr-find input:focus{outline:0;border-bottom-color:var(--navy)}
.nwr-find input::-webkit-search-cancel-button{-webkit-appearance:none}
.nwr-find::before{content:"";position:absolute;left:2px;top:50%;width:10px;height:10px;margin-top:-7px;
  border:1.5px solid var(--navy-l);border-radius:50%;pointer-events:none}
.nwr-find::after{content:"";position:absolute;left:12px;top:50%;width:6px;height:1.5px;margin-top:2px;
  background:var(--navy-l);transform:rotate(45deg);pointer-events:none}
.nwr-count{margin-left:auto;font-family:var(--en);font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--ink-3);font-variant-numeric:tabular-nums}

/* チップ（.chips を継承。件数バッジは付けない＝ECのファセット感を出さない） */
.nwr-chips{margin-top:20px}
.nwr-chips button{cursor:pointer;font-family:var(--font);min-height:34px}

/* 段階表示・空状態 */
.nwr .nw-i.is-hidden,.nwr .nwr-y.is-hidden{display:none}
.nwr-more{margin-top:26px;text-align:center}
.nwr-more button{font-family:var(--en);font-size:11.5px;font-weight:800;letter-spacing:.16em;color:var(--navy);
  background:#fff;border:1px solid var(--line-n);padding:14px 34px;cursor:pointer;min-height:44px;
  clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,0 100%);
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.nwr-more button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.nwr-more em{font-family:var(--font);font-style:normal;font-weight:400;letter-spacing:.02em;color:var(--ink-3);margin-left:6px}
.nwr-more button:hover em{color:rgba(255,255,255,.7)}
.nwr-empty{margin-top:26px;padding:30px 4px;text-align:center;font-size:13px;color:var(--ink-2);border-bottom:1px solid var(--line)}
.nwr-reset{margin-left:10px;font-size:13px;font-weight:700;color:var(--navy);background:none;border:0;
  border-bottom:1px solid var(--gold);padding:0 0 3px;cursor:pointer;font-family:var(--font)}
.nwr-reset:hover{border-color:var(--navy)}

/* index.html 用の軽量版 */
.nwr-lite{--nwr-th:84px;border-top:1px solid var(--line)}
.nwr-lite .nw-i{padding:16px 4px}
.nwr-lite .nw-d{-webkit-line-clamp:1;line-clamp:1}

/* 報道窓口 */
.nwr-desk{display:grid;grid-template-columns:1fr auto;gap:22px 40px;align-items:center;margin-top:26px;
  padding:28px 32px;background:#fff;border:1px solid var(--line);
  clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.nwr-desk-t{font-size:13px;line-height:2.05;color:var(--ink-2);max-width:660px}
.nwr-desk-t b{color:var(--navy);font-weight:800}
.nwr-desk-a{display:flex;flex-direction:column;gap:10px;min-width:220px}
.nwr-desk-a .btn{justify-content:center}
.nwr-desk-m{font-family:var(--en);font-size:11.5px;letter-spacing:.04em;color:var(--ink-3);text-align:center;margin-top:2px}

/* 記事末ボイラープレート */
.news-bp{margin-top:42px;padding:26px 28px;background:var(--off);border-left:2px solid var(--navy);
  clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.news-bp b{display:block;font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--navy);margin-bottom:10px}
.news-bp p{font-size:12.5px;line-height:1.95;color:var(--ink-2)}
.news-bp .news-bp-c{margin-top:13px;padding-top:13px;border-top:1px solid var(--line-n);font-size:12px}
.news-bp a{color:var(--navy);font-weight:700;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px}
.news-bp a:hover{border-color:var(--navy)}

/* ---- タブレット / モバイル ---- */
@media(max-width:1080px){
  .nwr{--nwr-th:100px}
  .nwr .nw-i{grid-template-columns:var(--nwr-th) 84px 96px 1fr;column-gap:16px}
  .nwr .nw-i.nw-arch{grid-template-columns:84px 96px 1fr}
}
@media(max-width:820px){
  .nwr{--nwr-th:96px}
  .nwr .nw-i{
    grid-template-columns:var(--nwr-th) auto 1fr;
    grid-template-areas:"th date cat" "th title title" "th deck deck";
    column-gap:14px;row-gap:0;padding:16px 2px}
  .nwr .nw-i.nw-arch{grid-template-columns:auto 1fr;grid-template-areas:"date cat" "title title" "deck deck"}
  .nwr .nw-i>time{padding-top:0;font-size:11px}
  .nwr .nw-i>i{justify-self:start;padding:2px 9px;font-size:9px;line-height:1.8}
  .nwr .nw-t{margin-top:7px;font-size:14px;line-height:1.65}
  .nwr .nw-d{margin-top:5px;font-size:12px;line-height:1.85}
  .nwr .nw-th{align-self:start}
  .nwr-desk{grid-template-columns:1fr;padding:24px 22px}
  .nwr-desk-a{min-width:0}
  .nwr-desk-a .btn{width:100%}
}
@media(max-width:760px){
  /* チップは .ptoc と同じ横スクローラにする（.chips は flex-wrap しか無く、
     9個並ぶと3〜4行に折り返して見出しを押し下げるため） */
  .nwr-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;
    scrollbar-width:none;margin-left:-22px;margin-right:-22px;padding-left:22px;padding-right:22px}
  .nwr-chips::-webkit-scrollbar{display:none}
  .nwr-chips>*{flex:0 0 auto}
  /* iOSズーム防止（既存の input 16px ルールと同じ思想。下線フィールドにも適用） */
  .nwr-find input{font-size:16px;padding-left:26px}
  .nwr-count{margin-left:0;width:100%}
  .nwr-bar{gap:6px 0}
}
@media(max-width:560px){
  .nwr{--nwr-th:78px}
  .nwr-y{padding:22px 2px 8px}
  .nwr-y b{font-size:17px}
  .nwr .nw-t{font-size:13.5px}
  .nwr .nw-d{-webkit-line-clamp:2;line-clamp:2}
}
@media(prefers-reduced-motion:reduce){
  .nwr .nw-th img,.nwr .nw-i,.nwr-more button{transition:none}
}

/* ヒーロー直下の立場別分岐（報道／一般／素材） */
.hero-aud{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16)}
.hero-aud a{font-size:12.5px;font-weight:700;color:rgba(255,255,255,.82);text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.hero-aud a::after{content:"→";margin-left:7px;color:var(--gold)}
.hero-aud a:hover{color:#fff;border-bottom-color:var(--gold)}
@media(max-width:560px){.hero-aud{gap:8px 0;flex-direction:column}}

/* ============================================================
   main.js が読み込めなかった場合のフォールバック
   （.nojs は script の onerror でのみ付くため、通常時は1つもマッチしない）
   ============================================================ */
.nojs #intro3{display:none}
.nojs .rv,.nojs .rv.grid2>*,.nojs .rv.grid3>*,.nojs .rv.grid4>*,.nojs .rv.proc>div,
.nojs .rv.trust>div,.nojs .rv.metric>div,.nojs .rv.dash>div,.nojs .rv.mstrip>figure,
.nojs .rv.mosaic>a,.nojs .rv.org .org-node,.nojs .rv.org .org-sub,.nojs .rv.org .org-line,
.nojs .rv .ox-node,.nojs .rv .ox-sub,.nojs .xmap .olink,.nojs .rv .dbar-bar span i,
.nojs .hero .hero-eyebrow,.nojs .hero .hero-sub,.nojs .hero .hero-desc,
.nojs .hero .hero-btns,.nojs .hero .hero-aud{opacity:1;transform:none;transition:none}
.nojs .rv .dbar-bar span::before,.nojs .dept-h.rv::after{transform:none;transition:none}

/* ============================================================
   v12.9 — 参加のまえに（join.html #honest）
   長文を「前文＋5つの約束＋自己チェック＋結び」の文書体裁で読ませる。
   幅制御は .wrap の内側でのみ行う（セクション自動ナンバリングを壊さないため）
   ============================================================ */
.agr{max-width:900px;margin-top:44px}
.agr-h{background:var(--navy);color:#fff;padding:20px 26px;display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;
 clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.agr-h b{font-family:var(--en);font-size:11.5px;font-weight:800;letter-spacing:.18em}
.agr-h b span{display:block;font-family:var(--font);font-size:15.5px;letter-spacing:.02em;margin-top:6px}
.agr-h i{font-style:normal;font-size:11.5px;color:rgba(255,255,255,.72)}
.agr-note{background:var(--off);border:1px solid var(--line);border-top:0;padding:15px 26px;font-size:12.5px;color:var(--ink-2);line-height:1.95}
.agr-toc{display:block;background:#fff;border:1px solid var(--line);border-top:0;padding:14px 26px 18px}
.agr-toc a{display:block;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;font-weight:700;color:var(--navy);text-decoration:none;transition:color var(--dur) var(--ease)}
.agr-toc a:hover{color:var(--navy-l)}
.agr-toc a em{font-family:var(--en);font-style:normal;font-weight:800;color:var(--gold);margin-right:10px}
.agr-a{border-top:1px solid var(--line);padding:46px 0 8px;scroll-margin-top:84px}
/* 精鋭無比：5つの約束すべてを貫く共通言語として、約束群の手前に据える */
.agr-key{margin-top:8px;border-top:3px solid var(--navy);border-bottom:3px solid var(--navy);padding:44px 0 46px;text-align:center;scroll-margin-top:84px}
/* 文書の冒頭に置く場合：上罫線を外し、文書ヘッダーとの間隔を取る */
.agr-key-top{margin-top:0;border-top:0;padding-top:8px;padding-bottom:52px}
.agr-key .agr-no{display:block}
.agr-key>b{display:block;font-size:clamp(38px,7vw,68px);font-weight:800;color:var(--navy);letter-spacing:.06em;line-height:1.25;margin-top:14px}
.agr-key .agr-key-r{display:block;font-family:var(--en);font-size:10.5px;font-weight:800;letter-spacing:.3em;color:var(--gold);margin-top:10px}
.agr-key .agr-key-l{max-width:640px;margin:26px auto 0;font-size:14.5px;line-height:2.1;color:var(--ink-2)}
.agr-key .agr-key-l strong{font-weight:800;color:var(--navy)}
.agr-key .agr-cl{max-width:760px;margin-left:auto;margin-right:auto;text-align:left}
/* 写真の下に置く短い説明（スクリムを掛けず写真をそのまま見せる） */
.agr-ph figcaption{margin-top:10px;font-size:12px;line-height:1.8;color:var(--ink-2)}
.agr-no{font-family:var(--en);font-size:11px;font-weight:800;letter-spacing:.2em;color:var(--gold)}
.agr-no span{font-family:var(--font);letter-spacing:.04em;color:var(--ink-3);margin-left:12px}
.agr-a h3{font-size:clamp(19px,2.4vw,24px);font-weight:800;color:var(--navy);line-height:1.65;margin-top:12px}
.agr-cl{margin-top:24px;list-style:none;counter-reset:agrc}
.agr-cl li{counter-increment:agrc;position:relative;padding:0 0 0 42px;margin-top:22px;font-size:14px;line-height:2.05;color:var(--ink-2)}
.agr-cl li::before{content:counter(agrc,decimal-leading-zero);position:absolute;left:0;top:2px;font-family:var(--en);font-size:11px;font-weight:800;color:var(--navy-l);letter-spacing:.06em}
.agr-cl li b{color:var(--navy);font-weight:800}
.agr-kw{display:inline-block;background:var(--navy);color:#fff;font-weight:800;padding:1px 10px;margin:0 2px}
.agr-ck{margin-top:52px;background:var(--off);border:1px solid var(--line);border-left:3px solid var(--gold);padding:34px 32px}
.agr-ck legend{font-size:16.5px;font-weight:800;color:var(--navy);line-height:1.7;padding:0}
.agr-ck label{display:flex;gap:12px;align-items:flex-start;margin-top:16px;font-size:13.5px;line-height:1.95;color:var(--ink-2);cursor:pointer}
.agr-ck input{width:17px;height:17px;flex:0 0 17px;margin-top:5px;accent-color:var(--navy);cursor:pointer}
.agr-sign{margin-top:52px;background:var(--navy);color:#fff;padding:44px 38px;
 clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.agr-sign h3{font-size:clamp(20px,2.8vw,27px);font-weight:800;color:#fff;line-height:1.65}
.agr-sign p{font-size:14px;line-height:2.05;color:rgba(255,255,255,.8);margin-top:18px}
.agr-sign .agr-last{font-size:clamp(16px,2vw,19px);font-weight:800;color:#fff;margin-top:26px}
@media(min-width:821px){ .dash-2{grid-template-columns:1fr 1fr} }
@media(max-width:760px){
  .agr{margin-top:32px}
  .agr-h{padding:16px 20px}
  .agr-note,.agr-toc{padding-left:20px;padding-right:20px}
  .agr-a{padding-top:38px}
  .agr-cl li{padding-left:34px;font-size:13.5px}
  .agr-key{padding:34px 0 36px}
  .agr-key .agr-key-l{font-size:13.5px}
  .agr-ck{padding:26px 22px}
  .agr-sign{padding:34px 24px}
}


/* ============================================================
   v10.0 — OPENING RETIMING「連鎖」
   総尺 7.04s → 3.38s ／ 操作可能まで 5.27s → 2.46s
   ------------------------------------------------------------
   ★ #intro3 の計時に関する最終権威はこのブロックである。
   ★ これ以降 #intro3 の animation / animation-* を書き足さないこと。
     （style.css:884 の 2.6s を87行あとの style.css:971 が 5.8s で黙って
      上書きし、本番で一度も 2.6s が効いていなかった事故の再発防止）
   ★ 宣言は必ず shorthand `animation:` で書くこと。
   ★ 全ての delay は #intro3.play 付与時刻を 0 とする相対値。
     style.css:795 `#intro3:not(.play) *{animation-play-state:paused}` が
     delay の消化も止めるため、.play までの経過時間は計時に影響しない。
   ★ assets/js/main.js の T_REVEAL(2460) と、下の金線の終了時刻
     （1.86s + 0.60s = 2.46s）は同値。片方だけ変えないこと。
   ============================================================ */

/* --- 0) 待機インジケータを撤去（1秒未満の待機に出すと逆に遅く見える） --- */
#intro3 .boot{display:none}

/* --- 1) 幾何レイヤーは .play を待たずに入場＝起動待ちの隠れ蓑（第0幕） ---
   擬似要素は `#intro3:not(.play) *` の `*` に一致しないため停止しない。 */
#intro3::before{animation:geoIn .42s cubic-bezier(.16,.84,.34,1) both}
#intro3::after{animation:geoDots .50s .06s ease-out both}
@keyframes geoIn{from{opacity:0;transform:translate3d(-2.2%,0,0)}to{opacity:1;transform:none}}
@keyframes geoDots{from{opacity:0}to{opacity:1}}

/* --- 2) 写真の枠：未着でも「記録のプレート」として構図に参加させる ---
   .fr img には opacity ゲートを掛けない（t=0 で既に散在＝記録は既に在る）。
   z-index:2 は Step5 で L824/L848 を削除した後も生き残るようここで再宣言。 */
#intro3 .fr{z-index:2;background:linear-gradient(150deg,rgba(20,32,66,.96),rgba(12,20,46,.99))}

/* --- 3) 幕1：流層（PC）0.00→1.50s ／ 写真の押し込み 0.00→1.90s ---
   イージングはベジェ数値展開で検証済み：t=75% で距離94.5%、
   残り25%（375ms）で8.8vh＝23.6vh/s。知覚下限3vh/s の7.9倍を確保。
   （案2の .22,.72,.30,1 は6.7vh/s、案3の .17,.72,.24,1 は5.6vh/s で不可）
   phGrow を走行より0.4秒長く回し、終端を「微速の平行移動」ではなく
   「明確なズーム着地」にする。1.9秒で15%＝7.9%/秒で初めて知覚される。 */
@media(min-width:761px){
  #intro3 .stream{animation:streamUp 1.5s 0s cubic-bezier(.24,.4,.5,1) forwards}
  #intro3 .fr{animation:phGrow 1.9s 0s linear forwards}
  /* 全面ディム 0.52→1.50s。linear は「暗くなり続けている」を切らさないため。
     完了時刻を走行終端（1.50s）に一致させ、写真の壁が完成する前に
     暗く落とされる現行の欠陥（dim 3.0s / 走行終端5.85s）を解消する。 */
  #intro3 .lgback{position:absolute;left:0;top:0;width:100%;height:100%;transform:none;z-index:4;
    background:radial-gradient(circle at 50% 46%,rgba(10,17,40,.34),rgba(10,17,40,.66) 58%,rgba(10,17,40,.82));
    opacity:0;animation:hallIn .98s .52s linear forwards}
}

/* --- 4) モバイル ≤760px：同じ 2.46s に合流させる ---
   L1583 の streamUpM 2.6s と L1586-1593/L1763-1770 の frInM 遅延
   （最大2.10s＝リビールに間に合わない）をここで確定的に置換する。
   ≤760px では L1752 が .lgback を display:none!important にするため
   ディムは L1600 の .sc3::before 側で行う。 */
@media(max-width:760px){
  #intro3 .stream{animation:streamUpM 1.5s 0s cubic-bezier(.24,.4,.5,1) forwards}
  #intro3 .fr{animation:frInM .46s var(--ease) both}
  #intro3 .fr:nth-child(1){animation-delay:.020s}
  #intro3 .fr:nth-child(2){animation-delay:.065s}
  #intro3 .fr:nth-child(3){animation-delay:.110s}
  #intro3 .fr:nth-child(4){animation-delay:.155s}
  #intro3 .fr:nth-child(5){animation-delay:.200s}
  #intro3 .fr:nth-child(6){animation-delay:.245s}
  #intro3 .fr:nth-child(7){animation-delay:.290s}
  #intro3 .fr:nth-child(8){animation-delay:.335s}
  #intro3 .fr:nth-child(9){animation-delay:.380s}
  #intro3 .fr:nth-child(10){animation-delay:.425s}
  #intro3 .fr:nth-child(11){animation-delay:.470s}
  #intro3 .fr:nth-child(12){animation-delay:.515s}
  #intro3 .fr:nth-child(13){animation-delay:.560s}
  #intro3 .fr:nth-child(14){animation-delay:.605s}
  #intro3 .fr:nth-child(15){animation-delay:.650s}
  #intro3 .fr:nth-child(16){animation-delay:.695s}
  #intro3 .sc3::before{animation:hallIn .98s .52s linear forwards}
}

/* --- 5) 幕2：ロゴ5パーツの段階的アセンブリ（0.08s刻み・各0.48s） ---
   style.css:892 と 952-956 が全パーツを delay 3.55s の同時点灯に潰し、
   v3.3.1（L843-847）の段階入場が完全に死んでいた。刻みを 0.30s→0.08s に
   詰めて復活させる。イベント数 1→5、所要時間 0.9s→0.86s で据え置き。
   transform は shorthand が触らないので明示的に再宣言する
   （L964 の rotate(-90deg) scale(.55) をここで確定させる）。
   移動量 46vw/46vh は一切減らさない＝「四方＝各地の現場」を守る。 */
#intro3 .lgp-o {opacity:0;transform:rotate(-90deg) scale(.55);animation:lgIn4 .48s 1.02s cubic-bezier(.22,.85,.28,1) forwards}
#intro3 .lgp-hb{opacity:0;transform:translate(-46vw,0);animation:lgIn4 .48s 1.10s cubic-bezier(.22,.85,.28,1) forwards}
#intro3 .lgp-tv{opacity:0;transform:translate(0,-46vh);animation:lgIn4 .48s 1.18s cubic-bezier(.22,.85,.28,1) forwards}
#intro3 .lgp-th{opacity:0;transform:translate(46vw,0);animation:lgIn4 .48s 1.26s cubic-bezier(.22,.85,.28,1) forwards}
#intro3 .lgp-hf{opacity:0;transform:translate(0,46vh);animation:lgIn4 .48s 1.34s cubic-bezier(.22,.85,.28,1) forwards}

/* --- 6) 幕3：矜持。空白②を「削る」のではなく「読む時間」に置換する ---
   .q3 の位置：.lg3wrap は top:46% / width:min(52vmin,430px) /
   aspect-ratio 3326:2996 なので、半分の高さ＝width×0.4504
   ＝min(23.4vmin,194px)。その下に30pxのマージンを置く。
   金線の終了時刻 1.86+0.60=2.46s は main.js の T_REVEAL と一致させること。
   ★ .go 時のフェードアウトは書かない。animation:forwards が opacity:1 を
     保持するため transition は効かず、書くと不定の挙動になる。
     タグラインは拡大する白円に飲み込まれ、.wdone>*:not(.wout){display:none}
     （L978）で最終的に消える＝「問いが日本へ開く」の視覚化を兼ねる。 */
#intro3 .q3{position:absolute;left:50%;top:calc(46% + min(23.4vmin,194px) + 30px);
  transform:translate(-50%,0);z-index:6;margin:0;pointer-events:none;white-space:nowrap;
  font-family:var(--en);font-weight:600;font-size:clamp(11px,1.35vmin,15px);
  letter-spacing:.34em;text-indent:.34em;color:rgba(255,255,255,.92);
  text-shadow:0 2px 18px rgba(10,17,40,.9);
  opacity:0;animation:q3In .34s 1.70s cubic-bezier(.2,.75,.3,1) forwards}
#intro3 .q3::after{content:"";position:absolute;left:50%;top:calc(100% + 13px);
  height:1px;width:0;transform:translateX(-50%);
  background:linear-gradient(90deg,rgba(232,204,120,0),rgba(232,204,120,.95) 22%,rgba(212,180,90,.95) 78%,rgba(232,204,120,0));
  animation:q3Rule .60s 1.86s cubic-bezier(.32,.68,.24,1) forwards}
@keyframes q3In{from{opacity:0;transform:translate(-50%,9px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes q3Rule{to{width:min(34vmin,300px)}}
@media(max-width:760px){
  /* ≤760px では .lg3wrap は width:min(66vw,300px)（L1599）＝半高 min(29.7vw,135px） */
  #intro3 .q3{top:calc(46% + min(29.7vw,135px) + 26px);font-size:10.5px;letter-spacing:.26em;text-indent:.26em}
  #intro3 .q3::after{top:calc(100% + 11px)}
}

/* --- 7) リビール：ブランドゴールドをクライマックスへ戻す ---
   L959 の `filter:none` を上書きする。.go 付与は pointerdown の次フレーム
   （約16ms）に起きるので、押下に対する0.1秒以内の視覚フィードバックも兼ねる。 */
#intro3.go .lg3wrap{transition:none;transform:translate(-50%,-50%);opacity:1;
  filter:drop-shadow(0 0 22px rgba(232,204,120,.75))}

/* --- 8) SKIP：t=0 から可視のまま、フォーカス可視性だけ強化 --- */
#intro3 .skip3{opacity:1;border-radius:2px;
  transition:border-color .2s ease,color .2s ease,background-color .2s ease}
#intro3 .skip3:hover,#intro3 .skip3:focus-visible{
  border-color:var(--gold);color:#fff;background:rgba(232,204,120,.14);outline:none}
@media(max-width:760px){#intro3 .skip3{padding:12px 20px}}

/* --- 9) reduced-motion：新規キーフレームも確実に殺す --- */
@media(prefers-reduced-motion:reduce){
  #intro3{display:none}
  #intro3::before,#intro3::after,#intro3 .stream,#intro3 .fr,#intro3 .lgback,
  #intro3 .sc3::before,#intro3 .q3,#intro3 .q3::after,
  #intro3 .lgp-o,#intro3 .lgp-hb,#intro3 .lgp-hf,#intro3 .lgp-tv,#intro3 .lgp-th{
    animation:none!important}
}
/* ==================== v10.0 ここまで ==================== */
/* ============================================================
   v10.1 — モバイル総合最適化（全ページ監査の反映）
   方針: モバイル調整は max-width メディア内に閉じ、PC描画を変えない。
   例外は「視覚不変のタップ領域拡大」と「flex化の副作用修正」のみ。
   ============================================================ */
/* 視覚不変のヒットエリア拡大（全ビューポート共通） */
.crumb a{display:inline-block;padding:10px 6px;margin:-10px -6px}
.ft-sns a{padding:11px;margin:-8px 0}
/* v9.33 a.card{display:flex} の副作用: ステータスバッジがstretchされ全幅化していた */
.card .st{align-self:flex-start}
/* 図解の直下に凡例（vision2030: 地図と凡例の分離を解消） */
.vh-map .vh-legend{justify-content:center;margin-top:14px}

@media(max-width:760px){
 /* --- タップ領域（38px基準） --- */
 .tlink{display:inline-block;padding:9px 0;margin:-4px 0}
 .tl-src{display:inline-block;font-size:12.5px;padding:9px 4px 10px;margin:2px 0 -6px -4px}
 .hero-aud a{padding:10px 0 9px}
 .ptoc a{padding:10px 14px}
 .ptoc::after{content:"";position:sticky;right:0;flex:0 0 30px;margin-left:-30px;align-self:stretch;background:linear-gradient(90deg,rgba(255,255,255,0),#fff 78%);pointer-events:none}
 /* --- フッター: CTAボタン幅の統一と2列圧縮の解消は560px側で --- */
 .ft-btns{gap:10px}
 .ft-btns .btn{flex:1 1 auto;min-width:150px;text-align:center}
 /* --- 写真帯: 全幅縦積み→2列アルバム（PCのリズムを再現、端数は全幅） --- */
 .vph.grid2,.vph.grid3{grid-template-columns:1fr 1fr;gap:10px}
 .vph.grid3>figure:last-child:nth-child(odd){grid-column:1/-1}
 .vph figcaption{font-size:10.5px}
 .vph-solo img{aspect-ratio:3/2;object-fit:cover}
 /* --- 年表（history）: 左インデントを詰めて本文行長を確保 --- */
 .tline{padding-left:24px}
 .tl-y>b{margin-left:-24px}
 .tl-ph{margin-left:-24px}
 .tl-i{padding:14px 16px}
 .tl-i b{font-size:14.5px}
 .tl-i span{font-size:13px}
 /* --- カード一覧: 本文を一段引き上げ --- */
 .card p{font-size:13.5px}
 .card i{font-size:11px}
 .card .st{font-size:11px}
 /* --- 数値スタッツの脚注 --- */
 .vstats em,.vh-stat em{font-size:11.5px}
 /* --- vision2030: 図解SVGの文字をスケール補償（0.46倍縮小を相殺） --- */
 .venn text{font-size:26px}
 .venn text[font-size="13.5"]{font-size:22px}
 .venn text[font-size="12"],.venn text[font-size="11"]{font-size:18px}
 .venn text[font-size="10.5"],.venn text[font-size="9"],.venn text[font-size="8.5"]{font-size:15px}
 .jmap .jlabel text{font-size:24px}
 .jmap .jlabel rect{transform:scale(1.6);transform-origin:center;transform-box:fill-box}
 /* --- vision2030: ロゴ⇄図解クロスフェードは読解の妨げになるため静止 --- */
 .figc.mswap .msw-logo{display:none}
 .figc.mswap .venn{animation:none;opacity:1}
 /* --- 序章の強調語は独立行に（h2内<br>非表示規約の副作用を回収） --- */
 .vx-em{display:table;margin:10px auto 0}
 /* --- index: 展開マップは横スクロールで原寸近くを保つ --- */
 .mapswap .ms-a{overflow-x:auto;-webkit-overflow-scrolling:touch}
 .mapswap .ms-a .xmap{width:640px;max-width:none}
 .xmap-hint{display:block;padding:10px 26px 0;font-size:11px;letter-spacing:.08em;color:rgba(255,255,255,.55)}
 /* --- belief: 章ナビと法的リンクのタップ、INDEX章題の均等折返し --- */
 .bnav{right:6px;gap:0}
 .bnav button{padding:15px 10px;justify-content:flex-end;min-width:44px}
 .toc button span{text-wrap:balance}
 .b-cta .b-lg a{display:inline-block;font-size:12px;padding:10px 0;margin-right:16px}
 /* --- belief(縦積みモード): 透明ヘッダーが本文に重なるのを防ぐ --- */
 .belief-body.b-rm .gh{background:var(--navy-d);border-bottom:1px solid rgba(255,255,255,.1)}
}
@media(max-width:760px) and (max-height:720px){
 /* belief: 小画面端末で第5章下端（著作権・法的リンク）が切れるのを圧縮で回収 */
 .b-cta{margin-top:20px}
 .b-cta .b-cp{margin-top:12px}
 .b-cta .b-lg{margin-top:8px}
 .blk{margin-bottom:10px}
}
@media(min-width:761px){
 .xmap-hint{display:none}
 /* index: 創設の物語のモバイル折りたたみはPCでは常時展開 */
 .fs-more{display:contents}
 .fs-more>summary{display:none}
}
@media(max-width:760px){
 .fs-more>summary{list-style:none;cursor:pointer;font-size:13.5px;font-weight:800;color:var(--navy);padding:14px 0;margin-top:4px}
 .fs-more>summary::-webkit-details-marker{display:none}
 .fs-more>summary::after{content:"＋";font-family:var(--en);margin-left:8px;color:var(--gold)}
 .fs-more[open]>summary::after{content:"−"}
}
@media(max-width:560px){
 /* フッター: 2列163px幅の泣き別れ・33pxタップを1列で解消 */
 .ft-main{grid-template-columns:1fr;gap:34px;padding:56px 0}
 .ft-main a{font-size:13px;padding:7px 0}
 .ft-main h3{font-size:11.5px}
}
/* 404: 上部余白のモバイル適正化（インラインstyleから移設） */
.sec-404{text-align:center;padding:140px 0}
@media(max-width:760px){.sec-404{padding:84px 0 96px}}
@media(max-width:430px){.sec-404 .hero-btns{flex-direction:column}.sec-404 .hero-btns .btn{width:100%;justify-content:center}}
/* 404: エラーページでは誘導CTAブロックを畳む（フッターナビは残る） */
.p404 .ft-cta{display:none}
/* ヒーロー背景の被写体保護（ページ側でクラス指定・モバイルのみ） */
@media(max-width:760px){
 .phero-bg.bg-low{background-position:center 62%}
 .phero-bg.bg-face{background-position:72% 24%}
 .phero-bg.bg-face::after{background:linear-gradient(180deg,rgba(23,38,74,.85) 0 30%,rgba(23,38,74,.45))}
}
/* 残ページ自己監査分（テンプレート横断の微修正） */
.ft-legal a{display:inline-block;padding:9px 0;margin:-4px 0}
@media(max-width:760px){
 .flm-cap i,.flm-side i{font-size:11px}
 .tl-i i{font-size:10.5px}
 .chips button,.chips span{padding:10px 18px}
 .nw-i i{font-size:10px}
 input[type="checkbox"]{min-width:22px;min-height:22px;accent-color:var(--navy)}
 /* ニュース: カルーセルのドットは見た目9pxのまま34pxのタップ円に */
 .igal-dots{gap:2px}
 .igal-dots button{width:34px;height:34px;border:0;background:transparent;position:relative}
 .igal-dots button::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;border:1px solid var(--navy);background:#fff}
 .igal-dots button.on::after{background:var(--gold);border-color:#8a6d1f}
}
/* v8.7句点チャンク: PCは文単位で折返し、モバイルは自然な禁則折返しに戻す
   （チャンク境界とチャンク内折返しの二重改行で語中分断が起きるため） */
.jchunk{display:inline-block}
@media(max-width:760px){.jchunk{display:inline}}

/* ============================================================
   v10.2 — 金の「？」の「ピコン」（ナゼ？セクションの共通記号に動きを与える）
   ★ 発火は main.js が .qpop を付与した時のみ。既定表示は不変なので
     JS未実行でも欠けない。動きを減らす設定では .qpop を付けない。
   ============================================================ */
/* 跳ねて着地する（オーバーシュート→わずかに沈んで静止＝「ピコン」） */
@keyframes qpop{
  0%{transform:scale(.34);opacity:0}
 48%{transform:scale(1.18);opacity:1}
 68%{transform:scale(.92)}
 84%{transform:scale(1.05)}
100%{transform:scale(1);opacity:1}
}
/* 着地の瞬間に金のリングが一度だけ広がって消える */
@keyframes qring{
  0%{transform:scale(.72);opacity:0}
 30%{opacity:.75}
100%{transform:scale(2.15);opacity:0}
}
.q-badge{position:relative}
.q-badge.qpop::before{transform-origin:50% 50%;animation:qpop .58s cubic-bezier(.2,1.45,.32,1) both}
/* リングはバッジと同じ位置・同じ大きさの円を ::after で重ねる */
.q-badge.qpop::after{
  content:"";position:absolute;left:0;top:0;box-sizing:border-box;width:38px;height:38px;
  border:2px solid var(--gold);border-radius:50%;
  pointer-events:none;opacity:0;
  animation:qring .72s .16s cubic-bezier(.22,.9,.3,1) both;
}
@media(max-width:600px){.q-badge.qpop::after{width:34px;height:34px}}
/* ヒーローの巨大「？」：視差のinline transformと合成するため scale を使う */
@keyframes qpopHero{
  0%{scale:.82;opacity:0}
 58%{scale:1.05;opacity:1}
100%{scale:1;opacity:1}
}
.phero-q.qpop{transform-origin:70% 30%;animation:qpopHero .84s cubic-bezier(.2,1.3,.3,1) both}
@media(prefers-reduced-motion:reduce){
  .q-badge.qpop::before,.q-badge.qpop::after,.phero-q.qpop{animation:none;opacity:1;scale:1}
  .q-badge.qpop::after{display:none}
}
/* v10.1 タイピング見出し（data-anim="type"）の文チャンク
   文（「。」区切り）を塊にして文中で折返さない。塊が1行に収まらない場合だけ
   JS側が display:inline に戻す（収まらない塊を残すと語中分断が起きるため）。 */
[data-anim="type"] .tja-tk{display:inline-block}

/* ============================================================
   v10.3 — 帯トリミング（.pband）
   歴史ページの年ヘッダー（.tl-ph）と同じ見え方を、タイムライン外でも
   使えるようにした汎用コンポーネント。
   ★ 使いどころを選ぶこと。横長の集合写真・現場の全景など「引き」で効く
     写真だけに使う。人物が少ない写真や縦構図に使うと主題が切れる。
   ★ 乱用すると帯の特別さが失われるので、1ページに1枚を上限とする。
   ============================================================ */
.pband{margin:0;overflow:hidden}
.pband img{width:100%;height:auto;display:block;aspect-ratio:16/4.9;object-fit:cover}
.pband figcaption{margin-top:10px;font-size:11.5px;color:var(--ink-3);line-height:1.8}
@media(max-width:760px){
 .pband img{aspect-ratio:16/6.3}
 .pband figcaption{font-size:10.5px}
}

/* ============================================================
   v10.4 — 帯写真の開幕モーション（中央から左右へカーテンのように開く）
   ★ 閉じた初期状態は `.curtain`（main.jsが付与）にだけ効かせる。
     ここで無条件に clip-path を書くと、JS未実行環境で帯が永久に
     見えなくなる（幅ゼロのまま）。JSが落ちたら開いたまま表示される。
   ★ clip-path の inset で内側から外側へ開くので、画像は伸縮せず
     トリミング位置（object-position）も崩れない。
   ============================================================ */
.pband img,.tl-ph img{transition:clip-path .58s cubic-bezier(.2,.9,.2,1)}
.pband.curtain img,.tl-ph.curtain img{clip-path:inset(0 50% 0 50%)}
.pband.curtain.curtain-in img,.tl-ph.curtain.curtain-in img{clip-path:inset(0 0 0 0)}
@media(prefers-reduced-motion:reduce){
  .pband img,.tl-ph img{transition:none}
  .pband.curtain img,.tl-ph.curtain img{clip-path:none}
}

/* ============================================================
   v10.5 — 年表（history）の演出強化
   ★ 初期の隠し状態は **JSが .tlr / .tlnode を付けたときだけ** 有効にする。
     CSSに直接書くとJS未実行環境で年表28項目が永久に見えなくなる。
   ★ モーションの語彙は既存のもの（qpop＝ピコン、線の伸長）に揃える。
   ============================================================ */
/* 1) 進行線：スクロールに合わせて金色が上から伸びる（歴史が進む感覚） */
.tline{--tl-prog:0}
.tline.tlnode::after{
  content:"";position:absolute;left:7px;top:8px;width:2px;
  height:calc((100% - 16px) * var(--tl-prog));
  background:linear-gradient(180deg,var(--gold),#8a6d1f);
  box-shadow:0 0 8px rgba(200,168,75,.5);
  transition:height .12s linear;pointer-events:none
}
/* 2) 年のノード：到達すると金に点灯する */
.tline.tlnode .tl-y::before{
  content:"";position:absolute;left:-34px;top:8px;width:12px;height:12px;
  border-radius:50%;background:#fff;border:2px solid var(--line);box-sizing:border-box;
  transition:border-color .45s var(--ease),background .45s var(--ease),transform .45s var(--ease),box-shadow .45s
}
.tline.tlnode .tl-y.tl-on::before{
  border-color:var(--gold);background:var(--gold);transform:scale(1.2);
  box-shadow:0 0 0 4px rgba(200,168,75,.22)
}
/* 3) 年プレート：線から滑り出す */
.tl-y.tlr>b{opacity:0;transform:translateX(-16px)}
.tl-y.tlr.in>b{opacity:1;transform:none;transition:opacity .45s var(--ease),transform .5s cubic-bezier(.2,.9,.2,1)}
/* 4) 各項目：年ごとに少しずつ遅らせて立ち上がる */
.tl-i.tlr{opacity:0;transform:translateY(15px)}
.tl-i.tlr.in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .55s cubic-bezier(.2,.9,.2,1)}
/* 5) 受賞バッジは「ピコン」（v10.2のqpopと同じ語彙で統一） */
.tl-i.tlr.in>i{animation:qpop .5s .14s cubic-bezier(.2,1.45,.32,1) both}
@media(max-width:760px){
  .tline.tlnode .tl-y::before{left:-22px;width:10px;height:10px}
}
@media(prefers-reduced-motion:reduce){
  .tl-y.tlr>b,.tl-i.tlr{opacity:1;transform:none}
  .tl-i.tlr.in>i{animation:none}
  .tline.tlnode::after{transition:none}
}

/* ============================================================
   v10.6 — アニメーションの最適化
   ============================================================ */
/* 画面外ゾーンの animation を止める（transitionは対象外なので演出は壊れない）。
   animation-play-state は継承しないため子孫を明示的に指定する。 */
.anim-off,.anim-off *,.anim-off *::before,.anim-off *::after{animation-play-state:paused!important}
/* 帯の開幕中だけ合成レイヤーを確保する（常時付けると帯の枚数ぶん無駄） */
.pband.curtain-run img,.tl-ph.curtain-run img{will-change:clip-path}

/* ============================================================
   v10.7 — 人ページ（people）の演出強化
   ★ 隠し状態のクラス（.pcr / .dhr）は main.js から付与する。
     CSSに直接書くとJS未実行環境で40名のカードが永久に見えなくなる。
   ★ 動きの語彙は既存のもの（.rv の立ち上がり、qpop＝ピコン）に揃える。
   ============================================================ */
/* 1) メンバーカード：静かに立ち上がる（跳ねさせない。人物カードに弾みは似合わない） */
.mcard.pcr{opacity:0;transform:translateY(18px)}
.mcard.pcr.in{opacity:1;transform:none;
  transition:opacity .62s cubic-bezier(.22,.61,.36,1),transform .72s cubic-bezier(.22,.61,.36,1)}
/* 2) 顔写真：上から下へ静かに現れる（帯の開幕と同じ clip-path の語彙）。
      transform は hover のズームが使うので触らない＝演出と操作が衝突しない */
.mcard.pcr .ph{clip-path:inset(0 0 100% 0)}
.mcard.pcr.in .ph{clip-path:inset(0 0 0 0);
  transition:clip-path .8s cubic-bezier(.22,.61,.36,1) .05s}
/* 3) 氏名：字間がわずかに詰まりながら定位置に収まる（活字が組み上がる感触） */
.mcard.pcr .mcard-top>div:not(.ph){opacity:0;transform:translateY(7px)}
.mcard.pcr.in .mcard-top>div:not(.ph){opacity:1;transform:none;
  transition:opacity .5s .3s var(--ease),transform .55s .3s cubic-bezier(.22,.61,.36,1)}
.mcard.pcr b{letter-spacing:.16em}
.mcard.pcr.in b{letter-spacing:normal;transition:letter-spacing .8s .3s cubic-bezier(.22,.61,.36,1)}
/* 5) ホバー：写真の下端を金のヘアラインが左から走る（触れたことが静かに伝わる） */
.mcard .ph::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;
  background:linear-gradient(90deg,var(--gold),rgba(200,168,75,0));
  transform:scaleX(0);transform-origin:left center;z-index:2;
  transition:transform .55s cubic-bezier(.22,.61,.36,1)}
.mcard:hover .ph::before{transform:scaleX(1)}
@media(hover:none){.mcard .ph::before{display:none}}
/* 4) 問い（Q.）は最後に、間を置いて添える */
.mcard.pcr .mq{opacity:0}
.mcard.pcr.in .mq{opacity:1;transition:opacity .6s .5s var(--ease)}
/* 3) 部署見出しの下線は、既存の .dept-h::after（部署カラー var(--dc)）に任せる。
      ここで金色の::afterを重ねると全部署が金一色になり、部署の色分けが消える。
      発火は .dept-h.rv.in なので、JS側は .dhr を付けるだけでよい。 */
/* 4) 内訳バー：既存の伸長に加え、数値ラベルを少し遅らせて出す */
.dbar-bar.pcr span i{opacity:0}
.dbar-bar.pcr.in span i{opacity:1;transition:opacity .5s .55s var(--ease)}
@media(prefers-reduced-motion:reduce){
  .mcard.pcr,.dbar-bar.pcr span i,.mcard.pcr .mcard-top>div:not(.ph),.mcard.pcr .mq{opacity:1;transform:none}
  .mcard.pcr .ph{clip-path:none}
  .mcard.pcr b{letter-spacing:normal}
  .dept-h::after{transform:none}
}

/* ============================================================
   v13.6 — belief 章タイトルのモバイル復旧（本文と同サイズに潰れていた退行）
   ★ 原因: .ch-h は <h2 class="ch-h blk"> と .blk を併せ持つ。v8.2 のモバイル
     ブロックが `.bs .ch-h` → `.bs .blk` の順に書かれており、同一詳細度(0,2,0)で
     後勝ちするため、タイトルが本文サイズ(12.5px)まで縮んでいた。
     高さ700px以下のブロックだけは .ch-h が後に来るので25pxで正しく出ており、
     「機種によって出たり出なかったり」する厄介な見え方になっていた。
     → ここでは .ch-h.blk（詳細度を1つ上げる）で書き、書き順に依存させない。
   ============================================================ */
@media(max-width:760px){
 .bs .ch-h.blk{font-size:clamp(26px,7.4vw,32px);line-height:1.5;margin:2px 0 12px}
 /* 1画面に収まらない章でも「01」等の章番号を切り落とさない。
    justify-content:center のままだと上下均等にはみ出し、overflow:hidden で
    上端＝章番号が消える。safe center は溢れる時だけ上端揃えに退避する。 */
 .bs .bs-in,.bs .bs-center{justify-content:center;justify-content:safe center}
 /* 第5章だけはCTA・著作権・法的リンクまで抱えるので、行間と余白を詰めて
    タイトルを大きくした分を回収する（下端の法的リンクを切らないため） */
 .bs[data-ch="5"] .ch-h.blk{font-size:clamp(24px,6.6vw,29px);line-height:1.4;margin:0 0 8px}
 .bs[data-ch="5"] .blk{margin:3px 0;line-height:1.66}
 .bs[data-ch="5"] .b-cta{margin-top:8px;gap:10px}
 .bs[data-ch="5"] .b-cta .b-cp{margin-top:8px}
 .bs[data-ch="5"] .b-cta .b-lg{margin-top:2px}
 .bs[data-ch="5"] .b-cta .b-lg a{padding:5px 0}
}

/* ============================================================
   v13.7 — VISION 2030 地図の凡例が縦書きに潰れていた不具合
   ★ 原因: .vh-grid2 .vh-map は地図SVGを右寄せするための display:flex（row）。
     v13.1 で凡例をこの中へ移した際、凡例は「地図の隣」に置かれ、
     SVGが flex-shrink:0（意図的な170%の拡大表示）で幅を独占するため、
     凡例は残り約26pxまで潰された。日本語は1文字ごとに改行可能なので
     min-content = 1文字となり、flexアイテムは1文字幅まで縮む＝縦書き化。
   → .vh-map を column にして凡例を地図の真下へ。各行は nowrap で1行に固定。
   ============================================================ */
.vh-grid2 .vh-map{flex-direction:column;align-items:flex-end;justify-content:flex-start}
.vh-map .vh-legend{flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:6px;margin-top:14px;flex:0 0 auto}
/* 日本語は文字単位で折り返せるため、幅が足りない時に1文字幅まで縮む。
   凡例は必ず1行で読ませたいので nowrap と flex-shrink:0 を明示する。 */
.vh-legend span{white-space:nowrap;flex:0 0 auto}
@media(max-width:900px){
 .vh-grid2 .vh-map{align-items:center}
 .vh-map .vh-legend{align-items:center}
}

/* ============================================================
   v13.9 — パートナーロゴ壁（.plogo-wall）の作り直し
   1) 空セルの灰色ブロック: gap:1px＋背景色で罫線を描いていたため、
      ロゴ数が列数の倍数でない時（11個÷2列）に最後の1マスが
      「var(--line)の塗り」として残っていた。罫線をセルのborderで引き、
      背景塗りをやめる。欠けたマスは単に何も描かれない。
   2) ロゴの光学サイズがバラバラ（面積比 8%〜26%＝3.25倍の開き）だった。
      max-width/max-height は「アスペクト比が W/H に一致する時に最大」で、
      そこから離れるほど小さくなる。横長・中間・正方形/縦長の3階層に分け、
      各階層の中心アスペクトに合わせた上限を与えて面積を揃える（16〜22%）。
      地色を持つロゴ（jyc/toronto/earth-guardians/vote-at-chuo）は塗りの分
      重く見えるので一段小さくする。
   3) min-width:0 — グリッドアイテムの既定 min-width:auto は min-content。
      画像の固有幅が効くエンジンでは列がはみ出しうるので明示的に殺す。
   ============================================================ */
.plogo-wall{background:none;border:0;gap:0;
 border-top:1px solid var(--line);border-left:1px solid var(--line);min-width:0}
.plogo-wall li{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
/* 既定＝正方形〜縦長（アスペクト比 約0.75〜1.2） */
.plogo-wall img{max-width:47%;max-height:82%;min-width:0}
/* 横長（約2.2以上） */
.plogo-wall img[src*="duskin"],.plogo-wall img[src*="jyps"]{max-width:80%;max-height:48%}
/* 中間（約1.2〜2.2） */
.plogo-wall img[src*="akaruisenkyo"],.plogo-wall img[src*="aozora"]{max-width:62%;max-height:62%}
/* 地色（塗り）を持つロゴ */
.plogo-wall img[src*="jyc"],.plogo-wall img[src*="toronto"],
.plogo-wall img[src*="earth-guardians"],.plogo-wall img[src*="vote-at-chuo"]{max-width:41%;max-height:72%}
