:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #090a10; color: #f5f6ff; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 70% 15%, #2a1c56 0, transparent 34rem), #090a10; }
button, input { font: inherit; }
.demo-content { width: min(1120px, calc(100% - 48px)); margin: 0 auto; padding: 16vh 0; }
.demo-content h1 { font-size: clamp(3rem, 9vw, 7.5rem); letter-spacing: -.075em; margin: .15em 0; max-width: 8ch; }
.demo-content > p:last-child { color: #b8bacb; font-size: 1.1rem; }
.eyebrow { color: #b25d2a; font-size: .78rem; font-weight: 750; letter-spacing: .12em; margin: 0 0 .7rem; text-transform: uppercase; }
.cookie-banner { align-items: center; background: rgba(22, 23, 35, .96); border: 1px solid rgba(255,255,255,.12); border-radius: 18px; bottom: 24px; box-shadow: 0 18px 50px rgba(0,0,0,.42); display: flex; gap: 2rem; justify-content: space-between; left: 50%; max-width: 900px; padding: 1.4rem 1.5rem; position: fixed; transform: translateX(-50%); width: calc(100% - 32px); z-index: 1000; }
.cookie-banner[hidden], .cookie-fab[hidden] { display: none !important; }
.cookie-banner h2, .cookie-modal h2 { font-size: 1.25rem; letter-spacing: -.02em; margin: 0 0 .45rem; }
.cookie-banner p:not(.eyebrow), .cookie-modal__intro { color: #c4c5d1; font-size: .93rem; line-height: 1.5; margin: 0; max-width: 620px; }
.cookie-banner__actions { align-items: center; display: flex; flex: 0 0 auto; gap: .65rem; }
.button { border: 1px solid transparent; border-radius: 9px; cursor: pointer; font-size: .9rem; font-weight: 700; padding: .72rem 1rem; transition: transform .15s, background .15s; white-space: nowrap; }
.button:hover, .icon-button:hover, .cookie-fab:hover { transform: translateY(-1px); }
.button--primary { background: #b25d2a; color: #120b28; }
.button--primary:hover { background: #b25d2a; }
.button--quiet { background: transparent; border-color: #5b5d70; color: #f5f6ff; }
.button--quiet:hover { background: #2b2c3a; }
.text-button, .policy-link { background: none; border: 0; color: #b25d2a; cursor: pointer; font-size: .88rem; font-weight: 700; margin-top: .6rem; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
.cookie-modal { background: transparent; border: 0; color: inherit; max-width: min(640px, calc(100% - 32px)); padding: 0; }
.cookie-modal::backdrop { background: rgba(0,0,0,.65); backdrop-filter: blur(5px); }
.cookie-modal__panel { background: #171824; border: 1px solid rgba(255,255,255,.13); border-radius: 18px; box-shadow: 0 24px 80px rgba(0,0,0,.6); padding: 1.5rem; }
.cookie-modal__header { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }
.icon-button { background: transparent; border: 0; border-radius: 7px; color: #fff; cursor: pointer; font-size: 1.7rem; line-height: 1; padding: 0 .25rem; }
.cookie-modal__intro { margin: 1rem 0 1.2rem; }
.preference-list { border-top: 1px solid #373847; }
.preference { align-items: center; border-bottom: 1px solid #373847; cursor: pointer; display: flex; gap: 1.2rem; justify-content: space-between; padding: 1rem 0; }
.preference__content { display: grid; gap: .25rem; }
.preference strong { font-size: .96rem; }
.preference small { color: #b9bac7; font-size: .84rem; line-height: 1.35; }
.switch { flex: 0 0 auto; height: 26px; position: relative; width: 46px; }
.switch input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.switch span { background: #555767; border-radius: 99px; inset: 0; position: absolute; transition: background .18s; }
.switch span::after { background: white; border-radius: 50%; content: ""; height: 20px; left: 3px; position: absolute; top: 3px; transition: transform .18s; width: 20px; }
.switch input:checked + span { background: #b25d2a; }
.switch input:checked + span::after { transform: translateX(20px); }
.switch input:focus-visible + span { outline: 2px solid #fff; outline-offset: 3px; }
.switch input:disabled + span { background: #b25d2a; cursor: not-allowed; }
.cookie-modal__footer { align-items: center; display: flex; gap: 1rem; justify-content: space-between; margin-top: 1.2rem; }
.policy-link { margin: 0; }
.cookie-fab { align-items: center; background: #b25d2a; border: 1px solid rgba(255,255,255,.34); border-radius: 50%; bottom: 22px; box-shadow: 0 8px 24px rgba(0,0,0,.35); color: #170d32; cursor: pointer; display: grid; font-size: 1.2rem; height: 48px; left: 22px; place-items: center; position: fixed; transition: transform .15s, background .15s; width: 48px; z-index: 999; }
.cookie-fab:hover { background: #b25d2a; }
@media (max-width: 680px) { .cookie-banner { align-items: stretch; bottom: 16px; flex-direction: column; gap: 1.2rem; padding: 1.25rem; } .cookie-banner__actions { width: 100%; } .cookie-banner__actions .button { flex: 1; } .cookie-modal__footer { align-items: stretch; flex-direction: column; } .cookie-modal__footer .cookie-banner__actions { width: 100%; } .cookie-fab { bottom: 16px; left: 16px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }
