* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:112px; }
body { margin:0; background:var(--bg); color:var(--text); font:400 var(--text-body)/var(--line-body) var(--font); -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button,input,textarea,select,a { -webkit-tap-highlight-color:transparent; }
button { color:inherit; cursor:pointer; }
button:disabled { cursor:default; }
a,button { touch-action:manipulation; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
img,video { display:block; max-width:100%; }
img { height:auto; }
::selection { background:var(--gold); color:var(--bg); }
[hidden] { display:none!important; }
p { margin:0 0 24px; font:400 var(--text-body)/var(--line-body) var(--font); text-wrap:pretty; }
h1,h2,h3,h4 { margin:0; font-weight:400; text-wrap:balance; overflow-wrap:normal; }
h1 { font-size:var(--text-display); line-height:var(--line-display); letter-spacing:var(--track-display); }
h2 { font-size:var(--text-h2); line-height:var(--line-h2); letter-spacing:var(--track-h2); }
h3 { font-size:var(--text-h3); line-height:var(--line-h3); letter-spacing:var(--track-h3); }
h4 { font-size:var(--text-h4); line-height:var(--line-h4); letter-spacing:0; font-weight:500; }
strong,b { font-weight:500; }
small { font-size:var(--text-meta); line-height:var(--line-meta); }
em { font-weight:inherit; }
table { border-collapse:collapse; font:inherit; }
th { font-weight:500; }
blockquote { margin-inline:0; }
/* Light reading sections supply the complete theme to shared components. */
.paper,.ir-light,.release-reading {
  --text:var(--ink);
  --muted:var(--paper-muted);
  --gold:var(--paper-gold);
  --surface:var(--paper-surface);
  --line:var(--paper-line);
  background:var(--paper);
  color:var(--ink);
}
.paper .paper,.ir-light .paper { color:var(--ink); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.service-message { max-width:640px; margin:14vh auto; padding:32px; }
.service-message h1 { font-size:var(--text-h3); line-height:var(--line-h3); }
.service-message p { color:var(--muted); }
.service-message a { color:var(--gold); margin-right:24px; display:inline-block; margin-top:18px; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
