@font-face{font-family:'League Spartan';src:url('font/LeagueSpartan-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'League Spartan';src:url('font/LeagueSpartan-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'League Spartan';src:url('font/LeagueSpartan-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'League Spartan';src:url('font/LeagueSpartan-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'League Spartan';src:url('font/LeagueSpartan-ExtraBold.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'League Spartan';src:url('font/LeagueSpartan-Black.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap}

@font-face{font-family:'Metropolis';src:url('font/Metropolis-Light.otf') format('opentype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Metropolis';src:url('font/Metropolis-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Metropolis';src:url('font/Metropolis-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Metropolis';src:url('font/Metropolis-SemiBold.otf') format('opentype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Metropolis';src:url('font/Metropolis-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}

@font-face{font-family:'Playfair Display';src:url('font/PlayfairDisplay-Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Playfair Display';src:url('font/PlayfairDisplay-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}

:root{
  --ink:#0F1430;
  --paper:#EFECDD;
  --acid:#FFFFFF;
  --coral:#B80505;
  --line:#C9C5B8;
  --serif:'Metropolis','Helvetica Neue',Arial,sans-serif;
  --mono:'Metropolis','Helvetica Neue',Arial,sans-serif;
  --display:'League Spartan','Arial Narrow',Arial,sans-serif;
  --quote:'Playfair Display',Georgia,serif;
  --light:#FFFFFF
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body:before{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:20;
  opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
  mix-blend-mode:multiply
}

blockquote,.quote{font-family:var(--quote);font-style:italic;color:var(--ink)}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--mono);
  font-weight:300;
  font-size:14px;
  line-height:1.65
}

a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:4px}

.site-header{
  height:88px;
  padding:20px 5vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:5
}

.brand{display:flex;align-items:center;gap:10px;font-size:11px;line-height:1.15;text-transform:uppercase;letter-spacing:.04em}
.brand em{font-family:var(--display);font-size:18px;letter-spacing:0;text-transform:none}
.brand-mark{display:grid;place-items:center;background:var(--);color:var(--acid);width:30px;height:30px;border-radius:0%;font-size:21px;line-height:1}

.main-nav{display:flex;gap:clamp(14px,2.3vw,36px);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.main-nav a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:2px;text-underline-offset:8px}

.header-cta{
  font-size:11px;
  text-transform:uppercase;
  border:1px solid var(--ink);
  padding:8px 12px;
  background-color:#0F1430;
  color:#FFFFFF
}
.header-cta span,.button span,.text-link span{font-size:17px;margin-left:7px}

.hero{min-height:630px;padding:8vw 5vw;display:grid;grid-template-columns:1.05fr .95fr;gap:4vw;align-items:center}
.hero-copy{max-width:600px}
.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.14em;margin:0 0 22px;color:#626057}

.hero h1,.page-hero h1,.event-detail h1{
  font-family:var(--display);
  font-size:clamp(58px,8vw,124px);
  line-height:.91;
  font-weight:600;
  letter-spacing:-.06em;
  margin:0 0 30px
}

.hero h1{
  max-width:none;
  white-space:normal;
}

.hero-copy{
  max-width:640px;
}

.hero h1 span,.page-hero h1 i,.feature-band h2 i,.closing h2 i,.membership-grid h2 i,.price-band h2,.mentorship h2,.about-story h2 i,.support-grid h2 i,.contact-grid h2{
    color: var(--coral);
    font-style: italic
}

.lede{
    font-size: 16px;
    max-width: 540px
}
.actions{display:flex;align-items:center;gap:24px;margin-top:35px}

.button{display:inline-flex;align-items:center;padding:13px 18px;text-transform:uppercase;font:500 11px var(--mono);border:0;cursor:pointer}
.button-dark{background:var(--ink);color:var(--light)}
.button-accent{background:var(--coral);color:var(--ink)}
.button-light{background:var(--paper);color:var(--ink)}

.text-link{display:inline-flex;align-items:center;text-transform:uppercase;font-size:11px;border-bottom:1px solid var(--coral);padding-bottom:3px}

.hero-art{
  position:relative;
  min-height:560px;
  width:100%;
}

.hero-photo{
  position:absolute;
  margin:0;
  overflow:hidden;
  border-radius:6px;
  box-shadow:0 20px 50px rgba(15,20,48,.15);
}

.hero-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-photo-a{
  width:58%;
  aspect-ratio:3/4;
  top:0;
  left:0;
  z-index:2;
}

.hero-photo-b{
  width:48%;
  aspect-ratio:4/5;
  top:22%;
  right:0;
  z-index:1;
}

@media(max-width:900px){
  .hero-art{
    min-height:420px;
  }
  .hero-photo-a{width:62%}
  .hero-photo-b{width:52%; top:30%}
}

@media(max-width:600px){
  .hero-art{
    min-height:340px;
  }
  .hero-photo-a{width:66%}
  .hero-photo-b{width:56%; top:34%}
}

.hero-note{position:absolute;left:25px;bottom:25px;color:var(--paper);font-size:10px;line-height:1.4;text-transform:uppercase}
.hero-note strong{font:24px var(--serif);line-height:.9;text-transform:none}

.stats{background:var(--acid);display:grid;grid-template-columns:repeat(3,1fr);padding:28px 10vw;gap:20px}
.stats div{border-right:1px solid var(--ink);display:flex;align-items:baseline;gap:15px}
.stats div:last-child{border:0}
.stats strong{font:600 54px var(--serif);letter-spacing:-.06em}
.stats strong span{font-size:25px}
.stats small{font-size:10px;text-transform:uppercase;line-height:1.3}

.split{display:grid;grid-template-columns:1fr 1fr;gap:10vw}
.intro,.about-story{padding:130px 10vw}

.split h2,.section-head h2,.feature-band h2,.closing h2,.membership-grid h2,.support-grid h2{
  font:600 clamp(43px,5.5vw,80px) var(--serif);
  line-height:.94;
  letter-spacing:-.06em;
  margin:0
}

.body-lg{
    font-size: 20px;
    max-width: 550px;
    margin: 40px 0
}

.feature-band-split{
  background:var(--ink);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6vw;
  padding:90px 10vw;
}

.feature-item p:not(.eyebrow){
  max-width:400px;
  margin:28px 0;
}

.feature-meta{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0 0 32px;
}

.meta-item{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--paper);
  opacity:.85;
}

.meta-icon{
  width:16px;
  height:16px;
  flex-shrink:0;
}

@media(max-width:800px){
  .feature-band-split{
    grid-template-columns:1fr;
    gap:60px;
    padding:75px 8vw;
  }
}
.feature-band .eyebrow{color:#aaa79e}
.feature-band h2{color:var(--paper)}
.feature-band p{color:var(--paper)}{max-width:400px;margin:28px 0}

.portraits{padding:125px 5vw}
.section-head{display:flex;justify-content:space-between;align-items:end;margin:0 5vw 50px}

/* ===== PORTRAITS — défilement double colonne ===== */

.portrait-scroll{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  height:700px;
  overflow:hidden;
  margin:0 5vw;
  mask-image:linear-gradient(to bottom, transparent 0%, black 8%, black 92%, transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom, transparent 0%, black 8%, black 92%, transparent 100%);
}

.portrait-col{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.portrait-col-up{
  animation:scrollUp 28s linear infinite;
}

.portrait-col-down{
  animation:scrollDown 28s linear infinite;
}

.portrait-scroll:hover .portrait-col{
  animation-play-state:paused;
}

@keyframes scrollUp{
  from{transform:translateY(0)}
  to{transform:translateY(-50%)}
}

@keyframes scrollDown{
  from{transform:translateY(-50%)}
  to{transform:translateY(0)}
}

/* Carte portrait */
.portrait{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:18px;
  color:var(--paper);
  overflow:hidden;
  aspect-ratio:1/1;
  flex-shrink:0;
  text-decoration:none;
}

.portrait-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2;
  transition:transform .5s ease;
}

.portrait:hover .portrait-img{
  transform:scale(1.05);
}

.portrait:after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(15,20,48,.8) 0%, rgba(15,20,48,.1) 55%);
  z-index:-1;
}

.portrait span{font-size:10px}
.portrait b{font:22px var(--serif);line-height:1}

/* ===== Responsive ===== */
@media(max-width:800px){
  .portrait-scroll{
    grid-template-columns:1fr;
    height:600px;
    margin:0 8vw;
  }
  .portrait-col-down{
    display:none;
  }
}
.closing-image{
  position:relative;
  overflow:hidden;
  border-top:0;
  padding:0;
  min-height:600px;
  background:var(--ink);
}

.closing-bg{
  position:absolute;
  top:-15%;
  left:0;
  width:100%;
  height:130%;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  z-index:0;
  will-change:transform;
}

.closing-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(15,20,48,.35) 0%, rgba(15,20,48,.75) 100%);
  z-index:1;
}

.closing-content{
  position:relative;
  z-index:2;
  padding:150px 20px 170px;
  text-align:center;
}
.page-hero{padding:115px 10vw 100px;max-width:1050px}
.page-hero p:last-child{max-width:550px;font-size:18px}
.page-hero.tinted{background:linear-gradient(135deg,var(--paper) 0%,#ffffff 72%,#ead0d0 100%);max-width:none}
.page-hero.dark{background:var(--ink);color:var(--paper);max-width:none}
.page-hero.dark .eyebrow{color:#aaa}

.events-wrap{padding:20px 10vw 130px;max-width:1100px}

.section-label{display:flex;gap:25px;align-items:center;border-top:1px solid var(--ink);padding:35px 0 12px;margin-top:20px}
.section-label span{color:var(--coral);font-size:11px}
.section-label h2{font:34px var(--serif);margin:0}
.section-label.current{border-top-color:var(--coral)}
.section-label.current span{color:var(--coral)}
.section-label.current h2{color:var(--coral)}

.event-card{display:grid;grid-template-columns:155px 1fr;gap:25px;border-bottom:1px solid var(--line);padding:25px 0 35px}
.event-date{font:600 31px var(--serif);line-height:.9}
.event-date span{font:10px var(--mono);line-height:1.1;display:inline-block;margin-top:8px}
.event-card h3{font:34px var(--serif);margin:3px 0 12px}
.event-card p{max-width:620px;margin:0 0 15px}
.event-card.past{grid-template-columns:155px 1fr}

.live{background:var(--acid);padding:28px 20px;border:0}

.archive-note{padding:30px 0;border-bottom:1px solid var(--line)}
.archive-note span{font-size:10px;text-transform:uppercase}
.archive-note p{font:25px var(--serif)}

.membership-grid,.support-grid,.contact-grid{padding:110px 10vw;display:grid;grid-template-columns:1fr 1.3fr;gap:10vw}

.benefits>div{border-top:1px solid var(--line);padding:25px 0}
.benefits b{color:var(--coral)}
.benefits h3{font:27px var(--serif);margin:4px 0}

.price-band{background:var(--acid);padding:100px 10vw;display:grid;grid-template-columns:1fr 1fr;gap:10vw}
.price-band h2{font:600 90px var(--serif);margin:0}
.price-band h2 small{color:var(--ink);font:18px var(--mono)}
.price-band .button{margin-top:25px}

.faq h3{font:30px var(--serif);margin:0 0 30px}
.faq p{border-top:1px solid var(--ink);padding:18px 0;margin:0}

.mentorship{padding:100px 10vw;background:linear-gradient(135deg,var(--paper) 0%,#ffffff 72%,#ead0d0 100%)}
.mentorship h2{font:55px var(--serif);margin:0 0 20px;color:var(--ink)}
mark{background:var(--coral);font:13px var(--mono);padding:5px;color:var(--ink)}
.mentorship p:last-child{max-width:600px;font-size:17px}

.values{padding:100px 10vw;background:var(--acid)}
.value-row{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.value-row>div{border-top:1px solid var(--ink);padding-top:20px}
.value-row span{font-size:11px;color:var(--coral)}
.value-row h3{font:40px var(--serif);margin:10px 0}

.support-grid{grid-template-columns:1fr 1fr}
.support-grid h2{margin-bottom:30px}
.support-card{background:var(--acid);padding:40px;min-height:300px}
.big-symbol{font:80px var(--serif);line-height:.5}
.support-card h3{font:32px var(--serif);margin-top:50px}

.contact-grid h2{font:40px var(--serif);word-break:break-word}
.contact-form{display:flex;flex-direction:column;gap:8px}
.contact-form label{font-size:10px;text-transform:uppercase;margin-top:12px}
.contact-form input,.contact-form textarea{border:0;border-bottom:1px solid var(--ink);background:transparent;padding:10px 0;font:14px var(--mono);resize:vertical}
.contact-form button{align-self:flex-start;margin-top:25px}

.event-detail{padding:150px 10vw;min-height:650px}
.event-detail h1{max-width:900px}
.detail-date{font-size:17px}
.detail-rule{height:1px;background:var(--ink);max-width:680px;margin:45px 0 30px}
.detail-desc{font-size:18px;max-width:650px;margin-bottom:35px}
.back-link{display:block;margin-top:55px;font-size:11px;text-transform:uppercase}

.site-footer{padding:55px 5vw;display:flex;justify-content:space-between;border-top:1px solid var(--line);font-size:11px}
.footer-brand{margin-bottom:15px}
.site-footer p{color:#69675f}
.footer-links{
  display:flex;
  gap:22px;
  align-items:center;
  text-transform:uppercase;
}

.footer-links a{
  display:inline-flex;
  align-items:center;
}

.social-icon{
  width:20px;
  height:20px;
  transition:opacity .2s ease;
}

.social-icon:hover{
  opacity:.6;
}

@media(max-width:800px){
  .site-header{height:auto;gap:20px;flex-wrap:wrap}
  .main-nav{order:3;width:100%;justify-content:space-between;gap:8px;overflow:auto}
  .main-nav a{font-size:9px}
  .header-cta{display:none}
  .hero,.split,.membership-grid,.price-band,.support-grid,.contact-grid{grid-template-columns:1fr}
  .hero{padding-top:60px}
  .hero-art{height:320px}
  .stats{padding:22px 5vw}
  .stats strong{font-size:35px}
  .stats div{display:block}
  .stats small{display:block}
  .intro,.about-story,.membership-grid,.price-band,.support-grid,.contact-grid{padding:75px 8vw}
  .feature-band{padding:75px 8vw}
  .stamp{right:7vw;top:55px;width:90px;height:90px;font-size:15px}
  .stamp span{font-size:9px}
  .section-head{margin:0 0 35px;display:block}
  .section-head .text-link{margin-top:25px}
  .portraits{padding:75px 8vw}
  .portrait-grid{grid-template-columns:1fr 1fr}
  .portrait{height:250px}
  .page-hero{padding:80px 8vw}
  .page-hero h1,.event-detail h1{font-size:58px}
  .events-wrap{padding:10px 8vw 80px}
  .event-card,.event-card.past{grid-template-columns:85px 1fr}
  .event-card h3{font-size:27px}
  .value-row{grid-template-columns:1fr}
  .site-footer{display:block}
  .footer-links{margin-top:30px;flex-wrap:wrap}
  .mentorship{padding:75px 8vw}
  .mentorship h2{font-size:40px}
}
