:root{--bg:#FFFFFF;--surface:#FFFFFF;--surface-hi:#F4F4F5;--sand:#F4F4F5;--line:#E4E4E7;--line-soft:#F0F0F1;--line-hi:#D4D4D8;--ink:#09090B;--ink-2:#3F3F46;--ink-3:#6B6B73;--ink-4:#C4C4C9;--accent:#09090B;--accent-hi:#000000;--accent-ink:#09090B;--accent-soft:#F0F0F1;--on-accent:#FFFFFF;--ok:#15803D;--ok-bg:#EAF7EE;--warn:#B45309;--warn-bg:#FDF6E3;--bad:#B91C1C;--bad-bg:#FDEDEC;--llm:#C2410C;--term-bg:#09090B;--term-ink:#FAFAFA;--term-ink-2:#A1A1AA;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--font-display:"IBM Plex Sans KR","Pretendard Variable","Apple SD Gothic Neo",sans-serif;--font-sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,"Segoe UI","Malgun Gothic",sans-serif;--font-mono:"JetBrains Mono","Cascadia Mono",Consolas,"D2Coding",monospace;--fs-label:11.5px;--fs-table:13.5px;--fs-body:14.5px;--fs-sub:16.5px;--fs-section:21px;--fs-page:32px;--fs-hero:64px;--fs-hero-narrow:40px;--radius:10px;--radius-pill:999px;--nav-w:220px;--content-max:1200px;--bp-narrow:720px;--drawer-w:360px;--pack-tree-w:240px;--pack-side-w:320px;--palette-w:480px;--palette-list-h:420px;--pick-list-h:420px;--filter-input-ch:26;--filter-input-w:calc(var(--filter-input-ch) * 1ch + var(--sp-3) * 2 + 2px);--shot-min:300px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink-2);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.55;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word}h1,h2,h3,h4{color:var(--ink);margin:0;line-height:1.2;text-wrap:balance}h1,h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em}h3,h4{font-family:var(--font-sans);font-weight:700;letter-spacing:-.01em}h1{font-size:var(--fs-page)}h2{font-size:var(--fs-section)}h3{font-size:var(--fs-sub)}p{margin:0}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}::selection{background:var(--sand);color:var(--ink)}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.pack-line:focus-visible{outline-offset:-2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.mono,code,pre{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.label{font-family:var(--font-sans);letter-spacing:.3px;white-space:nowrap}.label,.meta{font-size:var(--fs-label);color:var(--ink-3)}.ink{color:var(--ink)}.ink-3{color:var(--ink-3)}.ink-4{color:var(--ink-4)}.ink-bad{color:var(--bad)}.ink-ok{color:var(--ok)}.ink-warn{color:var(--warn)}.text-section{font-size:var(--fs-section)}.text-label{font-size:var(--fs-label)}.text-center{text-align:center}.grow{flex:1 1 auto;min-width:0}.pad{padding:var(--sp-5)}.pad-sm{padding:var(--sp-3)}.items-start,.row.items-start{align-items:flex-start}.drawer{width:var(--drawer-w);flex:0 0 var(--drawer-w)}.pack-tree{width:var(--pack-tree-w);flex:0 0 var(--pack-tree-w)}.pack-side{width:var(--pack-side-w);flex:0 0 var(--pack-side-w)}.scroll-x{overflow-x:auto;max-width:100%}.scroll-table-hint{display:none}.table td.cell-prose{min-width:20ch}.btn{font-family:inherit;font-size:var(--fs-body);font-weight:500;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-pill);border:1px solid var(--line-hi);background:var(--surface);cursor:pointer;white-space:nowrap}.btn,.btn:hover{color:var(--ink)}.btn:hover{background:var(--surface-hi);border-color:var(--ink-3)}.btn:disabled{cursor:not-allowed}.btn:disabled,.btn:disabled:hover{color:var(--ink-4);border-color:var(--line)}.btn:disabled:hover{background:var(--surface)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hi);border-color:var(--accent-hi);color:var(--on-accent)}.btn-primary:disabled{background:var(--surface);border-color:var(--line)}.btn-sm{font-size:var(--fs-table);padding:var(--sp-1) var(--sp-3)}.field{display:flex;flex-direction:column;gap:var(--sp-2)}.input,.select,.textarea{font-family:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--surface);border:1px solid var(--line-hi);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3);width:100%}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent-ink)}.input.mono{font-family:var(--font-mono)}.input-filter{width:var(--filter-input-w);max-width:100%}.textarea{resize:vertical;min-height:72px;line-height:1.6}.table{width:100%;border-collapse:collapse;font-size:var(--fs-table)}.table th{text-align:left;font-size:var(--fs-label);color:var(--ink-3);font-weight:500;letter-spacing:.3px;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:var(--sp-3);border-bottom:1px solid var(--line-soft);color:var(--ink-2);vertical-align:top}.table tbody tr:hover{background:var(--surface-hi)}.table tbody tr[aria-selected=true]{background:var(--accent-soft)}.chip{display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--fs-label);font-weight:500;padding:var(--sp-1) 0;border-radius:var(--radius-pill);border:1px solid transparent;color:var(--ink-2);white-space:nowrap}.chip-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-3);flex:0 0 auto}.tone-ok .chip-dot{background:var(--ok)}.tone-warn .chip-dot{background:var(--warn)}.tone-bad .chip-dot{background:var(--bad)}.tone-neutral .chip-dot{background:var(--ink-3)}.tone-llm{border-color:var(--line-hi);padding:var(--sp-1) var(--sp-2)}.tone-llm .chip-dot{background:var(--llm)}.note{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-table);color:var(--ink);line-height:1.5}.note.tone-bad{color:var(--bad)}.ctx-tag{display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-3);background:var(--surface-hi);border:1px solid var(--line-hi);border-radius:var(--radius);padding:0 var(--sp-2);align-self:flex-start}.shell{min-height:100vh}.nav,.shell{display:flex}.nav{width:var(--nav-w);flex:0 0 var(--nav-w);border-right:1px solid var(--line);background:var(--surface-hi);padding:var(--sp-5) var(--sp-4);flex-direction:column;gap:var(--sp-5)}.nav-link{display:block;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);color:var(--ink-3);font-size:var(--fs-table)}.nav-link:hover{background:var(--surface-hi);color:var(--ink-2);text-decoration:none}.nav-link[aria-current=page]{background:var(--accent-soft);color:var(--ink)}.nav-item{display:flex;flex-direction:column;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);border:1px solid transparent;border-left-width:3px}.nav-item[data-current=true]{background:var(--surface);border-color:var(--line);border-left-color:var(--ink)}.nav-project{font-size:var(--fs-sub);letter-spacing:-.01em;color:var(--ink)}.nav-item .nav-link,.nav-project{font-family:var(--font-display);font-weight:600}.nav-item .nav-link{padding:0;border-radius:0;font-size:var(--fs-body);color:var(--ink-2)}.nav-item .nav-link:hover,.nav-item .nav-link[aria-current=page]{background:transparent;color:var(--ink)}.nav-link-hint{font-size:var(--fs-label);color:var(--ink-3);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main{flex:1 1 auto;min-width:0;padding:var(--sp-6)}.main-inner{max-width:var(--content-max);display:flex;flex-direction:column;gap:var(--sp-5)}.demo-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-hi);color:var(--ink-3);font-size:var(--fs-label)}.demo-bar-link{color:var(--ink-2);text-decoration:underline;white-space:nowrap}.demo-bar-link:hover{color:var(--ink)}.demo-tour{border-top:1px solid var(--line);padding-top:var(--sp-4);color:var(--ink-3)}.conflict-head{font-size:var(--fs-section)}.sides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--sp-3);gap:var(--sp-3)}.side-title{font-size:var(--fs-sub);font-weight:600;color:var(--ink);line-height:1.35}.key-line{font-size:var(--fs-body);color:var(--ink);line-height:1.6}.key-line .key{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--ink-3);margin-right:var(--sp-2);white-space:nowrap}.key-line.jargon{font-size:var(--fs-table);color:var(--ink-2)}.key-line.jargon b{font-weight:600;color:var(--ink)}.ctx-rev{color:var(--ink-3);font-family:var(--font-sans)}.evidence-range{white-space:nowrap}.conflict-plain{font-size:var(--fs-body);color:var(--ink-2);line-height:1.65}.conflict-plain b{font-weight:700;color:var(--ink)}.plain-line{font-size:var(--fs-body);color:var(--ink-2);line-height:1.65}.item-card[data-op=add]{border-left:3px solid var(--ok)}.item-card[data-op=update]{border-left:3px solid var(--warn)}.item-card[data-op=deprecate]{border-left:3px solid var(--bad)}.diff-add-text{background:var(--ok-bg);color:var(--ok);font-weight:600;border-radius:var(--radius);padding:0 var(--sp-1)}.diff-del-text{text-decoration:line-through;color:var(--ink-3)}.side-name{font-family:var(--font-display);font-weight:600;font-size:var(--fs-section);letter-spacing:-.02em;line-height:1.25;color:var(--ink)}.side-card{border-top:3px solid var(--line-hi)}.side-card.side-ok{border-top-color:var(--ok)}.side-card.side-warn{border-top-color:var(--warn);background:var(--surface-hi)}.conflict-plain b.side-ok,.side-name.side-ok{color:var(--ok)}.conflict-plain b.side-warn,.side-name.side-warn{color:var(--warn)}.side-name.side-code{font-family:var(--font-mono);letter-spacing:0}.side-card.side-new{border-top-color:var(--ink)}.side-name.side-new{color:var(--ink)}.fact-line{font-size:var(--fs-body);color:var(--ink-2);line-height:1.6}.fact-line b{font-weight:600;color:var(--ink)}.milestone[data-status=done_candidate],.table tr[data-tone=warn]>td:first-child{border-left:3px solid var(--warn)}.milestone[data-status=done]{border-left:3px solid var(--ok)}.row-name{font-family:var(--font-display);font-weight:600;font-size:var(--fs-sub);letter-spacing:-.01em;color:var(--ink)}.conflict-card[data-severity=high]{border-left:3px solid var(--bad)}.chip.chip-strong{padding:var(--sp-1) var(--sp-2);font-weight:600}.chip.chip-strong.tone-ok{background:var(--ok-bg);color:var(--ok)}.chip.chip-strong.tone-warn{background:var(--warn-bg);color:var(--warn)}.chip.chip-strong.tone-bad{background:var(--bad-bg);color:var(--bad)}.chip.chip-strong.tone-neutral{background:var(--surface-hi);color:var(--ink)}.tour{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.tour-title{color:var(--ink);font-weight:600}.tour-step{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3);border:1px solid var(--line-hi);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-2)}.tour-step:hover{text-decoration:none;color:var(--ink);border-color:var(--ink-3)}.tour-step[aria-current=step]{background:var(--surface);border-color:var(--ink);color:var(--ink);font-weight:600}.tour-step-describe{font-weight:400;margin-left:var(--sp-1)}.tour-see{font-size:var(--fs-body);line-height:1.6}.center{min-height:100vh;align-items:center;justify-content:center}.center,.center-card{display:flex;padding:var(--sp-6)}.center-card{width:100%;max-width:440px;flex-direction:column;gap:var(--sp-5)}.skeleton{background:var(--surface-hi);border-radius:var(--radius);height:var(--sp-4);animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:.45}50%{opacity:.85}}.state-box{flex-direction:column;gap:var(--sp-3);align-items:flex-start;color:var(--ink-3);font-size:var(--fs-body)}.modal-backdrop,.state-box{display:flex;padding:var(--sp-6)}.modal-backdrop{position:fixed;inset:0;background:var(--bg);align-items:center;justify-content:center;z-index:10}.modal{width:100%;max-width:560px;padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.row{gap:var(--sp-3)}.row,.row-between{display:flex;align-items:center}.row-between{justify-content:space-between;gap:var(--sp-4)}.col{gap:var(--sp-3)}.col,.col-tight{display:flex;flex-direction:column}.col-tight{gap:var(--sp-2)}.wrap{flex-wrap:wrap}.pack-body{margin:0;padding:0 0 var(--sp-3) 0;font-size:var(--fs-table);line-height:1.7;white-space:normal}.pack-line{display:flex;align-items:flex-start;gap:var(--sp-3);width:100%;border:0;border-left:2px solid transparent;background:transparent;color:var(--ink-2);font:inherit;text-align:left;padding:0 var(--sp-3);cursor:pointer}.pack-line:hover{background:var(--surface-hi)}.pack-line[aria-selected=true]{background:var(--accent-soft);border-left-color:var(--accent-ink)}.pack-lineno{flex:0 0 auto;min-width:var(--sp-6);text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pack-linetext{white-space:pre-wrap;word-break:break-word}.pack-doc{padding:0 var(--sp-3) var(--sp-4)}.pack-block,.pack-doc{display:flex;flex-direction:column;gap:var(--sp-2)}.pack-block{padding:var(--sp-2) var(--sp-3);border-left:2px solid transparent;border-radius:var(--radius);cursor:pointer}.pack-block-plain{cursor:default}.pack-block:not(.pack-block-plain):hover{background:var(--surface-hi)}.pack-block[aria-selected=true]{background:var(--accent-soft);border-left-color:var(--accent-ink)}.context-doc{gap:var(--sp-5);padding:var(--sp-3) var(--sp-3) var(--sp-4)}.context-doc,.context-section{display:flex;flex-direction:column}.context-section{gap:var(--sp-2)}.context-section>header{padding-bottom:var(--sp-2);border-bottom:1px solid var(--line)}.context-section-title{font-size:var(--fs-sub);margin:0;display:flex;align-items:baseline;gap:var(--sp-2)}.context-section-title .meta{font-weight:400}.doc-item{padding:var(--sp-2) var(--sp-3);border-left:2px solid transparent;border-radius:var(--radius);cursor:pointer;display:flex;flex-direction:column;gap:var(--sp-1)}.doc-item:hover{background:var(--surface-hi)}.doc-item[aria-selected=true]{background:var(--accent-soft);border-left-color:var(--accent-ink)}.doc-item[data-tone=warn]{border-left-color:var(--warn)}.doc-item[data-tone=bad]{border-left-color:var(--bad)}.doc-item[data-tone=neutral]{border-left-color:var(--line-hi)}.doc-item-title{font-weight:600;color:var(--ink);font-size:var(--fs-body)}.doc-item-body{margin:0;color:var(--ink-2);font-size:var(--fs-table);line-height:1.6;white-space:pre-wrap}.doc-item-foot{align-items:center}.md h1{font-size:var(--fs-section);margin:var(--sp-2) 0 0}.md h2{font-size:var(--fs-sub);margin:var(--sp-3) 0 0}.md h3{font-size:var(--fs-body);font-weight:700;margin:var(--sp-2) 0 0}.md ol,.md p,.md ul{margin:0;font-size:var(--fs-body);line-height:1.7;color:var(--ink)}.md ol,.md ul{padding-left:var(--sp-5)}.md li+li{margin-top:var(--sp-1)}.md blockquote{margin:0;padding-left:var(--sp-3);border-left:3px solid var(--line-hi);color:var(--ink-2)}.md code{font-family:var(--font-mono);font-size:var(--fs-table);background:var(--surface-hi);border-radius:var(--radius);padding:0 var(--sp-1)}.md strong{font-weight:600;color:var(--ink)}.md table{border-collapse:collapse;font-size:var(--fs-table)}.md td,.md th{border:1px solid var(--line);padding:var(--sp-1) var(--sp-2);text-align:left}.btn[aria-pressed=true]{background:var(--surface-hi);border-color:var(--ink-3);color:var(--ink)}.diff-body{font-size:var(--fs-table);line-height:1.7;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.diff-line{display:flex;align-items:flex-start;gap:var(--sp-3);padding:0 var(--sp-3);border-left:2px solid transparent;color:var(--ink-2)}.diff-add{background:var(--ok-bg);border-left-color:var(--ok)}.diff-del{background:var(--bad-bg);border-left-color:var(--bad)}.diff-sign{flex:0 0 auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.diff-text{white-space:pre-wrap;word-break:break-word}.bar{height:var(--sp-2);background:var(--surface-hi);border:1px solid var(--line-hi);border-radius:var(--radius);overflow:hidden}.bar-fill{height:100%;background:var(--accent-ink);transition:width .3s ease-out}ol.col-tight,ul.col-tight{list-style:none;margin:0;padding:0}.legend{display:grid;grid-gap:var(--sp-2);gap:var(--sp-2);margin:0}.legend>div{display:flex;align-items:flex-start;gap:var(--sp-3)}.legend dd,.legend dt{margin:0}.import-grid{display:grid;grid-template-columns:minmax(0,1fr) var(--drawer-w);grid-gap:var(--sp-4);gap:var(--sp-4);align-items:start}.import-grid>.import-paste{grid-column:1}.import-grid>.import-progress{grid-column:2;grid-row:1}.import-grid>.import-questions{grid-column:1/-1}.pick-list{max-height:var(--pick-list-h);overflow-y:auto}.milestone .tree-item,.off-roadmap .tree-item{border:0;background:transparent;padding:0}.tree-item{white-space:normal;overflow-wrap:anywhere;text-align:left;gap:var(--sp-2);border-radius:var(--radius)}.tree-sha{white-space:nowrap;word-break:normal;flex:0 0 auto}.palette-backdrop{align-items:flex-start;padding-top:var(--sp-7)}.palette{max-width:var(--palette-w);gap:var(--sp-3)}.palette-list{display:flex;flex-direction:column;gap:var(--sp-1);max-height:var(--palette-list-h);overflow-y:auto}.palette-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius);color:var(--ink-2);font-size:var(--fs-table)}.palette-item:hover{text-decoration:none}.palette-item[aria-selected=true]{background:var(--accent-soft);color:var(--ink)}.palette-caret{flex:0 0 auto;width:var(--sp-1);height:var(--sp-4);border-radius:var(--radius-pill)}.palette-caret[data-active=true]{background:var(--ink)}.palette-group{padding:var(--sp-2) var(--sp-3) 0}.palette-note{padding:var(--sp-1) var(--sp-3) var(--sp-2)}.palette-trigger{display:flex;justify-content:space-between;gap:var(--sp-3)}@media (max-width:720px){.shell{flex-direction:column}.nav{width:auto;flex:0 0 auto;border-right:none;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4)}.nav .nav-links{display:none}.nav>.col-tight{min-width:0;overflow-wrap:anywhere;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-3)}.nav>.col-tight>.label{display:none}.row{flex-wrap:wrap}.drawer,.pack-side,.pack-tree{width:100%;flex:1 1 100%}.import-grid,.sides{grid-template-columns:1fr}.import-grid>.import-progress{grid-column:1;grid-row:auto}.nav .palette-trigger{flex:0 0 auto}.palette-hint{display:none}.scroll-table-hint{display:block}.roadmap-tiles{order:1}.demo-tour{order:9}.table td.mono,.table th{white-space:nowrap}.main{padding:var(--sp-4)}}