
:root{
  --forest:#16221a; --forest-2:#1e2f24; --gold:#b39240; --gold-dim:#8a7130;
  --moss:#55665c; --paper:#eef0ea; --card:#ffffff; --rule:#d3d8cf; --ink:#1a231d;
  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --serif:"IBM Plex Serif",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16.5px;line-height:1.62;
  -webkit-font-smoothing:antialiased}
.wrap{max-width:64rem;margin:0 auto;padding:0 1.6rem}
a{color:inherit}

/* ---------- masthead ---------- */
.top{background:var(--forest);color:#e8ece6}
.top .wrap{display:flex;align-items:center;justify-content:space-between;
  gap:1.5rem;padding-top:1.15rem;padding-bottom:1.15rem;flex-wrap:wrap}
.brand{font-family:var(--serif);font-size:1.22rem;letter-spacing:-.01em;
  text-decoration:none;line-height:1.2}
.brand em{font-style:normal;color:var(--gold)}
.nav{display:flex;gap:1.6rem;font-family:var(--mono);font-size:.79rem;
  letter-spacing:.06em;text-transform:uppercase}
.nav a{text-decoration:none;color:#b9c4bb;padding-bottom:2px;border-bottom:1px solid transparent}
.nav a:hover{color:#fff}
.nav a[aria-current="page"]{color:var(--gold);border-bottom-color:var(--gold)}

/* ---------- hero ---------- */
.hero{background:var(--forest);color:#eef1ec;position:relative;overflow:hidden;
  padding:5.5rem 0 5rem;border-bottom:1px solid #24352a}
.hero::before{content:"";position:absolute;inset:0;
  background:url("hero.jpg") right center/cover no-repeat;opacity:.62;
  filter:grayscale(.25) contrast(1.06) saturate(.9)}
.hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,var(--forest) 22%,rgba(22,34,26,.86) 44%,rgba(22,34,26,.12) 100%)}
.hero .wrap{position:relative;z-index:1}
.kicker{font-family:var(--mono);font-size:.76rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);margin:0 0 1.5rem}
.hero h1{font-family:var(--serif);font-weight:400;
  font-size:clamp(2.1rem,5.2vw,3.5rem);line-height:1.12;letter-spacing:-.02em;
  margin:0 0 1.4rem;max-width:20ch}
.hero p{font-size:1.06rem;max-width:46ch;color:#c9d2c9;margin:0 0 2.2rem}
.btn{display:inline-block;font-family:var(--mono);font-size:.82rem;
  letter-spacing:.08em;text-transform:uppercase;text-decoration:none;
  padding:.72rem 1.35rem;border:1px solid var(--gold);color:var(--gold);
  border-radius:2px;transition:background .15s,color .15s}
.btn:hover{background:var(--gold);color:var(--forest)}
.btn.solid{background:var(--gold);color:var(--forest)}
.btn.solid:hover{background:transparent;color:var(--gold)}
.btn.dark{border-color:var(--forest);color:var(--forest)}
.btn.dark:hover{background:var(--forest);color:var(--paper)}

/* ---------- page banner (하위 페이지) — 히어로와 같은 전체 배경 ---------- */
.banner{background:var(--forest);color:#eef1ec;position:relative;overflow:hidden;
  padding:6.6rem 0 6.2rem;border-bottom:1px solid #24352a}
.banner::before{content:"";position:absolute;inset:0;
  background-position:right center;background-size:cover;background-repeat:no-repeat;
  opacity:1;filter:grayscale(.12) contrast(1.06) saturate(.95) brightness(1.28)}
.banner::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,var(--forest) 22%,rgba(22,34,26,.86) 44%,rgba(22,34,26,.12) 100%)}
.banner .wrap{position:relative;z-index:1}
.banner h1{font-family:var(--serif);font-weight:400;
  font-size:clamp(1.75rem,4vw,2.6rem);line-height:1.15;letter-spacing:-.02em;
  margin:0 0 .6rem;max-width:22ch}
.banner p{margin:0;color:#c3ccc3;max-width:46ch;font-size:1rem}
.banner .kicker{margin-bottom:1rem}
#b-reports::before{background-image:url("reports.jpg")}
#b-platform::before{background-image:url("platform.jpg")}
#b-about::before{background-image:url("about.jpg");background-position:right 30%}
@media (max-width:760px){.banner{padding:3.2rem 0 3rem}}

/* ---------- continuity band (signature) ---------- */
.streak{background:var(--forest-2);color:#dfe5df;padding:2.2rem 0;
  border-bottom:1px solid #24352a}
.streak h2{font-family:var(--mono);font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;color:#8d9c8f;font-weight:500;margin:0 0 1.1rem}
.ticks{display:flex;flex-wrap:wrap;gap:3px;margin:0 0 1rem;padding:0;list-style:none}
.ticks li{width:9px;height:22px;border-radius:1px;background:var(--gold);opacity:.85}
.ticks li.w{background:#e0cf94}
.streak p{margin:0;font-family:var(--mono);font-size:.84rem;color:#b6c2b7}
.streak b{color:var(--gold);font-weight:500}

/* ---------- sections ---------- */
section{padding:4.2rem 0;border-bottom:1px solid var(--rule)}
section:last-of-type{border-bottom:0}
.eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);margin:0 0 1rem}
h2.head{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,3.2vw,2.05rem);
  line-height:1.2;letter-spacing:-.015em;margin:0 0 1.1rem;max-width:24ch}
.lead{font-size:1.02rem;color:#3d4a41;max-width:56ch;margin:0 0 2rem}
p{margin:0 0 1.05rem}
.body-col{max-width:60ch}
h3{font-family:var(--serif);font-weight:400;font-size:1.22rem;margin:2rem 0 .6rem;
  letter-spacing:-.01em}

/* ---------- cards ---------- */
.grid{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);
  grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.card{background:var(--card);padding:1.7rem 1.5rem}
.card .tag{font-family:var(--mono);font-size:.71rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold-dim);display:block;margin-bottom:.65rem}
.card h3{font-family:var(--serif);font-size:1.16rem;margin:0 0 .55rem;font-weight:400}
.card p{font-size:.93rem;color:#44514a;margin:0 0 .9rem}
.card a.more{font-family:var(--mono);font-size:.79rem;text-decoration:none;
  color:var(--gold-dim);border-bottom:1px solid var(--rule)}
.card a.more:hover{border-bottom-color:var(--gold-dim)}

/* ---------- coverage threads ---------- */
.thread{border-top:1px solid var(--rule);padding:1.5rem 0 .3rem}
.thread:first-of-type{border-top:1px solid var(--forest)}
.thread .tag{font-family:var(--mono);font-size:.71rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold-dim);display:block;margin-bottom:.45rem}
.thread h3{font-family:var(--serif);font-weight:400;font-size:1.2rem;margin:0 0 .55rem;
  letter-spacing:-.01em}
.thread p{max-width:62ch;color:#3d4a41;font-size:.97rem;margin:0}

/* ---------- live signals ---------- */
ul.signals{list-style:none;margin:1.6rem 0 0;padding:0;border-top:1px solid var(--rule)}
ul.signals li{padding:.95rem 0;border-bottom:1px solid var(--rule);
  display:grid;grid-template-columns:13rem 1fr;gap:1.2rem;align-items:baseline}
.sig-meta{font-family:var(--mono);font-size:.76rem;letter-spacing:.05em;
  text-transform:uppercase;color:var(--gold-dim)}
.sig-title{font-size:.98rem;line-height:1.5}
@media (max-width:640px){ul.signals li{grid-template-columns:1fr;gap:.25rem}}

/* ---------- work table ---------- */
table.work{width:100%;border-collapse:collapse;background:var(--card);
  border:1px solid var(--rule);font-size:.95rem}
table.work th{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--moss);font-weight:500;text-align:left;
  padding:.8rem 1rem;border-bottom:1px solid var(--rule);background:#f7f8f4}
table.work td{padding:.72rem 1rem;border-bottom:1px solid #e6e9e2;
  font-variant-numeric:tabular-nums}
table.work tbody tr:last-child td{border-bottom:0}
table.work td:first-child{font-family:var(--mono);font-size:.86rem;color:var(--moss)}
@media (max-width:560px){table.work th,table.work td{padding:.6rem .55rem;font-size:.86rem}}

/* ---------- figures ---------- */
.figs{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);
  grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));margin:0 0 2rem}
.fig{background:var(--card);padding:1.4rem 1.3rem}
.fig b{display:block;font-family:var(--serif);font-size:1.9rem;font-weight:400;
  color:var(--forest);line-height:1;margin-bottom:.5rem}
.fig span{font-family:var(--mono);font-size:.72rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--moss);line-height:1.45;display:block}

/* ---------- definition rows ---------- */
dl.rows{margin:0;border-top:1px solid var(--rule)}
dl.rows div{display:grid;grid-template-columns:11rem 1fr;gap:1.2rem;
  padding:.85rem 0;border-bottom:1px solid var(--rule)}
dl.rows dt{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--moss);margin:0}
dl.rows dd{margin:0;font-size:.96rem}

/* ---------- callout ---------- */
.callout{background:var(--forest);color:#e4e9e4;padding:2.6rem 0}
.callout h2{font-family:var(--serif);font-weight:400;font-size:1.55rem;
  margin:0 0 .8rem;letter-spacing:-.01em}
.callout p{color:#b8c3b9;max-width:52ch;margin:0 0 1.6rem}

/* ---------- footer ---------- */
footer{background:var(--forest);color:#93a295;padding:2.8rem 0 3.4rem;
  font-size:.9rem;border-top:1px solid #24352a}
footer .cols{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
  margin-bottom:2rem}
footer h4{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:#6f7d71;font-weight:500;margin:0 0 .7rem}
footer a{color:#c3cdc4;text-decoration:none;display:block;padding:.16rem 0}
footer a:hover{color:var(--gold)}
footer .fine{border-top:1px solid #24352a;padding-top:1.4rem;font-size:.83rem;color:#6f7d71}

a:focus-visible,.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media (max-width:640px){
  .nav{gap:1.05rem;font-size:.73rem}
  section{padding:3rem 0}
  dl.rows div{grid-template-columns:1fr;gap:.2rem}
  .hero{padding:3.6rem 0 3.2rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}
