/* STEPI 2045 아카이브 · CMDSPACE v4.3 tokens */
:root{
  --accent:#134538; --accent-2:#1C6B54; --accent-on:#FFFFFF; --accent-light:#EAF3EF; --alert:#C0564F; --warn:#9A6A12;
  --ink:#1B1B1B; --sub:#5A6663; --line:#E3E8E6; --bg:#FFFFFF; --tint:#F3F7F5; --tint2:#EAF3EF; --pinkt:#FBEEF2;
  --font-sans:"SF Pro Display","SF Pro Text","Pretendard",-apple-system,system-ui,sans-serif;
  --font-mono:"SF Mono","JetBrains Mono",ui-monospace,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){ --accent:#E985A2; --accent-2:#F2A9BE; --accent-on:#161616; --accent-light:#2A1D22; --alert:#E88A80; --warn:#E0B45C;
    --ink:#ECEFEE; --sub:#9DAAA5; --line:#2A322F; --bg:#121615; --tint:#1B211F; --tint2:#241C21; --pinkt:#2A1D22; color-scheme:dark; }
}
:root[data-theme="dark"]{ --accent:#E985A2; --accent-2:#F2A9BE; --accent-on:#161616; --accent-light:#2A1D22; --alert:#E88A80; --warn:#E0B45C;
  --ink:#ECEFEE; --sub:#9DAAA5; --line:#2A322F; --bg:#121615; --tint:#1B211F; --tint2:#241C21; --pinkt:#2A1D22; color-scheme:dark; }
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);line-height:1.65;font-size:16.5px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,iframe{max-width:100%}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1120px;margin:0 auto;padding:0 32px}
/* header */
header.site{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hrow{display:flex;align-items:center;gap:12px;padding:12px 0 8px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:700;letter-spacing:-.01em;min-width:0}
.brand img{width:30px;height:30px;border-radius:50%;flex:none}
.brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand:hover{text-decoration:none}
.hrow .sp{flex:1}
.vbadge{font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px;border:1px solid var(--accent);color:var(--accent);white-space:nowrap}
.tgl{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--tint);color:var(--sub);cursor:pointer;display:grid;place-items:center;flex:none}
.tgl:hover{color:var(--ink)}
.tgl svg{width:17px;height:17px}
.tgl .sun{display:none}
:root[data-theme="dark"] .tgl .sun{display:block}:root[data-theme="dark"] .tgl .moon{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .tgl .sun{display:block}:root:not([data-theme="light"]) .tgl .moon{display:none}}
nav.pages{display:flex;gap:4px;overflow-x:auto;padding:0 0 10px;scrollbar-width:none}
nav.pages::-webkit-scrollbar{display:none}
nav.pages a{font-size:14px;color:var(--sub);padding:5px 11px;border-radius:999px;white-space:nowrap;font-weight:600}
nav.pages a:hover{background:var(--tint);color:var(--ink);text-decoration:none}
nav.pages a.on{background:var(--accent);color:var(--accent-on)}
/* hero */
.hero{padding:52px 0 30px}
.eyebrow{color:var(--accent);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
h1{font-size:clamp(28px,4.4vw,48px);font-weight:800;letter-spacing:-.03em;line-height:1.15;margin:10px 0 14px;text-wrap:balance}
.lead{color:var(--sub);font-size:18px;max-width:820px;text-wrap:pretty}
.accent-word{color:var(--accent)}
.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;border:1px solid var(--line);background:var(--tint);border-radius:999px;padding:4px 12px;color:var(--sub)}
.chip b{color:var(--ink)}
/* sections */
section{padding:40px 0;border-top:1px solid var(--line)}
.sec-h{display:flex;align-items:baseline;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.sec-n{font-family:var(--font-mono);color:var(--accent);font-weight:700;font-size:14px}
h2{font-size:clamp(21px,2.4vw,26px);font-weight:800;letter-spacing:-.02em}
h3{font-size:17px;font-weight:750;letter-spacing:-.01em;margin-bottom:6px}
.sec-lede{color:var(--sub);margin:-8px 0 18px;max-width:820px}
p+p{margin-top:10px}
/* notices */
.notice{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;background:var(--tint);padding:14px 18px;font-size:14.5px;color:var(--sub);text-wrap:pretty}
.notice.warn{border-left-color:var(--alert);background:var(--pinkt)}
.notice b{color:var(--ink)}
.notice ul{margin:6px 0 0 18px}
.synth{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.02em;border-radius:6px;padding:2px 7px;background:var(--pinkt);color:var(--alert);border:1px solid color-mix(in srgb,var(--alert) 35%,transparent);vertical-align:middle;white-space:nowrap}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:14.5px;border-radius:11px;padding:10px 16px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;font-family:inherit;white-space:nowrap}
.btn:hover{border-color:var(--accent);text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.btn.primary:hover{background:var(--accent-2)}
.btn small{font-weight:500;opacity:.75;font-size:12px}
.btns{display:flex;flex-wrap:wrap;gap:8px}
/* big call grid */
.calls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:14px}
.call{border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--bg);display:flex;flex-direction:column;gap:10px}
.call.hl{border-color:var(--accent);background:var(--tint2)}
.call .k{font-family:var(--font-mono);font-size:12px;color:var(--accent);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.call h3{font-size:19px;margin:0}
.call p{font-size:14px;color:var(--sub);flex:1}
/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:13px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}
.card{border:1px solid var(--line);border-radius:14px;padding:18px 20px;background:var(--bg);display:block;min-width:0}
a.card{color:inherit}
a.card:hover{border-color:var(--accent);text-decoration:none}
.card p,.card li{font-size:14.5px;color:var(--sub);text-wrap:pretty}
.card .u{font-family:var(--font-mono);font-size:12px;color:var(--accent);margin-top:8px;display:block;word-break:break-all}
.card.hl{border-color:var(--accent);background:var(--tint2)}
.card ul{margin:6px 0 0 18px}
.card .top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.date{font-family:var(--font-mono);font-size:12.5px;color:var(--accent);font-weight:700}
.badge{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700;border:1px solid var(--line);color:var(--sub);white-space:nowrap;vertical-align:middle}
.badge.s-draft{border-color:var(--warn);color:var(--warn)}
.badge.s-presented{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}
.badge.s-final,.badge.s-confirmed,.badge.s-done{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.badge.s-superseded{text-decoration:line-through;opacity:.8}
.badge.s-planned{border-style:dashed}
.badge.s-revised{border-color:var(--alert);color:var(--alert)}
.dref{font-family:var(--font-mono);font-size:11.5px;font-weight:700;border-radius:6px;padding:1px 6px;background:var(--tint);border:1px solid var(--line);color:var(--sub);white-space:nowrap;cursor:help}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.stat{background:var(--bg);padding:16px 18px}
.stat b{display:block;font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--accent)}
.stat span{font-size:13px;color:var(--sub)}
/* judgments */
.jlist{display:flex;flex-direction:column;gap:14px}
.judg{border:1px solid var(--line);border-radius:14px;padding:18px 20px;background:var(--bg)}
.judg .jh{display:flex;gap:12px;align-items:flex-start}
.jno{flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-on);display:grid;place-items:center;font-weight:800;font-size:14px}
.judg .claim{font-weight:700;font-size:16.5px;letter-spacing:-.01em;text-wrap:pretty}
.judg ul{margin:10px 0 0 42px;color:var(--sub);font-size:14.5px}
.judg li+li{margin-top:4px}
.judg .jf{margin:12px 0 0 42px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;color:var(--sub)}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:12px 0 0 42px}
.thumbs a{display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.thumbs img{display:block;width:100%;height:110px;object-fit:contain}
/* tables */
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:var(--tint);font-weight:700;font-size:13px;color:var(--sub);white-space:nowrap}
tr:last-child td{border-bottom:none}
td.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:13px}
td.num.hi{color:var(--accent);font-weight:800}
td.mono,.mono{font-family:var(--font-mono);font-size:12.5px;word-break:break-all}
.tcap{font-size:13px;color:var(--sub);margin-top:8px}
/* timeline */
.filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}
.filters button{font-family:inherit;font-size:13px;font-weight:600;border:1px solid var(--line);background:var(--bg);color:var(--sub);border-radius:999px;padding:5px 12px;cursor:pointer}
.filters button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.tl{border-left:2px solid var(--line);margin-left:8px;padding-left:26px;display:flex;flex-direction:column;gap:14px}
.tl .ev{position:relative}
.tl .ev::before{content:"";position:absolute;left:-33px;top:22px;width:12px;height:12px;border-radius:50%;background:var(--line);border:2px solid var(--bg)}
.tl .ev.key::before{background:var(--accent)}
.tl .ev.planned::before{background:var(--bg);border:2px dashed var(--accent)}
.tl .ev.hide{display:none}
.links{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.links a{font-size:12.5px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;color:var(--sub);background:var(--tint)}
.links a:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
/* experiments */
.exp{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--bg);scroll-margin-top:110px}
.exp dl{display:grid;grid-template-columns:92px 1fr;gap:6px 12px;font-size:14px;margin-top:10px}
.exp dt{color:var(--sub);font-weight:700;font-size:12.5px;padding-top:2px}
.exp dd{min-width:0}
.exp .kr{background:var(--tint2);border-radius:10px;padding:10px 12px;font-size:14.5px;margin-top:12px}
.exp ul{margin-left:18px}
/* figures */
.figs{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
figure.fig{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg);scroll-margin-top:110px;display:flex;flex-direction:column}
figure.fig .imgw{background:#fff;display:block;border-bottom:1px solid var(--line)}
figure.fig img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
figure.fig figcaption{padding:14px 16px;font-size:13.5px;color:var(--sub)}
figure.fig figcaption b.t{display:block;color:var(--ink);font-size:14.5px;margin-bottom:6px;text-wrap:pretty}
figure.fig details{margin-top:8px}
figure.fig summary{cursor:pointer;font-weight:700;color:var(--accent);font-size:13px}
figure.fig .blk{margin-top:8px}
figure.fig .blk i{font-style:normal;font-weight:700;color:var(--ink);font-size:12.5px}
figure.fig ul{margin:3px 0 0 16px}
.fid{font-family:var(--font-mono);font-size:11.5px;color:var(--sub)}
/* media */
.vids{display:grid;grid-template-columns:2fr 1fr;gap:16px;align-items:start}
.vids video{width:100%;border-radius:14px;border:1px solid var(--line);background:#000;display:block}
.cards10{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.pcard{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg)}
.pcard img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.pcard .pb{padding:10px 12px;font-size:13px;color:var(--sub)}
.pcard .pb b{color:var(--ink);display:block;font-size:13.5px}
/* report viewer */
.viewer{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--tint)}
.viewer iframe{display:block;width:100%;height:78vh;border:0;background:#fff}
.viewer .ph{padding:40px 20px;text-align:center;color:var(--sub)}
/* glossary */
.gl{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.gl div{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.gl b{display:block;margin-bottom:4px}
.gl p{font-size:14px;color:var(--sub)}
/* upcoming */
.upcoming .grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.upcoming .card{display:flex;flex-direction:column;gap:8px}
.upcoming .card p{flex:1}
.rank{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;color:var(--accent);font-weight:700}
/* footer */
footer{border-top:1px solid var(--line);padding:26px 0 46px;color:var(--sub);font-size:13px;line-height:1.75}
footer .fl{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:10px}
/* lightbox */
.lb{position:fixed;inset:0;background:rgba(0,0,0,.82);display:none;align-items:center;justify-content:center;z-index:60;padding:20px;cursor:zoom-out}
.lb.on{display:flex}
.lb img{max-width:100%;max-height:100%;background:#fff;border-radius:8px}
@media (max-width:760px){
  .wrap{padding:0 16px}
  body{font-size:16px}
  .hero{padding:34px 0 22px}
  .lead{font-size:16.5px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .grid.two{grid-template-columns:1fr}
  .vids{grid-template-columns:1fr}
  .judg ul,.judg .jf,.thumbs{margin-left:0}
  .exp dl{grid-template-columns:1fr;gap:2px}
  .exp dt{padding-top:8px}
  .figs{grid-template-columns:1fr}
  .vbadge{display:none}
  .tl{padding-left:20px}
  .tl .ev::before{left:-27px}
  .viewer iframe{height:70vh}
}
@media print{header.site,.tgl,nav.pages,.upcoming{display:none}}
td.nw{white-space:nowrap;word-break:normal}
section > ul{margin-left:22px}section > ul li+li{margin-top:4px}
