@import url('https://fonts.googleapis.com/css2?family=Titillium+Web:wght@400;600;700&display=swap');

:root {
  --lb-blue:#0075D0; --lb-blue-strong:#0072CE; --lb-navy:#0B1F33;
  --lb-grey:#657786; --lb-bg:#F5F8FB; --lb-border:#E4ECF2;
  --lb-soft-blue:#E8F3FC; --white:#FFFFFF; --green:#0FA36B;
  --code-bg:#0B1F33; --code-fg:#EAF3FA; --max:1080px; --sidebar:250px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--white);color:var(--lb-navy);font-family:"Titillium Web","Segoe UI",Arial,sans-serif;font-size:17px;line-height:1.62}
a{color:var(--lb-blue);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--lb-blue-strong)}
code,pre{font-family:"Courier New",Courier,monospace}
.skip-link{position:fixed;left:12px;top:-60px;z-index:100;background:var(--lb-navy);color:#fff;padding:10px 14px}.skip-link:focus{top:12px}
.topbar{height:60px;position:sticky;top:0;z-index:30;background:rgba(255,255,255,.97);border-bottom:1px solid var(--lb-border);backdrop-filter:blur(10px)}
.topbar__inner{height:100%;max-width:1500px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 28px}
.brand{display:inline-flex;align-items:center;text-decoration:none;color:var(--lb-navy)}
.brand__text{font-size:20px;font-weight:700;letter-spacing:.06em}
.topbar__meta{display:flex;gap:12px;align-items:center;color:var(--lb-grey);font-size:13px}
.status-pill{border:1px solid var(--lb-blue);color:var(--lb-blue);padding:2px 8px;border-radius:999px;font-weight:600}
.layout{display:grid;grid-template-columns:var(--sidebar) minmax(0,var(--max));justify-content:center;column-gap:46px;padding-right:28px}
.sidebar{border-right:1px solid var(--lb-border);background:var(--lb-bg);min-height:calc(100vh - 60px)}
.sidebar__inner{position:sticky;top:60px;padding:34px 26px 40px 22px;max-height:calc(100vh - 60px);overflow-y:auto}
.sidebar__title{color:var(--lb-grey);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;margin-bottom:13px}
#spec-nav{display:flex;flex-direction:column;gap:2px}
#spec-nav a,.sidebar__utility{color:#334A5F;text-decoration:none;font-size:14px;padding:7px 9px;border-left:3px solid transparent;border-radius:0 4px 4px 0}
#spec-nav a:hover,#spec-nav a.active,.sidebar__utility:hover{color:var(--lb-blue);background:var(--white);border-left-color:var(--lb-blue)}
.sidebar__divider{border-top:1px solid var(--lb-border);margin:18px 0 10px}.sidebar__utility{display:block}
.spec{min-width:0;padding:54px 0 90px}
.hero{padding-bottom:40px;border-bottom:1px solid var(--lb-border)}
.eyebrow{color:var(--lb-blue);font-weight:700;letter-spacing:.07em;text-transform:uppercase;font-size:13px;margin:0 0 8px}
h1{font-size:clamp(38px,4.2vw,54px);line-height:1.02;letter-spacing:-.025em;margin:0;font-weight:700}
h1 span{color:var(--lb-blue);font-size:.55em;font-weight:400;letter-spacing:0}
.lead{font-size:21px;line-height:1.45;max-width:800px;margin:22px 0 28px;color:#334A5F}
.spec-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--lb-border);border-radius:6px;overflow:hidden;margin:0}
.spec-meta>div{padding:12px 16px;background:var(--lb-bg);border-bottom:1px solid var(--lb-border)}
.spec-meta>div:nth-child(odd){border-right:1px solid var(--lb-border)}
.spec-meta>div:nth-last-child(-n+2){border-bottom:0}
.spec-meta dt{color:var(--lb-grey);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.spec-meta dd{margin:2px 0 0;font-weight:600}
section{margin-top:56px}
h2{font-size:32px;line-height:1.2;margin:0 0 22px;padding-bottom:10px;border-bottom:1px solid var(--lb-border)}
.section-number{color:var(--lb-blue)}
h3{font-size:22px;margin:32px 0 10px}h4{font-size:18px;margin:0 0 6px}p{margin:0 0 18px}
.placeholder{color:var(--lb-grey);border-left:3px solid var(--lb-border);padding-left:16px}
.notice{border:1px solid #B8D9F3;background:var(--lb-soft-blue);padding:18px 22px;border-radius:6px}
.notice__label{color:var(--lb-blue);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:700;margin-bottom:5px}.notice p{margin:0}
.architecture-strip{display:grid;align-items:stretch;margin:30px 0 4px}
.architecture-strip--five{grid-template-columns:1fr auto 1.4fr auto 1.2fr auto .8fr auto 1fr}
.architecture-strip div{border:1px solid var(--lb-border);background:var(--lb-bg);padding:14px 12px;text-align:center;border-radius:5px}
.architecture-strip strong{display:block;color:var(--lb-blue)}.architecture-strip span{font-size:13px;color:var(--lb-grey)}
.architecture-strip i{display:grid;place-items:center;color:var(--lb-blue);padding:0 6px;font-style:normal}
.scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.scope-card{border-top:3px solid var(--lb-blue);padding:18px;background:var(--lb-bg)}.scope-card--muted{border-top-color:var(--lb-grey)}.scope-card p{margin:0}
.definition-list{border-top:1px solid var(--lb-border)}.definition-list>div{display:grid;grid-template-columns:150px 1fr;gap:22px;padding:13px 0;border-bottom:1px solid var(--lb-border)}.definition-list dt{font-weight:700;color:var(--lb-blue)}.definition-list dd{margin:0}
.principle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.principle-grid article{border:1px solid var(--lb-border);padding:17px 18px;border-radius:5px}.principle-grid h3{margin:0 0 5px;font-size:18px;color:var(--lb-blue)}.principle-grid p{margin:0;font-size:15px;color:#445A6C}
.standards-table,.variable-table{border:1px solid var(--lb-border);border-radius:5px;overflow:hidden;margin:22px 0}
.standards-row{display:grid;grid-template-columns:210px 1fr;border-bottom:1px solid var(--lb-border)}.standards-row:last-child{border-bottom:0}.standards-row>*{padding:10px 13px}.standards-row--head{background:var(--lb-bg);color:var(--lb-grey);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700}
.example-note{color:var(--lb-grey);font-size:14px;margin-bottom:8px}
.code-frame{border:1px solid #17344E;border-radius:6px;overflow:hidden;background:var(--code-bg)}
.code-frame__header{background:#122B42;border-bottom:1px solid #28455D;color:#AFC3D3;display:flex;justify-content:space-between;align-items:center;padding:8px 14px;text-transform:uppercase;letter-spacing:.06em;font-size:11px}
.code-actions{display:flex;gap:14px}.code-actions a{color:#D9ECFB;text-decoration:none}.code-actions a:hover{text-decoration:underline}
pre{margin:0;overflow:auto;padding:20px;font-size:14px;line-height:1.55;color:var(--code-fg);tab-size:2}
.variable-row{display:grid;grid-template-columns:1fr 2fr 1fr;border-bottom:1px solid var(--lb-border)}.variable-row:last-child{border-bottom:0}.variable-row>*{padding:10px 13px}.variable-row--head{background:var(--lb-bg);color:var(--lb-grey);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700}.variable-row strong{color:var(--green);font-size:13px}
.callout{display:grid;grid-template-columns:200px 1fr;gap:20px;border-left:4px solid var(--lb-blue);background:var(--lb-bg);padding:15px 18px;margin:20px 0}.callout strong{color:var(--lb-blue)}
.legal-block{background:var(--lb-bg);border:1px solid var(--lb-border);padding:22px 25px;font-size:14px}.legal-block h2{font-size:20px;border:0;padding:0;margin-bottom:12px}
footer{border-top:1px solid var(--lb-border);background:var(--lb-bg);color:var(--lb-grey);padding:24px max(24px,calc((100vw - 1380px)/2));font-size:13px;display:flex;justify-content:space-between}footer a{color:inherit}
.term-index{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.term-index a{background:var(--lb-bg);border:1px solid var(--lb-border);border-radius:4px;padding:4px 8px;text-decoration:none;font-size:14px}
.term-entry{padding:20px 0;border-bottom:1px solid var(--lb-border)}.term-entry h3{margin:0 0 8px}.term-entry .term-kind{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--lb-grey)}
.editor-shell{max-width:1100px;margin:40px auto;padding:0 24px}.editor-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.editor-title{font-weight:700}.editor-actions{display:flex;gap:12px}
.json-editor{border:1px solid #17344E;border-radius:6px;overflow:hidden;background:var(--code-bg)}
.json-editor pre{white-space:pre;min-height:420px}.json-key{color:#8DCEF2}.json-string{color:#D8F0B5}.json-number{color:#F2CF8D}.json-bool{color:#EAB3F2}.json-null{color:#AFC3D3}
@media(max-width:900px){.layout{display:block;padding:0 20px}.sidebar{min-height:0;margin:0 -20px;border-right:0;border-bottom:1px solid var(--lb-border)}.sidebar__inner{position:static;max-height:none;padding:13px 20px}.sidebar__title,.sidebar__divider,.sidebar__utility{display:none}#spec-nav{flex-direction:row;overflow-x:auto;white-space:nowrap}#spec-nav a{border-left:0;border-bottom:2px solid transparent;border-radius:0}#spec-nav a.active{border-bottom-color:var(--lb-blue)}.spec{padding-top:40px}.spec-meta,.scope-grid,.principle-grid{grid-template-columns:1fr}.spec-meta>div,.spec-meta>div:nth-child(odd){border-right:0;border-bottom:1px solid var(--lb-border)}.architecture-strip--five{grid-template-columns:1fr;gap:5px}.architecture-strip i{transform:rotate(90deg);height:22px}.definition-list>div,.standards-row,.variable-row{grid-template-columns:1fr}.standards-row--head,.variable-row--head{display:none}.callout{grid-template-columns:1fr;gap:3px}footer{padding:20px;flex-direction:column;gap:5px}}


.rule-table{border:1px solid var(--lb-border);border-radius:5px;overflow:hidden;margin:22px 0}
.rule-row{display:grid;grid-template-columns:230px 1fr;border-bottom:1px solid var(--lb-border)}
.rule-row:last-child{border-bottom:0}
.rule-row>*{padding:10px 13px}
.rule-row--head{background:var(--lb-bg);color:var(--lb-grey);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:700}
.model-frame{border:1px solid var(--lb-border);border-radius:6px;overflow:hidden;background:var(--white);margin:22px 0}
.model-frame__header{display:flex;justify-content:space-between;gap:16px;align-items:center;background:var(--lb-bg);border-bottom:1px solid var(--lb-border);padding:9px 14px;color:var(--lb-grey);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.model-frame pre{background:var(--white);color:var(--lb-navy);font-size:13px;line-height:1.5}
.review-callout{display:grid;grid-template-columns:210px 1fr;gap:18px;border:1px solid #E7D9A7;border-left:4px solid #B78A00;background:#FFFBEF;padding:15px 18px;margin:20px 0;border-radius:0 5px 5px 0}
.review-callout strong{color:#7B5D00}
.code-frame--spaced{margin-top:16px}
@media(max-width:900px){.rule-row{grid-template-columns:1fr}.rule-row--head{display:none}.review-callout{grid-template-columns:1fr;gap:4px}}


.linked-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 24px}.mini-example{border:1px solid var(--lb-border);border-radius:6px;padding:14px;background:var(--white);display:flex;flex-direction:column;gap:7px}.mini-example code{font-size:12px;overflow-wrap:anywhere}.mini-example span{font-size:13px;color:var(--lb-grey)}
.fair-table{border:1px solid var(--lb-border);border-radius:6px;overflow:hidden;margin:20px 0}.fair-row{display:grid;grid-template-columns:1.05fr 2.3fr .65fr;border-bottom:1px solid var(--lb-border)}.fair-row:last-child{border-bottom:0}.fair-row>*{padding:11px 13px}.fair-row--head{background:var(--lb-bg);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--lb-grey);font-weight:700}.fair-row a{font-weight:600}.source-note{font-size:14px;color:var(--lb-grey)}.reference-list li{margin:.55rem 0}
@media(max-width:900px){.linked-example-grid{grid-template-columns:1fr}.fair-row{grid-template-columns:1fr}.fair-row--head{display:none}}


/* ASCII / normative model diagrams
   Keep these light-background technical diagrams readable independently
   from the dark code-block theme used for JSON/code examples. */
.model-frame pre,
.model-frame pre code {
  background: #F8FAFC;
  color: var(--lb-navy) !important;
}

.model-frame pre {
  margin: 0;
  padding: 20px;
  overflow-x: auto;
  font-family: "Courier New", Courier, monospace;
  font-size: 13px;
  line-height: 1.55;
  white-space: pre;
}

.model-frame code {
  font-family: inherit;
  color: inherit !important;
}

.model-frame__header {
  background: var(--lb-bg);
  color: #445A6C;
}
