/* ============================================================
   Visionary — 実装CSS
   確定デザイン4枚（トップ／記事／一覧／運営団体）のCSSを1本に統合したもの。

   原則：値を変えない。効いていたページも変えない。

   同じセレクタでもページごとに値が違う箇所、片方のページにしか
   存在しない箇所があるため、4ページすべてで同一のものだけを素で書き、
   それ以外は body クラスでスコープしている。

     .vis-top      トップページ
     .vis-article  記事詳細
     .vis-archive  一覧・業種別・検索・404
     .vis-about    運営団体について

   body クラスは functions.php の body_class フィルタで付与する。
   このファイルは確定HTMLから機械的に生成したもの。手で書き写していない。
   生成スクリプト：03_検証/Phase2_CSS統合/gen_css.py
   ============================================================ */

/* ---------- ベース ---------- */
:root{
  --ink:#101418;
  --ink-70:#454C54;
  --ink-45:#7A8188;
   --gunjo:#16305B;
  --gunjo-2:#0D1E3C;
  --gunjo-tint:#E9ECF2;
   --paper:#FBFBF8;
  --paper-2:#F0EFE9;
  --gold:#9E7C39;
   --line:rgba(16,20,24,.13);
   --mincho:"Shippori Mincho B1",serif;
  --gothic:"Noto Sans JP",sans-serif;
  --latin:"Archivo",sans-serif;
   --gut:clamp(20px,5vw,56px);
   --ease:cubic-bezier(.16,.84,.28,1)
}
*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--gothic);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden
}
img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover
}
a{
  color:inherit;
  text-decoration:none
}
:focus-visible{
  outline:2px solid var(--gunjo);
  outline-offset:3px
}
.wrap{
  max-width:1200px;
  margin:0 auto;
  padding:0 var(--gut)
}
.eyebrow{
  font-family:var(--latin);
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--gold)
}
:where(body.vis-top) #veil{
  position:fixed;
  inset:0;
  z-index:200;
  background:var(--gunjo-2);
  display:flex;
  align-items:center;
  justify-content:center;
   transition:transform 1s var(--ease) .35s,visibility 0s 1.35s
}
:where(body.vis-top) #veil.up{
  transform:translateY(-101%);
  visibility:hidden
}
:where(body.vis-top) #veil .mark{
  font-family:var(--latin);
  font-weight:600;
  font-size:clamp(20px,3.4vw,34px);
  letter-spacing:.42em;
  color:#fff;
   opacity:0;
  transform:translateY(8px);
  animation:markIn .9s var(--ease) .15s forwards
}
:where(body.vis-top) #veil .mark b{
  font-weight:600;
  color:#C9A96A
}
:where(body.vis-top) .site-head{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(251,251,248,.9);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .4s
}
:where(body.vis-article) .site-head,:where(body.vis-archive) .site-head,:where(body.vis-about) .site-head{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(251,251,248,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)
}
.head-in{
  max-width:1200px;
  margin:0 auto;
  padding:0 var(--gut);
  height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  transition:height .45s var(--ease)
}
.site-head.small .head-in{
  height:58px
}
:where(body.vis-top) .progress,:where(body.vis-article) .progress{
  position:absolute;
  left:0;
  bottom:-1px;
  height:1px;
  background:var(--gunjo);
  width:100%;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .12s linear
}
:where(body.vis-top) .brand{
  font-family:var(--latin);
  font-weight:600;
  font-size:19px;
  letter-spacing:.16em;
  overflow:hidden
}
:where(body.vis-article) .brand,:where(body.vis-archive) .brand,:where(body.vis-about) .brand{
  font-family:var(--latin);
  font-weight:600;
  font-size:19px;
  letter-spacing:.16em
}
.brand span{
  color:var(--gunjo)
}
.head-right{
  display:flex;
  align-items:center;
  gap:28px
}
.nav{
  display:flex;
  gap:26px;
  font-size:13px;
  color:var(--ink-70);
  letter-spacing:.06em
}
.nav a{
  position:relative;
  padding:4px 0
}
.nav a::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:0;
  height:1px;
  background:var(--gunjo);
  transition:right .4s var(--ease)
}
:where(body.vis-top) .nav a:hover::after,:where(body.vis-article) .nav a:hover::after{
  right:0
}
.cta{
  position:relative;
  overflow:hidden;
  color:#fff;
  font-size:12.5px;
  letter-spacing:.1em;
  padding:11px 22px;
  background:var(--gunjo);
  isolation:isolate
}
.cta::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--gunjo-2);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .45s var(--ease);
  z-index:-1
}
.cta:hover::before{
  transform:scaleX(1);
  transform-origin:left
}
:where(body.vis-top) .cover{
  position:relative;
  height:clamp(500px,88vh,860px);
  background:var(--gunjo-2);
  overflow:hidden
}
:where(body.vis-top) .cover-bg{
  position:absolute;
  inset:-6% 0;
  will-change:transform
}
:where(body.vis-top) .cover-bg img{
  filter:grayscale(1) contrast(1.12);
  mix-blend-mode:luminosity;
  opacity:0;
  transform:scale(1.16);
   animation:coverIn 2.4s var(--ease) 1.15s forwards
}
:where(body.vis-top) .cover-veil{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(13,30,60,.5) 0%,rgba(13,30,60,.12) 45%,rgba(13,30,60,.86) 100%)
}
:where(body.vis-top) .cover-in{
  position:relative;
  z-index:3;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:clamp(28px,5vh,52px) 0;
  will-change:transform,opacity
}
:where(body.vis-top) .cover-top,:where(body.vis-top) .cover-foot{
  opacity:0;
  transform:translateY(12px);
  animation:fadeUp .9s var(--ease) 1.9s forwards
}
:where(body.vis-top) .cover-foot{
  animation-delay:2.05s;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  flex-wrap:wrap;
  color:#fff
}
:where(body.vis-top) .cover-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  color:rgba(255,255,255,.72);
  font-family:var(--latin);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase
}
:where(body.vis-top) .cover-mid{
  flex:1;
  display:flex;
  align-items:center
}
:where(body.vis-top) .statement{
  writing-mode:vertical-rl;
  font-family:var(--mincho);
  font-weight:800;
  color:#fff;
   font-size:clamp(28px,4.4vw,52px);
  line-height:1.55;
  letter-spacing:.17em;
  margin:0;
  align-self:flex-start;
  max-height:min(58vh,470px)
}
:where(body.vis-top) .statement .ln{
  display:block;
  clip-path:inset(0 0 100% 0);
  transform:translateY(-14px);
   animation:lineIn 1.15s var(--ease) forwards
}
:where(body.vis-top) .statement .ln:nth-child(1){
  animation-delay:1.35s
}
:where(body.vis-top) .statement .ln:nth-child(2){
  animation-delay:1.55s
}
:where(body.vis-top) .statement em{
  font-style:normal;
  color:#C9A96A
}
:where(body.vis-top) .cover-tag{
  font-family:var(--mincho);
  font-size:clamp(13px,1.7vw,17px);
  letter-spacing:.22em;
  margin:0;
  padding-left:56px;
  position:relative;
  color:#fff
}
:where(body.vis-top) .cover-tag::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  height:1px;
  background:rgba(255,255,255,.65);
  width:0;
   animation:ruleIn .9s var(--ease) 2.3s forwards
}
:where(body.vis-top) .credit{
  font-size:11.5px;
  letter-spacing:.12em;
  color:rgba(255,255,255,.6);
  margin:0;
  text-align:right
}
:where(body.vis-top) .scroll-hint{
  position:absolute;
  left:50%;
  bottom:16px;
  z-index:4;
  width:1px;
  height:44px;
  background:rgba(255,255,255,.25);
  overflow:hidden
}
:where(body.vis-top) .scroll-hint::after{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;
  animation:drip 2.2s ease-in-out 2.6s infinite
}
:where(body.vis-top) .ticker{
  border-bottom:1px solid var(--line);
  background:var(--paper);
  overflow:hidden;
  padding:14px 0
}
:where(body.vis-top) .ticker-in{
  display:flex;
  width:max-content;
  animation:slide 38s linear infinite
}
:where(body.vis-top) .ticker:hover .ticker-in{
  animation-play-state:paused
}
:where(body.vis-top) .ticker-set{
  display:flex;
  align-items:center;
  gap:34px;
  padding-right:34px;
  white-space:nowrap
}
:where(body.vis-top) .ticker-set span{
  font-family:var(--mincho);
  font-size:13.5px;
  letter-spacing:.14em;
  color:var(--ink-45)
}
:where(body.vis-top) .ticker-set i{
  font-style:normal;
  color:var(--gold);
  font-family:var(--latin);
  font-size:10.5px;
  letter-spacing:.2em;
  margin-right:10px
}
:where(body.vis-top) .sec{
  padding:clamp(60px,8vw,110px) 0
}
:where(body.vis-about) .sec{
  padding:clamp(56px,7.5vw,100px) 0
}
:where(body.vis-top) .sec+.sec,:where(body.vis-about) .sec+.sec{
  border-top:1px solid var(--line)
}
:where(body.vis-top) .sec-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:clamp(28px,4vw,52px);
  flex-wrap:wrap
}
:where(body.vis-about) .sec-head{
  margin-bottom:clamp(26px,3.6vw,44px)
}
:where(body.vis-top) .sec-head h2{
  font-family:var(--latin);
  font-weight:600;
  font-size:clamp(23px,3.2vw,34px);
  letter-spacing:.12em;
  margin:0;
  line-height:1
}
:where(body.vis-about) .sec-head h2{
  font-family:var(--latin);
  font-weight:600;
  font-size:clamp(21px,2.8vw,30px);
  letter-spacing:.12em;
  margin:12px 0 0;
  line-height:1
}
:where(body.vis-top) .sec-head .jp{
  font-family:var(--mincho);
  font-size:14px;
  letter-spacing:.16em;
  color:var(--ink-45);
  margin:12px 0 0
}
:where(body.vis-about) .sec-head .jp{
  font-family:var(--mincho);
  font-size:13.5px;
  letter-spacing:.16em;
  color:var(--ink-45);
  margin:12px 0 0
}
:where(body.vis-top) .more{
  font-family:var(--latin);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gunjo);
  display:inline-flex;
  align-items:center;
  gap:10px
}
:where(body.vis-article) .more{
  font-family:var(--latin);
  font-size:12px;
  letter-spacing:.18em;
  color:var(--gunjo);
  display:inline-flex;
  align-items:center;
  gap:10px
}
:where(body.vis-top) .more i,:where(body.vis-article) .more i{
  display:block;
  width:32px;
  height:1px;
  background:var(--gunjo);
  transition:width .45s var(--ease)
}
:where(body.vis-top) .more:hover i,:where(body.vis-article) .more:hover i{
  width:56px
}
:where(body.vis-top) .plate,:where(body.vis-article) .plate,:where(body.vis-archive) .plate{
  position:relative;
  aspect-ratio:3/2;
  background:var(--gunjo);
  overflow:hidden
}
:where(body.vis-top) .plate img{
  filter:grayscale(1) contrast(1.1);
  mix-blend-mode:luminosity;
  opacity:.88;
   transition:transform 1.1s var(--ease),opacity .5s,filter .6s,mix-blend-mode .3s
}
:where(body.vis-article) .plate img,:where(body.vis-archive) .plate img{
  filter:grayscale(1) contrast(1.1);
  mix-blend-mode:luminosity;
  opacity:.88;
  transition:transform 1.1s var(--ease),filter .6s,mix-blend-mode .3s,opacity .5s
}
:where(body.vis-top) .card:hover .plate img,:where(body.vis-article) .card:hover .plate img,:where(body.vis-archive) .card:hover .plate img{
  transform:scale(1.07);
  filter:none;
  mix-blend-mode:normal;
  opacity:1
}
:where(body.vis-top) .plate::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(13,30,60,0) 40%,rgba(13,30,60,.84) 100%);
  pointer-events:none;
  transition:opacity .5s
}
:where(body.vis-article) .plate::after,:where(body.vis-archive) .plate::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(13,30,60,0) 40%,rgba(13,30,60,.84) 100%);
  pointer-events:none
}
:where(body.vis-top) .card:hover .plate::after{
  opacity:.82
}
:where(body.vis-top) .plate-no,:where(body.vis-article) .plate-no,:where(body.vis-archive) .plate-no{
  position:absolute;
  top:12px;
  left:14px;
  z-index:2;
  font-family:var(--latin);
  font-size:10.5px;
  letter-spacing:.2em;
  color:rgba(255,255,255,.72)
}
:where(body.vis-top) .plate-cat,:where(body.vis-article) .plate-cat,:where(body.vis-archive) .plate-cat{
  position:absolute;
  top:12px;
  right:14px;
  z-index:2;
  font-size:10.5px;
  letter-spacing:.12em;
  color:rgba(255,255,255,.86);
  border:1px solid rgba(255,255,255,.4);
  padding:3px 10px
}
:where(body.vis-top) .plate-name{
  position:absolute;
  left:16px;
  bottom:13px;
  z-index:2;
  color:#fff;
  margin:0;
   font-family:var(--mincho);
  font-weight:600;
  font-size:clamp(17px,1.8vw,21px);
  letter-spacing:.14em;
  line-height:1.3;
   transition:transform .55s var(--ease)
}
:where(body.vis-article) .plate-name{
  position:absolute;
  left:16px;
  bottom:13px;
  z-index:2;
  color:#fff;
  margin:0;
  font-family:var(--mincho);
  font-weight:600;
  font-size:19px;
  letter-spacing:.14em;
  line-height:1.3;
  transition:transform .55s var(--ease)
}
:where(body.vis-archive) .plate-name{
  position:absolute;
  left:16px;
  bottom:13px;
  z-index:2;
  color:#fff;
  margin:0;
  font-family:var(--mincho);
  font-weight:600;
  font-size:clamp(17px,1.8vw,20px);
  letter-spacing:.14em;
  line-height:1.3;
  transition:transform .55s var(--ease)
}
:where(body.vis-top) .card:hover .plate-name,:where(body.vis-article) .card:hover .plate-name,:where(body.vis-archive) .card:hover .plate-name{
  transform:translateY(-4px)
}
:where(body.vis-top) .plate-name small,:where(body.vis-article) .plate-name small,:where(body.vis-archive) .plate-name small{
  display:block;
  font-family:var(--gothic);
  font-weight:300;
  font-size:11px;
  letter-spacing:.08em;
  color:rgba(255,255,255,.72);
  margin-top:6px
}
:where(body.vis-top) .plate.empty::before,:where(body.vis-article) .plate.empty::before,:where(body.vis-archive) .plate.empty::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(255,255,255,.16)
}
:where(body.vis-top) .grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(24px,3vw,44px) clamp(16px,2.2vw,30px)
}
:where(body.vis-article) .grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(20px,2.4vw,32px)
}
:where(body.vis-archive) .grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(26px,3.2vw,46px) clamp(16px,2.2vw,30px)
}
:where(body.vis-top) .card h3{
  font-family:var(--mincho);
  font-weight:600;
  font-size:clamp(16px,1.5vw,19px);
  line-height:1.75;
  letter-spacing:.04em;
  margin:18px 0 10px;
  transition:color .35s
}
:where(body.vis-article) .card h3{
  font-family:var(--mincho);
  font-weight:600;
  font-size:17px;
  line-height:1.75;
  letter-spacing:.04em;
  margin:16px 0 8px;
  transition:color .35s
}
:where(body.vis-archive) .card h3{
  font-family:var(--mincho);
  font-weight:600;
  font-size:clamp(16px,1.5vw,18px);
  line-height:1.75;
  letter-spacing:.04em;
  margin:16px 0 8px;
  transition:color .35s
}
:where(body.vis-top) .card:hover h3,:where(body.vis-article) .card:hover h3,:where(body.vis-archive) .card:hover h3{
  color:var(--gunjo)
}
:where(body.vis-top) .card .lede{
  font-size:13px;
  color:var(--ink-45);
  line-height:1.95;
  margin:0
}
:where(body.vis-article) .card .lede,:where(body.vis-archive) .card .lede{
  font-size:12.5px;
  color:var(--ink-45);
  line-height:1.9;
  margin:0
}
:where(body.vis-top) .lead{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:clamp(24px,3.6vw,54px);
  align-items:center;
  margin-bottom:clamp(34px,4.5vw,64px)
}
:where(body.vis-top) .lead .plate{
  aspect-ratio:16/9
}
:where(body.vis-top) .lead h3{
  font-size:clamp(21px,2.6vw,31px);
  font-weight:800;
  line-height:1.62;
  margin:16px 0 16px
}
:where(body.vis-top) .lead .lede{
  font-size:14.5px;
  color:var(--ink-70);
  line-height:2.1;
  margin:0 0 24px
}
:where(body.vis-top) .readmore{
  font-family:var(--latin);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gunjo);
  display:inline-flex;
  align-items:center;
  gap:10px
}
:where(body.vis-top) .readmore i{
  display:block;
  width:32px;
  height:1px;
  background:var(--gunjo);
  transition:width .45s var(--ease)
}
:where(body.vis-top) .card:hover .readmore i{
  width:56px
}
:where(body.vis-top) .midband{
  background:var(--gunjo);
  color:#fff;
  overflow:hidden
}
:where(body.vis-top) .midband .wrap{
  padding-top:clamp(30px,4vw,46px);
  padding-bottom:clamp(30px,4vw,46px);
   display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  flex-wrap:wrap
}
:where(body.vis-top) .midband p{
  font-family:var(--mincho);
  font-size:clamp(15px,1.9vw,19px);
  letter-spacing:.1em;
  margin:0;
  line-height:1.7
}
:where(body.vis-top) .midband a{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.45);
  padding:12px 28px;
  font-size:13px;
  letter-spacing:.12em;
  white-space:nowrap;
  isolation:isolate;
  transition:color .4s
}
:where(body.vis-top) .midband a::before{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .45s var(--ease);
  z-index:-1
}
:where(body.vis-top) .midband a:hover{
  color:var(--gunjo)
}
:where(body.vis-top) .midband a:hover::before{
  transform:scaleX(1);
  transform-origin:left
}
:where(body.vis-top) .policy,:where(body.vis-about) .policy{
  background:var(--gunjo);
  color:#fff
}
:where(body.vis-top) .policy .wrap{
  padding-top:clamp(58px,8vw,106px);
  padding-bottom:clamp(58px,8vw,106px);
   display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:clamp(26px,4vw,64px);
  align-items:start
}
:where(body.vis-about) .policy .wrap{
  padding-top:clamp(58px,8vw,104px);
  padding-bottom:clamp(58px,8vw,104px);
   display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:clamp(26px,4vw,64px);
  align-items:start
}
:where(body.vis-top) .policy h2,:where(body.vis-about) .policy h2{
  font-family:var(--mincho);
  font-weight:800;
  font-size:clamp(21px,2.9vw,32px);
  line-height:1.7;
  letter-spacing:.08em;
  margin:12px 0 0
}
:where(body.vis-top) .policy p{
  color:rgba(255,255,255,.76);
  font-size:14.5px;
  line-height:2.15;
  margin:0 0 20px
}
:where(body.vis-about) .policy p{
  color:rgba(255,255,255,.78);
  font-size:14.5px;
  line-height:2.15;
  margin:0 0 20px
}
:where(body.vis-top) .policy .eyebrow,:where(body.vis-about) .policy .eyebrow{
  color:rgba(255,255,255,.55)
}
:where(body.vis-top) .ghost{
  position:relative;
  overflow:hidden;
  display:inline-block;
  border:1px solid rgba(255,255,255,.4);
  padding:12px 28px;
  font-size:13px;
  letter-spacing:.12em;
  isolation:isolate;
  transition:color .4s
}
:where(body.vis-top) .ghost::before{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .45s var(--ease);
  z-index:-1
}
:where(body.vis-top) .ghost:hover{
  color:var(--gunjo)
}
:where(body.vis-top) .ghost:hover::before{
  transform:scaleX(1);
  transform-origin:left
}
:where(body.vis-top) .cat-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px
}
:where(body.vis-top) .cat-list a{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  font-size:13px;
  letter-spacing:.08em;
  padding:10px 20px;
  color:var(--ink-70);
  isolation:isolate;
  transition:color .35s,border-color .35s
}
:where(body.vis-top) .cat-list a::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--gunjo);
  transform:scaleY(0);
  transform-origin:bottom;
  transition:transform .4s var(--ease);
  z-index:-1
}
:where(body.vis-top) .cat-list a:hover{
  color:#fff;
  border-color:var(--gunjo)
}
:where(body.vis-top) .cat-list a:hover::before{
  transform:scaleY(1);
  transform-origin:top
}
.foot{
  border-top:1px solid var(--line);
  padding:clamp(38px,5vw,58px) 0 32px
}
.foot-in{
  display:flex;
  justify-content:space-between;
  gap:26px;
  flex-wrap:wrap;
  align-items:flex-start
}
.foot-nav{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  font-size:13px;
  color:var(--ink-70)
}
:where(body.vis-top) .foot-nav a{
  position:relative
}
:where(body.vis-top) .foot-nav a::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-2px;
  height:1px;
  background:var(--gunjo);
  transition:right .4s var(--ease)
}
:where(body.vis-top) .foot-nav a:hover::after{
  right:0
}
.copy{
  font-family:var(--latin);
  font-size:11px;
  letter-spacing:.16em;
  color:var(--ink-45);
  margin-top:30px
}
:where(body.vis-top) .rv{
  opacity:0;
  transform:translateY(26px);
  transition:opacity 1s var(--ease),transform 1s var(--ease)
}
:where(body.vis-article) .rv,:where(body.vis-archive) .rv,:where(body.vis-about) .rv{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 1s var(--ease),transform 1s var(--ease)
}
.rv.in{
  opacity:1;
  transform:none
}
:where(body.vis-top) .rv-mask{
  clip-path:inset(0 0 100% 0);
  transform:translateY(10px);
  transition:clip-path 1.1s var(--ease),transform 1.1s var(--ease)
}
:where(body.vis-top) .rv-mask.in{
  clip-path:inset(0 0 0 0);
  transform:none
}
:where(body.vis-article) .door{
  position:relative;
  height:clamp(500px,90vh,880px);
  background:var(--gunjo-2);
  overflow:hidden
}
:where(body.vis-article) .door-bg{
  position:absolute;
  inset:-4% 0;
  will-change:transform
}
:where(body.vis-article) .door-bg img{
  filter:grayscale(.25) contrast(1.06);
  opacity:0;
  transform:scale(1.1);
  animation:doorIn 2.2s var(--ease) .2s forwards
}
:where(body.vis-article) .door-veil{
  position:absolute;
  inset:0;
  background:linear-gradient(190deg,rgba(13,30,60,.72) 0%,rgba(13,30,60,.28) 40%,rgba(13,30,60,.88) 100%)
}
:where(body.vis-article) .door-in{
  position:relative;
  z-index:3;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
   padding:clamp(26px,4.5vh,46px) 0;
  will-change:transform,opacity
}
:where(body.vis-article) .door-meta{
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  color:rgba(255,255,255,.72);
   font-family:var(--latin);
  font-size:11px;
  letter-spacing:.2em;
  opacity:0;
  animation:visFadeUpArticle .9s var(--ease) .6s forwards
}
:where(body.vis-article) .door-meta .cat{
  font-family:var(--gothic);
  font-size:10.5px;
  letter-spacing:.12em;
  border:1px solid rgba(255,255,255,.42);
  padding:3px 12px;
  color:#fff
}
:where(body.vis-article) .door-mid{
  flex:1;
  display:flex;
  align-items:center
}
:where(body.vis-article) .door-title{
  writing-mode:vertical-rl;
  font-family:var(--mincho);
  font-weight:800;
  color:#fff;
   font-size:clamp(26px,4vw,46px);
  line-height:1.62;
  letter-spacing:.15em;
  margin:0;
  align-self:flex-start;
  max-height:min(60vh,480px);
  clip-path:inset(0 0 100% 0);
  transform:translateY(-12px);
  animation:lineIn 1.3s var(--ease) .75s forwards
}
:where(body.vis-article) .door-foot{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:22px;
  flex-wrap:wrap;
  color:#fff;
   opacity:0;
  animation:visFadeUpArticle .9s var(--ease) 1.5s forwards
}
:where(body.vis-article) .door-by{
  margin:0;
  font-size:12px;
  letter-spacing:.1em;
  color:rgba(255,255,255,.66);
  line-height:1.9
}
:where(body.vis-article) .door-by b{
  display:block;
  font-family:var(--mincho);
  font-weight:600;
  font-size:clamp(18px,2.2vw,23px);
  letter-spacing:.2em;
  color:#fff;
  margin-bottom:6px
}
:where(body.vis-article) .read-time{
  font-family:var(--latin);
  font-size:11px;
  letter-spacing:.18em;
  color:rgba(255,255,255,.55)
}
:where(body.vis-article) .crumb,:where(body.vis-archive) .crumb,:where(body.vis-about) .crumb{
  border-bottom:1px solid var(--line)
}
:where(body.vis-article) .crumb .wrap,:where(body.vis-archive) .crumb .wrap,:where(body.vis-about) .crumb .wrap{
  padding-top:14px;
  padding-bottom:14px;
  font-size:11.5px;
  letter-spacing:.1em;
  color:var(--ink-45)
}
:where(body.vis-article) .crumb a:hover,:where(body.vis-archive) .crumb a:hover{
  color:var(--gunjo)
}
:where(body.vis-article) .crumb span,:where(body.vis-archive) .crumb span,:where(body.vis-about) .crumb span{
  margin:0 10px;
  color:var(--line)
}
:where(body.vis-article) .lede-block{
  max-width:34em;
  margin:0 auto;
  padding:clamp(48px,7vw,92px) var(--gut) 0
}
:where(body.vis-article) .lede-block p{
  font-family:var(--mincho);
  font-weight:400;
  font-size:clamp(16px,1.9vw,20px);
  line-height:2.15;
  letter-spacing:.05em;
  margin:0;
  color:#1B2026
}
:where(body.vis-article) .body{
  max-width:34em;
  margin:0 auto;
  padding:clamp(40px,5.5vw,72px) var(--gut) 0
}
:where(body.vis-article) .body h2{
  font-family:var(--mincho);
  font-weight:800;
  font-size:clamp(19px,2.2vw,25px);
  line-height:1.7;
  letter-spacing:.06em;
   margin:clamp(52px,7vw,88px) 0 26px;
  text-align:center;
  position:relative
}
:where(body.vis-article) .body h2::after{
  content:"";
  display:block;
  width:28px;
  height:1px;
  background:var(--gold);
  margin:20px auto 0
}
:where(body.vis-article) .body p{
  font-size:16px;
  line-height:2.3;
  letter-spacing:.03em;
  margin:0 0 1.9em;
  color:#1B2026
}
:where(body.vis-article) .body p .em{
  background:linear-gradient(transparent 62%,rgba(158,124,57,.22) 62%)
}
:where(body.vis-article) .say{
  margin:0 0 1.9em;
  padding-left:clamp(14px,2vw,22px);
  border-left:1px solid var(--gunjo)
}
:where(body.vis-article) .say p{
  font-size:16px;
  line-height:2.3;
  margin:0;
  color:var(--gunjo)
}
:where(body.vis-article) .pull{
  margin:clamp(52px,7vw,88px) 0;
  padding:clamp(34px,4.5vw,54px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  text-align:center
}
:where(body.vis-article) .pull p{
  font-family:var(--mincho);
  font-weight:800;
  font-size:clamp(20px,2.9vw,32px);
  line-height:1.95;
  letter-spacing:.09em;
  color:var(--gunjo);
  margin:0
}
:where(body.vis-article) .fig{
  margin:clamp(44px,6vw,76px) 0
}
:where(body.vis-article) .fig .ph{
  aspect-ratio:3/2;
  overflow:hidden;
  background:var(--paper-2)
}
:where(body.vis-article) .fig figcaption{
  font-size:11.5px;
  color:var(--ink-45);
  letter-spacing:.08em;
  margin-top:12px;
  line-height:1.8
}
:where(body.vis-article) .word{
  background:var(--gunjo);
  color:#fff;
  margin-top:clamp(64px,8vw,110px)
}
:where(body.vis-article) .word .wrap{
  padding-top:clamp(58px,8vw,104px);
  padding-bottom:clamp(58px,8vw,104px);
   display:flex;
  align-items:center;
  gap:clamp(26px,5vw,72px)
}
:where(body.vis-article) .word .label{
  writing-mode:vertical-rl;
  font-family:var(--latin);
  font-size:10.5px;
  letter-spacing:.3em;
   text-transform:uppercase;
  color:rgba(255,255,255,.5);
  flex:none
}
:where(body.vis-article) .word .q{
  writing-mode:vertical-rl;
  font-family:var(--mincho);
  font-weight:800;
   font-size:clamp(24px,3.6vw,42px);
  letter-spacing:.18em;
  line-height:1.7;
  margin:0;
  max-height:44vh
}
:where(body.vis-article) .word .sign{
  margin-left:auto;
  text-align:right;
  font-size:12px;
  letter-spacing:.12em;
  color:rgba(255,255,255,.6);
  line-height:1.9
}
:where(body.vis-article) .word .sign b{
  display:block;
  font-family:var(--mincho);
  font-weight:600;
  font-size:17px;
  letter-spacing:.2em;
  color:#fff;
  margin-bottom:6px
}
:where(body.vis-article) .profile{
  max-width:34em;
  margin:clamp(58px,7vw,92px) auto 0;
  padding:0 var(--gut)
}
:where(body.vis-article) .profile-in{
  border-top:1px solid var(--ink);
  padding-top:26px
}
:where(body.vis-article) .profile-in .eyebrow{
  color:var(--ink-45)
}
:where(body.vis-article) .profile-in h3{
  font-family:var(--mincho);
  font-weight:600;
  font-size:20px;
  letter-spacing:.2em;
  margin:14px 0 4px
}
:where(body.vis-article) .profile-in .pos{
  font-size:12.5px;
  color:var(--ink-45);
  letter-spacing:.08em;
  margin:0 0 18px
}
:where(body.vis-article) .profile-in p.bio{
  font-size:13.5px;
  line-height:2.1;
  color:var(--ink-70);
  margin:0
}
:where(body.vis-article) .art-foot{
  max-width:34em;
  margin:clamp(44px,5vw,64px) auto 0;
  padding:0 var(--gut)
}
:where(body.vis-article) .share{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding-bottom:clamp(44px,5vw,64px)
}
:where(body.vis-article) .share span{
  font-family:var(--latin);
  font-size:10.5px;
  letter-spacing:.2em;
  color:var(--ink-45)
}
:where(body.vis-article) .share a{
  border:1px solid var(--line);
  padding:8px 18px;
  font-size:12px;
  letter-spacing:.08em;
  color:var(--ink-70);
  transition:.3s
}
:where(body.vis-article) .share a:hover{
  background:var(--gunjo);
  border-color:var(--gunjo);
  color:#fff
}
:where(body.vis-article) .next{
  padding:clamp(56px,8vw,100px) 0;
  border-top:1px solid var(--line)
}
:where(body.vis-article) .next .sec-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:clamp(26px,4vw,44px);
  flex-wrap:wrap
}
:where(body.vis-article) .next h2{
  font-family:var(--latin);
  font-weight:600;
  font-size:clamp(20px,2.6vw,28px);
  letter-spacing:.12em;
  margin:0
}
:where(body.vis-article) .next .jp{
  font-family:var(--mincho);
  font-size:13.5px;
  letter-spacing:.16em;
  color:var(--ink-45);
  margin:10px 0 0
}
:where(body.vis-archive) .nav a:hover::after,:where(body.vis-archive) .nav a.on::after,:where(body.vis-about) .nav a:hover::after,:where(body.vis-about) .nav a.on::after{
  right:0
}
:where(body.vis-archive) .page-head{
  padding:clamp(40px,6vw,80px) 0 clamp(26px,3.4vw,40px);
  border-bottom:1px solid var(--line)
}
:where(body.vis-about) .page-head{
  padding:clamp(44px,6.5vw,86px) 0 clamp(36px,5vw,64px)
}
:where(body.vis-archive) .page-head .in{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  flex-wrap:wrap
}
:where(body.vis-archive) .page-head h1,:where(body.vis-about) .page-head h1{
  font-family:var(--latin);
  font-weight:600;
  font-size:clamp(28px,4.6vw,52px);
  letter-spacing:.1em;
  margin:14px 0 0;
  line-height:1
}
:where(body.vis-archive) .page-head .jp,:where(body.vis-about) .page-head .jp{
  font-family:var(--mincho);
  font-size:clamp(14px,1.7vw,17px);
  letter-spacing:.18em;
  color:var(--ink-45);
  margin:16px 0 0
}
:where(body.vis-archive) .count{
  font-family:var(--latin);
  font-size:12px;
  letter-spacing:.16em;
  color:var(--ink-45)
}
:where(body.vis-archive) .page-head .desc{
  font-size:14px;
  color:var(--ink-70);
  line-height:2.1;
  margin:22px 0 0;
  max-width:44em
}
:where(body.vis-archive) .filter{
  position:sticky;
  top:74px;
  z-index:40;
  background:rgba(251,251,248,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)
}
:where(body.vis-archive) .filter .wrap{
  padding-top:16px;
  padding-bottom:16px;
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap
}
:where(body.vis-archive) .filter-label{
  font-family:var(--latin);
  font-size:10.5px;
  letter-spacing:.2em;
  color:var(--ink-45);
  text-transform:uppercase;
  flex:none
}
:where(body.vis-archive) .chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap
}
:where(body.vis-archive) .chips a{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  font-size:12.5px;
  letter-spacing:.08em;
  padding:7px 16px;
  color:var(--ink-70);
  isolation:isolate;
  transition:color .35s,border-color .35s
}
:where(body.vis-archive) .chips a::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--gunjo);
  transform:scaleY(0);
  transform-origin:bottom;
  transition:transform .38s var(--ease);
  z-index:-1
}
:where(body.vis-archive) .chips a:hover{
  color:#fff;
  border-color:var(--gunjo)
}
:where(body.vis-archive) .chips a:hover::before{
  transform:scaleY(1);
  transform-origin:top
}
:where(body.vis-archive) .chips a.on{
  background:var(--gunjo);
  border-color:var(--gunjo);
  color:#fff
}
:where(body.vis-archive) .sort{
  margin-left:auto;
  font-size:12.5px;
  color:var(--ink-45);
  display:flex;
  gap:14px
}
:where(body.vis-archive) .sort a.on{
  color:var(--gunjo);
  border-bottom:1px solid var(--gunjo);
  padding-bottom:2px
}
:where(body.vis-archive) .list{
  padding:clamp(40px,5.5vw,72px) 0 clamp(20px,3vw,36px)
}
:where(body.vis-archive) .card .date{
  font-family:var(--latin);
  font-size:10.5px;
  letter-spacing:.14em;
  color:var(--ink-45);
  margin:10px 0 0;
  display:block
}
:where(body.vis-archive) .pager{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  padding:clamp(30px,4vw,54px) 0 clamp(56px,7vw,96px)
}
:where(body.vis-archive) .pager a,:where(body.vis-archive) .pager span{
  min-width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
   font-family:var(--latin);
  font-size:13px;
  letter-spacing:.08em;
  border:1px solid var(--line);
  color:var(--ink-70);
  transition:.3s
}
:where(body.vis-archive) .pager a:hover{
  background:var(--gunjo);
  border-color:var(--gunjo);
  color:#fff
}
:where(body.vis-archive) .pager .on{
  background:var(--gunjo);
  border-color:var(--gunjo);
  color:#fff
}
:where(body.vis-archive) .pager .next{
  padding:0 20px
}
:where(body.vis-archive) .empty-state{
  padding:clamp(56px,8vw,110px) 0;
  text-align:center
}
:where(body.vis-archive) .empty-state p{
  font-family:var(--mincho);
  font-size:18px;
  letter-spacing:.08em;
  margin:0 0 8px
}
:where(body.vis-archive) .empty-state small{
  font-size:13px;
  color:var(--ink-45)
}
:where(body.vis-about) .narrow{
  max-width:40em;
  margin:0 auto;
  padding:0 var(--gut)
}
:where(body.vis-about) .prose p{
  font-size:15px;
  line-height:2.2;
  margin:0 0 1.8em;
  color:#1B2026
}
:where(body.vis-about) .table{
  border-top:1px solid var(--line)
}
:where(body.vis-about) .row{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:clamp(14px,3vw,34px);
  padding:20px 0;
  border-bottom:1px solid var(--line)
}
:where(body.vis-about) .row dt{
  font-size:12.5px;
  letter-spacing:.14em;
  color:var(--ink-45);
  margin:0
}
:where(body.vis-about) .row dd{
  margin:0;
  font-size:14.5px;
  line-height:1.95
}
:where(body.vis-about) .row dd .todo{
  color:var(--gold);
  font-size:12.5px;
  letter-spacing:.08em
}
:where(body.vis-about) .about-interview{
  background:var(--paper-2)
}
:where(body.vis-about) .about-interview .narrow{
  padding-top:clamp(56px,7.5vw,100px);
  padding-bottom:clamp(56px,7.5vw,100px)
}
:where(body.vis-about) .about-interview h2{
  font-family:var(--mincho);
  font-weight:800;
  font-size:clamp(20px,2.7vw,29px);
  line-height:1.7;
  letter-spacing:.08em;
  margin:12px 0 20px
}
:where(body.vis-about) .about-interview p{
  font-size:14.5px;
  color:var(--ink-70);
  line-height:2.15;
  margin:0 0 1.6em
}
:where(body.vis-about) .solid{
  position:relative;
  overflow:hidden;
  display:inline-block;
  background:var(--gunjo);
  color:#fff;
  padding:16px 44px;
  font-size:13.5px;
  letter-spacing:.14em;
  isolation:isolate
}
:where(body.vis-about) .solid::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--gunjo-2);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .5s var(--ease);
  z-index:-1
}
:where(body.vis-about) .solid:hover::before{
  transform:scaleX(1);
  transform-origin:left
}
:where(body.vis-about) .form{
  max-width:40em;
  margin:0 auto;
  padding:0 var(--gut)
}
:where(body.vis-about) .field{
  margin-bottom:26px
}
:where(body.vis-about) .field label{
  display:block;
  font-size:12.5px;
  letter-spacing:.12em;
  color:var(--ink-70);
  margin-bottom:10px
}
:where(body.vis-about) .field label .req{
  color:var(--gold);
  font-size:11px;
  margin-left:8px;
  letter-spacing:.1em
}
:where(body.vis-about) .field input,:where(body.vis-about) .field textarea,:where(body.vis-about) .field select{
  width:100%;
  font-family:var(--gothic);
  font-size:15px;
  color:var(--ink);
   background:var(--paper);
  border:1px solid var(--line);
  padding:14px 16px;
  line-height:1.7;
   transition:border-color .3s,background .3s
}
:where(body.vis-about) .field input:focus,:where(body.vis-about) .field textarea:focus,:where(body.vis-about) .field select:focus{
  outline:none;
  border-color:var(--gunjo);
  background:#fff
}
:where(body.vis-about) .field textarea{
  min-height:150px;
  resize:vertical
}
:where(body.vis-about) .field .hint{
  font-size:12px;
  color:var(--ink-45);
  margin:8px 0 0;
  line-height:1.8
}
:where(body.vis-about) .consent{
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size:13px;
  color:var(--ink-70);
  line-height:1.9;
  margin:30px 0
}
:where(body.vis-about) .consent input{
  width:16px;
  height:16px;
  flex:none;
  margin-top:5px
}
:where(body.vis-about) .consent a{
  border-bottom:1px solid var(--line)
}
:where(body.vis-about) .submit{
  position:relative;
  overflow:hidden;
  display:inline-block;
  background:var(--gunjo);
  color:#fff;
  border:0;
   padding:17px 52px;
  font-family:var(--gothic);
  font-size:13.5px;
  letter-spacing:.14em;
  cursor:pointer;
  isolation:isolate
}
:where(body.vis-about) .submit::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--gunjo-2);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .5s var(--ease);
  z-index:-1
}
:where(body.vis-about) .submit:hover::before{
  transform:scaleX(1);
  transform-origin:left
}
:where(body.vis-about) .form-note{
  font-size:12.5px;
  color:var(--ink-45);
  line-height:1.95;
  margin:22px 0 0
}

@media(max-width:900px){
  .nav{
    display:none
  }
  :where(body.vis-top) .grid,:where(body.vis-article) .grid,:where(body.vis-archive) .grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  :where(body.vis-archive) .filter{
    top:0
  }
  :where(body.vis-archive) .sort{
    margin-left:0
  }
}

@media(max-width:520px){
  .cta{
    display:none
  }
}

@media(max-width:600px){
  :where(body.vis-top) .statement{
    writing-mode:horizontal-tb;
    max-height:none;
    letter-spacing:.08em;
    line-height:1.7
  }
  :where(body.vis-top) .statement .ln{
    clip-path:inset(0 0 100% 0)
  }
  :where(body.vis-top) .cover-mid{
    align-items:flex-end
  }
  :where(body.vis-top) .scroll-hint{
    display:none
  }
  :where(body.vis-article) .door-title{
    writing-mode:horizontal-tb;
    max-height:none;
    letter-spacing:.05em;
    line-height:1.68
  }
  :where(body.vis-article) .door-mid{
    align-items:flex-end
  }
}

@media(max-width:560px){
  :where(body.vis-top) .grid,:where(body.vis-article) .grid,:where(body.vis-archive) .grid{
    grid-template-columns:1fr
  }
}

@media(max-width:820px){
  :where(body.vis-top) .lead{
    grid-template-columns:1fr
  }
  :where(body.vis-top) .policy .wrap,:where(body.vis-about) .policy .wrap{
    grid-template-columns:1fr
  }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation:none!important;
    transition:none!important
  }
  :where(body.vis-top) .rv,:where(body.vis-top) .rv-mask{
    opacity:1;
    transform:none;
    clip-path:none
  }
  :where(body.vis-top) #veil{
    display:none
  }
  :where(body.vis-top) .cover-bg img{
    opacity:.62;
    transform:scale(1.02)
  }
  :where(body.vis-top) .cover-top,:where(body.vis-top) .cover-foot,:where(body.vis-top) .statement .ln{
    opacity:1;
    clip-path:none
  }
  :where(body.vis-top) .cover-tag::before{
    width:42px
  }
  :where(body.vis-article) .rv,:where(body.vis-archive) .rv,:where(body.vis-about) .rv{
    opacity:1;
    transform:none
  }
  :where(body.vis-article) .door-bg img{
    opacity:.78;
    transform:none
  }
  :where(body.vis-article) .door-meta,:where(body.vis-article) .door-foot{
    opacity:1
  }
  :where(body.vis-article) .door-title{
    clip-path:none;
    transform:none
  }
}

@media(max-width:640px){
  :where(body.vis-article) .word .wrap{
    flex-direction:column;
    align-items:flex-start;
    gap:22px
  }
  :where(body.vis-article) .word .label,:where(body.vis-article) .word .q{
    writing-mode:horizontal-tb;
    max-height:none;
    letter-spacing:.08em
  }
  :where(body.vis-article) .word .sign{
    margin-left:0;
    text-align:left
  }
}

@media(max-width:620px){
  :where(body.vis-about) .row{
    grid-template-columns:1fr;
    gap:4px
  }
}

/* ---------- キーフレーム ---------- */
@keyframes markIn{to{opacity:1;transform:none}}
@keyframes coverIn{to{opacity:.62;transform:scale(1.02)}}
@keyframes fadeUp{to{opacity:1;transform:none}}
@keyframes lineIn{to{clip-path:inset(0 0 0 0);transform:none}}
@keyframes ruleIn{to{width:42px}}
@keyframes drip{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
@keyframes slide{to{transform:translateX(-50%)}}
@keyframes doorIn{to{opacity:.78;transform:scale(1)}}
@keyframes visFadeUpArticle{to{opacity:1}}

/* ---------- テーマ都合の追記 ----------
   ヘッダーは4ページ共通の部品にしたが、読了プログレスバーは
   トップと記事のモックにしか無い。一覧・運営団体では消す。
   （position:absolute なのでレイアウトには影響しない。見た目だけ揃える）

   プレートの16:9版は、トップのFEATURE（.lead .plate）と同じ比率。
   独自ブロック側から .plate--wide で指定できるようにしたもの。
   ------------------------------------- */
:where(body.vis-archive,body.vis-about) .progress{display:none}
.plate.plate--wide{aspect-ratio:16/9}

/* ---------- 記事本文の行長を、意図した 34em に戻す ----------
   モックは .body{max-width:34em; padding:0 var(--gut)} だった。
   box-sizing:border-box なので、左右のパディング（1280pxで56px×2）が
   34em の内側を食っていた。

     34em(510px) − 112px = 398px → 1行あたり日本語 約25字

   日本語の読みやすい行長は 35〜45字。25字は明らかに短く、
   PCで見ても「スマホの表示」に見える。

   直したこと2つ。
     1. パディングを max-width の外に出す（34em を行長そのものにする）
     2. 34em → 40em に広げる
   全画面の扉写真に対して、本文が細すぎて浮いて見えたため。

     結果：1行あたり 約40字（読みやすい範囲の上寄り）

   ※ 元に戻すときは、この4行を消せばモックと同じになる。
   ------------------------------------------------------------ */
:where(body.vis-article) .lede-block,
:where(body.vis-article) .body,
:where(body.vis-article) .profile,
:where(body.vis-article) .art-foot{max-width:calc(40em + var(--gut) * 2)}

/* ---------- Leader's Word を扉へ ----------
   2026-08-23 決定。記事末の群青セクションは廃止し、扉の左下に置いた。

   理由：記事タイトルが氏名のままの記事だと扉に名前しか出ず、
   全画面の写真に対して情報が薄かった。Leader's Word を持ってくると
   扉が締まり、記事末の重複もなくなる。
   ------------------------------------------------------------ */
:where(body.vis-article) .door-side{display:flex;flex-direction:column;gap:10px;
  border-left:1px solid rgba(199,168,106,.5);
  padding-left:clamp(14px,1.5vw,20px);
  max-width:min(30em,62%)}
:where(body.vis-article) .door-word{
  font-family:var(--mincho);font-weight:600;
  font-size:clamp(16px,1.9vw,21px);letter-spacing:.1em;line-height:1.8;
  color:#fff;margin:0}
:where(body.vis-article) .door-word small{
  display:block;font-family:var(--latin);font-size:9.5px;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:7px}

/* ---------- 扉の整理（2026-08-23）----------
   「文字が散らかって見える」への対応。数字で見えていた問題は4つ。

     1. メタ行の下端と縦組みタイトルの上端が 0px で接していた
     2. タイトル下端と Leader's Word の間に 65px の空白が空いていた
     3. 左下が「引用」と「氏名」の2つの塊に分かれ、氏名が23pxで引用と
        同じ大きさだったため、どちらが主役か決まらなかった
     4. 読了時間だけが 1200px 離れた右下に独りで置かれていた

   直し方：
     ・読了時間を上のメタ行へ移し、扉の文字の塊を「上＝事実／下＝言葉」の
       2つだけにした
     ・縦組みタイトルを下寄せにして、上に余白・下に一定の間隔を作った
     ・左下は金の縦罫で1つの塊に束ね、氏名は引用より一段小さくした
   ------------------------------------------------------------ */
/* 扉の左右の余白。モックの .door-in は padding:… 0 で .wrap の左右余白を
   打ち消していたため、扉の文字だけがページの他の要素より左にずれ、
   画面幅1200px以下では画面の端に貼り付いていた（実測：1024pxでx=0）。
   パンくず・本文・NEXT と同じ位置から始まるように戻す。 */
:where(body.vis-article) .door-in{padding-left:var(--gut);padding-right:var(--gut)}
:where(body.vis-article) .door-meta{gap:14px}
:where(body.vis-article) .door-meta .date + .read-time::before{
  content:"";display:inline-block;width:1px;height:9px;margin-right:14px;
  background:rgba(255,255,255,.32);vertical-align:middle}
:where(body.vis-article) .door-mid{padding-bottom:clamp(22px,3.6vh,38px)}
:where(body.vis-article) .door-title{align-self:flex-end}
:where(body.vis-article) .door-side .door-word + .door-by{
  margin-top:2px;font-size:11.5px;letter-spacing:.12em;color:rgba(255,255,255,.6)}
:where(body.vis-article) .door-side .door-word + .door-by b{
  font-size:clamp(13.5px,1.3vw,15px);letter-spacing:.18em;margin-bottom:2px}

/* ---------- 姉妹媒体のリンク ----------
   2026-08-24 追加。フッターのロゴの下に置く。
   規約系（プライバシーポリシー等）と同じ行に並べると、読み物の導線と
   事務的なリンクが同列になるため、ブランド側にぶら下げている。
   ------------------------------------------------------------ */
.foot-brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.foot-sister{display:inline-flex;align-items:center;gap:9px;
  font-size:12px;letter-spacing:.06em;color:var(--ink-45);line-height:1}
.foot-sister small{font-family:var(--latin);font-size:9.5px;font-weight:600;
  letter-spacing:.2em;color:var(--ink-45);border:1px solid var(--line);
  padding:4px 8px;white-space:nowrap}
.foot-sister b{font-weight:600;color:var(--ink-70);white-space:nowrap}
.foot-sister i{display:inline-block;width:7px;height:7px;
  border-top:1px solid currentColor;border-right:1px solid currentColor;
  transform:rotate(45deg);opacity:.55;margin-bottom:1px}
.foot-sister:hover b{color:var(--gunjo)}
.foot-sister:hover i{opacity:1}

/* ---------- フォームの送信結果 ----------
   モックには無い。テーマでフォームを受けるようにしたため必要になった。
   ------------------------------------------------------------ */
.form-sent{border:1px solid var(--line);padding:clamp(28px,4vw,44px);text-align:center}
.form-sent p{font-family:var(--mincho);font-weight:600;font-size:19px;letter-spacing:.08em;margin:0 0 10px}
.form-sent small{font-size:13px;color:var(--ink-45)}
.form-error{background:var(--gunjo-tint);border-left:2px solid var(--gunjo);
  padding:14px 18px;font-size:13.5px;line-height:1.9;margin:0 0 26px}
