@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/_astro/schibsted-grotesk-latin-ext-wght-normal.hsMS0n0O.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/_astro/schibsted-grotesk-latin-wght-normal.Bb8VGrTG.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/_astro/schibsted-grotesk-latin-ext-wght-italic.DXGbHdV-.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk Variable;font-style:italic;font-display:swap;font-weight:400 900;src:url(/_astro/schibsted-grotesk-latin-wght-italic.DtRJvQ1U.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Azeret Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/azeret-mono-latin-ext-wght-normal.CaAVEd4C.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Azeret Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/azeret-mono-latin-wght-normal.BhHwRSCm.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f0f0ec;--ink:#000;--soft:#5b5f66;--faint:#8c9096;--hit:#e5341f;--wash:#e4e4df;--sans:"Schibsted Grotesk Variable", "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;--mono:"Azeret Mono Variable", "Azeret Mono", ui-monospace, Menlo, monospace;--t-small:.9375rem;--t-body:1.03125rem;--t-lead:1.125rem;--t-id:clamp(1.75rem, .9rem + 3.4vw, 4rem);--t-h1:clamp(1.4rem, 1.15rem + .8vw, 1.75rem);--t-display:clamp(1.95rem, 1.4rem + 1.5vw, 2.55rem);--pad:clamp(1.25rem, .6rem + 2.4vw, 2.5rem);--side:26rem;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--sans);font-size:var(--t-body);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;line-height:1.5;display:flex}time{font-variant-numeric:tabular-nums}li::marker{font-variant-numeric:normal}img,svg{max-width:100%}a{color:inherit;text-underline-offset:.2em;text-decoration-line:underline;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--hit);outline-offset:2px}::selection{background:var(--ink);color:var(--paper)}h1,h2,h3{text-wrap:balance;margin:0;line-height:1.08}p{text-wrap:pretty;margin:0}code,pre,.mono{font-family:var(--mono)}.skip{left:var(--pad);background:var(--ink);color:var(--paper);z-index:10;padding:.5rem .75rem;position:absolute;top:-4rem}.skip:focus{top:.75rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.top{padding:1.35rem var(--pad);border-bottom:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;display:flex}.logo{padding-block:.2rem;display:block}.logo span{aspect-ratio:1400/157;background:var(--ink);width:clamp(8.5rem,7.5rem + 2vw,9.75rem);display:block;-webkit-mask:url(/brand/logo-full.png) 50%/contain no-repeat;mask:url(/brand/logo-full.png) 50%/contain no-repeat}.top nav ul{gap:clamp(1.15rem,.6rem + 1.5vw,2rem);margin:0;padding:0;list-style:none;display:flex}.top nav a{font-weight:600;text-decoration:none}.top nav a:hover,.top nav a[aria-current=page]{text-underline-offset:.35em;text-decoration:underline 2px}.foot{padding:1.25rem var(--pad) 1.5rem;border-top:2px solid var(--ink);font-size:var(--t-small);flex-wrap:wrap;gap:.5rem 1.75rem;display:flex}.foot span:first-child{font-weight:700}.quiet{color:var(--soft);margin-left:auto}@media (width<=40rem){.quiet{margin-left:0}}.mark{background:var(--hit);flex-shrink:0;width:.65em;height:.65em;margin-right:.45em;display:inline-block}.dot{color:var(--hit);margin-right:.35em}.btn{background:var(--ink);color:var(--paper);font-family:var(--mono);justify-content:space-between;align-items:center;padding:1rem 1.15rem;font-size:.9375rem;font-weight:700;text-decoration:none;display:flex}.btn:hover{background:#262626;text-decoration:none}main{flex-direction:column;flex:1;display:flex}.page{flex:1;grid-template-columns:minmax(0,1fr);display:grid}.page>.main{padding:2rem var(--pad) 3rem;min-width:0}.page>.side{padding:2rem var(--pad) 2.5rem}@media (width>=64rem){.page.has-side{grid-template-columns:minmax(0, 1fr) var(--side)}.page.has-side>.main{border-right:2px solid var(--ink)}.page.has-side>.side{padding-inline:2.15rem}.side-inner{position:sticky;top:2rem}}@media (width<=63.99rem){.page.has-side>.side{border-top:2px solid var(--ink)}}.kicker{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--soft);align-items:center;margin-bottom:.9rem;font-size:.78rem;font-weight:700;display:inline-flex}.page-title{font:800 var(--t-display) / 1.06 var(--sans);letter-spacing:-.025em;max-width:24ch;margin-bottom:.95rem}.lede{color:var(--soft);font-size:var(--t-lead);max-width:56ch;line-height:1.5}.lede-spaced{margin-bottom:1.75rem}.empty-feed{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);color:var(--soft);align-items:center;gap:.45rem;padding:1.2rem 0;font-size:.84rem;display:flex}.researcher-links{flex-wrap:wrap;gap:.5rem 1.25rem;margin:1rem 0 0;padding:0;font-size:.875rem;font-weight:600;list-style:none;display:flex}.section-h{font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:baseline;gap:1rem;margin:2.75rem 0 .75rem;font-size:.8125rem;font-weight:700;display:flex}.section-h a{text-transform:none;letter-spacing:0;font-weight:600}.sample{color:var(--soft);font:500 .72rem/1.5 var(--mono);vertical-align:middle;border:1px dashed;padding:0 .4em;display:inline-block}.profile{flex-direction:column;gap:1.85rem;display:flex}.side-top{flex-direction:column;gap:.95rem;display:flex}.open{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:700}.side-heading{font:800 var(--t-h1) / 1.08 var(--sans);letter-spacing:-.018em}.side-copy{font-size:var(--t-small);color:var(--soft);line-height:1.52}.side-top .btn{margin-top:.2rem}.alt{color:var(--soft);margin-top:.35rem;font-size:.875rem}.who-wrap{flex-direction:column;gap:.45rem;display:flex}.label{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--soft);font-size:.75rem;font-weight:700}.who{border-bottom:1px solid var(--ink);font-size:var(--t-small);margin:0;padding:0;list-style:none}.who li{border-top:1px solid var(--ink);justify-content:space-between;align-items:baseline;gap:.75rem;padding:.55rem 0;display:flex}.who a{font-weight:600;text-decoration:none}.who a:hover{text-decoration:underline}.who span{color:var(--soft);text-align:right;font-size:.875rem}.home-hero{max-width:62ch;margin-bottom:2rem}.home-lead{color:var(--ink);max-width:56ch;font-size:1.125rem;font-weight:500;line-height:1.52}.home-sublead{color:var(--soft);max-width:56ch;margin-top:.8rem;font-size:1rem;line-height:1.55}.portals{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:2rem;display:grid}.portal-card{flex-direction:column;gap:.5rem;padding:1.35rem 1.65rem 1.45rem 0;text-decoration:none;display:flex}.portal-card+.portal-card{border-left:1px solid var(--ink);padding-left:1.65rem;padding-right:0}.portal-card:hover .portal-link{text-underline-offset:.2em;text-decoration:underline 2px}.portal-kicker{letter-spacing:.06em;color:var(--hit);text-transform:uppercase;font-size:.72rem;font-weight:700}.portal-title{letter-spacing:-.02em;font-size:1.35rem;font-weight:800;line-height:1.15}.portal-desc{font-size:var(--t-small);color:var(--soft);flex-grow:1;line-height:1.52}.portal-link{color:var(--ink);margin-top:.4rem;font-size:.84rem;font-weight:700}.brief{margin:0}.brief>div{border-top:1px solid var(--ink);grid-template-columns:10.5rem minmax(0,1fr);gap:.25rem 1.5rem;padding:.9rem 0 1rem;display:grid}.brief>div:last-child{border-bottom:1px solid var(--ink)}.brief.no-top-rule>div:first-child{border-top:0;padding-top:.2rem}.brief dt{font:700 1.1rem / 1.25 var(--mono);letter-spacing:-.025em}.brief dd{max-width:56ch;color:var(--ink);margin:0;font-size:.985rem;line-height:1.52}.inline-cta{color:var(--ink);margin-left:.35rem;font-size:.85rem;font-weight:700;display:inline-block}@media (width<=48rem){.portals{grid-template-columns:1fr}.portal-card{padding-right:0}.portal-card+.portal-card{border-left:0;border-top:1px solid var(--ink);padding-left:0}.brief>div{grid-template-columns:1fr}}.feed{margin:0;padding:0;list-style:none}.feed-row{border-top:1px solid var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem 2rem;padding:1.2rem 0 1.3rem;display:grid}.feed-row:last-child{border-bottom:1px solid var(--ink)}.feed-main{flex-direction:column;gap:.32rem;min-width:0;display:flex}.meta-bar{color:var(--soft);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:.3rem .5rem;font-size:.775rem;display:flex}.meta-bar .sep{color:var(--faint)}.meta-bar .badge{color:var(--ink);font-weight:700}.meta-bar code{background:var(--wash);color:var(--ink);padding:.05em .35em;font-size:.95em}.meta-bar .author{color:var(--ink);font-weight:600;text-decoration:none}.meta-bar .author:hover{text-decoration:underline}.meta-bar .status-tag{color:var(--ink);font-weight:700}.feed-title{font-family:var(--sans);letter-spacing:-.02em;margin-top:.05rem;font-size:clamp(1.2rem,1.05rem + .4vw,1.4rem);font-weight:800;line-height:1.2}.feed-title a{text-decoration:none}.feed-title a:hover{text-underline-offset:.15em;text-decoration:underline 2px}.feed-desc{color:var(--soft);max-width:62ch;font-size:.96875rem;line-height:1.52}.feed-action{color:var(--ink);border:1px solid var(--ink);white-space:nowrap;background:0 0;padding:.48rem .8rem;font-size:.8125rem;font-weight:600;text-decoration:none}.feed-action:hover{background:var(--ink);color:var(--paper);text-decoration:none}.feed-action.is-pending{color:var(--soft);cursor:default;border-style:dashed}.feed-action.is-pending:hover{color:var(--soft);background:0 0}@media (width<=42rem){.feed-row{grid-template-columns:1fr;align-items:start}.feed-action{justify-self:start}}.services-list{margin:0}.service-row{border-top:1px solid var(--ink);grid-template-columns:minmax(14rem,1fr) minmax(0,1.55fr);gap:.75rem 2rem;padding:1.3rem 0 1.45rem;display:grid}.service-row:last-child{border-bottom:1px solid var(--ink)}.service-row dt{flex-direction:column;gap:.35rem;display:flex}.service-num{color:var(--hit);letter-spacing:.06em;font-size:.75rem;font-weight:700}.service-title{letter-spacing:-.02em;font-size:1.25rem;font-weight:800;line-height:1.15}.service-stack{color:var(--soft);margin-top:.1rem;font-size:.75rem;line-height:1.45}.service-row dd{flex-direction:column;gap:.55rem;margin:0;display:flex}.service-summary{color:var(--ink);font-weight:600}.service-details{color:var(--soft);font-size:var(--t-small);line-height:1.55}.method-grid{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.method-grid li{border-bottom:1px solid var(--ink);padding:1.2rem 1.5rem 1.35rem 0}.method-grid li:nth-child(2n){border-left:1px solid var(--ink);padding-left:1.5rem;padding-right:0}.method-grid li:nth-last-child(-n+2){border-bottom:0}.step-head{align-items:baseline;gap:.6rem;margin-bottom:.45rem;font-size:1.05rem;display:flex}.step-num{color:var(--hit);font-size:.75rem;font-weight:700}.step-body{font-size:var(--t-small);color:var(--soft);line-height:1.55}@media (width<=48rem){.service-row,.method-grid{grid-template-columns:1fr}.method-grid li{border-bottom:1px solid var(--ink);padding-right:0}.method-grid li:nth-child(2n){border-left:0;padding-left:0}.method-grid li:last-child{border-bottom:0}}.draft-banner{border:1px dashed var(--ink);background:var(--wash);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);align-items:center;gap:.45rem;margin-bottom:1.25rem;padding:.45rem .75rem;font-size:.75rem;font-weight:700;display:inline-flex}.post-sample{margin-bottom:1rem}.post-title{font:900 clamp(1.85rem, 1.25rem + 1.85vw, 2.75rem) / 1.08 var(--sans);letter-spacing:-.022em;text-wrap:normal}.post-sum{font-size:var(--t-lead);color:var(--soft);text-wrap:normal;margin-top:1rem;line-height:1.52}.post-meta{border-bottom:2px solid var(--ink);color:var(--soft);margin-top:.85rem;padding-bottom:1.4rem;font-size:.8125rem}.post-meta a{color:var(--ink);font-weight:600;text-decoration:none}.post-meta a:hover{text-decoration:underline}.prose{padding-top:1.75rem;font-size:1.09375rem;line-height:1.64}.prose p{text-wrap:normal}.prose :where(p,ul,ol,pre,blockquote,table,figure){margin:0 0 1.2em}.prose h2{letter-spacing:-.015em;text-wrap:normal;margin:2.2em 0 .6em;font-size:1.55rem;font-weight:800}.prose h3{font-size:var(--t-lead);text-wrap:normal;margin:1.8em 0 .5em;font-weight:700}.prose :where(ul,ol){padding-left:1.3em}.prose li+li{margin-top:.3em}.prose :not(pre)>code{background:var(--wash);overflow-wrap:anywhere;padding:.05em .3em;font-size:.86em}.prose pre{tab-size:4;padding:1rem 1.15rem;font-size:.8125rem;line-height:1.7;overflow-x:auto}.prose blockquote{border-left:2px solid var(--ink);margin-left:0;padding-left:1.1rem}.prose table{border-collapse:collapse;width:100%;font-size:var(--t-small)}@media (width<=48rem){.prose table{display:block;overflow-x:auto}}.prose :where(th,td){border-bottom:1px solid var(--ink);text-align:left;padding:.5rem 1.25rem .5rem 0}.prose th{border-bottom-width:2px}.prose hr{border:0;border-top:2px solid var(--ink);margin:2.5rem 0}.finding{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);margin-block:2rem;padding:.85rem 0 1.05rem}.finding-head{justify-content:space-between;align-items:baseline;gap:1rem;margin:0;display:flex}.finding-id{font:700 1.65rem/1 var(--mono);letter-spacing:-.04em}.finding-sev{font-family:var(--mono);text-transform:uppercase;font-size:.8125rem;font-weight:700}.finding-title{margin:.5rem 0 0;font-weight:700}.finding-body{margin-top:.5rem}.finding-body>:last-child{margin-bottom:0}.notfound-code{font-weight:700;font-size:var(--t-display);letter-spacing:-.05em;line-height:1}.notfound-title{font:900 var(--t-h1) / 1.1 var(--sans);margin:1rem 0 .75rem}.astro-code{background:var(--wash);color:var(--ink)}.tk-fg{color:var(--ink)}.tk-soft{color:var(--soft)}.tk-lit{color:#1f4e79}.tk-add{color:#1d6b3a}.tk-del{color:var(--hit)}.tk-b{font-weight:700}.tk-i{font-style:italic}.tk-nosel{user-select:none}
