
/*
  Kaplawsé — deep visual redesign
  Direction: affiche créole contemporaine / dossier associatif officiel.
  Logo kept unchanged: assets/img/logo-kaplawse.png
*/

:root{
  --ink:#10100d;
  --ink-2:#232018;
  --paper:#f4ead8;
  --paper-2:#fffaf0;
  --muted:#776d5c;
  --green:#006b3a;
  --red:#d21d2b;
  --gold:#d49a00;
  --blue:#047a88;
  --line:rgba(16,16,13,.22);
  --shadow: 10px 10px 0 var(--ink);
  --shadow-soft: 0 18px 50px rgba(16,16,13,.16);
  --max:1180px;
  --nav:88px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{
  margin:0;
  color:var(--ink);
  background:
    linear-gradient(90deg, rgba(16,16,13,.055) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(rgba(16,16,13,.045) 1px, transparent 1px) 0 0 / 32px 32px,
    radial-gradient(circle at 10% 7%, rgba(212,154,0,.12), transparent 28%),
    radial-gradient(circle at 93% 22%, rgba(0,107,58,.12), transparent 28%),
    var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:16px;
  line-height:1.55;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:999;
  opacity:.22;
  background-image:
    repeating-radial-gradient(circle at 0 0, rgba(0,0,0,.06) 0 1px, transparent 1px 5px);
  mix-blend-mode:multiply;
}

a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:4px solid var(--gold);outline-offset:3px;
}
img{max-width:100%;height:auto;display:block}

/* ===== Top identity bar ===== */
.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.7rem 1rem;z-index:1000}
.skip-link:focus{left:1rem;top:1rem}
.site-frame{min-height:100vh}
.topbar{
  position:sticky;top:0;z-index:100;
  display:grid;
  grid-template-columns:minmax(210px,360px) 1fr auto;
  align-items:center;
  min-height:var(--nav);
  border-bottom:3px solid var(--ink);
  background:rgba(244,234,216,.92);
  backdrop-filter:blur(14px);
}
.logo-slot{
  height:var(--nav);
  display:flex;align-items:center;
  padding:12px 26px 12px clamp(18px,3vw,42px);
  border-right:3px solid var(--ink);
  background:var(--paper-2);
}
.logo-slot img{max-height:66px;object-fit:contain;object-position:left center}
.nav-strip{
  height:var(--nav);
  display:flex;
  align-items:stretch;
  overflow-x:auto;
  scrollbar-width:none;
}
.nav-strip::-webkit-scrollbar{display:none}
.nav-strip a{
  display:flex;align-items:center;
  padding:0 clamp(14px,2vw,26px);
  border-right:2px solid var(--line);
  font-family:"Arial Narrow", "Roboto Condensed", Impact, sans-serif;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.82rem;
  transform:skewX(-7deg);
  background:rgba(255,250,240,.4);
  transition:background .2s ease,color .2s ease;
  white-space:nowrap;
}
.nav-strip a span{transform:skewX(7deg)}
.nav-strip a:hover,
.nav-strip a[aria-current="page"]{background:var(--ink);color:var(--paper)}
.nav-strip a:nth-child(2):hover,.nav-strip a:nth-child(2)[aria-current="page"]{background:var(--green)}
.nav-strip a:nth-child(3):hover,.nav-strip a:nth-child(3)[aria-current="page"]{background:var(--red)}
.nav-strip a:nth-child(4):hover,.nav-strip a:nth-child(4)[aria-current="page"]{background:var(--gold);color:var(--ink)}
.nav-strip a:nth-child(5):hover,.nav-strip a:nth-child(5)[aria-current="page"]{background:var(--blue)}
.top-cta{
  height:var(--nav);
  display:flex;align-items:center;justify-content:center;
  padding:0 clamp(16px,2vw,30px);
  border-left:3px solid var(--ink);
  background:var(--red);
  color:#fff;
  font-family:"Arial Narrow", Impact, sans-serif;
  letter-spacing:.08em;text-transform:uppercase;font-weight:900;
  box-shadow:inset 0 -8px 0 rgba(0,0,0,.12);
}
.menu-toggle{display:none}

/* ===== Global typographic system ===== */
.container{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
.section{padding:clamp(70px,8vw,125px) 0;position:relative}
.section-tight{padding:clamp(44px,5vw,75px) 0}
.kicker{
  display:inline-flex;align-items:center;gap:.65rem;
  font-family:"Arial Narrow", Impact, sans-serif;
  text-transform:uppercase;letter-spacing:.12em;font-weight:900;
  font-size:.78rem;color:var(--ink);
  border:2px solid var(--ink);padding:.45rem .7rem;
  background:var(--paper-2);
  box-shadow:4px 4px 0 var(--ink);
}
.kicker::before{content:"";width:1rem;height:1rem;background:var(--red);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.display{
  margin:0;
  font-family:Georgia, "Times New Roman", serif;
  font-size:clamp(3.7rem,11vw,9.8rem);
  line-height:.78;
  letter-spacing:-.085em;
  text-transform:uppercase;
  max-width:980px;
}
.display .mark{color:var(--red);font-style:italic;text-transform:none;letter-spacing:-.09em}
.display-small{
  margin:.4rem 0 0;
  font-family:Georgia, "Times New Roman", serif;
  font-size:clamp(2.35rem,6vw,5.2rem);
  line-height:.86;
  letter-spacing:-.07em;
  text-transform:uppercase;
}
.lead{font-size:clamp(1.08rem,2vw,1.35rem);line-height:1.75;color:var(--ink-2);max-width:760px}
.muted{color:var(--muted)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.02em}

/* ===== Buttons ===== */
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.btn{
  --bg:var(--ink);--fg:var(--paper);
  display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  min-height:52px;padding:.9rem 1.1rem;
  border:3px solid var(--ink);
  background:var(--bg);color:var(--fg);
  font-family:"Arial Narrow", Impact, sans-serif;
  font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;
  box-shadow:6px 6px 0 var(--ink);
  transform:translate(0,0);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.btn:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--ink)}
.btn.red{--bg:var(--red);--fg:#fff}
.btn.green{--bg:var(--green);--fg:#fff}
.btn.gold{--bg:var(--gold);--fg:var(--ink)}
.btn.paper{--bg:var(--paper-2);--fg:var(--ink)}
.btn.flat{box-shadow:none}

/* ===== Distinct visual elements ===== */
.poster-hero{
  position:relative;isolation:isolate;
  min-height:calc(100vh - var(--nav));
  padding:clamp(32px,5vw,70px) 0 clamp(70px,8vw,120px);
  border-bottom:3px solid var(--ink);
  overflow:hidden;
}
.poster-hero::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background:
    linear-gradient(120deg, transparent 0 46%, rgba(210,29,43,.92) 46% 55%, transparent 55%),
    linear-gradient(102deg, transparent 0 62%, rgba(0,107,58,.88) 62% 67%, transparent 67%),
    linear-gradient(78deg, rgba(212,154,0,.18) 0 20%, transparent 20% 100%);
}
.poster-hero::after{
  content:"KAPLAWSÉ";
  position:absolute;right:-.18em;bottom:-.22em;z-index:-1;
  font-family:Georgia,"Times New Roman",serif;font-weight:900;
  font-size:clamp(5rem,19vw,19rem);line-height:.75;
  letter-spacing:-.09em;color:rgba(16,16,13,.055);
  text-transform:uppercase;
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);
  gap:clamp(28px,5vw,70px);
  align-items:end;
}
.hero-copy{padding-top:clamp(28px,5vw,70px)}
.hero-copy .lead{max-width:680px;margin-top:30px}
.hero-ticket{
  background:var(--paper-2);
  border:3px solid var(--ink);
  box-shadow:var(--shadow);
  position:relative;
  transform:rotate(1.2deg);
}
.hero-ticket::before,.hero-ticket::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);width:44px;height:24px;background:var(--paper);border:3px solid var(--ink);z-index:2;
}
.hero-ticket::before{top:-3px;border-top:0;border-radius:0 0 30px 30px}
.hero-ticket::after{bottom:-3px;border-bottom:0;border-radius:30px 30px 0 0}
.ticket-head{display:grid;grid-template-columns:1fr auto;gap:16px;padding:22px;border-bottom:3px dashed var(--ink)}
.ticket-head strong{font-family:Georgia,"Times New Roman",serif;font-size:2rem;line-height:1;letter-spacing:-.04em;text-transform:uppercase}
.ticket-number{writing-mode:vertical-rl;font-family:ui-monospace,monospace;font-size:.72rem;letter-spacing:.12em;background:var(--gold);padding:10px 7px;border:2px solid var(--ink)}
.ticket-body{padding:22px;display:grid;gap:16px}
.ticket-row{display:grid;grid-template-columns:92px 1fr;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px}
.ticket-row span{font-family:"Arial Narrow",Impact,sans-serif;text-transform:uppercase;font-weight:900;letter-spacing:.08em;font-size:.75rem;color:var(--muted)}
.ticket-row b{font-weight:850}

.color-band{height:18px;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);display:grid;grid-template-columns:1fr 1fr 1fr 1fr;margin:0}
.color-band i:nth-child(1){background:var(--green)}.color-band i:nth-child(2){background:var(--gold)}.color-band i:nth-child(3){background:var(--red)}.color-band i:nth-child(4){background:var(--blue)}

.identity-ledger{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:3px solid var(--ink);
  border-left:3px solid var(--ink);
  background:var(--paper-2);
  box-shadow:var(--shadow-soft);
}
.ledger-cell{padding:20px;border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);min-height:120px;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.ledger-cell em{font-family:ui-monospace,monospace;font-size:.72rem;color:var(--muted);font-style:normal;text-transform:uppercase;letter-spacing:.11em}
.ledger-cell strong{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.55rem,3vw,2.45rem);line-height:.95;letter-spacing:-.055em}
.ledger-cell.wide{grid-column:span 2}.ledger-cell.green{background:var(--green);color:#fff}.ledger-cell.red{background:var(--red);color:#fff}.ledger-cell.gold{background:var(--gold)}
.ledger-cell.green em,.ledger-cell.red em{color:rgba(255,255,255,.72)}

.manifesto{
  display:grid;grid-template-columns:.82fr 1.18fr;
  gap:0;border:3px solid var(--ink);background:var(--paper-2);box-shadow:var(--shadow);
}
.manifesto-aside{padding:clamp(24px,4vw,44px);background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.manifesto-aside::after{content:"";position:absolute;inset:auto -20% -35% 10%;height:60%;background:repeating-linear-gradient(45deg,rgba(212,154,0,.7) 0 14px,transparent 14px 28px);opacity:.35;transform:rotate(-8deg)}
.manifesto-aside h2{margin:18px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.4rem,5vw,5rem);line-height:.84;letter-spacing:-.07em;text-transform:uppercase;position:relative;z-index:1}
.manifesto-text{padding:clamp(26px,5vw,58px);display:grid;gap:24px}
.manifesto-text p{margin:0;font-size:1.08rem;line-height:1.85;color:var(--ink-2)}

.action-wall{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;margin-top:36px}
.action-tile{
  min-height:270px;padding:24px;border:3px solid var(--ink);background:var(--paper-2);
  position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:7px 7px 0 rgba(16,16,13,.9);
}
.action-tile:nth-child(1){grid-column:span 5;background:var(--green);color:#fff;clip-path:polygon(0 0,100% 0,94% 100%,0 100%)}
.action-tile:nth-child(2){grid-column:span 4;min-height:330px;background:var(--gold)}
.action-tile:nth-child(3){grid-column:span 3;background:var(--paper-2)}
.action-tile:nth-child(4){grid-column:span 4;background:var(--red);color:#fff}
.action-tile:nth-child(5){grid-column:span 8;background:var(--ink);color:var(--paper);min-height:230px;clip-path:polygon(3% 0,100% 0,100% 100%,0 100%,0 12%)}
.action-tile::after{content:attr(data-no);position:absolute;right:14px;top:6px;font-family:Georgia,"Times New Roman",serif;font-weight:900;font-size:6.2rem;line-height:1;color:rgba(16,16,13,.08);letter-spacing:-.09em}.action-tile:nth-child(1)::after,.action-tile:nth-child(4)::after,.action-tile:nth-child(5)::after{color:rgba(255,255,255,.14)}
.action-tile h3{margin:0;max-width:360px;font-family:Georgia,"Times New Roman",serif;text-transform:uppercase;font-size:clamp(2rem,4vw,3.7rem);line-height:.85;letter-spacing:-.07em;position:relative;z-index:1}
.action-tile p{margin:18px 0 0;max-width:560px;position:relative;z-index:1;color:inherit;opacity:.86}
.action-tile small{font-family:ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;font-weight:700;position:relative;z-index:1}

.split-proof{display:grid;grid-template-columns:360px 1fr;gap:34px;align-items:start}
.stamp-panel{position:sticky;top:calc(var(--nav) + 24px);border:3px solid var(--ink);background:var(--ink);color:var(--paper);padding:26px;box-shadow:var(--shadow);min-height:360px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.stamp-panel::after{content:"974";position:absolute;right:-.15em;bottom:-.18em;font-family:Georgia,"Times New Roman",serif;font-size:12rem;font-weight:900;letter-spacing:-.1em;color:rgba(255,255,255,.06)}
.stamp-panel h2{margin:12px 0 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,4vw,4.3rem);line-height:.85;letter-spacing:-.07em;text-transform:uppercase;position:relative}
.proof-list{display:grid;gap:14px}
.proof-item{display:grid;grid-template-columns:72px 1fr;gap:18px;padding:20px;border:3px solid var(--ink);background:var(--paper-2);box-shadow:5px 5px 0 rgba(16,16,13,.18)}
.proof-item b{display:flex;align-items:center;justify-content:center;height:72px;width:72px;background:var(--gold);border:3px solid var(--ink);font-family:Georgia,"Times New Roman",serif;font-size:2.1rem;line-height:1}.proof-item:nth-child(2n) b{background:var(--green);color:#fff}.proof-item:nth-child(3n) b{background:var(--red);color:#fff}
.proof-item h3{margin:0 0 6px;font-family:"Arial Narrow",Impact,sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:1.08rem}.proof-item p{margin:0;color:var(--ink-2)}

.callout-ribbon{position:relative;margin:32px 0;padding:24px 24px 24px 34px;background:var(--red);color:#fff;border:3px solid var(--ink);box-shadow:var(--shadow);transform:rotate(-1deg)}
.callout-ribbon::before{content:"";position:absolute;left:-3px;top:-3px;bottom:-3px;width:13px;background:repeating-linear-gradient(to bottom,var(--gold) 0 14px,var(--green) 14px 28px,var(--blue) 28px 42px);border-right:3px solid var(--ink)}
.callout-ribbon h2,.callout-ribbon h3{margin:0 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3.4rem);line-height:.88;letter-spacing:-.06em;text-transform:uppercase}.callout-ribbon p{margin:0;max-width:790px;opacity:.92}

.page-header{padding:clamp(42px,6vw,82px) 0 clamp(48px,7vw,95px);border-bottom:3px solid var(--ink);position:relative;overflow:hidden;background:var(--paper-2)}
.page-header::after{content:"";position:absolute;inset:auto -5% -50% 58%;height:110%;background:repeating-linear-gradient(135deg, rgba(0,107,58,.15) 0 26px, transparent 26px 52px);transform:rotate(-4deg)}
.page-header .container{position:relative;z-index:1}
.breadcrumb{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:28px;font-family:ui-monospace,monospace;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.breadcrumb a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}

.editorial-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(26px,5vw,64px);align-items:start}.editorial-grid.reverse{grid-template-columns:.9fr 1.1fr}
.text-block{border-left:8px solid var(--red);padding-left:26px}.text-block p{font-size:1.08rem;line-height:1.85;color:var(--ink-2)}
.note-stack{display:grid;gap:16px}.note{background:var(--paper-2);border:3px solid var(--ink);padding:20px;box-shadow:6px 6px 0 rgba(16,16,13,.18)}.note h3{margin:0 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:2rem;line-height:.9;letter-spacing:-.05em;text-transform:uppercase}.note p{margin:0;color:var(--ink-2)}

.timeline{counter-reset:step;display:grid;gap:18px}.time-row{counter-increment:step;display:grid;grid-template-columns:130px 1fr;gap:20px;align-items:stretch}.time-date{border:3px solid var(--ink);background:var(--ink);color:var(--paper);padding:18px;text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:2rem;line-height:.9;font-weight:900;box-shadow:5px 5px 0 rgba(16,16,13,.25)}.time-card{border:3px solid var(--ink);background:var(--paper-2);padding:22px;position:relative}.time-card::before{content:counter(step, decimal-leading-zero);position:absolute;right:12px;top:6px;font-family:Georgia,"Times New Roman",serif;font-size:4rem;font-weight:900;color:rgba(16,16,13,.07);line-height:1}.time-card h3{margin:0 0 6px;font-family:"Arial Narrow",Impact,sans-serif;letter-spacing:.06em;text-transform:uppercase;font-size:1.3rem}.time-card p{margin:0;color:var(--ink-2)}

.culture-sheet{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.culture-card{min-height:230px;border:3px solid var(--ink);background:var(--paper-2);padding:22px;position:relative;box-shadow:5px 5px 0 rgba(16,16,13,.18)}.culture-card:nth-child(2){background:var(--gold)}.culture-card:nth-child(3){background:var(--green);color:#fff}.culture-card:nth-child(5){background:var(--red);color:#fff}.culture-card h3{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:2.3rem;line-height:.85;letter-spacing:-.06em;text-transform:uppercase}.culture-card p{margin:18px 0 0;color:inherit;opacity:.9}.culture-card .tag{position:absolute;left:18px;bottom:18px;font-family:ui-monospace,monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;opacity:.65}

.legal-sheet{max-width:940px;margin-inline:auto;border:3px solid var(--ink);background:var(--paper-2);box-shadow:var(--shadow);padding:clamp(24px,5vw,58px)}.legal-sheet h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,5vw,4rem);line-height:.9;letter-spacing:-.06em;text-transform:uppercase;margin:0 0 22px}.legal-sheet h3{font-family:"Arial Narrow",Impact,sans-serif;letter-spacing:.06em;text-transform:uppercase;margin:32px 0 8px;font-size:1.25rem}.legal-sheet p,.legal-sheet li{color:var(--ink-2)}.legal-sheet ul{padding-left:1.2rem}

.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:28px;align-items:start}.contact-card{border:3px solid var(--ink);background:var(--ink);color:var(--paper);padding:28px;box-shadow:var(--shadow);position:relative;overflow:hidden}.contact-card::after{content:"CONTACT";position:absolute;right:-.18em;bottom:-.08em;font-family:Georgia,"Times New Roman",serif;font-size:6.7rem;font-weight:900;letter-spacing:-.09em;color:rgba(255,255,255,.055)}.contact-card a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.form-panel{border:3px solid var(--ink);background:var(--paper-2);padding:24px;box-shadow:var(--shadow-soft)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-family:"Arial Narrow",Impact,sans-serif;text-transform:uppercase;letter-spacing:.08em;font-weight:900;font-size:.82rem}.field input,.field textarea,.field select{width:100%;border:3px solid var(--ink);background:var(--paper);padding:14px 13px;font:inherit;color:var(--ink)}.field textarea{min-height:150px;resize:vertical}

.archive-table{border:3px solid var(--ink);background:var(--paper-2);overflow:hidden;box-shadow:var(--shadow-soft)}.archive-row{display:grid;grid-template-columns:160px 1fr 170px;border-bottom:2px solid var(--line)}.archive-row:last-child{border-bottom:0}.archive-row>*{padding:16px;border-right:2px solid var(--line)}.archive-row>*:last-child{border-right:0}.archive-row b{font-family:"Arial Narrow",Impact,sans-serif;text-transform:uppercase;letter-spacing:.07em}.archive-row span{color:var(--muted)}

/* ===== Footer ===== */
.footer{border-top:3px solid var(--ink);background:var(--ink);color:var(--paper);position:relative;overflow:hidden}.footer::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg, transparent 0 28px, rgba(255,255,255,.035) 28px 56px);pointer-events:none}.footer-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:28px;padding:clamp(38px,6vw,70px) 0}.footer-logo{max-width:310px;background:#fff;padding:10px;border:3px solid var(--paper);margin-bottom:20px}.footer h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3.7rem);line-height:.85;letter-spacing:-.07em;text-transform:uppercase;margin:0 0 16px}.footer p{color:rgba(244,234,216,.72)}.footer a{text-decoration:underline;text-underline-offset:5px}.footer-list{display:grid;gap:10px}.subfooter{position:relative;z-index:1;border-top:2px solid rgba(244,234,216,.2);padding:18px 0;color:rgba(244,234,216,.65);font-family:ui-monospace,monospace;font-size:.82rem}

/* ===== Motion ===== */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease, transform .55s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}
.marquee{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);background:var(--gold);overflow:hidden;white-space:nowrap}.marquee span{display:inline-block;padding:14px 0;font-family:"Arial Narrow",Impact,sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.08em;animation:marquee 22s linear infinite}@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ===== Responsive ===== */
@media (max-width:980px){
  :root{--nav:78px}.topbar{grid-template-columns:1fr auto}.logo-slot{border-right:0}.top-cta{display:none}.menu-toggle{display:flex;align-items:center;justify-content:center;height:var(--nav);width:82px;border:0;border-left:3px solid var(--ink);background:var(--gold);font-family:"Arial Narrow",Impact,sans-serif;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.nav-strip{position:fixed;left:0;right:0;top:var(--nav);height:auto;display:none;flex-direction:column;background:var(--paper-2);border-bottom:3px solid var(--ink)}.nav-strip.open{display:flex}.nav-strip a{height:54px;border-right:0;border-top:2px solid var(--line);transform:none}.nav-strip a span{transform:none}.hero-grid,.manifesto,.split-proof,.editorial-grid,.editorial-grid.reverse,.contact-grid{grid-template-columns:1fr}.identity-ledger{grid-template-columns:repeat(2,1fr)}.stamp-panel{position:relative;top:auto}.action-tile:nth-child(n){grid-column:span 12;clip-path:none;min-height:230px}.culture-sheet{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:1fr 1fr}.display{font-size:clamp(3.1rem,15vw,7rem)}
}
@media (max-width:650px){
  .container{width:min(100% - 26px,var(--max))}.logo-slot{padding-inline:14px}.logo-slot img{max-height:54px}.identity-ledger{grid-template-columns:1fr}.ledger-cell.wide{grid-column:span 1}.ticket-row,.proof-item,.time-row,.archive-row,.form-grid{grid-template-columns:1fr}.culture-sheet{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr}.display-small{font-size:clamp(2.1rem,12vw,3.6rem)}.hero-ticket{transform:none}.btn{width:100%}.archive-row>*{border-right:0;border-bottom:1px solid var(--line)}.archive-row>*:last-child{border-bottom:0}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* ===== Association photos + mission section ===== */
.hero-visual{
  display:grid;
  gap:24px;
  align-self:stretch;
  align-content:end;
}
.hero-photo-card{
  margin:0;
  position:relative;
  border:3px solid var(--ink);
  background:var(--paper-2);
  box-shadow:var(--shadow);
  transform:rotate(-2.2deg);
  overflow:hidden;
}
.hero-photo-card::before{
  content:"LIVE";
  position:absolute;
  left:18px;
  top:18px;
  z-index:2;
  background:var(--red);
  color:#fff;
  border:3px solid var(--ink);
  padding:.35rem .55rem;
  font-family:"Arial Narrow",Impact,sans-serif;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
  box-shadow:4px 4px 0 var(--ink);
}
.hero-photo-card img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  filter:contrast(1.08) saturate(.92);
}
.hero-photo-card figcaption,
.photo-frame figcaption,
.mission-photo figcaption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  background:rgba(16,16,13,.88);
  color:var(--paper);
  padding:10px 14px;
  font-family:ui-monospace,monospace;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.mission-deep{
  padding-top:clamp(64px,7vw,105px);
  padding-bottom:clamp(58px,7vw,95px);
}
.mission-board{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);
  grid-template-areas:
    "poster photo"
    "rhythm photo";
  gap:22px;
  align-items:stretch;
}
.mission-poster{
  grid-area:poster;
  border:3px solid var(--ink);
  background:var(--ink);
  color:var(--paper);
  padding:clamp(26px,5vw,56px);
  position:relative;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.mission-poster::before{
  content:"MISSION";
  position:absolute;
  right:-.12em;
  bottom:-.16em;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:900;
  font-size:clamp(5rem,13vw,12rem);
  letter-spacing:-.1em;
  color:rgba(244,234,216,.055);
  line-height:.75;
}
.mission-poster .kicker{position:relative;z-index:1;color:var(--ink)}
.mission-poster h2{
  position:relative;z-index:1;
  margin:22px 0 22px;
  max-width:860px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.2rem,5.8vw,5.9rem);
  line-height:.83;
  letter-spacing:-.075em;
  text-transform:uppercase;
}
.mission-poster p{
  position:relative;z-index:1;
  margin:0;
  max-width:760px;
  color:rgba(244,234,216,.76);
  font-size:1.05rem;
  line-height:1.85;
}
.mission-rhythm{
  grid-area:rhythm;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.mission-rhythm article{
  min-height:210px;
  border:3px solid var(--ink);
  padding:20px;
  background:var(--paper-2);
  position:relative;
  box-shadow:6px 6px 0 rgba(16,16,13,.2);
}
.mission-rhythm article:nth-child(1){background:var(--green);color:#fff;transform:rotate(-1.2deg)}
.mission-rhythm article:nth-child(2){background:var(--gold);transform:rotate(.7deg)}
.mission-rhythm article:nth-child(3){background:var(--red);color:#fff;transform:rotate(-.4deg)}
.mission-rhythm b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border:3px solid var(--ink);
  background:var(--paper-2);
  color:var(--ink);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.4rem;
  line-height:1;
}
.mission-rhythm h3{
  margin:18px 0 8px;
  font-family:"Arial Narrow",Impact,sans-serif;
  font-size:1.35rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.mission-rhythm p{margin:0;line-height:1.65;color:inherit;opacity:.9}
.mission-photo{
  grid-area:photo;
  margin:0;
  position:relative;
  border:3px solid var(--ink);
  background:var(--paper-2);
  box-shadow:var(--shadow);
  transform:rotate(1.4deg);
  overflow:hidden;
  min-height:100%;
}
.mission-photo img{
  width:100%;
  height:100%;
  min-height:520px;
  object-fit:cover;
  filter:contrast(1.08) saturate(.95);
}
.mission-photo::before{
  content:"SAINT-PAUL / LA RÉUNION";
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  writing-mode:vertical-rl;
  background:var(--gold);
  border:3px solid var(--ink);
  padding:10px 6px;
  font-family:ui-monospace,monospace;
  font-weight:900;
  letter-spacing:.1em;
  font-size:.7rem;
}
.photo-dossier{
  border-top:3px solid var(--ink);
  border-bottom:3px solid var(--ink);
  background:
    linear-gradient(135deg, rgba(16,16,13,.07) 0 25%, transparent 25% 50%, rgba(16,16,13,.07) 50% 75%, transparent 75%) 0 0 / 34px 34px,
    var(--paper-2);
}
.photo-head{
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:clamp(22px,5vw,60px);
  align-items:end;
  margin-bottom:38px;
}
.photo-head .kicker{align-self:start;justify-self:start}
.photo-head .display-small{grid-column:1/2;margin-top:18px}
.photo-head .lead{grid-column:2/3;grid-row:1/3;margin:0;border-left:8px solid var(--red);padding-left:24px}
.photo-collage{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:120px;
  gap:18px;
}
.photo-frame{
  margin:0;
  position:relative;
  border:3px solid var(--ink);
  background:var(--paper);
  overflow:hidden;
  box-shadow:7px 7px 0 rgba(16,16,13,.82);
  transform:rotate(.55deg);
}
.photo-frame::before{
  content:"";
  position:absolute;
  inset:12px;
  border:2px solid rgba(244,234,216,.74);
  z-index:1;
  pointer-events:none;
  mix-blend-mode:screen;
}
.photo-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:contrast(1.06) saturate(.92);
  transition:transform .45s ease, filter .45s ease;
}
.photo-frame:hover img{transform:scale(1.04);filter:contrast(1.1) saturate(1.05)}
.photo-frame.big{grid-column:span 6;grid-row:span 4;transform:rotate(-1.1deg)}
.photo-frame.tall{grid-column:span 3;grid-row:span 5;transform:rotate(1.3deg)}
.photo-frame.wide{grid-column:span 6;grid-row:span 2;transform:rotate(.2deg)}
.photo-frame.stamp{grid-column:span 3;grid-row:span 2;background:var(--gold);padding:10px;transform:rotate(-2.4deg)}
.photo-frame.stamp img{border:3px solid var(--ink)}
.photo-frame:not(.big):not(.tall):not(.wide):not(.stamp){grid-column:span 3;grid-row:span 3}

@media (max-width:980px){
  .hero-visual{align-content:start}.hero-photo-card{transform:none}.mission-board{grid-template-columns:1fr;grid-template-areas:"poster" "photo" "rhythm"}.mission-rhythm{grid-template-columns:1fr}.mission-photo{transform:none}.mission-photo img{min-height:360px}.photo-head{grid-template-columns:1fr}.photo-head .display-small,.photo-head .lead{grid-column:auto;grid-row:auto}.photo-collage{grid-auto-rows:110px}.photo-frame.big{grid-column:span 12;grid-row:span 4}.photo-frame.tall{grid-column:span 6;grid-row:span 4}.photo-frame.wide{grid-column:span 12;grid-row:span 3}.photo-frame.stamp,.photo-frame:not(.big):not(.tall):not(.wide):not(.stamp){grid-column:span 6;grid-row:span 3}
}
@media (max-width:650px){
  .photo-collage{display:grid;grid-template-columns:1fr;grid-auto-rows:auto}.photo-frame.big,.photo-frame.tall,.photo-frame.wide,.photo-frame.stamp,.photo-frame:not(.big):not(.tall):not(.wide):not(.stamp){grid-column:auto;grid-row:auto;min-height:260px;transform:none}.photo-frame.stamp{padding:0}.photo-frame.stamp img{border:0}.photo-head .lead{border-left:0;border-top:8px solid var(--red);padding-left:0;padding-top:18px}.mission-rhythm article{transform:none!important}.hero-photo-card img{aspect-ratio:16/11}
}
