/* Reading pages share Curve's navigation and sunrise palette. */
body.relay-terminal.documentation-page main.documentation-main { width: 100%; max-width: 1080px; padding: 40px 28px 80px; margin: 0 auto; }
.documentation-page .documentation-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; }
.documentation-tabs a { display: inline-flex; align-items: center; min-height: 40px; padding: 9px 15px; border: 1px solid transparent; border-radius: 9px; color: var(--muted); font-size: 13px; text-decoration: none; }
.documentation-tabs a:hover { color: var(--text); background: var(--panel); }
.documentation-tabs a[aria-current=page] { color: var(--sunrise-cream); background: #39283b; border-color: #674859; }
.documentation-hero { padding-bottom: 30px; border-bottom: 1px solid var(--line); margin-bottom: 28px; }
.documentation-hero .eyebrow { font-size: 10px; letter-spacing: 1.6px; margin-bottom: 18px; }
.documentation-hero h1 { font-size: clamp(32px, 4vw, 48px); line-height: 1.1; letter-spacing: -1.5px; font-weight: 650; margin-bottom: 16px; }
.documentation-hero > p:not(.eyebrow) { max-width: 720px; font-size: 16px; line-height: 1.75; color: var(--muted); margin: 0; }
.documentation-date { display: block; font-size: 12px; color: var(--muted); margin-top: 19px; }
.documentation-jump { display: flex; flex-wrap: wrap; gap: 10px 20px; padding-bottom: 30px; }
.documentation-jump a { font-size: 12px; color: var(--accent); text-decoration: none; }
.documentation-jump a:hover { text-decoration: underline; }
.documentation-article { max-width: 880px; }
.documentation-section { padding: 29px 0; border-top: 1px solid var(--line); scroll-margin-top: 110px; }
.documentation-section:first-child { border-top: 0; padding-top: 8px; }
.documentation-section h2 { font-size: 23px; font-weight: 600; letter-spacing: -.5px; margin: 0 0 18px; line-height: 1.3; }
.documentation-section h3 { font-size: 16px; font-weight: 600; margin: 24px 0 10px; }
.documentation-section p, .documentation-section li, .documentation-section dd { font-size: 14px; line-height: 1.85; color: #c7bacf; }
.documentation-section p { margin: 0 0 15px; }
.documentation-section p:last-child { margin-bottom: 0; }
.documentation-section strong { color: var(--text); font-weight: 600; }
.documentation-section a { color: var(--accent); }
.documentation-section :is(ul,ol) { margin: 14px 0; padding-left: 22px; }
.documentation-section li { padding-left: 5px; margin: 8px 0; }
.documentation-section code { font: 12px var(--mono); overflow-wrap: anywhere; color: #ebc5af; }
.documentation-callout { border: 1px solid #634553; border-radius: 13px; padding: 18px 20px; background: linear-gradient(125deg, #432d393d, #241c2b); margin: 20px 0; }
.documentation-callout p { font-size: 13px; }
.documentation-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 22px 0; }
.documentation-card { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.documentation-card h3 { margin: 0 0 10px; font-size: 15px; }
.documentation-card p { font-size: 13px; line-height: 1.75; margin: 0; }
.documentation-table-wrap { overflow-x: auto; margin: 20px 0; border: 1px solid var(--line); border-radius: 13px; }
.documentation-table { width: 100%; border-collapse: collapse; text-align: left; }
.documentation-table th { padding: 14px 17px; background: var(--panel); color: var(--text); font-size: 12px; font-weight: 600; }
.documentation-table td { border-top: 1px solid var(--line); padding: 16px 17px; color: #c7bacf; font-size: 13px; line-height: 1.75; vertical-align: top; }
.documentation-table th:first-child, .documentation-table td:first-child { width: 27%; min-width: 145px; }
.documentation-table td:first-child { color: var(--text); font-weight: 500; }
.documentation-section details { border: 1px solid var(--line); background: var(--panel); border-radius: 12px; padding: 17px 19px; margin-top: 12px; }
.documentation-section summary { cursor: pointer; font-size: 14px; font-weight: 500; line-height: 1.6; color: var(--text); }
.documentation-section details[open] summary { margin-bottom: 14px; }
.documentation-section details p { font-size: 13px; }
.documentation-end { padding-top: 25px; margin-top: 12px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 14px 25px; }
.documentation-end a { color: var(--accent); font-size: 13px; }
@media (max-width: 680px) {
  body.relay-terminal.documentation-page main.documentation-main { padding: 24px 18px 48px; }
  .documentation-page .documentation-tabs { gap: 4px; margin-bottom: 28px; }
  .documentation-tabs a { padding: 8px 11px; font-size: 12px; }
  .documentation-hero { padding-bottom: 24px; }
  .documentation-hero > p:not(.eyebrow) { font-size: 14px; }
  .documentation-cards { grid-template-columns: 1fr; gap: 10px; }
  .documentation-card { padding: 17px; }
  .documentation-section { padding: 25px 0; }
  .documentation-section h2 { font-size: 21px; }
  .documentation-section p, .documentation-section li { font-size: 13px; }
  .documentation-table th, .documentation-table td { padding: 12px; font-size: 12px; }
  .documentation-table th:first-child, .documentation-table td:first-child { min-width: 110px; }
}

.documentation-page .skip-link { position: fixed; top: -100px; left: 16px; z-index: 100; padding: 12px 16px; background: var(--panel); color: var(--accent); border: 1px solid var(--line); border-radius: 8px; }
.documentation-page .skip-link:focus { top: 10px; }

/* ==========================================================================
   Reading experience: a sticky "On this page" list with an active marker,
   calmer typography, styled callouts, code and tables, and sections that
   skip rendering until they approach the viewport. Presentation only.
   ========================================================================== */
body.documentation-page.relay-terminal{--doc-gold:#f4d797;--doc-peach:#ebb58a;--doc-body:#cfc2d6;--doc-edge:#362a3f;--doc-ease:var(--motion-ease,cubic-bezier(.22,1,.36,1))}
/* Anchor jumps clear the sticky header from the first paint, before the shared
   shell stylesheets (which set the same padding) arrive. */
html:has(body.documentation-page){scroll-padding-top:90px}
@media(max-width:700px){html:has(body.documentation-page){scroll-padding-top:126px}}
body.relay-terminal.documentation-page main.documentation-main{max-width:1200px}
body.documentation-page.relay-terminal .documentation-tabs{gap:6px;padding:5px;border:1px solid var(--doc-edge);border-radius:14px;background:#1e1825;width:max-content;max-width:100%;box-sizing:border-box}
body.documentation-page.relay-terminal .documentation-tabs a{min-height:36px;padding:8px 14px;border-radius:10px;transition:color var(--motion-fast,150ms) ease,background-color var(--motion-fast,150ms) ease}
body.documentation-page.relay-terminal .documentation-tabs a[aria-current=page]{background:linear-gradient(140deg,#4f3549,#3a2940);border-color:#8b5f70;color:#ffe6c7;box-shadow:0 8px 22px -14px #ebb58a99}
body.documentation-page.relay-terminal .documentation-hero{position:relative;padding-bottom:34px;border-bottom:0;margin-bottom:34px}
body.documentation-page.relay-terminal .documentation-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#ebb58a80,#b5728e66 30%,#3b304400 80%)}
body.documentation-page.relay-terminal .documentation-hero .eyebrow{color:var(--doc-peach);letter-spacing:2.4px}
body.documentation-page.relay-terminal .documentation-hero h1{font-size:clamp(36px,4.6vw,56px);letter-spacing:-1.8px;background:linear-gradient(100deg,#fff5e8 5%,#fff2bd 45%,#f2c092 75%,#e69986);-webkit-background-clip:text;background-clip:text;color:transparent}
body.documentation-page.relay-terminal .documentation-hero>p:not(.eyebrow){font-size:17px;color:#c9bccf}
body.documentation-page.relay-terminal .documentation-date{display:inline-flex;align-items:center;gap:7px;margin-top:20px;padding:5px 11px;border:1px solid #43354b;border-radius:999px;background:#211a28;color:#c4b5ca}
body.documentation-page.relay-terminal .documentation-date::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--doc-gold);box-shadow:0 0 10px #f4d797aa}

/* "On this page" */
body.documentation-page.relay-terminal .documentation-jump{position:relative;display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;padding:2px 0 22px;margin:0}
body.documentation-page.relay-terminal .documentation-jump::-webkit-scrollbar{display:none}
body.documentation-page.relay-terminal .documentation-jump-title{display:none;margin:0 0 10px;font-size:10px;font-weight:650;letter-spacing:1.8px;text-transform:uppercase;color:#a998b1}
body.documentation-page.relay-terminal .documentation-jump a{flex:none;display:block;padding:7px 12px;border:1px solid #3d3046;border-radius:999px;background:#211a28;color:#d8c8d6;font-size:12px;font-weight:550;text-decoration:none;transition:color var(--motion-fast,150ms) ease,background-color var(--motion-fast,150ms) ease,border-color var(--motion-fast,150ms) ease}
body.documentation-page.relay-terminal .documentation-jump a:hover{color:var(--text);border-color:#5a4660;text-decoration:none}
body.documentation-page.relay-terminal .documentation-jump a[aria-current=location]{color:#ffe6c7;border-color:#8b5f70;background:#3a2940}
@media(min-width:1100px){
  body.relay-terminal.documentation-page main.documentation-main{display:grid;grid-template-columns:minmax(0,1fr) 220px;column-gap:64px;align-items:start}
  body.documentation-page.relay-terminal .documentation-main>:is(.documentation-tabs,.documentation-hero){grid-column:1/-1}
  body.documentation-page.relay-terminal .documentation-main>.documentation-article{grid-column:1;grid-row:3;max-width:780px}
  body.documentation-page.relay-terminal .documentation-main>.documentation-jump{grid-column:2;grid-row:3;position:sticky;top:104px;display:grid;gap:2px;overflow:visible;padding:4px 0 4px 16px;border-left:1px solid #33283b;max-height:calc(100vh - 140px);overflow-y:auto}
  body.documentation-page.relay-terminal .documentation-jump-title{display:block;margin-left:-16px;padding-left:16px}
  body.documentation-page.relay-terminal .documentation-jump a{padding:6px 10px;margin-left:-10px;border:0;border-radius:8px;background:transparent;color:#a998b1;font-size:12.5px}
  body.documentation-page.relay-terminal .documentation-jump a:hover{background:#ffffff06;color:var(--text)}
  body.documentation-page.relay-terminal .documentation-jump a[aria-current=location]{background:transparent;color:var(--doc-gold)}
  body.documentation-page.relay-terminal .documentation-jump.has-marker::before{content:"";position:absolute;left:-1px;top:0;width:2px;height:1px;border-radius:2px;background:linear-gradient(180deg,var(--doc-gold),#e69986);transform-origin:50% 0;transform:translateY(var(--toc-y,0)) scaleY(var(--toc-h,0));transition:transform .45s var(--doc-ease)}
}

/* Typography and blocks */
body.documentation-page.relay-terminal .documentation-section{padding:34px 0;border-top-color:#2f2637;scroll-margin-top:14px;content-visibility:auto;contain-intrinsic-size:auto 640px}
body.documentation-page.relay-terminal .documentation-section:first-child{content-visibility:visible}
body.documentation-page.relay-terminal .documentation-article.is-scrolling .documentation-section,body.documentation-page.relay-terminal .documentation-section:target{content-visibility:visible}
@media print{body.documentation-page.relay-terminal .documentation-section{content-visibility:visible}}
body.documentation-page.relay-terminal .documentation-section h2{position:relative;font-size:26px;font-weight:650;letter-spacing:-.6px;color:#fff3e4}
body.documentation-page.relay-terminal .documentation-section h3{font-size:16px;font-weight:650;color:#f2dfcf}
body.documentation-page.relay-terminal .documentation-section :is(p,li,dd){font-size:15px;line-height:1.82;color:var(--doc-body)}
body.documentation-page.relay-terminal .documentation-section strong{color:#fff2e3}
body.documentation-page.relay-terminal .documentation-section a{color:var(--doc-peach);text-decoration-color:#ebb58a66;text-underline-offset:3px;transition:color var(--motion-fast,150ms) ease,text-decoration-color var(--motion-fast,150ms) ease}
body.documentation-page.relay-terminal .documentation-section a:hover{color:var(--doc-gold);text-decoration-color:currentColor}
body.documentation-page.relay-terminal .documentation-section ol{counter-reset:doc-step;list-style:none;padding-left:0}
body.documentation-page.relay-terminal .documentation-section ol>li{counter-increment:doc-step;position:relative;padding-left:40px;margin:12px 0}
body.documentation-page.relay-terminal .documentation-section ol>li::before{content:counter(doc-step);position:absolute;left:0;top:2px;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#30253a;border:1px solid #4d3d56;color:var(--doc-gold);font:650 12px/1 var(--sans)}
body.documentation-page.relay-terminal .documentation-section ul>li::marker{color:var(--doc-peach)}
body.documentation-page.relay-terminal .documentation-section code{padding:2px 6px;border:1px solid #43354b;border-radius:6px;background:#1c1622;color:#f0c8ad;font-size:12.5px}
body.documentation-page.relay-terminal .documentation-callout{position:relative;overflow:hidden;padding:18px 20px 18px 54px;border:1px solid transparent;border-radius:16px;background:linear-gradient(125deg,#3a283a,#231c2b 70%) padding-box,linear-gradient(120deg,#ebb58a88,#634553 45%,#3a2e44) border-box}
body.documentation-page.relay-terminal .documentation-callout::before{content:"!";position:absolute;left:18px;top:18px;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--doc-gold),var(--doc-peach));color:#2e1d30;font:800 13px/1 var(--sans);box-shadow:0 0 18px -2px #ebb58aaa}
body.documentation-page.relay-terminal .documentation-callout p{font-size:14px}
body.documentation-page.relay-terminal .documentation-cards{gap:12px}
body.documentation-page.relay-terminal .documentation-card{border-color:var(--doc-edge);border-radius:16px;background:linear-gradient(165deg,#281f30,#211a28)}
body.documentation-page.relay-terminal .documentation-card h3{display:flex;align-items:center;gap:8px}
body.documentation-page.relay-terminal .documentation-card h3::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--doc-gold);box-shadow:0 0 10px #f4d797aa}
body.documentation-page.relay-terminal .documentation-table-wrap{border-color:var(--doc-edge);border-radius:16px;background:#1e1825}
body.documentation-page.relay-terminal .documentation-table th{background:#2a2132;color:#f2dfcf;letter-spacing:.2px}
body.documentation-page.relay-terminal .documentation-table td{border-top-color:#2f2637;font-size:13.5px}
body.documentation-page.relay-terminal .documentation-table tbody tr{transition:background-color var(--motion-fast,150ms) ease}
body.documentation-page.relay-terminal .documentation-table tbody tr:hover{background:#ffffff05}
body.documentation-page.relay-terminal .documentation-section details{border-color:var(--doc-edge);border-radius:14px;background:linear-gradient(165deg,#261e2d,#211a28);transition:border-color var(--motion-mid,260ms) ease}
body.documentation-page.relay-terminal .documentation-section details[open]{border-color:#5a4660}
body.documentation-page.relay-terminal .documentation-section summary{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none}
body.documentation-page.relay-terminal .documentation-section summary::-webkit-details-marker{display:none}
body.documentation-page.relay-terminal .documentation-section summary::after{content:"+";flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#30253a;color:var(--doc-peach);font-weight:700;transition:transform var(--motion-mid,260ms) var(--motion-spring,ease)}
body.documentation-page.relay-terminal .documentation-section details[open] summary::after{transform:rotate(45deg)}
body.documentation-page.relay-terminal .documentation-end{gap:12px;padding-top:28px}
body.documentation-page.relay-terminal .documentation-end a{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border:1px solid #5e4655;border-radius:12px;background:#ebb58a12;text-decoration:none;font-weight:600;transition:background-color var(--motion-fast,150ms) ease,transform var(--motion-mid,260ms) var(--doc-ease)}
body.documentation-page.relay-terminal .documentation-end a::after{content:"→"}
body.documentation-page.relay-terminal .documentation-end a:hover{background:#ebb58a26;transform:translateX(3px)}
@media(max-width:680px){
  body.documentation-page.relay-terminal .documentation-tabs{width:auto;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  body.documentation-page.relay-terminal .documentation-tabs a{flex:none}
  body.documentation-page.relay-terminal .documentation-hero h1{font-size:36px;letter-spacing:-1.2px}
  body.documentation-page.relay-terminal .documentation-hero>p:not(.eyebrow){font-size:15px}
  body.documentation-page.relay-terminal .documentation-section{padding:28px 0}
  body.documentation-page.relay-terminal .documentation-section h2{font-size:22px}
  body.documentation-page.relay-terminal .documentation-section :is(p,li,dd){font-size:14px}
  body.documentation-page.relay-terminal .documentation-callout{padding:16px 16px 16px 48px}
  body.documentation-page.relay-terminal .documentation-callout::before{left:14px;top:16px}
}
@media(prefers-reduced-motion:reduce){
  body.documentation-page.relay-terminal .documentation-jump.has-marker::before{transition:none}
}
