@layer tokens,base,layout,components,pages;@font-face{font-family:schibsted grotesk;src:url(/fonts/schibsted-grotesk-latin-wght-normal.woff2)format("woff2");font-weight:400 900;font-display:swap}@layer tokens{:root{--navy:#0c3164;--sky:#60bdeb;--paper:#f7fafd;--surface:#fff;--tint:#e6eef8;--chrome:#0c3164;--chrome-text:#e8f0f9;--chrome-muted:#a9c0d9;--chrome-accent:#9fd6f3;--text:#172334;--muted:#4f6177;--line:#d3deea;--link:#0b5aa8;--ok:#0a7f5a;--warn:#9a5b07;--plate-light:#eaf2fa;--plate-dark:#0c3164;--status-stale:#6b7685;--status-reflection:#c62f2f;--status-done:#d26a12;--status-proposed:#3f9d4c;--status-upstream:#0f8a3c;--font:"Schibsted Grotesk", system-ui, sans-serif;--mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", "Menlo", monospace;--page:150rem;--measure:88ch;--gutter:clamp(16px, 3vw, 64px);color-scheme:light}@media(prefers-color-scheme:dark){:root{--navy:#9fd6f3;--sky:#60bdeb;--paper:#081a31;--surface:#0d2340;--tint:#0f2848;--chrome:#04101f;--text:#e3ecf6;--muted:#9fb2c8;--line:#23406a;--link:#8fcdf0;--ok:#4fc79b;--warn:#e7a94b;--plate-light:#e3eef9;--status-stale:#9aa6b5;--status-reflection:#ff7a7a;--status-done:#ffa552;--status-proposed:#8fdc8a;--status-upstream:#4fe08a;color-scheme:dark}}}@layer base{*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--text);font:1.0625rem/1.6 var(--font);font-feature-settings:"ss01"}a{color:var(--link);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--sky);outline-offset:2px;border-radius:2px}code{font-family:var(--mono);font-size:.88em}h1,h2,h3{color:var(--navy);line-height:1.15;letter-spacing:-.015em}h1{font-size:clamp(2.1rem,1.5rem + 2.4vw,3.1rem);font-weight:800;margin:0 0 .5em;letter-spacing:-.03em}h2{font-size:1.6rem;font-weight:700;margin:3.5rem 0 1.25rem}h2>a{color:inherit}h3{font-size:1.2rem;font-weight:700;margin:0}@media(width >= 120rem){html{font-size:112.5%}}}@layer layout{body{display:flex;flex-direction:column;min-height:100dvh}main{flex:1;padding-bottom:3rem}.wrap{max-width:var(--page);margin-inline:auto;padding-inline:var(--gutter)}main>article{padding-top:2rem}.skip{position:absolute;left:-999px}.skip:focus{left:var(--gutter);top:.5rem;background:var(--surface);padding:.5rem 1rem;z-index:10}.site-header{background:var(--chrome)}.site-header .wrap,.site-footer .wrap{max-width:none}.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding-block:.9rem}.brand{font-weight:800;font-size:1.2rem;color:#fff;text-decoration:none;letter-spacing:-.02em}.trail ol{display:flex;flex-wrap:wrap;align-items:baseline;list-style:none;margin:0;padding:0;color:var(--chrome-muted)}.trail li+li::before{content:"›";margin-inline:.55rem;color:var(--chrome-muted)}.trail li:not(:first-child) a{color:var(--chrome-text);text-decoration:none}.trail li:not(:first-child) a:hover{color:var(--chrome-accent);text-decoration:underline}.trail [aria-current]:not(.brand){color:var(--chrome-muted)}.site-nav ul{display:flex;gap:0 1.5rem;list-style:none;margin:0;padding:0}.site-nav a{color:var(--chrome-text);text-decoration:none;font-weight:500}.site-nav a:hover,.site-nav a[aria-current]{color:var(--chrome-accent);text-decoration:underline}.site-footer{background:var(--chrome);color:var(--chrome-muted);font-size:.85rem}.site-footer a{color:var(--chrome-text)}.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 2rem;padding-block:.6rem}.site-footer p{margin:.15rem 0}.site-footer p:first-child a{font-weight:600}@media(width <= 26rem){.site-nav ul{gap:0 1rem}}}@layer components{.diagram{margin:1.5rem 0;overflow-x:auto}.diagram pre.mermaid{margin:0;background:0 0;padding:0}.diagram pre.mermaid:not([data-processed]){color:var(--muted);font-size:.85rem}.diagram svg{display:block;max-width:100%;height:auto}.diagram .node rect{rx:6px;ry:6px}.diagram .cluster rect{fill:transparent!important;stroke:var(--link)!important;stroke-width:4px!important;stroke-dasharray:1 10;stroke-linecap:round;rx:12px;ry:12px}.diagram .diagram-legend{margin-top:1rem}.diagram .diagram-legend svg{max-width:min(100%,28rem)!important}.diagram-wide svg{width:100%;max-width:none!important}.diagram figcaption{font-size:.88rem;color:var(--muted);margin-top:.6rem;max-width:var(--measure)}}@layer components{.pill{display:inline-block;white-space:nowrap;padding:.15rem .65rem;border-radius:999px;font-size:.85rem;font-weight:700;line-height:1.5;color:var(--pill-color);border:1.5px solid var(--pill-color);background:color-mix(in srgb,var(--pill-color) 12%,transparent)}.pill-stale{--pill-color:var(--status-stale);font-weight:600}.pill-reflection{--pill-color:var(--status-reflection)}.pill-done{--pill-color:var(--status-done)}.pill-proposed{--pill-color:var(--status-proposed)}.pill-upstream{--pill-color:var(--status-upstream);color:#fff;border-color:transparent;background:linear-gradient(100deg,#0f8a3c,#2fbf5a 30%,#b6f05a 50%,#2fbf5a 70%,#0f8a3c);background-size:250% 100%;box-shadow:0 0 0 3px color-mix(in srgb,#2fbf5a 25%,transparent);text-shadow:0 1px 0 rgb(0 0 0/25%)}@media(prefers-reduced-motion:no-preference){.pill-upstream{animation:party 3s ease-in-out infinite}.pill-upstream>span{display:inline-block;animation:pop 3s ease-in-out infinite}@keyframes party{50%{background-position:100% 0}}@keyframes pop{0%,80%,100%{transform:none}88%{transform:rotate(-18deg)scale(1.3)}}}}@layer components{.table-scroll{overflow-x:auto;margin-top:2.5rem}.problem-table{width:100%;border-collapse:collapse}.problem-table thead th{text-align:left;font-size:.9rem;color:var(--muted);font-weight:600;padding:0 1rem .6rem;border-bottom:2px solid var(--line)}.problem-table td{padding:.85rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}.problem-table tbody tr:hover td{background:color-mix(in srgb,var(--sky) 6%,transparent)}.problem-table td:first-child{width:38%}.problem-table td:first-child a{font-weight:700;font-size:1.08rem;color:var(--navy);text-decoration:none}.problem-table td:first-child a:hover{text-decoration:underline}.problem-table td:first-child p{margin:.2rem 0 0;color:var(--muted);font-size:.93rem}.problem-table .parts{margin:.5rem 0 0;padding-left:1.1rem;list-style:square;font-size:.93rem}.problem-table .parts li+li{margin-top:.2rem}.problem-table .parts a{font-weight:600;font-size:.95rem}.problem-table td.did{font-size:.93rem}.problem-table td.did ul{margin:0;padding-left:1.1rem;list-style:square}.problem-table td.did li+li{margin-top:.2rem}.problem-table td:nth-child(3){width:18rem}.problem-table td:last-child{width:1%;white-space:nowrap}.legend{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin:1.5rem 0 0;font-size:.9rem}.legend>div{display:flex;align-items:center;gap:.6rem}.legend dd{margin:0;color:var(--muted)}@media(width <= 90rem){.problem-table td.did,.problem-table th:nth-child(2){display:none}.problem-table td:first-child{width:auto}}@media(width <= 52rem){.problem-table td:nth-child(3){width:auto}}}@layer components{.projects{list-style:none;margin:0;padding:0;display:grid;gap:0 3rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,40rem),1fr))}.project{display:grid;gap:1.25rem;align-items:center;grid-template-columns:auto minmax(0,1fr)auto;padding-block:1.25rem;border-top:1px solid var(--line)}.project h3 a{color:inherit;text-decoration:none}.project h3 a:hover{text-decoration:underline}.project p{margin:.2rem 0 0;color:var(--muted)}.project-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;font-size:.92rem}.logo{display:grid;place-items:center;width:4.25rem;height:4.25rem;border-radius:14px;background:var(--plate-light);flex:none}.logo-dark{background:var(--plate-dark)}.logo img{width:3.5rem;height:3.5rem;object-fit:contain}.logo-initial{font-weight:800;color:#0c3164;font-size:1.3rem}.status{font-weight:600}.status::before{content:"";display:inline-block;width:.55em;height:.55em;border-radius:50%;margin-right:.45em;background:currentcolor}.status-released{color:var(--ok)}.status-early,.status-pre-alpha{color:var(--warn)}.links{display:flex;flex-wrap:wrap;gap:.25rem 1rem;list-style:none;margin:0;padding:0}@media(width <= 52rem){.project{grid-template-columns:auto minmax(0,1fr)}.project-meta{grid-column:2;align-items:flex-start}}}@layer components{.prose{min-width:0}.prose>:is(p,ul,ol,blockquote,h2,h3,h4,dl){max-width:var(--measure)}.prose h2{font-size:1.5rem;margin-top:2.75rem}.prose h3{margin:2rem 0 .5rem}.prose li+li{margin-top:.4rem}.prose pre{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1rem;overflow-x:auto}.prose :not(pre)>code{background:color-mix(in srgb,var(--sky) 12%,transparent);padding:.1em .3em;border-radius:4px}.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.93rem;margin:1.5rem 0}.prose th,.prose td{text-align:left;vertical-align:top;padding:.5rem .75rem;border-bottom:1px solid var(--line)}.prose th{color:var(--navy);border-bottom-width:2px}.prose blockquote{margin:1.5rem 0;padding-left:1rem;border-left:3px solid var(--sky);color:var(--muted)}.prose figure{margin:1.75rem 0}.prose figure img{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:4px}.prose figcaption{margin-top:.5rem;font-size:.92rem;color:var(--muted);max-width:var(--measure)}.lead p{font-size:1.15rem}.empty{color:var(--muted);max-width:var(--measure)}}@layer components{.chroma .err{color:#f6f8fa;background-color:#82071e}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#dedede}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#cf222e}.chroma .kc{color:#cf222e}.chroma .kd{color:#cf222e}.chroma .kn{color:#cf222e}.chroma .kp{color:#cf222e}.chroma .kr{color:#cf222e}.chroma .kt{color:#cf222e}.chroma .na{color:#1f2328}.chroma .nc{color:#1f2328}.chroma .no{color:#0550ae}.chroma .nd{color:#0550ae}.chroma .ni{color:#6639ba}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#24292e}.chroma .nx{color:#1f2328}.chroma .nt{color:#0550ae}.chroma .nb{color:#6639ba}.chroma .bp{color:#6a737d}.chroma .nv{color:#953800}.chroma .vc{color:#953800}.chroma .vg{color:#953800}.chroma .vi{color:#953800}.chroma .vm{color:#953800}.chroma .nf{color:#6639ba}.chroma .fm{color:#6639ba}.chroma .s{color:#0a3069}.chroma .sa{color:#0a3069}.chroma .sb{color:#0a3069}.chroma .sc{color:#0a3069}.chroma .dl{color:#0a3069}.chroma .sd{color:#0a3069}.chroma .s2{color:#0a3069}.chroma .se{color:#0a3069}.chroma .sh{color:#0a3069}.chroma .si{color:#0a3069}.chroma .sx{color:#0a3069}.chroma .sr{color:#0a3069}.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .m{color:#0550ae}.chroma .mb{color:#0550ae}.chroma .mf{color:#0550ae}.chroma .mh{color:#0550ae}.chroma .mi{color:#0550ae}.chroma .il{color:#0550ae}.chroma .mo{color:#0550ae}.chroma .o{color:#0550ae}.chroma .ow{color:#0550ae}.chroma .or{color:#0550ae}.chroma .p{color:#1f2328}.chroma .c{color:#57606a}.chroma .ch{color:#57606a}.chroma .cm{color:#57606a}.chroma .c1{color:#57606a}.chroma .cs{color:#57606a}.chroma .cp{color:#57606a}.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}.chroma .w{color:#fff}@media(prefers-color-scheme:dark){.chroma{color:#e6edf3;background-color:#0d1117;-webkit-text-size-adjust:none}.chroma .err{color:#f85149}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#6e7681}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}.chroma .line{display:flex}.chroma .k{color:#ff7b72}.chroma .kc{color:#79c0ff}.chroma .kd{color:#ff7b72}.chroma .kn{color:#ff7b72}.chroma .kp{color:#79c0ff}.chroma .kr{color:#ff7b72}.chroma .kt{color:#ff7b72}.chroma .nc{color:#f0883e;font-weight:700}.chroma .no{color:#79c0ff;font-weight:700}.chroma .nd{color:#d2a8ff;font-weight:700}.chroma .ni{color:#ffa657}.chroma .ne{color:#f0883e;font-weight:700}.chroma .nl{color:#79c0ff;font-weight:700}.chroma .nn{color:#ff7b72}.chroma .nx{color:#e6edf3}.chroma .py{color:#79c0ff}.chroma .nt{color:#7ee787}.chroma .nv{color:#79c0ff}.chroma .vc{color:#79c0ff}.chroma .vg{color:#79c0ff}.chroma .vi{color:#79c0ff}.chroma .vm{color:#79c0ff}.chroma .nf{color:#d2a8ff;font-weight:700}.chroma .fm{color:#d2a8ff;font-weight:700}.chroma .l{color:#a5d6ff}.chroma .ld{color:#79c0ff}.chroma .s{color:#a5d6ff}.chroma .sa{color:#79c0ff}.chroma .sb{color:#a5d6ff}.chroma .sc{color:#a5d6ff}.chroma .dl{color:#79c0ff}.chroma .sd{color:#a5d6ff}.chroma .s2{color:#a5d6ff}.chroma .se{color:#79c0ff}.chroma .sh{color:#79c0ff}.chroma .si{color:#a5d6ff}.chroma .sx{color:#a5d6ff}.chroma .sr{color:#79c0ff}.chroma .s1{color:#a5d6ff}.chroma .ss{color:#a5d6ff}.chroma .m{color:#a5d6ff}.chroma .mb{color:#a5d6ff}.chroma .mf{color:#a5d6ff}.chroma .mh{color:#a5d6ff}.chroma .mi{color:#a5d6ff}.chroma .il{color:#a5d6ff}.chroma .mo{color:#a5d6ff}.chroma .o{color:#ff7b72;font-weight:700}.chroma .ow{color:#ff7b72;font-weight:700}.chroma .or{color:#ff7b72;font-weight:700}.chroma .c{color:#8b949e;font-style:italic}.chroma .ch{color:#8b949e;font-style:italic}.chroma .cm{color:#8b949e;font-style:italic}.chroma .c1{color:#8b949e;font-style:italic}.chroma .cs{color:#8b949e;font-weight:700;font-style:italic}.chroma .cp{color:#8b949e;font-weight:700;font-style:italic}.chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}.chroma .gd{color:#ffa198;background-color:#490202}.chroma .ge{font-style:italic}.chroma .gr{color:#ffa198}.chroma .gh{color:#79c0ff;font-weight:700}.chroma .gi{color:#56d364;background-color:#0f5323}.chroma .go{color:#8b949e}.chroma .gp{color:#8b949e}.chroma .gs{font-weight:700}.chroma .gu{color:#79c0ff}.chroma .gt{color:#ff7b72}.chroma .gl{text-decoration:underline}.chroma .w{color:#6e7681}}}@layer components{.tabset{display:flex;flex-wrap:wrap;margin:1.5rem 0}.tabset>input{position:absolute;opacity:0;pointer-events:none}.tabset>label{padding:.4rem .9rem;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0;color:var(--muted);font-weight:600;cursor:pointer}.tabset>label:hover{color:var(--link)}.tabset>input:checked+label{background:var(--surface);border-color:var(--line);color:var(--navy)}.tabset>input:focus-visible+label{outline:3px solid var(--sky);outline-offset:2px}.tabset-panel{order:1;flex-basis:100%;height:0;overflow:hidden;visibility:hidden;border-top:1px solid var(--line)}.tabset>input:nth-of-type(1):checked~.tabset-panel:nth-of-type(1),.tabset>input:nth-of-type(2):checked~.tabset-panel:nth-of-type(2),.tabset>input:nth-of-type(3):checked~.tabset-panel:nth-of-type(3),.tabset>input:nth-of-type(4):checked~.tabset-panel:nth-of-type(4),.tabset>input:nth-of-type(5):checked~.tabset-panel:nth-of-type(5),.tabset>input:nth-of-type(6):checked~.tabset-panel:nth-of-type(6){height:auto;overflow:visible;visibility:visible;padding-top:.5rem}@media print{.tabset-panel{height:auto;visibility:visible}}}@layer components{.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.tags li{font-family:var(--mono);font-size:.8rem;padding:.1rem .5rem;border-radius:6px;background:color-mix(in srgb,var(--sky) 14%,transparent);color:var(--text)}}@layer components{.wrap:is(.topic-layout,.writeup-grid){max-width:none}.topic-layout{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:3rem;align-items:start;padding-top:2rem}.topic-nav{position:sticky;top:1.5rem;max-height:calc(100vh - 3rem);overflow-y:auto;padding-right:1rem;border-right:1px solid var(--line);font-size:.92rem}.topic-nav>p{margin:0 0 .75rem;font-weight:700}.topic-nav ul{list-style:none;margin:0;padding:0}.topic-nav>ul>li{margin-bottom:.6rem}.topic-nav>ul>li>a{font-weight:600}.topic-nav ul ul{margin-top:.2rem;padding-left:.75rem;border-left:2px solid var(--line)}.topic-nav ul ul li{margin:.2rem 0}.topic-nav a{color:var(--text);text-decoration:none}.topic-nav ul ul a{color:var(--muted)}.topic-nav a:hover{color:var(--link);text-decoration:underline}.topic-nav a[aria-current]{color:var(--link);font-weight:700}@media(width <= 56rem){.topic-layout{grid-template-columns:minmax(0,1fr)}.topic-layout>.topic-nav{order:1}.topic-nav{position:static;max-height:none;padding:1.5rem 0 0;border-right:0;border-top:1px solid var(--line)}}}@layer components{.topics{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,32rem),1fr))}.topic{display:block;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent,var(--sky));border-radius:6px;color:var(--muted);text-decoration:none}.topic h3{margin:0 0 .3rem;color:var(--navy)}.topic p{margin:0}.topic:hover h3{text-decoration:underline}}@layer pages{main:has(>.home-section){display:flex;flex-direction:column;padding-bottom:0}.home-section:last-child{flex:1}.home-section{padding-block:3rem}.home-writeups{--accent:var(--sky)}.home-projects{--accent:var(--ok)}.home-section:nth-of-type(even){background:var(--tint)}.home-section-head{margin-bottom:1.5rem;padding-left:1rem;border-left:4px solid var(--accent)}.home-section-head h2{margin:0}}@layer pages{.page-header time{display:block;color:var(--muted);font-size:.9rem}}@layer pages{.project-page>header{display:flex;align-items:center;gap:1.25rem}.project-page h1{margin:0}.project-page .tagline{margin:.3rem 0 0;font-size:1.2rem;color:var(--muted)}.project-page>.project-meta{flex-direction:row;align-items:baseline;gap:1.5rem;margin:1.5rem 0}.why{margin:2.5rem 0;padding:1.25rem 1.5rem;border-left:3px solid var(--sky);background:var(--surface);max-width:var(--measure)}.why h2{margin:0 0 .4rem;font-size:1.15rem}.why p{margin:0}@media(width <= 52rem){.project-page>.project-meta{flex-wrap:wrap}}}@layer pages{.styleguide h2 code{font-weight:400;color:var(--muted);font-size:.75em;margin-left:.5rem}.swatches{list-style:none;margin:0;padding:0;display:grid;gap:.75rem 1.5rem;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));font-size:.9rem}.swatches li{display:flex;align-items:center;gap:.6rem}.swatch{width:2rem;height:2rem;border-radius:6px;border:1px solid var(--line);flex:none}.swatch-navy{background:var(--navy)}.swatch-sky{background:var(--sky)}.swatch-paper{background:var(--paper)}.swatch-tint{background:var(--tint)}.swatch-chrome{background:var(--chrome)}.swatch-chrome-text{background:var(--chrome-text)}.swatch-chrome-muted{background:var(--chrome-muted)}.swatch-chrome-accent{background:var(--chrome-accent)}.swatch-surface{background:var(--surface)}.swatch-text{background:var(--text)}.swatch-muted{background:var(--muted)}.swatch-line{background:var(--line)}.swatch-link{background:var(--link)}.swatch-ok{background:var(--ok)}.swatch-warn{background:var(--warn)}.swatch-plate-light{background:var(--plate-light)}.swatch-plate-dark{background:var(--plate-dark)}.swatch-status-stale{background:var(--status-stale)}.swatch-status-reflection{background:var(--status-reflection)}.swatch-status-done{background:var(--status-done)}.swatch-status-proposed{background:var(--status-proposed)}.swatch-status-upstream{background:var(--status-upstream)}.row{display:flex;flex-wrap:wrap;gap:.5rem}}@layer pages{.writeup-grid{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:0 3rem;align-items:start}.writeup{--bar-height:10rem}.tab-anchor{display:block}.writeup-bar{position:sticky;top:0;z-index:5;background:var(--paper);padding-top:1rem;border-bottom:1px solid var(--line)}.writeup-title{margin:0;font-size:clamp(1.4rem,1rem + 1.2vw,2rem);line-height:1.2}.writeup-title .pill{margin-left:.4rem;font-size:.95rem;vertical-align:.3em}.tab-bar{display:flex;gap:.25rem;margin-top:.75rem}.tab-bar a{padding:.5rem 1rem;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0;margin-bottom:-1px;color:var(--muted);font-weight:600;text-decoration:none}.tab-bar a:hover{color:var(--link)}.writeup:has(#problem:target,.panel-problem :target) .tab-problem,.writeup:has(#reflexion:target,.panel-reflexion :target) .tab-reflexion,.writeup:has(#solution:target,.panel-solution :target) .tab-solution,.writeup:not(:has(:target)) .tab-problem{background:var(--surface);border-color:var(--line);color:var(--navy)}.tab-panel{height:0;overflow:hidden;visibility:hidden}#problem:target~.panel-problem,#reflexion:target~.panel-reflexion,#solution:target~.panel-solution,.tab-panel:has(:target),.writeup:not(:has(:target)) .panel-problem{height:auto;overflow:visible;visibility:visible}.writeup .tagline{font-size:1.15rem;color:var(--muted);margin:1.5rem 0 0;max-width:var(--measure)}.tab-panel>h2:first-child{margin-top:1.5rem}.tab-panel :is(h2,h3,h4){scroll-margin-top:var(--bar-height)}.changes-box{margin:1.5rem 0 0;padding:1rem 1.25rem;max-width:var(--measure);background:var(--surface);border:1px solid var(--line);border-radius:6px;font-size:.95rem}.changes-box>p{margin:0 0 .4rem;color:var(--muted);font-weight:600}.changes-box ul{margin:0;padding-left:1.1rem;list-style:square}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem 2rem;margin:3rem 0 0;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.92rem;overflow-wrap:anywhere}.facts dt{color:var(--muted)}.facts dd{margin:.15rem 0 0}.facts ul{list-style:none;margin:0;padding:0}.facts .files a{font-family:var(--mono);font-size:.88rem}@media(width >= 120rem){.writeup{--measure:110ch}}@media(width <= 56rem){.writeup-grid{grid-template-columns:minmax(0,1fr)}.writeup-grid>.topic-nav{order:1;margin-top:2rem}.writeup{--bar-height:4rem}.writeup-bar{display:contents}.writeup-title{padding-top:1rem}.tab-bar{position:sticky;top:0;z-index:5;background:var(--paper);border-bottom:1px solid var(--line)}}@media print{.tab-bar{display:none}.tab-panel{height:auto;visibility:visible}}}