
:root {
  --paper: #fffaf5;
  --paper-2: #fff4ec;
  --white: #ffffff;
  --ink: #19131c;
  --muted: #6f6873;
  --line: rgba(25, 19, 28, .11);
  --line-strong: rgba(25, 19, 28, .18);
  --coral: #ff5a45;
  --orange: #ff8b3d;
  --pink: #ff4f91;
  --violet: #7657ff;
  --blue: #4178ff;
  --sun: #ffd24a;
  --mint: #66dfc1;
  --plum: #321a39;
  --shadow-sm: 0 12px 35px rgba(54, 27, 45, .09);
  --shadow-md: 0 24px 70px rgba(66, 37, 61, .14);
  --shadow-xl: 0 35px 90px rgba(31, 18, 35, .22);
  --radius: 28px;
  --radius-lg: 40px;
  --radius-sm: 18px;
  --max: 1240px;
  --header-h: 82px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 6% 3%, rgba(255, 209, 74, .20), transparent 29rem),
    radial-gradient(circle at 96% 12%, rgba(255, 79, 145, .12), transparent 32rem),
    var(--paper);
  font-family: 'DM Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--sun); color: var(--ink); }

.skip-link {
  position: fixed; left: 16px; top: -80px; z-index: 9999;
  background: var(--ink); color: white; padding: 12px 18px; border-radius: 12px;
  transition: .2s ease;
}
.skip-link:focus { top: 14px; }

.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.container.narrow { width: min(calc(100% - 40px), 880px); }
.section { position: relative; padding: 112px 0; }
.section-sm { padding: 72px 0; }
.section-tight { padding: 48px 0; }
.section-cream { background: rgba(255, 244, 236, .68); }
.section-white { background: rgba(255,255,255,.66); }
.section-plum { background: var(--plum); color: white; }
.section-title {
  margin: 0;
  font-family: 'Manrope', sans-serif;
  font-size: clamp(2.25rem, 5vw, 5.1rem);
  line-height: .98;
  letter-spacing: -.055em;
  max-width: 12ch;
}
.section-title.wide { max-width: 17ch; }
.section-kicker {
  display: inline-flex; align-items: center; gap: 9px;
  color: var(--coral); font-weight: 800; text-transform: uppercase; letter-spacing: .15em; font-size: .75rem;
  margin-bottom: 18px;
}
.section-kicker::before { content: ''; width: 30px; height: 2px; background: currentColor; border-radius: 99px; }
.lead { color: var(--muted); font-size: clamp(1.06rem, 1.8vw, 1.28rem); max-width: 65ch; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 13px;
  border: 1px solid rgba(255,255,255,.28); border-radius: 999px;
  background: rgba(255,255,255,.10); color: white; backdrop-filter: blur(10px);
  font-size: .82rem; font-weight: 700; letter-spacing: .02em;
}
.pill {
  display: inline-flex; align-items: center; gap: 8px; border-radius: 999px; padding: 8px 12px;
  background: var(--white); border: 1px solid var(--line); color: var(--muted); font-size: .84rem; font-weight: 700;
}
.pill.dot::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--mint); box-shadow:0 0 0 4px rgba(102,223,193,.17); }
.gradient-text {
  background: linear-gradient(105deg, var(--coral), var(--pink) 45%, var(--violet));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* Header */
.site-header {
  position: fixed; inset: 14px 0 auto; z-index: 1000; pointer-events: none;
}
.header-shell {
  min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 10px 10px 10px 16px; border-radius: 24px;
  background: rgba(255, 251, 247, .84); border: 1px solid rgba(255,255,255,.85);
  box-shadow: 0 12px 42px rgba(34, 21, 34, .12); backdrop-filter: blur(18px) saturate(160%);
  pointer-events: auto;
}
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: max-content; }
.brand-mark {
  position: relative; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 15px;
  color: white; font-family:'Manrope',sans-serif; font-weight: 800; letter-spacing: -.06em;
  background: linear-gradient(145deg, var(--coral), var(--pink) 55%, var(--violet));
  box-shadow: 0 10px 25px rgba(255, 79, 145, .22);
  overflow: hidden;
}
.brand-mark::after { content:''; position:absolute; width:26px; height:26px; border:1px solid rgba(255,255,255,.65); border-radius:50%; transform:translate(10px,-12px); }
.brand-copy strong { display:block; font-family:'Manrope',sans-serif; font-size:.95rem; line-height:1; }
.brand-copy span { display:block; color:var(--muted); font-size:.70rem; margin-top:4px; }
.nav { display:flex; align-items:center; justify-content:center; gap:4px; }
.nav a { padding: 10px 12px; border-radius: 13px; color:#443d48; font-weight:700; font-size:.84rem; transition:.22s ease; white-space:nowrap; }
.nav a:hover, .nav a.active { background:rgba(255,90,69,.09); color:var(--coral); }
.nav-dropdown { position:relative; }
.nav-dropdown > button { border:0; background:transparent; padding:10px 12px; border-radius:13px; font-weight:700; color:#443d48; font-size:.84rem; display:flex; gap:6px; align-items:center; }
.nav-dropdown > button:hover { background:rgba(255,90,69,.09); color:var(--coral); }
.nav-menu {
  position:absolute; top:calc(100% + 12px); left:50%; width:280px; transform:translate(-50%,8px); opacity:0; visibility:hidden;
  background:rgba(255,252,249,.98); border:1px solid var(--line); box-shadow:var(--shadow-md); border-radius:20px; padding:10px;
  transition:.2s ease;
}
.nav-dropdown:hover .nav-menu, .nav-dropdown:focus-within .nav-menu { opacity:1; visibility:visible; transform:translate(-50%,0); }
.nav-menu a { display:block; padding:12px 13px; }
.header-actions { display:flex; align-items:center; gap:8px; }
.menu-toggle { display:none; width:44px; height:44px; border:0; border-radius:15px; background:#f4ece7; color:var(--ink); }

.btn {
  --btn-bg: var(--ink); --btn-color: white;
  min-height: 48px; display:inline-flex; align-items:center; justify-content:center; gap:9px;
  border:1px solid transparent; border-radius:16px; padding: 0 18px;
  background:var(--btn-bg); color:var(--btn-color); font-weight:800; line-height:1; letter-spacing:-.01em;
  box-shadow: 0 10px 25px rgba(27,21,29,.12); transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  position:relative; overflow:hidden;
}
.btn:hover { transform:translateY(-2px); box-shadow:0 16px 34px rgba(27,21,29,.17); }
.btn:active { transform:translateY(0); }
.btn-primary { --btn-bg: linear-gradient(120deg,var(--coral),var(--pink)); }
.btn-light { --btn-bg: white; --btn-color:var(--ink); border-color:rgba(255,255,255,.55); }
.btn-ghost { --btn-bg:rgba(255,255,255,.08); --btn-color:white; border-color:rgba(255,255,255,.25); box-shadow:none; }
.btn-soft { --btn-bg:#fff0e8; --btn-color:#c9422e; box-shadow:none; }
.btn-outline { --btn-bg:transparent; --btn-color:var(--ink); border-color:var(--line-strong); box-shadow:none; }
.btn-small { min-height: 42px; border-radius:14px; padding:0 15px; font-size:.85rem; }
.btn-icon { width:48px; padding:0; }

/* Hero */
.hero {
  min-height: 790px; height: 96svh; max-height: 980px; display:flex; align-items:flex-end; position:relative; overflow:hidden;
  background:#241d27;
}
.hero-media { position:absolute; inset:0; overflow:hidden; background:url('../img/afh-2025.webp') center/cover no-repeat; }
.hero-media iframe {
  position:absolute; top:50%; left:50%; width:177.78vh; min-width:100%; height:56.25vw; min-height:100%; transform:translate(-50%,-50%);
  pointer-events:none; filter:saturate(.84) contrast(1.05) brightness(.82);
}
.hero-overlay {
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(25,12,26,.80) 0%, rgba(25,12,26,.47) 42%, rgba(25,12,26,.10) 76%),
    linear-gradient(0deg, rgba(25,12,26,.84) 0%, rgba(25,12,26,.1) 45%, rgba(25,12,26,.35) 100%),
    radial-gradient(circle at 75% 23%, rgba(255,82,146,.26), transparent 34%);
}
.hero-grain { position:absolute; inset:0; opacity:.11; mix-blend-mode:overlay; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.56'/%3E%3C/svg%3E"); }
.hero-content { position:relative; z-index:2; width:100%; color:white; padding: 160px 0 72px; }
.hero-grid { display:grid; grid-template-columns:minmax(0, 1.2fr) minmax(310px,.6fr); align-items:end; gap:60px; }
.hero h1 {
  font-family:'Manrope',sans-serif; font-size:clamp(3.8rem,8.4vw,8.5rem); line-height:.83; letter-spacing:-.075em;
  margin:20px 0 30px; max-width:8.5ch; text-wrap:balance;
}
.hero h1 .soft { color:#ffe0d3; }
.hero-sub { max-width:630px; font-size:clamp(1.05rem,1.8vw,1.35rem); color:rgba(255,255,255,.84); }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.hero-side { display:grid; gap:10px; align-self:end; }
.hero-note {
  padding:20px; border-radius:22px; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.20); backdrop-filter:blur(14px);
}
.hero-note strong { display:block; font-family:'Manrope'; font-size:1.08rem; }
.hero-note span { display:block; margin-top:5px; font-size:.9rem; color:rgba(255,255,255,.72); }
.hero-scroll { display:flex; align-items:center; gap:10px; margin-top:38px; color:rgba(255,255,255,.65); font-size:.78rem; text-transform:uppercase; letter-spacing:.13em; font-weight:800; }
.hero-scroll::before { content:''; width:38px; height:1px; background:rgba(255,255,255,.5); }

/* Pages hero */
.page-hero { padding: 170px 0 82px; position:relative; overflow:hidden; }
.page-hero::before {
  content:''; position:absolute; width:520px; height:520px; border-radius:50%; right:-140px; top:20px;
  background:radial-gradient(circle, rgba(255,79,145,.20), rgba(118,87,255,.09) 42%, transparent 72%); filter:blur(4px);
}
.page-hero .crumbs { display:flex; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:.83rem; font-weight:700; margin-bottom:24px; }
.page-hero .crumbs span { opacity:.45; }
.page-hero h1 { font-family:'Manrope'; font-size:clamp(3.1rem,7vw,7.4rem); line-height:.89; letter-spacing:-.065em; margin:0; max-width:12ch; }
.page-hero p { max-width:700px; font-size:clamp(1.05rem,2vw,1.32rem); color:var(--muted); margin-top:24px; }
.page-hero-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:28px; }
.page-hero-art { margin-top:50px; border-radius:var(--radius-lg); overflow:hidden; height:min(55vw,520px); min-height:320px; box-shadow:var(--shadow-md); position:relative; }
.page-hero-art img { width:100%; height:100%; object-fit:cover; }
.page-hero-art--portrait { background:#f2f5fb; }
.page-hero-art--portrait img { object-fit:contain; object-position:center; }
.page-hero-art::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(38,18,33,.16),transparent 45%); pointer-events:none; }

.media--portrait { background:#f2f5fb; }
.media--portrait img { object-fit:contain !important; object-position:center; }
.split-media--portrait { background:#f2f5fb; }
.split-media--portrait img { object-fit:contain; object-position:center; }
.location-grid--single { grid-template-columns:minmax(0,720px); justify-content:center; }

/* Marquee */
.marquee { overflow:hidden; border-bottom:1px solid var(--line); border-top:1px solid rgba(255,255,255,.06); background:#fff; }
.marquee-track { display:flex; width:max-content; animation:marquee 30s linear infinite; }
.marquee-list { display:flex; align-items:center; gap:18px; padding:20px 10px; white-space:nowrap; font-family:'Manrope'; font-size:clamp(1.05rem,2vw,1.55rem); font-weight:800; letter-spacing:-.03em; }
.marquee-list i { width:9px; height:9px; border-radius:50%; background:linear-gradient(135deg,var(--coral),var(--pink)); }
@keyframes marquee { to { transform:translateX(-50%); } }

/* grids/cards */
.intro-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:70px; align-items:start; }
.intro-copy { display:grid; gap:24px; }
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:52px; }
.stat { padding:24px; border-radius:22px; background:rgba(255,255,255,.78); border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.stat strong { font-family:'Manrope'; display:block; font-size:clamp(1.7rem,3vw,2.65rem); letter-spacing:-.05em; line-height:1; }
.stat span { display:block; color:var(--muted); margin-top:8px; font-size:.86rem; }
.cards-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.cards-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.card {
  position:relative; border-radius:var(--radius); background:rgba(255,255,255,.78); border:1px solid var(--line); box-shadow:var(--shadow-sm);
  padding:26px; overflow:hidden;
}
.card h3 { font-family:'Manrope'; margin:0 0 10px; font-size:1.45rem; letter-spacing:-.04em; }
.card p { color:var(--muted); margin:0; }
.card-link { display:inline-flex; align-items:center; gap:8px; margin-top:20px; font-weight:800; color:#d14837; }
.card-link::after { content:'↗'; transition:transform .2s ease; }
.card-link:hover::after { transform:translate(2px,-2px); }
.discipline-card { min-height:470px; padding:0; display:flex; align-items:flex-end; color:white; background:#2b202d; transform:translateZ(0); }
.discipline-card .media { position:absolute; inset:0; }
.discipline-card .media img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); filter:saturate(.92); }
.discipline-card::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(28,14,27,.89),rgba(28,14,27,.14) 64%); }
.discipline-card .content { position:relative; z-index:2; padding:28px; width:100%; }
.discipline-card h3 { font-size:clamp(1.6rem,2.5vw,2.35rem); }
.discipline-card p { color:rgba(255,255,255,.75); }
.discipline-card:hover .media img { transform:scale(1.045); }
.discipline-card .tag { position:absolute; top:20px; left:20px; z-index:3; background:rgba(255,255,255,.88); color:var(--ink); }
.discipline-card .go { position:absolute; top:18px; right:18px; z-index:3; display:grid; place-items:center; width:45px; height:45px; border-radius:50%; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.23); backdrop-filter:blur(10px); transition:.25s ease; }
.discipline-card:hover .go { transform:rotate(8deg) scale(1.08); background:white; color:var(--ink); }

/* Split feature */
.split { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch; }
.split-media { min-height:610px; overflow:hidden; border-radius:var(--radius-lg); position:relative; box-shadow:var(--shadow-md); }
.split-media img { width:100%; height:100%; object-fit:cover; }
.split-media .float-label { position:absolute; left:20px; bottom:20px; padding:15px 17px; border-radius:18px; background:rgba(255,255,255,.88); backdrop-filter:blur(14px); max-width:310px; box-shadow:var(--shadow-sm); }
.split-copy { border-radius:var(--radius-lg); background:linear-gradient(150deg,#fff 0%,#fff5ee 100%); border:1px solid var(--line); padding:clamp(32px,5vw,70px); display:flex; flex-direction:column; justify-content:center; }
.split-copy h2 { font-family:'Manrope'; font-size:clamp(2.3rem,4.8vw,5rem); line-height:.94; letter-spacing:-.06em; margin:0 0 24px; }
.split-copy p { color:var(--muted); font-size:1.06rem; }
.checks { display:grid; gap:13px; margin:22px 0 28px; }
.check { display:flex; gap:11px; align-items:flex-start; }
.check b { display:grid; place-items:center; flex:0 0 23px; height:23px; border-radius:50%; background:#ffe1d7; color:#cf442e; font-size:.76rem; }
.check span { color:#554f58; }

/* Timeline */
.timeline { margin-top:48px; display:grid; gap:0; border-top:1px solid var(--line); }
.timeline-item { display:grid; grid-template-columns:150px 1fr auto; gap:28px; align-items:center; padding:24px 0; border-bottom:1px solid var(--line); }
.timeline-item .time { font-family:'Manrope'; font-weight:800; color:var(--coral); }
.timeline-item h3 { margin:0; font-family:'Manrope'; font-size:1.22rem; }
.timeline-item p { margin:5px 0 0; color:var(--muted); font-size:.9rem; }
.timeline-item .price { min-width:max-content; font-family:'Manrope'; font-weight:800; }

/* Team */
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:48px; }
.team-card { background:white; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
.team-card img { width:100%; aspect-ratio:1/1; object-fit:cover; }
.team-card .copy { padding:23px; }
.team-card h3 { margin:0; font-family:'Manrope'; font-size:1.35rem; letter-spacing:-.035em; }
.team-card .role { color:var(--coral); font-weight:800; font-size:.82rem; margin-top:5px; }
.team-card p { color:var(--muted); font-size:.92rem; }

/* Gallery collage */
.gallery-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; grid-template-rows:280px 280px; gap:14px; margin-top:44px; }
.gallery-grid figure { margin:0; overflow:hidden; border-radius:26px; position:relative; background:#eee; }
.gallery-grid figure:first-child { grid-row:span 2; }
.gallery-grid figure:nth-child(4) { grid-column:span 2; }
.gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform .65s ease; }
.gallery-grid figure:hover img { transform:scale(1.035); }
.gallery-grid figcaption { position:absolute; left:14px; bottom:14px; background:rgba(255,255,255,.88); backdrop-filter:blur(10px); border-radius:12px; padding:8px 11px; font-size:.78rem; font-weight:800; }

/* CTA / colorful panel */
.color-panel {
  position:relative; overflow:hidden; border-radius:var(--radius-lg); padding:clamp(38px,6vw,82px);
  background:linear-gradient(120deg,#ff6b4c 0%,#ff4f91 48%,#7357ff 100%); color:white; box-shadow:var(--shadow-md);
}
.color-panel::before { content:''; position:absolute; width:300px; height:300px; border-radius:50%; right:-100px; top:-120px; border:1px solid rgba(255,255,255,.38); box-shadow:0 0 0 36px rgba(255,255,255,.06),0 0 0 76px rgba(255,255,255,.04); }
.color-panel h2 { position:relative; z-index:2; font-family:'Manrope'; margin:0; font-size:clamp(2.5rem,5.8vw,6.2rem); line-height:.91; letter-spacing:-.065em; max-width:11ch; }
.color-panel p { position:relative; z-index:2; color:rgba(255,255,255,.82); max-width:650px; font-size:1.1rem; }
.color-panel .actions { position:relative; z-index:2; display:flex; gap:10px; flex-wrap:wrap; margin-top:26px; }

/* FAQ */
.faq { border-top:1px solid var(--line); margin-top:42px; }
.faq details { border-bottom:1px solid var(--line); }
.faq summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 0; font-family:'Manrope'; font-weight:800; font-size:1.05rem; cursor:pointer; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:'+'; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:#fff0e8; color:#c5412e; transition:.2s ease; flex:0 0 auto; }
.faq details[open] summary::after { transform:rotate(45deg); }
.faq .answer { padding:0 50px 22px 0; color:var(--muted); max-width:850px; }

/* Forms */
.form-card { border-radius:var(--radius-lg); padding:clamp(26px,5vw,54px); background:white; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
.field label { font-weight:800; font-size:.84rem; }
.field input, .field select, .field textarea {
  width:100%; border:1px solid var(--line-strong); background:#fffdfb; color:var(--ink); border-radius:15px; padding:14px 15px; outline:none; transition:.2s ease;
}
.field textarea { min-height:150px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:rgba(118,87,255,.55); box-shadow:0 0 0 4px rgba(118,87,255,.08); }
.field small { color:var(--muted); }
.form-status { margin-top:14px; min-height:22px; color:var(--muted); font-size:.9rem; }
.form-status.success { color:#0a765e; }
.form-status.error { color:#b73336; }
.hp { position:absolute !important; left:-99999px !important; }

/* Contact / location */
.location-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:40px; }
.location-card { background:white; border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow-sm); }
.location-card .num { display:grid; place-items:center; width:42px; height:42px; border-radius:14px; background:#fff0e8; color:#d14531; font-family:'Manrope'; font-weight:800; }
.location-card h3 { font-family:'Manrope'; font-size:1.42rem; margin:18px 0 6px; }
.location-card p { color:var(--muted); margin:0; }
.contact-list { display:grid; gap:11px; margin-top:20px; }
.contact-item { display:flex; align-items:center; gap:12px; color:#4d4651; font-weight:700; }
.contact-item .ico { width:36px; height:36px; border-radius:12px; display:grid; place-items:center; background:#f8eee8; }

/* Tickets */
.ticket-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:40px; }
.ticket-card { background:white; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
.ticket-card .ticket-media { aspect-ratio:4/3; background:#f2e8e2; overflow:hidden; }
.ticket-card .ticket-media img { width:100%; height:100%; object-fit:cover; }
.ticket-card .ticket-copy { padding:24px; }
.ticket-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--muted); font-size:.8rem; font-weight:700; }
.ticket-card h3 { font-family:'Manrope'; font-size:1.4rem; margin:12px 0 8px; }
.ticket-card p { color:var(--muted); }
.ticket-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:20px; }
.ticket-price { font-family:'Manrope'; font-size:1.35rem; font-weight:800; }
.empty-state { padding:38px; border-radius:var(--radius); background:linear-gradient(135deg,#fff,#fff2eb); border:1px dashed rgba(255,90,69,.35); text-align:center; }
.empty-state strong { display:block; font-family:'Manrope'; font-size:1.4rem; }
.empty-state p { color:var(--muted); max-width:540px; margin:8px auto 0; }

/* Archive poster */
.poster-feature { display:grid; grid-template-columns:minmax(260px,.68fr) 1.32fr; gap:30px; align-items:center; }
.poster-feature .poster { border-radius:32px; overflow:hidden; box-shadow:var(--shadow-md); transform:rotate(-1.5deg); }
.poster-feature .poster img { width:100%; }
.poster-feature h2 { font-family:'Manrope'; font-size:clamp(2.4rem,5vw,5rem); line-height:.94; letter-spacing:-.06em; margin:0 0 20px; }
.poster-feature p { color:var(--muted); font-size:1.05rem; }

/* SEO article */
.prose { font-size:1.02rem; color:#554f58; }
.prose h2, .prose h3 { color:var(--ink); font-family:'Manrope'; letter-spacing:-.04em; }
.prose h2 { font-size:clamp(1.8rem,3vw,2.7rem); margin:2.2em 0 .65em; }
.prose h3 { font-size:1.35rem; margin:1.8em 0 .55em; }
.prose p { max-width:78ch; }
.prose ul { padding-left:1.2rem; }
.prose li { margin:.5rem 0; }
.prose .callout { margin:30px 0; padding:24px; background:#fff4eb; border-left:4px solid var(--coral); border-radius:0 18px 18px 0; }

/* Footer */
.footer { padding:80px 0 28px; background:#241726; color:white; position:relative; overflow:hidden; }
.footer::after { content:'AFH'; position:absolute; right:-.05em; bottom:-.27em; font-family:'Manrope'; font-weight:800; font-size:min(28vw,360px); line-height:1; color:rgba(255,255,255,.035); letter-spacing:-.08em; pointer-events:none; }
.footer-grid { position:relative; z-index:2; display:grid; grid-template-columns:1.25fr .75fr .75fr .75fr; gap:40px; }
.footer-brand p { color:rgba(255,255,255,.62); max-width:360px; }
.footer h4 { font-family:'Manrope'; margin:0 0 14px; font-size:.9rem; text-transform:uppercase; letter-spacing:.12em; color:#ffceb9; }
.footer-links { display:grid; gap:9px; color:rgba(255,255,255,.7); font-size:.92rem; }
.footer-links a:hover { color:white; }
.footer-bottom { position:relative; z-index:2; border-top:1px solid rgba(255,255,255,.12); margin-top:48px; padding-top:22px; display:flex; justify-content:space-between; gap:18px; color:rgba(255,255,255,.46); font-size:.8rem; }

/* Admin */
.admin-body { background:#f6f3f0; min-height:100vh; }
.admin-shell { display:grid; grid-template-columns:260px 1fr; min-height:100vh; }
.admin-side { position:sticky; top:0; height:100vh; background:#211824; color:white; padding:22px; display:flex; flex-direction:column; }
.admin-side .brand-copy span { color:rgba(255,255,255,.55); }
.admin-nav { display:grid; gap:5px; margin-top:30px; }
.admin-nav button { text-align:left; border:0; background:transparent; color:rgba(255,255,255,.64); padding:12px 13px; border-radius:13px; font-weight:700; }
.admin-nav button:hover, .admin-nav button.active { color:white; background:rgba(255,255,255,.09); }
.admin-side .bottom { margin-top:auto; display:grid; gap:8px; }
.admin-main { padding:34px; min-width:0; }
.admin-top { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.admin-top h1 { font-family:'Manrope'; margin:0; letter-spacing:-.04em; }
.admin-panels { display:grid; gap:18px; }
.admin-panel { background:white; border:1px solid var(--line); border-radius:24px; padding:24px; box-shadow:0 8px 25px rgba(35,22,35,.05); }
.admin-panel h2 { font-family:'Manrope'; margin:0 0 5px; }
.admin-panel > p { margin-top:0; color:var(--muted); }
.admin-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.admin-kpi { padding:20px; background:white; border:1px solid var(--line); border-radius:20px; }
.admin-kpi span { color:var(--muted); font-size:.78rem; font-weight:700; }
.admin-kpi strong { display:block; font-family:'Manrope'; font-size:2rem; margin-top:3px; }
.admin-list { display:grid; gap:10px; }
.admin-row { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; padding:15px; background:#faf8f6; border-radius:16px; border:1px solid rgba(25,19,28,.07); }
.admin-row h4 { margin:0; }
.admin-row p { margin:3px 0 0; color:var(--muted); font-size:.85rem; }
.admin-actions { display:flex; gap:6px; }
.icon-btn { width:38px; height:38px; border-radius:12px; border:1px solid var(--line); background:white; display:grid; place-items:center; }
.login-wrap { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at 20% 20%, rgba(255,90,69,.14), transparent 30rem), #f8f4f0; }
.login-card { width:min(100%,430px); background:white; border-radius:28px; padding:32px; border:1px solid var(--line); box-shadow:var(--shadow-md); }
.login-card h1 { font-family:'Manrope'; letter-spacing:-.05em; font-size:2.2rem; margin:22px 0 8px; }
.login-card p { color:var(--muted); }
.admin-modal { position:fixed; inset:0; z-index:1200; background:rgba(25,18,27,.48); backdrop-filter:blur(9px); display:grid; place-items:center; padding:20px; opacity:0; visibility:hidden; transition:.2s; }
.admin-modal.open { opacity:1; visibility:visible; }
.admin-modal-card { width:min(100%,680px); max-height:90vh; overflow:auto; background:white; border-radius:28px; padding:28px; box-shadow:var(--shadow-xl); }

/* toast */
.toast-wrap { position:fixed; right:18px; bottom:18px; z-index:2000; display:grid; gap:8px; }
.toast { background:#241726; color:white; border-radius:16px; padding:13px 16px; box-shadow:var(--shadow-md); max-width:360px; font-size:.9rem; animation:toastIn .25s ease; }
@keyframes toastIn { from{opacity:0;transform:translateY(10px)} }

/* reveal */
[data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .72s cubic-bezier(.2,.7,.2,1),transform .72s cubic-bezier(.2,.7,.2,1); }
[data-reveal].is-visible { opacity:1; transform:none; }
[data-reveal-delay='1'] { transition-delay:.08s; }
[data-reveal-delay='2'] { transition-delay:.16s; }
[data-reveal-delay='3'] { transition-delay:.24s; }
[data-reveal-delay='4'] { transition-delay:.32s; }

/* cursor */
.cursor-dot { position:fixed; top:0; left:0; width:9px; height:9px; border-radius:50%; background:var(--coral); z-index:3000; pointer-events:none; transform:translate(-50%,-50%); opacity:0; transition:width .2s,height .2s,opacity .2s,background .2s; mix-blend-mode:multiply; }
.cursor-dot.on { opacity:.8; }
.cursor-dot.hover { width:34px; height:34px; background:rgba(255,90,69,.24); }

@media (max-width: 1080px) {
  .nav { display:none; }
  .menu-toggle { display:grid; place-items:center; }
  .hero-grid { grid-template-columns:1fr; gap:28px; }
  .hero-side { grid-template-columns:repeat(2,1fr); }
  .intro-grid { grid-template-columns:1fr; gap:30px; }
  .stats { grid-template-columns:repeat(2,1fr); }
  .cards-3 { grid-template-columns:1fr 1fr; }
  .cards-3 > :last-child { grid-column:1/-1; }
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1.3fr 1fr 1fr; }
  .footer-grid > :last-child { grid-column:2/4; }
  .ticket-grid { grid-template-columns:repeat(2,1fr); }
  .admin-kpis { grid-template-columns:repeat(2,1fr); }
}

.mobile-nav { position:fixed; inset:0; z-index:999; background:rgba(255,250,245,.97); backdrop-filter:blur(16px); padding:100px 24px 30px; transform:translateY(-105%); transition:.42s cubic-bezier(.2,.75,.2,1); overflow:auto; }
.mobile-nav.open { transform:none; }
.mobile-nav a { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); padding:18px 4px; font-family:'Manrope'; font-size:1.32rem; font-weight:800; }
.mobile-nav .mobile-actions { display:grid; gap:8px; margin-top:24px; }

@media (max-width: 760px) {
  :root { --radius:22px; --radius-lg:28px; }
  .container, .container.narrow { width:min(calc(100% - 28px), var(--max)); }
  .section { padding:78px 0; }
  .section-sm { padding:54px 0; }
  .site-header { inset:8px 0 auto; }
  .header-shell { min-height:60px; border-radius:20px; padding:8px 8px 8px 12px; }
  .brand-mark { width:39px; height:39px; }
  .brand-copy span { display:none; }
  .header-actions .btn { display:none; }
  .hero { min-height:720px; height:100svh; align-items:flex-end; }
  .hero-content { padding:130px 0 38px; }
  .hero h1 { font-size:clamp(3.15rem,18vw,5.4rem); max-width:8ch; margin-bottom:20px; }
  .hero-sub { font-size:1rem; }
  .hero-actions { display:grid; grid-template-columns:1fr; }
  .hero-actions .btn { width:100%; }
  .hero-side { grid-template-columns:1fr; }
  .hero-note:nth-child(2) { display:none; }
  .hero-scroll { display:none; }
  .page-hero { padding:125px 0 62px; }
  .page-hero h1 { font-size:clamp(3rem,15vw,5.3rem); }
  .page-hero-art { margin-top:32px; min-height:280px; }
  .stats { grid-template-columns:1fr 1fr; gap:8px; }
  .stat { padding:18px; }
  .cards-3, .cards-2 { grid-template-columns:1fr; }
  .cards-3 > :last-child { grid-column:auto; }
  .discipline-card { min-height:420px; }
  .split { grid-template-columns:1fr; }
  .split-media { min-height:430px; }
  .timeline-item { grid-template-columns:1fr auto; gap:10px; }
  .timeline-item .time { grid-column:1/-1; }
  .timeline-item .price { align-self:start; }
  .team-grid { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:290px 220px 220px; }
  .gallery-grid figure:first-child { grid-column:1/-1; grid-row:auto; }
  .gallery-grid figure:nth-child(4) { grid-column:1/-1; }
  .form-grid { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  .location-grid { grid-template-columns:1fr; }
  .poster-feature { grid-template-columns:1fr; }
  .poster-feature .poster { width:min(90%,420px); margin:auto; }
  .ticket-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:30px; }
  .footer-grid > :first-child, .footer-grid > :last-child { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; }
  .admin-shell { grid-template-columns:1fr; }
  .admin-side { position:relative; height:auto; }
  .admin-nav { display:flex; overflow:auto; margin-top:16px; }
  .admin-nav button { white-space:nowrap; }
  .admin-side .bottom { display:none; }
  .admin-main { padding:20px 14px 40px; }
  .admin-kpis { grid-template-columns:1fr 1fr; }
  .cursor-dot { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  [data-reveal] { opacity:1; transform:none; }
}

/* Admin extended */
.admin-alert { margin:18px 0 0; padding:13px 15px; border-radius:14px; background:#fff0e8; color:#9d392d; border:1px solid rgba(255,90,69,.18); font-size:.88rem; }
.admin-quick-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:20px; }
.admin-quick { border:1px solid var(--line); background:#fcfaf8; border-radius:18px; padding:17px; display:flex; align-items:flex-start; gap:12px; text-align:left; transition:.2s ease; }
.admin-quick:hover { transform:translateY(-2px); box-shadow:var(--shadow-sm); background:#fff; }
.admin-quick b { flex:0 0 38px; height:38px; display:grid; place-items:center; border-radius:12px; background:#fff0e8; color:#cd4632; font-size:1.2rem; }
.admin-quick strong,.admin-quick small { display:block; }.admin-quick small { color:var(--muted); margin-top:4px; line-height:1.35; }
.admin-checklist { display:grid; gap:10px; margin-top:20px; }.admin-checklist>div { display:flex; gap:13px; align-items:flex-start; padding:15px; background:#faf8f6; border-radius:16px; }.admin-checklist>div>span { display:grid; place-items:center; width:32px; height:32px; border-radius:10px; background:#fff0e8; color:#cf4632; font-weight:800; }.admin-checklist p { margin:0; }.admin-checklist small { display:block; color:var(--muted); margin-top:3px; }
.admin-row-meta { display:flex; gap:8px; align-items:center; color:var(--muted); font-size:.75rem; margin-bottom:5px; }
.status { display:inline-flex; padding:4px 8px; border-radius:999px; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; background:#eee; }.status-active,.status-paid { background:#e6f8f2; color:#0b725d; }.status-hidden { background:#eee8f1; color:#645b69; }.status-archive { background:#fff0df; color:#9e601a; }
.panel-head,.modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }.modal-head h2 { font-family:'Manrope'; font-size:2rem; letter-spacing:-.05em; margin:0 0 22px; }.modal-head .section-kicker { margin-bottom:8px; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }.detail-grid>div { padding:15px; border-radius:14px; background:#faf8f6; }.detail-grid small,.detail-grid strong { display:block; }.detail-grid small { color:var(--muted); margin-bottom:4px; }.message-box { margin-top:14px; padding:18px; border-radius:16px; background:#fff6ef; color:#554f58; }
.admin-table-wrap { overflow:auto; margin-top:18px; }.admin-table { width:100%; border-collapse:collapse; min-width:760px; }.admin-table th,.admin-table td { text-align:left; padding:13px 12px; border-bottom:1px solid var(--line); font-size:.87rem; }.admin-table th { color:var(--muted); font-size:.73rem; text-transform:uppercase; letter-spacing:.08em; }
.tech-list { display:grid; gap:8px; margin-top:18px; }.tech-list>div { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:13px 15px; border-radius:14px; background:#faf8f6; }.tech-list span { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.82rem; }.tech-list b { font-size:.75rem; color:var(--muted); }
code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; background:rgba(25,19,28,.06); border-radius:6px; padding:.12em .35em; }
@media (max-width:900px){.admin-quick-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}}

/* Dynamic content */
.schedule-notice { grid-column:1/-1; padding:18px 0 24px; border-bottom:1px solid var(--line); }
.schedule-notice p { margin:9px 0 0; color:var(--muted); max-width:780px; }
.news-card { padding:0; overflow:hidden; }
.news-thumb { width:100%; aspect-ratio:16/10; object-fit:cover; }
.news-body { padding:23px; }
.news-body > small { display:block; color:var(--muted); margin:10px 0 4px; font-size:.78rem; }
.news-body h3 { margin:5px 0 10px; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.ticket-buy { display:flex; align-items:center; gap:7px; }.ticket-buy select { min-height:42px; border-radius:13px; border:1px solid var(--line-strong); background:#fffaf5; padding:0 9px; color:var(--ink); font-weight:700; }
@media(max-width:520px){.ticket-bottom{align-items:flex-end}.ticket-buy{flex-direction:column;align-items:stretch}.ticket-buy select,.ticket-buy .btn{width:100%}}

/* ========================================================================== */
/* AFH v4 — direction visuelle inspirée des interfaces Amicro                 */
/* Neutral dark canvas, compact typography, pill navigation, subtle motion.  */
/* ========================================================================== */
:root{
  --paper:#121212;--paper-2:#171717;--white:#1a1a1a;--ink:#f3f3f3;--muted:#898989;
  --line:rgba(255,255,255,.075);--line-strong:rgba(255,255,255,.14);
  --coral:#ff724d;--orange:#e86f00;--pink:#ff724d;--violet:#9b86ff;--blue:#70a0ff;
  --sun:#f8b84e;--mint:#63d8ae;--plum:#101010;
  --shadow-sm:0 1px 0 rgba(255,255,255,.025),0 18px 42px rgba(0,0,0,.18);
  --shadow-md:0 1px 0 rgba(255,255,255,.035),0 28px 70px rgba(0,0,0,.28);
  --shadow-xl:0 40px 100px rgba(0,0,0,.45);
  --radius:20px;--radius-lg:28px;--radius-sm:14px;--max:1240px;--header-h:68px;
}
html{background:#121212;color-scheme:dark}
body{
  color:var(--ink);background:
  radial-gradient(850px 430px at 50% -180px,rgba(255,114,77,.105),transparent 70%),
  #121212;font-family:'DM Sans',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  letter-spacing:-.008em;
}
::selection{background:#fff;color:#111}
.container{width:min(calc(100% - 48px),var(--max))}
.section{padding:96px 0;border-top:1px solid rgba(255,255,255,.025)}
.section-sm{padding:64px 0}.section-tight{padding:42px 0}
.section-cream,.section-white{background:#141414}.section-plum{background:#0e0e0e}
.section-title,.page-hero h1,.split-copy h2,.poster-feature h2{font-family:'Manrope',sans-serif;font-weight:560;letter-spacing:-.052em}
.section-title{font-size:clamp(2.15rem,4vw,3.95rem);line-height:1.02;max-width:13ch}.section-title.wide{max-width:18ch}
.section-kicker{color:#a0a0a0;font-size:.68rem;letter-spacing:.13em;margin-bottom:14px}.section-kicker::before{width:7px;height:7px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px rgba(255,114,77,.08)}
.lead,.prose,.card p,.team-card p,.location-card p,.ticket-card p,.poster-feature p{color:var(--muted)}
.gradient-text{background:none;color:#fff}
.pill{background:#1b1b1b;border-color:var(--line);color:#a9a9a9;padding:7px 11px;font-size:.78rem}

/* compact floating navigation */
.site-header{inset:12px 0 auto}
.header-shell{min-height:58px;padding:7px 8px 7px 12px;border-radius:18px;background:rgba(18,18,18,.80);border:1px solid rgba(255,255,255,.08);box-shadow:0 16px 50px rgba(0,0,0,.24);backdrop-filter:blur(20px) saturate(135%)}
.brand{gap:9px}.brand-mark{width:37px;height:37px;border-radius:12px;background:#202020;border:1px solid rgba(255,255,255,.08);box-shadow:none;color:#fff;font-size:.8rem;letter-spacing:-.04em}.brand-mark::after{width:7px;height:7px;background:var(--coral);border:0;right:5px;top:5px;transform:none;box-shadow:0 0 0 3px rgba(255,114,77,.11)}
.brand-copy strong{font-size:.88rem;font-weight:650}.brand-copy span{color:#727272;font-size:.64rem}
.nav{gap:2px}.nav a,.nav-dropdown>button{padding:8px 11px;border-radius:999px;color:#8e8e8e;font-weight:550;font-size:.78rem}.nav a:hover,.nav a.active,.nav-dropdown>button:hover{background:rgba(255,255,255,.065);color:#fff}
.nav-menu{top:calc(100% + 10px);width:275px;background:rgba(24,24,24,.96);border-color:rgba(255,255,255,.08);box-shadow:0 30px 80px rgba(0,0,0,.42);border-radius:18px}.nav-menu a{border-radius:11px}.nav-menu a:hover{background:#222}
.menu-toggle{background:#242424;color:#fff;border:1px solid var(--line);border-radius:13px}
.header-actions{gap:7px}
.btn{min-height:44px;border-radius:999px;padding:0 16px;background:#f2f2f2;color:#111;font-weight:650;letter-spacing:-.015em;box-shadow:none;border:1px solid transparent;transition:transform .18s cubic-bezier(.2,.8,.2,1),background .18s,border-color .18s,color .18s}
.btn:hover{transform:translateY(-1px);box-shadow:none}.btn:active{transform:scale(.975)}
.btn-primary{--btn-bg:#f1f1f1;background:#f1f1f1;color:#111}.btn-primary:hover{background:#fff}
.btn-ghost{--btn-bg:#1b1b1b;--btn-color:#d9d9d9;background:#1b1b1b;color:#d9d9d9;border-color:rgba(255,255,255,.08)}.btn-ghost:hover{background:#222;border-color:rgba(255,255,255,.12)}
.btn-light{background:#fff;color:#111}.btn-soft{background:#201814;color:#ff8e6e;color:#ff8e6e}.btn-outline{background:#181818;color:#c8c8c8;border-color:var(--line)}.btn-outline:hover{background:#202020;color:#fff}
.btn-small{min-height:38px;padding:0 13px;border-radius:999px;font-size:.77rem}.btn b{font-weight:500;transition:transform .18s}.btn:hover b{transform:translate(2px,-1px)}

/* Homepage hero: editorial copy + contained stage video */
.hero.hero-amicro{height:auto;max-height:none;min-height:0;display:block;padding:132px 0 76px;background:#121212;overflow:hidden;color:#fff}
.hero-amicro .hero-ambient{position:absolute;inset:0;pointer-events:none}.hero-amicro .hero-ambient i:first-child{position:absolute;width:720px;height:460px;border-radius:50%;left:50%;top:-360px;transform:translateX(-50%);background:rgba(255,114,77,.15);filter:blur(110px)}.hero-amicro .hero-ambient i:last-child{position:absolute;width:420px;height:420px;border-radius:50%;right:-250px;top:35%;background:rgba(119,96,255,.05);filter:blur(110px)}
.hero-amicro-inner{position:relative;z-index:2;display:grid;gap:54px}
.hero-copy-amicro{display:flex;flex-direction:column;align-items:center;text-align:center;margin:auto;max-width:850px}
.hero-amicro .eyebrow{padding:7px 11px;background:#191919;border:1px solid rgba(255,255,255,.075);color:#a8a8a8;font-size:.74rem;font-weight:550}.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px rgba(255,114,77,.09);animation:afhPulse 2.2s ease-in-out infinite}
@keyframes afhPulse{0%,100%{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}
.hero-amicro h1{font-family:'Manrope',sans-serif;font-size:clamp(2.85rem,6.2vw,5.7rem);font-weight:540;line-height:.96;letter-spacing:-.063em;max-width:11ch;margin:24px auto 20px;text-wrap:balance}.hero-amicro h1 .soft{color:#858585}
.hero-amicro .hero-sub{max-width:650px;color:#858585;font-size:clamp(.98rem,1.6vw,1.15rem);line-height:1.55;margin:0}.hero-amicro .hero-actions{margin-top:27px;justify-content:center;gap:9px}.hero-amicro .hero-scroll{display:none}
.hero-showcase{position:relative;width:min(100%,1050px);margin:auto;padding:9px;border:1px solid rgba(255,255,255,.08);background:#171717;border-radius:26px;box-shadow:0 42px 100px rgba(0,0,0,.38);overflow:hidden;isolation:isolate}.hero-showcase::before{content:'';position:absolute;width:440px;height:260px;left:var(--spot-x,50%);top:var(--spot-y,0%);transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,255,255,.075),transparent 68%);pointer-events:none;z-index:-1}
.showcase-top{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 12px;color:#777;font-size:.65rem;letter-spacing:.07em}.showcase-top>div{display:flex;align-items:center;gap:8px}.showcase-top strong{color:#aaa;font-size:.66rem}.showcase-dot{width:7px;height:7px;border-radius:50%;background:#5f5f5f}.showcase-live{padding:5px 8px;border-radius:999px;background:#202020;border:1px solid rgba(255,255,255,.06)}
.hero-amicro .hero-media{position:relative;inset:auto;aspect-ratio:16/8.65;border-radius:18px;overflow:hidden;background:url('../img/afh-2025.webp') center/cover no-repeat}.hero-amicro .hero-media iframe{position:absolute;top:50%;left:50%;width:177.78vh;min-width:100%;height:56.25vw;min-height:100%;transform:translate(-50%,-50%);filter:saturate(.72) contrast(1.06) brightness(.72)}.hero-amicro .hero-overlay{background:linear-gradient(0deg,rgba(8,8,8,.78),transparent 42%),linear-gradient(90deg,rgba(10,10,10,.18),transparent 60%)}.hero-amicro .hero-grain{opacity:.07}
.showcase-caption{position:absolute;left:22px;right:22px;bottom:19px;z-index:4;display:flex;align-items:end;justify-content:space-between;gap:20px;color:#fff}.showcase-caption>span{font-size:clamp(1rem,2vw,1.55rem);font-weight:600;letter-spacing:-.03em;max-width:18ch}.showcase-caption>a{font-size:.75rem;color:#bcbcbc;padding:8px 10px;border-radius:999px;background:rgba(18,18,18,.60);border:1px solid rgba(255,255,255,.09);backdrop-filter:blur(10px)}
.hero-amicro .hero-side{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:9px}.hero-amicro .hero-note{padding:13px 14px;border-radius:15px;background:#1a1a1a;border:1px solid rgba(255,255,255,.055);backdrop-filter:none;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}.hero-amicro .hero-note strong{font-size:.81rem;font-weight:600}.hero-amicro .hero-note span{font-size:.69rem;color:#777;margin-top:2px}.hero-amicro .hero-note .mini-label{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:#222;color:#888;font-size:.61rem;margin:0}

/* secondary heroes */
.page-hero{padding:142px 0 76px;background:#121212;text-align:center}.page-hero::before{width:680px;height:360px;right:50%;transform:translateX(50%);top:-230px;background:radial-gradient(circle,rgba(255,114,77,.10),transparent 69%);filter:blur(20px)}.page-hero .container{display:flex;flex-direction:column;align-items:center}.page-hero .crumbs{justify-content:center;color:#666;font-size:.73rem;margin-bottom:18px}.page-hero h1{font-size:clamp(2.65rem,5.6vw,5.2rem);line-height:.98;max-width:13ch}.page-hero p{font-size:clamp(.98rem,1.6vw,1.13rem);color:#858585;margin-top:18px}.page-hero-actions{justify-content:center;margin-top:24px}.page-hero-art{width:min(100%,1050px);height:min(52vw,540px);margin-top:44px;border-radius:24px;border:1px solid var(--line);box-shadow:var(--shadow-md);background:#171717;padding:8px}.page-hero-art img{border-radius:17px}

/* category rail */
.marquee{background:#141414;border-color:var(--line)}.marquee-track{animation:marquee 44s linear infinite}.marquee-list{gap:10px;padding:16px 7px;font-size:.72rem;font-family:'DM Sans';font-weight:600;letter-spacing:.01em;color:#777}.marquee-list span{padding:7px 11px;border-radius:999px;background:#191919;border:1px solid rgba(255,255,255,.055)}.marquee-list i{width:4px;height:4px;background:#444}

/* cards and content surfaces */
.intro-grid{gap:58px}.intro-copy{gap:18px}.stats{gap:10px;margin-top:44px}.stat,.card,.team-card,.location-card,.ticket-card,.form-card,.split-copy,.empty-state{background:#181818;border-color:var(--line);box-shadow:none}.stat{padding:20px;border-radius:17px;transition:transform .2s,border-color .2s,background .2s}.stat:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.12);background:#1b1b1b}.stat strong{font-size:clamp(1.55rem,2.5vw,2.15rem);font-weight:600}.stat span{color:#737373;font-size:.78rem}
.cards-3,.cards-2{gap:12px}.card{border-radius:20px;padding:22px;transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s,background .22s}.card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.13);background:#1a1a1a}.card h3{font-size:1.25rem;font-weight:590}.card-link{color:#c7c7c7;font-weight:600;font-size:.83rem}.card-link:hover{color:#fff}
.discipline-card{min-height:420px;background:#181818;border:1px solid var(--line)}.discipline-card::after{background:linear-gradient(0deg,rgba(8,8,8,.88),rgba(8,8,8,.06) 68%)}.discipline-card .content{padding:23px}.discipline-card h3{font-size:clamp(1.45rem,2.3vw,2rem)}.discipline-card p{color:#b1b1b1;font-size:.88rem}.discipline-card .tag{top:14px;left:14px;background:rgba(20,20,20,.72);color:#c4c4c4;border-color:rgba(255,255,255,.09);backdrop-filter:blur(12px)}.discipline-card .go{top:13px;right:13px;width:37px;height:37px;background:rgba(18,18,18,.64);border-color:rgba(255,255,255,.09)}.discipline-card:hover .go{background:#fff;color:#111}
.split{gap:12px}.split-media{min-height:560px;border-radius:24px;box-shadow:none;border:1px solid var(--line);padding:7px;background:#181818}.split-media img{border-radius:17px}.split-media .float-label{background:rgba(18,18,18,.78);color:#ddd;border:1px solid rgba(255,255,255,.08);box-shadow:none;border-radius:14px}.split-media .float-label span{color:#777}.split-copy{border-radius:24px;background:#181818;padding:clamp(28px,5vw,58px)}.split-copy h2{font-size:clamp(2.15rem,4vw,3.7rem)}.split-copy p,.check span{color:#858585}.check b{background:#211a17;color:#ff8f70}
.timeline{border-color:var(--line)}.timeline-item{border-color:var(--line)}.timeline-item .time{color:#aaa}.timeline-item p{color:#747474}.timeline-item .price{font-weight:600}
.team-grid{gap:12px;margin-top:38px}.team-card{border-radius:20px}.team-card .copy{padding:20px}.team-card h3{font-size:1.2rem}.team-card .role{color:#b0b0b0}.gallery-grid{gap:10px}.gallery-grid figure{border-radius:20px;border:1px solid var(--line);background:#181818}.gallery-grid figcaption{background:rgba(18,18,18,.75);color:#d5d5d5;border:1px solid rgba(255,255,255,.08);border-radius:10px}

/* forms, faq and ticketing */
.faq,.faq details{border-color:var(--line)}.faq summary{font-weight:600}.faq summary::after{background:#1d1d1d;color:#a8a8a8}.faq .answer{color:#818181}
.form-card{border-radius:24px}.field label{font-weight:600;color:#aaa}.field input,.field select,.field textarea{background:#141414;color:#eee;border-color:var(--line-strong);border-radius:13px}.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(255,255,255,.24);box-shadow:0 0 0 3px rgba(255,255,255,.035)}.field small{color:#6f6f6f}.location-grid{gap:12px}.location-card{border-radius:20px;padding:23px}.location-card .num,.contact-item .ico{background:#202020;color:#aaa}.contact-item{color:#aaa}.ticket-grid{gap:12px}.ticket-card{border-radius:20px}.ticket-card .ticket-media{background:#141414}.ticket-card .ticket-copy{padding:21px}.ticket-card h3{font-size:1.25rem}.ticket-price{font-size:1.2rem;font-weight:600}.ticket-buy select{background:#141414;color:#ddd;border-color:var(--line-strong)}.empty-state{background:#181818;border-style:dashed;border-color:rgba(255,255,255,.12)}.empty-state strong{font-size:1.2rem}.prose{color:#8e8e8e}.prose h2,.prose h3{color:#eee}.prose .callout{background:#191919;border-left-color:#555}.poster-feature .poster{border-radius:20px;box-shadow:none;border:1px solid var(--line);padding:7px;background:#181818}.poster-feature .poster img{border-radius:14px}

/* footer */
.footer{padding:70px 0 26px;background:#0d0d0d;border-top:1px solid var(--line)}.footer::after{color:rgba(255,255,255,.018)}.footer-brand p,.footer-links{color:#707070}.footer h4{color:#9b9b9b;font-size:.7rem}.footer-bottom{border-color:var(--line);color:#555}

/* micro-interactions */
[data-reveal]{opacity:0;transform:translateY(18px) scale(.992);filter:blur(4px);transition:opacity .62s cubic-bezier(.16,1,.3,1),transform .62s cubic-bezier(.16,1,.3,1),filter .62s cubic-bezier(.16,1,.3,1)}[data-reveal].is-visible{opacity:1;transform:none;filter:none}
[data-spotlight],.card,.stat,.team-card,.location-card,.ticket-card{position:relative;isolation:isolate}.card::before,.stat::before,.team-card::before,.location-card::before,.ticket-card::before{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(420px circle at var(--spot-x,50%) var(--spot-y,-20%),rgba(255,255,255,.055),transparent 48%);opacity:0;transition:opacity .25s;pointer-events:none;z-index:-1}.card:hover::before,.stat:hover::before,.team-card:hover::before,.location-card:hover::before,.ticket-card:hover::before{opacity:1}
.cursor-dot{width:6px;height:6px;background:#fff;mix-blend-mode:difference}.cursor-dot.on{opacity:.85}.cursor-dot.hover{width:30px;height:30px;background:#fff}

/* mobile drawer */
.mobile-nav{background:rgba(15,15,15,.97);color:#fff}.mobile-nav a{border-color:var(--line);font-size:1.15rem}.mobile-nav .btn-outline{color:#fff}

@media(max-width:1080px){.hero-amicro-inner{gap:42px}.hero-showcase{width:100%}.hero-amicro .hero-side{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
  .container,.container.narrow{width:min(calc(100% - 28px),var(--max))}.section{padding:70px 0}.site-header{inset:7px 0 auto}.header-shell{min-height:54px;border-radius:16px}.brand-mark{width:36px;height:36px}.hero.hero-amicro{height:auto;min-height:0;padding:112px 0 54px}.hero-amicro-inner{gap:34px}.hero-amicro h1{font-size:clamp(2.7rem,13vw,4.5rem);max-width:10ch;margin-top:20px}.hero-amicro .hero-sub{font-size:.96rem}.hero-amicro .hero-actions{display:flex;flex-direction:column;width:100%;max-width:360px}.hero-amicro .hero-actions .btn{width:100%}.hero-showcase{padding:6px;border-radius:19px}.showcase-top{height:38px}.showcase-live{display:none}.hero-amicro .hero-media{aspect-ratio:4/5;border-radius:14px}.showcase-caption{left:15px;right:15px;bottom:14px;display:grid;gap:10px}.showcase-caption>a{width:max-content}.hero-amicro .hero-side{grid-template-columns:1fr;padding-top:6px}.hero-amicro .hero-note{border-radius:13px}.hero-amicro .hero-note:nth-child(2){display:grid}.page-hero{padding:116px 0 58px}.page-hero h1{font-size:clamp(2.6rem,13vw,4.35rem)}.page-hero-art{padding:6px;border-radius:19px}.page-hero-art img{border-radius:13px}.section-title{font-size:clamp(2rem,10vw,3rem)}.discipline-card{min-height:390px}.split-media{min-height:390px}.stats{grid-template-columns:1fr 1fr}.stat{padding:16px}.footer{padding-top:58px}
}
@media(prefers-reduced-motion:reduce){.pulse-dot{animation:none}.marquee-track{animation:none}}

/* ==========================================================
   V5 — AFH LIGHT EDITORIAL
   Direction: warm light, editorial, image-led, no dark theme.
   ========================================================== */
:root{
  --paper:#fbf7f1;--paper-2:#f5eee5;--white:#fff;--ink:#171512;--muted:#6f6961;
  --line:rgba(31,27,22,.12);--line-strong:rgba(31,27,22,.20);
  --coral:#d95f42;--orange:#ef8a4b;--pink:#d96b85;--violet:#8b78a8;--plum:#7f6a5e;
  --shadow-sm:0 14px 36px rgba(73,57,40,.07);--shadow-md:0 24px 64px rgba(73,57,40,.10);
}
html{background:var(--paper);color-scheme:light}
body{color:var(--ink);background:var(--paper);letter-spacing:-.008em}
::selection{background:#ead8c5;color:var(--ink)}
.section{border-top:1px solid rgba(31,27,22,.055)}
.section-cream{background:#f3ece3}.section-white{background:#fff}.section-plum{background:#efe4d8;color:var(--ink)}
.gradient-text{background:none;color:#9a5f4c}
.section-kicker{color:#8b6758}.section-kicker::before{background:#c87354;box-shadow:none}
.lead,.prose,.card p,.team-card p,.location-card p,.ticket-card p,.poster-feature p{color:var(--muted)}
.pill{background:#fff;border-color:var(--line);color:#665f57}

/* navigation */
.site-header{inset:14px 0 auto}.header-shell{background:rgba(251,247,241,.89);border:1px solid rgba(31,27,22,.09);box-shadow:0 10px 30px rgba(57,44,31,.07);backdrop-filter:blur(18px) saturate(130%)}
.brand-mark{background:#171512;border:0;color:#fff;box-shadow:none}.brand-mark::after{background:#d16b4e;box-shadow:none}
.brand-copy span{color:#8d857b}.nav a,.nav-dropdown>button{color:#57514b}.nav a:hover,.nav a.active,.nav-dropdown>button:hover{background:#eee6dc;color:#171512}
.nav-menu{background:rgba(255,253,249,.98);border-color:var(--line);box-shadow:var(--shadow-md)}.nav-menu a:hover{background:#f4eee6}
.menu-toggle{background:#f0e8de;color:#171512;border-color:var(--line)}
.btn{background:#171512;color:#fff;border-radius:999px;box-shadow:none}.btn:hover{background:#2c2823;box-shadow:none}.btn-primary{background:#171512;color:#fff}.btn-primary:hover{background:#302a24}
.btn-ghost,.btn-outline{background:transparent;color:#171512;border:1px solid var(--line-strong)}.btn-ghost:hover,.btn-outline:hover{background:#efe7dd;color:#171512}
.btn-light{background:#fff;color:#171512;border-color:rgba(31,27,22,.1)}
.text-link{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;font-weight:700;border-bottom:1px solid #b7aa9c;padding-bottom:4px;color:#2e2924}

/* home hero — editorial structure inspired by the reference */
.hero.hero-amicro.hero-joakim-light{display:block;height:auto;min-height:0;max-height:none;background:var(--paper);color:var(--ink);padding:150px 0 78px;overflow:visible}
.hero-joakim-inner{display:grid;gap:56px}
.hero-joakim-copy{max-width:none;text-align:left;display:block;margin:0}
.hero-intro{max-width:670px;margin:0 0 34px;color:#5f5952;font-size:clamp(.95rem,1.3vw,1.08rem);line-height:1.55}
.hero-amicro.hero-joakim-light h1{max-width:12ch;margin:0;font-family:'Manrope',sans-serif;font-weight:620;font-size:clamp(4.6rem,10.5vw,10.6rem);line-height:.78;letter-spacing:-.078em;color:#171512;text-wrap:balance}
.hero-amicro.hero-joakim-light h1 .soft{color:#a08e7e;font-weight:520}
.hero-joakim-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:end;margin-top:38px;padding-top:26px;border-top:1px solid var(--line)}
.hero-amicro.hero-joakim-light .hero-sub{max-width:700px;margin:0;color:#6e665e;font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.55}
.hero-amicro.hero-joakim-light .hero-actions{margin:0;justify-content:flex-end;align-items:center}
.hero-joakim-media{position:relative;margin-top:6px}
.hero-joakim-media .hero-media{position:relative;inset:auto;width:100%;aspect-ratio:16/8.2;border-radius:4px;overflow:hidden;background:url('../img/afh-2025.webp') center 44%/cover no-repeat;box-shadow:none}
.hero-joakim-media .hero-media iframe{position:absolute;top:50%;left:50%;width:177.78vh;min-width:100%;height:56.25vw;min-height:100%;transform:translate(-50%,-50%);filter:saturate(.88) contrast(1.02) brightness(1.02)}
.hero-joakim-media .hero-overlay{background:linear-gradient(0deg,rgba(25,18,12,.08),rgba(25,18,12,0) 45%)}
.hero-media-meta{display:flex;justify-content:space-between;gap:24px;padding:13px 2px 0;color:#6b645c;font-size:.78rem}.hero-media-meta a{font-weight:700;color:#302b26}

/* category rail */
.marquee{background:#f6efe6;border-color:var(--line)}.marquee-list{color:#776f66}.marquee-list span{background:#fffaf4;border:1px solid var(--line)}.marquee-list i{background:#c8b9aa}

/* surfaces — remove all dark cards */
.stat,.card,.team-card,.location-card,.ticket-card,.form-card,.split-copy,.empty-state{background:#fff;border-color:var(--line);box-shadow:none;color:var(--ink)}
.stat:hover,.card:hover{background:#fff;border-color:rgba(31,27,22,.22)}.stat span{color:#766e66}.card-link{color:#3f3933}.card-link:hover{color:#171512}
.card::before,.stat::before,.team-card::before,.location-card::before,.ticket-card::before{background:radial-gradient(420px circle at var(--spot-x,50%) var(--spot-y,-20%),rgba(198,151,113,.10),transparent 48%)}

/* course cards become light editorial cards instead of dark overlays */
.discipline-card{min-height:0;display:block;color:var(--ink);background:#fff;border:1px solid var(--line);overflow:hidden}
.discipline-card .media{position:relative;inset:auto;aspect-ratio:4/3;overflow:hidden}.discipline-card .media img{width:100%;height:100%;object-fit:cover;filter:saturate(.92)}
.discipline-card::after{display:none}.discipline-card .content{position:relative;padding:24px 22px 26px;color:var(--ink)}.discipline-card h3{color:var(--ink)}.discipline-card p{color:var(--muted)}
.discipline-card .tag{top:14px;left:14px;background:rgba(255,253,249,.90);color:#342f2a;border-color:rgba(31,27,22,.10);backdrop-filter:blur(10px)}
.discipline-card .go{top:14px;right:14px;background:rgba(255,253,249,.90);color:#342f2a;border-color:rgba(31,27,22,.10)}.discipline-card:hover .go{background:#171512;color:#fff}

/* split, forms, gallery */
.split-media{background:#f0e7dd;border-color:var(--line);padding:0}.split-media img{border-radius:24px}.split-media .float-label{background:rgba(255,253,249,.90);color:#302b26;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.split-media .float-label span{color:#776f67}
.split-copy{background:#f7f1e9}.split-copy p,.check span{color:#6f6860}.check b{background:#eedfd1;color:#9f5b43}
.team-card .role{color:#8c6555}.gallery-grid figure{background:#f0e8de;border-color:var(--line)}.gallery-grid figcaption{background:rgba(255,253,249,.90);color:#302b26;border:1px solid var(--line)}
.faq summary::after{background:#eee5da;color:#5e544a}.faq .answer{color:#6f6860}
.field label{color:#514b45}.field input,.field select,.field textarea{background:#fffdfa;color:#171512;border-color:var(--line-strong)}.field input:focus,.field select:focus,.field textarea:focus{border-color:#bca590;box-shadow:0 0 0 3px rgba(188,165,144,.13)}
.location-card .num,.contact-item .ico{background:#f0e5d9;color:#7e5f51}.contact-item{color:#5e574f}.ticket-card .ticket-media{background:#f0e7dd}.ticket-buy select{background:#fffdfa;color:#171512;border-color:var(--line-strong)}
.empty-state{background:#fff;border-color:#cfbba7}.prose{color:#625b54}.prose h2,.prose h3{color:#171512}.prose .callout{background:#f4eadf;border-left-color:#b9775d}
.poster-feature .poster{background:#f0e7dd;border-color:var(--line);padding:0}

/* secondary page heroes */
.page-hero{background:#fbf7f1;color:#171512;padding:142px 0 76px}.page-hero::before{background:radial-gradient(circle,rgba(213,176,144,.22),transparent 69%)}.page-hero .crumbs{color:#8b837a}.page-hero h1{color:#171512}.page-hero p{color:#6e665e}.page-hero-art{background:#f1e9df;border-color:var(--line);box-shadow:none;padding:0}.page-hero-art img{border-radius:22px}

/* CTA stays colourful but light rather than dark */
.color-panel{background:#ead7c4;color:#171512;box-shadow:none}.color-panel::before{border-color:rgba(77,61,47,.16);box-shadow:0 0 0 36px rgba(255,255,255,.18),0 0 0 76px rgba(255,255,255,.10)}.color-panel p{color:#5f554d}.color-panel .btn-ghost{color:#171512;border-color:rgba(31,27,22,.18)}

/* footer is light too */
.footer{background:#eee5da;color:#171512;border-top:1px solid var(--line)}.footer::after{color:rgba(42,35,29,.035)}.footer-brand p,.footer-links{color:#746c64}.footer h4{color:#4e4842}.footer-bottom{border-color:var(--line);color:#837a71}.footer a:hover{color:#171512}
.mobile-nav{background:rgba(251,247,241,.98);color:#171512}.mobile-nav a{border-color:var(--line)}.mobile-nav .btn-outline{color:#171512}
.cursor-dot{background:#171512;mix-blend-mode:normal}.cursor-dot.hover{background:rgba(23,21,18,.14)}

@media(max-width:760px){
  .hero.hero-amicro.hero-joakim-light{padding:116px 0 52px}.hero-joakim-inner{gap:34px}.hero-intro{margin-bottom:22px}
  .hero-amicro.hero-joakim-light h1{font-size:clamp(3.4rem,17vw,5.8rem);line-height:.82;max-width:10ch}
  .hero-joakim-bottom{grid-template-columns:1fr;gap:22px;margin-top:28px;padding-top:20px}.hero-amicro.hero-joakim-light .hero-actions{justify-content:flex-start;align-items:flex-start;flex-direction:row;max-width:none;width:auto}
  .hero-amicro.hero-joakim-light .hero-actions .btn{width:auto}.hero-joakim-media .hero-media{aspect-ratio:4/5.3}.hero-media-meta{display:grid;gap:5px}
  .discipline-card{min-height:0}.page-hero{padding:116px 0 58px}
}

/* ==========================================================
   V6 — AFH STAGE OPENING
   A full-bleed theatre entrance with weighted velvet curtains.
   ========================================================== */
.hero.hero-stage{
  --stage-surface:oklch(.12 .018 18);
  --stage-text:oklch(.96 .018 78);
  --stage-muted:oklch(.79 .025 70);
  --stage-line:oklch(.96 .018 78 / .28);
  --stage-velvet:oklch(.31 .14 20);
  --stage-velvet-deep:oklch(.16 .08 18);
  --stage-velvet-light:oklch(.48 .19 22);
  --stage-velvet-glint:oklch(.67 .14 28 / .48);
  --stage-gold:oklch(.78 .09 74);
  --stage-shadow:oklch(.07 .02 18 / .78);
  --stage-space-1:.25rem;
  --stage-space-2:.5rem;
  --stage-space-3:.75rem;
  --stage-space-4:1rem;
  --stage-space-6:1.5rem;
  --stage-space-8:2rem;
  --stage-space-12:3rem;
  --stage-space-16:4rem;
  --stage-edge:clamp(1.25rem,4vw,4.5rem);
  --stage-ease:cubic-bezier(.77,0,.16,1);
  --stage-ease-settle:cubic-bezier(.16,1,.3,1);
  position:relative;
  display:block;
  width:100%;
  min-height:100svh;
  height:auto;
  max-height:none;
  overflow:hidden;
  isolation:isolate;
  background:var(--stage-surface);
  color:var(--stage-text);
}
.hero-stage__media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  background:var(--stage-surface) url('../video/afh-accueil-aout-2026-poster.jpg') center/cover no-repeat;
  transform:scale(1.025);
  animation:afhStageBreath 18s ease-in-out 2.8s infinite alternate both;
}
.hero-stage__media iframe,.hero-stage__media video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
  border:0;
  filter:saturate(.82) contrast(1.12) brightness(.74);
}
.hero-stage__wash{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,oklch(.07 .018 18 / .88) 0%,oklch(.07 .018 18 / .52) 45%,oklch(.07 .018 18 / .18) 78%),
    linear-gradient(0deg,oklch(.06 .016 18 / .88) 0%,transparent 52%,oklch(.06 .016 18 / .54) 100%),
    radial-gradient(circle at 76% 38%,transparent 0 15%,oklch(.06 .016 18 / .32) 62%);
}
.hero-stage__grain{
  position:absolute;
  inset:0;
  opacity:.13;
  mix-blend-mode:soft-light;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}
.hero-stage__content{
  position:relative;
  z-index:4;
  width:min(calc(100% - 18vw),var(--max));
  min-height:100svh;
  display:grid;
  grid-template-rows:auto 1fr auto;
  gap:var(--stage-space-8);
  padding-top:clamp(7.5rem,17vh,10.5rem);
  padding-bottom:clamp(1.5rem,4vh,2.75rem);
  opacity:0;
  transform:translateY(2rem);
  animation:afhStageContentIn 2.9s var(--stage-ease-settle) .2s both;
}
.hero-stage__meta{
  display:flex;
  justify-content:space-between;
  gap:var(--stage-space-6);
  align-items:center;
  padding-bottom:var(--stage-space-4);
  border-bottom:1px solid var(--stage-line);
  font-size:.72rem;
  font-weight:600;
  line-height:1.4;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--stage-muted);
}
.hero-stage__meta p{margin:0;color:var(--stage-text)}
.hero-stage h1{
  align-self:center;
  display:flex;
  flex-direction:column;
  width:min(100%,11ch);
  max-width:none;
  margin:clamp(1rem,4vh,2.5rem) 0;
  color:var(--stage-text);
  font-family:'Bodoni Moda','Times New Roman',serif;
  font-size:clamp(5.4rem,12vw,11.4rem);
  font-weight:500;
  line-height:.72;
  letter-spacing:-.072em;
  text-wrap:balance;
  text-shadow:0 2px 24px var(--stage-shadow);
}
.hero-stage__overline{
  margin:0 0 clamp(1.25rem,3vh,2rem) .45em;
  font-family:'DM Sans',sans-serif;
  font-size:clamp(.72rem,.9vw,.88rem);
  font-style:normal;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.3em;
  text-transform:uppercase;
}
.hero-stage h1.hero-stage__signature{
  align-self:center;
  width:auto;
  max-width:30ch;
  margin:clamp(1rem,4vh,2.5rem) 0;
  font-family:'DM Sans',sans-serif;
  font-size:clamp(.78rem,1.15vw,1.05rem);
  font-weight:700;
  line-height:1.25;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--stage-text);
  text-shadow:0 2px 24px var(--stage-shadow);
}
.hero-stage__title-line{display:block}
.hero-stage__title-line--accent{
  align-self:flex-end;
  margin-right:-.08em;
  color:var(--stage-text);
  font-weight:400;
  font-style:italic;
}
.hero-stage__footer{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(20rem,.72fr);
  gap:clamp(2rem,7vw,7rem);
  align-items:end;
  padding-top:var(--stage-space-6);
  border-top:1px solid var(--stage-line);
}
.hero-stage .hero-sub{
  max-width:55ch;
  margin:0;
  color:var(--stage-muted);
  font-size:clamp(.92rem,1.2vw,1.08rem);
  line-height:1.6;
}
.hero-stage__actions{display:grid;gap:var(--stage-space-4);justify-items:start}
.hero-stage__actions>span{
  color:var(--stage-muted);
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero-stage .hero-actions{justify-content:flex-start;margin:0;gap:var(--stage-space-4)}
.hero-stage .btn{
  min-height:3rem;
  border-radius:2px;
  padding:0 var(--stage-space-6);
  box-shadow:none;
}
.hero-stage .btn-primary{background:var(--stage-text);color:var(--stage-surface)}
.hero-stage .btn-primary:hover{background:var(--stage-gold);color:var(--stage-surface)}
.hero-stage .text-link{
  min-height:3rem;
  display:inline-flex;
  align-items:center;
  border-bottom:1px solid var(--stage-line);
  color:var(--stage-text);
  font-size:.82rem;
}

/* The two curtains move as weighted panels; the fold highlights lag behind. */
.hero-stage__curtains{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}
.hero-stage__curtain-panel{
  position:absolute;
  top:-2%;
  bottom:-4%;
  width:52%;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 50% -8%,var(--stage-velvet-glint),transparent 38%),
    repeating-linear-gradient(92deg,var(--stage-velvet-deep) 0 3%,var(--stage-velvet) 8%,var(--stage-velvet-light) 12%,var(--stage-velvet) 18%,var(--stage-velvet-deep) 24%);
  box-shadow:inset 0 -3rem 5rem var(--stage-shadow),inset 0 0 3rem var(--stage-shadow),0 0 3rem var(--stage-shadow);
  will-change:transform;
}
.hero-stage__curtain-panel::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:2;
  opacity:.38;
  mix-blend-mode:soft-light;
  background:repeating-linear-gradient(0deg,transparent 0 2px,oklch(.96 .02 30 / .16) 3px,transparent 5px);
}
.hero-stage__curtain-panel::after{
  content:'';
  position:absolute;
  top:0;
  bottom:0;
  width:.9rem;
  background:linear-gradient(90deg,var(--stage-velvet-deep),var(--stage-velvet-light),var(--stage-velvet-deep));
  box-shadow:0 0 1.2rem var(--stage-shadow);
}
.hero-stage__curtain-panel--left{
  left:-1%;
  border-bottom-right-radius:48% 10%;
  transform-origin:left top;
  animation:afhCurtainOpenLeft 2.85s var(--stage-ease) .18s both;
}
.hero-stage__curtain-panel--left::after{right:0}
.hero-stage__curtain-panel--right{
  right:-1%;
  border-bottom-left-radius:48% 10%;
  transform-origin:right top;
  animation:afhCurtainOpenRight 2.85s var(--stage-ease) .18s both;
}
.hero-stage__curtain-panel--right::after{left:0}
.hero-stage__curtain-fabric{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,1fr)}
.hero-stage__curtain-fabric span{
  min-width:0;
  opacity:.32;
  background:linear-gradient(90deg,var(--stage-shadow),transparent 42%,var(--stage-velvet-glint) 72%,transparent);
  transform-origin:top center;
  animation:afhVelvetFold 2.4s var(--stage-ease-settle) calc(.22s + var(--fold-delay,0s)) both;
}
.hero-stage__curtain-fabric span:nth-child(2){--fold-delay:.04s;--fold-shift:-.8rem}
.hero-stage__curtain-fabric span:nth-child(3){--fold-delay:.08s;--fold-shift:.55rem}
.hero-stage__curtain-fabric span:nth-child(4){--fold-delay:.12s;--fold-shift:-.45rem}
.hero-stage__curtain-fabric span:nth-child(5){--fold-delay:.16s;--fold-shift:.75rem}
.hero-stage__curtain-fabric span:nth-child(6){--fold-delay:.20s;--fold-shift:-.55rem}
.hero-stage__curtain-fabric span:nth-child(7){--fold-delay:.24s;--fold-shift:.4rem}
.hero-stage__valance{
  position:absolute;
  top:-2%;
  left:-2%;
  right:-2%;
  height:22%;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  filter:drop-shadow(0 1.4rem 1.6rem var(--stage-shadow));
  transform-origin:center top;
  animation:afhValanceSettle 2.7s var(--stage-ease) .2s both;
}
.hero-stage__valance::before{
  content:'';
  position:absolute;
  inset:0 0 42%;
  z-index:2;
  background:repeating-linear-gradient(90deg,var(--stage-velvet-deep) 0 5%,var(--stage-velvet-light) 11%,var(--stage-velvet) 17%,var(--stage-velvet-deep) 23%);
  box-shadow:inset 0 -1.4rem 2.4rem var(--stage-shadow);
}
.hero-stage__valance span{
  position:relative;
  background:radial-gradient(ellipse at 50% -10%,var(--stage-velvet-light),var(--stage-velvet) 43%,var(--stage-velvet-deep) 78%);
  border-radius:0 0 50% 50%;
  box-shadow:inset 0 -1.2rem 2rem var(--stage-shadow);
}

@keyframes afhCurtainOpenLeft{
  0%,8%{transform:translate3d(0,0,0) skewY(0)}
  48%{transform:translate3d(-58%,0,0) skewY(-.7deg)}
  72%{transform:translate3d(-87%,0,0) skewY(.55deg)}
  84%{transform:translate3d(-81.5%,0,0) skewY(-.3deg)}
  92%{transform:translate3d(-85%,0,0) skewY(.15deg)}
  100%{transform:translate3d(-84%,0,0) skewY(0)}
}
@keyframes afhCurtainOpenRight{
  0%,8%{transform:translate3d(0,0,0) skewY(0)}
  48%{transform:translate3d(58%,0,0) skewY(.7deg)}
  72%{transform:translate3d(87%,0,0) skewY(-.55deg)}
  84%{transform:translate3d(81.5%,0,0) skewY(.3deg)}
  92%{transform:translate3d(85%,0,0) skewY(-.15deg)}
  100%{transform:translate3d(84%,0,0) skewY(0)}
}
@keyframes afhVelvetFold{
  0%,12%{transform:translateX(0) scaleX(1)}
  55%{transform:translateX(var(--fold-shift,0)) scaleX(.92)}
  78%{transform:translateX(calc(var(--fold-shift,0) * -.3)) scaleX(1.04)}
  100%{transform:translateX(0) scaleX(1)}
}
@keyframes afhValanceSettle{
  0%,18%{transform:translateY(0) scaleY(1)}
  68%{transform:translateY(-58%) scaleY(.86)}
  84%{transform:translateY(-49%) scaleY(.93)}
  100%{transform:translateY(-52%) scaleY(.9)}
}
@keyframes afhStageContentIn{
  0%,43%{opacity:0;transform:translateY(2rem)}
  75%{opacity:.72}
  100%{opacity:1;transform:none}
}
@keyframes afhStageBreath{from{transform:scale(1.025)}to{transform:scale(1.07)}}

@media(max-width:760px){
  .hero.hero-stage{min-height:100svh}
  .hero-stage__content{min-height:100svh;gap:var(--stage-space-6);padding-top:6.8rem;padding-bottom:var(--stage-space-6)}
  .hero-stage__meta{align-items:flex-start;font-size:.61rem;letter-spacing:.1em}.hero-stage__meta span{text-align:right;max-width:17ch}
  .hero-stage h1{align-self:center;width:100%;font-size:clamp(3.6rem,18vw,5.8rem);line-height:.74;margin:var(--stage-space-6) 0}
  .hero-stage__overline{margin-left:.2em;font-size:.62rem}
  .hero-stage h1.hero-stage__signature{width:auto;font-size:.68rem;line-height:1.3;letter-spacing:.2em;margin:var(--stage-space-5) 0}
  .hero-stage__title-line--accent{margin-right:.08em}
  .hero-stage__footer{grid-template-columns:1fr;gap:var(--stage-space-6);padding-top:var(--stage-space-4)}
  .hero-stage .hero-sub{font-size:.86rem;line-height:1.5}
  .hero-stage__actions>span{display:none}
  .hero-stage .hero-actions{width:100%;display:grid;grid-template-columns:1fr}.hero-stage .hero-actions .btn,.hero-stage .text-link{width:100%;justify-content:center}
  .hero-stage__curtain-panel{width:54%}
  .hero-stage__valance{height:18%}
}
@media(prefers-reduced-motion:reduce){
  .hero-stage__media{animation:none;transform:none}
  .hero-stage__content{animation:none;opacity:1;transform:none}
  .hero-stage__curtain-panel--left{animation:none;transform:translate3d(-84%,0,0)}
  .hero-stage__curtain-panel--right{animation:none;transform:translate3d(84%,0,0)}
  .hero-stage__curtain-fabric span{animation:none}
  .hero-stage__valance{animation:none;transform:translateY(-52%) scaleY(.9)}
}

/* V7 — physical stage curtains + dimensional teaching cast */
.hero-stage__curtains{
  perspective:1400px;
  perspective-origin:50% 34%;
  transform-style:preserve-3d;
}
.hero-stage__curtain-panel{
  transform-style:preserve-3d;
  backface-visibility:hidden;
  box-shadow:
    inset 0 -4rem 6rem oklch(.08 .03 20 / .82),
    inset 0 0 3rem oklch(.08 .03 20 / .66),
    0 0 3.5rem oklch(.08 .03 20 / .78),
    0 1.4rem 2.6rem oklch(.08 .03 20 / .54);
}
.hero-stage__curtain-panel::before{
  transform:translateZ(15px);
  background:
    linear-gradient(104deg,transparent 18%,oklch(.76 .09 25 / .22) 31%,transparent 43%),
    repeating-linear-gradient(0deg,transparent 0 2px,oklch(.96 .02 30 / .13) 3px,transparent 5px);
  animation:afhVelvetSheen 2.7s cubic-bezier(.2,.7,.2,1) .18s both;
}
.hero-stage__curtain-panel::after{
  width:1.1rem;
  transform:translateZ(30px);
  border-radius:999px;
  background:linear-gradient(90deg,oklch(.13 .055 20),oklch(.49 .14 25),oklch(.19 .075 20));
  box-shadow:-.35rem 0 1rem oklch(.06 .02 20 / .74),.35rem 0 .9rem oklch(.72 .11 28 / .2);
}
.hero-stage__curtain-fabric{transform-style:preserve-3d;overflow:visible}
.hero-stage__curtain-fabric span{
  --fold-depth:18px;
  --fold-angle:-2.4deg;
  position:relative;
  opacity:.7;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  background:
    linear-gradient(90deg,oklch(.09 .04 20 / .86),transparent 38%,oklch(.67 .13 24 / .45) 72%,oklch(.12 .055 20 / .7));
  box-shadow:inset .65rem 0 1.5rem oklch(.07 .025 20 / .48),inset -.4rem 0 1rem oklch(.65 .13 25 / .12);
}
.hero-stage__curtain-fabric span:nth-child(even){--fold-depth:-13px;--fold-angle:3.1deg;opacity:.48}
.hero-stage__curtain-fabric span:nth-child(3n){--fold-depth:29px;--fold-angle:-3.8deg;opacity:.78}
.hero-stage__valance{transform-style:preserve-3d;perspective:900px}
.hero-stage__valance::before{transform:translateZ(24px)}
.hero-stage__valance span{
  transform:translateZ(18px) rotateX(-4deg);
  border:1px solid oklch(.7 .11 25 / .12);
  box-shadow:inset 0 -1.4rem 2.2rem oklch(.08 .035 20 / .82),0 .9rem 1.2rem oklch(.06 .02 20 / .44);
}
.hero-stage__valance span:nth-child(even){transform:translateZ(-8px) rotateX(3deg);filter:brightness(.76)}

@keyframes afhCurtainOpenLeft{
  0%,8%{transform:translate3d(0,0,0) rotateY(0) skewY(0)}
  48%{transform:translate3d(-58%,0,35px) rotateY(-6deg) skewY(-.7deg)}
  72%{transform:translate3d(-87%,0,70px) rotateY(-13deg) skewY(.55deg)}
  84%{transform:translate3d(-81.5%,0,48px) rotateY(-8deg) skewY(-.3deg)}
  92%{transform:translate3d(-85%,0,60px) rotateY(-11deg) skewY(.15deg)}
  100%{transform:translate3d(-84%,0,56px) rotateY(-10deg) skewY(0)}
}
@keyframes afhCurtainOpenRight{
  0%,8%{transform:translate3d(0,0,0) rotateY(0) skewY(0)}
  48%{transform:translate3d(58%,0,35px) rotateY(6deg) skewY(.7deg)}
  72%{transform:translate3d(87%,0,70px) rotateY(13deg) skewY(-.55deg)}
  84%{transform:translate3d(81.5%,0,48px) rotateY(8deg) skewY(.3deg)}
  92%{transform:translate3d(85%,0,60px) rotateY(11deg) skewY(-.15deg)}
  100%{transform:translate3d(84%,0,56px) rotateY(10deg) skewY(0)}
}
@keyframes afhVelvetFold{
  0%,12%{transform:translate3d(0,0,var(--fold-depth)) rotateY(var(--fold-angle)) scaleX(1)}
  55%{transform:translate3d(var(--fold-shift,0),0,calc(var(--fold-depth) * 1.35)) rotateY(calc(var(--fold-angle) * 1.7)) scaleX(.9)}
  78%{transform:translate3d(calc(var(--fold-shift,0) * -.3),0,calc(var(--fold-depth) * .72)) rotateY(calc(var(--fold-angle) * -.7)) scaleX(1.05)}
  100%{transform:translate3d(0,0,var(--fold-depth)) rotateY(var(--fold-angle)) scaleX(1)}
}
@keyframes afhVelvetSheen{
  0%,12%{background-position:-32vw 0,0 0;opacity:.22}
  60%{background-position:22vw 0,0 0;opacity:.46}
  100%{background-position:48vw 0,0 0;opacity:.34}
}

.team-stage{
  --team-ink:oklch(.135 .026 28);
  --team-wine:oklch(.265 .072 24);
  --team-red:oklch(.49 .155 26);
  --team-gold:oklch(.78 .105 72);
  --team-ivory:oklch(.955 .018 78);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(6rem,10vw,9.5rem) 0 clamp(7rem,11vw,10rem);
  color:var(--team-ivory);
  background:
    radial-gradient(ellipse at 50% 12%,oklch(.37 .09 27 / .46),transparent 35%),
    linear-gradient(114deg,oklch(.11 .02 25),var(--team-ink) 44%,oklch(.095 .018 25));
  border-block:1px solid oklch(.72 .07 45 / .12);
}
.team-stage::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.34;
  background:
    repeating-linear-gradient(90deg,transparent 0 calc(12.5% - 1px),oklch(.92 .04 70 / .06) calc(12.5% - 1px) 12.5%),
    linear-gradient(180deg,oklch(.95 .03 70 / .06),transparent 20%,transparent 78%,oklch(.03 .01 25 / .48));
  mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
}
.team-stage::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:18%;
  z-index:-1;
  background:linear-gradient(180deg,transparent,oklch(.04 .015 25 / .72));
  clip-path:polygon(0 35%,100% 0,100% 100%,0 100%);
}
.team-stage>.container{position:relative;z-index:1}
.team-stage__head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(16rem,25rem);
  align-items:end;
  gap:clamp(2rem,7vw,8rem);
  margin-bottom:clamp(3.5rem,7vw,6.8rem);
}
.team-stage .section-kicker{color:oklch(.79 .07 63);margin-bottom:1.2rem}
.team-stage .section-kicker::before{background:var(--team-red)}
.team-stage__title{
  max-width:13ch;
  margin:0;
  font-family:'Bodoni Moda',Georgia,serif;
  font-size:clamp(3rem,6.6vw,7.2rem);
  font-weight:500;
  line-height:.86;
  letter-spacing:-.055em;
}
.team-stage__title em{color:var(--team-gold);font-weight:400}
.team-stage__aside{
  max-width:31ch;
  margin:0 0 .45rem auto;
  padding-left:1.4rem;
  color:oklch(.78 .025 65);
  border-left:1px solid oklch(.78 .105 72 / .48);
  font-size:.83rem;
  line-height:1.6;
  letter-spacing:.02em;
}
.team-stage__aside span{display:block;margin-bottom:.45rem;color:var(--team-gold);font-size:1.4rem;line-height:1}
.team-stage__cast{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.65rem);
  align-items:start;
}
.team-person{
  --team-rx:0deg;
  --team-ry:0deg;
  --team-light-x:50%;
  --team-light-y:24%;
  min-width:0;
  perspective:1150px;
  perspective-origin:50% 40%;
  color:var(--team-ivory);
}
.team-person__visual{
  position:relative;
  height:clamp(31rem,46vw,39rem);
  transform:rotateX(var(--team-rx)) rotateY(var(--team-ry));
  transform-style:preserve-3d;
  transform-origin:50% 68%;
  transition:transform .18s cubic-bezier(.2,.75,.2,1);
  will-change:transform;
}
.team-person__arch{
  position:absolute;
  inset:0 1.4rem 1.5rem;
  z-index:0;
  overflow:hidden;
  transform:translateZ(-74px) scale(.95);
  border:1px solid oklch(.86 .08 66 / .23);
  border-radius:48% 48% 1.4rem 1.4rem / 30% 30% 1.4rem 1.4rem;
  background:
    radial-gradient(circle at var(--team-light-x) var(--team-light-y),oklch(.68 .13 48 / .38),transparent 31%),
    repeating-linear-gradient(96deg,oklch(.26 .07 24) 0 7%,oklch(.19 .052 24) 12%,oklch(.29 .075 24) 18%),
    var(--team-wine);
  box-shadow:inset 0 0 5rem oklch(.045 .016 24 / .84),0 2rem 4rem oklch(.025 .01 24 / .74);
}
.team-person__arch::before{
  content:'';
  position:absolute;
  inset:0;
  opacity:.38;
  background:repeating-linear-gradient(0deg,transparent 0 3px,oklch(.94 .035 62 / .11) 4px,transparent 6px);
  mix-blend-mode:soft-light;
}
.team-person__light{
  position:absolute;
  inset:-6% -10% 6%;
  z-index:4;
  pointer-events:none;
  transform:translateZ(96px);
  opacity:.68;
  background:radial-gradient(circle at var(--team-light-x) var(--team-light-y),oklch(.88 .1 68 / .28),transparent 25%);
  mix-blend-mode:screen;
  transition:background-position .15s linear;
}
.team-person__floor{
  position:absolute;
  left:7%;
  right:7%;
  bottom:1.5rem;
  z-index:1;
  height:19%;
  transform:translateZ(-18px) rotateX(69deg);
  transform-origin:center bottom;
  border-radius:50%;
  background:radial-gradient(ellipse,oklch(.36 .065 31),oklch(.09 .025 25) 67%,transparent 69%);
  box-shadow:0 1.3rem 2.5rem oklch(.02 .01 25 / .9);
}
.team-person__shadow{
  position:absolute;
  left:16%;
  right:14%;
  bottom:7.5%;
  z-index:2;
  height:8%;
  transform:translateZ(34px) rotate(-2deg);
  border-radius:50%;
  background:oklch(.02 .012 25 / .82);
  filter:blur(13px);
}
.team-person__visual img{
  position:absolute;
  left:50%;
  bottom:2.1rem;
  z-index:3;
  width:auto;
  height:91%;
  max-width:none;
  transform:translate3d(-50%,0,72px) scale(1.01);
  transform-origin:center bottom;
  object-fit:contain;
  filter:drop-shadow(0 1.5rem 1.25rem oklch(.025 .012 25 / .66)) drop-shadow(-.3rem 0 .14rem oklch(.76 .12 42 / .18));
  transition:transform .32s cubic-bezier(.16,1,.3,1),filter .32s ease;
  pointer-events:none;
}
.team-person--frederick .team-person__visual img{left:47%;height:89%}
.team-person--sophie .team-person__visual img{left:51%;height:91%}
.team-person--marine .team-person__visual img{left:49%;height:94%}
.team-person--david .team-person__visual img{left:50%;bottom:0;width:100%;height:100%;object-fit:cover;object-position:center 34%;transform:translate3d(-50%,0,72px) scale(.94)}
.team-person:hover .team-person__visual img{transform:translate3d(-50%,-.45rem,86px) scale(1.025);filter:drop-shadow(0 2rem 1.4rem oklch(.02 .01 25 / .75)) drop-shadow(-.35rem 0 .2rem oklch(.82 .12 45 / .28))}
.team-person__number{
  position:absolute;
  top:3.1rem;
  right:2.5rem;
  z-index:6;
  transform:translateZ(45px);
  color:oklch(.96 .03 70 / .2);
  font-family:'Bodoni Moda',Georgia,serif;
  font-size:clamp(3.5rem,5vw,5.5rem);
  line-height:1;
}
.team-person__depth-label{
  position:absolute;
  top:2.2rem;
  left:2.3rem;
  z-index:7;
  display:flex;
  align-items:center;
  gap:.55rem;
  transform:translateZ(92px);
  color:oklch(.91 .025 72);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  text-shadow:0 2px 10px #000;
}
.team-person__depth-label i{
  width:.7rem;
  height:.7rem;
  border:1px solid var(--team-gold);
  transform:rotate(30deg) skewY(-10deg);
  box-shadow:3px -3px 0 oklch(.78 .105 72 / .2);
}
.team-person__copy{
  position:relative;
  z-index:8;
  min-height:13.6rem;
  margin:-2.3rem .85rem 0;
  padding:1.8rem 1.4rem 1.5rem;
  border-top:1px solid oklch(.82 .09 67 / .4);
  background:linear-gradient(180deg,oklch(.145 .035 26 / .96),oklch(.105 .022 25 / .99));
  box-shadow:0 -1.2rem 2.8rem oklch(.035 .012 25 / .5);
  clip-path:polygon(0 .6rem,.6rem 0,100% 0,100% calc(100% - .6rem),calc(100% - .6rem) 100%,0 100%);
}
.team-person__copy::before{
  content:'';
  position:absolute;
  left:1.4rem;
  top:-1px;
  width:3.6rem;
  height:1px;
  background:var(--team-gold);
  box-shadow:0 0 1rem oklch(.78 .105 72 / .52);
}
.team-person__copy h3{
  margin:0;
  font-family:'Bodoni Moda',Georgia,serif;
  font-size:clamp(1.75rem,2.5vw,2.45rem);
  font-weight:500;
  line-height:1;
  letter-spacing:-.04em;
}
.team-person__copy .role{
  min-height:2.5rem;
  margin-top:.7rem;
  color:var(--team-gold);
  font-size:.69rem;
  font-weight:700;
  line-height:1.45;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.team-person__copy p{margin:1.05rem 0 0;color:oklch(.75 .022 65);font-size:.83rem;line-height:1.62}

@media(max-width:980px){
  .team-stage__head{grid-template-columns:1fr;gap:2rem}.team-stage__aside{margin-left:0}
  .team-stage__cast{grid-template-columns:1fr;gap:5rem;width:min(100%,35rem);margin-inline:auto}
  .team-person__visual{height:clamp(34rem,105vw,43rem)}
  .team-person__copy{min-height:0}
}
@media(max-width:560px){
  .team-stage{padding-block:5.5rem 6.5rem}
  .team-stage__head{margin-bottom:3rem}
  .team-stage__title{font-size:clamp(2.7rem,13vw,4.2rem)}
  .team-stage__aside{font-size:.76rem}
  .team-stage__cast{gap:4.2rem}
  .team-person__visual{height:31.5rem}
  .team-person__arch{inset:0 .35rem 1.2rem}
  .team-person__visual img{bottom:1.75rem;height:86%}
  .team-person--frederick .team-person__visual img{height:83%}
  .team-person--sophie .team-person__visual img{height:86%}
  .team-person--marine .team-person__visual img{height:89%}
  .team-person--david .team-person__visual img{height:100%;bottom:0}
  .team-person__number{top:2.8rem;right:1.3rem}
  .team-person__depth-label{top:1.9rem;left:1.25rem}
  .team-person__copy{margin-top:-2rem;margin-inline:.35rem;padding:1.6rem 1.2rem 1.35rem}
}
@media(prefers-reduced-motion:reduce){
  .hero-stage__curtain-panel--left{transform:translate3d(-84%,0,56px) rotateY(-10deg)}
  .hero-stage__curtain-panel--right{transform:translate3d(84%,0,56px) rotateY(10deg)}
  .hero-stage__curtain-panel::before{animation:none}
  .hero-stage__curtain-fabric span{transform:translate3d(0,0,var(--fold-depth)) rotateY(var(--fold-angle))}
  .team-person__visual,.team-person__visual img{transition:none;transform:none}
  .team-person__visual img{left:50%;transform:translateX(-50%)}
}

/* V8 — the welcome video lives in a fixed media card, never behind the copy. */
.hero.hero-stage{
  background:
    radial-gradient(circle at 79% 43%,oklch(.32 .095 25 / .3),transparent 34%),
    linear-gradient(135deg,oklch(.16 .026 18),oklch(.105 .014 18) 74%);
}
.hero-stage__media{display:none}
.hero-stage__content{
  display:block;
  min-height:0;
  padding-top:clamp(8rem,15vh,10rem);
  padding-bottom:clamp(2.5rem,7vh,5rem);
}
.hero-stage__layout{
  min-height:calc(100svh - 12rem);
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(19rem,.78fr);
  gap:clamp(2.5rem,7vw,8rem);
  align-items:center;
}
.hero-stage__copy{min-width:0}
.hero-stage__video-card{
  grid-column:2;
  grid-row:1;
  align-self:center;
  width:100%;
  margin:0;
  padding:.65rem;
  position:relative;
  z-index:4;
  background:oklch(.94 .018 78 / .08);
  border:1px solid oklch(.96 .018 78 / .34);
  border-radius:11px;
  box-shadow:0 1.8rem 4rem oklch(.04 .015 18 / .5),inset 0 0 0 1px oklch(.96 .018 78 / .08);
  transform:none;
  animation:afhStageCardIn 1.15s var(--stage-ease-settle) .72s both;
}
.hero-stage__video-frame{
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  background:oklch(.08 .016 18) url('../video/afh-accueil-aout-2026-poster.jpg') center/cover no-repeat;
}
.hero-stage__video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border:0;
  pointer-events:auto;
  filter:saturate(.9) contrast(1.06);
}
.hero-stage__video-card figcaption{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.85rem .25rem .2rem;
  color:var(--stage-text);
  font-size:.78rem;
  letter-spacing:.04em;
}
.hero-stage__video-card figcaption small{
  color:var(--stage-muted);
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
@keyframes afhStageCardIn{
  from{opacity:0;transform:translateY(1.5rem)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:980px){
  .hero-stage__layout{grid-template-columns:minmax(0,1fr) minmax(16rem,.72fr);gap:clamp(2rem,5vw,4rem)}
  .hero-stage__footer{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:760px){
  .hero-stage__content{min-height:100svh;padding-top:6.8rem;padding-bottom:var(--stage-space-6)}
  .hero-stage__layout{min-height:0;grid-template-columns:1fr;gap:2.75rem;align-items:start}
  .hero-stage__copy{display:flex;flex-direction:column;min-height:calc(100svh - 9rem)}
  .hero-stage__video-card{grid-column:1;grid-row:auto;justify-self:center;width:min(100%,34rem);transform:none;animation-name:afhStageCardInMobile}
  .hero-stage__video-frame{aspect-ratio:16/10}
  .hero-stage__video-card figcaption{font-size:.72rem}
}
@keyframes afhStageCardInMobile{
  from{opacity:0;transform:translateY(1rem)}
  to{opacity:1;transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
  .hero-stage__video-card{animation:none;transform:none}
}

/* V9 — the first screen is a clear two-column welcome: copy left, video right. */
.hero.hero-stage{
  min-height:clamp(620px,78vh,820px);
  background:
    radial-gradient(circle at 82% 44%,oklch(.3 .08 25 / .22),transparent 32%),
    linear-gradient(135deg,oklch(.16 .026 18),oklch(.105 .014 18) 74%);
}
.hero-stage__curtains{display:none}
.hero-stage__content{
  width:min(calc(100% - 40px),1180px);
  min-height:0;
  padding-top:clamp(7rem,12vh,8.5rem);
  padding-bottom:clamp(3rem,7vh,5rem);
  opacity:1;
  transform:none;
  animation:none;
}
.hero-stage__layout{
  min-height:clamp(500px,66vh,650px);
  grid-template-columns:minmax(0,1fr) minmax(360px,.88fr);
  gap:clamp(3rem,6vw,6rem);
  align-items:center;
}
.hero-stage__copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-stage__meta{
  justify-content:flex-start;
  gap:1.4rem;
  padding-bottom:0;
  border-bottom:0;
}
.hero-stage__meta span{color:var(--stage-muted)}
.hero-stage h1.hero-stage__signature{
  align-self:flex-start;
  display:block;
  width:auto;
  max-width:11ch;
  margin:1.4rem 0 2rem;
  font-family:'Bodoni Moda','Times New Roman',serif;
  font-size:clamp(4.4rem,7vw,7.6rem);
  font-weight:500;
  line-height:.86;
  letter-spacing:-.072em;
  text-transform:none;
  text-shadow:none;
}
.hero-stage__footer{
  grid-template-columns:minmax(0,1fr);
  gap:1.5rem;
  max-width:35rem;
  padding-top:1.35rem;
  border-top:1px solid oklch(.96 .018 78 / .18);
}
.hero-stage__video-card{
  justify-self:end;
  width:min(100%,500px);
  padding:.35rem;
  border-radius:11px;
  background:oklch(.1 .016 18 / .94);
  border-color:oklch(.96 .018 78 / .24);
  box-shadow:0 1.8rem 4rem oklch(.04 .015 18 / .42);
  animation:afhStageCardInClean .85s ease-out .12s both;
}
.hero-stage__video-frame{
  aspect-ratio:16/10;
  border-radius:7px;
}
.hero-stage__video{filter:none}
.hero-stage__video-card figcaption{
  padding:.7rem .35rem .25rem;
  font-size:.7rem;
}
@keyframes afhStageCardInClean{
  from{opacity:0;transform:translateY(1rem)}
  to{opacity:1;transform:none}
}
@media(max-width:980px){
  .hero-stage__layout{grid-template-columns:minmax(0,1fr) minmax(300px,.82fr);gap:clamp(2rem,5vw,4rem)}
  .hero-stage h1.hero-stage__signature{font-size:clamp(4rem,8vw,6rem)}
}
@media(max-width:760px){
  .hero.hero-stage{min-height:0}
  .hero-stage__content{width:min(calc(100% - 32px),34rem);padding-top:6.8rem;padding-bottom:3.5rem}
  .hero-stage__layout{min-height:0;grid-template-columns:1fr;gap:2.5rem;align-items:start}
  .hero-stage__copy{min-height:0}
  .hero-stage__meta{align-items:flex-start;gap:.8rem;font-size:.61rem;letter-spacing:.1em}
  .hero-stage__meta span{text-align:right;max-width:17ch}
  .hero-stage h1.hero-stage__signature{font-size:clamp(3.6rem,15vw,5.5rem);margin:1.2rem 0 1.6rem}
  .hero-stage__video-card{grid-column:1;grid-row:auto;justify-self:center;width:100%;max-width:34rem}
}

/* --- Logo image dans la marque --- */
.brand-logo{height:44px;width:auto;max-width:210px;object-fit:contain;display:block;flex:0 0 auto}
.brand-logo + .brand-copy strong{display:none}
.footer .brand-logo{height:52px;max-width:240px}
@media(max-width:900px){.brand-logo{height:36px;max-width:150px}.footer .brand-logo{height:44px}}

/* --- Bouton son de la vidéo d'accueil --- */
.hero-sound-toggle{position:absolute;right:16px;bottom:16px;z-index:6;border:0;cursor:pointer;
  font:600 .82rem/1 'Manrope','DM Sans',sans-serif;color:#fff;background:rgba(20,12,18,.62);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:999px;padding:9px 15px;
  display:inline-flex;align-items:center;gap:6px;transition:background .15s,transform .15s}
.hero-sound-toggle:hover{background:rgba(20,12,18,.82);transform:translateY(-1px)}
.hero-sound-toggle[aria-pressed="true"]{background:var(--coral,#ff724d);color:#1a0f14}
@media(max-width:640px){.hero-sound-toggle{right:10px;bottom:10px;padding:8px 12px;font-size:.76rem}}

/* Registration: keep the public form close to the supplied paper form while making it easy to complete on mobile. */
.registration-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(280px,.72fr);gap:22px;align-items:start}
.registration-form-card{padding:clamp(26px,4vw,48px)}
.registration-form-card .section-title{margin:0;max-width:13ch}
.registration-intro{max-width:62ch;color:var(--muted);margin:16px 0 30px}
.registration-help{margin:-1px 0 10px;color:var(--muted);font-size:.88rem}
.registration-options{display:grid;gap:10px}
.registration-option{position:relative;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--paper);cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}
.registration-option:hover{border-color:var(--line-strong);transform:translateY(-1px)}
.registration-option input{position:absolute;opacity:0;width:1px;height:1px}
.registration-option span{display:grid;gap:3px;padding-left:26px;position:relative}
.registration-option span::before{content:'';position:absolute;left:0;top:3px;width:16px;height:16px;border:1.5px solid var(--line-strong);border-radius:50%;background:var(--white)}
.registration-option input:checked + span::before{border-color:var(--coral);box-shadow:inset 0 0 0 4px var(--white);background:var(--coral)}
.registration-option input:focus-visible + span::before{outline:3px solid rgba(255,90,69,.22);outline-offset:2px}
.registration-option input:checked + span strong{color:var(--coral)}
.registration-option strong{font-size:.92rem}
.registration-option small{color:var(--muted);font-size:.8rem;line-height:1.45}
.payment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.payment-options label{display:flex;align-items:center;gap:9px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--paper);font-size:.86rem;cursor:pointer}
.payment-options input{accent-color:var(--coral)}
.registration-note{margin:12px 0 0;color:var(--muted);font-size:.8rem;line-height:1.55}
.registration-consents{gap:12px!important;padding:16px;border-radius:16px;background:var(--paper-2)}
.consent-line{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px;font-size:.82rem!important;font-weight:500!important;line-height:1.5}
.consent-line input{width:17px;min-width:17px;height:17px;margin:2px 0 0;accent-color:var(--coral)}
.registration-sidebar{display:grid;gap:16px;position:sticky;top:108px}
.registration-side-card{padding:28px;border:1px solid var(--line);border-radius:24px;background:var(--white);box-shadow:var(--shadow-sm)}
.registration-side-card h2{margin:0 0 13px;font-family:'Manrope';font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:1;letter-spacing:-.055em}
.registration-side-card p{color:var(--muted);font-size:.9rem;line-height:1.65}
.registration-checks{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}
.registration-checks li{position:relative;padding-left:23px;font-size:.84rem;font-weight:700}
.registration-checks li::before{content:'✓';position:absolute;left:0;color:var(--coral);font-weight:800}
.registration-address-card{display:grid;gap:6px}
.registration-address-card strong{font-family:'Manrope';font-size:1.1rem}
.registration-address-card p{margin:5px 0 6px}
.registration-address-card a{font-size:.86rem;font-weight:700;color:var(--coral)}
@media(max-width:900px){.registration-layout{grid-template-columns:1fr}.registration-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.payment-options,.registration-sidebar{grid-template-columns:1fr}.registration-side-card{padding:22px}.registration-form-card{padding:24px 18px}}
