/* Shared header contract. Values taken from the current Concert Hall DOM/CSS. */
@font-face{font-family:'XS Header Courier';src:url('./fonts/CourierPrime-Wooster-700.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
body .xs-site-header{box-sizing:border-box;display:flex;align-items:flex-start;justify-content:space-between;gap:22px;position:relative;z-index:12;width:100%;max-width:none;min-height:0;height:auto;margin:0;padding:clamp(16px,2.6vh,24px) clamp(18px,3vw,34px) 0 clamp(20px,7vw,72px);background:transparent;border:0;transform:none;font-family:'XS Header Courier','Courier New',monospace;color:#e9e7e2}
body .xs-site-header .xs-site-name{display:block;flex:0 0 auto;margin:0;padding:0;border:0;color:#e9e7e2;background:none;font:700 10.5px/normal 'XS Header Courier','Courier New',monospace;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
body .xs-site-header .xs-site-folders{display:flex;flex:0 0 auto;justify-content:flex-end;align-items:flex-start;gap:26px;margin:0 0 0 auto;padding:0;border:0;background:none}
body .xs-site-header .xs-site-folder{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;position:static;width:auto;height:auto;min-height:0;min-width:0;margin:0;padding:0;border:0;border-radius:0;appearance:none;background:none;color:#e9e7e2;font:700 8px/1 'XS Header Courier','Courier New',monospace;text-decoration:none;cursor:pointer;opacity:1;transform:none}
body .xs-site-header .xs-site-folder img{display:block;box-sizing:border-box;flex:none;width:clamp(34px,3.4vw,44px);height:clamp(34px,3.4vw,44px);max-width:none;object-fit:contain;margin:0;padding:0;border:0;filter:none;opacity:1;mix-blend-mode:normal}
body .xs-site-header .xs-site-folder span{display:block;font:700 8px/1 'XS Header Courier','Courier New',monospace;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;color:#fff;background:rgba(255,255,255,.16);border:0;border-radius:8px;padding:3px 7px 2px;margin:0}
body .xs-site-header .xs-site-folder:hover span{background:rgba(255,255,255,.28)}body .xs-site-header .xs-site-folder[aria-current=page] span{text-decoration:underline;text-underline-offset:2px}body .xs-site-header a:focus-visible,body .xs-site-header button:focus-visible{outline:2px solid #e9e7e2;outline-offset:5px}
@media(max-width:600px){body .xs-site-header{flex-wrap:wrap;gap:18px;padding:20px 18px 0 20px}body .xs-site-header .xs-site-folders{gap:18px;margin-left:0}body .xs-site-header .xs-site-folder img{width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){body .xs-site-header *{transition:none}}

/* Keep the existing private-project gate in force. */
body.gated .xs-site-header{visibility:hidden;pointer-events:none}

body.bookbody .xs-site-header{flex:0 0 auto}
body.bookbody .bookbar{margin-top:16px}
html.xs-embedded-book .xs-site-header{display:none}
html.xs-embedded-book body.bookbody .bookbar{margin-top:0}
body.bookbody .fb-pit{min-height:0}

/* The header and page content share the viewport on short pages. */
body:has(> .xs-site-header):has(> .wrap){display:flex;flex-direction:column;min-height:100vh}
body:has(> .xs-site-header)> .wrap{flex:1 0 auto;min-height:0}
body:has(> .wrap)> .xs-site-header{flex:0 0 auto}
