:root{
  --bg:#FFFFFF;--surface:#F7F7F8;--surface-2:#EFEFF1;--border:#E6E6E8;--border-strong:#C4C4C9;
  --text:#0A0A0B;--muted:#6B6B70;
  --code-bg:#0A0A0B;--code-text:#D4D4D8;--code-muted:#A1A1A8;--code-border:#26262A;
  --sans:'Schibsted Grotesk',ui-sans-serif,system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --bar:56px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0A0A0B;--surface:#141416;--surface-2:#1C1C1F;--border:#26262A;--border-strong:#3A3F4B;
    --text:#F3F4F6;--muted:#A1A1A8;
    --code-bg:#141416;--code-text:#D4D4D8;--code-muted:#A1A1A8;--code-border:#26262A;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0A0A0B;--surface:#141416;--surface-2:#1C1C1F;--border:#26262A;--border-strong:#3A3F4B;
  --text:#F3F4F6;--muted:#A1A1A8;
  --code-bg:#141416;--code-text:#D4D4D8;--code-muted:#A1A1A8;--code-border:#26262A;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--bar) + 24px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--text)}
:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:12px;top:-60px;background:var(--text);color:var(--bg);padding:8px 14px;border-radius:8px;z-index:100;text-decoration:none}
.skip:focus{top:12px}

/* Top bar */
.topbar{position:sticky;top:0;z-index:40;height:var(--bar);background:var(--bg);border-bottom:1px solid var(--border)}
.topbar-in{max-width:1320px;margin:0 auto;height:100%;padding:0 24px;display:flex;align-items:center;gap:12px}
.logo{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:600;letter-spacing:-0.01em;font-size:19px}
.logo-mark{width:20px;height:20px;display:inline-block;flex:0 0 auto}
.tag{font-family:var(--mono);font-size:11px;color:var(--muted);border:1px solid var(--border-strong);border-radius:6px;padding:1px 7px}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.icon-btn{width:36px;height:36px;display:inline-grid;place-items:center;border:0;background:transparent;color:var(--text);border-radius:8px;cursor:pointer;padding:0}
.icon-btn:hover{background:var(--surface-2)}
.menu-btn{margin-left:-8px;display:none}
.search-btn{height:36px;display:inline-flex;align-items:center;gap:10px;padding:0 10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);border-radius:999px;font:inherit;font-size:14px;cursor:pointer}
.search-btn:hover{color:var(--text)}
.search-btn svg{color:var(--text)}
.search-btn kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--border-strong);border-radius:5px;padding:0 5px;color:var(--muted)}
.pill{display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:999px;font-size:14px;font-weight:500;text-decoration:none;background:var(--text);color:var(--bg)}
.pill:hover{opacity:.85}
#theme-toggle .i-sun{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #theme-toggle .i-sun{display:block}:root:not([data-theme="light"]) #theme-toggle .i-moon{display:none}}
:root[data-theme="dark"] #theme-toggle .i-sun{display:block}
:root[data-theme="dark"] #theme-toggle .i-moon{display:none}

/* Shell */
.shell{max-width:1320px;margin:0 auto;padding:0 24px;display:flex;align-items:flex-start}
.sidebar{width:240px;flex:none;position:sticky;top:var(--bar);max-height:calc(100vh - var(--bar));overflow-y:auto;padding:40px 20px 40px 0;border-right:1px solid var(--border);align-self:flex-start}
.drawer-head{display:none}
.nav-group+.nav-group{margin-top:28px}
.nav-label{margin:0 0 8px;padding:0 10px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sidebar ul,.toc ul{list-style:none;margin:0;padding:0}
.sidebar li a{display:block;padding:7px 10px;border-radius:8px;font-size:14.5px;text-decoration:none;color:var(--muted)}
.sidebar li a:hover{background:var(--surface-2);color:var(--text)}
.sidebar li a[aria-current="page"]{background:var(--surface-2);color:var(--text);font-weight:500}
main{flex:1;min-width:0;display:flex;gap:48px;padding:48px 0 80px 48px}
article{min-width:0;max-width:720px;flex:1}
.eyebrow{margin:0 0 10px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
h1{margin:0;font-size:clamp(32px,4.4vw,44px);line-height:1.08;letter-spacing:-0.025em;font-weight:500}
.lead{margin:16px 0 0;font-size:19px;line-height:1.6;color:var(--muted);max-width:56ch}
.toc{width:200px;flex:none;position:sticky;top:calc(var(--bar) + 40px);align-self:flex-start;font-size:13.5px}
.toc ul{border-left:1px solid var(--border)}
.toc a{display:block;margin-left:-1px;padding:6px 0 6px 14px;border-left:1px solid transparent;color:var(--muted);text-decoration:none;line-height:1.35}
.toc a:hover{color:var(--text)}
.toc a[aria-current="location"]{border-left-color:var(--text);color:var(--text);font-weight:500}
.toc .nav-label{padding:0;margin-bottom:12px}
.toc-inline{display:none;margin-top:24px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.toc-inline summary{padding:12px 16px;cursor:pointer;font-size:14px;font-weight:500;list-style:none;display:flex;justify-content:space-between}
.toc-inline summary::-webkit-details-marker{display:none}
.toc-inline summary::after{content:"+";color:var(--muted)}
.toc-inline[open] summary::after{content:"–"}
.toc-inline ul{list-style:none;margin:0;padding:0 16px 12px}
.toc-inline a{display:block;padding:5px 0;font-size:14px;color:var(--muted);text-decoration:none}

/* Prose */
.prose{margin-top:40px}
.prose h2{position:relative;margin:56px 0 0;font-size:24px;line-height:1.2;letter-spacing:-0.015em;font-weight:500}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{font-size:16px;line-height:1.7}
.prose p{margin:14px 0 0}
.prose ul,.prose ol{margin:14px 0 0;padding-left:22px}
.prose li+li{margin-top:6px}
.prose li::marker{color:var(--muted)}
.prose a{text-underline-offset:3px;text-decoration-color:var(--border-strong)}
.prose a:hover{text-decoration-color:var(--text)}
.anchor{margin-left:10px;font-family:var(--mono);font-size:.7em;font-weight:400;color:var(--muted);text-decoration:none;opacity:0}
h2:hover .anchor,.anchor:focus-visible{opacity:1}
code{font-family:var(--mono);font-size:.86em;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:1px 6px;overflow-wrap:anywhere}
.prose a code{color:inherit}

/* Code blocks */
.code{margin:20px 0 0;background:var(--code-bg);border:1px solid var(--code-border);border-radius:14px;overflow:hidden}
.code figcaption{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 18px;border-bottom:1px solid var(--code-border);font-family:var(--mono);font-size:12px;color:var(--code-muted)}
.copy{height:28px;padding:0 12px;border:1px solid #3A3F4B;border-radius:999px;background:transparent;color:#F3F4F6;font-family:var(--mono);font-size:12px;cursor:pointer}
.copy:hover{background:#26262A}
.copy:focus-visible{outline-color:#F3F4F6}
.code pre{margin:0;padding:16px 18px;overflow-x:auto;font-family:var(--mono);font-size:13.5px;line-height:1.8;color:var(--code-text)}
.code pre:focus-visible{outline-color:#F3F4F6;outline-offset:-2px}
.code code{background:none;border:0;padding:0;font-size:inherit;overflow-wrap:normal;white-space:pre}

/* Tables */
.table-wrap{margin-top:20px;overflow-x:auto;border:1px solid var(--border);border-radius:12px}
table{width:100%;border-collapse:collapse;font-size:14.5px;text-align:left}
th{padding:10px 16px;background:var(--surface);font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
td{padding:11px 16px;border-top:1px solid var(--border);vertical-align:top;line-height:1.55}
table:has(th:nth-child(3)){min-width:520px}
td:first-child{min-width:120px}

/* Callouts, badge, status */
.callout{margin:24px 0 0;padding:14px 18px;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface)}
.callout p{margin:6px 0 0;font-size:15px}
.callout-label{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.callout-planned{border-style:dashed}
.badge{display:inline-block;vertical-align:middle;margin-left:6px;padding:1px 9px;border:1px dashed var(--muted);border-radius:999px;font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.02em;color:var(--text);background:var(--surface);line-height:1.5;white-space:nowrap}
.prose h2 .badge{font-size:12px;transform:translateY(-2px)}
.status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:13px;font-weight:500;white-space:nowrap}
.dot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--text);display:inline-block}
.dot-on{background:var(--text)}
.dot-off{background:transparent}

/* Pager, footer */
.pager{margin-top:64px;padding-top:32px;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pager a{display:block;padding:14px 16px;border:1px solid var(--border);border-radius:12px;text-decoration:none}
.pager a:hover{border-color:var(--border-strong);background:var(--surface)}
.pager .next{text-align:right}
.pager span{display:block;font-size:13px;color:var(--muted)}
.pager strong{display:block;margin-top:2px;font-size:15.5px;font-weight:500}
.foot{border-top:1px solid var(--border);background:var(--bg)}
.foot-in{max-width:1320px;margin:0 auto;padding:28px 24px;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14.5px}
.foot nav a{color:var(--muted);text-decoration:none}
.foot nav a:hover{color:var(--text)}

/* Search */
dialog#search{width:min(640px,calc(100vw - 32px));max-height:min(560px,calc(100vh - 64px));margin:48px auto auto;padding:0;border:1px solid var(--border-strong);border-radius:16px;background:var(--bg);color:var(--text);overflow:hidden}
dialog#search::backdrop{background:rgba(10,10,11,.6)}
.search-form{display:flex;flex-direction:column;max-height:inherit;margin:0}
.search-top{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;border-bottom:1px solid var(--border)}
.search-top input{flex:1;min-width:0;height:40px;border:0;background:transparent;color:var(--text);font:inherit;font-size:16px}
.search-top input:focus-visible{outline:none}
#search-results{list-style:none;margin:0;padding:8px;overflow-y:auto}
#search-results a{display:block;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--text)}
#search-results a:hover,#search-results a:focus-visible{background:var(--surface-2)}
#search-results small{display:block;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
#search-results span{display:block;margin-top:2px;font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#search-results .empty{padding:14px 12px;color:var(--muted);font-size:15px}

.scrim{position:fixed;inset:0;background:rgba(10,10,11,.6);z-index:50}

/* Responsive */
@media (max-width:1199px){
  .toc{display:none}
  .toc-inline{display:block}
}
@media (max-width:899px){
  .menu-btn{display:inline-grid}
  .sidebar{position:fixed;z-index:60;top:0;left:0;align-self:auto;height:100vh;height:100dvh;max-height:none;width:min(300px,86vw);padding:0 16px 32px;background:var(--bg);border-right:1px solid var(--border-strong);transform:translateX(-102%);visibility:hidden;transition:transform .2s ease,visibility 0s .2s}
  .sidebar.open{transform:none;visibility:visible;transition:transform .2s ease}
  .drawer-head{display:flex;align-items:center;justify-content:space-between;height:var(--bar);margin:0 -8px 16px 0;border-bottom:1px solid var(--border)}
  .drawer-head .nav-label{margin:0;padding:0}
  .shell{padding:0 16px}
  main{padding:32px 0 64px 0}
}
@media (max-width:639px){
  .topbar-in{padding:0 16px;gap:8px}
  .pill,.search-text,.search-btn kbd{display:none}
  .search-btn{width:36px;padding:0;justify-content:center;border-color:transparent;background:transparent}
  .foot-in{padding:24px 16px}
  .lead{font-size:18px}
  .pager{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}
