:root{
  --ink:#171313;
  --paper:#fff5df;
  --cream:#ffe7b3;
  --sun:#ffd23f;
  --coral:#ff5a3d;
  --blue:#22c7c8;
  --green:#087a61;
  --purple:#5b2bbf;
  --line:4px solid var(--ink);
  --shadow:9px 9px 0 var(--ink);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at 20% 10%, rgba(255,210,63,.35) 0 18%, transparent 19%),
    linear-gradient(90deg, rgba(23,19,19,.04) 1px, transparent 1px),
    linear-gradient(var(--paper), var(--paper));
  background-size:auto, 22px 22px, auto;
  font-family:Arial, Helvetica, sans-serif;
  line-height:1.55;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.18;
  background-image:repeating-radial-gradient(circle at 0 0, #171313 0 1px, transparent 1px 5px);
  mix-blend-mode:multiply;
}
a{color:inherit;text-decoration:none}
p{margin:0 0 1rem;max-width:72ch}.small{font-size:.92rem}.upper{text-transform:uppercase;letter-spacing:.08em}.muted{opacity:.78}
.poster-head{
  position:sticky;top:0;z-index:10;
  display:grid;grid-template-columns: 1.2fr 2fr;align-items:stretch;
  border-bottom:var(--line);background:var(--paper);
}
.brand-stamp{
  display:flex;gap:.85rem;align-items:center;padding:.7rem 1rem;border-right:var(--line);background:var(--sun);font-weight:900;text-transform:uppercase;letter-spacing:.04em;
}
.brand-stamp img{width:54px;height:54px;display:block}.brand-stamp small{display:block;font-size:.75rem;font-weight:800;margin-top:.1rem;letter-spacing:.08em}
.strip-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:0;padding:.6rem 1rem;background:var(--paper)}
.strip-nav a{
  display:inline-block;padding:.42rem .72rem;margin:.12rem;border-left:3px solid var(--ink);font-weight:900;text-transform:uppercase;font-size:.83rem;letter-spacing:.05em;transform:skew(-8deg);
}
.strip-nav a span{display:inline-block;transform:skew(8deg)}
.strip-nav a:hover,.strip-nav a.active{background:var(--coral);color:var(--paper)}
.poster-shell{width:min(1180px,92vw);margin:0 auto}.home-poster{min-height:calc(100vh - 78px);display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.05fr);gap:2.4rem;align-items:center;padding:3.5rem 0}
.stage-title{position:relative}.stage-title::before{content:"";position:absolute;left:-2rem;top:-1.2rem;width:9rem;height:9rem;background:var(--blue);clip-path:polygon(0 0,100% 14%,88% 100%,6% 88%);z-index:-1}.stage-title .eyebrow{font-weight:900;background:var(--ink);color:var(--paper);display:inline-block;padding:.25rem .55rem;transform:rotate(-2deg)}
h1{font-family:Impact, 'Arial Black', sans-serif;font-weight:900;line-height:.88;text-transform:uppercase;letter-spacing:.01em;margin:.8rem 0 1.4rem;font-size:clamp(4rem,13vw,9.4rem)}
.title-line{display:block}.title-line:nth-child(2){color:var(--coral);text-shadow:5px 5px 0 var(--ink)}.title-line:nth-child(3){color:var(--blue);text-shadow:5px 5px 0 var(--ink)}
.lead{font-size:1.2rem;font-weight:750}.lead strong{background:linear-gradient(transparent 50%, var(--sun) 50%)}
.poster-note{border:var(--line);box-shadow:var(--shadow);background:var(--cream);padding:1.4rem;transform:rotate(.8deg);position:relative}.poster-note::after{content:"Le Havre";position:absolute;right:-1.1rem;top:1rem;background:var(--green);color:white;padding:.35rem .6rem;font-weight:900;text-transform:uppercase;transform:rotate(90deg);transform-origin:right top}
.note-title{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(2rem,5vw,4.4rem);line-height:.9;text-transform:uppercase;margin:0 0 1rem}.note-grid{display:grid;grid-template-columns:1fr 1fr;border-top:var(--line);border-left:var(--line);margin:1.2rem 0}.note-grid div{padding:.75rem;border-right:var(--line);border-bottom:var(--line);background:var(--paper)}.note-grid b{display:block;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em;margin-bottom:.15rem}
.ray-link,.text-link{display:inline-block;font-weight:900;text-transform:uppercase}.ray-link{border:var(--line);padding:.7rem .9rem;background:var(--coral);color:white;box-shadow:5px 5px 0 var(--ink);clip-path:polygon(0 0,95% 0,100% 50%,95% 100%,0 100%)}.ray-link.alt{background:var(--blue);color:var(--ink)}.text-link{border-bottom:5px solid var(--coral)}
.marquee{border-top:var(--line);border-bottom:var(--line);background:var(--ink);color:var(--paper);overflow:hidden;white-space:nowrap;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.marquee div{display:inline-block;padding:.75rem 0;animation:mar 22s linear infinite}.marquee span{padding:0 2rem;color:var(--sun)}@keyframes mar{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.page-grid{display:grid;grid-template-columns:270px 1fr;gap:2rem;padding:3rem 0}.side-rhythm{position:sticky;top:92px;align-self:start;border:var(--line);background:var(--sun);padding:1rem;box-shadow:7px 7px 0 var(--ink);transform:rotate(-.7deg)}.side-rhythm .big{font-family:Impact,'Arial Black';font-size:3rem;line-height:.85;text-transform:uppercase}.side-rhythm p{font-weight:800}.side-rhythm a{display:block;border-top:3px solid var(--ink);padding:.55rem 0;font-weight:900;text-transform:uppercase}
.content-stack{display:grid;gap:1.4rem}.wide-panel{border:var(--line);background:var(--paper);box-shadow:7px 7px 0 var(--ink);padding:clamp(1.2rem,3vw,2.2rem);position:relative}.wide-panel.coral{background:var(--coral);color:white}.wide-panel.blue{background:var(--blue)}.wide-panel.green{background:var(--green);color:white}.wide-panel.sun{background:var(--sun)}.wide-panel.split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.wide-panel h2,.wide-panel h3{font-family:Impact,'Arial Black';text-transform:uppercase;line-height:.95;margin:.1rem 0 .9rem}.wide-panel h2{font-size:clamp(2.5rem,7vw,6.8rem)}.wide-panel h3{font-size:clamp(1.8rem,4vw,3.5rem)}
.action-list{list-style:none;margin:1rem 0 0;padding:0;border-top:var(--line)}.action-list li{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding:1rem 0;border-bottom:var(--line)}.action-list b{font-family:Impact,'Arial Black';font-size:1.5rem;color:var(--coral)}
.zigzag{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:var(--line);box-shadow:7px 7px 0 var(--ink)}.zigzag article{min-height:210px;padding:1.2rem;border-right:var(--line);background:var(--cream)}.zigzag article:nth-child(2){background:var(--blue);transform:translateY(18px)}.zigzag article:nth-child(3){background:var(--sun);border-right:0}.zigzag h3{font-family:Impact,'Arial Black';font-size:2.2rem;line-height:.9;text-transform:uppercase;margin:0 0 1rem}
.paper-lines{background:repeating-linear-gradient(var(--paper) 0 38px, rgba(23,19,19,.12) 39px 40px);border:var(--line);padding:1.3rem;box-shadow:7px 7px 0 var(--ink)}
.contact-board{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.address-tape{background:var(--ink);color:white;padding:1rem;border:var(--line);box-shadow:7px 7px 0 var(--coral)}.address-tape a{color:var(--sun);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px}.legal-list{margin:0;padding:0;list-style:none}.legal-list li{border-bottom:3px solid var(--ink);padding:.7rem 0}.legal-list b{display:block;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em}
.site-foot{margin-top:3rem;border-top:var(--line);background:var(--ink);color:var(--paper)}.foot-grid{width:min(1180px,92vw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;padding:1.5rem 0}.site-foot img{width:72px;background:var(--paper)}.site-foot a{text-decoration:underline;text-decoration-color:var(--sun);text-decoration-thickness:3px;text-underline-offset:4px}.foot-title{font-weight:900;text-transform:uppercase;color:var(--sun)}
@media(max-width:850px){.poster-head{grid-template-columns:1fr}.brand-stamp{border-right:0;border-bottom:var(--line)}.strip-nav{justify-content:flex-start}.home-poster,.page-grid,.wide-panel.split,.contact-board{grid-template-columns:1fr}.side-rhythm{position:static}.zigzag{grid-template-columns:1fr}.zigzag article{border-right:0;border-bottom:var(--line)}.zigzag article:nth-child(2){transform:none}.foot-grid{grid-template-columns:1fr}h1{font-size:4.3rem}.poster-note::after{display:none}}
@media(prefers-reduced-motion:reduce){.marquee div{animation:none}}


/* Photographies et contenus renforcés */
.visual-band{padding:2.5rem 0;display:grid;grid-template-columns:1.15fr .85fr;gap:1.4rem;align-items:stretch}
.featured-photo,.photo-card{margin:0;border:var(--line);box-shadow:7px 7px 0 var(--ink);background:var(--paper);overflow:hidden}
.featured-photo img,.photo-card img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(1.04) contrast(1.02)}
.featured-photo{min-height:360px}.featured-photo img{min-height:360px}
.visual-copy{border:var(--line);box-shadow:7px 7px 0 var(--ink);background:var(--sun);padding:clamp(1.1rem,3vw,2rem);display:flex;flex-direction:column;justify-content:center}
.visual-copy h2{font-family:Impact,'Arial Black';font-size:clamp(2.2rem,5vw,4.8rem);line-height:.92;text-transform:uppercase;margin:.1rem 0 1rem}.visual-copy p{font-weight:750}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.photo-card{min-height:230px;position:relative}.photo-card img{height:230px}.photo-card figcaption{position:absolute;left:.65rem;right:.65rem;bottom:.65rem;background:rgba(23,19,19,.86);color:var(--paper);font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;padding:.45rem .55rem}.photo-card.tall{grid-row:span 2;min-height:476px}.photo-card.tall img{height:476px}.proof-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.proof-item{border:3px solid var(--ink);background:rgba(255,255,255,.55);padding:1rem}.proof-item b{display:block;font-family:Impact,'Arial Black';font-size:1.7rem;text-transform:uppercase;line-height:.95;margin-bottom:.45rem}.wide-panel .inline-note{font-weight:800;background:rgba(255,210,63,.45);border-left:6px solid var(--ink);padding:.75rem 1rem;margin-top:.8rem}
@media(max-width:850px){.visual-band,.photo-grid,.proof-grid{grid-template-columns:1fr}.featured-photo,.featured-photo img,.photo-card,.photo-card img,.photo-card.tall,.photo-card.tall img{min-height:auto;height:auto}.photo-card figcaption{position:static;background:var(--ink)}}
