*,:after,:before{box-sizing:border-box}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6;color:var(--ink-hi,#1a1a1a);background:var(--bg-0,#fff)}body{margin:0;padding:0}main{max-width:720px;margin:0 auto;padding:2rem 1.5rem 4rem}nav{margin-bottom:2rem;font-size:.875rem;color:#666;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}nav a{color:#0070f3;text-decoration:none}nav a:hover{text-decoration:underline}.sd-term-ref{position:relative;cursor:pointer}.sd-term-card{position:absolute;left:0;top:100%;z-index:10;display:flex;flex-direction:column;gap:.25rem;min-width:16rem;max-width:24rem;padding:.6rem .75rem;border:1px solid var(--line,#d3deea);border-radius:6px;background:var(--bg-0,#fff);box-shadow:0 4px 16px rgb(0 0 0/.12);font-size:.85rem}.sd-term-card-title{font-weight:600}.sd-term-card-summary{color:var(--ink-low,#6c798a)}.sd-term-card-open{font-size:.8rem}.sd-doc{max-width:820px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) clamp(1rem,3vw,1.5rem) 6rem;background-color:var(--bg-0,#fafafa);color:var(--ink-hi,#1a1a1a);font-family:var(--font-body,system-ui,-apple-system,"Segoe UI",sans-serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}.sd-doc,.sd-doc *,.sd-doc :after,.sd-doc :before{box-sizing:border-box}.sd-doc h1,.sd-doc h2,.sd-doc h3,.sd-doc h4{font-family:var(--font-display,var(--font-body,system-ui,sans-serif));font-weight:600;letter-spacing:-.02em;color:var(--ink-hi,#111);text-wrap:balance}.sd-doc h1{font-size:clamp(2.2rem,4vw,3.2rem);line-height:1.05;margin:0 0 1rem}.sd-doc h2{font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.1;margin:2.5rem 0 .75rem}.sd-doc h3{font-size:1.4rem;margin:1.75rem 0 .5rem}.sd-doc h4{font-size:1.15rem;margin:1.5rem 0 .4rem}.sd-doc p{margin:0 0 1rem;color:var(--ink-mid,#374151)}.sd-doc a{color:var(--accent,#2c5282);text-underline-offset:3px}.sd-doc .sd-term-ref{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:2px;cursor:help}.sd-doc ol,.sd-doc ul{margin:0 0 1rem 1.5rem}.sd-doc li{margin:.35rem 0;color:var(--ink-mid,#374151)}.sd-doc blockquote{margin:1.25rem 0;padding:.5rem 1.25rem;border-left:3px solid var(--line,#e5e7eb);color:var(--ink-mid,#374151)}.sd-doc hr{border:none;border-top:1px solid var(--line,#e5e7eb);margin:2.5rem 0}.sd-doc code{font-family:var(--font-mono,ui-monospace,"Cascadia Code",Consolas,monospace);font-size:.9em;border:1px solid var(--line,#e5e7eb);border-radius:6px;padding:1px 5px}.sd-doc code,.sd-doc pre{background:var(--bg-2,#f1f5f9)}.sd-doc pre{font-family:var(--font-mono,ui-monospace,monospace);border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:1rem 1.25rem;overflow-x:auto;line-height:1.7;margin:0 0 1.25rem}.sd-doc pre code{background:none;border:none;padding:0}.sd-doc .sd-rule{margin:1.5rem 0;padding:1rem 1.25rem 1.25rem;background:var(--bg-1,#ffffff);border:1px solid var(--line,#e5e7eb);border-radius:var(--r-lg,12px)}.sd-doc .sd-rule__header{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.sd-doc .sd-rule__severity{display:inline-flex;align-items:center;font-family:var(--font-mono,ui-monospace,monospace);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 9px;border-radius:var(--r-pill,999px);border:1px solid transparent}.sd-doc .sd-rule__severity--error{color:var(--bad,#c0504a);background:color-mix(in srgb,var(--bad,#c0504a) 14%,transparent);border-color:color-mix(in srgb,var(--bad,#c0504a) 38%,transparent)}.sd-doc .sd-rule__severity--warning{color:var(--warn,#b97e16);background:color-mix(in srgb,var(--warn,#b97e16) 16%,transparent);border-color:color-mix(in srgb,var(--warn,#b97e16) 40%,transparent)}.sd-doc .sd-rule__severity--info{color:var(--accent,#2c5282);background:color-mix(in srgb,var(--accent,#2c5282) 12%,transparent);border-color:color-mix(in srgb,var(--accent,#2c5282) 36%,transparent)}.sd-doc .sd-rule__id{font-family:var(--font-mono,ui-monospace,monospace);font-size:.85rem;color:var(--ink-low,#6b7280);background:none;border:none;padding:0}.sd-doc .sd-rule__description{margin:0 0 .75rem;color:var(--ink-mid,#374151)}.sd-doc .sd-rule__sparql{position:relative;margin:.5rem 0 0;padding-top:1.7rem;font-size:.82rem}.sd-doc .sd-rule__sparql:before{position:absolute;top:.5rem;left:1.25rem;font-family:var(--font-mono,ui-monospace,monospace);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint,#9aa6b4)}.sd-doc .sd-rule__condition:before{content:"Condition"}.sd-doc .sd-rule__assertion:before{content:"Assertion"}.sd-doc .sdd-diagram{display:block;max-width:100%;height:auto;margin:1.5rem 0;font-size:12px}.sd-doc .sdd-diagram rect[class*=sdd-shape]{stroke:var(--line,#9ca3af);stroke-width:1.5}.sd-doc .sdd-diagram rect[class*=sdd-shape]:not([class*=sdd-fill-]){fill:var(--bg-1,#ffffff)}.sd-doc .sdd-shape-rounded{rx:10}.sd-doc .sdd-shape-slim{rx:4}.sd-doc .sdd-datum-text{fill:var(--ink-hi,#111827);text-anchor:middle;font-family:inherit}.sd-doc .sdd-edge{fill:none;stroke:var(--edge,#6b7280);stroke-width:1.5}.sd-doc .sdd-style-dashed{stroke-dasharray:6 4}.sd-doc [class*=sdd-stencil]{fill:var(--edge,#6b7280);stroke:none}.sd-doc .sdd-section .sdd-datum-text{text-anchor:start}.sd-doc .sdd-port-in,.sd-doc .sdd-port-io,.sd-doc .sdd-port-out{fill:var(--edge,#6b7280)}.sd-doc .sdd-port-io{fill-opacity:.6}.sd-doc .sdd-group-container{stroke:var(--edge,#6b7280);stroke-width:1}.sd-doc .sdd-group-label{fill:var(--ink-faint,#6b7280);font-family:inherit;font-size:.78em;letter-spacing:.06em;text-transform:uppercase}.sd-doc img{max-width:100%;height:auto;border-radius:8px}.sd-doc .img-full{width:100%}.sd-doc .img-half{width:50%}.sd-doc .img-third{width:33.333%}.sd-doc .img-quarter{width:25%}.sd-doc .img-square{aspect-ratio:1/1}.sd-doc .img-portrait{aspect-ratio:3/4}.sd-doc .img-landscape{aspect-ratio:4/3}.sd-doc .img-wide{aspect-ratio:16/9}.sd-doc .img-rounded{border-radius:14px}.sd-doc .img-circle{border-radius:50%}.sd-doc .img-cover{object-fit:cover}.sd-doc .img-contain{object-fit:contain}.sd-doc .img-fill{object-fit:fill}.sd-doc .img-pair{display:flex;gap:1rem}.sd-doc .img-pair img{flex:1 1;min-width:0}.sd-doc .eyebrow{font-family:var(--font-mono,ui-monospace,monospace);font-size:.8rem;letter-spacing:.32em;text-transform:uppercase;color:var(--accent,#2c5282);font-weight:500;display:block;margin-bottom:.75rem}.sd-doc .kicker{font-size:.85rem;letter-spacing:.06em}.sd-doc .caption,.sd-doc .kicker{font-family:var(--font-mono,ui-monospace,monospace);color:var(--ink-low,#6b7280)}.sd-doc .caption{font-size:.8rem;line-height:1.4}.sd-doc .title{font-family:var(--font-display,sans-serif);font-weight:600;font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.02em;color:var(--ink-hi,#111)}.sd-doc .subtitle{font-family:var(--font-display,sans-serif);font-weight:500;margin-top:.5rem}.sd-doc .lede,.sd-doc .subtitle{font-size:1.25rem;color:var(--ink-mid,#374151)}.sd-doc .lede{line-height:1.5;max-width:60ch}.sd-doc .mono{font-family:var(--font-mono,ui-monospace,monospace)}.sd-doc .card,.sd-doc .cell{background:var(--bg-1,#ffffff);border:1px solid var(--line,#e5e7eb);border-radius:12px;padding:1.25rem 1.5rem}.sd-doc .grid,.sd-doc .three-col,.sd-doc .two-col{display:grid;grid-gap:1.5rem;gap:1.5rem}@media (min-width:720px){.sd-doc .two-col{grid-template-columns:1fr 1fr}.sd-doc .three-col{grid-template-columns:repeat(3,1fr)}.sd-doc .grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}.sd-doc .col{min-width:0}.sd-doc .bracket{position:relative}.sd-doc .bracket:after,.sd-doc .bracket:before{content:"";position:absolute;width:16px;height:16px;border-color:var(--accent,#2c5282);border-style:solid;border-width:0}.sd-doc .bracket:before{top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}.sd-doc .bracket:after{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}.sd-doc .chip{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono,ui-monospace,monospace);font-size:.8rem;padding:4px 10px;border-radius:999px;border:1px solid var(--line,#e5e7eb);color:var(--ink-mid,#374151);background:var(--bg-2,#f1f5f9)}.sd-doc .cover,.sd-doc .title-slide{margin:0 0 2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line,#e5e7eb)}.sd-doc .cover h1,.sd-doc .title-slide h1{font-size:clamp(2.6rem,6vw,4rem)}.sd-doc .section-divider{margin:4rem 0 1.5rem;padding-top:1.25rem;border-top:1px solid var(--line,#e5e7eb)}.sd-doc .centered{text-align:left}.sd-doc [data-sd-chrome]{margin:.5rem 0 1.25rem;font-family:var(--font-mono,ui-monospace,monospace);font-size:.72rem;letter-spacing:.04em;color:var(--ink-faint,#9aa6b4)}.sd-doc [data-sd-chrome]>summary{cursor:pointer;color:var(--ink-low,#6b7280);list-style:none;text-transform:uppercase}.sd-doc [data-sd-chrome]>summary::-webkit-details-marker{display:none}.sd-doc [data-sd-chrome][open]>summary{margin-bottom:.4rem}.sd-doc .sd-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.sd-doc :is(p,li,pre,h1,h2,h3,h4,h5,h6):has(>.sd-copy-claim){position:relative}.sd-doc .sd-copy-claim{position:absolute;top:.25rem;right:.25rem;z-index:2;opacity:0;transition:opacity .12s ease;font-family:var(--font-mono,ui-monospace,monospace);font-size:.7rem;line-height:1;padding:3px 8px;border-radius:var(--r-pill,999px);border:1px solid var(--line,#e5e7eb);background:var(--bg-1,#ffffff);color:var(--ink-mid,#374151);cursor:pointer}.sd-doc .sd-copy-claim:hover{border-color:var(--accent,#2c5282);color:var(--accent,#2c5282)}.sd-doc .sd-copy-claim:focus-visible,.sd-doc :is(p,li,pre,h1,h2,h3,h4,h5,h6):hover>.sd-copy-claim{opacity:1}.sd-doc :is(p,li,pre,h1,h2,h3,h4,h5,h6):has(>.sd-copy-claim):hover,.sd-doc :is(p,li,pre,h1,h2,h3,h4,h5,h6):has(>.sd-copy-claim:focus-visible){outline:1px dashed var(--accent,#2c5282);outline-offset:3px;border-radius:3px}[data-sd-theme=signal],[data-sd-theme=signal][data-theme=dark]{--bg-0:#090d13;--bg-1:#111824;--bg-2:#18212f;--line:#253243;--line-soft:#1a232f;--ink-hi:#eef3f9;--ink-mid:#a7b3c1;--ink-low:#6c798a;--ink-faint:#46505f;--accent:#5b9dff;--accent-2:#b39ddb;--accent-ink:#07101f;--accent-soft:rgba(91,157,255,0.14);--ok:#5bd6a8;--warn:#e0b15a;--bad:#e08a8a;--star:#dfe6ee;--edge:#2b3a52;--glow:91,157,255;--shadow:0 24px 60px -28px rgba(0,0,0,0.7);color-scheme:dark}[data-sd-theme=signal][data-theme=light]{--bg-0:#f3f6fb;--bg-1:#ffffff;--bg-2:#eaf0f7;--line:#d3deea;--line-soft:#e4ebf3;--ink-hi:#0c1622;--ink-mid:#3e4c5b;--ink-low:#6c798a;--ink-faint:#9aa6b4;--accent:#1c63d6;--accent-2:#6b4fbf;--accent-ink:#ffffff;--accent-soft:rgba(28,99,214,0.1);--ok:#1f9a6d;--warn:#b97e16;--bad:#c0504a;--star:#1c63d6;--edge:#c3d0df;--glow:28,99,214;--shadow:0 22px 50px -30px rgba(20,40,80,0.32);color-scheme:light}[data-sd-theme=signal]{--font-display:"Space Grotesk",system-ui,sans-serif;--font-alt:"Archivo",system-ui,sans-serif;--font-body:"Hanken Grotesk",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--r-sm:8px;--r-md:14px;--r-lg:20px;--r-pill:999px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:96px}[data-sd-theme=signal] .sd-doc .hi{color:var(--accent);font-weight:600}[data-sd-theme=signal] .sd-doc .amber{color:var(--accent-2);font-weight:600}[data-sd-theme=signal] .sd-doc .chip .dot{width:8px;height:8px;border-radius:50%}[data-sd-theme=signal] .sd-doc .chip.ok{color:var(--ok);border-color:color-mix(in oklab,var(--ok) 40%,var(--line))}[data-sd-theme=signal] .sd-doc .chip.ok .dot{background:var(--ok)}[data-sd-theme=signal] .sd-doc .chip.warn{color:var(--warn);border-color:color-mix(in oklab,var(--warn) 40%,var(--line))}[data-sd-theme=signal] .sd-doc .chip.warn .dot{background:var(--warn)}[data-sd-theme=signal] .sd-doc .chip.bad{color:var(--bad);border-color:color-mix(in oklab,var(--bad) 40%,var(--line))}[data-sd-theme=signal] .sd-doc .chip.bad .dot{background:var(--bad)}[data-sd-theme=signal] .sd-doc .sdd-diagram rect[class*=sdd-shape]{stroke:color-mix(in oklab,var(--edge) 60%,var(--line))}[data-sd-theme=signal] .sd-doc .sdd-edge{stroke:var(--edge)}[data-sd-theme=signal] .sd-doc [class*=sdd-stencil]{fill:rgb(var(--glow))}[data-sd-theme=signal] .sd-doc .sdd-fill-accent{fill:var(--accent)}[data-sd-theme=signal] .sd-doc .sdd-fill-accent-2{fill:var(--accent-2)}[data-sd-theme=signal] .sd-doc .sdd-group-container{stroke:color-mix(in oklab,var(--edge) 60%,var(--line));stroke-dasharray:2 3}[data-sd-theme=signal] .sd-doc .sdd-group-label{fill:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.14em}[data-sd-theme=signal] .sd-doc [data-sd-unresolved-ref]{color:var(--bad);-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:2px;opacity:.85}