:root {
  --enclosure-edge: 6px;
  --enclosure-top: 76px;
  --enclosure-bottom: 30px;
}

html.site-enclosure-mounted {
  scroll-padding-top: calc(var(--enclosure-top) + 18px);
}

/* Static HTML enclosure: no legacy navigation underneath it. */

body.site-enclosure-mounted {
  padding: calc(var(--enclosure-edge) + var(--enclosure-top)) var(--enclosure-edge)
    calc(var(--enclosure-edge) + var(--enclosure-bottom)) !important;
  min-height: 100vh;
  min-height: 100dvh;
}

body.site-enclosure-framed > :not(.site-enclosure) { display: none !important; }
html.site-enclosure-embedded { --nav-height: 0px; }
html.site-enclosure-embedded body { padding: 0 !important; }
html.site-enclosure-embedded .site-enclosure,
.site-enclosure[hidden] { display: none !important; }

body.site-enclosure-mounted .media-header:empty,
body.site-enclosure-mounted .listen-header:empty,
body.site-enclosure-mounted .editorial-nav:empty {
  display: none !important;
}

.site-enclosure {
  position: fixed;
  z-index: 2147483000;
  inset: 0;
  pointer-events: none;
  border: var(--enclosure-edge) solid var(--enclosure-bezel);
  /* Keep the enclosure edge dark even if a stale theme variable is present. */
  border-color: #1b2529 !important;
  color: var(--enclosure-ink);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 11px;
  line-height: 1;
  letter-spacing: .03em;
  --enclosure-ink: #16242a;
  --enclosure-paper: #f3f0e7;
  --enclosure-rule: rgba(22, 36, 42, .28);
  --enclosure-bezel: #16242a;
}

:root[data-theme="dark"] .site-enclosure {
  --enclosure-ink: #dce8e5;
  --enclosure-paper: #071116;
  --enclosure-rule: rgba(220, 232, 229, .3);
  --enclosure-bezel: #26363b;
}

/* The enclosure is mounted dynamically; mirror the resolved theme on the
   shell itself so its bezel cannot remain in the light palette during theme
   initialization or navigation. */
.site-enclosure[data-enclosure-theme="dark"] {
  --enclosure-ink: #dce8e5;
  --enclosure-paper: #071116;
  --enclosure-rule: rgba(220, 232, 229, .3);
  --enclosure-bezel: #26363b;
}
.site-enclosure[data-enclosure-theme="light"] {
  --enclosure-ink: #16242a;
  --enclosure-paper: #f3f0e7;
  --enclosure-rule: rgba(22, 36, 42, .28);
  --enclosure-bezel: #16242a;
}

.site-enclosure a,
.site-enclosure button,
.site-enclosure select {
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
}

.site-enclosure a { text-decoration: none; }
.site-enclosure a:hover,
.site-enclosure a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.site-enclosure button,
.site-enclosure select { cursor: pointer; }
.site-enclosure :focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

.site-enclosure-nav,
.site-enclosure-footer {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  pointer-events: auto;
  background: var(--enclosure-paper);
  border: 0;
}

.site-enclosure-frame {
  position: absolute;
  z-index: 1;
  top: var(--enclosure-top);
  right: 0;
  bottom: var(--enclosure-bottom);
  left: 0;
  width: 100%;
  height: calc(100% - var(--enclosure-top) - var(--enclosure-bottom));
  border: 0;
  background: var(--enclosure-paper);
  pointer-events: auto;
}

.site-enclosure-nav {
  top: 0;
  min-height: var(--enclosure-top);
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.5vw, 22px);
  padding: 0 clamp(14px,2vw,30px);
  font-size: 14px;
  border-bottom: 1px solid var(--enclosure-rule);
}

.site-enclosure-brand { flex: 0 0 auto; font-size:18px; font-weight: 700; white-space: nowrap; letter-spacing:-.025em; }
.site-enclosure-links { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; gap: clamp(7px, 1.3vw, 18px); min-width: 0; }
.site-enclosure-links a { white-space: nowrap; }
.site-enclosure-links a[aria-current="page"] { text-decoration: underline; text-underline-offset: 4px; }
.site-enclosure-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 7px; }
.site-enclosure-theme { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.site-enclosure-theme select { padding: 3px 2px; border: 1px solid var(--enclosure-rule); border-radius: 0; background: transparent; }
.site-enclosure-button { min-width: 27px; min-height: 25px; padding: 2px 5px; border: 1px solid var(--enclosure-rule); border-radius: 0; background: transparent; }
.site-enclosure-menu { display: none; }
.site-enclosure-nav .site-enclosure-button,.site-enclosure-nav select {min-height:36px;}
.site-enclosure-nav .site-enclosure-links a{padding:12px 0;}
.site-enclosure-actions{font-size:11px;}
.site-enclosure-skip{position:absolute;top:0;left:12px;transform:translateY(-180%);background:var(--enclosure-paper);color:var(--enclosure-ink);padding:14px;z-index:4;pointer-events:auto;font-size:15px;}
.site-enclosure-skip:focus{transform:none;}
:root[data-enclosure-fullscreen="true"]{--enclosure-top:42px;}
:root[data-enclosure-fullscreen="true"] .site-enclosure-nav{font-size:11px;padding:0 10px;}
:root[data-enclosure-fullscreen="true"] .site-enclosure-brand{font-size:11px;letter-spacing:.03em;}
:root[data-enclosure-fullscreen="true"] .site-enclosure-nav .site-enclosure-button,:root[data-enclosure-fullscreen="true"] .site-enclosure-nav select{min-height:25px;}

.site-enclosure-footer {
  bottom: 0;
  min-height: var(--enclosure-bottom);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 10px;
  border-top: 1px solid var(--enclosure-rule);
}

.site-enclosure-footer-right { display: flex; align-items: center; gap: clamp(8px, 1.5vw, 18px); }
.site-enclosure-fineprint {
  position: absolute;
  right: 0;
  bottom: 100%;
  width: min(480px, 100%);
  padding: 14px 16px;
  border: 1px solid var(--enclosure-rule);
  background: var(--enclosure-paper);
  line-height: 1.5;
  max-height: min(70dvh, 600px);
  overflow: auto;
  box-shadow: 0 -8px 24px rgba(0, 0, 0, .12);
}
.site-enclosure-fineprint[hidden] { display: none; }
.site-enclosure-fineprint p { margin: 0 0 8px; }
.site-enclosure-fineprint p:last-child { margin-bottom: 0; }
.site-enclosure-original-footer { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--enclosure-rule); overflow-wrap: anywhere; }
.site-enclosure-original-footer > * { margin: 0; }
.site-enclosure-original-footers:empty { display: none; }
.site-enclosure-page-notes { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:12px; }
.site-enclosure .fine-print { display:block; max-width:none; font:inherit; color:inherit; opacity:1; }
.site-enclosure .fine-print p { font:inherit; color:inherit; }

/* Shared background, including pages without app.js/styles.css. */
.site-interference-field { color:var(--teal,#247e82); position:fixed; inset:0; width:100vw; height:100vh; overflow:hidden; pointer-events:none; z-index:-1; opacity:.38; mix-blend-mode:multiply; }
:root[data-theme="dark"] .site-interference-field { mix-blend-mode:screen; opacity:.28; }
.interference-wave { fill:none; transform-box:view-box; vector-effect:non-scaling-stroke; will-change:transform; }
.interference-source-a { animation:interferenceSourceA 24s ease-in-out infinite; stroke:var(--teal,#247e82); stroke-width:1.15; transform-origin:15% 18%; }
.interference-source-b { animation:interferenceSourceB 31s ease-in-out infinite; stroke:var(--gold,#a47b36); stroke-width:1.05; transform-origin:86% 20%; }
@keyframes interferenceSourceA { 0%,100% {transform:translate(-52px,-24px) rotate(-1.1deg)} 50% {transform:translate(64px,40px) rotate(1.35deg)} }
@keyframes interferenceSourceB { 0%,100% {transform:translate(58px,-34px) rotate(1deg)} 50% {transform:translate(-70px,46px) rotate(-1.4deg)} }
@media (prefers-reduced-motion:reduce) { .site-interference-field .interference-wave {animation:none !important;} }

@media (max-width: 1180px) {
  .site-enclosure-menu { display: inline-block; }
  .site-enclosure-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    padding: 13px;
    border-bottom: 1px solid var(--enclosure-rule);
    background: var(--enclosure-paper);
    flex-wrap: wrap;
    justify-content: flex-start;
    box-shadow: 0 8px 20px rgba(0,0,0,.12);
  }
  .site-enclosure[data-menu-open="true"] .site-enclosure-links { display: flex; }
  .site-enclosure-actions { margin-left: auto; }
}

@media (max-width: 480px) {
  :root{--enclosure-top:64px;}
  .site-enclosure-brand{font-size:15px;}
  .site-enclosure-brand { max-width: 38vw; overflow: hidden; text-overflow: ellipsis; }
  .site-enclosure-footer { font-size: 9px; }
  .site-enclosure-footer-right { gap: 7px; }
  .site-enclosure-theme > span { display: none; }
}
