/* Cookie bar and settings dialog, in the festival's colours: deep navy,
   the blue to crimson gradient, Inter. Reject all and Accept all are the
   same size and the same weight, so neither is the "easy" answer.
   Colours are written out, so this works on pages without the site tokens. */
.ck-banner{position:fixed;left:0;right:0;bottom:0;z-index:300;pointer-events:none;
  padding:0 max(12px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}
.ck-banner[hidden]{display:none}
.ck-in{pointer-events:auto;max-width:1100px;margin:0 auto;position:relative;overflow:hidden;
  background:linear-gradient(180deg,#121848,#0A0E33);color:#EAF0FF;
  border:1px solid rgba(234,240,255,.14);border-radius:18px;padding:20px 24px;
  display:flex;gap:16px 28px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  box-shadow:0 24px 70px -22px rgba(0,0,0,.8);font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  animation:ckin .35s cubic-bezier(.16,1,.3,1) both}
.ck-in::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#2E4BE0,#E11D48)}
@keyframes ckin{from{transform:translateY(16px);opacity:0}}
.ck-text{flex:1 1 440px;min-width:0}
.ck-text b{display:block;font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:20px;line-height:1.25;margin-bottom:6px;color:#fff}
.ck-text p{margin:0;font-size:14px;line-height:1.55;color:rgba(234,240,255,.78)}
.ck-text a,.ck-intro a{color:#8EA2FF;text-decoration:underline;text-underline-offset:3px}
.ck-btns{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ck-btn{font:600 14px/1.2 'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;padding:12px 20px;min-width:140px;border-radius:100px;cursor:pointer;
  border:1px solid rgba(234,240,255,.55);background:rgba(234,240,255,.06);color:#EAF0FF;transition:background .2s,border-color .2s,color .2s}
.ck-btn:hover{background:#EAF0FF;border-color:#EAF0FF;color:#0A0E33}
.ck-btn.ck-ghost{background:none;border-color:transparent;min-width:0;padding:12px 10px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(234,240,255,.45)}
.ck-btn.ck-ghost:hover{background:none;color:#fff;text-decoration-color:#fff}
.ck-btn:focus-visible,.ck-x:focus-visible,.ck-sw input:focus-visible+span,.ck-cat summary:focus-visible{outline:2px solid #4C6BFF;outline-offset:3px}
@media (max-width:700px){
  .ck-in{padding:16px 16px 14px;border-radius:16px;gap:12px}
  .ck-text b{font-size:17px}
  .ck-text p{font-size:13px;line-height:1.45}
  .ck-btns{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ck-btn{min-width:0;width:100%;padding:12px 8px;font-size:13.5px}
  .ck-btn.ck-ghost{grid-column:1 / -1;order:3;padding:4px 0 0}
}

.ck-panel{margin:auto;border:1px solid rgba(234,240,255,.16);padding:0;border-radius:20px;max-width:660px;width:calc(100% - 24px);max-height:calc(100% - 32px);
  background:#0F1440;color:#EAF0FF;box-shadow:0 30px 90px -20px rgba(0,0,0,.85);overflow:auto}
.ck-panel::backdrop{background:rgba(5,7,26,.72);backdrop-filter:blur(3px)}
.ck-form{display:grid;gap:16px;padding:clamp(20px,3.4vw,32px);font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  background:linear-gradient(#0F1440,#0F1440) padding-box,linear-gradient(90deg,#2E4BE0,#E11D48) border-box;border-top:2px solid transparent}
.ck-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.ck-head h2{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:28px;line-height:1.15;margin:0;color:#fff}
.ck-x{background:none;border:0;font-size:30px;line-height:1;cursor:pointer;color:rgba(234,240,255,.7);padding:2px 8px;border-radius:8px}
.ck-x:hover{color:#fff}
.ck-intro{margin:0;font-size:14.5px;color:rgba(234,240,255,.75);line-height:1.6}
.ck-cats{display:grid;border-top:1px solid rgba(234,240,255,.12)}
.ck-cat{border-bottom:1px solid rgba(234,240,255,.12)}
.ck-cat summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 2px;cursor:pointer}
.ck-cat summary::-webkit-details-marker{display:none}
.ck-name{font-weight:600;font-size:16px;display:flex;align-items:center;gap:10px;color:#fff}
.ck-name::before{content:"+";width:14px;font-weight:500;color:#8EA2FF}
.ck-cat[open] .ck-name::before{content:"\2212"}
.ck-cat>p{margin:0 0 12px;font-size:14px;color:rgba(234,240,255,.72);line-height:1.6}
.ck-cat .ck-none{color:rgba(234,240,255,.5);font-style:italic}
.ck-always{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#7BE0A6}
.ck-tw{overflow-x:auto;margin:0 0 14px}
.ck-cat table{width:100%;border-collapse:collapse;font-size:13px}
.ck-cat th,.ck-cat td{text-align:left;padding:7px 8px;border-bottom:1px solid rgba(234,240,255,.1);vertical-align:top;color:rgba(234,240,255,.75)}
.ck-cat th{font-weight:600;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(234,240,255,.5)}
.ck-cat td:last-child{white-space:nowrap}
.ck-cat code{font:12.5px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#fff;white-space:nowrap}
.ck-sw{position:relative;display:inline-block;width:46px;height:26px;flex:none}
.ck-sw input{position:absolute;opacity:0;inset:0;margin:0;width:100%;height:100%;cursor:pointer;z-index:1}
.ck-sw span{position:absolute;inset:0;border-radius:999px;background:rgba(234,240,255,.22);transition:background .2s}
.ck-sw span::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);transition:transform .2s}
.ck-sw input:checked+span{background:linear-gradient(100deg,#2E4BE0,#E11D48)}
.ck-sw input:checked+span::after{transform:translateX(20px)}
.ck-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ck-actions .ck-btn{min-width:0;padding:13px 10px}
@media (max-width:560px){.ck-actions{grid-template-columns:1fr}.ck-head h2{font-size:24px}.ck-cat th,.ck-cat td{padding:7px 6px}}
@media (prefers-reduced-motion:reduce){.ck-in{animation:none}.ck-sw span,.ck-sw span::after{transition:none}}
