:root{--bg:#fbfaff;--surface:#f1eefb;--text:#1d1630;--muted:#4f4668;--accent:#6a3fc0;--accent-text:#ffffff;--border:#d9d1ee;--code-bg:#ece8f7;--font-head:'Rubik', Georgia, serif;--font-body:'Nunito Sans', system-ui, sans-serif;--font-mono:ui-monospace, Consolas, monospace;--radius:8px;--measure:66ch;--scale:1.2}@media (prefers-color-scheme:dark){:root{--bg:#15111f;--surface:#1e1830;--text:#efeaff;--muted:#bdb2d8;--accent:#b9a0f7;--accent-text:#1a1030;--border:#382f55;--code-bg:#251e3d}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:1.0625rem/1.65 var(--font-body);overflow-wrap:break-word}
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.2;margin:1.6em 0 .5em}
h1{font-size:calc(1rem * var(--scale) * var(--scale) * var(--scale));margin-top:.4em}
h2{font-size:calc(1rem * var(--scale) * var(--scale))}h3{font-size:calc(1rem * var(--scale))}
p,ul,ol,table,pre,blockquote{margin:0 0 1.1em}
a{color:var(--accent);text-underline-offset:.15em}a:hover{text-decoration-thickness:2px}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
img{max-width:100%;height:auto;border-radius:var(--radius)}
figure{margin:1.5em 0}figcaption{color:var(--muted);font-size:.9em;margin-top:.4em}
.shot img{display:block;border:1px solid var(--border);background:#fff}.shot-credit{display:block;font-size:.9em}
.diagram img{display:block;width:100%;border:1px solid var(--border);background:#fff;border-radius:var(--radius)}
code,pre{font-family:var(--font-mono);font-size:.92em;background:var(--code-bg);border-radius:var(--radius)}
code{padding:.1em .3em}pre{padding:1em;overflow-x:auto}pre code{padding:0;background:none}
blockquote{margin-left:0;padding:.2em 1em;border-left:4px solid var(--accent);color:var(--muted)}
.table-wrap{overflow-x:auto;margin:0 0 1.1em}table{border-collapse:collapse;width:100%;margin:0}
th,td{text-align:left;padding:.5em .6em;border-bottom:1px solid var(--border);vertical-align:top}
th{font-family:var(--font-head)}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-text);padding:.5em 1em;z-index:10}.skip:focus{left:1em}
.wrap{max-width:var(--wrap,72rem);margin:0 auto;padding:0 16px}
.prose{max-width:var(--measure)}
.muted{color:var(--muted)}
.cite{font-size:.75em;line-height:0}.cite a{text-decoration:none}
.sources{margin-top:3em;padding-top:1em;border-top:1px solid var(--border);font-size:.92em}.sources h2{font-size:1.1em;margin-top:0}
.sources li{margin-bottom:.4em}.accessed{color:var(--muted)}
.toc{border:1px solid var(--border);border-radius:var(--radius);padding:.8em 1em;background:var(--surface);font-size:.92em;margin-bottom:1.5em}
.toc-label{font-family:var(--font-head);font-weight:700;margin:0 0 .3em}.toc ol{margin:0;padding-left:1.2em}
.draft-banner{background:#7a1f1f;color:#fff;text-align:center;padding:.4em 16px;font:600 .9rem/1.4 system-ui,sans-serif}
.site-footer{border-top:1px solid var(--border);margin-top:4em;padding:2em 0;color:var(--muted);font-size:.9em}
.site-footer nav{display:flex;flex-wrap:wrap;gap:.4em 1.2em;margin-bottom:.6em}
.brand{display:inline-flex;align-items:center;gap:.6em;color:var(--text);text-decoration:none;font:700 1.15rem/1.2 var(--font-head)}
.brand img{width:2.2em;height:2.2em;border-radius:0}
.page-meta{color:var(--muted);font-size:.9em}
.page-reviewed{color:var(--muted);font-size:.88em;margin-top:-.4em}
.new-badge{display:inline-block;font:700 .7em/1.6 var(--font-body);text-transform:uppercase;letter-spacing:.06em;padding:0 .5em;border-radius:99px;background:var(--accent);color:var(--accent-text);vertical-align:middle}
.pager{display:flex;justify-content:space-between;gap:1em;flex-wrap:wrap;margin-top:3em;padding-top:1em;border-top:1px solid var(--border)}
.pager a{max-width:48%}
@media (max-width:640px){.pager a{max-width:100%}}

.h-top{background:var(--surface);border-bottom:1px solid var(--border)}.h-top .wrap{padding-top:.9em}
.h-tabs{display:flex;gap:.2em;flex-wrap:wrap;margin-top:.8em}
.h-tabs a{padding:.5em .9em;border:1px solid transparent;border-bottom:0;border-radius:var(--radius) var(--radius) 0 0;text-decoration:none;color:var(--muted);font-weight:600}
.h-tabs a[aria-current]{background:var(--bg);border-color:var(--border);color:var(--text)}
.h-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:2rem;margin:2rem 0 3rem}
.h-sections h2{font-size:1.2em;margin:0 0 .6em}.h-sections h2 span{color:var(--accent)}
.h-sections ol{list-style:none;padding:0;margin:0}.h-sections li{padding:.4em 0;border-bottom:1px solid var(--border)}
.h-n{font:600 .9em var(--font-mono);color:var(--muted);margin-right:.5em}
.h-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22rem);gap:3rem;padding-top:2rem}
.h-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1em 1.2em;align-self:start}
.h-panel h2{font-size:1em;text-transform:uppercase;letter-spacing:.06em;margin-top:.8em}
.h-boxes{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem;margin:2rem 0 3rem}
.h-boxes a{display:block;height:100%;padding:1.2em;border-radius:var(--radius);background:var(--accent);color:var(--accent-text);text-decoration:none}
.h-boxes strong{display:block;font:700 1.3em var(--font-head)}.h-boxes span{opacity:.9}
.h-article{display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:2.5rem;padding-top:1.5rem}
.h-side{font-size:.92em}.h-side ol{list-style:none;padding:0}.h-side li{padding:.3em 0}.h-side a[aria-current]{font-weight:700;color:var(--text)}
@media (max-width:860px){.h-split,.h-article{grid-template-columns:minmax(0,1fr)}}

.d-width-narrow{--wrap:60rem;--measure:62ch}.d-width-medium{--wrap:72rem}.d-width-wide{--wrap:86rem;--measure:74ch}
.d-density-compact .prose{font-size:.97rem;line-height:1.55}.d-density-airy .prose{font-size:1.125rem;line-height:1.8}.d-density-airy .prose p{margin-bottom:1.35em}
.d-links-tint .prose a:not(.ext){text-decoration:none;background:color-mix(in srgb,var(--accent) 14%,transparent);padding:0 .15em;border-radius:3px}
.d-links-bold .prose a{font-weight:700;text-decoration-thickness:2px}
.d-headings-caps .prose h2{text-transform:uppercase;letter-spacing:.07em;font-size:1.15em}
.d-headings-rule .prose h2{border-bottom:2px solid var(--border);padding-bottom:.25em}
.d-headings-bar .prose h2{border-left:.3em solid var(--accent);padding-left:.55em}
.d-headings-numbered .prose{counter-reset:h2}.d-headings-numbered .prose h2::before{counter-increment:h2;content:counter(h2) ". ";color:var(--accent)}
.d-figures-shadow figure img{border:0;box-shadow:0 6px 24px rgba(0,0,0,.14)}
.d-figures-plain figure img{border:0}
.d-figures-tilt figure{background:var(--surface);padding:.8em;border:1px solid var(--border);border-radius:var(--radius);transform:rotate(-.6deg)}
.d-header-band .site-header{background:var(--accent);border:0}.d-header-band .site-header,.d-header-band .site-header a,.d-header-band .site-header .muted{color:var(--accent-text)}
.d-header-ink .site-header{background:var(--text);border:0}.d-header-ink .site-header,.d-header-ink .site-header a,.d-header-ink .site-header .muted{color:var(--bg)}
.d-header-rule .site-header{border-bottom:6px solid var(--accent)}
.d-header-centred .site-header .wrap{justify-content:center;flex-direction:column;text-align:center}
.d-footer-band .site-footer{background:var(--surface);border-top:6px solid var(--accent)}
.d-footer-centred .site-footer{text-align:center}.d-footer-centred .site-footer nav{justify-content:center}

.hp{padding:3rem 0}.hp>.wrap,.hp-sources{padding-left:clamp(16px,4vw,48px);padding-right:clamp(16px,4vw,48px)}.hp+.hp{border-top:1px solid var(--border)}.hp-h{margin-top:0}
.hp-btn{display:inline-block;background:var(--accent);color:var(--accent-text);padding:.75em 1.25em;border-radius:var(--radius);text-decoration:none;font-weight:700;margin:.3em .6em .3em 0}
.hp-btn--ghost{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.hp-img figure{margin:0}.hp-img img{width:100%}.hp-img figcaption{display:none}.hp-img--small{max-width:14rem}
.hp-n{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--accent);color:var(--accent-text);font:700 .95rem var(--font-head);margin-bottom:.4em}
.hp-kicker{font:700 .8em var(--font-head);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0 0 .4em}
.hp-hero h1{font-size:clamp(2rem,4.5vw,3.2rem);margin:0 0 .4em}.hp-hero-text{max-width:36rem}.hp-hero-text p{font-size:1.15em}
.hp-hero--split .wrap,.hp-hero--framed .wrap,.hp-hero--band .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:3rem;align-items:center}
.hp-hero--stacked{text-align:center}.hp-hero--stacked .hp-hero-text{margin:0 auto 2rem}.hp-hero--stacked .hp-img{max-width:min(34rem,100%);margin:0 auto}.hp-hero--stacked .hp-img img{max-height:30rem;width:auto;margin:0 auto}
.hp-hero--band{background:var(--accent);color:var(--accent-text)}.hp-hero--band a:not(.hp-btn){color:inherit}.hp-hero--band .hp-btn{background:var(--accent-text);color:var(--accent)}.hp-hero--band .hp-btn--ghost{background:transparent;color:var(--accent-text);box-shadow:inset 0 0 0 2px var(--accent-text)}
.hp-hero--framed .wrap>*{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.6rem}
.hp-start-list{list-style:none;padding:0;margin:1.5rem 0 0}
.hp-start--cards .hp-start-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}
.hp-start-list a{display:flex;flex-direction:column;gap:.3em;height:100%;padding:1.1em 1.2em;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-decoration:none;color:var(--text)}
.hp-start-list a:hover{border-color:var(--accent)}.hp-start-list strong{font:700 1.1em var(--font-head);color:var(--accent)}
.hp-start--numbered .hp-start-list a{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.2em 1em;border:0;border-bottom:1px solid var(--border);border-radius:0;background:none;padding:.9em 0}.hp-start--numbered .hp-start-list .muted{flex-basis:100%;padding-left:3rem}
.hp-start--callout .wrap{border-left:6px solid var(--accent);background:var(--surface);padding-top:1.2rem;padding-bottom:1.2rem;border-radius:var(--radius)}
.hp-ideas-list{list-style:none;padding:0;margin:1.5rem 0 0}.hp-ideas-list h3{margin:.2em 0 .3em}
.hp-ideas--grid .hp-ideas-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.5rem}
.hp-ideas--grid .hp-ideas-list li{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}
.hp-ideas--list .hp-ideas-list li{display:grid;grid-template-columns:2.5rem minmax(0,14rem) minmax(0,1fr);gap:1.5rem;align-items:center;padding:1.2rem 0;border-bottom:1px solid var(--border)}
.hp-ideas--list .hp-ideas-list li:not(:has(.hp-img))>div{grid-column:2 / span 2}
.hp-ideas--steps .hp-ideas-list{counter-reset:s}.hp-ideas--steps .hp-ideas-list li{position:relative;padding:0 0 1.5rem 0;border-left:3px solid var(--border);padding-left:1.5rem;margin-left:1rem}
.hp-ideas--steps .hp-n{position:absolute;left:-1.1rem;top:0}.hp-ideas--steps .hp-img{display:none}
.hp-topics-list{display:grid;gap:1.5rem;margin-top:1.5rem}
.hp-topics--tiles .hp-topics-list{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}.hp-topics--tiles article{border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;background:var(--surface)}
.hp-topics--rows article{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:0 2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.hp-topics--rows article>.hp-img{grid-row:span 3}
.hp-topics--columns .hp-topics-list{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.hp-topics--columns h3{border-bottom:3px solid var(--accent);padding-bottom:.3em}
.hp-topics-list ul{padding-left:1.1em;margin:.5em 0 0}.hp-topics-list h3{margin:.4em 0 .3em}
.hp-featured .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;align-items:center}
.hp-featured .wrap:not(:has(.hp-img)){grid-template-columns:minmax(0,46rem)}
.hp-featured--quote .hp-featured-text{border-left:6px solid var(--accent);padding-left:1.5rem;font-size:1.1em}
.hp-trust ul{list-style:none;padding:0;margin:1rem 0 0}
.hp-trust--strip ul{display:flex;flex-wrap:wrap;gap:.6rem 2rem}.hp-trust--strip li::before{content:"✓ ";color:var(--accent);font-weight:700}
.hp-trust--box .wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.hp-trust--box li{padding:.4em 0;border-bottom:1px dashed var(--border)}
.hp-trust--icons ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1rem}.hp-trust--icons li{padding:1rem;border-top:4px solid var(--accent);background:var(--surface)}
.hp-faq details{border-bottom:1px solid var(--border);padding:.9em 0}.hp-faq summary{cursor:pointer;font:700 1.05em var(--font-head)}
.hp-faq--columns dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.5rem 2.5rem}.hp-faq dt{font:700 1.05em var(--font-head)}.hp-faq dd{margin:.3em 0 0}
.hp-recent ul{padding-left:1.1em}.hp-recent--cards ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}.hp-recent--cards li{border:1px solid var(--border);border-radius:var(--radius);padding:1rem}
.hp-sources{padding-bottom:2rem}
@media (max-width:760px){.hp-ideas--list .hp-ideas-list li{grid-template-columns:2.5rem minmax(0,1fr)}.hp-ideas--list .hp-ideas-list li>.hp-img,.hp-ideas--list .hp-ideas-list li>div,.hp-ideas--list .hp-ideas-list li:not(:has(.hp-img))>div{grid-column:2}.hp{padding:2rem 0}.hp-hero--split .wrap,.hp-hero--framed .wrap,.hp-hero--band .wrap,.hp-featured .wrap,.hp-ideas--list .hp-ideas-list li,.hp-topics--rows article{grid-template-columns:minmax(0,1fr);gap:1.2rem}.hp-img--small{max-width:100%}}
