@font-face { font-family: 'Nexa'; src: url('../fonts/nexa-extralight.woff2') format('woff2'); font-weight: 100 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'Nexa'; src: url('../fonts/nexa-book.woff2') format('woff2'); font-weight: 400 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Nexa'; src: url('../fonts/nexa-heavy.woff2') format('woff2'); font-weight: 700 900; font-style: normal; font-display: swap; }
/* Page transition curtain + small shared bits (used by every page) */
.curtain { position: fixed; inset: 0; z-index: 95; background: #0E0D0C; display: flex; align-items: center; justify-content: center; pointer-events: none; opacity: 0; visibility: hidden; }
.js.is-loading .curtain { opacity: 1; visibility: visible; }
.curtain.is-on { opacity: 1; visibility: visible; pointer-events: auto; }
.curtain-logo { width: 120px; opacity: 0.9; }
.curtain-logo svg { display: block; width: 100%; height: auto; }
.curtain-logo .star { transform-box: fill-box; transform-origin: 50% 50%; }
.curtain-logo .star path { fill: #B41918; }
.ft-legal a { color: inherit; text-decoration: none; }
.ft-legal a:hover { color: #F3F0EA; text-decoration: underline; text-underline-offset: 4px; }
.proto-panel .plinks { list-style: none; padding: 0; margin: 0 0 8px; display: grid; gap: 6px; }
.proto-panel .plinks a { color: #F3F0EA; text-underline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .curtain { transition: none !important; } }
@media (min-width: 901px) {
  body .proto { left: auto; right: max(16px, env(safe-area-inset-right, 0px)); }
  body .proto-panel { left: auto; right: 0; }
  .proto-pill { left: auto; right: max(16px, env(safe-area-inset-right, 0px)); }
}
.lang a { color: inherit; text-decoration: none; transition: color .3s; }
.lang a:hover { color: #F3F0EA; }
.mmenu .meta a { color: inherit; }
