:root {
  --enclosure-edge: 4px;
  --enclosure-top: 50px;
  --enclosure-bottom: 24px;
}

/* Shared mobile immersive bezel, including Safari without native fullscreen.
   Browser/OS chrome cannot be hidden or dimmed by a web page; dark theme-color
   and a black surround are the available hints, not a hardware brightness API. */
@media(max-width:850px),(pointer:coarse){
 :root[data-enclosure-fullscreen="true"][data-enclosure-fullscreen]{--enclosure-top:40px;--enclosure-bottom:30px;background:#050608!important;}
 html[data-enclosure-fullscreen="true"] .site-enclosure{top:var(--enclosure-visible-top,0px);bottom:auto;height:var(--enclosure-visible-height,100dvh);width:var(--enclosure-visible-width,100%);visibility:visible!important;z-index:2147483647;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-nav{padding:0 8px;gap:6px;min-height:40px;background:#071216;color:#e6efec;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-footer{min-height:30px;background:#071216;color:#e6efec;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-theme{display:none;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-nav button{min-height:32px;}
 html[data-enclosure-immersive="true"] body{height:var(--enclosure-visible-height,100dvh);min-height:0;overflow:auto;overscroll-behavior:none;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-frame{min-height:0;}
}

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

html.site-enclosure-mounted[data-theme="dark"] { background: #050608; }

/* 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: 10px;
  line-height: 1;
  letter-spacing: .03em;
  --enclosure-ink: #16242a;
  --enclosure-paper: rgba(243, 240, 231, .9);
  --enclosure-rule: rgba(22, 36, 42, .28);
  --enclosure-bezel: #16242a;
}

:root[data-theme="dark"] .site-enclosure {
  --enclosure-ink: #dce8e5;
  --enclosure-paper: rgba(7, 17, 22, .88);
  --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: rgba(7, 17, 22, .88);
  --enclosure-rule: rgba(220, 232, 229, .3);
  --enclosure-bezel: #26363b;
}
.site-enclosure[data-enclosure-theme="light"] {
  --enclosure-ink: #16242a;
  --enclosure-paper: rgba(243, 240, 231, .9);
  --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(8px, 1.2vw, 16px);
  padding: 0 clamp(10px, 1.5vw, 20px);
  font-size: 11px;
  border-bottom: 1px solid var(--enclosure-rule);
}

.site-enclosure-brand { flex: 0 0 auto; font-size:13px; font-weight: 650; white-space: nowrap; letter-spacing:-.015em; }
.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:28px;}
.site-enclosure-nav .site-enclosure-links a{padding:8px 0;}
.site-enclosure-actions{font-size:9px;}
.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-edge:2px;--enclosure-top:34px;--enclosure-bottom:20px;}
:root[data-enclosure-fullscreen="true"] .site-enclosure-nav{font-size:9px;padding:0 7px;gap:9px;}
:root[data-enclosure-fullscreen="true"] .site-enclosure-brand{font-size:10px;letter-spacing:.025em;}
:root[data-enclosure-fullscreen="true"] .site-enclosure-nav .site-enclosure-button,
:root[data-enclosure-fullscreen="true"] .site-enclosure-nav select{min-height:22px;padding:1px 4px;}
:root[data-enclosure-fullscreen="true"] .site-enclosure-nav .site-enclosure-links a{padding:5px 0;}
:root[data-enclosure-fullscreen="true"] .site-enclosure-actions{font-size:8px;gap:4px;}
:root[data-enclosure-fullscreen="true"] .site-enclosure-footer{font-size:8px;padding:0 7px;}

.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);
  font-size: 9px;
}

.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:0; opacity:.38; mix-blend-mode:multiply; }
:root[data-theme="dark"] .site-interference-field { mix-blend-mode:screen; opacity:.28; }
body.site-enclosure-mounted > :not(.site-interference-field):not(.site-enclosure) { position:relative; z-index:1; }
body.site-enclosure-mounted.discovery-site,
body.site-enclosure-mounted.media-language-site,
body.site-enclosure-mounted[data-media-page] { background-color:transparent !important; }
body.site-enclosure-mounted.media-language-site {
  --interface-bg:rgba(5,6,8,.58);
  --interface-panel:rgba(8,9,12,.72);
  --interface-panel-soft:rgba(8,9,12,.62);
}
body.site-enclosure-mounted[data-media-page] {
  --listen-bg:rgba(5,6,8,.62);
  --listen-panel:rgba(8,9,12,.74);
}
:root[data-theme="light"] body.site-enclosure-mounted[data-media-page] {
  --listen-bg:rgba(240,238,232,.76);
  --listen-panel:rgba(248,246,240,.82);
}
.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: 1380px) {
  .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:46px;}
  .site-enclosure-brand{font-size:11px;}
  .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; }
}

/* Project navigation: full names in the page, compact names in the bezel. */
.site-enclosure,.site-enclosure *{box-sizing:border-box;}
:root[data-enclosure-fullscreen="true"]{--enclosure-bottom:30px;}
.enclosure-label-short{display:none;}
.site-enclosure-links a+a::before{content:"|";margin-right:clamp(7px,1.3vw,18px);opacity:.45;}
html[data-enclosure-fullscreen="true"] .enclosure-label-full{display:none;}
html[data-enclosure-fullscreen="true"] .enclosure-label-short{display:inline;}
.site-enclosure-footer-right{min-width:0;overflow-x:auto;scrollbar-width:thin;}
.site-enclosure-footer-right>*{flex-shrink:0;white-space:nowrap;}
@media(max-width:1380px){
 html[data-enclosure-fullscreen="true"] .site-enclosure-links{display:flex;position:static;flex-wrap:nowrap;padding:0;border:0;background:transparent;box-shadow:none;justify-content:center;gap:7px;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-links a+a::before{margin-right:7px;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-menu{display:none;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-links{overflow-x:auto;justify-content:flex-start;scrollbar-width:thin;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-links a{flex-shrink:0;}
}
@media(max-width:480px){
 .site-enclosure-footer{gap:5px;}
 .site-enclosure-footer>a{max-width:22vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;}
 .site-enclosure-footer-right{gap:7px;}
 html[data-enclosure-fullscreen="true"] .site-enclosure-brand{max-width:80px;}
}

/* News is the deliberate exception: its player overtakes the entire bezel. */
.site-enclosure-news-exit{display:none;}
.site-enclosure.news-takeover .site-enclosure-nav,.site-enclosure.news-takeover .site-enclosure-footer{display:none;}
.site-enclosure.news-takeover .site-enclosure-frame{top:0;bottom:0;height:100%;}
.site-enclosure.news-takeover .site-enclosure-news-exit{display:block;position:absolute;right:8px;top:8px;z-index:4;pointer-events:auto;background:#071216;color:#e6efec;border:1px solid #6c817e;min-height:32px;padding:5px 9px;}
html[data-enclosure-quiet="true"] .site-interference-field{display:none!important;}
html[data-enclosure-quiet="true"] .interference-wave{animation:none!important;}

@media(max-width:600px){
 html[data-enclosure-fullscreen="true"] .site-enclosure-brand{display:none;}
}
