/* Interface transitions only. Page scrolling stays browser-native. */
html{scrollbar-gutter:stable;scroll-padding-top:0}
html:has(dialog[open]){overflow:hidden}
/* Lock the root only: body overflow would create a different sticky containing block. */
body:has(dialog[open]),body:has(.archive-drawer[open]){overflow:visible}
.archive-drawer{padding:0;border:0;border-radius:0 10px 10px 0;overflow:hidden;transform:translateX(-100%);transition:transform 280ms cubic-bezier(.22,1,.36,1);overscroll-behavior:contain}
.sidebar-scroll{height:100%;overflow-y:auto;padding:0 28px 28px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#59657966 transparent;scroll-behavior:auto}
.sidebar-scroll::-webkit-scrollbar{width:7px}
.sidebar-scroll::-webkit-scrollbar-track{background:transparent;margin-block:10px}
.sidebar-scroll::-webkit-scrollbar-thumb{background:#59657966;border-radius:999px}
.archive-drawer[open]{animation:none}
.archive-drawer.is-visible{transform:translateX(0)}
.archive-drawer::backdrop{background:#15213b55;opacity:0;transition:opacity 240ms cubic-bezier(.22,1,.36,1)}
.archive-drawer.is-visible::backdrop{opacity:1}
.archive-groups [data-accordion]>summary{display:flex;align-items:center;gap:9px;list-style:none}
.archive-groups [data-accordion]>summary::marker{content:''}
.archive-groups [data-accordion]>summary::-webkit-details-marker{display:none}
.archive-groups [data-accordion]>summary::before{content:'▸';display:inline-block;color:var(--muted);transition:transform 200ms cubic-bezier(.22,1,.36,1)}
.archive-groups .is-expanded>summary::before{transform:rotate(90deg)}
.accordion-content{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows 200ms cubic-bezier(.22,1,.36,1),opacity 180ms ease-out}
.is-expanded>.accordion-content{grid-template-rows:1fr;opacity:1}
.accordion-inner{min-height:0;overflow:hidden}
.accordion-inner>a{font-size:.92rem!important}
.quick-search{position:fixed;overflow:hidden;transform:translateY(8px);opacity:0;transition:transform 190ms cubic-bezier(.22,1,.36,1),opacity 180ms ease-out}
.quick-search[open]{display:flex;flex-direction:column}
.quick-search.is-visible{transform:translateY(0);opacity:1}
.quick-search::backdrop{opacity:0;transition:opacity 180ms ease-out}
.quick-search.is-visible::backdrop{opacity:1}
.quick-search>:not(#quick-results){flex-shrink:0}
#quick-results{min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:auto}
#quick-status{margin:12px 0 0}
#quick-status:empty{display:none}
/* Reserve the full header footprint; compacting changes only its painted surface. */
.header-space{height:112px;position:sticky;top:0;z-index:30;pointer-events:none}
.topbar{position:sticky;top:0;max-width:none;height:112px;width:100%;padding:25px max(36px,calc((100% - 1188px)/2));background:var(--paper);pointer-events:auto;transition:height 220ms ease-out,padding 220ms ease-out}
.topbar .brand-area{transform:translateY(-9px);transition:transform 220ms ease-out}
.brand-area>div{position:relative}
.topbar .brand-subtitle{position:absolute;top:100%;white-space:nowrap;max-width:none;opacity:1;transform:translateY(0);transition:opacity 200ms ease-out,transform 200ms ease-out}
.header-space.is-compact .topbar{height:76px;padding-top:12px;padding-bottom:12px}
.header-space.is-compact .brand-area{transform:translateY(0)}
.header-space.is-compact .brand-subtitle{opacity:0;transform:translateY(-4px);pointer-events:none}
:is(main[id],section[id],h2[id],h3[id],.topic-groups>section,.catalogue){scroll-margin-top:90px}
.skip-link{z-index:40}
.homepage-feature{border-top:0;margin-top:20px;padding-top:28px}
.feature h1{font:normal clamp(2.2rem,4.6vw,4.1rem)/1.07 var(--serif);letter-spacing:-.035em;margin:28px 0 20px;max-width:660px;overflow-wrap:anywhere}
@media(max-width:1000px){.topbar{padding-left:24px;padding-right:24px}}
@media(max-width:650px){
 .header-space,.topbar{height:90px}
 .topbar{padding:17px 16px}
 .header-space.is-compact .topbar{height:64px;padding-top:10px;padding-bottom:10px}
 .sidebar-scroll{padding:0 22px 25px}
 .homepage-feature{margin-top:12px;padding-top:20px}
 .feature h1{font-size:2.4rem;margin-top:23px}
 :is(main[id],section[id],h2[id],h3[id],.topic-groups>section,.catalogue){scroll-margin-top:76px}
}
@media(max-width:780px){
  .search-toggle kbd,.drawer-search kbd{display:none}
  .quick-search{inset:16px 0 auto;margin:0 auto;max-height:calc(100dvh - 32px)}
}
@media(pointer:coarse){.search-toggle kbd,.drawer-search kbd{display:none}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .archive-drawer,.archive-drawer::backdrop,.quick-search,.quick-search::backdrop,.accordion-content,.archive-groups [data-accordion]>summary::before{transition:none;animation:none}
  .topbar,.topbar .brand-area,.topbar .brand-subtitle{transition:none}
}
