/* Cookie consent banner, shared by every public page. */
.consent { position: fixed; z-index: 2147483000; left: max(16px, env(safe-area-inset-left)); bottom: max(16px, env(safe-area-inset-bottom)); width: min(400px, calc(100vw - 32px));
  padding: 20px 20px 18px; background: #0d0c0a; color: rgb(239 231 218 / .72); border: 1px solid rgb(239 231 218 / .14); border-radius: 14px 3px 14px 14px;
  box-shadow: 0 18px 50px -12px rgb(0 0 0 / .55); font: 14px/1.55 "IBM Plex Sans", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  opacity: 0; transform: translateY(18px) rotate(-.6deg); transform-origin: left bottom; transition: opacity .26s ease, transform .4s cubic-bezier(.2,.8,.2,1); }
.consent.is-in { opacity: 1; transform: none; }
.consent-title { margin: 0 0 6px; color: #efe7da; font-size: 16px; font-weight: 600; letter-spacing: -.01em; }
.consent-title::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-radius: 50%; background: #2b8af0; vertical-align: 2px; box-shadow: 0 0 0 4px rgb(43 138 240 / .18); }
.consent-text { margin: 0; }
.consent-text a { color: #efe7da; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.consent-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.consent-actions button { min-height: 42px; padding: 8px 14px; border: 1px solid rgb(239 231 218 / .28); border-radius: 999px; background: transparent; color: #efe7da;
  font: inherit; font-weight: 500; cursor: pointer; transition: background .2s, border-color .2s, transform .15s; }
.consent-actions button:hover { border-color: rgb(239 231 218 / .6); }
.consent-actions button:active { transform: scale(.97); }
.consent-actions [data-consent="accept"] { background: #efe7da; border-color: #efe7da; color: #0d0c0a; }
.consent-actions [data-consent="accept"]:hover { background: #fff; }
.consent :focus-visible { outline: 2px solid #2b8af0; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .consent { transition: opacity .2s; transform: none; } }
@media print { .consent { display: none; } }
