  :root{
    --bg:#0b0b0d;
    --bg-soft:#131215;
    --paper:#eeeadd;
    --acid:#d7ff3f;
    --magenta:#ff2e9a;
    --uv:#4d5dff;
    --ink:#eeeadd;
    --ink-dim:#9a978c;
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Manrope',sans-serif;
    overflow-x:hidden;
    min-height:100vh;
  }

  /* grain overlay */
  .grain{
    position:fixed;
    inset:0;
    z-index:5;
    pointer-events:none;
    opacity:0.06;
    mix-blend-mode:overlay;
  }

  /* ---------- NAV ---------- */
  header.nav{
    position:fixed;
    top:0;left:0;right:0;
    z-index:60;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:1.4rem clamp(1.2rem, 4vw, 3rem);
    mix-blend-mode:difference;
  }

  .logo-mark{
    font-family:'JetBrains Mono',monospace;
    font-weight:700;
    font-size:0.95rem;
    letter-spacing:0.12em;
    color:var(--ink);
    text-decoration:none;
    display:flex;
    align-items:center;
    gap:0.5rem;
  }
  .logo-mark .dot{
    width:8px;height:8px;
    border-radius:50%;
    background:var(--acid);
    display:inline-block;
    animation:pulse 2.2s ease-in-out infinite;
  }
  @keyframes pulse{
    0%,100%{transform:scale(1);opacity:1;}
    50%{transform:scale(1.6);opacity:0.5;}
  }

  .burger{
    position:relative;
    width:44px;height:44px;
    background:none;
    border:1px solid var(--ink);
    border-radius:50%;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:70;
  }
  .burger span{
    position:absolute;
    width:18px;height:2px;
    background:var(--ink);
    transition:transform .35s ease, opacity .35s ease, top .35s ease;
  }
  .burger span:nth-child(1){top:16px;}
  .burger span:nth-child(2){top:22px;}
  .burger span:nth-child(3){top:28px;}

  @media (max-width:420px){
    header.nav{padding:1.1rem 1.1rem;}
    .logo-mark{font-size:0.72rem;letter-spacing:0.08em;gap:0.4rem;}
    .burger{width:38px;height:38px;}
    .burger span{width:15px;}
    .burger span:nth-child(1){top:13px;}
    .burger span:nth-child(2){top:18px;}
    .burger span:nth-child(3){top:23px;}
    .burger.open span:nth-child(1){top:18px;}
    .burger.open span:nth-child(3){top:18px;}
  }

  .burger.open span:nth-child(1){top:22px;transform:rotate(45deg);}
  .burger.open span:nth-child(2){opacity:0;}
  .burger.open span:nth-child(3){top:22px;transform:rotate(-45deg);}

  /* ---------- SETLIST NAVIGATION ---------- */
  .menu-overlay{
    position:fixed;
    top:4.8rem;right:1.35rem;
    z-index:55;
    width:18.5rem;
    padding:1.1rem 1rem 1rem;
    background:var(--paper);
    box-shadow:9px 13px 0 rgba(0,0,0,.26),0 18px 35px rgba(0,0,0,.35);
    clip-path:polygon(2% 0,99% 1%,97% 99%,4% 97%,0 84%,1% 15%);
    opacity:0;visibility:hidden;
    transform:translateY(-.8rem) rotate(2.5deg) scaleY(.08);
    transform-origin:top right;
    transition:opacity .2s ease,transform .38s cubic-bezier(.2,.9,.25,1),visibility .38s;
  }
  header.nav:has(.burger:hover) + .menu-overlay,
  header.nav:has(.burger:focus-within) + .menu-overlay,
  .menu-overlay:hover,.menu-overlay:focus-within{
    opacity:1;visibility:visible;transform:translateY(0) rotate(1deg) scaleY(1);
  }
  .menu-list{list-style:none;display:block;}
  .menu-list li{margin:.3rem 0;}
  .menu-list li:nth-child(1){transform:rotate(-1.5deg)}
  .menu-list li:nth-child(2){transform:rotate(.8deg) translateX(.2rem)}
  .menu-list li:nth-child(3){transform:rotate(-.7deg) translateX(-.15rem)}
  .menu-list li:nth-child(4){transform:rotate(1.3deg) translateX(.15rem)}
  .menu-list li:nth-child(5){transform:rotate(-1.1deg)}
  .menu-list a{
    display:flex;align-items:center;gap:.46rem;
    width:100%;padding:.8rem 1rem .72rem;
    background:var(--paper);color:var(--bg);
    clip-path:polygon(2% 5%,99% 0,97% 96%,5% 100%,0 78%);
    font:700 .72rem 'JetBrains Mono',monospace;
    letter-spacing:.055em;text-decoration:none;text-transform:uppercase;
    box-shadow:0 4px 0 #0004;
    transition:transform .2s ease,background .2s ease,color .2s ease;
  }
  .menu-list a span{color:#8a5a00;font-size:.58rem;}
  .menu-list li:nth-child(2n) a{background:#ded8ca;}
  .menu-list li:nth-child(3n) a{background:var(--acid);}
  .menu-list a:hover{background:var(--magenta);color:var(--paper);transform:translateY(-.35rem) rotate(-2deg);}
  .menu-list a:hover span{color:var(--paper);}
  .menu-list a:focus-visible,
  .burger:focus-visible,
  .evt-item:focus-visible,
  .modal-close:focus-visible,
  .chip:focus-visible,
  .ticket-submit:focus-visible{
    outline:3px solid var(--acid);
    outline-offset:4px;
  }

  .menu-overlay::before{content:'SETLIST / ÉCLEKTIK FREAK';display:block;margin:0 0 .85rem .15rem;color:#8a5a00;font:700 .55rem 'JetBrains Mono',monospace;letter-spacing:.13em;}
  .menu-overlay::after{content:'';position:absolute;top:-.6rem;right:2.2rem;width:4.2rem;height:1rem;background:rgba(255,218,90,.65);transform:rotate(8deg);}

  /* Mobile keeps a deliberately simple burger dropdown. */
  @media (max-width:760px){
    .burger{display:flex;}
    .menu-overlay{
      top:4.85rem;right:1.1rem;left:1.1rem;
      width:auto;
      padding:1rem;
      background:var(--bg-soft);
      border:1px solid rgba(238,234,221,.25);
      box-shadow:0 18px 40px rgba(0,0,0,.48);
      opacity:0;visibility:hidden;transform:translateY(-.7rem) scaleY(.96);
      transition:opacity .2s ease,transform .2s ease,visibility .2s;
    }
    .menu-overlay.open{opacity:1;visibility:visible;transform:translateY(0) scaleY(1);}
    .menu-overlay::before{display:none;}
    .menu-overlay::after{display:none;}
    .menu-list{display:block;}
    .menu-list li,.menu-list li:nth-child(n){margin:.38rem 0;transform:none;}
    .menu-list a{
      width:100%;justify-content:flex-start;
      padding:.9rem 1rem;background:var(--paper);
      font-size:.75rem;clip-path:polygon(1% 4%,100% 0,98% 96%,2% 100%,0 80%);
    }
    .menu-list li:nth-child(2n) a{background:#ded8ca;}
    .menu-list li:nth-child(3n) a{background:var(--acid);}
  }

  @media (min-width:761px){.burger{display:flex;}}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    height:100vh;
    min-height:640px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    overflow:hidden;
  }

  .hero-bg{
    position:absolute;
    inset:0;
    background:
      radial-gradient(circle at 20% 25%, rgba(255,46,154,0.16), transparent 55%),
      radial-gradient(circle at 82% 70%, rgba(77,93,255,0.18), transparent 50%),
      var(--bg);
    z-index:0;
  }

  /* floating rings (speaker cone parallax) */
  .ring{
    position:absolute;
    border-radius:50%;
    border:1.5px solid rgba(238,234,221,0.14);
    z-index:1;
    pointer-events:none;
  }
  .ring.r1{width:520px;height:520px;top:8%;left:-8%;}
  .ring.r2{width:340px;height:340px;top:55%;right:-6%;border-color:rgba(215,255,63,0.18);}
  .ring.r3{width:220px;height:220px;bottom:6%;left:12%;border-color:rgba(255,46,154,0.2);}

  .hero-content{
    position:relative;
    z-index:2;
    text-align:center;
    padding:0 1.5rem;
  }

  .eyebrow{
    font-family:'JetBrains Mono',monospace;
    font-size:0.7rem;
    letter-spacing:0.28em;
    text-transform:uppercase;
    color:var(--acid);
    margin-bottom:1.4rem;
  }
  .eyebrow::before{content:"◆ ";}
  .eyebrow::after{content:" ◆";}

  .wordmark{
    position:relative;
    font-family:'Anton',sans-serif;
    font-size:clamp(3.2rem, 12vw, 9.5rem);
    line-height:0.88;
    text-transform:uppercase;
    letter-spacing:-0.01em;
    color:var(--paper);
  }

  /* photocopy misalignment duplicate effect */
  .wordmark span{
    position:relative;
    display:block;
  }
  .wordmark span::before,
  .wordmark span::after{
    content:attr(data-text);
    position:absolute;
    left:0;right:0;top:0;
    z-index:-1;
  }
  .wordmark span::before{
    color:var(--magenta);
    transform:translate(3px,2px);
    opacity:0.65;
  }
  .wordmark span::after{
    color:var(--uv);
    transform:translate(-3px,-2px);
    opacity:0.55;
  }

  .tagline{
    font-family:'Manrope',sans-serif;
    font-weight:600;
    font-size:clamp(0.95rem,1.6vw,1.15rem);
    color:var(--ink-dim);
    margin-top:1.6rem;
    max-width:36ch;
    margin-left:auto;
    margin-right:auto;
    letter-spacing:0.01em;
  }

  .tagline b{color:var(--ink);font-weight:800;}

  /* logo badge */
  .stamp{
    position:absolute;
    top:12%;
    right:7%;
    width:170px;
    z-index:3;
  }
  .stamp img{
    width:100%;
    height:auto;
    display:block;
    filter:drop-shadow(0 0 24px rgba(215,255,63,0.12));
  }

  @media (max-width:800px){
    .stamp{
      position:relative;
      top:auto;right:auto;
      width:130px;
      margin:0 auto 1.6rem;
    }
  }

  /* festival pill */
  .pill{
    margin-top:2.4rem;
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
    padding:0.55rem 1.2rem;
    border:1px solid rgba(238,234,221,0.3);
    border-radius:100px;
    font-family:'JetBrains Mono',monospace;
    font-size:0.75rem;
    letter-spacing:0.05em;
    color:var(--ink);
    text-transform:uppercase;
  }
  .pill .flame{color:var(--magenta);}

  /* scroll cue */
  .scroll-cue{
    position:absolute;
    bottom:2.4rem;
    left:50%;
    transform:translateX(-50%);
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:0.5rem;
    font-family:'JetBrains Mono',monospace;
    font-size:0.65rem;
    letter-spacing:0.2em;
    text-transform:uppercase;
    color:var(--ink-dim);
  }
  .scroll-cue .line{
    width:1px;
    height:34px;
    background:linear-gradient(var(--acid), transparent);
    animation:drop 1.8s ease-in-out infinite;
  }
  @keyframes drop{
    0%{transform:scaleY(0);transform-origin:top;}
    50%{transform:scaleY(1);transform-origin:top;}
    50.01%{transform-origin:bottom;}
    100%{transform:scaleY(0);transform-origin:bottom;}
  }

  @media (prefers-reduced-motion: reduce){
    .logo-mark .dot, .scroll-cue .line{animation:none;}
    *{transition-duration:0.01ms !important;}
  }

  /* ---------- ASSOCIATION SECTION ---------- */
  .assoc{
    position:relative;
    background:var(--bg-soft);
    color:var(--ink);
    padding:7rem clamp(1.2rem, 6vw, 4rem) 6rem;
    overflow:hidden;
  }

  .assoc-bg-video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    z-index:0;
  }

  .assoc-scrim{
    position:absolute;
    inset:0;
    z-index:1;
    background:
      linear-gradient(180deg, rgba(11,11,13,0.55) 0%, rgba(11,11,13,0.82) 30%, rgba(11,11,13,0.92) 100%),
      radial-gradient(circle at 15% 20%, rgba(255,46,154,0.12), transparent 55%);
  }

  .media-tag{
    position:absolute;
    top:1.6rem;
    left:clamp(1.2rem, 6vw, 4rem);
    z-index:2;
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--acid);
    display:flex;
    align-items:center;
    gap:0.4rem;
  }
  .media-tag .rec-dot{
    width:6px;height:6px;
    border-radius:50%;
    background:var(--magenta);
    animation:pulse 1.6s ease-in-out infinite;
  }

  /* torn transition from the hero into the video section */
  .assoc::before{
    content:"";
    position:absolute;
    top:-39px;
    left:0;right:0;
    height:40px;
    background:var(--bg-soft);
    z-index:2;
    clip-path:polygon(0% 100%, 3% 45%, 6% 90%, 9% 30%, 12% 80%, 15% 20%, 18% 95%,
      21% 35%, 24% 85%, 27% 15%, 30% 70%, 33% 25%, 36% 90%, 39% 40%, 42% 80%,
      45% 20%, 48% 95%, 51% 30%, 54% 85%, 57% 15%, 60% 75%, 63% 25%, 66% 90%,
      69% 35%, 72% 80%, 75% 20%, 78% 95%, 81% 30%, 84% 85%, 87% 15%, 90% 75%,
      93% 25%, 96% 90%, 100% 40%, 100% 100%);
  }

  .assoc-inner{
    max-width:880px;
    margin:0 auto;
    position:relative;
    z-index:2;
  }

  .assoc .eyebrow{
    color:var(--acid);
    text-align:left;
    margin-bottom:1rem;
  }
  .assoc .eyebrow::before,
  .assoc .eyebrow::after{content:none;}

  .assoc h2{
    font-family:'Anton',sans-serif;
    font-size:clamp(2.4rem, 6vw, 4.6rem);
    text-transform:uppercase;
    line-height:0.95;
    margin-bottom:1.6rem;
    color:var(--paper);
  }

  .assoc-intro{
    font-size:clamp(1.05rem,1.6vw,1.25rem);
    max-width:56ch;
    line-height:1.6;
    color:var(--ink-dim);
    margin-bottom:4rem;
  }

  .timeline{
    display:flex;
    flex-direction:column;
  }

  .t-item{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:1.5rem;
    padding:2rem 0;
    border-top:1px dashed rgba(238,234,221,0.2);
    align-items:start;
  }
  .t-item:last-child{border-bottom:1px dashed rgba(238,234,221,0.2);}

  .t-num{
    font-family:'JetBrains Mono',monospace;
    font-size:0.9rem;
    letter-spacing:0.1em;
    color:var(--magenta);
    padding-top:0.3rem;
  }
  .t-item:nth-child(2) .t-num{color:var(--uv);}
  .t-item:nth-child(3) .t-num{color:var(--acid);}
  .t-item:nth-child(4) .t-num{color:var(--magenta);}

  .t-body h3{
    font-family:'Anton',sans-serif;
    font-size:clamp(1.3rem,2.6vw,1.8rem);
    text-transform:uppercase;
    margin-bottom:0.6rem;
    letter-spacing:0.01em;
    color:var(--paper);
  }
  .t-body p{
    color:var(--ink-dim);
    line-height:1.65;
    max-width:60ch;
    font-size:1rem;
  }

  .pull{
    margin-top:5rem;
    padding-top:3rem;
    border-top:2px solid rgba(238,234,221,0.3);
    text-align:center;
  }
  .pull p{
    font-family:'Anton',sans-serif;
    font-size:clamp(1.7rem,5vw,3.4rem);
    text-transform:uppercase;
    line-height:1.15;
    letter-spacing:-0.005em;
    color:var(--paper);
  }
  .pull .old{
    text-decoration:line-through;
    text-decoration-color:var(--magenta);
    text-decoration-thickness:4px;
    color:var(--ink-dim);
  }
  .pull .new{
    color:var(--acid);
  }

  @media (max-width:620px){
    .t-item{grid-template-columns:1fr;gap:0.4rem;}
  }

  /* ---------- EVENTS SECTION ---------- */
  .events{
    position:relative;
    background:var(--paper);
    color:#1a1812;
    padding:7rem clamp(1.2rem, 6vw, 4rem) 8rem;
  }

  /* torn transition from the dark video section into paper */
  .events::before{
    content:"";
    position:absolute;
    top:-39px;
    left:0;right:0;
    height:40px;
    background:var(--paper);
    z-index:2;
    clip-path:polygon(0% 100%, 3% 45%, 6% 90%, 9% 30%, 12% 80%, 15% 20%, 18% 95%,
      21% 35%, 24% 85%, 27% 15%, 30% 70%, 33% 25%, 36% 90%, 39% 40%, 42% 80%,
      45% 20%, 48% 95%, 51% 30%, 54% 85%, 57% 15%, 60% 75%, 63% 25%, 66% 90%,
      69% 35%, 72% 80%, 75% 20%, 78% 95%, 81% 30%, 84% 85%, 87% 15%, 90% 75%,
      93% 25%, 96% 90%, 100% 40%, 100% 100%);
  }

  .events-inner{
    max-width:980px;
    margin:0 auto;
    position:relative;
  }

  .events .eyebrow{
    color:#8a5a00;
    text-align:left;
    margin-bottom:1rem;
  }
  .events .eyebrow::before, .events .eyebrow::after{content:none;}

  .events h2{
    font-family:'Anton',sans-serif;
    font-size:clamp(2.4rem, 6vw, 4.6rem);
    text-transform:uppercase;
    line-height:0.95;
    margin-bottom:3.5rem;
  }

  .evt-timeline{
    position:relative;
  }

  .evt-timeline::before{
    content:"";
    position:absolute;
    top:0.4rem; bottom:0.4rem; left:50%;
    width:0;
    border-left:2px dashed rgba(26,24,18,0.3);
    transform:translateX(-50%);
  }

  .evt-item{
    position:relative;
    display:grid;
    grid-template-columns:1fr 50px 1fr;
    align-items:start;
    margin-bottom:3.4rem;
    cursor:pointer;
  }
  .evt-item:last-child{margin-bottom:0;}

  .evt-dot{
    grid-column:2;
    justify-self:center;
    margin-top:0.4rem;
    width:13px;height:13px;
    border-radius:50%;
    background:var(--magenta);
    box-shadow:0 0 0 4px var(--paper), 0 0 0 5px rgba(26,24,18,0.3);
    position:relative;
    z-index:2;
  }
  .evt-item:nth-child(2) .evt-dot{background:var(--uv);}
  .evt-item:nth-child(3) .evt-dot{background:#c98a00;}

  .evt-side{
    max-width:340px;
  }

  /* odd items: card sits in the left column, hugging the centre line */
  .evt-item:nth-child(odd) .evt-side{
    grid-column:1;
    margin-left:auto;
    text-align:right;
  }
  /* even items: card sits in the right column, hugging the centre line */
  .evt-item:nth-child(even) .evt-side{
    grid-column:3;
    margin-right:auto;
    text-align:left;
  }

  .evt-date{
    font-family:'JetBrains Mono',monospace;
    font-size:0.75rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:#8a5a00;
    margin-bottom:0.4rem;
    display:block;
  }

  .evt-card{
    background:#fffdf6;
    border:1px solid rgba(26,24,18,0.12);
    border-radius:4px;
    padding:1.5rem 1.7rem;
    text-align:left;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .evt-item:nth-child(odd):hover .evt-card{
    transform:translateX(-6px);
    box-shadow:0 10px 22px rgba(26,24,18,0.1);
    border-color:rgba(26,24,18,0.25);
  }
  .evt-item:nth-child(even):hover .evt-card{
    transform:translateX(6px);
    box-shadow:0 10px 22px rgba(26,24,18,0.1);
    border-color:rgba(26,24,18,0.25);
  }

  .evt-title{
    font-family:'Anton',sans-serif;
    font-size:clamp(1.25rem,2.6vw,1.6rem);
    text-transform:uppercase;
    margin-bottom:0.5rem;
    letter-spacing:0.01em;
  }

  .evt-meta{
    font-size:0.95rem;
    color:#3a362c;
    line-height:1.55;
  }

  .evt-tap{
    display:inline-flex;
    align-items:center;
    gap:0.35rem;
    margin-top:0.9rem;
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--magenta);
  }
  .evt-item:nth-child(2) .evt-tap{color:var(--uv);}

  /* upcoming / not-yet-announced state */
  .evt-item--soon{cursor:default;}
  .evt-item--soon .evt-dot{
    background:transparent;
    border:2px dashed rgba(26,24,18,0.35);
    box-shadow:none;
  }
  .evt-item--soon .evt-card{
    background:transparent;
    border-style:dashed;
    border-color:rgba(26,24,18,0.25);
    box-shadow:none;
  }
  .evt-item--soon .evt-title{color:#8c8879;}
  .evt-item--soon .evt-meta{color:#8c8879;}
  .evt-item--soon:hover .evt-card{transform:none;box-shadow:none;}

  @media (max-width:700px){
    .evt-timeline::before{left:5px;transform:none;}
    .evt-item{
      grid-template-columns:0 40px 1fr;
      margin-bottom:3rem;
    }
    .evt-dot{grid-column:1;margin-left:-1px;}
    .evt-item:nth-child(odd) .evt-side,
    .evt-item:nth-child(even) .evt-side{
      grid-column:3;
      margin-left:0;
      margin-right:0;
      max-width:none;
      text-align:left;
    }
    .evt-card{text-align:left;}
    .evt-item:nth-child(odd):hover .evt-card,
    .evt-item:nth-child(even):hover .evt-card{
      transform:translateX(4px);
    }
  }

  /* ---------- MODAL ---------- */
  .modal-overlay{
    position:fixed;
    inset:0;
    z-index:100;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:1.5rem;
    background:rgba(11,11,13,0.72);
    backdrop-filter:blur(3px);
    opacity:0;
    pointer-events:none;
    transition:opacity .3s ease;
  }
  .modal-overlay.open{
    opacity:1;
    pointer-events:auto;
  }

  .modal-card{
    position:relative;
    width:100%;
    max-width:440px;
    background:var(--paper);
    color:#1a1812;
    border-radius:4px;
    padding:2.4rem 2rem 2rem;
    transform:translateY(24px) scale(0.97);
    transition:transform .35s cubic-bezier(.2,.9,.25,1);
    box-shadow:0 30px 60px rgba(0,0,0,0.4);
  }
  .modal-overlay.open .modal-card{transform:translateY(0) scale(1);}

  .modal-card::before{
    content:"";
    position:absolute;
    top:-1px; left:0; right:0;
    height:14px;
    background-image:radial-gradient(circle, rgba(11,11,13,0.72) 5px, transparent 5.5px);
    background-size:20px 20px;
    background-position:8px -8px;
    background-repeat:repeat-x;
  }

  .modal-close{
    position:absolute;
    top:0.9rem; right:0.9rem;
    width:34px;height:34px;
    border-radius:50%;
    border:1px solid rgba(26,24,18,0.25);
    background:none;
    cursor:pointer;
    font-family:'JetBrains Mono',monospace;
    font-size:1rem;
    color:#1a1812;
  }

  .modal-date{
    font-family:'JetBrains Mono',monospace;
    font-size:0.75rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--magenta);
    margin-bottom:0.7rem;
  }

  .modal-title{
    font-family:'Anton',sans-serif;
    font-size:clamp(1.6rem,4vw,2.1rem);
    text-transform:uppercase;
    line-height:1.05;
    margin-bottom:1rem;
  }

  .modal-row{
    display:flex;
    gap:0.6rem;
    margin-bottom:0.55rem;
    font-size:0.95rem;
    line-height:1.5;
  }
  .modal-row .label{
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:#8a5a00;
    min-width:82px;
    padding-top:0.15rem;
  }

  .modal-desc{
    margin-top:1.1rem;
    padding-top:1.1rem;
    border-top:1px dashed rgba(26,24,18,0.25);
    font-size:0.95rem;
    line-height:1.6;
    color:#3a362c;
  }

  /* ---------- BÉNÉVOLAT SECTION ---------- */
  .benevolat{
    position:relative;
    background:var(--bg-soft);
    color:var(--ink);
    padding:7rem clamp(1.2rem, 6vw, 4rem) 7rem;
    overflow:hidden;
  }

  .benevolat::before{
    content:"";
    position:absolute;
    top:-39px;
    left:0;right:0;
    height:40px;
    background:var(--bg-soft);
    z-index:2;
    clip-path:polygon(0% 100%, 3% 45%, 6% 90%, 9% 30%, 12% 80%, 15% 20%, 18% 95%,
      21% 35%, 24% 85%, 27% 15%, 30% 70%, 33% 25%, 36% 90%, 39% 40%, 42% 80%,
      45% 20%, 48% 95%, 51% 30%, 54% 85%, 57% 15%, 60% 75%, 63% 25%, 66% 90%,
      69% 35%, 72% 80%, 75% 20%, 78% 95%, 81% 30%, 84% 85%, 87% 15%, 90% 75%,
      93% 25%, 96% 90%, 100% 40%, 100% 100%);
  }

  .benevolat-inner{
    max-width:900px;
    margin:0 auto;
    position:relative;
    z-index:2;
  }

  .benevolat .eyebrow{
    color:var(--acid);
    text-align:left;
    margin-bottom:1rem;
  }
  .benevolat .eyebrow::before, .benevolat .eyebrow::after{content:none;}

  .benevolat h2{
    font-family:'Anton',sans-serif;
    font-size:clamp(2.2rem, 5.5vw, 4rem);
    text-transform:uppercase;
    line-height:0.95;
    margin-bottom:1.2rem;
    color:var(--paper);
  }

  .benevolat-intro{
    font-size:clamp(1rem,1.6vw,1.15rem);
    max-width:60ch;
    line-height:1.6;
    color:var(--ink-dim);
    margin-bottom:3rem;
  }

  .checklist{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:0;
    border-top:1px dashed rgba(238,234,221,0.2);
    margin-bottom:3rem;
  }

  .check-item{
    display:flex;
    gap:1rem;
    padding:1.6rem 1.2rem 1.6rem 0;
    border-bottom:1px dashed rgba(238,234,221,0.2);
  }
  .check-item:nth-child(odd){border-right:1px dashed rgba(238,234,221,0.2);padding-left:0;}
  .check-item:nth-child(even){padding-left:1.6rem;}

  .check-mark{
    flex-shrink:0;
    width:26px;height:26px;
    border:1.5px solid var(--acid);
    border-radius:4px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:'JetBrains Mono',monospace;
    font-size:0.8rem;
    color:var(--acid);
    margin-top:0.15rem;
  }

  .check-body h3{
    font-family:'Anton',sans-serif;
    font-size:1.05rem;
    text-transform:uppercase;
    letter-spacing:0.01em;
    margin-bottom:0.35rem;
    color:var(--paper);
  }
  .check-body p{
    font-size:0.92rem;
    line-height:1.55;
    color:var(--ink-dim);
  }

  .benevolat-footnote{
    font-family:'JetBrains Mono',monospace;
    font-size:0.78rem;
    letter-spacing:0.02em;
    color:var(--ink-dim);
    line-height:1.6;
    max-width:60ch;
    margin-bottom:2.4rem;
  }

  .benevolat-cta{
    display:flex;
    align-items:center;
    gap:1.6rem;
    flex-wrap:wrap;
  }

  .btn-primary{
    font-family:'JetBrains Mono',monospace;
    font-size:0.85rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--bg);
    background:var(--acid);
    border:none;
    padding:1rem 1.8rem;
    border-radius:2px;
    cursor:pointer;
    transition:transform .2s ease;
  }
  .btn-primary:hover{transform:translateY(-2px);}

  .ok-stamp{
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--magenta);
    border:2px dashed var(--magenta);
    border-radius:50%;
    width:92px;height:92px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    line-height:1.3;
    transform:rotate(-10deg);
    opacity:0.85;
  }

  @media (max-width:620px){
    .checklist{grid-template-columns:1fr;}
    .check-item:nth-child(odd){border-right:none;padding-left:0;}
    .check-item:nth-child(even){padding-left:0;}
  }

  /* ---------- CONTACT SECTION (ticket) ---------- */
  .contact{
    position:relative;
    background:var(--paper);
    color:#1a1812;
    padding:7rem clamp(1.2rem, 6vw, 4rem) 8rem;
  }

  .contact::before{
    content:"";
    position:absolute;
    top:-39px;
    left:0;right:0;
    height:40px;
    background:var(--paper);
    z-index:2;
    clip-path:polygon(0% 100%, 3% 45%, 6% 90%, 9% 30%, 12% 80%, 15% 20%, 18% 95%,
      21% 35%, 24% 85%, 27% 15%, 30% 70%, 33% 25%, 36% 90%, 39% 40%, 42% 80%,
      45% 20%, 48% 95%, 51% 30%, 54% 85%, 57% 15%, 60% 75%, 63% 25%, 66% 90%,
      69% 35%, 72% 80%, 75% 20%, 78% 95%, 81% 30%, 84% 85%, 87% 15%, 90% 75%,
      93% 25%, 96% 90%, 100% 40%, 100% 100%);
  }

  .contact-inner{
    max-width:900px;
    margin:0 auto;
    position:relative;
  }

  .contact .eyebrow{color:#8a5a00;text-align:left;margin-bottom:1rem;}
  .contact .eyebrow::before, .contact .eyebrow::after{content:none;}

  .contact h2{
    font-family:'Anton',sans-serif;
    font-size:clamp(2.2rem, 5.5vw, 4rem);
    text-transform:uppercase;
    line-height:0.95;
    margin-bottom:1rem;
  }

  .contact-intro{
    font-size:clamp(1rem,1.6vw,1.15rem);
    max-width:58ch;
    line-height:1.6;
    color:#3a362c;
    margin-bottom:3rem;
  }

  .ticket{
    position:relative;
    display:grid;
    grid-template-columns:1fr 210px;
    background:#fffdf6;
    border:1px solid rgba(26,24,18,0.15);
    border-radius:6px;
    box-shadow:0 20px 40px rgba(26,24,18,0.12);
    overflow:visible;
  }

  .ticket-main{
    padding:2.2rem clamp(1.4rem,3vw,2.4rem);
    display:flex;
    flex-direction:column;
    gap:1.2rem;
  }

  .ticket-row{
    display:flex;
    flex-direction:column;
    gap:0.4rem;
  }
  .ticket-row label{
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:#8a5a00;
  }
  .ticket-row input,
  .ticket-row textarea{
    font-family:'Manrope',sans-serif;
    font-size:1rem;
    color:#1a1812;
    background:none;
    border:none;
    border-bottom:1.5px solid rgba(26,24,18,0.2);
    padding:0.5rem 0.1rem;
    resize:vertical;
    transition:border-color .2s ease;
  }
  .ticket-row input:focus,
  .ticket-row textarea:focus{
    outline:none;
    border-color:var(--magenta);
  }

  .ticket-chips{
    display:flex;
    flex-wrap:wrap;
    gap:0.6rem;
  }
  .chip{
    font-family:'JetBrains Mono',monospace;
    font-size:0.75rem;
    letter-spacing:0.04em;
    text-transform:uppercase;
    background:none;
    border:1.5px solid rgba(26,24,18,0.25);
    color:#1a1812;
    padding:0.5rem 0.9rem;
    border-radius:100px;
    cursor:pointer;
    transition:all .2s ease;
  }
  .chip.active{
    background:#1a1812;
    border-color:#1a1812;
    color:var(--acid);
  }

  .ticket-submit{
    align-self:flex-start;
    margin-top:0.6rem;
    font-family:'JetBrains Mono',monospace;
    font-size:0.85rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    background:#1a1812;
    color:var(--acid);
    border:none;
    padding:0.95rem 1.7rem;
    border-radius:2px;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
    transition:transform .2s ease;
  }
  .ticket-submit:hover{transform:translateX(3px);}
  .contact-help,
  .contact-status{
    font-size:0.72rem;
    line-height:1.5;
    color:#6b4c15;
  }
  .contact-status{min-height:1.1rem;}

  .ticket-perf{
    position:relative;
    border-left:2px dashed rgba(26,24,18,0.25);
  }
  .ticket-perf::before,
  .ticket-perf::after{
    content:"";
    position:absolute;
    left:-9px;
    width:18px;height:18px;
    border-radius:50%;
    background:var(--paper);
    border:1px solid rgba(26,24,18,0.15);
  }
  .ticket-perf::before{top:-9px;}
  .ticket-perf::after{bottom:-9px;}

  .ticket-stub{
    position:relative;
    padding:2rem 1.4rem;
    display:flex;
    flex-direction:column;
    gap:0.3rem;
    justify-content:center;
    text-align:center;
  }
  .stub-label{
    font-family:'JetBrains Mono',monospace;
    font-size:0.62rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:#8a5a00;
    margin-top:0.8rem;
  }
  .stub-label:first-child{margin-top:0;}
  .stub-id, .stub-date{
    font-family:'JetBrains Mono',monospace;
    font-size:0.95rem;
    color:#1a1812;
    letter-spacing:0.03em;
  }

  .barcode{
    margin:1.1rem auto 0;
    width:100%;
    height:34px;
    background:repeating-linear-gradient(90deg, #1a1812 0px, #1a1812 2px, transparent 2px, transparent 5px, #1a1812 5px, #1a1812 6px, transparent 6px, transparent 10px);
    opacity:0.85;
  }

  .stamp-mark{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%) rotate(-14deg) scale(0);
    font-family:'JetBrains Mono',monospace;
    font-weight:700;
    font-size:1.3rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--magenta);
    border:3px solid var(--magenta);
    border-radius:8px;
    padding:0.5rem 1rem;
    background:rgba(255,253,246,0.9);
    pointer-events:none;
    opacity:0;
    transition:transform .45s cubic-bezier(.36,1.5,.4,1), opacity .2s ease;
  }
  .stamp-mark.show{
    transform:translate(-50%,-50%) rotate(-14deg) scale(1);
    opacity:1;
  }

  @media (max-width:700px){
    .ticket{grid-template-columns:1fr;}
    .ticket-perf{
      border-left:none;
      border-top:2px dashed rgba(26,24,18,0.25);
    }
    .ticket-perf::before,.ticket-perf::after{
      left:50%;
      top:-9px;
      transform:translateX(-50%);
    }
    .ticket-perf::after{bottom:-9px;top:auto;}
    .ticket-stub{flex-direction:row;flex-wrap:wrap;justify-content:space-between;text-align:left;}
    .barcode{display:none;}
  }

  /* ---------- FOOTER ---------- */
  .site-footer{
    background:var(--bg);
    padding:3.5rem clamp(1.2rem, 6vw, 4rem) 3rem;
  }

  .footer-inner{
    max-width:980px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:2rem;
    flex-wrap:wrap;
  }

  .footer-note{
    position:relative;
    background:var(--paper);
    color:#1a1812;
    padding:1.1rem 1.6rem;
    border-radius:2px;
    transform:rotate(-2.5deg);
    box-shadow:0 10px 22px rgba(0,0,0,0.35);
  }

  .tape{
    position:absolute;
    top:-10px;
    width:44px;height:18px;
    background:rgba(238,234,221,0.55);
    border:1px solid rgba(238,234,221,0.7);
  }
  .tape-l{left:-8px;transform:rotate(-18deg);}
  .tape-r{right:-8px;transform:rotate(14deg);}

  .footer-note-label{
    font-family:'JetBrains Mono',monospace;
    font-size:0.65rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:#8a5a00;
    margin-bottom:0.3rem;
  }

  .footer-note-email a{
    font-family:'JetBrains Mono',monospace;
    font-size:0.95rem;
    color:#1a1812;
    text-decoration:none;
    border-bottom:1.5px solid var(--magenta);
    padding-bottom:1px;
  }
  .footer-note-email a:hover{color:var(--magenta);}

  .footer-credit{
    font-family:'JetBrains Mono',monospace;
    font-size:0.78rem;
    letter-spacing:0.05em;
    color:var(--ink-dim);
    text-align:right;
  }
  .footer-credit .copy{color:var(--acid);}

  .footer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.65rem;}
  .footer-links{display:flex;gap:1rem;margin:0;font:700 .62rem 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;}
  .footer-links a{color:var(--paper);text-decoration:none;border-bottom:1px solid transparent;}
  .footer-links a:hover,.contact-help a:hover{border-color:var(--acid);color:var(--acid);}
  .contact-help a{color:inherit;text-underline-offset:3px;}

  /* ---------- LEGAL PAGES ---------- */
  .legal-page{background:var(--bg);color:var(--paper);}
  .legal-content{width:min(760px,calc(100% - 2.4rem));margin:0 auto;padding:4rem 0 6rem;}
  .legal-content h1{margin:.4rem 0 3rem;font:400 clamp(3.4rem,10vw,6.5rem)/.85 Anton,sans-serif;text-transform:uppercase;}
  .legal-content section{padding:1.5rem 0;border-top:1px solid rgba(255,253,246,.22);}
  .legal-content h2{margin:0 0 .75rem;font:400 clamp(1.5rem,4vw,2.2rem) Anton,sans-serif;text-transform:uppercase;}
  .legal-content p{max-width:68ch;line-height:1.65;color:var(--ink-dim);}
  .legal-content strong{color:var(--paper);}
  .legal-content a{color:var(--acid);text-underline-offset:3px;}
  .legal-back{display:inline-block;margin-bottom:3rem;color:var(--paper);font:700 .72rem 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;}

  @media (max-width:560px){
    .footer-inner{
      flex-direction:column;
      align-items:flex-start;
      gap:2.4rem;
    }
    .footer-meta{align-items:flex-start;}
    .footer-credit{text-align:left;}
    .footer-note{transform:rotate(-1.5deg);}
  }
