:root{--bg-page:#fcfcfd;--bg-surface:#f5f6f8;--bg-code:#f7f8fa;--bg-sunken:#eef0f4;--border:#dfe3e8;--border-strong:#c3c9d1;--text:#14171c;--text-secondary:#4c545e;--text-tertiary:#5e6672;--text-gutter:#656e7a;--accent:#1c50a8;--accent-visited:#5b3d9e;--sev-critical:#a8112a;--sev-high:#8a4b06;--sev-medium:#705a00;--sev-low:#1c5480;--status-pass:#12603b;--fill-pass:#e6f2ea;--fill-pass-border:#b7d6c4;--fill-info:#e8f1f7;--fill-info-border:#b6cede;--fill-warn:#fdf6e3;--fill-warn-border:#e0cf9a;--fill-removed:#fbe9ec;--fill-added:#e6f2ea;--fill-accent:#eaf0fb;--boundary:#8a5a00;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--fs-display:2.375rem;--fs-lead:1.0625rem;--fs-h3:1.25rem;--fs-body:.9375rem;--fs-sm:.875rem;--fs-xs:.8125rem;--fs-label:.6875rem;--fs-micro:.625rem;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:3.5rem;--radius:4px;--radius-sm:3px;--measure:68ch;--wrap:1180px}@media (prefers-color-scheme:dark){:root{--bg-page:#0e1116;--bg-surface:#161b22;--bg-code:#12171e;--bg-sunken:#161b22;--border:#262d36;--border-strong:#39424e;--text:#e7eaef;--text-secondary:#a9b2be;--text-tertiary:#8b94a1;--text-gutter:#8b94a1;--accent:#8ab6ff;--accent-visited:#c3a9ff;--sev-critical:#ff8b98;--sev-high:#f2ad63;--sev-medium:#d8c065;--sev-low:#7cc4e8;--status-pass:#6ed69b;--fill-pass:#12241a;--fill-pass-border:#2b5138;--fill-info:#12212b;--fill-info-border:#2b4657;--fill-warn:#241f10;--fill-warn-border:#4d4225;--fill-removed:#24131a;--fill-added:#12241a;--fill-accent:#16233a;--boundary:#d9a94e}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg-page);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}ul,ol{padding:0}img,svg{max-width:100%;display:block}table{border-collapse:collapse;width:100%}th{text-align:left;font-weight:500}code,pre,kbd,samp{font-family:var(--font-mono);font-size:1em}a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1px}a:visited{color:var(--accent-visited)}a:hover{color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.skip-link{z-index:10;padding:var(--sp-2) var(--sp-4);background:var(--bg-page);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:var(--fs-sm);position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--sp-4);top:var(--sp-2)}.wrap{max-width:var(--wrap);padding-inline:var(--sp-4);margin-inline:auto}@media (width>=40rem){.wrap{padding-inline:var(--sp-6)}}.section{padding-block:var(--sp-6);border-bottom:1px solid var(--border)}@media (width>=60rem){.section{padding-block:var(--sp-8)}}.section-head{gap:var(--sp-2) var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.09em;text-transform:uppercase;color:var(--text-tertiary);font-weight:500}.eyebrow--micro{font-size:var(--fs-micro);letter-spacing:.08em}.mono{font-family:var(--font-mono)}.measure{max-width:var(--measure)}.split{gap:var(--sp-6);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=60rem){.split{gap:var(--sp-8);grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start}.split--narrow-first{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}}.masthead{border-bottom:1px solid var(--border);background:var(--bg-page)}.masthead__inner{gap:var(--sp-2) var(--sp-4);min-height:56px;padding-block:var(--sp-2);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.wordmark{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--text);font-weight:600;text-decoration:none}.menu{position:relative}.menu__toggle{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-1);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);list-style:none;display:flex}.menu__toggle::-webkit-details-marker{display:none}.menu__toggle:hover{color:var(--text)}.menu__bars{background:currentColor;width:18px;height:2px;display:block;position:relative}.menu__bars:before,.menu__bars:after{content:"";background:currentColor;width:18px;height:2px;position:absolute;left:0}.menu__bars:before{top:-6px}.menu__bars:after{top:6px}.menu__state:checked~.menu__toggle .menu__bars{background:0 0}.menu__state:checked~.menu__toggle .menu__bars:before{top:0;transform:rotate(45deg)}.menu__state:checked~.menu__toggle .menu__bars:after{top:0;transform:rotate(-45deg)}.menu__state:checked~.menu__toggle{color:var(--text)}.menu__state:focus-visible~.menu__toggle{outline:2px solid var(--accent);outline-offset:2px}.nav{gap:var(--sp-3) var(--sp-5);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}@media (width<=39.999rem){.menu{display:contents}.menu__toggle{margin-inline-start:auto}.menu>.nav{flex-basis:calc(100% + var(--sp-4) * 2);margin-inline:calc(var(--sp-4) * -1);margin-bottom:calc(var(--sp-2) * -1);border-top:1px solid var(--border);padding-block:var(--sp-2);flex-direction:column;order:3;gap:0;display:none}.menu__state:checked~.nav{display:flex}.menu>.nav a{padding:var(--sp-3) var(--sp-4);border-bottom:0}.menu>.nav a[aria-current=page]{box-shadow:inset 2px 0 0 var(--border-strong);border-bottom:0}}@media (width>=40rem){.menu{align-items:center;display:flex}.menu__toggle{display:none}.menu>.nav{display:flex}}.nav a{color:var(--text-secondary);padding-block:var(--sp-1);border-bottom:1px solid #0000;text-decoration:none}.nav a:hover{color:var(--text);border-bottom-color:var(--text)}.nav a[aria-current=page]{color:var(--text);border-bottom-color:var(--border-strong)}.posture-strip{border-bottom:1px solid var(--border);background:var(--bg-sunken);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.03em;color:var(--text-tertiary)}.posture-strip__inner{gap:var(--sp-2) var(--sp-5);padding-block:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.posture-strip__pass{color:var(--status-pass)}.posture-strip__link{margin-left:auto}.hero{padding-block:var(--sp-6) var(--sp-6);border-bottom:1px solid var(--border)}@media (width>=60rem){.hero{padding-block:var(--sp-7) var(--sp-8)}}.hero h1{letter-spacing:-.021em;text-wrap:balance;max-width:22ch;margin-bottom:var(--sp-3);font-size:1.875rem;font-weight:600;line-height:1.14}@media (width>=40rem){.hero h1{font-size:var(--fs-display)}}.hero__lead{font-size:var(--fs-lead);color:var(--text-secondary);max-width:46ch;margin-bottom:var(--sp-5);line-height:1.45}.hero__body{color:var(--text-secondary);text-wrap:pretty;max-width:58ch;margin-bottom:var(--sp-5)}.actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.btn{font-size:var(--fs-sm);padding:.5625rem var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-page);color:var(--text);text-decoration:none}.btn:hover{border-color:var(--text);background:var(--bg-surface);color:var(--text)}.btn--primary{border-color:var(--text);background:var(--text);color:var(--bg-page)}.btn--primary:hover,.btn--primary:visited{background:var(--bg-page);color:var(--text)}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-page);min-width:0;overflow:hidden}.panel__cap{gap:var(--sp-1) var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);background:var(--bg-surface);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.panel__cap-value{text-transform:none;letter-spacing:.02em}.panel__pass{color:var(--status-pass);text-transform:none}.panel__body{padding:var(--sp-4)}.panel__foot{border-top:1px solid var(--border);background:var(--bg-surface);padding:var(--sp-4)}.scroll-x{min-width:0;overflow-x:auto}.dtable{font-size:var(--fs-xs)}.dtable th{padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);white-space:nowrap}.dtable td{padding:.5625rem var(--sp-4);border-bottom:1px solid var(--border);color:var(--text-secondary);vertical-align:top}.dtable tr:last-child td{border-bottom:0}.dtable__key{font-family:var(--font-mono);color:var(--text);white-space:nowrap;font-size:.75rem}.statbars{gap:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);grid-template-columns:1fr auto;align-items:center;display:grid}.statbars__row{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.statbars__bar{border-radius:1px;flex:none;min-width:3px;height:8px}.statbars__bar--accent{background:var(--accent);width:60.6%}.statbars__bar--critical{background:var(--sev-critical);width:1.9%}.statbars__label{color:var(--text-secondary);font-size:.75rem}.statbars__value{font-family:var(--font-mono);color:var(--text)}.statbars__value--critical{color:var(--sev-critical)}.cards{gap:var(--sp-4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=40rem){.cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=60rem){.cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-page);flex-direction:column;min-width:0;display:flex}.card:hover{border-color:var(--border-strong)}.card__head{padding:var(--sp-4) var(--sp-4) var(--sp-3)}.card__title-row{gap:var(--sp-2);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.card__title{font-size:var(--fs-h3);letter-spacing:-.01em;font-weight:600}.card__summary{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--text-secondary);text-wrap:pretty}.card__artifact{border-block:1px solid var(--border);background:var(--bg-code);padding:var(--sp-3) var(--sp-4)}.card__foot{padding:var(--sp-3) var(--sp-4) var(--sp-4);margin-top:auto}.card__stack{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--text-tertiary);margin-bottom:var(--sp-3);line-height:1.6}.card__links{gap:var(--sp-1) var(--sp-4);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}.card__note{color:var(--text-tertiary)}.chip{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-tertiary);white-space:nowrap;padding:2px 6px}.chip--pass{color:var(--status-pass);border-color:var(--fill-pass-border);background:var(--fill-pass)}.chip--info{color:var(--sev-low);border-color:var(--fill-info-border);background:var(--fill-info)}.chip--warn{color:var(--sev-medium);border-color:var(--fill-warn-border);background:var(--fill-warn)}.diagram{width:100%;min-width:0;height:auto}.diagram__zone{fill:none;stroke:var(--boundary);stroke-width:1px;stroke-dasharray:3 3}.diagram__zone-label{fill:var(--text-tertiary);font-family:var(--font-mono);font-size:7px}.diagram__node{fill:var(--bg-page);stroke:var(--border-strong)}.diagram__node--key{fill:var(--fill-accent);stroke:var(--accent)}.diagram__label{fill:var(--text);font-family:var(--font-mono);font-size:8px}.diagram__label--key{fill:var(--accent)}.diagram__flow{stroke:var(--text-tertiary);stroke-width:1px;fill:none}.diagram__caption{margin-top:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-tertiary);line-height:1.6}.matrix{grid-template-columns:repeat(8,1fr);gap:3px;display:grid}.matrix__cell{aspect-ratio:1;border:1px solid var(--border-strong);background:var(--bg-surface);border-radius:2px}.matrix__cell--pass{border-color:var(--fill-pass-border);background:var(--fill-pass)}.matrix__cell--pending{border-color:var(--fill-warn-border);background:var(--fill-warn)}.legend{gap:var(--sp-1) var(--sp-3);margin-top:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-tertiary);flex-wrap:wrap;display:flex}.buggrid{gap:var(--sp-2);grid-template-columns:1fr;list-style:none;display:grid}@media (width>=30rem){.buggrid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr))}}.buggrid__item{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp-3);background:var(--bg-page);min-width:0}.buggrid__item--ruled{border-color:var(--fill-pass-border);background:var(--fill-pass)}.buggrid__meta{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary)}.buggrid__name{margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--text);text-wrap:pretty}.buggrid__status{margin-top:var(--sp-2);gap:var(--sp-1) var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-micro);flex-wrap:wrap;display:flex}.buggrid__muted{color:var(--text-tertiary)}.legend__pass{color:var(--status-pass)}.legend__pending{color:var(--sev-medium)}.code{font-family:var(--font-mono);background:var(--bg-code);font-size:.71875rem;line-height:1.75}.code__line{gap:var(--sp-2);white-space:pre;border-left:2px solid #0000;padding:1px 6px;display:flex}.code__line--removed{background:var(--fill-removed);border-left-color:var(--sev-critical)}.code__line--added{background:var(--fill-added);border-left-color:var(--status-pass)}.code__sign{flex:none;width:1ch}.code__line--removed .code__sign{color:var(--sev-critical)}.code__line--added .code__sign{color:var(--status-pass)}.code__text{color:var(--text);min-width:0}.code__cite{margin-top:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-tertiary);letter-spacing:.02em}pre.code{padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-xs);color:var(--text);margin:0;overflow-x:auto}.service__head{padding:var(--sp-5) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--border)}.service__title{font-size:var(--fs-h3);letter-spacing:-.01em;margin-bottom:var(--sp-2);font-weight:600}.service__blurb{font-size:var(--fs-sm);color:var(--text-secondary);text-wrap:pretty;max-width:52ch}.spec{grid-template-columns:auto 1fr;display:grid}.spec dt{padding:.5625rem var(--sp-5);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);white-space:nowrap}.spec dd{padding:.5625rem var(--sp-5);border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.spec dd:last-of-type,.spec dt:last-of-type{border-bottom:0}.spec__value{font-family:var(--font-mono)}.service-list{border-top:1px solid var(--border);list-style:none}.service-list li{border-bottom:1px solid var(--border);padding-block:var(--sp-3);gap:var(--sp-1);display:grid}@media (width>=40rem){.service-list li{gap:var(--sp-4);grid-template-columns:18rem 1fr;align-items:baseline}}.service-list__name{font-size:var(--fs-sm);color:var(--text);font-weight:600}.service-list__desc{font-size:var(--fs-sm);color:var(--text-secondary);text-wrap:pretty}.linklist{border-top:1px solid var(--border);list-style:none}.linklist li{border-bottom:1px solid var(--border)}.linklist a{gap:var(--sp-1) var(--sp-4);padding:var(--sp-3) var(--sp-1);color:var(--text);flex-wrap:wrap;justify-content:space-between;text-decoration:none;display:flex}.linklist a:hover{background:var(--bg-surface)}.linklist a:visited .linklist__title{color:var(--accent-visited)}.linklist__title{font-size:var(--fs-body)}.linklist__date{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--text-tertiary);white-space:nowrap}.grades{border-top:1px solid var(--border);grid-template-columns:1fr;display:grid}.grades__cell{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);overflow-wrap:anywhere}.grades__cell:last-child{border-bottom:0}@media (width>=40rem){.grades{grid-template-columns:repeat(3,minmax(0,1fr))}.grades__cell{border-bottom:0;border-right:1px solid var(--border)}.grades__cell:last-child{border-right:0}}.grades__value{margin-top:2px;font-size:1.375rem;font-weight:600}.grades__value--pass{color:var(--status-pass)}.grades__value--pending{color:var(--text-tertiary);font-size:var(--fs-sm);font-weight:500}.prose{max-width:var(--measure)}.prose h1{letter-spacing:-.018em;margin-bottom:var(--sp-3);font-size:1.75rem;font-weight:600;line-height:1.2}.prose h2{font-size:var(--fs-h3);letter-spacing:-.01em;margin-block:var(--sp-6) var(--sp-3);font-weight:600}.prose p{color:var(--text-secondary);margin-bottom:var(--sp-4);text-wrap:pretty}.prose ul{margin-bottom:var(--sp-4);list-style:none}.prose li{color:var(--text-secondary);padding-left:var(--sp-4);margin-bottom:var(--sp-2);position:relative}.prose li:before{content:"—";color:var(--text-tertiary);position:absolute;left:0}.prose code{background:var(--bg-sunken);color:var(--text);border-radius:2px;padding:1px 4px;font-size:.875em}.prose strong{color:var(--text);font-weight:600}.footer{padding-block:var(--sp-5) var(--sp-7);gap:var(--sp-4);font-size:var(--fs-xs);color:var(--text-tertiary);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.footer__meta{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.03em}.footer__links{gap:var(--sp-2) var(--sp-5);flex-wrap:wrap;display:flex}.stack-2>*+*{margin-top:var(--sp-2)}.stack-4>*+*{margin-top:var(--sp-4)}.stack-5>*+*{margin-top:var(--sp-5)}.note{font-size:var(--fs-xs);color:var(--text-tertiary);text-wrap:pretty}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{:root{--bg-page:#fff;--bg-surface:#fff;--bg-code:#fff;--bg-sunken:#fff;--border:#b8bec6;--border-strong:#8d949d;--text:#000;--text-secondary:#23272d;--text-tertiary:#3c424a;--text-gutter:#3c424a;--accent:#00308f;--accent-visited:#00308f}.masthead,.posture-strip,.skip-link,footer,.actions{display:none!important}body{background:#fff;font-size:10.5pt;line-height:1.4}.section{padding-block:.6rem}.wrap{max-width:none;padding-inline:0}.panel,.card{break-inside:avoid;page-break-inside:avoid;border:0;padding:0}.panel__cap{border:0;padding-inline:0;font-weight:600}.panel__body{padding-inline:0}h1,h2,h3{break-after:avoid;page-break-after:avoid}tr,li,.grades__cell{break-inside:avoid;page-break-inside:avoid}.prose a[href^=http]:after,.dtable a[href^=http]:after{content:" (" attr(href) ")";color:var(--text-tertiary);word-break:break-all;font-size:8.5pt}.scroll-x{overflow:visible!important}a{text-decoration:none}}
