/* Pretendard 1.3.9 official KS X 1001 subsets, 3 weights (400/600/700). Files are vendored; no external request. */
@font-face{font-family:Pretendard;src:url('../assets/Pretendard-Regular.subset.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Pretendard;src:url('../assets/Pretendard-SemiBold.subset.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Pretendard;src:url('../assets/Pretendard-Bold.subset.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
:root {
  color-scheme:light;--bg:#f6f7f9;--paper:#fff;--tint:#eef2f8;--ink:#26334a;
  --muted:#788498;--line:#e0e5ed;--accent:#315bb4;--pale:#eaf0fd;--nav:#142745;
  font-family:Pretendard,'Segoe UI',system-ui,sans-serif;
  font-size:14px;color:var(--ink);background:var(--bg);
}
html[data-theme=dark]{color-scheme:dark;--bg:#172236;--paper:#202f46;--tint:#293a55;--ink:#e9eff9;--muted:#a5b5cb;--line:#364a67;--accent:#a0baff;--pale:#2d4168;--nav:#10213b}
*{box-sizing:border-box;min-width:0}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{min-height:40px}h1,h2,h3,p{margin:0}button:disabled{cursor:wait}button:hover{filter:brightness(.98)}[hidden]{display:none!important}
.preview-notice{position:relative;z-index:5;background:#e9edf4;border-bottom:1px solid #dce3ee;color:#52627a;font-size:11px;line-height:1.7;padding:8px 28px;text-align:center}.preview-notice span{margin-left:12px;color:#738097}
.workspace{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:calc(100vh - 35px)}
.sidebar{background:var(--nav);color:#d8e2f4;padding:38px 22px 27px;display:flex;flex-direction:column;gap:42px}
.brand{display:flex;align-items:center;gap:12px;padding-left:7px}.brand-mark{font-family:Georgia,serif;font-size:32px;width:37px;height:43px;border:1px solid #91a8d0;display:grid;place-items:center;color:#f7faff}.brand>span:last-child{font-size:9px;letter-spacing:.23em;font-weight:600;color:#a9bbd9}.brand strong{display:block;font-size:24px;letter-spacing:-.03em;color:#fff;margin-top:3px;font-weight:600}
.workspace-label{font-size:9px;letter-spacing:.12em;color:#7d96bd;padding:0 8px;margin-top:7px}.main-nav{display:grid;gap:8px;margin-top:-25px}.nav-item{display:flex;align-items:center;gap:15px;border:0;border-radius:8px;background:transparent;color:#aebfdb;text-align:left;padding:14px 14px;font-size:13px}.nav-item>.nav-num{font-size:10px;color:#7894be}.nav-item.active{background:#2a456f;color:#fff}.nav-item.active>.nav-num{color:#c3d7fa}.sidebar-bottom{margin-top:auto;font-size:11px;padding:35px 8px 0;border-top:1px solid #2c4263;color:#b2c3de}.sidebar-bottom p{font-size:10px;line-height:1.9;color:#7e98bd;margin-top:12px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#93bcac;margin-right:7px}
main{display:flex;flex-direction:column}.topbar{padding:25px 42px;border-bottom:1px solid var(--line);background:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px}.breadcrumb{font-size:9px;letter-spacing:.1em;color:var(--muted);margin-right:10px}.topbar>button{background:transparent;border:1px solid var(--line);border-radius:7px;color:var(--muted);padding:8px 12px;min-height:34px;font-size:11px}
.view{padding:0 42px 38px;width:100%;max-width:1440px;margin:0 auto}.intro{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:35px;padding:42px 0 34px}.eyebrow{font-size:9px;color:var(--accent);font-weight:700;letter-spacing:.17em;margin-bottom:12px}h1{font-size:36px;line-height:1.35;letter-spacing:-.055em;font-weight:700}h1 em{font-style:normal;color:var(--accent)}.intro-copy{font-size:12px;color:var(--muted);line-height:1.85;margin-top:17px}
.index-art{position:relative;height:195px;max-width:265px;justify-self:end;width:100%;margin-right:15px}.paper-back{position:absolute;inset:14px 12px 6px 44px;background:#dce4f3;border:1px solid #c9d6ea;transform:rotate(10deg);border-radius:4px}.paper-front{position:absolute;inset:0 28px 12px 25px;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:21px 24px;box-shadow:8px 9px 0 #223e7405;display:flex;flex-direction:column;transform:rotate(-7deg)}.paper-front>span{font-size:7px;letter-spacing:.15em;color:var(--muted)}.paper-front b{font:68px/1 Georgia,serif;color:var(--accent);margin:3px 0 9px}.paper-front i{height:3px;background:var(--line);margin:3px 0;width:100%}.paper-front i+i{width:65%}.paper-front small{font-size:7px;letter-spacing:.03em;color:var(--muted);margin-top:13px}
.search-form{display:flex;align-items:center;gap:17px;padding:9px 9px 9px 22px;border:1px solid var(--line);background:var(--paper);border-radius:11px;box-shadow:0 4px 13px #233d6704}.search-symbol{display:grid;place-items:center;width:20px;height:20px;color:var(--muted);flex:none}.search-symbol .ico{width:20px;height:20px}.search-form input{flex:1;width:100%;min-height:43px;border:0;background:transparent;color:var(--ink);font-size:13px}.search-form input::placeholder{color:var(--muted)}.search-form>button{background:#315bb4;color:#fff;border:0;border-radius:7px;padding:14px 22px;font-size:12px;white-space:nowrap}.search-form>button span{margin-left:16px}.search-hints{display:flex;align-items:center;gap:14px;padding:12px 2px 29px;font-size:10px;color:var(--muted)}.search-hints button{border:0;background:none;color:var(--muted);padding:4px;min-height:26px;font-size:10px;text-decoration:underline;text-underline-offset:3px}.search-hints>span{color:var(--ink)}
.library-head{border-top:1px solid var(--line);padding-top:26px;display:flex;align-items:center;justify-content:space-between;gap:14px}.library-head .eyebrow{font-size:8px;margin-bottom:7px}.library-head h2{font-size:21px;letter-spacing:-.04em}.library-head h2 span{font-size:13px;color:var(--accent);margin-left:6px;font-weight:400}.fixture-chip{border:1px solid var(--line);color:var(--muted);font-size:9px;padding:6px 9px;border-radius:5px;white-space:nowrap}.category-bar{display:flex;gap:7px;padding:20px 0 19px;overflow-x:auto;border-bottom:1px solid var(--line)}.category{border:0;background:transparent;color:var(--muted);min-height:34px;flex:none;padding:8px 13px;font-size:11px;border-radius:6px}.category[aria-pressed=true]{background:var(--pale);color:var(--accent);font-weight:600}.result-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px 0}.result-heading p{font-size:10px;color:var(--muted);line-height:1.6}.sort-label{font-size:10px;color:var(--muted);white-space:nowrap}.sort-label select{margin-left:7px;background:transparent;border:0;color:var(--ink);padding:6px 0;font-size:10px}
.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.document-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:22px 23px;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s}.document-card:hover{border-color:#9fb4da;box-shadow:0 4px 16px #23457408}.card-meta{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.doc-symbol{display:grid;place-items:center;width:27px;height:30px;border-radius:5px;background:var(--pale);color:var(--accent);font-size:19px}.doc-id{margin-left:auto;font-size:9px;letter-spacing:.03em;color:var(--muted)}.document-card h3{font-size:17px;letter-spacing:-.035em;margin:18px 0 10px;line-height:1.5}.card-excerpt{font-size:11px;color:var(--muted);line-height:1.9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:23px}.card-bottom{border-top:1px solid var(--line);padding-top:13px;display:flex;align-items:center;gap:10px;margin-top:auto}.doc-type{font-size:9px;color:var(--muted)}.version{font-size:9px;color:var(--muted)}.read-document{margin-left:auto;border:0;background:none;color:var(--accent);font-size:10px;padding:4px 0;min-height:27px}
.empty-state{text-align:center;padding:50px 20px;border:1px dashed var(--line);border-radius:10px;color:var(--muted)}.empty-state h3{font-size:17px;margin:10px 0;color:var(--ink)}.empty-state p{font-size:12px;margin:12px 0 20px}.empty-state button{background:var(--pale);color:var(--accent);border:0;padding:10px 15px;border-radius:7px;font-size:12px}
.secondary-view{padding-top:46px;min-height:650px}.history-list{margin-top:35px;display:grid;gap:12px}.history-item{display:flex;align-items:center;gap:18px;width:100%;text-align:left;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:23px;border-radius:10px}.history-index{font-size:11px;color:var(--muted)}.history-item strong{font-size:14px}.history-detail{margin-left:auto;font-size:11px;color:var(--muted)}.history-empty{background:var(--paper);padding:35px;border:1px dashed var(--line);color:var(--muted);font-size:13px;line-height:1.8}.scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:40px}.scope-grid article{background:var(--paper);padding:27px;border:1px solid var(--line);border-radius:10px}.scope-grid article>span{font-size:9px;letter-spacing:.12em;color:var(--accent)}.scope-grid h2{font-size:17px;line-height:1.6;margin:19px 0 15px}.scope-grid p{font-size:12px;color:var(--muted);line-height:1.9}footer{margin-top:auto;display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:23px 42px;color:var(--muted);font-size:8px;letter-spacing:.12em}footer span{letter-spacing:0;font-size:9px}
dialog{padding:0;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 56px);box-shadow:0 30px 80px #07152e30}dialog::backdrop{background:#0b1b37a8;backdrop-filter:blur(3px)}.reader-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:var(--paper);padding:17px 28px;font-size:9px;letter-spacing:.1em;color:var(--muted)}.reader-top button{background:var(--tint);color:var(--ink);border:0;border-radius:6px;padding:7px 11px;font-size:11px;min-height:33px;letter-spacing:0}.reader-body{padding:35px 40px}.reader-body h2{font-size:28px;letter-spacing:-.05em;line-height:1.5}.reader-disclosure{margin-top:18px;font-size:11px;line-height:1.8;color:var(--muted);padding:14px 17px;background:var(--tint);border-radius:7px}.reader-section{padding-top:27px;margin-top:25px;border-top:1px solid var(--line)}.section-number{font-size:11px;color:var(--accent);letter-spacing:.1em}.reader-section h3{font-size:17px;margin:10px 0 13px}.reader-section p{font-size:14px;line-height:2;color:var(--muted);word-break:keep-all}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.document-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.intro{padding-top:50px;padding-bottom:40px}}
@media(max-width:1100px){.workspace{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding-inline:16px}.topbar{padding:22px 28px}.view{padding-inline:28px}.intro{gap:20px}.intro h1{font-size:32px}.index-art{height:175px;margin-right:0}.paper-front{padding:18px}.paper-front b{font-size:56px}.document-card{padding:20px}.scope-grid{grid-template-columns:1fr}footer{padding-inline:28px}}
@media(max-width:800px){.workspace{grid-template-columns:1fr}.sidebar{padding:20px 24px 0;display:grid;grid-template-columns:1fr auto;gap:18px}.brand{padding:0}.brand-mark{width:29px;height:34px;font-size:24px}.brand>span:last-child{font-size:7px}.brand strong{font-size:19px}.workspace-label,.sidebar-bottom{display:none}.main-nav{margin:0;grid-column:1/-1;display:flex;gap:6px}.nav-item{padding:12px 15px;border-radius:7px 7px 0 0;gap:9px;font-size:12px}.nav-item>.nav-num{font-size:9px}.topbar{padding:18px 24px}.view{padding-inline:24px}.intro{padding-top:32px}.intro h1{font-size:32px}.index-art{height:165px}.preview-notice{padding:8px 20px;font-size:10px}.preview-notice span{display:block;margin:0;font-size:9px}.scope-grid{grid-template-columns:1fr}.secondary-view{min-height:550px}.reader-body{padding:28px}.reader-body h2{font-size:25px}footer{padding:22px 24px}}
@media(max-width:520px){.sidebar{padding:18px 18px 0;gap:16px}.main-nav{gap:2px}.nav-item{font-size:11px;padding:12px}.topbar{padding:16px 18px;font-size:11px}.breadcrumb{display:none}.view{padding-inline:18px;padding-bottom:30px}.intro{grid-template-columns:1fr;padding:29px 0 25px}.intro h1{font-size:31px;line-height:1.35}.intro-copy{font-size:11px;line-height:1.9;margin-top:15px}.index-art{display:none}.eyebrow{font-size:8px}.search-form{padding:7px 7px 7px 15px;gap:13px;border-radius:9px}.search-form input{font-size:11px;min-height:40px}.search-form>button{padding:13px 12px;font-size:10px}.search-form>button span{display:none}.search-hints{gap:8px;flex-wrap:wrap;padding:12px 0 25px}.search-hints button{font-size:9px}.search-hints>span{font-size:9px}.library-head{padding-top:22px}.library-head h2{font-size:20px}.fixture-chip{font-size:8px;padding:5px 7px}.category-bar{padding:17px 0 16px;gap:3px}.category{padding:8px 11px;font-size:10px}.document-grid{grid-template-columns:1fr;gap:13px}.document-card{padding:21px}.document-card h3{font-size:18px;margin-top:16px}.card-excerpt{font-size:12px}.read-document{font-size:11px;min-height:34px}.card-bottom{padding-top:11px}.doc-type,.version{font-size:10px}.result-heading{padding:15px 0}.result-heading p{font-size:10px}.sort-label{font-size:9px}.sort-label select{font-size:9px}.secondary-view{padding-top:30px}.secondary-view h1{font-size:28px}.history-item{padding:20px;gap:12px;flex-wrap:wrap}.history-detail{margin-left:0;flex:1 1 100%;padding-left:25px}.scope-grid{margin-top:26px;gap:14px}.scope-grid article{padding:23px}footer{padding:20px 18px;font-size:8px}footer span{max-width:180px;line-height:1.8;text-align:right;font-size:8px}.reader-top{padding:14px 20px}.reader-body{padding:25px 22px}.reader-body h2{font-size:24px}.reader-section p{font-size:13px}.reader-disclosure{padding:13px;font-size:10px}.reader-section{padding-top:22px;margin-top:23px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* Public showcase V2: a crisp searchable document workspace. */
:root{--bg:#f8faff;--ink:#1c2a42;--muted:#64728a;--accent:#3569ec;--line:#e2e8f2;--pale:#edf3ff;--nav:#fff}
html[data-theme=dark]{--bg:#151e30;--paper:#1e2b43;--tint:#293a55;--ink:#edf3ff;--muted:#adbbd2;--line:#364863;--accent:#abc4ff;--pale:#30486d;--nav:#1a273d}
body{-webkit-font-smoothing:antialiased}.workspace{grid-template-columns:214px minmax(0,1fr)}.sidebar{padding:30px 16px 25px;border-right:1px solid var(--line);color:var(--ink);gap:37px}.brand-mark{font-family:inherit;font-size:24px;font-weight:700;border:0;background:#3468ed;color:#fff;width:40px;height:40px;border-radius:12px}.brand>span:last-child{color:var(--muted);font-size:9px;letter-spacing:.12em}.brand strong{font-size:24px;font-weight:700;color:var(--ink)}.workspace-label{font-size:9px;color:var(--muted)}.nav-item{color:var(--muted);font-size:13px;padding:14px 12px;border-radius:10px}.nav-item>.nav-num{color:var(--muted)}.nav-item.active{background:var(--pale);color:var(--accent)}.nav-item.active>.nav-num{color:var(--accent)}.sidebar-bottom{color:var(--muted);border-color:var(--line)}.sidebar-bottom p{color:var(--muted);font-size:11px}.topbar{padding:20px 36px;font-size:13px}.topbar>button{font-size:12px;min-height:37px}.view{padding-inline:36px}.intro{display:block;padding:30px 0 25px}.intro h1{font-size:34px;font-weight:700}.intro h1 br{display:none}.intro h1 em{margin-left:8px}.intro-copy{font-size:14px;margin-top:12px;line-height:1.7}.intro-copy br{display:none}.eyebrow{font-size:11px;letter-spacing:.05em}.index-art{display:none}.search-form{border-radius:14px;padding:10px 10px 10px 22px;box-shadow:0 5px 20px #2c55a008}.search-form input{font-size:15px;min-height:42px}.search-form>button{font-size:13px;border-radius:9px;background:#3468ed;padding:14px 22px}.search-hints{padding:11px 0 24px;gap:14px;font-size:11px}.search-hints button{font-size:11px;min-height:32px}.library-head{padding-top:24px}.library-head .eyebrow{font-size:10px}.library-head h2{font-size:23px}.fixture-chip{font-size:11px;padding:7px 10px;border-radius:7px}.category-bar{padding:17px 0;gap:8px}.category{font-size:12px;min-height:37px;border-radius:8px}.result-heading p,.sort-label,.sort-label select{font-size:12px}.document-grid{gap:20px}.document-card{border-radius:16px;padding:25px;box-shadow:none}.doc-symbol{width:35px;height:39px;border-radius:9px;font-size:23px}.card-meta{font-size:12px}.doc-id{font-size:10px}.document-card h3{font-size:21px;margin-top:20px}.card-excerpt{font-size:13px;line-height:1.8}.doc-type,.version{font-size:11px}.read-document{font-size:12px;min-height:36px}.reader-body h2{font-size:29px}.reader-section p{font-size:15px;line-height:1.9}.reader-disclosure{font-size:12px}
@media(min-width:1500px){.intro{padding-top:34px;padding-bottom:28px}}
@media(max-width:1100px){.workspace{grid-template-columns:190px minmax(0,1fr)}.view{padding-inline:26px}.topbar{padding-inline:26px}.intro h1{font-size:31px}.document-card{padding:23px}.document-card h3{font-size:19px}}
@media(max-width:800px){.workspace{grid-template-columns:1fr}.sidebar{padding:19px 24px 0;border-right:0;border-bottom:1px solid var(--line);gap:18px}.main-nav{margin:0;padding-bottom:10px}.nav-item{border-radius:9px;padding:12px 15px}.topbar{padding:17px 24px}.view{padding-inline:24px}.intro{padding:27px 0 22px}.intro h1{font-size:30px}.intro-copy{font-size:13px}.search-form input{font-size:14px}.document-grid{gap:17px}}
@media(max-width:520px){.sidebar{padding:18px 18px 0}.nav-item{font-size:12px;padding:11px}.topbar{padding:16px 18px}.view{padding-inline:18px}.intro h1{font-size:29px;line-height:1.4}.intro h1 br{display:block}.intro h1 em{margin:0}.intro-copy{font-size:13px}.eyebrow{font-size:10px}.search-form{padding:7px 7px 7px 15px;gap:12px}.search-form input{font-size:13px;min-height:42px}.search-form>button{font-size:12px;padding:13px 14px}.search-hints{gap:9px;flex-wrap:wrap;padding-bottom:20px}.search-hints>span,.search-hints button{font-size:11px}.library-head h2{font-size:22px}.fixture-chip{font-size:10px}.category{font-size:12px;padding:9px 11px}.document-grid{grid-template-columns:1fr}.document-card{padding:23px}.document-card h3{font-size:20px}.result-heading p,.sort-label,.sort-label select{font-size:11px}.reader-body{padding:25px 22px}.reader-body h2{font-size:25px}.reader-section p{font-size:14px}}

/* Motion retrofit 2026-10-12 (ADR 0065 Amend (3)). Static layout is unchanged except the listed fixes:
   stroke SVG icons, tabular numerals and :active depth. Everything that moves is JS/WAAPI or CSS behind
   motion-on classes, and is zeroed by the reduced-motion and capture-mode blocks at the end. */
:root{--dur-1:120ms;--dur-2:220ms;--dur-3:360ms;--dur-4:640ms;--dur-5:1100ms;--stagger:45ms;--ease-out:cubic-bezier(.2,.7,.2,1);--ease-in:cubic-bezier(.4,0,1,1);--ease-expo:cubic-bezier(.16,1,.3,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--hl:rgba(53,105,236,.16);--hl-strong:rgba(53,105,236,.34)}
html[data-theme=dark]{--hl:rgba(171,196,255,.22);--hl-strong:rgba(171,196,255,.42)}
/* icon set (one stroke family) */
.ico{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.14em;flex:none}
.doc-symbol .ico{width:20px;height:20px}
.read-document .ico,.history-arrow .ico{margin-left:2px}.history-arrow{display:inline-grid;place-items:center;color:var(--muted)}
/* tabular numerals for counts and ids */
#total-count,.doc-id,.version,.history-index,.history-detail,.section-number,#document-meta,#result-summary{font-variant-numeric:tabular-nums}
/* matched terms: a persistent tinted highlight (search evidence stays visible, also under reduced motion and capture).
   Two layers: the top one is the marker that the trace sweeps through; it rests at 0% so only the base tint shows. */
mark.term{background:none;color:var(--ink);font-weight:600;background-image:linear-gradient(var(--hl-strong),var(--hl-strong)),linear-gradient(var(--hl),var(--hl));background-repeat:no-repeat;background-size:0% 100%,100% 100%;background-position:left center,left center;border-radius:3px;padding:0 1px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
/* press depth (kit covers buttons; cards follow their read button) */
.document-card{transition:border-color .15s,box-shadow .15s,transform var(--dur-2) var(--ease-out)}
.document-card:has(.read-document:active){transform:scale(.985)}
.history-item:active,.search-hints button:active{transform:scale(.975)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){body:not(.capture-mode) .document-card:hover{transform:translateY(-3px)}body:not(.capture-mode) .history-item:hover{border-color:#9fb4da}}
.empty-state button:focus-visible,.history-item:focus-visible,.category:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
/* hero pre-hide: only when boot.js turned motion on, always removed by JS (floor 2) */
html.mk-intro :is(.sidebar .brand,.sidebar .workspace-label,.sidebar .nav-item,.sidebar .sidebar-bottom,.topbar,#view-library .intro .eyebrow,#view-library .intro h1,#view-library .intro-copy,#view-library .search-form,#view-library .search-hints,#view-library .library-head,#view-library .category-bar,#view-library .result-heading){opacity:0}
/* sliding selection pill (only with .mk-pill-live, which JS adds when motion is on) */
.main-nav,.category-bar,.document-grid,#view-library{position:relative}
.mk-pill{position:absolute;left:0;top:0;z-index:0;pointer-events:none;background:var(--pale);border-radius:10px;transition:transform var(--dur-4) var(--ease-expo),width var(--dur-4) var(--ease-expo),height var(--dur-4) var(--ease-expo),opacity var(--dur-2)}
.mk-pill--cat{border-radius:8px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.mk-pill-live>button{position:relative;z-index:1}
.mk-pill-live .nav-item.active,.mk-pill-live .category[aria-pressed=true]{background:transparent}
html.vt-view .mk-pill{transition:none}
/* exiting cards on filter (absolute ghosts, inert) */
.mk-ghost{position:absolute;margin:0;pointer-events:none;z-index:0}
/* signature: retrieval trace layer */
.trace-layer{position:absolute;left:0;top:0;z-index:4;pointer-events:none;overflow:visible}
.trace-beam{fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;opacity:.85}
.trace-glow{fill:none;stroke:var(--accent);stroke-width:9;stroke-linecap:round;opacity:.12}
.trace-dot{fill:var(--accent);opacity:0}.trace-halo{fill:var(--accent);opacity:0}
.trace-origin{fill:none;stroke:var(--accent);stroke-width:2;opacity:.75;transform-box:fill-box;transform-origin:center}
/* searching state (real request only) */
.search-form{position:relative}
.search-form::after{content:'';position:absolute;left:14px;right:14px;bottom:0;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent 0 35%,var(--accent) 50%,transparent 65% 100%) 100% 0/300% 100% no-repeat;opacity:0;pointer-events:none}
.search-form.is-searching::after{opacity:1;animation:mk-scan 900ms var(--ease-out) infinite}
.search-form.is-searching .search-symbol{animation:mk-seek 700ms ease-in-out infinite}
@keyframes mk-scan{from{background-position:100% 0}to{background-position:0 0}}
@keyframes mk-seek{0%,100%{transform:translate(0,0)}25%{transform:translate(3px,-2px)}50%{transform:translate(0,-3px)}75%{transform:translate(-3px,-1px)}}
/* reader: scroll progress (created by JS only when motion is on) */
.reader-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left center;pointer-events:none}
/* view transitions: directional slide for screens, morphing nav pill, circular theme reveal */
html.vt-view .view:not([hidden]){view-transition-name:mk-view}
html.vt-view .mk-pill--nav{view-transition-name:nav-pill}
html.vt-view::view-transition-old(root),html.vt-view::view-transition-new(root){animation:none}
html.vt-view::view-transition-old(mk-view){animation:vt-view-out var(--dur-2) var(--ease-in) both}
html.vt-view::view-transition-new(mk-view){animation:vt-view-in var(--dur-4) var(--ease-expo) both}
html.vt-view.vt-back::view-transition-old(mk-view){animation-name:vt-view-out-back}
html.vt-view.vt-back::view-transition-new(mk-view){animation-name:vt-view-in-back}
html.vt-view::view-transition-group(mk-view),html.vt-view::view-transition-group(nav-pill){animation-duration:var(--dur-4);animation-timing-function:var(--ease-expo)}
@keyframes vt-view-out{to{opacity:0;transform:translateX(-48px) scale(.985)}}
@keyframes vt-view-in{from{opacity:0;transform:translateX(72px)}}
@keyframes vt-view-out-back{to{opacity:0;transform:translateX(48px) scale(.985)}}
@keyframes vt-view-in-back{from{opacity:0;transform:translateX(-72px)}}
html.vt-theme::view-transition-old(root),html.vt-theme::view-transition-new(root){animation:none;mix-blend-mode:normal}
html.theme-fade *{transition:background-color var(--dur-3) var(--ease-out),color var(--dur-3) var(--ease-out),border-color var(--dur-3) var(--ease-out)!important}
/* Floor 1: reduced motion and capture-mode. Everything still, everything visible. */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reader-progress,.trace-layer,.mk-ghost{display:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
body.capture-mode *,body.capture-mode *::before,body.capture-mode *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
body.capture-mode .reader-progress,body.capture-mode .trace-layer,body.capture-mode .mk-ghost,body.capture-mode .mk-pill{display:none!important}
body.capture-mode .search-form::after{opacity:0!important}

/* Completeness uplift 2026-10-13 (ADR 0065 Amend (5)): one Lucide icon family, persistent search evidence, phone
   re-layout (bottom tab bar + reader bottom sheet), complete states (first-load skeleton, error + retry, history
   next step, clear control), subset webfont, theme that follows the system, finishing details. Copy is unchanged. */
:root{--danger:#c2413b;--danger-tint:#fbecea}
html[data-theme=dark]{--danger:#ff9d97;--danger-tint:#3e2a33}
html{scrollbar-color:color-mix(in srgb,var(--muted) 45%,transparent) transparent;accent-color:var(--accent);scrollbar-gutter:stable}
html:has(dialog[open]){overflow:hidden}
::selection{background:var(--hl-strong);color:inherit}
:is(h1,h2,h3) mark.term{font-weight:inherit}
/* icons: two sizes only - 1em inline with text, 20px in badges and navigation */
.nav-item{gap:11px}
.nav-ico{display:grid;place-items:center;width:20px;height:20px;flex:none}
.nav-ico .ico,.doc-symbol .ico,.state-badge .ico,.search-clear .ico{width:20px;height:20px}
.nav-label{order:2}
.nav-item>.nav-num{order:3;margin-left:auto}
.topbar>button{display:inline-flex;align-items:center;gap:7px}
.theme-ico,.select-chevron{display:grid;place-items:center}
.reader-top button{display:inline-flex;align-items:center;gap:5px}
.empty-state button,.history-cta{display:inline-flex;align-items:center;gap:7px}
.state-badge{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--pale);color:var(--accent)}
/* search input: styled clear control, native one hidden so two never overlap */
.search-form input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.search-form>.search-clear{display:grid;place-items:center;flex:none;width:40px;height:40px;min-height:40px;padding:0;margin:0 -10px 0 -12px;border:0;border-radius:50%;background:transparent;color:var(--muted)}
.search-form>.search-clear span{display:grid;margin:0}
.search-form>.search-clear:hover{color:var(--ink);background:var(--tint);filter:none}
/* focus: a text input always matches :focus-visible, so the square outline showed inside the rounded box on every click.
   The whole rounded box carries the ring instead; browsers without :has() keep the original outline. */
.search-form{transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}
@supports selector(:has(*)){
  .search-form input:focus-visible{outline:none}
  .search-form:has(input:focus-visible){border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}
}
/* error state: same frame as the empty state, its own tone */
.error-state{border-style:solid;border-color:color-mix(in srgb,var(--danger) 30%,var(--line))}
.error-state .state-badge{background:var(--danger-tint);color:var(--danger)}
/* history empty state with a next step */
.history-empty p{margin:0}
.history-cta{margin-top:16px;background:var(--pale);color:var(--accent);border:0;padding:10px 15px;border-radius:7px;font-size:12px}
/* cards: one border only (shadow on hover), 2-line titles, Korean line breaking */
.document-card h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all}
.card-excerpt{word-break:keep-all}
/* Korean prose wraps at word boundaries (no syllable splits such as 검/색, 지침으/로) */
.intro-copy,.scope-grid p,.history-empty p,.empty-state p,.reader-disclosure{word-break:keep-all}
.reader-section p{max-width:68ch}
/* first-load skeleton: only inserted while the real request is still pending after 150ms */
.document-card.is-skeleton{pointer-events:none;min-height:214px}
.sk{display:block;border-radius:6px;background:linear-gradient(90deg,var(--tint) 0 40%,color-mix(in srgb,var(--tint) 40%,var(--paper)) 50%,var(--tint) 60% 100%) 0 0/300% 100% no-repeat;animation:sk-shimmer 1.3s linear infinite}
.sk-meta{width:44%;height:30px;border-radius:8px}.sk-title{width:70%;height:22px;margin-top:22px}.sk-line{width:100%;height:12px;margin-top:16px}.sk-line.sk-short{width:62%;margin-top:9px}.sk-foot{width:34%;height:14px;margin-top:30px}
@keyframes sk-shimmer{from{background-position:100% 0}to{background-position:0 0}}
/* sort select: bordered control with a Lucide chevron; the native select stays for accessibility */
.select-wrap{position:relative;display:inline-flex;align-items:center;margin-left:7px}
.sort-label select{-webkit-appearance:none;appearance:none;margin-left:0;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:7px 30px 7px 11px;min-height:34px;cursor:pointer;transition:border-color var(--dur-2) var(--ease-out)}
.sort-label select:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.select-chevron{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted)}
/* notice band in dark mode: tokens instead of the light-grey hard code (text and DOM unchanged) */
html[data-theme=dark] .preview-notice{background:var(--tint);border-bottom-color:var(--line);color:var(--muted)}
html[data-theme=dark] .preview-notice span{color:color-mix(in srgb,var(--muted) 82%,var(--tint))}
/* tablets and below: chip row hints that it scrolls; tabs drop the index number */
@media(max-width:800px){
  .nav-item>.nav-num{display:none}
  .nav-item{gap:8px}
  .category-bar{padding-right:24px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
}
/* phones: bottom tab bar within thumb reach, reader as a bottom sheet */
@media(max-width:520px){
  .sidebar{padding:14px 18px;grid-template-columns:1fr}
  .main-nav{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:30;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0;padding:6px 10px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line)}
  .nav-item{flex-direction:column;justify-content:center;gap:3px;min-height:54px;padding:7px 4px;border-radius:12px;font-size:11px;text-align:center}
  .nav-label{order:0}
  .mk-pill--nav{border-radius:12px}
  main{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
  dialog{width:100%;max-width:100%;margin:auto 0 0;max-height:92dvh;border-radius:18px 18px 0 0;border-width:1px 0 0}
  .reader-body{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  .search-form>.search-clear{margin:0 -8px 0 -10px}
}
/* floors for the additions: skeleton shimmer stops, sheet/pop motion is JS-gated by MK.off() */
@media(prefers-reduced-motion:reduce){.sk{animation:none!important}}
body.capture-mode .sk{animation:none!important}
