/* ══ HOME: HERO ══ */
.hero{position:relative;height:calc(100vh - var(--nav));overflow:hidden;display:flex;align-items:flex-end;}

/* 東京夜景スライドショー */
.slide{position:absolute;inset:0;opacity:0;
  background-size:cover;background-position:center;
  filter:brightness(.3) saturate(.7);
  transition:opacity 1.6s ease-in-out;
  animation:kb 16s ease-out forwards;}
.slide.on{opacity:1;}
@keyframes kb{0%{transform:scale(1.07);}100%{transform:scale(1.0);}}

/* グリッド走査線 */
.scanlines{position:absolute;inset:0;z-index:1;
  background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.13) 3px,rgba(0,0,0,.13) 4px);pointer-events:none;}
.vig{position:absolute;inset:0;z-index:2;background:radial-gradient(ellipse at 55% 45%,transparent 25%,rgba(8,12,16,.6) 100%);}
.grad{position:absolute;inset:0;z-index:3;background:linear-gradient(to top,rgba(8,12,16,1) 0%,rgba(8,12,16,.5) 32%,transparent 62%);}

/* 右側インジケーター縦バー */
.slide-dots{position:absolute;right:44px;bottom:88px;z-index:20;display:flex;flex-direction:column;gap:7px;}
.sd{width:2px;height:22px;background:rgba(255,255,255,.17);cursor:pointer;transition:all .3s;}
.sd.on{background:var(--gold);height:34px;}

/* 左下ロケーション */
.hero-loc{position:absolute;left:60px;bottom:24px;z-index:20;
  font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:rgba(255,255,255,.18);
  display:flex;align-items:center;gap:10px;}
.hero-loc::before{content:'';width:18px;height:1px;background:rgba(255,255,255,.13);}

/* 右上フロートキーワード */
.kwrap{position:absolute;top:52px;right:52px;z-index:20;display:flex;flex-direction:column;gap:7px;align-items:flex-end;}
.kw{font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:rgba(196,150,58,.32);border:1px solid rgba(196,150,58,.1);padding:3px 9px;}

/* コンテンツ */
.hero-inner{position:relative;z-index:10;padding:0 60px 68px;max-width:780px;}
.hlabel{font-family:var(--mono);font-size:9px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;margin-bottom:22px;display:flex;align-items:center;gap:11px;}
.hlabel::before{content:'';display:block;width:26px;height:1px;background:var(--gold);}
.hh{font-family:var(--serif);font-size:50px;font-weight:200;color:#fff;line-height:1.22;letter-spacing:.02em;margin-bottom:18px;}
.hh em{font-style:normal;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.42);}
.hsub{font-size:13px;font-weight:300;color:rgba(255,255,255,.42);line-height:2;max-width:520px;margin-bottom:36px;}
.hbtns{display:flex;gap:12px;}
.hbtn{font-family:var(--mono);font-size:10px;letter-spacing:.13em;color:#000;background:var(--gold);padding:13px 30px;border:none;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block;}
.hbtn:hover{background:#e0ac44;}
.hbtn2{font-family:var(--mono);font-size:10px;letter-spacing:.13em;color:var(--ink2);background:transparent;border:1px solid var(--border2);padding:13px 30px;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block;}
.hbtn2:hover{border-color:var(--ink2);color:var(--ink);}

/* STAT BAND */
.sband{background:var(--bg2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:grid;grid-template-columns:repeat(4,1fr);}
.sc{padding:34px 38px;border-right:1px solid var(--border);}
.sc:last-child{border-right:none;}
.sn{font-family:var(--mono);font-size:28px;font-weight:700;color:var(--gold);letter-spacing:-.02em;margin-bottom:5px;}
.sl{font-size:10px;font-weight:300;color:var(--ink3);letter-spacing:.05em;line-height:1.9;}

/* TICKER */
.ticker{background:var(--bg2);border-bottom:1px solid var(--border);padding:20px 0;overflow:hidden;}
.track{display:flex;gap:56px;animation:scrl 22s linear infinite;white-space:nowrap;}
@keyframes scrl{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.ti{font-family:var(--mono);font-size:9px;letter-spacing:.11em;color:var(--ink3);text-transform:uppercase;display:flex;align-items:center;gap:11px;flex-shrink:0;}
.td{width:3px;height:3px;border-radius:50%;background:var(--gold);}

/* WHAT WE DO */
.hwg{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);margin-top:44px;}
.hc{background:var(--bg);padding:38px;display:flex;flex-direction:column;gap:13px;transition:background .2s;}
.hc:hover{background:var(--surface);}
.icon{width:42px;height:42px;border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;}
.icon svg{width:19px;height:19px;stroke:var(--gold);fill:none;stroke-width:1.4;stroke-linecap:round;}
.ht{font-family:var(--serif);font-size:17px;font-weight:300;color:var(--ink);}
.hd{font-size:12px;font-weight:300;color:var(--ink2);line-height:2.1;}

/* RESEARCH FIGS */
.fg{display:grid;grid-template-columns:3fr 2fr;gap:2px;margin-top:44px;}
.fi2{position:relative;overflow:hidden;background:var(--surface);}
.fi2 img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s;}
.fi2:hover img{transform:scale(1.03);}
.fm{min-height:420px;}
.fs{min-height:420px;}
.fc{position:absolute;bottom:0;left:0;right:0;padding:18px 22px;background:linear-gradient(transparent,rgba(8,12,16,.9));}
.ftag{font-family:var(--mono);font-size:8px;letter-spacing:.13em;color:var(--gold);text-transform:uppercase;margin-bottom:4px;}
.ftitle{font-family:var(--serif);font-size:13px;font-weight:300;color:rgba(255,255,255,.85);line-height:1.7;}
.fsrc{font-family:var(--mono);font-size:8px;color:rgba(255,255,255,.28);margin-top:3px;}
.flink{position:absolute;top:12px;right:12px;font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:rgba(196,150,58,.46);border:1px solid rgba(196,150,58,.18);padding:3px 8px;text-decoration:none;transition:all .2s;}
.flink:hover{color:var(--gold);border-color:var(--gold);}
