/* 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 320ms 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 270ms 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}
.search-toggle{border-color:#d9d5cc80;padding:9px 13px;transition:color 180ms ease-out,border-color 180ms ease-out,background-color 180ms ease-out}
.search-toggle:hover{color:var(--accent);border-color:#aa775b66;background:#aa775b08}
.quick-search{position:fixed;inset:var(--search-top,max(24px,8dvh)) 0 auto;margin:0 auto;width:min(820px,calc(100% - 40px));max-height:var(--search-height,calc(100dvh - max(24px,8dvh) - 24px));padding:20px 26px;overflow:hidden;transform:translateY(6px);opacity:0;transition:transform 230ms cubic-bezier(.22,1,.36,1),opacity 230ms cubic-bezier(.22,1,.36,1)}
.quick-search[open]{display:flex;flex-direction:column}
.quick-search.is-visible{transform:translateY(0);opacity:1}
.quick-search::backdrop{background:#15213b55;opacity:0;transition:opacity 210ms 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;scrollbar-width:thin;scrollbar-color:#59657966 transparent}
#quick-results:empty{display:none}
.quick-top{margin-bottom:14px}
.quick-top h2{font-size:1.85rem;line-height:1.2;margin:0}
.quick-top button{align-self:center;width:36px;height:36px;font-size:1.6rem;color:var(--muted);border-radius:3px}
.quick-top button:hover{color:var(--accent);background:#aa775b08}
.quick-search input{padding:11px 12px;flex:none;border-color:#b8b5ad88;border-radius:3px}
.quick-search input:focus-visible{border-color:var(--accent);outline:1px solid #aa775b33;outline-offset:0}
.quick-search input::placeholder{color:var(--muted);opacity:1}
#quick-status{margin:12px 0 0;color:var(--muted);font-size:.78rem;line-height:1.5}
#quick-status:empty{display:none}
.quick-empty-hint{display:block;margin-top:4px}
.quick-group{margin:18px 0 0}
.quick-group h3{font-size:.72rem;font-weight:500;line-height:1.4;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.quick-result{padding:10px 8px;border-top:1px solid #d9d5cc88;border-radius:2px;line-height:1.4}
.quick-result h4{font-size:1.2rem;line-height:1.3;margin:0 0 5px;overflow-wrap:anywhere}
.quick-result p{font-size:.85rem;line-height:1.5;margin:7px 0 0;color:var(--muted)}
.quick-result small{display:block;font-size:.77rem;line-height:1.4}
.quick-result mark{background:#aa775b14;color:inherit;padding:0}
.quick-result:hover,.quick-result:focus-visible{background:#aa775b09}
.quick-result:focus-visible{outline:1px solid #aa775b66;outline-offset:-1px}
.quick-more{display:block;margin:16px 8px 2px;padding:7px 0;border:0;border-bottom:1px solid #aa775b66;background:transparent;color:var(--accent);font:inherit;font-size:.86rem;cursor:pointer}
.quick-more:focus-visible{outline:1px solid var(--accent);outline-offset:3px}
/* 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:1000px){
 .archive-drawer{width:min(var(--drawer-mobile-width,86vw),360px);max-width:100%}
 .sidebar-scroll{padding:0 18px 20px}
 .drawer-top{padding:16px 0}
 .drawer-heading{margin:20px 0 18px;gap:10px}
 .drawer-heading h2{font-size:1.65rem;white-space:nowrap;margin:0}
 .drawer-heading>span{font-size:.78rem;white-space:nowrap}
 .drawer-search{margin-bottom:14px}
 .archive-groups details{padding:14px 0}
 .archive-groups a{padding-top:9px;padding-bottom:9px}
}
@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 16px 20px}
 .drawer-heading{flex-wrap:wrap;gap:8px}
 .drawer-heading h2{font-size:1.55rem}
 .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:var(--search-top,12px) 0 auto;margin:0 auto;width:calc(100% - 24px);max-height:var(--search-height,calc(100dvh - 24px));padding:16px}
  .quick-top{margin-bottom:12px}
  .quick-top h2{font-size:1.65rem}
}
@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}
  .search-toggle{transition:none}
}
