:root {
  --cc-aurora:#31F28B;
  --cc-bg:#07130D;
  --cc-panel:#0c1c14;
  --cc-off-white:#F3F7F0;
  --cc-muted:#A7B8AD;
  --cc-line:rgba(167,184,173,0.22);
  --cc-line-strong:rgba(167,184,173,0.36);
  --cc-font-display:'Sora', sans-serif;
  --cc-font-body:'Hanken Grotesk', sans-serif;
  --cc-font-mono:'JetBrains Mono', monospace;
}

.cookie-consent-open {
  overflow:hidden;
}

.cookie-consent {
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(7,19,13,0.72);
  backdrop-filter:blur(10px);
}

.cookie-consent[hidden] {
  display:none;
}

.cookie-consent__panel {
  width:min(720px, 100%);
  max-height:min(88vh, 820px);
  overflow:auto;
  border:1px solid var(--cc-line-strong);
  border-radius:14px;
  background:
    radial-gradient(ellipse 80% 50% at 80% -10%, rgba(49,242,139,0.12), transparent 60%),
    var(--cc-panel);
  color:var(--cc-off-white);
  box-shadow:0 28px 90px rgba(0,0,0,0.48);
}

.cookie-consent__inner {
  padding:32px;
}

.cookie-consent h2 {
  margin:0 0 18px;
  color:var(--cc-off-white);
  font-family:var(--cc-font-display);
  font-size:clamp(1.45rem, 4vw, 2rem);
  line-height:1.15;
  letter-spacing:0;
}

.cookie-consent p {
  margin:0 0 18px;
  color:var(--cc-muted);
  font-family:var(--cc-font-body);
  font-size:1.02rem;
  line-height:1.58;
}

.cookie-consent__link {
  display:inline-flex;
  border:0;
  border-bottom:1px solid currentColor;
  padding:0;
  background:transparent;
  color:var(--cc-off-white);
  font:inherit;
  cursor:pointer;
}

.cookie-consent__details {
  display:none;
  margin:22px 0 0;
  border-top:1px solid var(--cc-line);
}

.cookie-consent.is-detailed .cookie-consent__details {
  display:block;
}

.cookie-consent__category {
  border-bottom:1px solid var(--cc-line);
  padding:18px 0;
}

.cookie-consent__category summary {
  display:grid;
  grid-template-columns:24px 1fr auto;
  align-items:center;
  gap:12px;
  list-style:none;
  cursor:pointer;
}

.cookie-consent__category summary::-webkit-details-marker {
  display:none;
}

.cookie-consent__chevron {
  width:12px;
  height:12px;
  border-right:2px solid var(--cc-off-white);
  border-bottom:2px solid var(--cc-off-white);
  transform:rotate(45deg);
  transition:transform 0.18s;
}

.cookie-consent__category[open] .cookie-consent__chevron {
  transform:rotate(-135deg);
}

.cookie-consent__category-title {
  color:var(--cc-off-white);
  font-family:var(--cc-font-display);
  font-size:1.04rem;
  font-weight:700;
}

.cookie-consent__category p {
  margin:14px 0 0 36px;
  font-size:0.94rem;
}

.cookie-consent__switch {
  position:relative;
  display:inline-flex;
  width:58px;
  height:34px;
}

.cookie-consent__switch input {
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.cookie-consent__slider {
  position:absolute;
  inset:0;
  border:1px solid var(--cc-line-strong);
  border-radius:999px;
  background:rgba(167,184,173,0.3);
  transition:background 0.18s, border-color 0.18s;
}

.cookie-consent__slider::after {
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--cc-off-white);
  transition:transform 0.18s;
}

.cookie-consent__switch input:checked + .cookie-consent__slider {
  border-color:rgba(49,242,139,0.5);
  background:rgba(49,242,139,0.42);
}

.cookie-consent__switch input:checked + .cookie-consent__slider::after {
  transform:translateX(24px);
}

.cookie-consent__switch input:disabled + .cookie-consent__slider {
  opacity:0.82;
  cursor:not-allowed;
}

.cookie-consent__actions {
  display:grid;
  gap:12px;
  margin-top:24px;
}

.cookie-consent__button {
  width:100%;
  min-height:52px;
  border:1px solid var(--cc-line-strong);
  border-radius:8px;
  padding:13px 18px;
  font-family:var(--cc-font-display);
  font-size:0.98rem;
  font-weight:700;
  cursor:pointer;
  transition:transform 0.18s, border-color 0.18s, background 0.18s, color 0.18s;
}

.cookie-consent__button:hover,
.cookie-consent__button:focus-visible {
  transform:translateY(-1px);
  outline:none;
}

.cookie-consent__button--primary {
  border-color:var(--cc-aurora);
  background:var(--cc-aurora);
  color:var(--cc-bg);
}

.cookie-consent__button--secondary {
  background:transparent;
  color:var(--cc-off-white);
}

.cookie-consent__button--secondary:hover,
.cookie-consent__button--secondary:focus-visible {
  border-color:var(--cc-aurora);
  color:var(--cc-aurora);
}

.cookie-consent__footer-link {
  display:flex;
  justify-content:flex-end;
  margin-top:18px;
}

.cookie-settings-link {
  cursor:pointer;
}

@media (max-width:640px) {
  .cookie-consent {
    align-items:stretch;
    padding:18px;
  }

  .cookie-consent__panel {
    max-height:calc(100vh - 36px);
  }

  .cookie-consent__inner {
    padding:24px 20px;
  }
}
