/* cookie consent banner */
.cc { position: fixed; left: 20px; bottom: 20px; z-index: 80; width: min(440px, calc(100vw - 40px)); background: rgba(12,12,12,.94); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid var(--line-2); border-radius: 16px; padding: 22px; box-shadow: 0 30px 80px rgba(0,0,0,.7); font-size: 14.5px; color: #cfcfca; transform: translateY(24px); opacity: 0; pointer-events: none; transition: transform .5s cubic-bezier(.2,.7,.2,1), opacity .4s ease; }
.cc.show { transform: none; opacity: 1; pointer-events: auto; }
.cc h2 { font-size: 18px; letter-spacing: -0.03em; font-weight: 500; margin: 0 0 8px; max-width: none; color: #fff; display: flex; align-items: center; gap: 8px; }
.cc h2::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 10px var(--accent); }
.cc p { margin: 0; line-height: 1.5; color: var(--muted); }
.cc a { color: #fff; text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 3px; }
.cc a:hover { text-decoration-color: var(--accent); }
.cc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.cc-actions .btn { padding: 10px 16px; font-size: 14px; flex: 1 1 auto; justify-content: center; }
.cc-panel { display: none; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); gap: 12px; }
.cc.expanded .cc-panel { display: grid; }
.cc-row { display: flex; align-items: flex-start; gap: 12px; }
.cc-row b { color: #fff; font-weight: 500; display: block; }
.cc-row span { font-size: 13px; color: var(--muted); line-height: 1.4; display: block; margin-top: 2px; }
.cc-switch { position: relative; flex: none; width: 38px; height: 22px; margin-top: 2px; }
.cc-switch input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; width: 100%; height: 100%; z-index: 2; }
.cc-switch i { position: absolute; inset: 0; border-radius: 999px; background: #2a2a2a; border: 1px solid var(--line-2); transition: background .2s ease, border-color .2s ease; }
.cc-switch i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .2s ease; }
.cc-switch input:checked + i { background: var(--accent); border-color: var(--accent); }
.cc-switch input:checked + i::after { transform: translateX(16px); }
.cc-switch input:disabled { cursor: not-allowed; }
.cc-switch input:disabled + i { opacity: .55; }
.cc-switch input:focus-visible + i { outline: 2px solid #fff; outline-offset: 2px; }
.cc-save { display: none; }
.cc.expanded .cc-save { display: inline-flex; }
.cc.expanded .cc-settings { display: none; }
@media (max-width: 560px) { .cc { left: 12px; right: 12px; bottom: 12px; width: auto; padding: 18px; } }
@media (prefers-reduced-motion: reduce) { .cc { transition: none; } }
footer a[data-cookie-settings] { cursor: pointer; }

/* language switcher */
.lang { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--line-2); border-radius: 999px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .05em; }
.lang a { padding: 5px 9px; border-radius: 999px; color: var(--muted); transition: color .2s ease, background .2s ease; }
.lang a:hover { color: #fff; }
.lang a.active { background: #fff; color: #050505; }
@media (max-width: 860px) { .nav-right { gap: 8px; } .lang { font-size: 11px; } .lang a { padding: 5px 7px; } }
@media (max-width: 380px) { .logo { font-size: 17px; } .lang a { padding: 5px 6px; } }
.form-note[data-copied]::after { content: attr(data-copied); display: block; margin-top: 8px; color: var(--accent); }
