  html { scroll-behavior: smooth; }
  body { background:#070707; color:#F4F2EE; font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
  ::selection { background:#E10600; color:#fff; }

  /* film grain */
  .grain::before{
    content:""; position:absolute; inset:0; pointer-events:none; opacity:.08; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMC45JyBudW1PY3RhdmVzPScyJyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPScwIDAgMCAwIDAgIDAgMCAwIDAgMCAgMCAwIDAgMCAwICAwIDAgMCAuNyAwJy8+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgZmlsdGVyPSd1cmwoI24pJy8+PC9zdmc+");
  }
  .grain-fixed{
    position:fixed; inset:0; pointer-events:none; z-index:60; opacity:.06; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nLjg1JyBudW1PY3RhdmVzPScyJyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPScwIDAgMCAwIDAgIDAgMCAwIDAgMCAgMCAwIDAgMCAwICAwIDAgMCAuNyAwJy8+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgZmlsdGVyPSd1cmwoI24pJy8+PC9zdmc+");
  }

  .display { font-family:'Anton',sans-serif; letter-spacing:.005em; line-height:1; text-transform:uppercase; }
  .cond { font-family:'Barlow Condensed', sans-serif; }
  .mono { font-family:'JetBrains Mono', monospace; }

  /* outline text */
  .stroke-text{
    -webkit-text-stroke:1.4px #F4F2EE;
    color:transparent;
  }
  .stroke-text-blood{
    -webkit-text-stroke:1.4px #E10600;
    color:transparent;
  }

  /* diagonal slash divider */
  .slash {
    height:120px; position:relative; overflow:hidden;
  }
  .slash > div {
    position:absolute; inset:-2px; transform-origin:top left;
  }

  /* marquee */
  .marquee { display:flex; overflow:hidden; gap:3rem; }
  .marquee-track { display:flex; gap:3rem; animation:marquee 32s linear infinite; flex-shrink:0; }
  @keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-50%)} }

  /* link underline */
  .ulink { position:relative; }
  .ulink::after{
    content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:#E10600;
    transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.6,.2,.2,1);
  }
  .ulink:hover::after, .ulink:focus-visible::after { transform:scaleX(1); }

  /* card hover */
  .card { transition:transform .4s cubic-bezier(.6,.2,.2,1), background .3s, border-color .3s; }
  .card:hover { transform:translateY(-4px); }
  .card .arrow { transition:transform .4s cubic-bezier(.6,.2,.2,1), opacity .3s; opacity:0; }
  .card:hover .arrow { transform:translate(4px,-4px); opacity:1; }

  /* btn */
  .btn-blood {
    position:relative; overflow:hidden; background:#E10600; color:#fff; isolation:isolate;
    transition:transform .25s ease;
  }
  .btn-blood::before {
    content:""; position:absolute; inset:0; background:#0B0B0B; transform:translateY(101%); transition:transform .35s cubic-bezier(.6,.2,.2,1); z-index:-1;
  }
  .btn-blood:hover::before { transform:translateY(0); }
  .btn-blood:hover { color:#fff; }

  .btn-ghost {
    position:relative; overflow:hidden; border:1px solid #F4F2EE; color:#F4F2EE; isolation:isolate;
    transition:color .3s ease, border-color .3s ease;
  }
  .btn-ghost::before {
    content:""; position:absolute; inset:0; background:#E10600; transform:translateY(101%); transition:transform .35s cubic-bezier(.6,.2,.2,1); z-index:-1;
  }
  .btn-ghost:hover { border-color:#E10600; }
  .btn-ghost:hover::before { transform:translateY(0); }

  /* corner ticks */
  .ticks { position:relative; }
  .ticks::before, .ticks::after,
  .ticks > .tl, .ticks > .tr {
    content:""; position:absolute; width:14px; height:14px; border:1.5px solid #E10600; pointer-events:none;
  }
  .ticks::before { left:-1px; top:-1px; border-right:none; border-bottom:none; }
  .ticks::after  { right:-1px; bottom:-1px; border-left:none; border-top:none; }
  .ticks > .tl { right:-1px; top:-1px; border-left:none; border-bottom:none; }
  .ticks > .tr { left:-1px; bottom:-1px; border-right:none; border-top:none; }

  /* reveal */
  .reveal { opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
  .reveal.in { opacity:1; transform:none; }
  .reveal[data-delay="1"]{ transition-delay:.08s }
  .reveal[data-delay="2"]{ transition-delay:.16s }
  .reveal[data-delay="3"]{ transition-delay:.24s }

  /* placeholder image (sombre + overlay rouge) */
  .ph {
    position:relative; background:#111; overflow:hidden;
  }
  .ph .img {
    position:absolute; inset:0;
    background:
      radial-gradient(120% 80% at 20% 0%, rgba(225,6,0,.18), transparent 55%),
      radial-gradient(80% 60% at 90% 100%, rgba(225,6,0,.10), transparent 55%),
      linear-gradient(160deg, #1a1010 0%, #0a0606 60%, #050202 100%);
    filter:contrast(1.05);
  }
  .ph .label {
    position:absolute; left:10px; bottom:8px; font-family:'JetBrains Mono',monospace; font-size:10px;
    color:#C9C4BB; letter-spacing:.08em; opacity:.7;
  }
  .ph .scan {
    position:absolute; inset:0; background:repeating-linear-gradient(0deg, rgba(255,255,255,.02) 0 1px, transparent 1px 3px); mix-blend-mode:screen;
  }
  .ph .vign { position:absolute; inset:0; background:radial-gradient(120% 80% at 50% 50%, transparent 50%, rgba(0,0,0,.7) 100%); }

  /* nav scroll state */
  .nav-scrolled { background:rgba(7,7,7,.78); backdrop-filter:blur(10px); border-bottom:1px solid #191919; }

  /* hero giant title scale */
  .hero-title { font-size:clamp(64px, 14vw, 240px); }

  /* schedule grid hover */
  .slot { transition:background .2s ease, color .2s ease, border-color .2s ease; }
  .slot:hover { background:#E10600; color:#fff; border-color:#E10600; }
  .slot:hover .slot-meta { color:rgba(255,255,255,.85); }

  /* faux silhouettes for portraits */
  .silhouette-1{background:
    radial-gradient(40% 38% at 50% 32%, #2a1a1a 0 60%, transparent 61%),
    radial-gradient(70% 60% at 50% 95%, #1a0e0e 0 60%, transparent 61%),
    radial-gradient(120% 80% at 20% 0%, rgba(225,6,0,.22), transparent 55%),
    linear-gradient(160deg, #1a1010 0%, #0a0606 60%, #050202 100%); }
  .silhouette-2{background:
    radial-gradient(38% 36% at 52% 30%, #2a1a1a 0 60%, transparent 61%),
    radial-gradient(80% 55% at 50% 100%, #1a0e0e 0 60%, transparent 61%),
    radial-gradient(120% 80% at 80% 0%, rgba(225,6,0,.18), transparent 55%),
    linear-gradient(200deg, #181010 0%, #0a0606 60%, #050202 100%); }
  .silhouette-3{background:
    radial-gradient(42% 38% at 48% 34%, #2a1a1a 0 60%, transparent 61%),
    radial-gradient(75% 60% at 50% 96%, #1a0e0e 0 60%, transparent 61%),
    radial-gradient(120% 80% at 50% 100%, rgba(225,6,0,.18), transparent 55%),
    linear-gradient(180deg, #1a1010 0%, #0a0606 60%, #050202 100%); }
  .silhouette-4{background:
    radial-gradient(40% 38% at 46% 32%, #2a1a1a 0 60%, transparent 61%),
    radial-gradient(80% 60% at 50% 94%, #1a0e0e 0 60%, transparent 61%),
    radial-gradient(120% 80% at 10% 100%, rgba(225,6,0,.22), transparent 55%),
    linear-gradient(140deg, #1a1010 0%, #0a0606 60%, #050202 100%); }

  /* accent line under section labels */
  .kicker{ display:inline-flex; align-items:center; gap:.6rem; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.18em; color:#C9C4BB; text-transform:uppercase; }
  .kicker::before{ content:""; width:28px; height:1px; background:#E10600; display:inline-block; }

  /* dotted bg for partners */
  .dotgrid{
    background-image: radial-gradient(rgba(244,242,238,.06) 1px, transparent 1px);
    background-size: 22px 22px;
  }

  /* heart-rate ekg canvas */
  #ekgCanvas { display:block; width:100%; height:40px; }

  /* mobile menu */
  .menu { display:none; }
  .menu.menu-open { display:block; animation:menuIn .25s ease both; }
  @keyframes menuIn { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:translateY(0)} }

  /* red text always bold for readability */
  .text-blood { font-weight: 700; }

  /* focus visible */
  a:focus-visible, button:focus-visible {
    outline:2px solid #E10600; outline-offset:3px;
  }

  /* activity card clickable affordance */
  .activity-card { user-select:none; }
  .activity-card:focus-visible { outline:2px solid #E10600; outline-offset:2px; }
  .activity-card .arrow { opacity:.35; }
  .activity-card:hover .arrow { opacity:1; transform:translate(4px,-4px); }

  /* ===== MODAL ===== */
  .modal-root { position:fixed; inset:0; z-index:100; display:none; }
  .modal-root.open { display:block; }
  .modal-backdrop {
    position:absolute; inset:0; background:rgba(3,3,3,.78); backdrop-filter:blur(6px);
    opacity:0; transition:opacity .3s ease;
  }
  .modal-root.open .modal-backdrop { opacity:1; }
  .modal-wrap {
    position:absolute; inset:0; display:grid; place-items:center; padding:16px;
  }
  .modal-card {
    position:relative; width:min(960px, 100%); background:#0B0B0B; border:1px solid #2a2a2a;
    transform:translateY(20px) scale(.98); opacity:0; transition:opacity .35s ease, transform .4s cubic-bezier(.2,.7,.2,1);
    max-height:calc(100svh - 32px); overflow:hidden; display:flex; flex-direction:column;
  }
  .modal-root.open .modal-card { opacity:1; transform:none; }
  .modal-card::before,
  .modal-card::after {
    content:""; position:absolute; width:18px; height:18px; border:1.5px solid #E10600; pointer-events:none;
  }
  .modal-card::before { left:-1px; top:-1px; border-right:none; border-bottom:none; }
  .modal-card::after { right:-1px; bottom:-1px; border-left:none; border-top:none; }
  .modal-scroll { overflow:hidden; flex:1; display:flex; flex-direction:column; }
  .modal-close {
    position:absolute; top:14px; right:14px; z-index:5;
    width:42px; height:42px; display:grid; place-items:center;
    background:#0B0B0B; border:1px solid #2a2a2a; color:#F4F2EE;
    transition:background .25s, border-color .25s, color .25s, transform .25s;
  }
  .modal-close:hover { background:#E10600; border-color:#E10600; color:#fff; transform:rotate(90deg); }

  .gear-list { display:grid; gap:10px; }
  .gear-item {
    display:flex; align-items:flex-start; gap:14px; padding:12px 0; border-top:1px solid #1a1a1a;
  }
  .gear-item:first-child { border-top:none; padding-top:0; }
  .gear-ico {
    flex-shrink:0; width:36px; height:36px; display:grid; place-items:center;
    border:1px solid #2a2a2a; background:#070707;
  }
  .gear-req .gear-ico { border-color:#E10600; color:#E10600; }
  .gear-rec .gear-ico { color:#C9C4BB; }
  .gear-text strong { display:block; font-family:'Barlow Condensed',sans-serif; font-weight:600; font-size:16px; letter-spacing:.02em; color:#F4F2EE; text-transform:uppercase; }
  .gear-text span { color:rgba(200,196,187,.78); font-size:13.5px; line-height:1.5; }

  body.modal-locked { overflow:hidden; }

  /* ===== MUSIC WIDGET (NAV) ===== */
  .music-widget {
    display:inline-flex; align-items:center; height:36px;
    background:transparent; border:1px solid transparent;
    padding:0 8px;
    transition:border-color .3s ease, background .3s ease, padding .3s ease;
    position:relative;
    cursor:pointer;
  }
  .music-widget:hover,
  .music-widget.is-open {
    background:#0B0B0B; border-color:#2a2a2a;
  }
  .music-widget.is-playing { border-color:#E10600; }

  /* visualizer bars — ALWAYS VISIBLE, the only persistent element */
  .mw-viz {
    display:flex; align-items:flex-end; gap:2px; height:18px;
    flex-shrink:0; padding:0 2px;
  }
  .mw-viz span {
    display:block; width:2.5px; height:4px; background:#C9C4BB;
    transition:height .12s ease, background .25s ease;
    opacity:.7;
  }
  .music-widget:hover .mw-viz span { opacity:1; background:#F4F2EE; }
  .music-widget.is-playing .mw-viz span { background:#E10600; opacity:1; }

  /* expandable cluster — hidden until hover */
  .mw-cluster {
    display:flex; align-items:center; gap:8px;
    max-width:0; overflow:hidden; opacity:0;
    transition:max-width .4s cubic-bezier(.6,.2,.2,1), opacity .25s ease, margin-left .3s ease;
    margin-left:0;
  }
  .music-widget:hover .mw-cluster {
    max-width:280px; opacity:1; margin-left:10px;
    transition-delay: 0.2s;
  }

  .mw-btn {
    width:26px; height:26px; display:grid; place-items:center;
    background:#E10600; color:#fff; flex-shrink:0;
    transition:background .25s ease, transform .15s ease;
  }
  .mw-btn:hover { background:#C20500; }
  .mw-btn:active { transform:scale(.94); }
  .music-widget.is-playing .mw-btn { background:transparent; border:1px solid #E10600; color:#E10600; }
  .music-widget.is-playing .mw-btn:hover { background:#E10600; color:#fff; }

  /* title */
  .mw-title-wrap {
    min-width:0; max-width:160px; overflow:hidden; position:relative;
    mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  }
  .mw-title {
    font-family:'Barlow Condensed', sans-serif; font-weight:600;
    font-size:12.5px; letter-spacing:.02em; color:#F4F2EE; text-transform:uppercase;
    white-space:nowrap; line-height:1.1;
  }
  .music-widget.is-playing .mw-title-wrap .mw-title-track {
    display:inline-block; animation:mwScroll 16s linear infinite;
    padding-right:40px;
  }
  @keyframes mwScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }

  .mw-meta {
    font-family:'JetBrains Mono',monospace; font-size:8.5px; letter-spacing:.18em;
    color:#C9C4BB; opacity:.7; text-transform:uppercase;
    line-height:1; margin-top:2px; white-space:nowrap;
  }

  .mw-skip {
    width:22px; height:26px; display:grid; place-items:center;
    color:#C9C4BB; transition:color .2s ease; flex-shrink:0;
  }
  .mw-skip:hover { color:#E10600; }

  /* playlist panel — same as before */
  .mw-panel {
    position:absolute; top:100%; left:0; right:0; width:auto; padding-top:8px;
    background:#070707; border:1px solid #2a2a2a;
    transform:translateY(-6px); opacity:0; pointer-events:none;
    transition:opacity .25s ease, transform .25s ease;
    z-index:55;
  }
  .mw-panel::before { content:""; position:absolute; left:-1px; top:-1px; width:14px; height:14px; border-left:1.5px solid #E10600; border-top:1.5px solid #E10600; }
  .mw-panel::after  { content:""; position:absolute; right:-1px; bottom:-1px; width:14px; height:14px; border-right:1.5px solid #E10600; border-bottom:1.5px solid #E10600; }
  .music-widget:hover .mw-panel { opacity:1; transform:translateY(0); pointer-events:auto; transition-delay: 0.6s; }

  .mw-track {
    display:flex; align-items:center; gap:10px; padding:10px 12px;
    border-top:1px solid #1a1a1a; cursor:pointer; transition:background .2s; width:100%; text-align:left;
  }
  .mw-track:first-child { border-top:none; }
  .mw-track:hover { background:#0B0B0B; }
  .mw-track.is-current { background:#0B0B0B; }
  .mw-track-num {
    font-family:'JetBrains Mono',monospace; font-size:10px; color:#C9C4BB; width:18px;
  }
  .mw-track.is-current .mw-track-num { color:#E10600; }
  .mw-track-info { flex:1; min-width:0; }
  .mw-track-name {
    font-family:'Barlow Condensed',sans-serif; font-weight:600; font-size:14px;
    color:#F4F2EE; text-transform:uppercase; letter-spacing:.02em;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .mw-track-artist {
    font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.16em;
    color:#C9C4BB; opacity:.7; text-transform:uppercase;
  }
  .mw-track-dur {
    font-family:'JetBrains Mono',monospace; font-size:10px; color:#C9C4BB; opacity:.6;
  }
  .mw-track.is-current .mw-track-name { color:#E10600; }

  /* mobile: keep just the bars + click to open the panel directly */
  @media (max-width: 1023px) {
    .music-widget { display:none !important; }
  }

  /* ===== ACTIVITY CAROUSEL ===== */
  .act-carousel { position:relative; max-width:100%; }
  .act-track {
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns: 88%;
    gap:1px;
    background:#2a2a2a;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -ms-overflow-style:none;
    scroll-behavior:smooth;
    /* bleed slightly past the right edge so the next card peeks */
    padding-right:1px;
  }
  .act-track::-webkit-scrollbar { display:none; }
  @media (min-width: 640px) {
    .act-track { grid-auto-columns: 52%; }
  }
  @media (min-width: 1024px) {
    .act-track { grid-auto-columns: 34%; }
  }
  .act-slide {
    scroll-snap-align:start;
    scroll-snap-stop:always;
    min-width:0;
  }
  /* nav buttons */
  .act-nav {
    width:52px; height:52px; display:grid; place-items:center;
    background:#0B0B0B; border:1px solid #2a2a2a; color:#F4F2EE;
    transition:background .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
  }
  .act-nav:hover:not(:disabled) { background:#E10600; border-color:#E10600; color:#fff; }
  .act-nav:disabled { opacity:.3; cursor:not-allowed; }
  .act-nav svg { transition:transform .25s ease; }
  .act-nav.prev:hover:not(:disabled) svg { transform:translateX(-2px); }
  .act-nav.next:hover:not(:disabled) svg { transform:translateX(2px); }

  /* progress bar */
  .act-progress {
    position:relative; height:2px; background:#1a1a1a; flex:1;
  }
  .act-progress-fill {
    position:absolute; top:0; left:0; bottom:0; background:#E10600;
    width:33%; transition:width .35s cubic-bezier(.6,.2,.2,1), transform .35s cubic-bezier(.6,.2,.2,1);
  }

  /* dots */
  .act-dot {
    width:10px; height:10px; border:1px solid #2a2a2a; background:transparent;
    transition:background .25s, border-color .25s, transform .25s;
  }
  .act-dot.is-active { background:#E10600; border-color:#E10600; transform:scale(1.15); }
  .act-dot:hover { border-color:#E10600; }

  /* edge fade */
  .act-fade-r {
    position:absolute; right:-1px; top:0; bottom:0; width:60px; pointer-events:none;
    background:linear-gradient(90deg, transparent, #0B0B0B 80%);
    opacity:1; transition:opacity .3s;
  }
  .act-fade-l {
    position:absolute; left:-1px; top:0; bottom:0; width:60px; pointer-events:none;
    background:linear-gradient(-90deg, transparent, #0B0B0B 80%);
    opacity:0; transition:opacity .3s;
  }
  .act-carousel[data-at="start"] .act-fade-l { opacity:0; }
  .act-carousel[data-at="end"]   .act-fade-r { opacity:0; }
  .act-carousel:not([data-at="start"]) .act-fade-l { opacity:1; }
  @media (max-width: 639px) {
    .act-fade-l, .act-fade-r { display:none; }
  }

  /* ===== GALERIE CAROUSEL ===== */
  #galerieCarousel { position: relative; }
  #galerieTrack {
    display: flex;
    gap: 1px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    scroll-behavior: smooth;
  }
  #galerieTrack::-webkit-scrollbar { display: none; }
  .gallery-slide {
    flex: 0 0 25%;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    min-width: 0;
  }
  @media (max-width: 1023px) { .gallery-slide { flex: 0 0 50%; } }
  @media (max-width: 639px)  { .gallery-slide { flex: 0 0 100%; } }
  .gallery-card-info { padding: 14px 16px; background: #0B0B0B; border-top: 1px solid #1a1a1a; }
  .gallery-slide .ph { cursor: zoom-in; }

  /* ===== LIGHTBOX GALERIE (taille originelle) ===== */
  .gallery-lightbox-card { position:relative; max-width:95vw; max-height:95vh; line-height:0; }
  .gallery-lightbox-card img { display:block; max-width:95vw; max-height:95vh; width:auto; height:auto; border:1px solid #2a2a2a; background:#0B0B0B; }

  /* scrollbar inscription modal */
  .inscription-scroll::-webkit-scrollbar { width: 4px; }
  .inscription-scroll::-webkit-scrollbar-track { background: #111111; }
  .inscription-scroll::-webkit-scrollbar-thumb { background: #E10600; }
  .inscription-scroll::-webkit-scrollbar-thumb:hover { background: #C20500; }
  .inscription-scroll { scrollbar-width: thin; scrollbar-color: #E10600 #111111; }

  /* ascenseur natif masqué : certains environnements (Linux/Chrome) peignent la piste native en
     opaque quel que soit le CSS demandé. Remplacé par un ascenseur custom (voir custom-scrollbar.js). */
  html, body { scrollbar-width: none; }
  html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; }

  /* ascenseur custom : piste réellement transparente, curseur rouge, interactif (drag + clic-piste) */
  #customScrollbar { position: fixed; top: 0; right: 0; width: 14px; height: 100%; z-index: 90; cursor: pointer; }
  #customScrollbar .thumb { position: absolute; left: 3px; width: 8px; border-radius: 6px; background: #E10600; cursor: grab; transition: background .15s ease; }
  #customScrollbar .thumb:hover { background: #C20500; }
  #customScrollbar.dragging .thumb { background: #C20500; cursor: grabbing; }
  body.modal-locked #customScrollbar { display: none; }

  /* selected pricing card */
  .reco {
    background: linear-gradient(180deg, #1a0707 0%, #0B0B0B 100%);
    border-color:#E10600;
  }

  /* ── Modal article ── */
  #articleModal { position:fixed;inset:0;z-index:900;display:none;align-items:center;justify-content:center;padding:2vh 1.5rem;background:rgba(0,0,0,.85);backdrop-filter:blur(4px); }
  #articleModal.open { display:flex; }
  .art-modal { position:relative;width:min(1000px,95vw);max-height:92vh;background:#0f0f0f;border:1px solid #2a2a2a;overflow:hidden; }
  .art-close { position:absolute;top:1rem;right:1rem;z-index:10;background:rgba(0,0,0,.5);border:none;color:#f0ece4;font-size:1.3rem;cursor:pointer;opacity:.6;transition:opacity .2s;line-height:1;padding:.2rem .4rem; }
  .art-close:hover { opacity:1; }
  .art-body { overflow-y:auto;max-height:92vh;padding:2rem 2.2rem; }
  .art-img { float:left;margin:0 1.5rem 1rem 0;max-width:50%; }
  .art-img img { width:100%;height:auto;display:block;cursor:zoom-in;transition:opacity .2s; }
  .art-img img:hover { opacity:.85; }

  /* ── Lightbox photo ── */
  #photoLightbox { position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.96);cursor:zoom-out; }
  #photoLightbox.open { display:flex; }
  #photoLightbox img { max-width:90vw;max-height:90vh;object-fit:contain;cursor:default; }
  #photoLightbox .lb-close { position:absolute;top:1.25rem;right:1.25rem;background:none;border:1px solid rgba(244,242,238,.3);color:#f4f2ee;font-size:1.1rem;line-height:1;padding:.3rem .55rem;cursor:pointer;transition:border-color .2s; }
  #photoLightbox .lb-close:hover { border-color:#E10600; }
  #artModalDate  { font:400 11px/1 'JetBrains Mono',monospace;letter-spacing:.18em;text-transform:uppercase;color:rgba(240,236,228,.5);margin-bottom:.75rem; }
  #artModalTitle { font-family:'Anton',sans-serif;font-size:clamp(1.4rem,3vw,2.2rem);line-height:1.05;margin-bottom:1.25rem;color:#f4f2ee; }
  #artModalBody  { color:rgba(240,236,228,.82);line-height:1.85;font-size:.9rem;white-space:pre-wrap; }
  .art-stats { clear:both;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #2a2a2a;display:flex;align-items:center;gap:1.5rem; }
  .art-stat  { font:400 11px/1 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(240,236,228,.4);display:flex;align-items:center;gap:.45rem; }
  #artLikeBtn { display:flex;align-items:center;gap:.45rem;background:none;border:1px solid #2a2a2a;color:rgba(240,236,228,.5);padding:.35rem .75rem;cursor:pointer;font:400 11px/1 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;transition:color .2s,border-color .2s; }

  /* ── Calendrier événements ── */
  .cal-day { background:#0B0B0B; min-height:88px; padding:.4rem; display:flex; flex-direction:column; gap:3px; }
  .cal-day.cal-out { color:rgba(201,196,187,.25); }
  .cal-day .cal-num { font:600 12px/1 'JetBrains Mono',monospace; color:rgba(240,236,228,.7); }
  .cal-day.cal-vacances { background:#15101C; }
  .cal-day.cal-ferie { border:2px solid rgba(225,6,0,.55); }
  .cal-day.cal-ferie .cal-num { color:#E10600; font-weight:700; }
  .cal-evt { padding:2px 5px; cursor:pointer; line-height:1.25; transition:opacity .15s; }
  .cal-evt:hover { opacity:.8; }
  .cal-evt-type { font:700 8px/1 system-ui,sans-serif; letter-spacing:.06em; text-transform:uppercase; opacity:.85; }
  .cal-evt-title { font:700 9px/1.15 system-ui,sans-serif; letter-spacing:.02em; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .cal-evt-time { font:700 10.5px/1.25 'JetBrains Mono',monospace; opacity:1; margin-top:2px; letter-spacing:.01em; }
  .cal-nav-btn { background:none; border:1px solid #2a2a2a; color:#F4F2EE; width:36px; height:36px; display:grid; place-items:center; cursor:pointer; transition:background .2s,border-color .2s; }
  .cal-nav-btn:hover { background:#E10600; border-color:#E10600; }

  /* ── Popup annonce ── */
  #announcementPopup { position:fixed;inset:0;z-index:950;display:none;align-items:center;justify-content:center;padding:2vh 1.5rem;background:rgba(0,0,0,.9);backdrop-filter:blur(6px); }
  #announcementPopup.open { display:flex; }
  #announcementPopup .popup-box { position:relative;width:min(520px,95vw);max-height:92vh;background:#111;border:1px solid #E10600;overflow:hidden;display:flex;flex-direction:column; }
  #announcementPopup .popup-header { background:#E10600;padding:.55rem 1.2rem;display:flex;justify-content:space-between;align-items:center;flex-shrink:0; }
  #announcementPopup .popup-kicker { font:700 10px/1 'JetBrains Mono',monospace;letter-spacing:.22em;text-transform:uppercase;color:#fff; }
  #announcementPopup .popup-x { background:none;border:none;color:#fff;cursor:pointer;font-size:1.1rem;line-height:1;padding:.1rem .2rem;opacity:.85;transition:opacity .15s; }
  #announcementPopup .popup-x:hover { opacity:1; }
  #announcementPopup .popup-body { overflow-y:auto;padding:1.5rem 1.5rem 1.75rem;flex:1; }
  #announcementPopup .popup-body img { width:100%;height:auto;display:block;margin-bottom:1.25rem; }
  #announcementPopup .popup-date { font:400 11px/1 'JetBrains Mono',monospace;letter-spacing:.18em;text-transform:uppercase;color:rgba(240,236,228,.45);margin-bottom:.7rem; }
  #announcementPopup .popup-title { font-family:'Anton',sans-serif;font-size:clamp(1.3rem,3vw,1.9rem);line-height:1.05;margin-bottom:1.1rem;color:#f4f2ee; }
  #announcementPopup .popup-text { color:rgba(240,236,228,.82);line-height:1.85;font-size:.9rem;white-space:pre-wrap; }
  #announcementPopup .popup-location { margin-top:1rem;font:400 11px/1 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(240,236,228,.35); }
  #announcementPopup .popup-footer { border-top:1px solid #1c1c1c;padding:.85rem 1.2rem;display:flex;justify-content:flex-end;flex-shrink:0; }
  #announcementPopup .popup-close-btn { display:inline-flex;align-items:center;padding:.45rem 1.1rem;border:1px solid #2e2e2e;background:transparent;color:rgba(240,236,228,.55);font:600 11px/1 system-ui;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,color .2s; }
  #announcementPopup .popup-close-btn:hover { border-color:#E10600;color:#f4f2ee; }

  /* ── Modal événement ── */
  #eventModal { position:fixed;inset:0;z-index:900;display:none;align-items:center;justify-content:center;padding:2vh 1.5rem;background:rgba(0,0,0,.85);backdrop-filter:blur(4px); }
  #eventModal.open { display:flex; }
  #evModalImgCol img { width:100%;height:auto;display:block; }
  #evModalDate  { font:400 11px/1 'JetBrains Mono',monospace;letter-spacing:.18em;text-transform:uppercase;color:rgba(240,236,228,.5);margin-bottom:.75rem; }
  #evModalTitle { font-family:'Anton',sans-serif;font-size:clamp(1.4rem,3vw,2.2rem);line-height:1.05;margin-bottom:1.25rem;color:#f4f2ee; }
  #evModalBody  { color:rgba(240,236,228,.82);line-height:1.85;font-size:.9rem;white-space:pre-wrap; }
  #evModalLocation { clear:both;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #2a2a2a;font:400 11px/1 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(240,236,228,.4); }

  /* ── Cartes actualités – stats ── */
  .card-stat { font:400 11px/1 'JetBrains Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:rgba(240,236,228,.4);display:flex;align-items:center;gap:.4rem; }
  .card-like { display:flex;align-items:center;gap:.4rem;background:none;border:none;color:rgba(240,236,228,.4);cursor:pointer;font:400 11px/1 'JetBrains Mono',monospace;letter-spacing:.13em;text-transform:uppercase;padding:0;transition:color .2s; }
  .card-like svg { transition:fill .2s;fill:none; }

  /* ── Bureau – accordéon ── */
  .bureau-extra { max-height:0; overflow:hidden; transition:max-height .4s ease; }
  .bureau-extra.open { max-height:1200px; }
  .bureau-extra ul, .bureau-extra li { text-align:left; }
  .bureau-extra .mono { font-weight:700; }
  .bureau-toggle { margin-top:.875rem; display:inline-flex; align-items:center; gap:6px; padding:5px 14px; border:1px solid rgba(244,242,238,.2); background:transparent; color:rgba(244,242,238,.55); font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; cursor:pointer; transition:border-color .25s,color .25s; }
  .bureau-toggle:hover { border-color:#E10600; color:#F4F2EE; }
  .bureau-toggle .ti { transition:transform .35s ease; display:inline-block; }
  .bureau-toggle.open .ti { transform:rotate(180deg); }
