:root{--page:#fff;--panel:#fff;--ink:#25133f;--muted:#635671;--line:#d9d1e7;--violet:#5b27db;--violet-strong:#5b27db;--violet-hover:#421aa6;--on-violet:#fff;--on-violet-muted:#eee7ff;--citrus:#e6f35a;--on-citrus:#25133f;--lilac:#eee7ff;--focus:#5b27db;--partial:#8a5a00;--fail:#b3261e;--unknown:#5f6670;--sans:Arial,Helvetica,sans-serif;--serif:Georgia,"Times New Roman",serif;--mono:"Courier New",monospace;color-scheme:light dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--page:#150d24;--panel:#1f1534;--ink:#efeaf8;--muted:#b7aac9;--line:#3b2d57;--violet:#b49cff;--lilac:#2b1d4a;--focus:#b49cff;--partial:#f0b94a;--fail:#ff8a80;--unknown:#a3aab3}}:root[data-theme=dark]{--page:#150d24;--panel:#1f1534;--ink:#efeaf8;--muted:#b7aac9;--line:#3b2d57;--violet:#b49cff;--lilac:#2b1d4a;--focus:#b49cff;--partial:#f0b94a;--fail:#ff8a80;--unknown:#a3aab3}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--page);color:var(--ink);font:17px/1.55 var(--sans);margin:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}[hidden]{display:none!important}.wrap{width:min(1240px,100% - 64px);margin-inline:auto}.masthead{background:var(--violet-strong);color:var(--on-violet);border-bottom:6px solid var(--citrus)}.nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;min-height:88px;display:flex}.site-logo{align-items:center;min-height:44px;display:inline-flex}.site-logo img{width:auto;height:32px;display:block}.navlinks{flex-wrap:wrap;gap:0 28px;font-size:14px;font-weight:700;display:flex}.navlinks a,.foot a{min-height:44px;color:inherit;align-items:center;text-decoration:none;display:inline-flex}.navlinks a:hover,.foot a:hover{text-decoration:underline;text-decoration-color:var(--citrus);text-decoration-thickness:2px}main{padding-bottom:64px}.site-footer{background:var(--violet-strong);color:var(--on-violet);border-top:6px solid var(--citrus);padding:32px 0}.foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 24px;font-size:16px;display:flex}.foot p{margin:0;padding-block:10px}.foot ul{flex-wrap:wrap;gap:0 18px;margin:0;padding:0;list-style:none;display:flex}a{color:var(--violet);text-underline-offset:4px}a:focus-visible,button:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:5px}.masthead a:focus-visible,.site-footer a:focus-visible{outline-color:var(--citrus)}.kit-skip{position:absolute;left:-9999px}.kit-skip:focus{z-index:10;background:var(--panel);color:var(--ink);padding:12px;top:12px;left:16px}h1,h2,h3{font-family:var(--sans);color:var(--ink);text-wrap:balance}h1{letter-spacing:-.04em;margin:48px 0 20px;font-size:clamp(2.25rem,5vw,3.5rem);font-weight:800;line-height:1.02}h2{letter-spacing:-1.5px;margin:48px 0 16px;font-size:40px;font-weight:800;line-height:1.05}h3{margin:32px 0 8px;font-size:20px;line-height:1.3}p,ul,ol{margin:0 0 16px}strong{font-weight:700}.eyebrow{font:700 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:1.5px;color:var(--violet);margin:0 0 16px}.button{background:var(--violet-strong);min-height:48px;color:var(--on-violet);border:1px solid var(--violet-strong);justify-content:center;align-items:center;padding:13px 21px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.button:hover{background:var(--violet-hover)}.hero{grid-template-columns:1.2fr 1fr;align-items:center;gap:64px;padding:72px 0 64px;display:grid}.hero .eyebrow{background:var(--lilac);padding:9px 13px;display:inline-block}.hero h1{letter-spacing:-.05em;max-width:650px;margin:0 0 26px;font-size:clamp(48px,6vw,82px);line-height:.98}.hero h1 em{color:var(--violet);background:linear-gradient(transparent 73%, var(--citrus) 73%, var(--citrus) 94%, transparent 94%);font-style:normal}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .hero h1 em{background:linear-gradient(transparent 88%, var(--citrus) 88%, var(--citrus) 97%, transparent 97%)}}:root[data-theme=dark] .hero h1 em{background:linear-gradient(transparent 88%, var(--citrus) 88%, var(--citrus) 97%, transparent 97%)}.lead{max-width:550px;margin:0 0 28px;font-size:19px;line-height:1.55}.actions{flex-wrap:wrap;align-items:center;gap:8px 18px;display:flex}.textlink{align-items:center;min-height:44px;font-size:16px;font-weight:700;display:inline-flex}.notebook{border:2px solid var(--violet-strong);background:var(--panel);box-shadow:12px 12px 0 var(--citrus);transform:rotate(1deg)}.notebook-top{background:var(--violet-strong);color:var(--on-violet);font:12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:1px;justify-content:space-between;gap:16px;padding:15px 21px;display:flex}.notebook-body{padding:28px}.notebook h2{font:32px/1.1 var(--serif);letter-spacing:0;margin:0 0 12px}.notebook ol{margin:0;padding:0;list-style:none}.notebook li{border-bottom:1px solid var(--line);grid-template-columns:32px 1fr;align-items:center;gap:12px;display:grid}.notebook li:last-child{border-bottom:0}.notebook a{min-height:52px;color:var(--ink);text-decoration-color:var(--line);align-items:center;padding-block:8px;font-size:17px;font-weight:700;display:flex}.notebook a:hover{text-decoration-color:var(--violet)}.step{font:700 12px var(--mono);color:var(--violet)}.strip{border-block:2px solid var(--ink);background:var(--citrus);color:var(--on-citrus);font:700 13px/1.4 var(--mono);flex-wrap:wrap;justify-content:space-between;gap:12px 32px;padding:20px 24px;display:flex}.strip span:before{content:"↗";margin-right:10px}main>section{padding:64px 0 0}main>section .eyebrow+h2{margin-top:0}.selector{background:var(--violet-strong);color:var(--on-violet);grid-template-columns:.8fr 1.6fr;align-items:start;gap:32px;margin-bottom:32px;padding:32px;display:grid}.selector label{margin-bottom:8px;font-size:16px;font-weight:700;display:block}.selector select{color:#25133f;width:100%;min-height:48px;font:16px var(--sans);background:#fff;border:0;border-radius:0;padding:12px 14px}.selector select:focus-visible{outline-color:var(--citrus)}.result{border-left:6px solid var(--citrus);background:var(--panel);color:var(--ink);padding:26px 28px}.result .eyebrow{margin-bottom:10px}.result h3{font:31px/1.15 var(--serif);margin:0 0 16px}.result-label{margin:16px 0 4px;font-weight:700}.result ul{margin:0 0 8px;padding-left:20px}.result a{align-items:center;min-height:44px;font-weight:700;display:inline-flex}.kit-table{margin:24px 0}.kit-table-scroll{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--violet-strong);overflow-x:auto}.kit-table table{border-collapse:collapse;width:100%;font-size:16px}.kit-table caption{caption-side:bottom;text-align:left;color:var(--muted);border-top:1px solid var(--line);padding:12px 16px}.kit-table th,.kit-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:12px 16px}.kit-table tbody tr:last-child>*{border-bottom:0}.kit-table thead th{font:700 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.kit-table tbody th{background:var(--panel);position:sticky;left:0}.kit-table .kit-end{text-align:right}.kit-unknown{color:var(--unknown)}.kit-table td ul{margin:0;padding-left:18px}.kit-table td li+li{margin-top:4px}.tools{min-width:880px}.tools th a{align-items:center;min-height:44px;font-weight:700;display:inline-flex}#needs-table{min-width:720px}#needs-table tbody th{width:30%}#needs-table .step{margin-right:6px;display:inline-block}.chosen-label{background:var(--citrus);width:max-content;color:var(--on-citrus);font:700 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:1px;margin-top:6px;padding:2px 8px;display:block}#needs-table tr.is-chosen>*{background:var(--lilac)}#needs-table tr.is-chosen>th{box-shadow:inset 6px 0 0 var(--violet-strong)}.split{grid-template-columns:1.15fr 1fr;gap:64px;display:grid}.feature{background:var(--citrus);color:var(--on-citrus);border:2px solid var(--on-citrus);padding:38px}.feature h2,.feature .eyebrow{color:var(--on-citrus)}.feature h2{font-size:36px}.feature p{max-width:450px}.brief{border-collapse:collapse;color:#25133f;width:100%;font:15px/1.5 var(--mono);background:#fff;border:1px solid #25133f;margin-top:26px}.brief caption{text-align:left;font:700 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:1px;color:#25133f;padding-bottom:8px}.brief th,.brief td{text-align:left;vertical-align:top;border-bottom:1px solid #d9d1e7;padding:9px 18px}.brief th{font-weight:400}.brief td{font-weight:700}.brief tr:last-child>*{border-bottom:0}.proof ol{counter-reset:steps;margin:26px 0 0;padding:0;list-style:none}.proof li{counter-increment:steps;border-bottom:1px solid var(--line);grid-template-columns:34px 1fr;gap:0 16px;padding:16px 0;font-weight:700;display:grid}.proof li:before{content:"0" counter(steps);font:400 12px var(--mono);color:var(--violet);padding-top:4px}.bottom{background:var(--lilac);border-left:8px solid var(--violet-strong);justify-content:space-between;align-items:center;gap:30px;margin-top:64px;padding:40px;display:flex}.bottom h2{margin:0;font-size:32px}.bottom p{margin:10px 0 0}.kit-article,.kit-page-header,.kit-body{max-width:37rem}.kit-page-header{margin-bottom:32px}.kit-body h2{letter-spacing:-.03em;font-size:clamp(1.6rem,3.5vw,2.25rem)}.kit-standfirst{margin:0 0 16px;font-size:19px}.kit-dates,.kit-byline,.kit-method-link{color:var(--muted);margin:0 0 4px;font-size:16px}.kit-dates{flex-wrap:wrap;gap:4px 20px;display:flex}.kit-breadcrumbs ol{flex-wrap:wrap;align-items:center;gap:0 8px;margin:24px 0 0;padding:0;font-size:16px;list-style:none;display:flex}.kit-breadcrumbs li+li:before{content:"/";color:var(--muted);margin-inline-end:8px}.kit-breadcrumbs a{align-items:center;min-height:44px;display:inline-flex}.kit-contact{font-size:19px}.kit-disclosure{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-left:6px solid var(--violet-strong);margin:24px 0;padding:12px 16px;font-size:1em}.kit-body ul>li::marker{color:var(--violet)}.kit-figure{margin:32px 0}.kit-figure-meta{color:var(--muted);flex-wrap:wrap;gap:4px 16px;font-size:16px;display:flex}.kit-sources{border-top:1px solid var(--line);margin-top:48px;padding-top:16px;font-size:16px}.kit-changes time{font-weight:700}.kit-toc{background:var(--panel);border:1px solid var(--line);border-left:6px solid var(--violet-strong);margin:24px 0 32px;padding:12px 16px}.kit-toc-label{font:700 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:1px;margin:0 0 4px}.kit-toc ul{margin:0;padding:0;list-style:none}.kit-toc a{align-items:center;min-height:44px;display:inline-flex}.draft-note{border:1px dashed var(--partial);border-left:6px solid var(--partial);background:var(--panel);padding:8px 16px;font-weight:700}code{font-family:var(--mono);font-size:.95em}.chip{white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:14px;font-weight:700;line-height:1.5;text-decoration:none;display:inline-flex}.chip:before{content:"";border:1.5px solid;border-radius:50%;width:8px;height:8px}.chip-tested{color:var(--violet)}.chip-tested:before{background:currentColor}.chip-partial{color:var(--partial)}.chip-partial:before{background:linear-gradient(90deg,currentColor 50%,#0000 50%)}.chip-fail{color:var(--fail)}.chip-fail:before{content:"✕";border:0;width:auto;height:auto;font-size:12px}.chip-unknown{color:var(--unknown);border-style:dashed}.chip-unknown:before{content:"?";border:0;width:auto;height:auto}.chip-researched{color:var(--muted)}@media (width<=1024px){.hero{gap:36px}.split{gap:32px}}@media (width<=760px){.wrap{width:calc(100% - 36px)}.nav{min-height:74px;padding:12px 0}.navlinks{gap:0 16px}.hero{padding:40px 0;display:block}.hero h1{font-size:48px}.lead{font-size:17px}.notebook{box-shadow:8px 8px 0 var(--citrus);margin:36px 8px 0 0;transform:none}.notebook-body{padding:22px}.notebook h2{font-size:28px}.strip{padding:18px;font-size:12px}main>section{padding-top:42px}h2{font-size:34px}.selector{padding:24px;display:block}.result{border-left:0;border-top:6px solid var(--citrus);margin-top:24px;padding:22px}.result h3{font-size:26px}.split{display:block}.proof{margin-top:42px}.feature{padding:24px}.feature h2{font-size:30px}.brief th,.brief td{padding:8px 10px}.bottom{padding:28px;display:block}.bottom .button{margin-top:22px}.kit-table th,.kit-table td{padding:10px 12px}#needs-table{min-width:620px}#needs-table tbody th{position:static}}
