/* Kopfonts (ronde 3): lokaal, vrije licentie (SIL OFL 1.1). Gewichtsbereik 100-900 zodat de browser nooit een vals vet maakt. */
@font-face{font-family:"Archivo Black";font-weight:100 900;font-style:normal;font-display:swap;src:url(../fonts/archivo-black-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo Black";font-weight:100 900;font-style:normal;font-display:swap;src:url(../fonts/archivo-black-latin-ext-400.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Anton";font-weight:100 900;font-style:normal;font-display:swap;src:url(../fonts/anton-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Anton";font-weight:100 900;font-style:normal;font-display:swap;src:url(../fonts/anton-latin-ext-400.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Outfit";font-weight:100 900;font-style:normal;font-display:swap;src:url(../fonts/outfit-latin-800.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Outfit";font-weight:100 900;font-style:normal;font-display:swap;src:url(../fonts/outfit-latin-ext-800.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Mama Africa, versie B (richting EDC). Tokens uit STYLE-SHEET.md sectie 1, geen nieuwe tinten.
   DNA van edc.com: donkere wereld + sterrenhemel, neon als hierarchie, wiel van edities, aftellen,
   line-up als typografische poster, tickets als neon-kaarten. Handschrift: Mama Africa (stickers, wax-print, Ojuju). */
:root{
  --ma-ink:#150A22;--ma-purple:#24103D;--ma-surface:#32185A;--ma-violet:#662D91;
  --ma-yellow:#FFCE00;--ma-pink:#FFAED3;--ma-magenta:#EE2A7B;--ma-mint:#6DCCA7;
  --ma-orange:#FBB040;--ma-lilac:#EADFF7;--ma-white:#FFFFFF;
  --f-display:"Archivo Black","DM Sans",system-ui,sans-serif;--f-body:"DM Sans",system-ui,sans-serif;
  --d-xl:clamp(2.75rem,6.4vw + 1rem,6rem);--d-l:clamp(2.25rem,4.5vw + .5rem,4.25rem);--d-m:clamp(1.5rem,2.2vw + .5rem,2.25rem);
  --lead:clamp(1.125rem,1vw + .8rem,1.375rem);
  --gut:clamp(16px,4vw,40px);--sec:clamp(64px,9vw,120px);
  --shadow:0 10px 24px rgba(8,2,20,.5);--ease:cubic-bezier(.22,1,.36,1);
  --glow-y:0 0 22px rgba(255,206,0,.55);
  --wax:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' fill='%2332185A'/%3E%3Ccircle cx='32' cy='32' r='22' fill='none' stroke='%23FFCE00' stroke-width='4'/%3E%3Ccircle cx='32' cy='32' r='12' fill='%23EE2A7B'/%3E%3Ccircle cx='32' cy='32' r='5' fill='%23FFCE00'/%3E%3Ccircle cx='0' cy='0' r='10' fill='%236DCCA7'/%3E%3Ccircle cx='64' cy='0' r='10' fill='%236DCCA7'/%3E%3Ccircle cx='0' cy='64' r='10' fill='%236DCCA7'/%3E%3Ccircle cx='64' cy='64' r='10' fill='%236DCCA7'/%3E%3Cpath d='M32 2v6M32 56v6M2 32h6M56 32h6' stroke='%23FFAED3' stroke-width='3'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ma-ink);color:var(--ma-white);font:400 1rem/1.65 var(--f-body);overflow-x:clip;-webkit-font-smoothing:antialiased;position:relative}
/* sterrenhemel: EDC's donkere wereld, in merkkleuren; twinkelt alleen met transform/opacity */
body::before,body::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-repeat:repeat}
body::before{background-image:radial-gradient(1.5px 1.5px at 20px 30px,#fff,transparent),radial-gradient(1px 1px at 90px 120px,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 160px 60px,#FFCE00,transparent),radial-gradient(1px 1px at 230px 190px,#fff,transparent),radial-gradient(2px 2px at 300px 90px,#FFAED3,transparent),radial-gradient(1px 1px at 60px 250px,#6DCCA7,transparent),radial-gradient(1.5px 1.5px at 340px 270px,#fff,transparent);background-size:380px 320px;opacity:.55}
body::after{background-image:radial-gradient(2px 2px at 130px 40px,#FFCE00,transparent),radial-gradient(1.5px 1.5px at 280px 220px,#fff,transparent),radial-gradient(2px 2px at 40px 180px,#6DCCA7,transparent),radial-gradient(1.5px 1.5px at 210px 130px,#FFAED3,transparent);background-size:310px 290px;animation:twinkle 5s ease-in-out infinite alternate}
@keyframes twinkle{from{opacity:.15}to{opacity:.85}}
main,header,footer,.cb{position:relative;z-index:1}
img,svg{display:block;max-width:100%}
a{color:inherit}
::selection{background:var(--ma-yellow);color:var(--ma-ink)}
:focus-visible{outline:3px solid var(--ma-magenta);outline-offset:2px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ma-yellow);color:var(--ma-ink);padding:10px 16px;z-index:300;font-weight:700}
.skip:focus{left:8px}
.wrap{width:100%;max-width:calc(1240px + 2*var(--gut));margin-inline:auto;padding-inline:var(--gut)}
h1,h2,h3,.display{font-family:var(--f-display);font-weight:800;margin:0;text-wrap:balance;letter-spacing:.005em;text-transform:uppercase}
h1{font-size:var(--d-xl);line-height:.95}h2{font-size:var(--d-l);line-height:1}h3{font-size:var(--d-m);line-height:1.1}
.y{color:var(--ma-yellow);text-shadow:var(--glow-y)}
.eyebrow,.label{font:700 .8125rem/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase}
.eyebrow{color:var(--ma-yellow);margin:0 0 16px}
.lead{font-size:var(--lead);line-height:1.55;color:var(--ma-lilac);max-width:60ch;margin:20px 0 0}
p{margin:0 0 1em;max-width:65ch}
.small{font-size:.875rem;line-height:1.5}.muted{color:var(--ma-lilac)}
.center{text-align:center}.center .lead,.center p{margin-inline:auto}
.sec{padding-block:var(--sec);position:relative}
.band-purple{background:linear-gradient(180deg,rgba(36,16,61,.92),rgba(36,16,61,.97))}
.band-surface{background:rgba(50,24,90,.8)}
.sec-head{margin-bottom:36px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 32px}
.sec-head.center{justify-content:center;text-align:center}
.mt{margin-top:32px}
/* wax-print scheiding: de Mama Africa-versie van EDC's bloem-scheidingslijn */
.wax{height:22px;background:var(--wax);background-size:44px 44px;border-block:3px solid var(--ma-white)}
.wax-s{height:12px;background:var(--wax);background-size:24px 24px}
/* knoppen */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;font:700 .8125rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:0;cursor:pointer;border-radius:0;transition:transform 120ms var(--ease),box-shadow 160ms var(--ease);position:relative;color:var(--ma-ink);background:none;font-family:var(--f-body)}
.btn-primary{background:var(--ma-yellow);border:3px solid var(--ma-white);transform:rotate(-1.5deg);box-shadow:var(--shadow),0 0 26px rgba(255,206,0,.35)}
.btn-primary:hover{transform:rotate(0) translateY(-2px);box-shadow:var(--shadow),0 0 38px rgba(255,206,0,.6)}
.btn-primary:active{transform:translateY(1px)}
.btn-secondary{color:var(--ma-white);border:2px solid var(--ma-white);transform:rotate(1deg)}
.btn-secondary:hover{transform:rotate(0) translateY(-2px);background:rgba(255,255,255,.1)}
.btn-tertiary{min-height:44px;padding:0;color:var(--ma-white);text-decoration:underline;text-decoration-color:var(--ma-yellow);text-decoration-thickness:3px;text-underline-offset:6px}
.btn-sm{min-height:44px;padding:0 18px}
.btn[disabled]{opacity:.4;pointer-events:none}
.btn .ico,.ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square;flex:none}
.btn-row{display:flex;flex-wrap:wrap;gap:16px 20px;align-items:center;margin-top:32px}
@media(max-width:700px){.btn{min-height:56px}.btn-sm{min-height:44px}.btn-row .btn-primary,.btn-row .btn-secondary{flex:1 1 100%}}
@media(prefers-reduced-motion:no-preference){.btn-primary{animation:pulse 3.4s ease-in-out infinite}}
@keyframes pulse{50%{box-shadow:var(--shadow),0 0 44px rgba(255,206,0,.55)}}
/* header: EDC-balk (logo, nav, kleine pil "Dates") */
.hdr{position:sticky;top:0;z-index:60;background:rgba(21,10,34,.88);backdrop-filter:blur(10px);border-bottom:1px solid rgba(234,223,247,.2)}
.hdr .wrap{display:flex;align-items:center;gap:20px;height:80px}
.logo img{width:60px;height:auto}
.nav{display:flex;gap:26px;margin-left:auto;align-items:center}
.nav a{font:700 .8125rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:14px 0;white-space:nowrap;border-bottom:3px solid transparent}
.nav a:hover,.nav a[aria-current]{border-bottom-color:var(--ma-yellow)}
.lang{display:inline-flex;border:2px solid var(--ma-lilac);border-radius:9999px;overflow:hidden;flex:none}
.lang a{font:700 .75rem/1 var(--f-body);letter-spacing:.12em;text-decoration:none;padding:0 11px;min-height:38px;display:inline-flex;align-items:center;color:var(--ma-lilac)}
.lang a[aria-current]{background:var(--ma-lilac);color:var(--ma-ink)}
.ddwrap{position:relative;flex:none}
.ddbtn{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 20px;background:var(--ma-yellow);color:var(--ma-ink);border:0;border-radius:9999px;font:700 .75rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;box-shadow:0 0 22px rgba(255,206,0,.4)}
.ddbtn svg{width:10px;height:10px;transition:transform 160ms}
.ddbtn[aria-expanded=true] svg{transform:rotate(180deg)}
.dd{position:absolute;right:0;top:calc(100% + 12px);width:min(340px,calc(100vw - 32px));background:var(--ma-ink);border:1px solid rgba(234,223,247,.35);border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.6);z-index:70;overflow:hidden}
.dd[hidden]{display:none}
.dd a{display:flex;align-items:center;gap:14px;padding:12px 18px;text-decoration:none;border-bottom:1px solid rgba(234,223,247,.15)}
.dd a:hover,.dd a:focus-visible{background:var(--ma-surface)}
.dd a:last-child{border:0;justify-content:space-between;font:700 .75rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ma-yellow);min-height:52px}
.dd .dot{width:12px;height:12px;border-radius:50%;background:var(--c);flex:none;box-shadow:0 0 10px var(--c)}
.dd b{display:block;font:700 .95rem/1.2 var(--f-body)}.dd small{color:var(--ma-lilac);font-size:.78rem}
.burger{display:none;background:none;border:2px solid var(--ma-white);color:var(--ma-white);width:44px;height:44px;cursor:pointer;place-items:center;border-radius:0}
.menu{display:none}
@media(max-width:1320px){.nav,.hdr .lang{display:none}.burger{display:grid}.ddwrap{margin-left:auto}
 .menu{position:fixed;inset:80px 0 0;background:var(--ma-ink);z-index:55;padding:24px var(--gut) 40px;flex-direction:column;gap:6px;overflow:auto}
 .menu.open{display:flex}.menu a{font:800 1.9rem/1.2 var(--f-display);text-transform:uppercase;text-decoration:none;padding:10px 0;border-bottom:1px solid rgba(234,223,247,.18)}
 .menu .lang{display:inline-flex;margin-top:18px;align-self:flex-start}.menu .lang a{font:700 .75rem/1 var(--f-body);border:0;padding:0 14px}}
@media(max-width:700px){.ddwrap{position:static}.dd{position:fixed;left:16px;right:16px;width:auto;top:76px}.hdr .wrap{height:68px;gap:12px}.logo img{width:48px}.menu{inset:68px 0 0}.ddbtn{padding:0 16px}}
.subnav{position:sticky;top:80px;z-index:40;background:rgba(21,10,34,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(234,223,247,.2)}
.subnav .wrap{display:flex;gap:6px 26px;overflow-x:auto;scrollbar-width:none;align-items:center}
.subnav a{font:700 .75rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:18px 0;white-space:nowrap;border-bottom:3px solid transparent;color:var(--ma-lilac)}
.subnav a:hover{color:#fff;border-bottom-color:var(--ma-yellow)}
.subnav .btn{margin-left:auto;min-height:40px;padding:0 16px}
@media(max-width:1040px){.subnav{top:68px}}
/* ---- plaatsaanduiding / sticker-variant per beeldplek ---- */
.slot{position:relative;overflow:hidden;background:var(--ma-surface);aspect-ratio:var(--ar,4/3);border:3px solid var(--ma-white);box-shadow:var(--shadow)}
.slot-p{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:16px;background:repeating-linear-gradient(135deg,rgba(234,223,247,.07) 0 12px,transparent 12px 24px),var(--ma-surface);outline:2px dashed var(--ma-lilac);outline-offset:-12px}
.slot-p .ico{width:40px;height:40px;stroke-width:1.6;color:var(--ma-lilac)}
.slot-p b{font:700 .9rem/1.3 var(--f-body);max-width:24ch}.slot-p i{font:400 .78rem/1.3 var(--f-body);color:var(--ma-lilac);font-style:normal}
.tag{position:absolute;left:0;top:0;background:var(--ma-yellow);color:var(--ma-ink);font:700 .6875rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;padding:7px 10px}
.slot-s{position:absolute;inset:0;background:var(--bg,var(--ma-pink));overflow:hidden;display:none}
.slot-s::before{content:"";position:absolute;inset:0;background:var(--wax);background-size:56px 56px;opacity:.14;mix-blend-mode:multiply}
.slot-s .big{position:absolute;left:7%;top:7%;right:7%;font:800 clamp(1.25rem,2.4vw,2.1rem)/.95 var(--f-display);text-transform:uppercase;color:var(--ma-ink);overflow-wrap:anywhere}
.slot-s img{position:absolute;height:66%;width:auto;max-width:70%;object-fit:contain;right:5%;bottom:-3%;transform:rotate(var(--r,-5deg));filter:drop-shadow(0 8px 10px rgba(8,2,20,.35));animation:float 7s ease-in-out infinite}
body[data-v=sticker] .slot-p{display:none}
body[data-v=sticker] .slot-s{display:block}
.slot.arch{border-radius:999px 999px 0 0}
@keyframes float{50%{transform:translateY(-8px) rotate(var(--r,-5deg))}}
/* ---- HOME: wiel van landen (EDC's wiel van edities, als Mama Africa-plaat) ---- */
.hero{padding-block:clamp(28px,5vw,72px) clamp(48px,6vw,88px);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:center}
.hero h1{font-size:clamp(2.5rem,4.4vw + .6rem,4.6rem)}.hero h1 .l2{display:block;font-size:.5em;line-height:1;margin-top:14px;color:var(--ma-lilac);letter-spacing:.04em}
.proof{display:flex;flex-wrap:wrap;gap:12px 28px;margin:28px 0 0;padding:0;list-style:none}
.proof li{font:700 .8125rem/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ma-lilac)}
.proof b{display:block;font:800 2rem/1 var(--f-display);color:var(--ma-white);letter-spacing:0;text-shadow:var(--glow-y)}
.wheelbox{position:relative;max-width:660px;width:100%;margin-inline:auto}
.wheel{width:100%;height:auto;overflow:visible;aspect-ratio:1}
.wheel .rim{fill:url(#wax)}
.wheel .core{fill:var(--ma-ink);stroke:var(--ma-yellow);stroke-width:3;filter:drop-shadow(0 0 14px rgba(255,206,0,.5))}
.sector{cursor:pointer;transform-origin:360px 360px;transition:transform .35s var(--ease),filter .35s}
.sector .shape{fill:var(--c);stroke:var(--ma-ink);stroke-width:3;transition:fill .3s}
.sector .hatch{fill:url(#hatch);display:none}
.sector .ph{display:none}
.sector text{font-family:var(--f-display);font-weight:800;font-size:21px;fill:var(--ma-ink);letter-spacing:.03em;text-transform:uppercase;pointer-events:none}
.sector:hover,.sector:focus-visible,.sector.on{transform:scale(1.045);filter:drop-shadow(0 0 16px var(--c))}
.sector:focus-visible{outline:none}.sector:focus-visible .shape{stroke:var(--ma-white);stroke-width:5}
body[data-v=foto] .sector .shape{fill:var(--ma-surface);stroke:var(--c);stroke-width:4}
body[data-v=foto] .sector .hatch{display:block}
body[data-v=foto] .sector text{fill:var(--ma-white)}
body[data-v=foto] .sector .ph{display:block;fill:var(--ma-lilac);font:700 9px var(--f-body);letter-spacing:.14em}
body[data-v=foto] .sector .stk{display:none}
.wheel .hub{pointer-events:none}
.tour{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:center;margin-top:14px}
.pill{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 20px;border:2px solid var(--ma-lilac);border-radius:9999px;background:rgba(21,10,34,.7);color:var(--ma-white);font:700 .75rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;text-decoration:none}
.pill:hover{border-color:var(--ma-yellow)}
.pill .ico{width:12px;height:12px;fill:currentColor;stroke:none}
.pinfo{margin-top:16px;min-height:96px;background:var(--ma-surface);border:3px solid var(--ma-white);padding:14px 20px;box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr auto;gap:2px 16px;align-items:center;transform:rotate(-1deg);max-width:520px;margin-inline:auto}
.pinfo .cc{grid-row:span 2;width:56px;height:56px;background:var(--c,var(--ma-mint));color:var(--ma-ink);display:grid;place-items:center;font:800 1.5rem/1 var(--f-display)}
.pinfo b{font:800 1.4rem/1.1 var(--f-display);text-transform:uppercase}
.pinfo small{color:var(--ma-lilac);font-size:.875rem;grid-column:2}
.pinfo a{grid-row:span 2;grid-column:3}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero{padding-top:12px}.hero-grid .wheelbox{order:-1}}
@media(max-width:700px){.sector text{font-size:23px}.pinfo{grid-template-columns:auto 1fr;transform:none}.pinfo a{grid-column:1/-1;grid-row:auto;justify-self:start;margin-top:6px}}
/* lint */
.ribbon{background:var(--ma-yellow);color:var(--ma-ink);overflow:hidden;border-block:3px solid var(--ma-white);transform:rotate(-.6deg);margin-block:8px;position:relative;z-index:1}
.ribbon-track{display:flex;gap:44px;white-space:nowrap;padding:12px 0;width:max-content;animation:marq 60s linear infinite;font:800 1.375rem/1 var(--f-display);text-transform:uppercase}
.ribbon-track span::after{content:"✺";margin-left:44px;color:var(--ma-magenta)}
.ribbon:hover .ribbon-track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
/* aftellen */
.next{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:center}
.count{display:flex;gap:clamp(8px,2vw,24px);margin:28px 0 8px}
.count div{background:rgba(21,10,34,.75);border:2px solid var(--ma-yellow);padding:14px clamp(10px,2vw,22px) 10px;text-align:center;min-width:0;flex:1 1 0;box-shadow:inset 0 0 24px rgba(255,206,0,.12),0 0 24px rgba(255,206,0,.18)}
.count b{display:block;font:800 clamp(2rem,5.4vw,4.5rem)/1 var(--f-display);color:var(--ma-yellow);text-shadow:var(--glow-y);font-variant-numeric:tabular-nums}
.count span{font:700 .6875rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ma-lilac)}
.factline{font:700 .8125rem/1.5 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ma-lilac)}
@media(max-width:900px){.next{grid-template-columns:1fr}}
/* editiekaarten */
.cards{display:grid;gap:28px 24px}
.cards-4{grid-template-columns:repeat(4,minmax(0,1fr))}.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px){.cards-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.cards-3{grid-template-columns:1fr}}
@media(max-width:640px){.cards-4,.cards-2{grid-template-columns:1fr}}
.ed{display:flex;flex-direction:column;text-decoration:none;background:var(--ma-purple);border:2px solid var(--c,var(--ma-mint));box-shadow:0 0 0 rgba(0,0,0,0);transition:transform 200ms var(--ease),box-shadow 200ms;position:relative;height:100%}
.ed:nth-child(odd){transform:rotate(-.8deg)}.ed:nth-child(even){transform:rotate(.8deg)}
.ed:hover{transform:rotate(0) translateY(-4px);box-shadow:0 0 30px var(--c),var(--shadow)}
.ed .slot{border:0;border-bottom:3px solid var(--ma-white);box-shadow:none;--ar:5/4}
.ed-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.ed-date{font:800 1.75rem/1 var(--f-display);color:var(--c,var(--ma-mint));text-transform:uppercase}
.ed h3{font-size:1.5rem}.ed .meta{font-size:.9rem;color:var(--ma-lilac);margin:0}
.ed .go{margin-top:auto;padding-top:10px;font:700 .75rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ma-yellow)}
.chip{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border:2px solid var(--ma-yellow);color:var(--ma-yellow);font:700 .6875rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;align-self:flex-start;background:transparent}
.chip.live{background:var(--ma-magenta);border-color:var(--ma-magenta);color:var(--ma-ink)}
.chip.done{border-color:var(--ma-lilac);color:var(--ma-lilac)}
.cc-badge{display:inline-grid;place-items:center;min-width:34px;height:24px;padding:0 6px;background:var(--c,var(--ma-lilac));color:var(--ma-ink);font:800 .8rem/1 var(--f-display);letter-spacing:.04em}
/* landentegels */
.cty{text-decoration:none;display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--ma-purple);border-top:8px solid var(--c);border-inline:1px solid rgba(234,223,247,.2);border-bottom:1px solid rgba(234,223,247,.2);scroll-margin-top:120px}
.cty header{display:flex;align-items:center;gap:14px}
.cty h3{font-size:1.5rem}
.cty .stat{font:700 .75rem/1.4 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ma-lilac);margin:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.cchip{display:inline-flex;align-items:center;min-height:32px;padding:0 14px;border:2px solid var(--ma-lilac);border-radius:9999px;font:600 .8125rem/1 var(--f-body);text-decoration:none;color:var(--ma-white)}
a.cchip:hover{border-color:var(--c,var(--ma-yellow));background:rgba(255,255,255,.08)}
.cchip.up{border-color:var(--ma-yellow);color:var(--ma-yellow)}
/* line-up als typografische poster (EDC lineup) */
.lineup{text-align:center;max-width:1000px;margin-inline:auto}
.lineup .day{font:800 1.1rem/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;color:var(--ma-white);margin:30px 0 14px}
.lineup .names{font:800 clamp(1.6rem,4.2vw,3.4rem)/1.18 var(--f-display);text-transform:uppercase;color:var(--ma-mint);text-shadow:0 0 18px rgba(109,204,167,.4);margin:0 auto;max-width:none}
.lineup .names span{white-space:nowrap}
.lineup .names .dot{color:var(--ma-yellow);margin-inline:.35em;white-space:normal}
.lineup .names .alt{color:var(--ma-pink);text-shadow:0 0 18px rgba(255,174,211,.4)}
.lineup .names .tba{white-space:normal;color:var(--ma-lilac);font-size:.6em;opacity:.9;text-shadow:none}
.lineup .last{font:800 1.1rem/1.3 var(--f-display);text-transform:uppercase;margin-top:26px;color:var(--ma-lilac)}
.lineup .last b{display:block;font-size:2.4rem;color:var(--ma-yellow);text-shadow:var(--glow-y)}
.note{display:inline-block;margin-top:20px;font:600 .8125rem/1.4 var(--f-body);color:var(--ma-ink);background:var(--ma-lilac);padding:8px 14px}
/* ticketkaarten (EDC GA / GA+ / VIP) */
.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1040px;margin-inline:auto}
.tier{border:2px solid var(--c);background:linear-gradient(180deg,rgba(50,24,90,.9),rgba(21,10,34,.95));padding:28px 24px 26px;text-align:center;display:flex;flex-direction:column;gap:12px;box-shadow:0 0 34px color-mix(in srgb,var(--c) 35%,transparent),inset 0 0 30px color-mix(in srgb,var(--c) 10%,transparent);position:relative}
.tier h3{color:var(--c);font-size:2rem;text-shadow:0 0 18px color-mix(in srgb,var(--c) 55%,transparent)}
.tier .price{font:800 2.6rem/1 var(--f-display);margin:6px 0 0}.tier .price small{display:block;font:500 .8125rem/1.3 var(--f-body);color:var(--ma-lilac);margin-top:6px}
.tier ul{list-style:none;margin:6px 0 10px;padding:0;text-align:left;font-size:.95rem;display:grid;gap:8px}
.tier li{padding-left:24px;position:relative}.tier li::before{content:"✺";position:absolute;left:0;color:var(--c)}
.tier .btn{background:var(--c);border:3px solid var(--ma-white);margin-top:auto}
.tier .badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--ma-magenta);color:var(--ma-ink);font:700 .6875rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;white-space:nowrap}
@media(max-width:860px){.tiers{grid-template-columns:1fr;max-width:460px}}
.sticker{position:absolute;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(8,2,20,.45));animation:float 7s ease-in-out infinite}
@media(max-width:900px){.sticker{display:none}}
/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center}
@media(max-width:860px){.split{grid-template-columns:1fr}}
/* tabs / filters / agenda */
.filterbar{display:flex;flex-wrap:wrap;gap:18px 36px;align-items:end;margin-bottom:28px}
.grp{display:grid;gap:8px}.grp>.label{color:var(--ma-lilac)}
.fchip{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:2px solid var(--ma-lilac);border-radius:9999px;background:transparent;color:var(--ma-white);font:700 .75rem/1 var(--f-body);letter-spacing:.08em;cursor:pointer}
.fchip[aria-pressed=true],.fchip[aria-selected=true]{background:var(--ma-yellow);border-color:var(--ma-yellow);color:var(--ma-ink)}
.fchips{display:flex;flex-wrap:wrap;gap:8px}
.ev-list{display:grid;gap:14px}
.ev{display:grid;gap:8px 24px;align-items:center;padding:16px 22px 16px 0;background:var(--ma-purple);border-left:8px solid var(--c,var(--ma-mint));text-decoration:none;transition:transform 160ms var(--ease),box-shadow 160ms;min-height:96px}
.ev:hover{transform:translateX(6px);box-shadow:-6px 0 28px color-mix(in srgb,var(--c) 45%,transparent)}
.ev.hidden,.hidden{display:none}
.ev-date{text-align:center;color:var(--c,var(--ma-mint));font-family:var(--f-display);text-transform:uppercase;line-height:1}
.ev-date b{display:block;font-size:2.6rem;font-weight:800}.ev-date span{font:700 .8125rem/1 var(--f-body);letter-spacing:.14em}
.ev-main h3{font-size:1.5rem}.ev-main .meta{margin:6px 0 0;font-size:.9rem;color:var(--ma-lilac);max-width:none}
.ev.past{background:transparent;border-left-color:rgba(234,223,247,.4)}.ev.past .ev-date{color:var(--ma-lilac)}
.empty{display:none;padding:40px 0;text-align:center}.empty.show{display:block}
@media(max-width:800px){.ev{grid-template-columns:72px minmax(0,1fr);padding:16px 16px 16px 0}.ev .chip,.ev .ev-cta{grid-column:2;justify-self:start}.ev-date b{font-size:2.1rem}.ev-main h3{font-size:1.25rem}}
/* fact-lijst / detail */
.page-hero{padding-block:clamp(36px,6vw,80px) clamp(28px,4vw,56px);position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(36,16,61,.9),rgba(21,10,34,0))}
.crumb{display:flex;gap:10px;flex-wrap:wrap;font:600 .8125rem/1.4 var(--f-body);color:var(--ma-lilac);margin-bottom:22px}.crumb a{color:var(--ma-lilac)}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;margin:28px 0 0}
.facts div{border-top:3px solid var(--ma-yellow);padding-top:10px}
.facts dt{font:700 .75rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ma-lilac)}
.facts dd{margin:6px 0 0;font:800 1.35rem/1.2 var(--f-display);text-transform:uppercase}
.poster{position:relative;border:3px solid var(--ma-white);box-shadow:var(--shadow),0 0 60px rgba(102,45,145,.6);transform:rotate(-1.5deg);background:var(--ma-purple)}
.poster img{width:100%;height:auto}
.hero-poster{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center}
@media(max-width:900px){.hero-poster{grid-template-columns:1fr}.facts{grid-template-columns:1fr 1fr}}
/* edition-pagina */
.ed-hero{position:relative;padding-block:clamp(28px,4vw,56px);background:radial-gradient(120% 90% at 50% 0%,rgba(102,45,145,.55),rgba(21,10,34,0) 70%)}
.ed-title{text-align:center;margin-bottom:28px}
.ed-title .edition-name{display:inline-block;background:var(--ma-yellow);color:var(--ma-ink);border:3px solid var(--ma-white);padding:10px 22px;font:800 1.15rem/1 var(--f-display);letter-spacing:.06em;text-transform:uppercase;transform:rotate(-1.5deg);box-shadow:var(--shadow);margin-top:18px}
.rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.room{display:flex;flex-direction:column;gap:14px}.room h3{text-align:center}.room .slot{--ar:4/5}
@media(max-width:800px){.rooms{grid-template-columns:1fr}.room .slot{--ar:16/10}}
.faq details{border-bottom:1px solid rgba(234,223,247,.25);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:56px;font:800 1.3rem/1.2 var(--f-display);text-transform:uppercase}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";color:var(--ma-yellow);font-size:1.8rem}
.faq details[open] summary::after{content:"−"}.faq .a{padding:0 0 18px;color:var(--ma-lilac)}
.pending{color:var(--ma-ink);background:var(--ma-lilac);padding:2px 8px;font-weight:700;font-size:.85em}
.travel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.travel div{border:2px solid rgba(234,223,247,.3);padding:20px;background:rgba(36,16,61,.8)}.travel h3{font-size:1.25rem;margin-bottom:10px;color:var(--ma-mint)}
@media(max-width:800px){.travel{grid-template-columns:1fr}}
/* foto's */
.mosaic{grid-auto-flow:dense;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.mosaic .slot{--ar:1;border:0;box-shadow:none}.mosaic .slot-p{outline-offset:-6px;padding:4px}.mosaic .slot-p b,.mosaic .slot-p i,.mosaic .slot-p .ico{display:none}.mosaic .tag{font-size:.5rem;padding:4px 5px}
.mosaic .w2{grid-column:span 2;grid-row:span 2}
@media(max-width:800px){.mosaic{grid-template-columns:repeat(4,minmax(0,1fr))}}
.album{display:flex;flex-direction:column;text-decoration:none;gap:10px}
.album .slot{--ar:4/5;transition:transform 200ms var(--ease)}.album:hover .slot{transform:scale(1.02) rotate(-.6deg)}
.album .date{font:700 .75rem/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--c,var(--ma-yellow))}
.album h3{font-size:1.2rem}.album .venue{margin:0;font-size:.875rem;color:var(--ma-lilac)}
.vtile{background:none;border:0;padding:0;color:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:10px;font:inherit;width:100%}
.vwrap{position:relative;display:block}.vtile .slot{--ar:16/9}.vtile .play{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;background:var(--ma-yellow);border:3px solid var(--ma-white);display:grid;place-items:center;z-index:3;box-shadow:0 0 30px rgba(255,206,0,.6);transition:transform 160ms}
.vtile:hover .play{transform:scale(1.1)}.vtile .play::before{content:"";border-left:22px solid var(--ma-ink);border-block:13px solid transparent;margin-left:6px}
.vtile b{font:800 1.2rem/1.1 var(--f-display);text-transform:uppercase;display:block}.vtile span.d{font-size:.875rem;color:var(--ma-lilac)}
/* boeken */
.proofs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.proofs div{border:2px solid var(--ma-yellow);padding:22px;text-align:center;box-shadow:0 0 28px rgba(255,206,0,.18);background:rgba(21,10,34,.7)}
.proofs b{display:block;font:800 clamp(2.4rem,5vw,4rem)/1 var(--f-display);color:var(--ma-yellow);text-shadow:var(--glow-y)}.proofs span{font-size:.9rem;color:var(--ma-lilac)}
@media(max-width:700px){.proofs{grid-template-columns:1fr}}
.offer{display:flex;flex-direction:column;gap:12px;background:var(--ma-purple);border:2px solid var(--c);padding:0 0 22px}
.offer .slot{--ar:16/10;border:0;border-bottom:3px solid var(--ma-white);box-shadow:none}.offer h3,.offer p{padding-inline:20px}.offer p{margin:0;color:var(--ma-lilac)}
.crew{display:flex;flex-direction:column;gap:10px;text-align:center}.crew .slot{--ar:4/5}.crew h3{font-size:1.5rem}.crew .role{margin:0;font:700 .75rem/1 var(--f-body);letter-spacing:.14em;color:var(--ma-yellow);text-transform:uppercase}
.cards-4.crews{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1000px){.cards-4.crews{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* formulier */
.form{display:grid;gap:20px;background:var(--ma-surface);border:3px solid var(--ma-white);padding:clamp(20px,3vw,36px);box-shadow:var(--shadow)}
.field{display:grid;gap:8px}.field label{font:700 .8125rem/1.3 var(--f-body);letter-spacing:.1em;text-transform:uppercase}
.field input,.field select,.field textarea{width:100%;min-height:56px;padding:12px 16px;background:var(--ma-ink);color:var(--ma-white);border:2px solid var(--ma-lilac);border-radius:0;font:400 1rem/1.4 var(--f-body)}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--ma-magenta);outline-offset:2px;border-color:var(--ma-yellow)}
.field .msg{display:none;margin:0;color:var(--ma-pink);font-size:.9rem;font-weight:600;gap:8px;align-items:center}
.field .msg svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;flex:none}
.field.err .msg{display:flex}.field.err input,.field.err textarea{border-color:var(--ma-pink)}
.hint{margin:0;font-size:.85rem;color:var(--ma-lilac)}.hp{position:absolute;left:-9999px}
.ok{display:none;gap:10px;align-items:center;color:var(--ma-mint);font-weight:700}.ok.show{display:flex}.ok svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.5}
.mails{display:grid;gap:14px}.mails div{display:grid}.mails a{font-weight:700;font-size:1.1rem;text-decoration-color:var(--ma-yellow);text-decoration-thickness:3px;text-underline-offset:5px}
.langnote{margin-top:20px;font-size:.9rem}
/* footer */
.ftr{background:var(--ma-ink);border-top:3px solid var(--ma-white);padding-top:0}
.ftr-grid{display:grid;grid-template-columns:1.1fr 1fr 1.3fr 1fr;gap:36px;padding-block:56px 40px}
.ftr h3{font-size:1.1rem;margin-bottom:14px;color:var(--ma-yellow)}.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ftr a{text-decoration:none}.ftr ul a:hover{text-decoration:underline;text-decoration-color:var(--ma-yellow);text-underline-offset:4px}
.ftr .brand{display:flex;align-items:center;gap:14px;font:800 1.6rem/1 var(--f-display);text-transform:uppercase}.ftr .brand img{width:64px}
.ftr .two{columns:2;column-gap:20px}.ftr .two li{break-inside:avoid;margin-bottom:10px}
.soc a{display:flex;gap:10px;align-items:center}.soc svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.legal{display:flex;flex-wrap:wrap;gap:10px 28px;border-top:1px solid rgba(234,223,247,.2);padding-block:22px 36px;font-size:.875rem;color:var(--ma-lilac)}
@media(max-width:1000px){.ftr-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.ftr-grid{grid-template-columns:1fr}}
/* cookiebanner: balk onderaan (STYLE-SHEET: mobiel max. 20% hoogte) */
.cb{position:fixed;left:0;right:0;bottom:0;z-index:100;background:var(--ma-ink);border-top:3px solid var(--ma-yellow);box-shadow:0 -12px 40px rgba(0,0,0,.6);padding:18px var(--gut);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 32px;align-items:center;max-width:none}
.cb[hidden]{display:none}
.cb-top{display:flex;justify-content:space-between;align-items:center;grid-column:1/-1}
.cb h2{font:800 1.1rem/1 var(--f-display);text-transform:uppercase}
.cb-x{background:none;border:0;color:#fff;width:44px;height:44px;cursor:pointer;margin:-10px -12px -10px 0}.cb-x svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.5;margin:auto}
.cb .txt{margin:0;font-size:.9rem;line-height:1.5;color:var(--ma-lilac);max-width:80ch;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.cb.open .txt{-webkit-line-clamp:unset;display:block}
.cb-more{background:none;border:0;color:var(--ma-yellow);font:700 .8125rem/1 var(--f-body);text-decoration:underline;cursor:pointer;padding:0;min-height:32px;text-align:left;justify-self:start}
.cb-prefs{display:none;grid-column:1/-1;gap:10px;max-height:34vh;overflow:auto}
.cb.prefs .cb-prefs{display:grid}
.pref{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-top:1px solid rgba(234,223,247,.2)}
.pref small{display:block;color:var(--ma-lilac);font-size:.8rem}
.tog{width:52px;height:30px;background:var(--ma-surface);border:2px solid var(--ma-lilac);border-radius:9999px;position:relative;cursor:pointer;flex:none;padding:0}
.tog::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--ma-lilac);transition:transform 160ms}
.tog[aria-checked=true]{background:var(--ma-mint);border-color:var(--ma-mint)}.tog[aria-checked=true]::after{transform:translateX(22px);background:var(--ma-ink)}.tog:disabled{opacity:.7}
.cb-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;grid-column:2;grid-row:2}
.cb-btns .btn{min-height:46px;padding:0 20px;border:2px solid var(--ma-white);transform:none;box-shadow:none;animation:none}
.cb-btns .accept{background:var(--ma-yellow)}.cb-btns .deny{background:var(--ma-lilac)}.cb-btns .prefs,.cb-btns .save{background:transparent;color:var(--ma-white)}
.cb-btns .save,.cb.prefs .cb-btns .prefs{display:none}.cb.prefs .cb-btns .save{display:inline-flex}
.cb .link{font-size:.8125rem;color:var(--ma-lilac)}
@media(max-width:760px){.cb{grid-template-columns:1fr;padding:10px var(--gut) 12px;gap:6px}.cb-top{display:none}.cb .txt{font-size:.78rem;line-height:1.35;-webkit-line-clamp:2}.cb-more{min-height:28px;font-size:.75rem}.cb .link{display:none}
 .cb-btns{grid-column:1;grid-row:auto;display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px}.cb-btns .btn{min-height:44px;padding:0 8px;font-size:.6875rem;letter-spacing:.06em}
 .cb.prefs .cb-top{display:flex}.cb.prefs .cb-more,.cb.open .cb-more{display:block}.cb.prefs .cb-btns{grid-template-columns:1fr 1fr}.cb.prefs .cb-btns .accept,.cb.prefs .cb-btns .deny{display:inline-flex}}
dialog.lb{border:3px solid var(--ma-white);background:var(--ma-ink);color:#fff;width:min(920px,calc(100vw - 32px));padding:0}
dialog.lb::backdrop{background:rgba(8,2,20,.85)}
.lb-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px}.lb-bar b{font:800 1.2rem/1 var(--f-display);text-transform:uppercase}
.lb-close{background:none;border:0;color:#fff;width:44px;height:44px;cursor:pointer}.lb-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.5;margin:auto}
.lb-stage{padding:0 16px 20px}
/* beweging: reveal, alleen transform/opacity */
.rev{opacity:0;transform:translateY(16px);transition:opacity 240ms ease-out,transform 240ms ease-out;transition-delay:calc(var(--i,0)*60ms)}
.rev.in,.no-js .rev,.still .rev{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rev{opacity:1;transform:none}.ribbon-track{width:auto;flex-wrap:wrap;white-space:normal;justify-content:center}html{scroll-behavior:auto}}
.still *,.still *::before,.still *::after{animation:none!important}
.still .btn-primary{animation:none}
.still body::after{opacity:.4}

/* index */
.dcard{padding-block:36px;border-top:3px solid var(--ma-white)}.dcard h2{font-size:var(--d-m);margin-bottom:18px}
.dgrid{display:grid;grid-template-columns:1.1fr 1.1fr 1.1fr .5fr;gap:18px;align-items:start}
.dgrid figure{margin:0}.dgrid figcaption{min-height:2.6em;font:700 .75rem/1.3 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ma-yellow);margin-bottom:8px}
.dgrid img{width:100%;height:auto;border:2px solid var(--ma-lilac);background:var(--ma-surface)}
.noref{border:2px dashed var(--ma-lilac);padding:40px 16px;text-align:center;color:var(--ma-lilac)}
.dtxt{margin:18px 0 8px;max-width:90ch}
.dcard code,.page-hero code{background:var(--ma-surface);padding:2px 6px}
@media(max-width:1000px){.dgrid{grid-template-columns:1fr 1fr}.dgrid .mob{max-width:200px}}@media(max-width:560px){.dgrid{grid-template-columns:1fr}}

/* =====================================================================================================
   TYPOGRAFIE v2 (ronde na Brians keuze voor versie B: "het lettertype moet beter leesbaar").
   Alleen typografie, leesbaarheid en contrast; kleuren, wiel, afteller, posters en sfeer blijven.
   Regels:  Ojuju alleen voor grote koppen (h1, h2, wiel-titel, lint, line-up; altijd >= 28px).
            Alles wat je leest staat in DM Sans: broodtekst >= 17px mobiel (18px desktop) met regelafstand 1,65;
            labels >= 14px, gewicht >= 600, extra letterafstand; knoppen >= 16px.
            Cijfers in datum, prijs, ticket en afteller: tabelcijfers + grotere maat.
            Contrast: broodtekst/labels >= 7:1, grote koppen >= 4,5:1 (gemeten, zie RESULT-edc-typografie.md).
            Geen tekst die krimpt om te passen: bij te weinig ruimte past de layout zich aan.
   De oude waarden staan ongewijzigd in edc-v1.css (voor typografie.html).
   ===================================================================================================== */
:root{
  --fs-body:clamp(1.0625rem,.25vw + 1rem,1.125rem);
  --fs-small:1rem;
  --fs-label:.875rem;--fs-btn:1rem;
  --ls-label:.12em;--ls-btn:.08em;
  --d-xl:clamp(2.875rem,6.4vw + 1rem,6.25rem);--d-l:clamp(2.5rem,4.5vw + .75rem,4.5rem);--d-m:clamp(1.75rem,2.2vw + .75rem,2.5rem);
  --lead:clamp(1.25rem,.8vw + 1.05rem,1.5rem);
  --tnum:tabular-nums lining-nums;
}
@media(max-width:700px){:root{--fs-small:1.0625rem}}
/* tekstkleur voor kleine tekst: magenta (4,8:1) wordt de lichtere roze uit de kit, rest blijft de eigen kleur */
[style*="--c:"],[style*="--c: "]{--ct:var(--c)}
[style*="--c:var(--ma-magenta)"],[style*="--c: var(--ma-magenta)"]{--ct:var(--ma-pink)}
body{font:400 var(--fs-body)/1.65 var(--f-body)}
/* koppen: Ojuju groter, meer lucht tussen de regels, geen extreem dunne of zware snede */
h1,h2,.display{font-weight:700;letter-spacing:.01em}
h1{line-height:1.05}h2{line-height:1.1}
h3{font:800 1.5rem/1.25 var(--f-body);letter-spacing:0;text-transform:none;text-wrap:balance}
.lead{line-height:1.6;max-width:62ch}
.small{font-size:var(--fs-small);line-height:1.65}.muted{color:var(--ma-lilac)}
.eyebrow,.label{font:700 var(--fs-label)/1.4 var(--f-body);letter-spacing:var(--ls-label)}
.eyebrow{font-size:.9375rem}
/* knoppen en klikbare labels */
.btn{font:700 var(--fs-btn)/1.15 var(--f-body);letter-spacing:var(--ls-btn);min-height:56px}
.btn-sm{min-height:48px}
.btn-tertiary{min-height:48px}
.pill,.fchip,.cchip{font-size:var(--fs-btn);letter-spacing:.04em}
.pill{letter-spacing:var(--ls-btn);min-height:48px}
.fchip{min-height:44px;font-weight:700}
.cchip{min-height:40px;font-weight:600;letter-spacing:.02em}
.chip{font:700 var(--fs-label)/1 var(--f-body);letter-spacing:.1em;min-height:32px}
.chip.live{background:var(--ma-pink);border-color:var(--ma-pink)}
.tag{font:700 var(--fs-label)/1 var(--f-body);letter-spacing:.1em;padding:8px 12px}
.note{font:600 .9375rem/1.5 var(--f-body)}
.pending{font-size:.9375rem;font-weight:700;line-height:1.5}
/* header, menu, dropdown */
.nav{gap:22px}
.nav a{font:700 .9375rem/1 var(--f-body);letter-spacing:.08em}
.lang a{font:700 var(--fs-label)/1 var(--f-body);letter-spacing:.1em}
.ddbtn{font:700 var(--fs-btn)/1 var(--f-body);letter-spacing:var(--ls-btn)}
.dd a:last-child{font:700 var(--fs-btn)/1.1 var(--f-body);letter-spacing:var(--ls-btn)}
.dd b{font:700 1.0625rem/1.25 var(--f-body)}.dd small{font-size:.9375rem;font-weight:500;line-height:1.4}
.subnav a{font:700 .9375rem/1 var(--f-body);letter-spacing:.08em}
.subnav .btn{min-height:44px}
@media(max-width:1320px){.menu a{font:800 1.5rem/1.3 var(--f-body);text-transform:none}.menu .lang a{font:700 var(--fs-label)/1 var(--f-body);letter-spacing:.1em}}
@media(max-width:1040px){.subnav{top:80px}}@media(max-width:700px){.subnav{top:68px}}
.crumb{font:600 .9375rem/1.5 var(--f-body);letter-spacing:.02em}
.skip{font-size:var(--fs-btn)}
/* hero, cijfers */
.hero h1 .l2{font:700 clamp(1.25rem,1.2vw + 1rem,1.75rem)/1.3 var(--f-body);letter-spacing:.08em;margin-top:16px}
.proof li{font:700 var(--fs-label)/1.3 var(--f-body);letter-spacing:var(--ls-label)}
.proof b,.proofs b,.count b,.tier .price,.ed-date,.ev-date b{font-family:var(--f-body);font-weight:800;font-variant-numeric:var(--tnum);letter-spacing:-.01em}
.proof b{font-size:2.5rem;line-height:1.1}
.proofs b{font-size:clamp(2.75rem,5vw,4.25rem);line-height:1.1}.proofs span{font-size:1.0625rem;line-height:1.5;font-weight:500}
.count b{font-size:clamp(2.5rem,6vw,5rem);line-height:1.05}
.count span{font:700 var(--fs-label)/1.2 var(--f-body);letter-spacing:.1em}
.count div{padding-block:14px 12px}
.factline{font:700 var(--fs-label)/1.6 var(--f-body);letter-spacing:.1em;font-variant-numeric:var(--tnum)}
/* wiel: titel blijft groot Ojuju (hero), landnamen in DM Sans; grootte afgestemd op de breedte van de wiel */
.wheelbox{container-type:inline-size}
.sector text{font-family:var(--f-body);font-weight:800;font-size:22px;letter-spacing:.02em;text-transform:none}
.sector .wc{display:none}
body[data-v=foto] .sector .ph{font:700 18px var(--f-body);letter-spacing:.1em}
@container (max-width:600px){.sector text{font-size:25px}body[data-v=foto] .sector .ph{font-size:22px}}
@container (max-width:500px){.sector text{font-size:31px;font-weight:800}.sector .wn{display:none}.sector .wc{display:inline}body[data-v=foto] .sector .ph{font-size:28px}}
.pinfo .cc{font:800 1.5rem/1 var(--f-body);background:var(--ct,var(--ma-mint))}
.pinfo b{font:800 1.5rem/1.2 var(--f-body);text-transform:none}
.pinfo small{font-size:1rem;line-height:1.5;font-weight:500}
/* lint (marquee): Ojuju blijft, groter */
.ribbon-track{font:700 1.875rem/1.2 var(--f-display);letter-spacing:.02em;padding:12px 0}
/* editiekaarten, landen, agenda */
.ed-date{font-size:1.875rem;line-height:1.1;color:var(--ct,var(--ma-mint))}
.ed h3{font-size:1.5rem}.ed .meta{font-size:1.0625rem;line-height:1.55;font-weight:500;font-variant-numeric:var(--tnum)}
.ed .go{font:700 var(--fs-btn)/1.2 var(--f-body);letter-spacing:.08em}
.cc-badge{font:800 .9375rem/1 var(--f-body);letter-spacing:.04em;min-width:40px;height:28px;background:var(--ct,var(--ma-lilac))}
.cty h3{font-size:1.5rem}
.cty .stat{font:700 var(--fs-label)/1.5 var(--f-body);letter-spacing:.1em;font-variant-numeric:var(--tnum)}
.ev-date{color:var(--ct,var(--ma-mint))}
.ev-date b{font-size:2.75rem;line-height:1}
.ev-date span{font:700 var(--fs-label)/1.2 var(--f-body);letter-spacing:.12em;display:block;margin-top:4px}
.ev-main h3{font-size:1.5rem}
.ev-main .meta{font-size:1.0625rem;line-height:1.55;font-weight:500;font-variant-numeric:var(--tnum)}
.ev{grid-template-columns:104px minmax(0,1fr) auto auto}
@media(max-width:800px){.ev{grid-template-columns:84px minmax(0,1fr)}.ev-date b{font-size:2.5rem}.ev-main h3{font-size:1.375rem}}
.grp>.label{font-size:var(--fs-label)}
/* line-up: typografische poster, Ojuju groot; dagen en kleine regels in DM Sans */
.lineup .day{font:800 1.25rem/1.3 var(--f-body);letter-spacing:.12em;font-variant-numeric:var(--tnum)}
.lineup .names{font:700 clamp(1.875rem,4.2vw,3.5rem)/1.25 var(--f-display)}
.lineup .names .tba{font:600 1.125rem/1.5 var(--f-body);letter-spacing:.02em;opacity:1;text-transform:none}
.lineup .last{font:700 1.125rem/1.5 var(--f-body);letter-spacing:.04em}
.lineup .last b{font:700 clamp(2rem,4vw,2.75rem)/1.2 var(--f-display)}
/* tickets */
.tier h3{font:800 2rem/1.15 var(--f-body);text-transform:uppercase;letter-spacing:.02em;color:var(--ct,var(--c))}
.tier .price{font-size:3.25rem;line-height:1.05;margin-top:8px}
.tier .price small{font:500 .9375rem/1.45 var(--f-body);letter-spacing:0;color:var(--ma-lilac)}
.tier ul{font-size:1.0625rem;line-height:1.55}
.tier .badge{font:700 var(--fs-label)/1 var(--f-body);letter-spacing:.1em;background:var(--ma-pink);padding:9px 14px}
.tier .btn{color:var(--ma-ink)}
/* detail, feiten */
.facts dt{font:700 var(--fs-label)/1.2 var(--f-body);letter-spacing:var(--ls-label)}
.facts dd{font:800 1.5rem/1.3 var(--f-body);text-transform:none;font-variant-numeric:var(--tnum);letter-spacing:0}
.ed-title .edition-name{font:800 1.125rem/1.2 var(--f-body);letter-spacing:.08em;padding:12px 22px}
.faq summary{font:700 1.25rem/1.35 var(--f-body);text-transform:none;letter-spacing:0}
.faq summary::after{font-size:2rem}
.travel h3{font-size:1.375rem}
/* albums, video, crew, aanbod */
.album .date{font:700 var(--fs-label)/1.3 var(--f-body);letter-spacing:.1em;font-variant-numeric:var(--tnum);color:var(--ct,var(--ma-yellow))}
.album h3{font-size:1.3125rem}.album .venue{font-size:1.0625rem;line-height:1.5;font-weight:500}
.vtile b{font:800 1.3125rem/1.3 var(--f-body);text-transform:none}
.vtile span.d{font-size:1.0625rem;line-height:1.5;font-weight:500;font-variant-numeric:var(--tnum)}
.vtile .slot-p{justify-content:flex-end;padding-bottom:22px}.vtile .slot-p .ico{display:none}
.crew h3{font-size:1.5rem}.crew .role{font:700 var(--fs-label)/1.3 var(--f-body);letter-spacing:var(--ls-label)}
.offer p{font-size:var(--fs-body);line-height:1.65}
/* placeholders, stickers */
.slot-p b{font:700 1.0625rem/1.35 var(--f-body)}
.slot-p i{font:500 var(--fs-label)/1.4 var(--f-body)}
.slot-s .big{font:800 clamp(1.375rem,2.4vw,2.1rem)/1.1 var(--f-body);letter-spacing:.01em}
.mosaic .tag{display:none}
/* formulier */
.field label{font:700 var(--fs-label)/1.4 var(--f-body);letter-spacing:.1em}
.field input,.field select,.field textarea{font:400 1.0625rem/1.5 var(--f-body);min-height:56px}
.field .msg{font-size:1rem;line-height:1.5}
.hint{font-size:1rem;line-height:1.6}
.ok{font-size:1.0625rem}
.mails a{font-size:1.1875rem}
.langnote{font-size:var(--fs-small);line-height:1.65}
/* footer */
.ftr h3{font:800 var(--fs-label)/1.3 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ma-yellow)}
.ftr .brand{font:800 1.5rem/1.1 var(--f-body);letter-spacing:.02em}
.ftr li,.ftr p{font-size:1.0625rem;line-height:1.65}
.legal{font-size:.9375rem;line-height:1.6;font-weight:500}
/* cookiebanner: tekst blijft 17px, de banner groeit mee */
.cb h2{font:800 1.25rem/1.2 var(--f-body);text-transform:none}
.cb .txt{font-size:var(--fs-body);line-height:1.6;-webkit-line-clamp:3}
.cb-more{font:700 var(--fs-btn)/1.2 var(--f-body);min-height:40px}
.cb .link{font-size:var(--fs-small)}
.pref small{font-size:1rem;line-height:1.5}
.cb-btns .btn{min-height:52px;font-size:var(--fs-btn);letter-spacing:.04em;text-transform:none}
@media(max-width:760px){.cb .txt{font-size:var(--fs-body);line-height:1.6}.cb-more{font-size:var(--fs-btn)}
 .cb-btns{grid-template-columns:1fr 1fr}.cb-btns .prefs{grid-column:1/-1}.cb-btns .btn{min-height:48px;padding:0 10px;font-size:var(--fs-btn);letter-spacing:.02em}
 .cb.prefs .cb-btns .prefs{grid-column:auto}}
dialog.lb .lb-bar b,.lb-bar b{font:800 1.25rem/1.2 var(--f-body);text-transform:none}
/* index (overzichtspagina): zelfde regels */
.dgrid figcaption{font:700 var(--fs-label)/1.4 var(--f-body);letter-spacing:.1em}
.dtxt{font-size:var(--fs-body)}
.dcard h2{font-size:var(--d-m)}
.dcard code,.page-hero code{font:500 .9375rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
.noref{font-size:var(--fs-body);line-height:1.6}
.slot-p .ico{color:var(--ma-lilac)}
/* tweede ronde: regelafstand, gewicht en contrast op de laatste plekken */
.ed .meta,.ev-main .meta{line-height:1.65}
.tier ul{line-height:1.65}.tier li{padding-left:26px}
.tier .price small{font-size:1.0625rem;line-height:1.6}
.pinfo small,.pref small,.hint{font-size:1.0625rem;line-height:1.6}
.lineup .last{line-height:1.65}
.small.muted,.langnote{font-weight:500}
code{font-family:var(--f-body)!important}.dcard code,.page-hero code{font-weight:700}
.fchip,[data-sum]{font-variant-numeric:var(--tnum)}[data-sum]{font-size:1.125rem}
.subnav a.btn{font-size:var(--fs-btn);letter-spacing:var(--ls-btn);color:var(--ma-ink)}
/* wiel: stappen zo gekozen dat landnamen/codes op elke wielbreedte >= 18,7px (= groot, vet) zijn */
@container (max-width:660px){.sector text{font-size:23px;letter-spacing:0}body[data-v=foto] .sector .ph{font-size:18px}}
@container (max-width:600px){.sector text{font-size:27.5px}body[data-v=foto] .sector .ph{font-size:22px}}
@container (max-width:500px){.sector text{font-size:38px}body[data-v=foto] .sector .ph{font-size:29px}}
/* magenta (4,8:1 met inkt) onder kleine of lange tekst: lichter tekstvlak uit de kit */
.slot-s[style*="--bg:var(--ma-magenta)"] .big{background:var(--ma-pink);padding:.12em .4em .16em;right:auto;max-width:86%;width:fit-content}
body[data-v=sticker] .sector[style*="--c:var(--ma-magenta)"] text{stroke:var(--ma-pink);stroke-width:10px;paint-order:stroke;stroke-linejoin:round}
/* dropdown: toelichtingsregel is lopende tekst, dus 17px */
.dd small{font-size:1.0625rem;line-height:1.6}
.small{font-weight:500}
@media(max-width:760px){.cb .txt{-webkit-line-clamp:2}}
.dg,.count b .dg,.ev-date b .dg,.proof b .dg,.proofs b .dg,.ed-date .dg{display:inline-block;width:.72em;text-align:center;font:inherit;letter-spacing:0;text-transform:none;color:inherit}
.rules{margin:18px 0 0;padding-left:1.2em;max-width:80ch}.rules li{margin-bottom:6px}
.count b,.ev-date b,.proof b,.proofs b,.ed-date{white-space:nowrap}
@media(max-width:560px){.count{gap:6px}.count div{padding-inline:4px}}
@media(max-width:800px){.ev>.btn{grid-column:2;justify-self:start}}
/* video-plek: het afspeelknopje staat midden, dus de plaatsaanduiding staat eronder en zonder tweede regel */
.vtile .slot-p i{display:none}.vtile .slot-p{padding-bottom:20px}
/* e-mailadres als link: kleine letters lezen beter dan hoofdletters met spatiëring */
.btn[href^="mailto"]{text-transform:none;letter-spacing:.02em;font-size:1.125rem}
/* afteller: de doos past zich aan (vaste cijfercellen), het cijfer niet; maat schaalt met de breedte van de afteller en blijft >= 40px */
.count{container-type:inline-size;gap:clamp(6px,1vw,12px)}
.count div{padding-inline:clamp(4px,.8vw,8px)}
.count b{font-size:clamp(2.5rem,min(14cqw,5rem),5rem)}
/* na review: speelknop in sticker-tegels linksonder (de titel liep eronder), lopende regels >= 17px mobiel met regelafstand 1,6 */
body[data-v=sticker] .vtile .play{left:12px;top:auto;bottom:12px;margin:0;width:60px;height:60px}
body[data-v=sticker] .vtile .play::before{border-left-width:18px;border-block-width:11px;margin-left:5px}
.note,.field .msg,.crumb,.legal{font-size:var(--fs-small);line-height:1.6}
.proofs span,.lineup .names .tba{line-height:1.6}
.price .dg{font:inherit}

/* =====================================================================================================
   KOPPEN v3 (ronde 3): Archivo Black voor koppen (eigen licentie OFL, lokaal), alles daarbinnen DM Sans.
   Eén snede (zwaar), geen vals vet, geen extra letterafstand, ruime regelafstand. Ojuju is uit de site gehaald.
   ===================================================================================================== */
h1,h2,.display{font-weight:400;letter-spacing:0;font-synthesis:none;text-transform:uppercase}
h1{line-height:1.08}h2{line-height:1.12}
.ribbon-track,.lineup .names,.lineup .last b,.lineup .day{letter-spacing:.005em;font-synthesis:none}
:root{--d-xl:clamp(2.25rem,5vw + .75rem,5rem);--d-l:clamp(2rem,3.6vw + .75rem,3.75rem);--d-m:clamp(1.5rem,2vw + .75rem,2.25rem)}
