/* OriginAR — styles propres à la page home.
   Généré par build.py depuis mockups-src/. Ne pas éditer ici. */

.eyebrow-on-dark{ color:#F0D9A8; }

h1,h2,h3{ font-weight:300; margin:0; }

p{ margin:0; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:8px;
  border-radius:var(--radius-pill);
  padding:14px 24px;
  font-size:15px;
  font-weight:500;
  border:none;
  cursor:pointer;
  transition:transform 150ms var(--ease-out), background 150ms var(--ease-out), box-shadow 150ms var(--ease-out);
  white-space:normal;
  max-width:100%;
}

@media (min-width:480px){ .btn{ padding:16px 30px; font-size:16px; white-space:nowrap; } }

.btn-primary{ background:var(--gold); color:var(--obsidian); }

.btn-primary:hover{ background:#c6913f; transform:scale(1.02); }

.btn-primary:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

.btn-sm{ padding:9px 18px; font-size:13px; }

@media (min-width:480px){ .btn-sm{ padding:10px 22px; font-size:14px; } }

.btn-lg{ padding:14px 24px; font-size:15px; }

@media (min-width:480px){ .btn-lg{ padding:18px 36px; font-size:17px; } }

.btn-primary{ position:relative; overflow:hidden; }

.btn-primary::after{
  content:"";
  position:absolute; top:0; left:-60%;
  width:40%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,0.6), transparent);
  transform:skewX(-20deg);
  transition:left 550ms ease;
  pointer-events:none;
}

.btn-primary:hover::after{ left:130%; }

.reveal-on-scroll{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 700ms var(--ease-out), transform 700ms var(--ease-out);
}

.reveal-on-scroll.is-visible{ opacity:1; transform:translateY(0); }

.stagger-1{ transition-delay:0ms; }

.stagger-2{ transition-delay:90ms; }

.stagger-3{ transition-delay:180ms; }

.stagger-4{ transition-delay:270ms; }

.hero-content > *{
  opacity:0;
  transform:translateY(16px);
  transition:opacity 700ms var(--ease-out), transform 700ms var(--ease-out);
}

.hero-content.is-loaded > *{ opacity:1; transform:translateY(0); }

.hero-content.is-loaded > *:nth-child(1){ transition-delay:40ms; }

.hero-content.is-loaded > *:nth-child(2){ transition-delay:110ms; }

.hero-content.is-loaded > *:nth-child(3){ transition-delay:190ms; }

.hero-content.is-loaded > *:nth-child(4){ transition-delay:270ms; }

.hero-content.is-loaded > *:nth-child(5){ transition-delay:350ms; }

.hero-content.is-loaded > *:nth-child(6){ transition-delay:430ms; }

@media (prefers-reduced-motion: reduce){
  .reveal-on-scroll, .hero-content > *{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .btn-primary::after{ display:none; }
}

.nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background 200ms var(--ease-out), border-color 200ms var(--ease-out), backdrop-filter 200ms var(--ease-out);
}

.nav.is-scrolled{
  background:rgba(244,241,235,0.86);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hairline-light);
}

.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:76px;
}

.nav-logo{ display:block; }

.nav-logo img{ height:42px; width:auto; }

@media (min-width:768px){ .nav-logo img{ height:50px; } }

.nav-logo .logo-on-light{ display:block; }

.nav-logo .logo-on-dark{ display:none; }

.nav-links{
  display:none;
  gap:36px;
  font-size:15px;
  font-weight:500;
}

@media (min-width:768px){ .nav-links{ display:flex; } }

.nav-links a{ opacity:0.85; transition:opacity 150ms; }

.nav-links a:hover{ opacity:1; }

.nav.is-scrolled .nav-links a{ color:var(--obsidian); }

.nav:not(.is-scrolled) .nav-links a{ color:#fff; }

.nav:not(.is-scrolled) .nav-logo .logo-on-light{ display:none; }

.nav:not(.is-scrolled) .nav-logo .logo-on-dark{ display:block; }

.nav-right{ display:flex; align-items:center; gap:12px; }

@media (min-width:768px){ .nav-right{ gap:20px; } }

.nav-burger{
  display:flex;
  width:44px; height:44px;
  align-items:center; justify-content:center;
  background:none; border:none; cursor:pointer;
  flex-shrink:0;
}

@media (min-width:768px){ .nav-burger{ display:none; } }

.burger-icon{ display:block; width:22px; height:16px; position:relative; }

.burger-icon i{
  position:absolute; left:0; right:0; height:2px;
  background:currentColor; border-radius:2px;
  transition:transform 200ms var(--ease-out), opacity 200ms;
}

.burger-icon i:nth-child(1){ top:0; }

.burger-icon i:nth-child(2){ top:7px; }

.burger-icon i:nth-child(3){ top:14px; }

.nav-burger.is-active .burger-icon i:nth-child(1){ transform:translateY(7px) rotate(45deg); }

.nav-burger.is-active .burger-icon i:nth-child(2){ opacity:0; }

.nav-burger.is-active .burger-icon i:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.nav-burger.is-active{ color:var(--obsidian) !important; }

.nav:not(.is-scrolled) .nav-burger{ color:#fff; }

.nav.is-scrolled .nav-burger{ color:var(--obsidian); }

.mobile-menu{
  display:flex;
  position:fixed; inset:0;
  background:var(--ivory);
  z-index:99;
  padding:110px 32px 32px;
  flex-direction:column;
  gap:28px;
  font-size:22px;
  font-weight:300;
  transform:translateY(-8px);
  opacity:0;
  pointer-events:none;
  transition:opacity 220ms var(--ease-out), transform 220ms var(--ease-out);
}

.mobile-menu.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }

.mobile-menu a{ border-bottom:1px solid var(--hairline-light); padding-bottom:16px; }

.mobile-menu .btn{ align-self:flex-start; margin-top:8px; }

.hero{
  position:relative;
  min-height:600px;
  display:flex;
  align-items:center;
  background-image:url(../img/forum-hero-wide-900.b1b27f8b.jpg);
    background-image:image-set(url(../img/forum-hero-wide-900.93937f9e.webp) type("image/webp"), url(../img/forum-hero-wide-900.b1b27f8b.jpg) type("image/jpeg"));
  background-size:cover;
  background-position:center 15%;
}

@media (min-width:768px){ .hero{ min-height:640px; } }

@media (min-width:1024px){ .hero{ min-height:600px; } }

.hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(17,17,17,0.35) 0%, rgba(17,17,17,0.15) 30%, rgba(17,17,17,0.78) 100%);
}

.hero-content{
  position:relative;
  color:#fff;
  padding-top:96px;
  padding-bottom:40px;
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

@media (min-width:768px){ .hero-content{ padding-top:104px; padding-bottom:36px; max-width:820px; } }

@media (min-width:1024px){ .hero-content{ padding-top:112px; padding-bottom:40px; max-width:920px; } }

@media (min-width:1440px){ .hero-content{ max-width:1000px; } }

.hero-logo{ margin-bottom:20px; }

.hero-logo img{
  height:132px;
  width:auto;
  margin:0 auto;
  filter:drop-shadow(0 2px 6px rgba(17,17,17,0.3));
}

@media (min-width:768px){
  .hero-logo{ margin-bottom:22px; }
  .hero-logo img{ height:200px; }
}

@media (min-width:1024px){
  .hero-logo{ margin-bottom:24px; }
  .hero-logo img{ height:236px; }
}

@media (min-width:1440px){
  .hero-logo img{ height:264px; }
}

.hero-content h1{
  font-size:clamp(1.8rem, 6vw, 3.25rem);
  line-height:1.12;
  margin-bottom:16px;
  overflow-wrap:break-word;
  text-wrap:balance;
}

@media (min-width:768px){ .hero-content h1{ line-height:1.08; margin-bottom:16px; } }

.hero-sub{
  font-size:16px;
  font-weight:500;
  line-height:1.6;
  color:rgba(255,255,255,0.88);
  max-width:560px;
  margin:0 auto 28px;
}

@media (min-width:768px){ .hero-sub{ font-size:18px; max-width:640px; margin-bottom:24px; } }

@media (min-width:1024px){ .hero-sub{ max-width:680px; } }

.hero-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px 18px;
  flex-wrap:wrap;
  margin-bottom:24px;
}

@media (min-width:768px){ .hero-actions{ margin-bottom:20px; } }

.hero-caption{ font-size:14px; color:rgba(255,255,255,0.75); }

.hero-stat{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:500;
  letter-spacing:0.02em;
  color:#fff;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.28);
  padding:8px 16px;
  border-radius:var(--radius-pill);
}

.hero-stat::before{
  content:"";
  width:6px; height:6px; border-radius:50%;
  background:var(--gold);
  display:inline-block;
}

section{ padding:64px 0; }

@media (min-width:768px){ section{ padding:80px 0; } }

@media (min-width:1024px){ section{ padding:112px 0; } }

.section-head{ max-width:640px; margin-bottom:40px; }

@media (min-width:768px){ .section-head{ margin-bottom:56px; } }

.section-head h2{
  font-size:clamp(1.6rem, 6vw, 2.6rem);
  line-height:1.18;
  overflow-wrap:break-word;
  text-wrap:balance;
}

.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

.section-lede{
  font-size:15.5px;
  line-height:1.6;
  color:var(--ivory-dim);
  max-width:520px;
  margin-top:12px;
}

@media (min-width:768px){ .section-lede{ font-size:16px; } }

.destinations-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

@media (min-width:768px){ .destinations-grid{ grid-template-columns:3fr 2fr; gap:24px; } }

.destination-card{
  position:relative;
  border-radius:var(--radius-md);
  min-height:280px;
  display:flex;
}

@media (min-width:768px){ .destination-card{ min-height:380px; } }

.destination-card.live{
  align-items:flex-end;
  overflow:hidden;
  background-image:url(../img/forum-site-card.6c8936e2.jpg);
  background-size:cover;
  background-position:center;
}

.destination-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(17,17,17,0) 35%, rgba(17,17,17,0.88) 100%);
}

.destination-content{
  position:relative;
  color:#fff;
  padding:24px;
}

@media (min-width:768px){ .destination-content{ padding:32px; } }

.destination-badge{
  position:relative;
  display:inline-flex;
  align-items:center;
  background:var(--gold);
  color:var(--obsidian);
  font-size:11.5px;
  font-weight:500;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:6px 12px;
  border-radius:var(--radius-pill);
  margin-bottom:14px;
}

.destination-badge::after{
  content:"";
  position:absolute; inset:-4px;
  border-radius:inherit;
  border:1.5px solid var(--gold);
  opacity:0;
  animation:badgePulse 2.4s ease-out infinite;
}

@keyframes badgePulse{
  0%{ opacity:0.6; transform:scale(1); }
  80%,100%{ opacity:0; transform:scale(1.35); }
}

@media (prefers-reduced-motion: reduce){ .destination-badge::after{ animation:none; } }

.destination-content h3{
  font-size:24px;
  font-weight:300;
  color:#fff;
  margin-bottom:4px;
}

@media (min-width:768px){ .destination-content h3{ font-size:28px; } }

.destination-loc{
  font-size:13px;
  color:rgba(255,255,255,0.72);
  margin-bottom:12px;
}

.destination-hook{
  font-size:14.5px;
  line-height:1.5;
  color:rgba(255,255,255,0.85);
  max-width:320px;
}

.destination-card.soon{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:var(--ivory-card);
  border:1.5px dashed var(--hairline-light);
  padding:32px 28px;
}

.destination-card.soon .icon{
  width:52px; height:52px;
  border-radius:50%;
  background:var(--ivory);
  border:1px solid var(--hairline-light);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:18px;
  flex-shrink:0;
}

.destination-card.soon .icon svg{ width:20px; height:20px; color:var(--ivory-faint); }

.destination-card.soon h3{
  font-size:18px;
  font-weight:500;
  color:var(--obsidian);
  margin-bottom:8px;
}

.destination-card.soon p{
  font-size:14px;
  line-height:1.6;
  color:var(--ivory-dim);
  max-width:280px;
}

.manifesto-inner{
  position:relative;
  max-width:680px;
  margin:0 auto;
  text-align:center;
}

.manifesto-ring{
  position:absolute;
  left:50%; top:50%;
  width:min(300px, 84vw); height:min(300px, 84vw);
  transform:translate(-50%,-50%);
  border:1px solid var(--hairline-light);
  border-radius:50%;
  z-index:-1;
  animation:ringBreathe 7s ease-in-out infinite;
}

@media (min-width:768px){ .manifesto-ring{ width:440px; height:440px; } }

@keyframes ringBreathe{
  0%,100%{ transform:translate(-50%,-50%) scale(1); opacity:0.5; }
  50%{ transform:translate(-50%,-50%) scale(1.06); opacity:0.9; }
}

.manifesto-statement{
  font-size:clamp(1.7rem, 6.5vw, 2.75rem);
  line-height:1.22;
  margin-bottom:24px;
  text-wrap:balance;
}

.manifesto-statement .accent{ color:var(--gold-ink); }

.manifesto-lede{
  font-size:15.5px;
  line-height:1.7;
  color:var(--ivory-dim);
  max-width:520px;
  margin:0 auto 14px;
}

@media (min-width:768px){ .manifesto-lede{ font-size:16.5px; } }

.manifesto-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:16px;
  font-size:12.5px;
  font-weight:500;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--obsidian);
  background:var(--ivory-card);
  border:1px solid var(--hairline-light);
  padding:10px 18px;
  border-radius:var(--radius-pill);
}

.manifesto-tag::before{
  content:"";
  width:6px; height:6px; border-radius:50%;
  background:var(--gold);
  display:inline-block;
  flex-shrink:0;
}

.reveal-frame{
  position:relative;
  max-width:340px;
  margin:0 auto;
  aspect-ratio:1206/1855;
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:0 24px 48px -24px rgba(17,17,17,0.35);
  cursor:grab;
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
  --pos:50;
}

@media (min-width:768px){ .reveal-frame{ max-width:440px; } }

.reveal-frame.is-dragging{ cursor:grabbing; }

.reveal-frame:focus-visible{ outline:2px solid var(--gold); outline-offset:4px; }

.reveal-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
}

.reveal-overlay{
  position:absolute; inset:0;
  clip-path:inset(0 calc(100% - var(--pos) * 1%) 0 0);
}

.reveal-handle{
  position:absolute; top:0; bottom:0;
  left:calc(var(--pos) * 1%);
  transform:translateX(-50%);
  z-index:3;
  pointer-events:none;
}

.reveal-handle::before{
  content:"";
  position:absolute; top:0; bottom:0; left:50%;
  width:2px;
  background:rgba(255,255,255,0.9);
  box-shadow:0 0 0 1px rgba(17,17,17,0.15);
  transform:translateX(-50%);
}

.reveal-grip{
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:44px; height:44px;
  border-radius:50%;
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 20px -6px rgba(17,17,17,0.45);
  color:var(--ar-blue);
}

.reveal-grip svg{ width:18px; height:18px; }

.reveal-tag{
  position:absolute; top:14px;
  z-index:2;
  background:rgba(17,17,17,0.55);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  color:#fff;
  font-size:11px;
  font-weight:500;
  letter-spacing:0.04em;
  text-transform:uppercase;
  padding:7px 12px;
  border-radius:var(--radius-pill);
  pointer-events:none;
}

.reveal-tag-left{ left:14px; }

.reveal-tag-right{ right:14px; }

.reveal-hint{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:20px;
  font-size:13px;
  font-weight:500;
  color:var(--ivory-faint);
}

.reveal-hint svg{ width:16px; height:16px; }

.split-caption{
  text-align:center;
  font-size:13.5px;
  color:var(--ivory-faint);
  margin-top:28px;
  padding:0 20px;
}

.steps-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
}

@media (min-width:768px){ .steps-grid{ grid-template-columns:repeat(3,1fr); gap:32px; } }

@media (min-width:1024px){ .steps-grid{ gap:48px; } }

.step-eyebrow{
  font-size:13px;
  font-weight:500;
  color:var(--gold-ink);
  letter-spacing:0.06em;
  margin-bottom:14px;
}

.step h3{
  font-size:20px;
  font-weight:500;
  margin-bottom:10px;
}

.step p{
  font-size:15.5px;
  line-height:1.6;
  color:var(--ivory-dim);
}

.features-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}

@media (min-width:768px){ .features-grid{ grid-template-columns:repeat(3,1fr); gap:24px; } }

.feature-card{
  background:var(--ivory-card);
  border:1px solid var(--hairline-light);
  border-radius:var(--radius-md);
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:16px;
  transition:transform 200ms var(--ease-out), box-shadow 200ms var(--ease-out);
}

@media (min-width:768px){ .feature-card{ padding:32px; } }

.feature-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 40px -20px rgba(17,17,17,0.18);
}

.feature-card .icon{
  width:48px; height:48px;
  border-radius:50%;
  background:var(--ivory);
  border:1px solid var(--hairline-light);
  display:flex; align-items:center; justify-content:center;
}

.feature-card .icon svg{ width:22px; height:22px; stroke:var(--obsidian); }

.feature-card.ar .icon svg{ stroke:var(--ar-blue); }

.feature-card h3{ font-size:18px; font-weight:500; }

.feature-card p{ font-size:14.5px; line-height:1.6; color:var(--ivory-dim); }

.showcase-inner{ width:100%; }

.phones{
  display:flex;
  justify-content:flex-start;
  align-items:flex-start;
  gap:20px;
  width:100%;
  padding:0 20px 8px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}

.phone-wrap{ scroll-snap-align:start; flex-shrink:0; }

@media (min-width:1024px){
  /* Enough width at laptop+ for all three to sit side by side without scrolling. */
  .phones{
    justify-content:center;
    overflow-x:visible;
    padding:0 32px;
    gap:32px;
  }
}

@media (min-width:1200px){ .phones{ padding:0 64px; } }

.phone-wrap{ perspective:700px; }

.phone{
  width:220px;
  border-radius:32px;
  background:var(--obsidian);
  padding:10px;
  box-shadow:0 30px 60px -28px rgba(17,17,17,0.45);
  transition:transform 400ms var(--ease-out), box-shadow 400ms var(--ease-out);
  will-change:transform;
}

@media (prefers-reduced-motion: reduce){ .phone{ transition:none; } }

@media (min-width:768px){ .phone{ width:260px; border-radius:36px; padding:12px; } }

.phone-screen{
  position:relative;
  border-radius:26px;
  overflow:hidden;
  aspect-ratio:9/19.5;
  background:#000;
}

.phone-screen img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
}

.phone-notch{
  position:absolute;
  top:10px; left:50%;
  transform:translateX(-50%);
  width:84px; height:22px;
  background:var(--obsidian);
  border-radius:var(--radius-pill);
  z-index:2;
}

.phone-label{
  position:absolute;
  left:12px; right:12px; bottom:12px;
  z-index:2;
  background:rgba(17,17,17,0.55);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border-radius:var(--radius-sm);
  padding:10px 12px;
  display:flex;
  align-items:center;
  gap:8px;
}

.phone-label .dot{ width:6px; height:6px; border-radius:50%; background:var(--ar-blue); flex-shrink:0; }

.phone-label span{ color:#fff; font-size:11.5px; font-weight:500; letter-spacing:0.01em; }

.phone-caption{
  text-align:center;
  margin-top:18px;
  font-size:14px;
  font-weight:500;
  color:var(--ivory-dim);
}

.download-band{ padding:0; }

.band-card{
  position:relative;
  max-width:1160px;
  margin:0 auto;
  padding:0 20px;
}

@media (min-width:768px){ .band-card{ padding:0 32px; } }

@media (min-width:1200px){ .band-card{ padding:0 64px; } }

.band-inner{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  min-height:320px;
  display:flex;
  align-items:center;
  background-image:url(../img/forum-band.9b6911d7.jpg);
  background-size:cover;
  background-position:center;
}

@media (min-width:768px){ .band-inner{ min-height:360px; } }

.band-scrim{
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(17,17,17,0.82) 0%, rgba(17,17,17,0.45) 55%, rgba(17,17,17,0.15) 100%);
}

.band-content{
  position:relative;
  color:#fff;
  padding:32px 24px;
  max-width:520px;
}

@media (min-width:768px){ .band-content{ padding:56px; } }

.band-content h2{
  font-size:clamp(1.6rem, 6vw, 2.4rem);
  margin-bottom:16px;
  color:#fff;
  overflow-wrap:break-word;
  text-wrap:balance;
}

.band-content p{
  font-size:16px;
  color:rgba(255,255,255,0.82);
  line-height:1.6;
  margin-bottom:28px;
}

.band-caption{ font-size:13px; color:rgba(255,255,255,0.65); margin-top:14px; }
  /* Bascule du hero vers l'image pleine taille, ajoutée par build.py : la
     déclaration de base (plus haut) sert la variante 900px, inutile d'envoyer
     1760px de large à un téléphone. En min-width pour rester cohérent avec le
     mobile-first du Design System web (§3). */
  @media (min-width:768px){
    .hero{
      background-image:url(../img/forum-hero-wide.c5422a34.jpg);
      background-image:image-set(url(../img/forum-hero-wide.23cdcaca.webp) type("image/webp"), url(../img/forum-hero-wide.c5422a34.jpg) type("image/jpeg"));
    }
  }

