/* Consent controls use the existing portfolio palette and fonts. */
.analytics-banner[hidden]{display:none}
.analytics-banner{position:fixed;z-index:1200;inset:auto 1rem 1rem;margin-inline:auto;max-width:920px;padding:1.1rem 1.3rem;background:var(--paper-2);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:0 8px 36px #0002;max-height:75dvh;overflow:auto}
.analytics-banner h2,.analytics-privacy h2{font:600 1.15rem/1.4 var(--font-display);margin:0 0 .45rem}
.analytics-banner p,.analytics-privacy p{font:400 .95rem/1.65 var(--font-body);margin:0 0 .8rem;color:var(--ink)}
.analytics-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.analytics-actions button{font:500 .9rem/1.35 var(--font-body);padding:.65rem .9rem;min-height:44px;border:1px solid var(--ink-2);border-radius:var(--r-sm);color:var(--ink);background:var(--paper-2);cursor:pointer}
.analytics-actions button:hover{background:var(--paper-3)}
.analytics-actions button:focus-visible,.analytics-settings:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.analytics-settings{font:inherit;text-transform:none;letter-spacing:normal;color:var(--ink);background:none;border:0;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px;padding:.25rem}
.analytics-privacy{position:fixed;inset:0;margin:auto;width:min(640px,calc(100% - 2rem));max-height:85dvh;overflow:auto;background:var(--paper-2);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r);padding:1.5rem}
.analytics-privacy::backdrop{background:#0008}
.analytics-privacy a{color:var(--ink);text-decoration:underline;overflow-wrap:anywhere}
@media(max-width:480px){.analytics-banner{inset-inline:.65rem;bottom:.65rem;padding:1rem}.analytics-actions button{flex:1 1 140px}.analytics-privacy{padding:1.1rem}}