/* WINDROSE shell (masthead + footer) for ported legacy pages.
   Class-scoped only — no element selectors, safe next to per-page inline CSS. */
:root{
  --wr-paper:#FAFAF7; --wr-ink:#141413; --wr-gray:#87867F;
  --wr-hair:#E4E3DD; --wr-hair-strong:#C9C8C1; --wr-red:#C0182B;
  --accent:#141413;
  --wr-serif:"STIX Two Text",Georgia,serif;
  --wr-sans:"IBM Plex Sans",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --wr-mono:"IBM Plex Mono","SF Mono",Menlo,monospace;
  --wr-ease:cubic-bezier(.22,.61,.36,1); --wr-fast:.2s; --wr-radius:2px;
}
/* ── masthead ─────────────────────────────────────────── */
.masthead{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;
  min-height:54px;padding:5px max(24px,4vw);background:rgba(250,250,247,.72);
  -webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid transparent;transition:border-color .4s var(--wr-ease)}
.masthead.scrolled{border-bottom-color:var(--wr-hair)}
.brand{display:flex;align-items:center;gap:10px;font-size:15px;min-height:44px}
.brand b{font-weight:500;color:var(--accent)}
.brand .org{color:var(--wr-ink)}
.brand .sep{color:var(--wr-hair-strong)}
.compass{width:18px;height:18px;transform:rotate(-18deg);transition:transform .8s var(--wr-ease)}
body.settled .compass,.brand:hover .compass{transform:rotate(0deg)}
.navlinks{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.navlinks a{font-size:13px;color:var(--wr-gray);transition:color var(--wr-fast) var(--wr-ease);padding:12px 0}
.navlinks a:hover,.navlinks a[aria-current="page"]{color:var(--wr-ink)}
.lang-switch{display:inline-flex;gap:10px;padding-left:14px;margin-left:4px;border-left:1px solid var(--wr-hair);
  font:500 11px/1 var(--wr-mono);letter-spacing:.08em}
.lang-switch a{color:var(--wr-gray);padding:12px 2px}
.lang-switch a:hover{color:var(--wr-ink)}
.lang-switch a[aria-current="true"]{color:var(--wr-ink)}

/* mobile nav — native <details>, no JS */
.nav-mobile{display:none;position:relative}
.nav-mobile summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;color:var(--wr-ink)}
.nav-mobile summary::-webkit-details-marker{display:none}
.nav-drop{position:absolute;right:0;top:48px;background:var(--wr-paper);border:1px solid var(--wr-hair-strong);
  border-radius:var(--wr-radius);min-width:230px;padding:10px 0;display:flex;flex-direction:column}
.nav-drop a{font-size:14px;color:var(--wr-ink);padding:12px 22px}
.nav-drop a:hover{background:#FFFFFF}
.nav-drop .lang-switch{border-left:0;border-top:1px solid var(--wr-hair);margin:8px 0 0;padding:10px 22px 2px}
@media (max-width:760px){
  .navlinks{display:none}
  .nav-mobile{display:block}
}

/* ── footer (class-scoped so ported pages can reuse it) ─ */
.wr-footer{padding:46px max(24px,6vw) 64px;text-align:center;color:var(--wr-gray);
  font:400 12.5px/1.6 var(--wr-sans);border-top:1px solid var(--wr-hair);background:var(--wr-paper)}
.wr-footer .fam{font:500 11px/1 var(--wr-mono);letter-spacing:.3em;text-transform:uppercase;color:var(--wr-gray);margin-bottom:22px}
.wr-footer .flinks{display:flex;gap:22px;justify-content:center;margin-bottom:14px;flex-wrap:wrap;list-style:none}
.wr-footer .flinks a{padding:8px 0;color:var(--wr-gray)}
.wr-footer a:hover{color:var(--wr-ink)}
.wr-footer .publisher{margin-top:18px}


/* DC-runtime fix: support.js injects `#dc-root{height:100%}` for full-page
   apps, which constrains our scrolling content and makes it overflow OVER the
   footer. Force natural height so the footer always sits below the content. */
#dc-root, #dc-root > .sc-host { height: auto !important; min-height: 0 !important; }
