/* BEGIN:shared-visual-core */
/* Shared type scale. Root size is the only large-text multiplier.
   Titles, controls and details use roles, never arbitrary per-element sizes. */
:root{
 --text-caption:.8125rem;--text-detail:.875rem;--text-body:1rem;
 --text-subhead:1.125rem;--text-title-small:1.25rem;--text-title:1.375rem;--text-pane:1.5rem;
 --text-section:2.5rem;--text-display:4rem;--text-lead:1.25rem;
 --text-control:var(--text-detail);--text-card-title:var(--text-title);
 --font-ui:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
 --font-number:var(--font-ui);--font-site:var(--font-ui);--font-sans:var(--font-ui);font-size:16px;font-family:var(--font-ui);font-synthesis:none;
}
:root[data-font=large],:root[data-large-text=true]{font-size:20px}
body,button,input,textarea,select{font-family:var(--font-ui)}
body{font-size:var(--text-body);line-height:1.6}
body :is(button,input,select,textarea){letter-spacing:0}
body :is(button,[role=button]){font-weight:500;line-height:1.4}
body :is(p,li){text-wrap:pretty}
@media(max-width:700px){:root{--text-control:var(--text-body);--text-card-title:var(--text-subhead);--text-section:1.875rem;--text-display:2.5rem;--text-lead:var(--text-subhead)}}
:root{
 --vis-paper:#fff;--vis-soft:#f5f5f7;--vis-ink:#1d1d1f;--vis-muted:#646469;
 --vis-line:#e5e5e9;--vis-control-line:#86868b;--vis-action:var(--site-action,#c94b16);--vis-on-action:var(--site-on-action,#fff);
 --vis-link:#ad3d0b;--vis-focus:#0071e3;--vis-danger:#c43228;
 --vis-control-height:44px;--vis-prominent-height:48px;--vis-control-gap:8px;
 --vis-radius-control:14px;--vis-radius-segment:12px;--vis-radius-menu:18px;--vis-radius-pill:999px;
 --vis-duration:160ms;--vis-ease:cubic-bezier(.2,.8,.2,1);
 font-size:100%;
}
:root[data-font=large],:root[data-large-text=true]{font-size:125%}
:root[data-theme=dark],:root[data-site-theme=dark]{--vis-paper:#101012;--vis-soft:#28282c;--vis-ink:#f5f5f7;--vis-muted:#b4b4bc;--vis-line:#39393e;--vis-control-line:#9c9ca4;--vis-link:#ffad7c;--vis-focus:#66aaff;--vis-danger:#ffaaa1}
:root{--ink:var(--vis-ink);--muted:var(--vis-muted);--bg:var(--vis-paper);--surface:var(--vis-paper);--soft:var(--vis-soft);--line:var(--vis-line);--control-line:var(--vis-control-line);--focus:var(--vis-focus);--accent:var(--vis-link);--brand:var(--vis-action);--on-brand:var(--vis-on-action);--display-ink:var(--vis-ink);--display-muted:var(--vis-muted);--display-bg:var(--vis-paper);--display-card:var(--vis-paper);--display-soft:var(--vis-soft);--display-line:var(--vis-line);--display-focus:var(--vis-focus);--display-accent:var(--vis-link)}
:root[data-high-contrast=true]{--vis-muted:var(--vis-ink);--vis-control-line:var(--vis-ink);--vis-focus:var(--vis-ink)}

/* Familiar web semantics; the activity canvas retains its own interaction sizes. */
:root{--ui-focus:var(--vis-focus);--ui-line:var(--vis-control-line);--ui-radius:var(--vis-radius-control);--ui-duration:var(--vis-duration)}
:root body :is(button,a,input,textarea,select,summary):focus-visible{outline:2px solid var(--vis-focus);outline-offset:3px}
:root body :is(input,select,textarea)[aria-invalid=true]{border-color:var(--vis-danger);outline:1px solid var(--vis-danger)}
:root body :is(button,[role=button]):disabled,:root body :is(button,[role=button])[aria-disabled=true]{opacity:.45;cursor:not-allowed;box-shadow:none}
:root body :is(.btn,.play-toolbar button,.play-settings button,.play-controls button){min-height:var(--vis-control-height);font-size:var(--text-control);font-weight:500;line-height:1.4;gap:var(--vis-control-gap);box-shadow:none}
:root body :is(main button[class*="primary" i],.btn-primary):not(.play-root button){min-height:var(--vis-control-height);border-radius:var(--vis-radius-pill);border:1px solid transparent;background:var(--vis-action);color:var(--vis-on-action);font-size:var(--text-control);font-weight:600;line-height:1.4;box-shadow:none}
:root body :is(main button[class*="secondary" i],.btn-secondary):not(.play-root button){min-height:var(--vis-control-height);border-radius:var(--vis-radius-pill);border:1px solid transparent;background:var(--ui-control-soft);color:var(--ui-ink);font-size:var(--text-control);font-weight:500;line-height:1.4;box-shadow:none}
:root body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=hidden]),select,textarea):not(.search-form input):not([role=combobox]){font-size:var(--text-body);line-height:1.6;border-radius:var(--vis-radius-control);box-shadow:none}
:root body :is(input,textarea)::placeholder{color:var(--vis-muted);opacity:1}
:root body input[type=file]::file-selector-button{font-size:var(--text-control);font-weight:500;min-height:var(--vis-control-height);border-radius:var(--vis-radius-pill)}
:root body :is(.role-tabs,.search-switch) button{font-size:var(--text-control);font-weight:500;line-height:1.4;min-height:var(--vis-control-height);border-radius:var(--vis-radius-segment);border:0;box-shadow:none}
:root body :is(.role-tabs,.search-switch) button[aria-pressed=true]{background:var(--ui-surface);color:var(--ui-ink);font-weight:600;box-shadow:0 1px 5px #0000000a;border:0}
@media(hover:hover) and (pointer:fine){:root body :is(.btn,.play-toolbar button,.play-settings button):not(:disabled):hover{filter:brightness(.97)}}
@media(prefers-reduced-motion:reduce){:root{--vis-duration:0ms}}
@media(forced-colors:active){:root body :is(button,a,input,select,textarea,summary):focus-visible{outline-color:Highlight}:root body :is(.btn-primary,.btn-secondary){border:1px solid ButtonText}}

/* END:shared-visual-core */


/* Site chrome is consistent across semantic links, buttons and summaries. */
:root body .site-header .brand-signature strong{font-size:var(--text-title);font-weight:600;line-height:1.35}
:root body .site-header .brand-product{font-size:var(--text-detail);font-weight:400;line-height:1.5}
:root body .site-header .header-help :is(a,button,summary){font-size:var(--text-detail);font-weight:500;line-height:1.4}
:root body .site-footer{font-size:var(--text-caption);font-weight:400;line-height:1.6}
:root body .site-footer :is(a,button,p){font-size:var(--text-caption);font-weight:400;line-height:1.6}
:root body .site-footer .footer-wordmark{font-size:var(--text-detail);font-weight:600;line-height:1.5}
:root body .footer-links{align-items:center;gap:4px 20px;min-width:0}
:root body .footer-links :is(a,button){display:inline-flex;align-items:center;min-height:44px;padding:8px 0;color:var(--display-muted);text-align:left;white-space:normal}
:root body .footer-links :is(a,button):hover{color:var(--display-ink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){:root body .site-header .brand-signature strong{font-size:var(--text-title-small)}:root body .site-header .site-more>div button{font-size:var(--text-body)}}
/* Reader pages use the same scale, including large text. */
:root .guide-page{font-size:var(--text-body);line-height:1.7}
:root .guide-page :is(p,li){font-size:var(--text-body);line-height:1.7}
:root .guide-page .lead{font-size:var(--text-lead);line-height:1.6}
:root .guide-page :is(.eyebrow,.editorial-note){font-size:var(--text-caption);line-height:1.6}
:root .guide-page header :is(a,summary){font-size:var(--text-detail);font-weight:500;line-height:1.4}
:root .guide-page header .guide-brand{font-size:var(--text-title-small);font-weight:600;line-height:1.35}
:root .guide-page footer :is(a,p){font-size:var(--text-caption);font-weight:400;line-height:1.6}
:root .guide-page :is(button,select,label,.action){font-size:var(--text-control);line-height:1.4}
:root body .site-footer{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px}
:root body .site-footer>div{min-width:0}
:root body .site-footer .footer-wordmark{white-space:nowrap}
@media(max-width:700px){:root body .site-footer{grid-template-columns:1fr;gap:12px}}

:root .guide-page h1{font-size:var(--text-section);line-height:1.25}
:root .guide-page h2{font-size:var(--text-pane);line-height:1.35}
:root .guide-page :is(h3,.articles a){font-size:var(--text-title);line-height:1.4}
