/* Realdata — clean light tone (v2: single teal accent) */
:root { --ink:#141b26; --ink-2:#3b4757; --muted:#5b6b80; --line:#e6eaf0; --bg-2:#f6f8fb; --accent:#007f78; --accent-bright:#00a89f; --accent-soft:#b3e2de; --accent-tint:#e3f4f2; }
* { box-sizing: border-box; }
body { margin:0; background:#fff; color:#141b26; font-family:'Pretendard Variable',Pretendard,sans-serif; line-height:1.65; word-break:keep-all; text-wrap:pretty; }
h1, h2, h3 { text-wrap:balance; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--accent); }
.container { max-width:1120px; margin:0 auto; padding:0 24px; }
.eyebrow { font-family:'IBM Plex Mono','Pretendard Variable',Pretendard,monospace; font-size:12px; letter-spacing:0.22em; font-weight:600; margin-bottom:14px; color:var(--accent); }
.site-header { position:sticky; top:0; z-index:100; background:rgba(255,255,255,0.9); backdrop-filter:blur(14px); border-bottom:1px solid #e6eaf0; }
.header-inner { display:flex; align-items:center; justify-content:space-between; height:66px; }
.nav { display:flex; align-items:center; gap:30px; font-size:14.5px; font-weight:500; color:#3b4757; }
.nav a.active { color:#141b26; font-weight:700; }
.nav .btn-contact { font-family:'IBM Plex Mono','Pretendard Variable',Pretendard,monospace; font-size:12.5px; color:#141b26; border:1px solid #141b26; padding:7px 17px; border-radius:99px; font-weight:600; transition:background .2s ease, color .2s ease; }
.nav .btn-contact:hover { background:#141b26; color:#fff; }
.card { background:#fff; border:1px solid #e6eaf0; border-radius:14px; }
.hover-lift { transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.hover-lift:hover { border-color:var(--accent-soft); transform:translateY(-3px); box-shadow:0 12px 32px rgba(20,27,38,0.08); color:inherit; }
.btn-primary { display:inline-flex; align-items:center; gap:8px; font-size:15.5px; font-weight:600; padding:13px 26px; border-radius:10px; border:1px solid #141b26; color:#fff; background:#141b26; transition:background .2s ease, border-color .2s ease; }
.btn-primary:hover { background:#2a3444; border-color:#2a3444; color:#fff; }
.btn-ghost { display:inline-flex; align-items:center; gap:8px; font-size:15.5px; font-weight:600; padding:13px 26px; border-radius:10px; border:1px solid #d5dbe4; color:#141b26; transition:background .2s ease; }
.btn-ghost:hover { background:#f6f8fb; color:#141b26; }
.badge { font-family:'IBM Plex Mono','Pretendard Variable',Pretendard,monospace; font-size:11px; padding:4px 10px; border-radius:99px; border:1px solid #dfe4ec; color:var(--accent); white-space:nowrap; background:#fff; }
.badge.dim { color:#5b6b80; }
.hero { padding:104px 0 0; }
.hero-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:48px; align-items:center; padding-bottom:96px; }
.hero-visual { justify-self:end; width:100%; max-width:480px; border:1px solid var(--line); border-radius:16px; background:#fbfcfd; padding:10px 8px 6px; }
.hero-visual svg { display:block; width:100%; height:auto; }
.hv-line { stroke-dasharray:900; stroke-dashoffset:900; animation:hv-draw 1.4s cubic-bezier(.4,0,.2,1) .2s forwards; }
.hv-area, .hv-marks { opacity:0; animation:hv-fade .6s ease 1.2s forwards; }
@keyframes hv-draw { to { stroke-dashoffset:0; } }
@keyframes hv-fade { to { opacity:1; } }
@media (prefers-reduced-motion: reduce) { .hv-line { stroke-dashoffset:0; animation:none; } .hv-area, .hv-marks { opacity:1; animation:none; } }
.stats { border-top:1px solid #e6eaf0; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.stats > div { padding:26px 0; }
.stat-num { font-family:'IBM Plex Mono','Pretendard Variable',Pretendard,monospace; font-size:30px; font-weight:600; letter-spacing:-0.03em; color:#141b26; line-height:1.1; }
.stat-label { margin-top:6px; font-size:13.5px; color:#5b6b80; }
.logo-chip { display:flex; align-items:center; justify-content:center; height:78px; background:#fff; border:1px solid #e6eaf0; border-radius:12px; }
.logo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; }
.filter-btn { font-family:'IBM Plex Mono','Pretendard Variable',Pretendard,monospace; font-size:12.5px; font-weight:600; padding:9px 20px; border-radius:99px; cursor:pointer; background:#fff; color:#3b4757; border:1px solid #d5dbe4; }
.filter-btn.active { background:#141b26; color:#fff; border-color:#141b26; }
.uc-card { cursor:pointer; align-self:start; transition:border-color .25s ease; }
.uc-card:hover { border-color:var(--accent-soft); }
.uc-more { font-size:11px; color:#5b6b80; transition:color .2s ease; }
.uc-card:hover .uc-more { color:var(--accent); }
.uc-detail { display:none; border-top:1px solid #e6eaf0; padding-top:12px; flex-direction:column; gap:8px; }
.uc-card.open .uc-detail { display:flex; }
@media (max-width: 900px) {
  .g2, .g3, .g4, .feat-grid, .hero-grid { grid-template-columns:1fr !important; }
  .hero { padding-top:72px; }
  .hero-grid { gap:40px; padding-bottom:64px; }
  .hero-visual { max-width:none; justify-self:stretch; padding:10px 6px 4px; }
  .stats { grid-template-columns:1fr 1fr; gap:0 24px; }
  .stats > div { padding:18px 0; }
  .nav { gap:16px; font-size:13.5px; }
  .nav .btn-contact { display:none; }
  .header-inner > a img { height:18px !important; margin-right:12px; }
  .hero-copy br { display:none; }
}
.site-footer { background:#fff; color:var(--muted); padding:34px 0; font-size:13px; border-top:1px solid var(--line); }
.footer-inner { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; align-items:center; }
.subhero { padding:100px 0 64px; border-bottom:1px solid #e6eaf0; }
.subhero h1 { margin:0; font-size:clamp(32px,4.6vw,50px); font-weight:800; letter-spacing:-0.03em; line-height:1.25; color:#141b26; }
.subhero p { margin:20px 0 0; font-size:17px; color:#5b6b80; max-width:560px; }
