/* Document shell. Shared V2 foundation supplies type, colors, links and chrome. */
.paper-hero { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr); align-items:center; gap:48px; padding-block:56px 72px; }
.paper-hero .ttp-eyebrow { margin-top:36px; }
.paper-hero > div { container:paper-heading / inline-size; }
.paper-hero h1 { font-size:min(clamp(3rem,5.5vw,5rem),16cqi); letter-spacing:-.04em; line-height:1.05; }
.paper-hero h1 span { display:block; width:fit-content; max-width:100%; padding-inline-end:.12em; background:var(--grad); background-clip:text; -webkit-background-clip:text; }
.paper-hero__lead { font-size:clamp(1.5rem,2.5vw,2rem); line-height:1.3; margin-top:24px; letter-spacing:-.025em; text-wrap:balance; }
.paper-hero__description { max-width:590px; color:var(--muted); margin-top:20px; line-height:1.8; text-wrap:pretty; }
.paper-hero img { display:block; width:min(100%,360px); height:auto; justify-self:center; }
.paper-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:64px; padding-block:48px 32px; }
/* Same rail as the Signals API docs (api/api.css .docs__toc): uppercase label, left rule, accent marker on the current item. */
.paper-nav { position:sticky; top:calc(var(--nav-height) + 28px); align-self:start; max-height:calc(100vh - var(--nav-height) - 56px); max-height:calc(100dvh - var(--nav-height) - 56px); overflow-y:auto; scroll-target-group:auto; }
.paper-nav .ttp-label { display:block; font-size:.75rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); margin-bottom:12px; }
.paper-nav div { border-left:1px solid var(--line); }
.paper-nav a { display:block; padding:10px 0 10px 16px; margin-left:-1px; border-left:1px solid transparent; color:var(--muted); font-size:.9375rem; line-height:1.4; }
.paper-nav a[aria-current="location"] { color:var(--text); border-left-color:var(--accent); }
.paper-nav a:focus-visible { color:var(--text); border-color:var(--line-strong); outline-offset:-2px; }
.paper-body { min-width:0; max-width:900px; container:paper / inline-size; }
.paper-body p { color:var(--muted); line-height:1.8; font-size:1rem; margin-top:20px; text-wrap:pretty; }
/* At 320px with 200% text, the long fee-schedule link made Chromium 331px wide.
   Allow emergency breaks in prose links without changing normal word wrapping. */
.paper-body a[data-ui-link="inline"] { overflow-wrap:anywhere; }
.paper .paper-body > section { padding-block:48px; border-bottom:0; scroll-margin-top:0; }
.paper-body h2 { color:var(--text); font-size:clamp(1.875rem,3vw,2.75rem); letter-spacing:-.04em; line-height:1.15; text-wrap:balance; }
.paper-body h3 { font-size:1.125rem; line-height:1.4; margin-top:32px; }
.paper-status, .paper-rule, .paper .ttp-business-policy { padding:24px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.paper-status__label { display:flex; align-items:center; gap:10px; font-size:.875rem; font-weight:500; color:var(--accent); }
.paper-status__label > span { width:7px; height:7px; border-radius:50%; background:currentColor; }
.paper-status p { font-size:.875rem; margin-top:12px; }
.paper-rule { margin-top:28px; }
.paper-rule p { margin-top:12px; }
.paper-rule > a { margin-top:20px; }
.paper .ttp-business-policy { margin-top:28px; }
.paper .ttp-business-policy h3 { margin-top:0; }
.paper .ttp-launch-facts { display:flex; flex-wrap:wrap; gap:16px 32px; margin-top:24px; padding:20px 0; border-block:1px solid var(--line); }
.paper .ttp-launch-facts > div { display:flex; gap:10px; }
.paper .ttp-launch-facts dt { color:var(--muted); }
.paper .ttp-launch-facts dd { margin:0; }
.paper-references { padding-top:32px; border-top:1px solid var(--line); }
.paper-references h2 { font-size:1.25rem; }
.paper-references p { font-size:.8125rem; }
.paper-end-nav { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-block:32px var(--section-space); }
.paper > .ttp-safety { margin-top:0; }
@media (max-width:1100px) { .paper-layout { grid-template-columns:180px minmax(0,1fr); gap:32px; } }
@media (max-width:900px) { .paper-layout { grid-template-columns:1fr; gap:32px; } .paper-nav { position:static; max-height:none; overflow:visible; } .paper-nav div { display:flex; flex-wrap:wrap; gap:8px; border:0; } .paper-nav a { padding:10px 14px; margin:0; border:1px solid var(--line); border-radius:999px; font-size:.875rem; } .paper-nav a[aria-current="location"] { border-color:var(--line-strong); } }
@media (max-width:700px) {
 .paper-hero { grid-template-columns:1fr; gap:24px; padding-block:32px 40px; }
 .paper-hero h1 { font-size:clamp(2.5rem,10vw,4rem); }
 .paper-hero .ttp-eyebrow { margin-top:24px; font-size:.75rem; }
 .paper .paper-hero img { width:150px; }
 .paper-layout { padding-top:24px; }
 .paper .paper-body > section { padding-block:36px; }
 .paper-status, .paper-rule, .paper .ttp-business-policy { padding:20px; }
}
@media (hover:hover) and (pointer:fine) { .paper-nav a:hover { color:var(--text); border-color:var(--line-strong); } }
@media (forced-colors:active) { .paper-nav a[aria-current="location"] { outline:1px solid Highlight; } }
.paper-nav[data-scrollspy] { scroll-target-group:none; }
@media (max-width:700px) {
 .paper-layout { gap:24px; }
 /* Preserve normal-size hero type; bound the long title when text is enlarged. */
 .paper-hero h1 { font-size:min(clamp(2.5rem,10vw,4rem),14vw); }
 .paper .paper-body > section { padding-block:28px; }
 .paper-body p { line-height:1.7; margin-top:16px; }
 .paper-body h3 { margin-top:24px; }
 .paper-status, .paper-rule, .paper .ttp-business-policy { padding:16px; }
 .paper-body :is(.paper-status, .paper-rule, .ttp-business-policy) p { margin-top:12px; }
 .paper-rule, .paper .ttp-business-policy { margin-top:24px; }
 .paper-nav a { min-height:44px; display:flex; align-items:center; padding:8px 12px; }
 .paper-end-nav { flex-wrap:wrap; gap:12px 24px; padding-block:24px 40px; }
}
@supports selector(:target-current) {
 .paper-nav:not([data-scrollspy]) a:target-current { color:var(--text); border-left-color:var(--accent); }
}
