/* The public shell is identical on entry, information, legal, and brand pages. */
html { scroll-padding-top: 88px; }
.pc-header, .pc-footer { font: 400 14px/1.55 var(--os-body); color: var(--os-ink); background: var(--os-paper); }
.pc-header *, .pc-footer * { box-sizing: border-box; }
.pc-header a, .pc-footer a { color: inherit; text-decoration: none; }
.pc-wrap { max-width: 1240px; margin: 0 auto; padding-inline: 32px; }
.pc-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--os-rule); }
.pc-header-row { height: 72px; display: flex; align-items: center; gap: 24px; }
.pc-brand { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; }
.pc-logo { width: 34px; height: 34px; }
.pc-brand > span { display: flex; flex-direction: column; line-height: 1; }
.pc-brand b { font: 900 20px/1 var(--os-wordmark); letter-spacing: .04em; }
.pc-brand small { margin-top: 5px; font: 500 10px/1 var(--os-mono); color: var(--os-ink-3); }
.pc-nav { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.pc-nav a, .pc-mobile-menu a { display: flex; align-items: center; min-height: 44px; padding: 8px 12px; font-size: 14px; font-weight: 500; color: var(--os-ink-2); border-radius: 10px; }
.pc-nav a:hover, .pc-mobile-menu a:hover { background: var(--os-tint); color: var(--os-ink); }
.pc-nav a[aria-current="page"], .pc-mobile-menu a[aria-current="page"] { color: var(--os-ink); text-decoration: underline; text-decoration-color: var(--os-coral); text-underline-offset: 6px; }
.pc-header .pc-actions { display: flex; gap: 8px; margin-left: auto; }
.pc-header .pc-primary { display: inline-flex; align-items: center; justify-content: center; padding: 8px 16px; min-height: 40px; border: 1px solid transparent; border-radius: 10px; background: var(--os-coral); color: #1B2D4F; font-weight: 600; white-space: nowrap; }
.pc-primary:hover { background: var(--os-coral-bright); }
.pc-menu-toggle { display: none; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; background: transparent; color: var(--os-ink); border: 1px solid var(--os-rule); border-radius: 10px; cursor: pointer; }
.pc-mobile-menu { padding: 8px 16px 16px; border-top: 1px solid var(--os-rule); }
.pc-mobile-menu[hidden] { display: none; }
.pc-footer { margin-top: auto; border-top: 1px solid var(--os-rule); padding: 48px 0 24px; }
.pc-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px; }
.pc-footer-intro p { margin: 16px 0 0; max-width: 350px; font-size: 14px; color: var(--os-ink-2); }
.pc-footer-intro .pc-tagline { font-size: 12px; color: var(--os-ink-3); }
.pc-footer nav h2 { font: 600 14px/1.5 var(--os-body); margin: 0 0 8px; }
.pc-footer nav a { display: flex; align-items: center; min-height: 40px; width: fit-content; font-size: 14px; color: var(--os-ink-2); }
.pc-footer nav a:hover { color: var(--os-ink); text-decoration: underline; text-underline-offset: 4px; }
.pc-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--os-rule); margin-top: 32px; padding-top: 20px; }
.pc-footer-bottom p { margin: 0; font-size: 12px; color: var(--os-ink-3); }
.pc-appearance { display: flex; align-items: center; gap: 10px; white-space: nowrap; font-size: 12px; color: var(--os-ink-2); }
.pc-appearance select { min-height: 40px; padding: 6px 28px 6px 10px; max-width: 140px; font: 400 16px var(--os-body); background: var(--os-sheet); color: var(--os-ink); border: 1px solid var(--os-rule); border-radius: 10px; color-scheme: light; }
[data-theme="dark"] .pc-appearance select { color-scheme: dark; }
.pc-header :focus-visible, .pc-footer :focus-visible { outline: 2px solid var(--os-ink); outline-offset: 3px; }
/* Shared readable page rhythm, with legal prose and dates left intact. */
.os-container { max-width: 1240px; padding-left: 32px; padding-right: 32px; }
.bw-legal-container { max-width: 1240px; padding: 48px 32px 64px; gap: 48px; }
.bw-legal-content h1 { font-family: var(--os-display); font-size: 40px; }
.bw-legal-content p, .bw-legal-content li { font-size: 16px; }
.bw-legal-content { min-width: 0; }
@media (max-width: 1099px) { .pc-wrap, .os-container { padding-left: 24px; padding-right: 24px; } .pc-header-row { gap: 12px; } .pc-nav a { padding: 8px; } }
@media (max-width: 900px) { .pc-nav { display: none; } .pc-menu-toggle { display: inline-flex; } .pc-footer-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } .pc-footer-intro { grid-column: 1 / -1; } }
@media (min-width: 901px) { .pc-mobile-menu { display: none; } }
@media (max-width: 767px) {
 .pc-wrap, .os-container { padding-left: 16px; padding-right: 16px; }
 .pc-header-row { height: 72px; gap: 8px; } .pc-brand b { font-size: 17px; } .pc-logo { width: 30px; height: 30px; }
 .pc-header .pc-primary { padding: 8px 12px; font-size: 13px; }
 .pc-footer { padding-top: 32px; } .pc-footer-grid { gap: 16px; }
 .pc-footer nav a { font-size: 13px; } .pc-footer-bottom { flex-direction: column; align-items: flex-start; gap: 16px; }
 .bw-legal-container { padding: 32px 16px 48px; gap: 24px; } .bw-legal-content h1 { font-size: 32px; }
}
@media (max-width: 359px) { .pc-footer-grid { grid-template-columns: repeat(2, 1fr); } }
/* Legacy legal pages inherit the same paper, ink, and gutters as the entry pages. */
body { margin:0; }
[data-theme="dark"] .pc-header, [data-theme="dark"] .pc-footer { --os-ink-3:#8993AB; }
.bw-landing { --bw-text-primary:var(--os-ink); --bw-text-secondary:var(--os-ink-2); --bw-text-muted:var(--os-ink-3); --bw-bg:var(--os-paper); }
.bw-legal-sidebar { background:transparent; border:0; box-shadow:none; border-radius:0; }
.bw-legal-callout, .bw-legal-contact { background:var(--os-sheet); border:1px solid var(--os-rule); border-radius:16px; box-shadow:none; }
.bw-legal-callout strong { color:var(--os-ink); }
/* One reading rail: full-outline selection, quiet rows, and viewport-safe sticky behavior. */
html, body.bw-landing { overflow-x:clip; }
.pc-reading-layout, .bs-layout, .bw-legal-container { grid-template-columns:240px minmax(0,1fr); gap:48px; }
.pc-reading-layout { display:grid; padding-bottom:64px; }
.pc-contents, .bs-contents.pc-contents, .bw-legal-sidebar.pc-contents {
 position:sticky; top:96px; align-self:start; max-height:calc(100dvh - 112px); overflow-y:auto;
 padding:16px; border:1px solid var(--os-rule); border-radius:16px; background:var(--os-sheet);
 font-family:var(--os-body); display:flex; flex-direction:column; gap:4px;
}
.pc-contents .bs-label, .pc-contents .bw-legal-sidebar-label, .pc-contents-label {
 display:block; margin:0 0 8px; padding:0 8px; color:var(--os-ink-3); font:500 11px/1.5 var(--os-mono); letter-spacing:.12em; text-transform:uppercase;
}
.pc-contents .bw-legal-nav { gap:4px; flex-direction:column; }
.pc-contents a, .bs-page main .pc-contents a, .pc-contents .bw-legal-nav a {
 display:flex; align-items:center; min-height:40px; margin:0; padding:8px; border:1px solid transparent; border-radius:10px;
 color:var(--os-ink-2); font:400 14px/1.5 var(--os-body); text-decoration:none;
}
.pc-contents a:hover, .pc-contents .bw-legal-nav a:hover { background:var(--os-tint); color:var(--os-ink); }
.pc-contents a[aria-current="location"], .pc-contents .bw-legal-nav a.active {
 background:var(--os-coral-faint); border:1px solid var(--os-coral); color:var(--os-ink); text-decoration:none;
}
.pc-faq-search { margin-top:24px; max-width:600px; }
.pc-faq-search label { display:block; font-size:14px; font-weight:600; margin-bottom:8px; }
.pc-faq-search input { width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--os-rule); border-radius:10px; font:400 16px var(--os-body); background:var(--os-sheet); color:var(--os-ink); }
.pc-faq-search p { font-size:12px; color:var(--os-ink-3); margin-top:8px; }
.pc-faq-content { min-width:0; }
.pc-faq-content .os-container { padding:0; max-width:none; }
.pc-faq-content .os-faq-section { padding:32px 0; }
.pc-faq-answer { border-top:1px solid var(--os-rule-soft); padding:24px 0; scroll-margin-top:96px; }
.pc-faq-answer h3 { font:700 20px/1.35 var(--os-display); color:var(--os-ink); margin:0 0 12px; }
.pc-faq-answer p { font:400 16px/1.7 var(--os-body); color:var(--os-ink-2); max-width:720px; }
.pc-faq-answer p + p { margin-top:12px; }
.pc-faq-answer a { text-decoration:underline; text-underline-offset:4px; }
.pc-faq-answer[hidden], .os-faq-section[hidden] { display:none; }
/* The method page keeps its diagrams while sharing the public page rhythm and safe text colors. */
.tm-shell { max-width:1240px; padding-inline:32px; }
.tm-hero { padding:64px 0 48px; }
.tm { --tm-coral:var(--os-coral-text); --tm-coral-deep:var(--os-coral-text); }
.tm-hero h1 .accent { color:var(--os-ink); text-decoration:underline; text-decoration-color:var(--os-coral); text-underline-offset:6px; }
.tm-layer .lyr { color:var(--os-ink); background:var(--os-tint); }
.tm-layer.hot .lyr { background:var(--os-coral); color:#1B2D4F; }
.tm-test .s.green, .tm-phase .ph .st.done { color:var(--os-good); }
.tm-phase .ph .st.now { color:var(--os-coral-text); }
@media(max-width:1099px) { .tm-shell { padding-inline:24px; } }
@media(max-width:900px) {
 .pc-reading-layout, .bs-layout, .bw-legal-container { grid-template-columns:minmax(0,1fr); gap:24px; }
 .pc-contents, .bs-contents.pc-contents, .bw-legal-sidebar.pc-contents { position:static; max-height:none; overflow:visible; flex-direction:row; flex-wrap:wrap; gap:4px; }
 .pc-contents .bs-label, .pc-contents .bw-legal-sidebar-label, .pc-contents-label { width:100%; flex-basis:100%; }
 .pc-contents .bw-legal-nav { flex-direction:row; flex-wrap:wrap; }
}
@media(max-width:767px) { .tm-shell { padding-inline:16px; } .tm-hero { padding:32px 0; } }

@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
.bs-page main .pc-contents a[aria-current="location"] { background:var(--os-coral-faint); border-color:var(--os-coral); color:var(--os-ink); }
.bs-page main .pc-contents a:hover { background:var(--os-tint); color:var(--os-ink); }
.bw-legal-content { margin-left:0; margin-right:0; }
.tm-stat .n, .tm-layer .lyr, .tm-rung .rl { font-family:var(--os-mono); font-variant-numeric:tabular-nums; }
.tm-hero h1 { font-size:clamp(32px,4vw,56px); line-height:1.12; max-width:24ch; }
