/* 会員ページ専用（base.css の上に重ねる） */
body{background:var(--kinu)}
.page{max-width:480px;margin:0 auto;background:var(--kinu);min-height:100svh}
[hidden]{display:none!important}

/* 写真のヒーロー（LPの「自分の人生を生きる」の写真） */
.hero{position:relative;color:#F2F4F4;text-align:center;overflow:hidden;background:var(--sumi)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 40%;
  filter:saturate(.7) brightness(.8)}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,19,25,.62) 0%,rgba(14,19,25,.30) 42%,rgba(14,19,25,.82) 100%)}
.hero .in{position:relative;z-index:1;padding:44px 24px 34px}
.hero .brand{color:#F2F4F4;opacity:.85;margin-bottom:0}
.hero h1{color:#F2F4F4;margin:0 0 14px;font-size:24px}
.hero .lead{color:#F2F4F4;opacity:.85;font-size:12.5px;margin-bottom:0}
.hero.tall .in{min-height:330px;display:flex;flex-direction:column}
.hero.tall h1{margin-top:auto}
.hero.short .in{min-height:200px;display:flex;flex-direction:column}
.hero.short h1{margin:auto 0 0;font-size:21px}

.next{margin:92px 0 30px}
.next .lbl{font-size:11.5px;letter-spacing:.24em;text-indent:.24em;opacity:.75}
.next .when{font-family:var(--mincho);font-size:25px;letter-spacing:.16em;text-indent:.16em;line-height:1.7;margin-top:2px}
.next .left{font-size:12.5px;letter-spacing:.1em;opacity:.8}
.joins{display:grid;gap:10px}
.joins .btn{max-width:none;padding:17px}
.hint{font-size:11px;opacity:.6;letter-spacing:.06em;margin:12px 0 0}
.hero .msg{color:var(--ai);text-align:left;margin:0 auto 18px}

.body{padding:44px 24px 56px}
.sh{font-family:var(--mincho);font-weight:400;font-size:17px;letter-spacing:.2em;text-indent:.2em;text-align:center;margin:0 0 6px}
.ssub{text-align:center;font-size:11.5px;letter-spacing:.1em;opacity:.55;margin-bottom:20px}
.clock{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;margin:0 0 12px;opacity:.85}
.clock b{font-family:var(--mincho);font-weight:400;font-size:15px;letter-spacing:.12em}
.clock i{font-style:normal;opacity:.55;font-size:11px}
.row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:24px;margin:0 -24px 30px;padding:0 24px 6px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.row::-webkit-scrollbar{display:none}
.mcard{flex:0 0 128px;scroll-snap-align:start}
.mcard .ph{aspect-ratio:4/5;overflow:hidden;background:#E3E7EA}
.mcard .ph img{width:100%;height:100%;object-fit:cover}
.mcard .tt{font-family:var(--mincho);font-size:13px;letter-spacing:.08em;margin:8px 0 0;line-height:1.6}
.mcard .ds{font-size:10.5px;line-height:1.7;opacity:.7;letter-spacing:.02em;margin:0}
.sp{display:inline-block;font-family:var(--gothic);font-size:9.5px;letter-spacing:.1em;border:1px solid currentColor;
  border-radius:999px;padding:0 6px;margin-right:4px;line-height:1.7;vertical-align:1px}
.rule{height:1px;background:rgba(30,51,72,.12);margin:14px 0 40px}

.people{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:44px}
.person{text-align:center}
.person .av{width:58px;aspect-ratio:1;border-radius:50%;overflow:hidden;margin:0 auto 8px}
.person .av img{width:100%;height:100%;object-fit:cover}
.person .role{font-size:8.5px;letter-spacing:.06em;opacity:.55;line-height:1.5;min-height:2.6em}
.person .nm{font-family:var(--mincho);font-size:12px;letter-spacing:.06em;line-height:1.6}
.person .nm.soon{font-family:var(--gothic);font-size:9.5px;opacity:.6}

.sec{font-family:var(--mincho);font-size:14px;letter-spacing:.16em;margin:0 0 6px;opacity:.85}
dl.kv{grid-template-columns:7.5em 1fr;font-size:12.5px}
/* base.css のスマホ用（縦積み）を打ち消して、常に2列で揃える */
.page dl.kv dt,.page dl.kv dd{padding:10px 0;border-top:1px solid rgba(30,51,72,.12)}
.state{display:inline-block;font-size:11px;letter-spacing:.12em;border:1px solid currentColor;border-radius:999px;padding:0 10px;line-height:1.9}
.links{margin-top:22px;display:grid;gap:10px}
.ghost{display:block;width:100%;text-align:center;text-decoration:none;font-family:var(--gothic);font-size:13px;letter-spacing:.12em;
  padding:14px;border:1px solid rgba(30,51,72,.22);background:transparent;color:var(--ai);cursor:pointer}
.ghost.plain{border-color:transparent;opacity:.6}
.or{display:flex;align-items:center;gap:14px;max-width:360px;margin:38px auto 20px;font-size:11.5px;letter-spacing:.14em;opacity:.5}
.or::before,.or::after{content:"";flex:1;height:1px;background:currentColor;opacity:.4}
.center{text-align:center}
.foot{margin-top:44px}
.loading{padding:120px 0;text-align:center;font-size:12px;letter-spacing:.2em;opacity:.5}
