:root{
    --papier: #E8E2D2;
    --papier-clair: #F1ECE0;
    --encre: #1B1E1A;
    --bronze: #A0763C;
    --rouge-atelier: #7C2E24;
    --vert-atelier: #3C4736;
    --gris-acier: #B7B2A2;
    --blanc-craie: #FAF8F2;
    --max: 1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--papier);
    color:var(--encre);
    font-family:'Work Sans', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 clamp(20px,4vw,56px);}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:2px;
    text-transform:uppercase;
    color:var(--bronze);
  }
  .display{
    font-family:'Big Shoulders Display', sans-serif;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:0.5px;
    line-height:0.95;
  }
  .hairline{border-top:1px solid var(--gris-acier);}

  /* Header */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(232,226,210,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--gris-acier);
  }
  .header-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 0;
  }
  .logo{
    font-family:'Big Shoulders Display', sans-serif;
    font-weight:800;
    font-size:22px;
    letter-spacing:1px;
    text-transform:uppercase;
  }
  .logo span{color:var(--bronze);}
  nav ul{list-style:none; display:flex; gap:32px;}
  nav a{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:1.5px;
    text-transform:uppercase;
  }
  nav a:hover{color:var(--bronze);}
  .nav-toggle{display:none;}

  /* Hero */
  .hero{
    padding:clamp(32px,6vw,72px) 0 clamp(56px,8vw,96px);
  }
  .hero-grid{
    display:grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap:clamp(28px,4vw,56px);
    align-items:start;
  }
  .hero-visual img{
    width:100%;
    height:auto;
    display:block;
    border:1px solid var(--encre);
  }
  .hero-top-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    margin-bottom:clamp(28px,4vw,48px);
    flex-wrap:wrap;
  }
  .logo-small{
    font-size:clamp(44px,6vw,84px);
    letter-spacing:0.5px;
    color:var(--encre);
    -webkit-text-stroke:1.4px var(--bronze);
    paint-order:stroke fill;
    line-height:0.95;
  }
  .hero-date{
    font-size:clamp(38px, 5vw, 68px);
    color:var(--bronze);
    -webkit-text-stroke:1.6px var(--encre);
    paint-order:stroke fill;
    line-height:0.95;
    margin-bottom:14px;
  }
  .hero-loc{
    font-family:'IBM Plex Mono', monospace;
    font-size:clamp(13px,1.6vw,16px);
    letter-spacing:1px;
    text-transform:uppercase;
    color:var(--bronze);
    margin-bottom:26px;
  }
  .hero .sub{
    font-size:clamp(16px,2vw,19px);
    max-width:46ch;
    color:var(--encre);
    margin-bottom:28px;
  }
  .cta-row{display:flex; gap:16px; flex-wrap:wrap;}
  .btn{
    display:inline-block;
    font-family:'IBM Plex Mono', monospace;
    font-size:13px;
    letter-spacing:1px;
    text-transform:uppercase;
    padding:14px 26px;
    border:1px solid var(--encre);
  }
  .btn-solid{background:var(--encre); color:var(--blanc-craie);}
  .btn-solid:hover{background:var(--vert-atelier); border-color:var(--vert-atelier);}
  .btn-outline{border-color:var(--encre);}
  .btn-outline:hover{background:var(--encre); color:var(--blanc-craie);}

  /* Countdown */
  .countdown-box{
    border:1px solid var(--encre);
    background:var(--papier-clair);
    padding:14px 16px;
    max-width:420px;
    width:100%;
    margin-top:8px;
  }
  .countdown-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:9px;
    letter-spacing:1.5px;
    text-transform:uppercase;
    color:var(--bronze);
    margin-bottom:8px;
    text-align:center;
  }
  .countdown{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:var(--gris-acier);
    border:1px solid var(--gris-acier);
  }
  .countdown div{
    background:var(--papier-clair);
    text-align:center;
    padding:8px 4px;
  }
  .countdown .num{
    font-family:'IBM Plex Mono', monospace;
    font-size:clamp(17px,2.2vw,22px);
    font-weight:500;
  }
  .countdown .lbl{
    font-family:'IBM Plex Mono', monospace;
    font-size:9px;
    letter-spacing:1px;
    text-transform:uppercase;
    color:var(--bronze);
    margin-top:4px;
  }

  /* Section generic */
  section{padding:clamp(48px,7vw,88px) 0;}
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    gap:24px; margin-bottom:36px; flex-wrap:wrap;
  }
  .section-head h2{
    font-size:clamp(28px,4vw,40px);
    margin-top:8px;
  }
  .lede{max-width:62ch; font-size:17px;}

  /* Manifesto */
  .manifesto{
    display:grid; grid-template-columns: 0.9fr 1.1fr; gap:56px; align-items:start;
  }
  .manifesto .tag-list{
    display:flex; flex-direction:column; gap:10px;
    font-family:'IBM Plex Mono', monospace;
    font-size:13px; letter-spacing:1px; text-transform:uppercase;
    color:var(--vert-atelier);
    border-left:1px solid var(--gris-acier);
    padding-left:18px;
  }

  /* Spec sheet */
  .specs{
    display:grid; grid-template-columns:repeat(4,1fr);
    border:1px solid var(--gris-acier);
  }
  .spec{
    padding:26px 22px;
    border-right:1px solid var(--gris-acier);
  }
  .spec:last-child{border-right:none;}
  .spec .eyebrow{margin-bottom:10px;}
  .spec h3{
    font-family:'Big Shoulders Display', sans-serif;
    font-weight:800;
    font-size:22px;
    text-transform:uppercase;
    margin-bottom:6px;
  }
  .spec p{font-size:14px; color:#4A4A42;}

  /* Panels (sponsors / exposants teaser) */
  .panels{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--gris-acier); border:1px solid var(--gris-acier);}
  .panel{background:var(--papier-clair); padding:clamp(28px,4vw,44px);}
  .panel h3{font-size:clamp(22px,3vw,28px); margin:10px 0 14px;}
  .panel p{max-width:48ch; margin-bottom:22px; font-size:15px;}

  /* Footer */
  footer{
    background:var(--encre); color:var(--blanc-craie);
    padding:56px 0 28px;
  }
  .foot-grid{
    display:grid; grid-template-columns:1.4fr 1fr 1fr;
    gap:40px; margin-bottom:40px;
  }
  footer .logo{color:var(--blanc-craie);}
  footer .logo span{color:var(--bronze);}
  footer h4{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
    color:var(--bronze); margin-bottom:14px;
  }
  footer ul{list-style:none;}
  footer li{margin-bottom:8px; font-size:14px;}
  .foot-bottom{
    border-top:1px solid #3A3D36;
    padding-top:20px;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px; letter-spacing:1px; color:var(--gris-acier);
  }

  @media (max-width:860px){
    nav ul{display:none;}
    .hero-grid{grid-template-columns:1fr;}
    .hero-visual{max-width:340px; margin:0 auto;}
    .manifesto{grid-template-columns:1fr;}
    .specs{grid-template-columns:1fr 1fr;}
    .spec{border-bottom:1px solid var(--gris-acier);}
    .panels{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr;}
  }