
:root {
  --white: #fbfaf7;
  --paper: #f2efe8;
  --ink: #17202b;
  --muted: #6b716d;
  --navy: #14253a;
  --gold: #aa8550;
  --green: #506b63;
  --line: rgba(23, 32, 43, 0.12);
  --shadow: 0 22px 64px rgba(17,31,51,.09);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Inter", "Noto Sans JP", system-ui, -apple-system, sans-serif;
  color: var(--ink);
  background: var(--white);
  letter-spacing: .02em;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
p { line-height: 1.95; }
h1,h2,h3 { margin: 0; font-weight: 400; }
h1 { font-size: clamp(52px, 7vw, 104px); line-height: .94; letter-spacing: -.045em; }
h2 { font-size: clamp(30px, 4.5vw, 60px); line-height: 1.08; letter-spacing: -.025em; }
h3 { font-size: clamp(21px, 2vw, 29px); line-height: 1.35; letter-spacing: -.015em; }

.page-title {
  font-size: 3.5rem;
}
.institute {
  letter-spacing: 0.01em;
}

.site-header {
  position: fixed; z-index: 30; top: 0; left: 0; width: 100%;
  min-height: 78px; padding: 18px clamp(22px,5vw,72px);
  display: flex; align-items: center; justify-content: space-between; gap: 30px;
  background: rgba(251,250,247,.88); backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(23,32,43,.07);
}
.brand { display: flex; align-items: baseline; gap: 12px; }
.brand span { font-size: 17px; font-weight: 600; letter-spacing: .08em; }
.brand small { color: var(--muted); font-size: 10px; letter-spacing: .17em; }
.nav { display: flex; gap: clamp(16px,3vw,36px); font-size: 13px; color: rgba(23,32,43,.72); }
.nav a:hover,.site-footer a:hover { color: var(--gold); }

.hero { min-height: 100vh; padding: 130px clamp(24px,6vw,96px) 70px; }
.home-hero { display: grid; grid-template-columns: minmax(380px,.88fr) minmax(460px,1.12fr); gap: clamp(30px,5vw,70px); align-items: center; }
.hero-copy-wrap { max-width: 720px; }
.eyebrow { margin: 0 0 18px; color: var(--gold); font-size: 12px; font-weight: 600; letter-spacing: .20em; text-transform: uppercase; }
.hero-lead { margin: 34px 0 0; max-width: 650px; color: rgba(23,32,43,.74); font-size: clamp(17px,1.5vw,21px); }
.hero-actions { display: flex; gap: 12px; margin-top: 36px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-width:135px; height:46px; padding:0 22px; border-radius:999px; font-size:12px; letter-spacing:.12em; transition:.2s ease; }
.button.primary { color:#fff; background:var(--navy); }
.button.ghost { border:1px solid var(--line); background:#fff; }
.button:hover { transform: translateY(-2px); }
.hero-visual { margin:0; position:relative; }
.hero-visual img { width:100%; height:min(68vh,720px); object-fit:cover; border-radius:3px; box-shadow:var(--shadow); }
.hero-visual figcaption,.project-board figcaption { margin-top:10px; color:var(--muted); font-size:11px; letter-spacing:.08em; }

.section { padding: clamp(82px,10vw,150px) clamp(24px,7vw,110px); }
.split { display:grid; grid-template-columns:minmax(260px,.75fr) minmax(320px,1fr); gap:clamp(42px,8vw,110px); align-items:start; }
.text-block { color:rgba(23,32,43,.74); font-size:clamp(15px,1.2vw,18px); }
.section-heading { max-width:900px; margin-bottom:48px; }
.section-heading.narrow { max-width:760px; }
.lead { color:rgba(23,32,43,.7); font-size:clamp(15px,1.25vw,18px); }
.text-link { display:inline-block; margin-top:22px; padding-bottom:5px; border-bottom:1px solid var(--gold); color:var(--navy); font-size:13px; letter-spacing:.08em; }
.cards-section { background:var(--paper); }
.quiet-section { background:var(--navy); color:#fff; }
.quiet-section .lead { color:rgba(255,255,255,.7); }
.quiet-section .text-link { color:#fff; }
.fiction-preview { border-top:1px solid var(--line); }

.visual-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.visual-card { background:#fff; border:1px solid var(--line); display:flex; flex-direction:column; min-height:560px; transition:.25s ease; }
.visual-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.visual-card-image { height:300px; overflow:hidden; background:#e9ece9; }
.visual-card-image img { width:100%; height:100%; object-fit:cover; }
.visual-card:nth-child(1) .visual-card-image img { object-position:center; }
.visual-card:nth-child(2) .visual-card-image img { object-position:center; }
.visual-card-copy { padding:26px; display:flex; flex:1; flex-direction:column; }
.visual-card-copy span,.simple-item span,.project-notes span { color:var(--gold); font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.visual-card-copy h3 { margin:13px 0 16px; }
.visual-card-copy p { margin:auto 0 0; color:rgba(23,32,43,.67); font-size:14px; }
.abstract-panel { height:300px; padding:30px; background:linear-gradient(145deg,var(--navy),#345348); color:#fff; display:flex; flex-direction:column; justify-content:space-between; }
.abstract-panel b { font-weight:400; font-size:42px; line-height:1.05; letter-spacing:-.04em; }
.abstract-panel em { color:#dcc69e; font-style:normal; font-size:14px; letter-spacing:.16em; }

.sub-hero { padding:180px clamp(24px,7vw,110px) 92px; background:linear-gradient(115deg,#fbfaf7 0%,#f4eee4 62%,#e4ebe7 100%); }
.sub-hero p:not(.eyebrow) { max-width:790px; color:rgba(23,32,43,.72); font-size:clamp(16px,1.35vw,20px); }
.sub-hero h1 { margin-bottom:28px; }
.fiction-hero { background:linear-gradient(115deg,#fbfaf7,#eee7db 55%,#dfe6e1); }

.report-feature { display:grid; grid-template-columns:minmax(240px,.55fr) minmax(420px,1fr); gap:clamp(50px,8vw,110px); align-items:start; }
.report-no { min-height:360px; padding:30px; color:#fff; background:var(--navy); display:flex; flex-direction:column; justify-content:space-between; font-size:14px; letter-spacing:.10em; }
.report-no strong { color:#d8bf92; font-size:56px; font-weight:300; letter-spacing:-.04em; }
.status { display:inline-block; margin-top:22px; color:var(--green); font-size:12px; letter-spacing:.1em; }
.simple-grid { display:grid; gap:18px; }
.simple-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.simple-item { min-height:250px; padding:28px; background:#fff; border:1px solid var(--line); }
.simple-item h3 { margin:18px 0 14px; }
.simple-item p { color:rgba(23,32,43,.67); font-size:14px; }

.project-detail { border-bottom:1px solid var(--line); }
.project-detail.alternate { background:var(--paper); }
.project-title { max-width:900px; margin-bottom:46px; }
.project-title .lead { max-width:760px; }
.project-board { margin:0; }
.project-board img { width:100%; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); }
.helper-board img { max-height:900px; object-fit:contain; }
.project-notes { margin-top:34px; display:grid; gap:18px; }
.three-col { grid-template-columns:repeat(3,minmax(0,1fr)); }
.project-notes article { padding:24px 0; border-top:1px solid var(--line); }
.project-notes h3 { margin:14px 0 12px; font-size:22px; }
.project-notes p { color:rgba(23,32,43,.68); font-size:14px; }
.notice { padding:34px clamp(24px,7vw,110px); background:#ede9e1; color:var(--muted); font-size:12px; }
.notice p { max-width:1000px; margin:0; }

.about-meta p {
  margin: 0;
}
.about-meta p + p {
  margin-top: 4px;
}

.brand-logo-ncc {
  height: 64px;
  width: auto;
  display: block;
}

.project-date {
  margin-top: 40px;
  font-size: 10px;
  letter-spacing: 0.08em;
  color: #777;
}
.site-meta {
  margin: 0 0 32px;
  font-size: 10px;
  letter-spacing: 0.06em;
  color: #777;
}

.site-footer { padding:40px clamp(24px,7vw,110px); border-top:1px solid var(--line); display:grid; grid-template-columns:1fr auto auto; gap:30px; align-items:center; color:rgba(23,32,43,.68); font-size:12px; }
.site-footer strong { color:var(--ink); font-weight:600; letter-spacing:.08em; }
.site-footer span { font-size:11px; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:18px; }

@media (max-width: 980px) {
  .home-hero,.split,.report-feature { grid-template-columns:1fr; }
  .hero { min-height:auto; }
  .hero-visual img { height:min(58vh,620px); }
  .visual-cards,.simple-grid.three,.three-col { grid-template-columns:1fr 1fr; }
  .visual-card { min-height:auto; }
  .site-footer { grid-template-columns:1fr; }
}
@media (max-width: 680px) {
  .site-header { align-items:flex-start; padding:14px 18px; }
  .brand { flex-direction:column; gap:1px; }
  .nav { gap:12px; font-size:11px; overflow-x:auto; white-space:nowrap; }
  .hero { padding:128px 20px 58px; }
  .home-hero { gap:34px; }
  h1 { font-size:clamp(50px,16vw,76px); }
  .section,.sub-hero { padding-left:20px; padding-right:20px; }
  .visual-cards,.simple-grid.three,.three-col { grid-template-columns:1fr; }
  .visual-card-image,.abstract-panel { height:250px; }
  .site-footer { padding-left:20px; padding-right:20px; }
}
