:root,[data-theme=dark]{--bg-000:#0b0b0c;--bg-100:#131314;--bg-200:#1b1b1d;--line-100:#2a2a2e;--line-200:#6c6c72;--ink-100:#f2eeeb;--ink-200:#b9b4b0;--ink-300:#8f8a86;--red-500:#c8102e;--red-400:#e01e3c;--red-300:#ff5a6a;--red-900:#3d0a13;--on-red:#fff;--link:var(--red-300);--focus:var(--red-300);--signal:var(--red-500);--graticule:var(--line-100)}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;--radius-sm:2px;--radius-md:4px;--radius-full:9999px;--measure:680px;--page-max:1120px;--font-sans:"Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}@font-face{font-family:Schibsted Grotesk;src:url(/fonts/SchibstedGrotesk-Variable.woff2)format("woff2");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:Schibsted Grotesk;src:url(/fonts/SchibstedGrotesk-Variable-Italic.woff2)format("woff2");font-weight:400 900;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Variable.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap}.display{font-family:var(--font-sans);letter-spacing:-.03em;font-size:64px;font-weight:800;line-height:60px}.h1{font-family:var(--font-sans);letter-spacing:-.02em;font-size:44px;font-weight:700;line-height:48px}.h2{font-family:var(--font-sans);letter-spacing:-.015em;font-size:30px;font-weight:700;line-height:36px}.h3{font-family:var(--font-sans);letter-spacing:-.01em;font-size:21px;font-weight:600;line-height:28px}.lead{font-family:var(--font-sans);font-size:22px;font-weight:400;line-height:34px}.prose{font-family:var(--font-sans);font-size:19px;font-weight:400;line-height:31px}.quote{font-family:var(--font-sans);letter-spacing:-.01em;font-size:28px;font-style:italic;font-weight:500;line-height:38px}.body{font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:26px}.small{font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:22px}.label{font-family:var(--font-mono);letter-spacing:.08em;font-size:12px;font-weight:500;line-height:16px}.meta{font-family:var(--font-mono);font-size:13px;font-weight:400;line-height:20px}.code{font-family:var(--font-mono);font-size:14px;font-weight:400;line-height:22px}html{background:var(--bg-000)}body{background:var(--bg-000);color:var(--ink-100);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:26px}::selection{background:var(--red-900);color:var(--ink-100)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.jr-wordmark{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--ink-100);white-space:nowrap;font-size:20px;font-weight:800;line-height:1;text-decoration:none;display:inline-block}.jr-wordmark .jr-stop{color:var(--red-500)}.jr-wordmark--lg{font-size:64px}.jr-wordmark--compact{font-size:28px}.jr-btn{justify-content:center;align-items:center;gap:var(--space-2);height:40px;padding:0 var(--space-4);font-family:var(--font-sans);color:var(--ink-100);border:1px solid var(--line-200);border-radius:var(--radius-sm);cursor:pointer;background:0 0;font-size:15px;font-weight:600;line-height:1;text-decoration:none;transition:background-color .12s ease-out,border-color .12s ease-out,color .12s ease-out;display:inline-flex}.jr-btn:hover{background:var(--bg-200);border-color:var(--ink-300)}.jr-btn--primary{background:var(--red-500);border-color:var(--red-500);color:var(--on-red)}.jr-btn--primary:hover{background:var(--red-400);border-color:var(--red-400)}.jr-btn--ghost{color:var(--ink-200);border-color:#0000}.jr-btn--ghost:hover{background:var(--bg-200);color:var(--ink-100);border-color:#0000}.jr-btn[disabled],.jr-btn[aria-disabled=true]{opacity:.4;pointer-events:none}.jr-btn .jr-btn__arrow{font-family:var(--font-mono);font-weight:400}.jr-link,.jr-prose a{color:var(--link);text-decoration:underline;text-decoration-color:var(--red-500);text-underline-offset:.2em;text-decoration-thickness:1px;transition:color .12s ease-out,text-decoration-color .12s ease-out}.jr-link:hover,.jr-prose a:hover{color:var(--ink-100);text-decoration-color:var(--red-300)}.jr-link--quiet{color:var(--ink-200);text-decoration-color:var(--line-200)}.jr-link--quiet:hover{color:var(--ink-100);text-decoration-color:var(--ink-100)}.jr-link--arrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:500;line-height:16px;text-decoration:none}.jr-link--arrow:after{content:" →"}.jr-link--arrow:hover{text-decoration:none}.jr-eyebrow{align-items:center;gap:var(--space-2);width:fit-content;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red-300);margin:0;font-size:12px;font-weight:500;line-height:16px;display:flex}.jr-eyebrow:before{content:"";background:var(--red-500);flex:none;width:6px;height:6px}.jr-meta{font-family:var(--font-mono);color:var(--ink-300);margin:0;font-size:13px;line-height:20px}.jr-tag{padding:var(--space-1) var(--space-2);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-200);background:var(--bg-200);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;font-size:12px;font-weight:500;line-height:16px;text-decoration:none;display:inline-flex}a.jr-tag:hover{color:var(--ink-100)}.jr-tag--accent{background:var(--red-900);color:var(--red-300)}.jr-tag--outline{box-shadow:inset 0 0 0 1px var(--line-100);background:0 0}.jr-tags{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.jr-card{gap:var(--space-3);padding:var(--space-6);background:var(--bg-100);border:1px solid var(--line-100);border-radius:var(--radius-md);color:inherit;flex-direction:column;text-decoration:none;transition:border-color .12s ease-out;display:flex}a.jr-card:hover{border-color:var(--line-200)}a.jr-card:hover .jr-card__title{text-decoration:underline;text-decoration-color:var(--red-500);text-underline-offset:.2em;text-decoration-thickness:1px}.jr-card__title{letter-spacing:-.01em;color:var(--ink-100);margin:0;font-size:21px;font-weight:600;line-height:28px}.jr-card__summary{color:var(--ink-200);margin:0;font-size:16px;line-height:26px}.jr-card__footer{margin-top:var(--space-2)}.jr-prose{max-width:var(--measure);color:var(--ink-100);font-size:19px;line-height:31px}.jr-prose>:first-child{margin-top:0}.jr-prose p,.jr-prose ul,.jr-prose ol{margin:0 0 var(--space-6)}.jr-prose h1{margin:var(--space-3) 0 var(--space-6);letter-spacing:-.02em;font-size:44px;font-weight:700;line-height:48px}.jr-prose h2{margin:var(--space-12) 0 var(--space-4);letter-spacing:-.015em;font-size:30px;font-weight:700;line-height:36px}.jr-prose h3{margin:var(--space-8) 0 var(--space-3);letter-spacing:-.01em;font-size:21px;font-weight:600;line-height:28px}.jr-prose .jr-lead{color:var(--ink-200);font-size:22px;line-height:34px}.jr-prose strong{color:var(--ink-100);font-weight:650}.jr-prose ul,.jr-prose ol{padding-left:var(--space-6)}.jr-prose li{margin:0 0 var(--space-2);padding-left:var(--space-1)}.jr-prose li::marker{color:var(--red-500)}.jr-prose ol li::marker{font-family:var(--font-mono);font-size:15px}.jr-prose blockquote{margin:0 0 var(--space-6);padding:0 0 0 var(--space-6);border-left:1px solid var(--line-200);color:var(--ink-200);font-style:italic}.jr-prose code{font-family:var(--font-mono);font-variant-ligatures:none;background:var(--bg-200);border-radius:var(--radius-sm);color:var(--ink-100);padding:.1em .35em;font-size:.85em}.jr-prose pre code{font-size:inherit;background:0 0;border-radius:0;padding:0}.jr-prose hr{width:32px;height:2px;margin:var(--space-12) 0;background:var(--red-500);border:0}.jr-prose figure{margin:var(--space-8) 0}.jr-prose figcaption,.jr-caption{margin-top:var(--space-2);color:var(--ink-300);font-size:14px;line-height:22px}.jr-prose img{border-radius:var(--radius-md);max-width:100%;height:auto;display:block}.jr-article-header{max-width:var(--measure);margin-bottom:var(--space-12)}.jr-article-header .jr-eyebrow,.jr-article-header .jr-ci-label{margin-bottom:var(--space-4)}.jr-article-end{max-width:var(--measure)}.jr-article-end .jr-tags{margin-top:var(--space-6)}.jr-article-header .jr-meta{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--line-100)}.jr-article-body{grid-template-columns:minmax(0, var(--measure)) minmax(0, 1fr);column-gap:var(--space-16);align-items:start;display:grid}.jr-sidebars{gap:var(--space-12);counter-reset:jr-sidebar;margin:0;padding:0;display:grid}.jr-sidebar{padding-top:var(--space-4);border-top:1px solid var(--line-100);counter-increment:jr-sidebar;position:relative}.jr-sidebar:before{content:"";background:var(--red-500);width:32px;height:2px;position:absolute;top:-1px;left:0}.jr-sidebar__label{margin:0 0 var(--space-3);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-300);font-size:12px;font-weight:500;line-height:16px;display:block}.jr-sidebar__label:after{content:" " counter(jr-sidebar, decimal-leading-zero)}.jr-sidebar__title{margin:0 0 var(--space-2);color:var(--ink-100);font-size:16px;font-weight:650;line-height:24px}.jr-sidebar__text{color:var(--ink-200);margin:0;font-size:16px;line-height:26px}.jr-sidebar__text+.jr-sidebar__text{margin-top:var(--space-3)}.jr-sidebar__source{margin-top:var(--space-3);display:inline-block}.jr-pullquote{margin:var(--space-12) 0;max-width:var(--measure);padding:0}.jr-pullquote:before{content:"";width:32px;height:2px;margin-bottom:var(--space-6);background:var(--red-500);display:block}.jr-pullquote blockquote{letter-spacing:-.01em;color:var(--ink-100);border:0;margin:0;padding:0;font-size:28px;font-style:italic;font-weight:500;line-height:38px}.jr-pullquote figcaption{margin-top:var(--space-4);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-300);font-size:12px;font-style:normal;font-weight:500;line-height:16px}.jr-code{margin:var(--space-8) 0;background:var(--bg-100);border:1px solid var(--line-100);border-radius:var(--radius-md);overflow:hidden}.jr-code__bar{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--line-100);font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-300);justify-content:space-between;align-items:center;margin:0;font-size:12px;font-weight:500;line-height:16px;display:flex}.jr-code__lang{letter-spacing:.08em;text-transform:uppercase}.jr-code pre{padding:var(--space-4);font-family:var(--font-mono);color:var(--ink-100);tab-size:2;font-variant-ligatures:none;margin:0;font-size:14px;line-height:22px;overflow-x:auto}.jr-code pre code{font:inherit;background:0 0;padding:0}.jr-prose pre{margin:var(--space-8) 0;padding:var(--space-4);background:var(--bg-100);border:1px solid var(--line-100);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--ink-100);tab-size:2;font-variant-ligatures:none;font-size:14px;line-height:22px;overflow-x:auto}.jr-prose .jr-code pre{background:0 0;border:0;border-radius:0;margin:0}.jr-code .k,.jr-code .token.keyword,.jr-code .token.builtin,.jr-code .token.boolean,.jr-prose .token.keyword,.jr-prose .token.builtin,.jr-prose .token.boolean{color:var(--red-300)}.jr-code .s,.jr-code .token.string,.jr-prose .token.string{color:var(--ink-200)}.jr-code .c,.jr-code .token.comment,.jr-prose .token.comment,.jr-code .p,.jr-code .token.punctuation,.jr-prose .token.punctuation{color:var(--ink-300)}.jr-page{max-width:var(--page-max);padding-left:var(--space-16);padding-right:var(--space-16);box-sizing:content-box;margin:0 auto}.jr-header{border-bottom:1px solid var(--line-100)}.jr-header__inner{justify-content:space-between;align-items:center;gap:var(--space-6);min-height:72px;display:flex}.jr-nav{gap:var(--space-2) var(--space-8);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.jr-nav a{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-200);font-size:12px;font-weight:500;line-height:16px;text-decoration:none;transition:color .12s ease-out;display:inline-flex}.jr-nav a:hover,.jr-nav a[aria-current=page]{color:var(--ink-100)}.jr-nav a[aria-current=page]:before{content:"";background:var(--red-500);flex:none;width:6px;height:6px}.jr-footer{border-top:1px solid var(--line-100)}.jr-footer__inner{justify-content:space-between;align-items:center;gap:var(--space-4) var(--space-8);padding-top:var(--space-8);padding-bottom:var(--space-8);flex-wrap:wrap;display:flex}.jr-footer__start{align-items:baseline;gap:var(--space-4);display:flex}.jr-footer__links{gap:var(--space-2) var(--space-6);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.jr-footer__links a{font-family:var(--font-mono);font-size:13px;line-height:20px}.jr-section{padding:var(--space-16) 0}.jr-section+.jr-section{border-top:1px solid var(--line-100)}.jr-section--hero{padding:var(--space-24) 0 var(--space-16)}.jr-section__head{justify-content:space-between;align-items:flex-end;gap:var(--space-4) var(--space-8);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.jr-section__title{margin:var(--space-4) 0 0;letter-spacing:-.015em;color:var(--ink-100);font-size:30px;font-weight:700;line-height:36px}.jr-section__intro{max-width:var(--measure);margin:0 0 var(--space-8);color:var(--ink-200)}.jr-section__title+.jr-text,.jr-section__title+.jr-meta{margin-top:var(--space-4)}.jr-display{margin:var(--space-4) 0 var(--space-6);letter-spacing:-.03em;color:var(--ink-100);font-size:64px;font-weight:800;line-height:60px}.jr-lead{margin:0 0 var(--space-6);color:var(--ink-200);font-size:22px;line-height:34px}.jr-text{margin:0 0 var(--space-6);max-width:var(--measure);color:var(--ink-200)}.jr-actions{gap:var(--space-4);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.jr-split{gap:var(--space-16);grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;display:grid}.jr-split--reverse{grid-template-columns:minmax(0,1fr) minmax(0,1.55fr)}.jr-cols{grid-template-columns:repeat(var(--jr-cols,3), minmax(0, 1fr));gap:var(--space-8);margin:0;padding:0;list-style:none;display:grid}.jr-cols--4{--jr-cols:4}.jr-cols--2{--jr-cols:2}.jr-col{padding-top:var(--space-6);border-top:1px solid var(--line-100);position:relative}.jr-col:before{content:"";background:var(--red-500);width:32px;height:2px;position:absolute;top:-1px;left:0}.jr-col__num{margin-bottom:var(--space-3);font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-300);font-size:12px;font-weight:500;line-height:16px;display:block}.jr-col__title{margin:0 0 var(--space-2);letter-spacing:-.01em;color:var(--ink-100);font-size:21px;font-weight:600;line-height:28px}.jr-col__text{color:var(--ink-200);margin:0;font-size:16px;line-height:26px}.jr-grid{grid-template-columns:repeat(var(--jr-cols,3), minmax(0, 1fr));gap:var(--space-8);margin:0;padding:0;list-style:none;display:grid}.jr-grid>li{display:flex}.jr-grid>li>.jr-card{flex:1}.jr-rows{border-top:1px solid var(--line-100);margin:0;padding:0}.jr-rows>div{gap:var(--space-6);padding:var(--space-4) 0;border-bottom:1px solid var(--line-100);grid-template-columns:9rem minmax(0,1fr);display:grid}.jr-rows dt{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-300);padding-top:5px;font-size:12px;font-weight:500;line-height:16px}.jr-rows dd{color:var(--ink-100);margin:0;font-size:16px;line-height:26px}.jr-rows dd .jr-meta{margin-top:var(--space-1);display:block}.jr-rows--wide>div{grid-template-columns:12rem minmax(0,1fr)}@media (width<=1199px){.jr-article-body{grid-template-columns:minmax(0,1fr)}.jr-sidebars{gap:var(--space-8);max-width:var(--measure);margin-top:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}@media (width<=960px){.jr-page{padding-left:var(--space-8);padding-right:var(--space-8)}.jr-split,.jr-split--reverse{gap:var(--space-12);grid-template-columns:minmax(0,1fr)}.jr-cols--4,.jr-grid{--jr-cols:2}}@media (width<=640px){.jr-page{padding-left:var(--space-6);padding-right:var(--space-6)}.jr-header__inner{align-items:flex-start;gap:var(--space-3);padding-top:var(--space-6);padding-bottom:var(--space-4);flex-direction:column}.jr-nav{gap:var(--space-1) var(--space-6)}.jr-section{padding:var(--space-12) 0}.jr-section--hero{padding:var(--space-16) 0 var(--space-12)}.jr-display{font-size:44px;line-height:46px}.jr-lead{font-size:19px;line-height:30px}.jr-cols,.jr-cols--4,.jr-cols--2,.jr-grid{--jr-cols:1}.jr-rows>div,.jr-rows--wide>div{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}.jr-rows dt{padding-top:0}.jr-prose{font-size:18px;line-height:29px}.jr-prose h1,.jr-article-header h1{font-size:34px;line-height:38px}}.jr-loop{vertical-align:middle;flex:none;width:24px;height:24px;display:inline-block;overflow:visible}.jr-loop__ring{fill:none;stroke:var(--ink-100);stroke-width:2.5px;stroke-linecap:butt}.jr-loop__node{fill:var(--signal)}.jr-loop--sm{width:16px;height:16px}.jr-loop--lg{width:48px;height:48px}.jr-ci-label{align-items:center;gap:var(--space-2);width:fit-content;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-100);margin:0;font-size:12px;font-weight:500;line-height:16px;text-decoration:none;display:flex}a.jr-ci-label:hover{color:var(--red-300)}.jr-signal{width:100%;height:64px;display:block;overflow:visible}.jr-signal path{fill:none;vector-effect:non-scaling-stroke}.jr-signal__trace{stroke:var(--signal);stroke-width:1.5px;stroke-linejoin:round}.jr-signal__rest{stroke:var(--line-200);stroke-width:1px}.jr-signal--end{max-width:320px;height:32px;margin:var(--space-12) 0 var(--space-4)}.jr-signal--draw{animation:1.6s cubic-bezier(.2,.7,.2,1) .2s both jr-signal-draw}@keyframes jr-signal-draw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.jr-signal--draw{animation:none}}.jr-issue{font-family:var(--font-mono);color:var(--red-300);white-space:nowrap}.jr-masthead{border-bottom:1px solid var(--line-100);position:relative;overflow:hidden}.jr-masthead:before{content:"";pointer-events:none;background-image:linear-gradient(var(--graticule) 1px, transparent 1px), linear-gradient(90deg, var(--graticule) 1px, transparent 1px);background-position:right -1px bottom -1px;background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 30%,#000 90%);mask-image:linear-gradient(90deg,#0000 30%,#000 90%)}.jr-masthead__inner{padding-top:var(--space-24);padding-bottom:var(--space-12);position:relative}.jr-masthead__title{align-items:center;gap:var(--space-4);margin:0 0 var(--space-4);letter-spacing:-.03em;color:var(--ink-100);font-size:64px;font-weight:800;line-height:60px;display:flex}.jr-masthead__title .jr-loop{width:52px;height:52px}.jr-masthead__tagline{max-width:var(--measure);color:var(--ink-200);margin:0;font-size:22px;line-height:34px}.jr-masthead .jr-signal{margin-top:var(--space-12)}.jr-masthead__meta{justify-content:space-between;align-items:baseline;gap:var(--space-2) var(--space-6);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.jr-posts{border-top:1px solid var(--line-100);margin:0;padding:0;list-style:none}.jr-post{gap:var(--space-2) var(--space-8);padding:var(--space-6) 0;border-bottom:1px solid var(--line-100);color:inherit;grid-template-columns:7rem minmax(0,1fr) auto;grid-template-areas:"issue body meta";align-items:baseline;text-decoration:none;display:grid}.jr-post__issue{font-family:var(--font-mono);color:var(--red-300);grid-area:issue;font-size:13px;line-height:20px}.jr-post__body{grid-area:body}.jr-post__title{letter-spacing:-.01em;color:var(--ink-100);margin:0;font-size:21px;font-weight:600;line-height:28px}.jr-post__summary{margin:var(--space-2) 0 0;max-width:var(--measure);color:var(--ink-200);font-size:16px;line-height:26px}.jr-post__meta{font-family:var(--font-mono);color:var(--ink-300);white-space:nowrap;grid-area:meta;font-size:13px;line-height:20px}a.jr-post:hover .jr-post__title{text-decoration:underline;text-decoration-color:var(--red-500);text-underline-offset:.2em;text-decoration-thickness:1px}@media (width<=640px){.jr-masthead__inner{padding-top:var(--space-16);padding-bottom:var(--space-8)}.jr-masthead__title{align-items:flex-start;gap:var(--space-4);flex-direction:column;font-size:44px;line-height:46px}.jr-masthead__title .jr-loop{width:40px;height:40px}.jr-masthead__tagline{font-size:19px;line-height:30px}.jr-masthead .jr-signal{margin-top:var(--space-8);height:48px}.jr-post{gap:var(--space-2) var(--space-4);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"issue meta""body body"}.jr-post__meta{justify-self:end}}
