@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css";.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}html[data-theme=dark] .i-sun{display:none}html:not([data-theme=dark]) .i-moon{display:none}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}:root{--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--font-mono: ui-monospace, "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, monospace;--bg: #fbfbfa;--surface: #ffffff;--surface-2: #f4f4f1;--text: #1c1c1a;--text-2: #4b4f56;--muted: #7a7f87;--rule: #e6e4df;--rule-2: #d6d3cc;--accent: #1f3a5f;--accent-ink: #1f3a5f;--accent-soft: #edf1f6;--accent-soft-2: #dbe4ee;--green: #0f7a3a;--green-soft: #e8f4ec;--amber: #9a6100;--amber-soft: #fbf3e2;--red: #b3261e;--red-soft: #fbeae8;--shadow: 0 1px 2px rgba(20, 24, 32, .04), 0 8px 24px -12px rgba(20, 24, 32, .12);--radius: 10px;--radius-sm: 6px;--header-h: 60px;--content-w: 1200px;--prose-w: 76ch;--ease: cubic-bezier(.2, .7, .2, 1)}html[data-theme=dark]{--bg: #111417;--surface: #171b20;--surface-2: #1d2228;--text: #e7e6e2;--text-2: #b7bcc3;--muted: #8a9099;--rule: #272c33;--rule-2: #353b44;--accent: #8fb4d4;--accent-ink: #a9c6df;--accent-soft: #1b2632;--accent-soft-2: #24344a;--green: #4cc46e;--green-soft: #142a1c;--amber: #e2b04b;--amber-soft: #2c2412;--red: #f08a82;--red-soft: #351b19;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px -12px rgba(0, 0, 0, .5);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.7;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:anywhere}a{color:var(--accent-ink);text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{text-decoration:underline}img,svg,video{max-width:100%;height:auto}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}::selection{background:var(--accent-soft-2)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.container{width:100%;max-width:var(--content-w);margin:0 auto;padding:0 24px}@media(max-width:640px){.container{padding:0 18px}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-header{position:sticky;top:0;z-index:50;height:var(--header-h);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--rule)}.site-header .container{height:100%;display:flex;align-items:center;gap:20px}.brand{display:inline-flex;align-items:baseline;gap:10px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.brand:hover{text-decoration:none}.brand .brand-mark{display:inline-block;width:22px;height:22px;border-radius:6px;background:var(--accent);position:relative;top:4px}.brand .brand-mark:after{content:"";position:absolute;inset:6px;border:2px solid #fff;border-radius:3px;opacity:.9}.brand small{font-weight:500;color:var(--muted);font-size:.8rem;letter-spacing:.02em}.main-nav{display:flex;gap:2px;margin-left:8px}.main-nav a{padding:6px 12px;border-radius:999px;font-size:.92rem;font-weight:500;color:var(--text-2);transition:background .15s var(--ease),color .15s var(--ease)}.main-nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.main-nav a[aria-current=page],.main-nav a.active{background:var(--accent-soft);color:var(--accent-ink)}.header-tools{margin-left:auto;display:flex;align-items:center;gap:6px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;min-width:36px;padding:0 10px;border-radius:8px;color:var(--text-2);border:1px solid transparent;transition:background .15s var(--ease),border-color .15s var(--ease)}.icon-btn:hover{background:var(--surface-2);border-color:var(--rule);color:var(--text)}.icon-btn svg{width:18px;height:18px}.search-btn{border-color:var(--rule);font-size:.86rem;color:var(--muted);padding-right:12px}.search-btn kbd{font-family:var(--font-sans);font-size:.7rem;border:1px solid var(--rule-2);border-radius:4px;padding:0 5px;color:var(--muted)}.nav-toggle{display:none}@media(max-width:860px){.main-nav{display:none}.nav-toggle{display:inline-flex}.search-btn span,.search-btn kbd{display:none}.search-btn{padding-right:10px}html[data-nav-open] .main-nav{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:var(--header-h);padding:10px 18px 14px;background:var(--surface);border-bottom:1px solid var(--rule);box-shadow:var(--shadow)}}.site-footer{margin-top:96px;border-top:1px solid var(--rule);padding:36px 0 48px;color:var(--muted);font-size:.86rem}.site-footer .container{display:flex;flex-wrap:wrap;gap:24px 48px;justify-content:space-between}.site-footer .foot-links{display:flex;flex-wrap:wrap;gap:14px}.site-footer a{color:var(--text-2)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes sink{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.eyebrow{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:600}.section{padding:56px 0 8px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px;border-bottom:1px solid var(--rule);padding-bottom:12px}.section-head h2{margin:0;font-size:1.35rem;font-weight:700;letter-spacing:-.01em}.section-head .more{font-size:.88rem;color:var(--text-2);white-space:nowrap}.section-head .more:hover{color:var(--accent-ink)}.lede{font-size:1.02rem;color:var(--text-2);max-width:64ch;margin:0 0 8px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.card{display:flex;flex-direction:column;gap:8px;min-height:100%;padding:18px 18px 16px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);color:inherit;transition:border-color .15s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease)}a.card:hover{text-decoration:none;border-color:var(--rule-2);box-shadow:var(--shadow);transform:translateY(-1px)}.card .card-tag{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.card .card-title{font-size:1.02rem;font-weight:650;line-height:1.35;color:var(--text);letter-spacing:-.005em}a.card:hover .card-title{color:var(--accent-ink)}.card .card-desc{font-size:.9rem;color:var(--text-2);margin:0;line-height:1.6}.card .card-foot{margin-top:auto;padding-top:6px;display:flex;gap:10px;align-items:center;font-size:.8rem;color:var(--muted)}.card.featured{grid-column:span 2;background:linear-gradient(135deg,var(--accent-soft),var(--surface) 60%)}@media(max-width:640px){.card.featured{grid-column:span 1}}.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;font-size:.74rem;font-weight:600;letter-spacing:.02em;background:var(--surface-2);color:var(--text-2);white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.pill.active{background:var(--green-soft);color:var(--green)}.pill.waiting{background:var(--amber-soft);color:var(--amber)}.pill.stale{background:var(--red-soft);color:var(--red)}.pill.plain:before{display:none}.btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:8px;font-weight:600;font-size:.92rem;border:1px solid var(--rule-2);color:var(--text);background:var(--surface);transition:all .15s var(--ease)}.btn:hover{text-decoration:none;border-color:var(--accent);color:var(--accent-ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08);color:#fff}.btn svg{width:16px;height:16px}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th{text-align:left;font-weight:600;color:var(--muted);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid var(--rule-2)}.data-table td{padding:10px;border-bottom:1px solid var(--rule);vertical-align:top}.data-table tr:last-child td{border-bottom:0}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.hero{position:relative;padding:72px 0 56px;overflow:hidden;border-bottom:1px solid var(--rule)}.hero .container{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;align-items:center}@media(max-width:900px){.hero .container{grid-template-columns:1fr}.hero{padding:48px 0 40px}}.hero h1{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.08;letter-spacing:-.03em;margin:12px 0 18px;font-weight:750}.hero h1 span{color:var(--accent-ink)}.hero .lede{font-size:1.08rem;line-height:1.75;max-width:58ch}.hero .hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.hero-art{position:relative;aspect-ratio:5 / 4;border-radius:16px;background:linear-gradient(160deg,var(--accent-soft),var(--surface) 70%);border:1px solid var(--rule);overflow:hidden}.hero-art svg{position:absolute;inset:0;width:100%;height:100%}.hero-art .art-label{position:absolute;left:16px;bottom:12px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-family:var(--font-mono)}.hero-art .art-label b{color:var(--accent-ink);font-weight:600}@keyframes dash{to{stroke-dashoffset:0}}.hero-art .trace{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1600;stroke-dashoffset:1600;animation:dash 2.4s var(--ease) .2s forwards}.hero-art .trace.ghost{stroke:var(--accent);opacity:.25;stroke-width:1.5;animation-delay:.5s}.hero-art .grid line{stroke:var(--rule-2);stroke-width:1}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;margin-top:40px}.kpi{background:var(--surface);padding:18px 20px}.kpi b{display:block;font-size:1.9rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums}.kpi span{font-size:.8rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}@media(max-width:640px){.kpis{grid-template-columns:repeat(2,1fr)}}.split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:32px}@media(max-width:900px){.split{grid-template-columns:1fr}}.side-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.side-list li{display:flex;flex-direction:column;gap:3px;padding:12px 0;border-bottom:1px solid var(--rule)}.side-list li:first-child{padding-top:0}.side-list .t{font-weight:600;color:var(--text);line-height:1.4}.side-list .m{font-size:.82rem;color:var(--muted)}.side-list a.t:hover{color:var(--accent-ink)}.pi-card{display:grid;grid-template-columns:96px 1fr;gap:22px;align-items:start;padding:22px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius)}.pi-avatar{width:96px;height:96px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent-ink);font-weight:700;font-size:1.6rem;letter-spacing:-.02em}.pi-card h3{margin:0 0 4px;font-size:1.2rem}.pi-card .role{color:var(--text-2);margin:0 0 12px}.pi-card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:0;font-size:.9rem}.pi-card dt{color:var(--muted);font-weight:500}.pi-card dd{margin:0;color:var(--text-2)}@media(max-width:560px){.pi-card{grid-template-columns:1fr}.pi-card dl{grid-template-columns:1fr;gap:2px}.pi-card dt{margin-top:8px}}.note-shell{display:grid;grid-template-columns:250px minmax(0,1fr) 220px;gap:40px;padding-top:28px}@media(max-width:1100px){.note-shell{grid-template-columns:240px minmax(0,1fr)}.toc-col{display:none}}@media(max-width:860px){.note-shell{grid-template-columns:1fr;gap:16px}}.sidebar{position:sticky;top:calc(var(--header-h) + 20px);max-height:calc(100vh - var(--header-h) - 40px);overflow:auto;font-size:.9rem;padding-right:6px;scrollbar-width:thin}.sidebar .sb-title{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 10px;padding:0 0 10px;border-bottom:1px solid var(--rule)}.sidebar .sb-title a{font-weight:700;color:var(--text);font-size:1rem}.sidebar .sb-title small{color:var(--muted);font-size:.76rem}.sidebar ul{list-style:none;margin:0;padding:0}.sidebar li{margin:0}.sidebar .grp{margin:12px 0 4px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}.sidebar .grp.sub{text-transform:none;letter-spacing:0;font-size:.8rem;margin:8px 0 2px;color:var(--text-2)}.sidebar a.item{display:block;padding:5px 10px;margin:1px 0;border-radius:6px;color:var(--text-2);line-height:1.45}.sidebar a.item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.sidebar a.item[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.sidebar ul ul a.item{padding-left:20px}@media(max-width:860px){.sidebar{position:static;max-height:none;border:1px solid var(--rule);border-radius:var(--radius);padding:12px 14px;background:var(--surface)}.sidebar details summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between}.sidebar details summary:after{content:"▾";color:var(--muted)}.sidebar details[open] summary:after{content:"▴"}.sidebar details>div{margin-top:10px}}@media(min-width:861px){.sidebar details summary{display:none}}.note-main{min-width:0}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.82rem;color:var(--muted);margin-bottom:14px}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--accent-ink)}.crumbs .sep{opacity:.5}.note-header{padding-bottom:20px;margin-bottom:26px;border-bottom:1px solid var(--rule)}.note-header h1{font-size:clamp(1.7rem,3.4vw,2.3rem);line-height:1.2;letter-spacing:-.02em;margin:0 0 10px;font-weight:750}.note-header .meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:.84rem;color:var(--muted);align-items:center}.note-header .desc{color:var(--text-2);margin:8px 0 0;font-size:1.02rem}.toc-col{position:sticky;top:calc(var(--header-h) + 20px);max-height:calc(100vh - var(--header-h) - 40px);overflow:auto;font-size:.82rem;scrollbar-width:thin}.toc-col .toc-title{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 8px}.toc{list-style:none;margin:0;padding:0;border-left:1px solid var(--rule)}.toc li a{display:block;padding:4px 0 4px 12px;margin-left:-1px;border-left:1px solid transparent;color:var(--muted);line-height:1.4;transition:color .15s var(--ease),border-color .15s var(--ease)}.toc li a:hover{color:var(--text);text-decoration:none}.toc li a.is-active{color:var(--accent-ink);border-left-color:var(--accent);font-weight:600}.toc li.d3 a{padding-left:24px}.toc li.d4 a{padding-left:34px;font-size:.78rem}.note-foot{margin-top:48px;padding-top:22px;border-top:1px solid var(--rule);display:grid;gap:22px}.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pager a{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--rule);border-radius:var(--radius-sm);color:var(--text);background:var(--surface)}.pager a:hover{text-decoration:none;border-color:var(--rule-2);box-shadow:var(--shadow)}.pager a small{font-size:.74rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.pager a.next{text-align:right;align-items:flex-end}.pager a span{font-weight:600;font-size:.92rem;line-height:1.35}@media(max-width:560px){.pager{grid-template-columns:1fr}.pager a.next{align-items:flex-start;text-align:left}}.backlinks h4{margin:0 0 8px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.backlinks ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.backlinks li a{display:inline-block;padding:4px 10px;border:1px solid var(--rule);border-radius:999px;font-size:.84rem;color:var(--text-2);background:var(--surface)}.backlinks li a:hover{text-decoration:none;border-color:var(--accent);color:var(--accent-ink)}.prose{font-size:1rem;line-height:1.8;color:var(--text)}.prose>:first-child{margin-top:0}.prose h1,.prose h2,.prose h3,.prose h4{scroll-margin-top:calc(var(--header-h) + 16px);letter-spacing:-.015em;line-height:1.3;font-weight:700}.prose h1{font-size:1.6rem;margin:2.4em 0 .7em;padding-bottom:.3em;border-bottom:1px solid var(--rule)}.prose h2{font-size:1.35rem;margin:2.2em 0 .7em;padding-bottom:.3em;border-bottom:1px solid var(--rule)}.prose h3{font-size:1.12rem;margin:1.8em 0 .5em}.prose h4{font-size:1rem;margin:1.5em 0 .4em;color:var(--text-2)}.prose h5,.prose h6{font-size:.92rem;margin:1.3em 0 .3em;color:var(--text-2)}.prose p{margin:0 0 1.1em}.prose ul,.prose ol{padding-left:1.5em;margin:0 0 1.1em}.prose li{margin:.25em 0}.prose li>ul,.prose li>ol{margin:.2em 0}.prose li p{margin:.2em 0}.prose ul.contains-task-list,.prose li.task-list-item{list-style:none;padding-left:.2em}.prose li.task-list-item input{margin-right:6px;accent-color:var(--accent);vertical-align:-1px}.prose hr{border:0;border-top:1px solid var(--rule);margin:2.4em 0}.prose blockquote{margin:1.2em 0;padding:4px 18px;border-left:3px solid var(--rule-2);color:var(--text-2)}.prose blockquote p{margin:.4em 0}.prose strong{font-weight:700}.prose mark{background:var(--amber-soft);color:inherit;padding:0 3px;border-radius:3px;box-shadow:inset 0 -2px #c8961459}.prose code{font-family:var(--font-mono);font-size:.86em;background:var(--surface-2);border:1px solid var(--rule);border-radius:4px;padding:.1em .4em}.prose pre{margin:1.2em 0;padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--rule);font-size:.84rem;line-height:1.6;overflow:auto}.prose pre code{background:none;border:0;padding:0;font-size:inherit}html[data-theme=dark] .prose pre{background:var(--surface-2)!important}html[data-theme=dark] .prose pre span{color:var(--shiki-dark)!important}.prose img{display:block;max-width:100%;height:auto;border-radius:var(--radius-sm);border:1px solid var(--rule);margin:.6em 0;cursor:zoom-in;background:var(--surface)}.prose a.external-link:after{content:"↗";font-size:.72em;margin-left:2px;opacity:.6}.prose a.wikilink{color:var(--accent-ink);border-bottom:1px solid var(--accent-soft-2)}.prose a.wikilink:hover{text-decoration:none;border-bottom-color:var(--accent)}.prose .wikilink-missing{color:var(--text-2);border-bottom:1px dashed var(--rule-2);cursor:default}.prose sup a{text-decoration:none}.prose .footnotes{margin-top:3em;font-size:.88rem;color:var(--text-2);border-top:1px solid var(--rule);padding-top:1em}.prose details{border:1px solid var(--rule);border-radius:var(--radius-sm);padding:8px 14px;margin:1em 0;background:var(--surface)}.prose details summary{cursor:pointer;font-weight:600}.prose details[open] summary{margin-bottom:8px}.prose .katex-display{overflow-x:auto;padding:4px 0}.prose table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:.9rem;line-height:1.5;display:block;overflow-x:auto}.prose table thead th{text-align:left;font-weight:600;background:var(--surface-2);border-bottom:1px solid var(--rule-2);padding:8px 10px;white-space:nowrap}.prose table td{padding:8px 10px;border-bottom:1px solid var(--rule);vertical-align:top}.prose table tr:last-child td{border-bottom:0}.prose table tbody tr:hover td{background:color-mix(in srgb,var(--surface-2) 50%,transparent)}.callout{--c: var(--accent);--c-soft: var(--accent-soft);margin:1.3em 0;padding:12px 16px;border-radius:var(--radius-sm);background:var(--c-soft);border:1px solid color-mix(in srgb,var(--c) 22%,transparent);border-left:3px solid var(--c)}.callout .callout-title{margin:0;font-weight:700;color:var(--c);display:flex;align-items:center;gap:8px;font-size:.95rem}.callout .callout-title:before{content:"";width:16px;height:16px;flex:none;background:currentColor;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E")}.callout .callout-body{margin-top:6px;color:var(--text)}.callout .callout-body>:last-child{margin-bottom:0}.callout .callout-body p{margin:.4em 0}.callout-tip,.callout-success,.callout-check,.callout-done{--c: var(--green);--c-soft: var(--green-soft)}.callout-tip .callout-title:before,.callout-success .callout-title:before{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}.callout-warning,.callout-important,.callout-caution,.callout-question,.callout-help,.callout-todo{--c: var(--amber);--c-soft: var(--amber-soft)}.callout-warning .callout-title:before,.callout-important .callout-title:before,.callout-caution .callout-title:before{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E")}.callout-danger,.callout-error,.callout-failure,.callout-bug{--c: var(--red);--c-soft: var(--red-soft)}.callout-danger .callout-title:before,.callout-failure .callout-title:before,.callout-bug .callout-title:before{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E")}.callout-quote,.callout-cite{--c: var(--muted);--c-soft: var(--surface-2)}.callout-abstract .callout-title:before,.callout-summary .callout-title:before,.callout-tldr .callout-title:before,.callout-example .callout-title:before,.callout-note .callout-title:before{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E")}.prose .cv-index{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 1.6em}.prose .cv-index a{font-size:.82rem;padding:4px 10px;border:1px solid var(--rule);border-radius:999px;color:var(--text-2);background:var(--surface)}.prose .cv-index a:hover{border-color:var(--accent);color:var(--accent-ink);text-decoration:none}.prose .album-year{display:grid;gap:22px;margin:0 0 2em}.prose .album-item{border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);overflow:hidden}.prose .album-caption{padding:10px 14px;font-weight:600;font-size:.92rem;border-bottom:1px solid var(--rule)}.prose .album-shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px;padding:4px}.prose .album-shots img{width:100%;aspect-ratio:4 / 3;object-fit:cover;margin:0;border:0;border-radius:4px}.prose .lab-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:1em 0}.prose .lab-card{border:1px solid var(--rule);border-radius:var(--radius);padding:14px 16px;background:var(--surface)}.prose .lab-card .card-title{font-weight:650}.prose .lab-card .card-desc{font-size:.88rem;color:var(--text-2);margin:4px 0 6px}.prose .lab-card .card-status,.prose .lab-card .card-date{font-size:.76rem;color:var(--muted)}.lightbox{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:#0a0c10db;padding:24px;cursor:zoom-out}.lightbox[open]{display:flex}.lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 20px 60px #00000080}.search-dialog{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;width:100%;height:100%}.search-dialog::backdrop{background:#0a0c1080;backdrop-filter:blur(4px)}.search-panel{width:min(720px,92vw);margin:10vh auto 0;background:var(--surface);border:1px solid var(--rule);border-radius:14px;box-shadow:0 30px 80px #00000059;padding:14px;max-height:76vh;overflow:auto;color:var(--text)}.search-panel .hint{font-size:.78rem;color:var(--muted);padding:4px 6px 0}.search-panel .pagefind-ui{--pagefind-ui-scale: .9;--pagefind-ui-primary: var(--accent);--pagefind-ui-text: var(--text);--pagefind-ui-background: var(--surface);--pagefind-ui-border: var(--rule);--pagefind-ui-tag: var(--surface-2);--pagefind-ui-border-width: 1px;--pagefind-ui-border-radius: 8px;--pagefind-ui-font: var(--font-sans)}.search-panel .pagefind-ui__result-link{color:var(--accent-ink)}.post-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.post-list li{border-bottom:1px solid var(--rule)}.post-list a{display:grid;grid-template-columns:1fr auto;gap:8px 24px;padding:18px 4px;color:inherit;align-items:baseline}.post-list a:hover{text-decoration:none}.post-list a:hover .t{color:var(--accent-ink)}.post-list .t{font-size:1.08rem;font-weight:650;letter-spacing:-.01em;line-height:1.35}.post-list .d{font-size:.9rem;color:var(--text-2);grid-column:1;margin:0}.post-list .m{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:560px){.post-list a{grid-template-columns:1fr}}.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:1px solid var(--rule-2)}.timeline li{position:relative;padding:0 0 18px 18px}.timeline li:before{content:"";position:absolute;left:-23px;top:9px;width:9px;height:9px;border-radius:50%;background:var(--surface);border:2px solid var(--accent)}.timeline .date{font-family:var(--font-mono);font-size:.78rem;color:var(--muted)}.timeline .t{display:block;font-weight:600;color:var(--text)}.timeline .t:hover{color:var(--accent-ink)}.timeline .s{font-size:.86rem;color:var(--text-2)}.dash{display:grid;gap:34px}.dash-group h2{font-size:1.05rem;margin:0 0 12px;display:flex;align-items:baseline;gap:10px}.dash-group h2 small{font-weight:500;color:var(--muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.dash-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.dash-item{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--surface);color:inherit;transition:border-color .15s var(--ease),box-shadow .2s var(--ease)}.dash-item:hover{text-decoration:none;border-color:var(--rule-2);box-shadow:var(--shadow)}.dash-item .l{font-weight:650;display:flex;align-items:center;gap:6px}.dash-item .l .ext{font-size:.72em;opacity:.6}.dash-item .d{font-size:.86rem;color:var(--text-2)}.dash-item.disabled{opacity:.55}.notfound{padding:96px 0;text-align:center}.notfound h1{font-size:4rem;margin:0;letter-spacing:-.04em;color:var(--accent-ink)}
