/**
 * Interface 127 — Design system géométrique.
 *
 * Modes : linéaire pour les contenus, radial pour le Cercle, constellation
 * uniquement lorsque des relations réelles sont disponibles.
 */

:root{
  /* Couleurs fonctionnelles */
  --i127-color-void:#070a15;
  --i127-color-night:#080b17;
  --i127-color-surface:#12172a;
  --i127-color-text:#f2eadc;
  --i127-color-muted:#aab2c6;
  --i127-color-gold:#dfc27d;
  --i127-color-violet:#a798ee;
  --i127-sister-oni:#d9cdfb;
  --i127-sister-alka:#a9c2f7;
  --i127-sister-naia:#8fdad3;
  --i127-sister-terra:#a9c98a;
  --i127-sister-ignis:#eb9a68;
  --i127-sister-astria:#f2dea8;
  --i127-sister-irma:#f3f1fb;

  /* Proportions, cercles et orbites */
  --geo-ratio:1.618;
  --geo-ratio-inverse:.618;
  --geo-space-1:.375rem;
  --geo-space-2:.625rem;
  --geo-space-3:1rem;
  --geo-space-4:1.625rem;
  --geo-space-5:2.625rem;
  --geo-space-6:4.25rem;
  --geo-radius-circle:50%;
  --geo-radius-soft:1.125rem;
  --geo-circle-size-sm:2.75rem;
  --geo-circle-size-md:4rem;
  --geo-circle-size-lg:7rem;
  --geo-orbit-sm:5rem;
  --geo-orbit-md:9rem;
  --geo-orbit-lg:14rem;
  --geo-line-thin:1px;
  --geo-line-medium:2px;
  --geo-line-strong:3px;
  --geo-motion-orbit:34s;
  --geo-motion-breathe:6s;
  --geo-motion-pulse:3s;
  --geo-motion-fast:180ms;
  --geo-motion-base:280ms;
  --geo-ease:cubic-bezier(.2,.8,.2,1);
  --geo-opacity-line:.24;
  --geo-opacity-soft:.12;
  --geo-opacity-focus:.72;

  /* Profondeur et couches */
  --geo-shadow-soft:0 12px 30px rgba(0,0,0,.18);
  --geo-shadow-deep:0 32px 85px rgba(0,0,0,.32);
  --geo-depth-content:1;
  --geo-depth-navigation:82;
  --geo-depth-dialog:200;
  --geo-breakpoint-compact:560px;
  --geo-breakpoint-radial:760px;
  --geo-breakpoint-wide:980px;
  --i127-copper:#c48659;
  --i127-deep:var(--i127-color-void);
}

/* Les trois grilles restent explicites et réutilisables. */
.i127-layout--linear{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--geo-space-4)}
.i127-layout--radial{position:relative;display:grid;place-items:center}
.i127-layout--constellation{position:relative;isolation:isolate}
.i127-heptagon .screen-reader-text{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}

/* Le contenu reste visible par défaut. Cette classe n'existe que lorsque le
   Motion Engine et IntersectionObserver sont réellement disponibles. */
.i127-motion-ready [data-i127-reveal]{opacity:0;transform:translateY(var(--geo-space-3));transition:opacity var(--geo-motion-base) var(--geo-ease),transform var(--geo-motion-base) var(--geo-ease)}
.i127-motion-ready [data-i127-reveal].is-visible{opacity:1;transform:none}

/* ── Portail applicatif de l'accueil ── */
.i127-home-hero{
  min-height:min(900px,calc(100svh - 80px));
  isolation:isolate;
}
.i127-home-hero::before{
  content:"";
  position:absolute;
  z-index:0;
  left:50%;
  top:52%;
  width:min(88vw,760px);
  aspect-ratio:1;
  border:1px solid rgba(215,207,249,.07);
  border-radius:50%;
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 70px rgba(215,207,249,.018),0 0 0 150px rgba(223,194,125,.012);
  pointer-events:none;
}
.i127-home-hero .i127-home-hero__grid{
  width:min(1180px,calc(100% - 40px));
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);
  align-items:center;
  gap:clamp(34px,6vw,88px);
  min-height:inherit;
  padding:clamp(55px,8vw,95px) 0;
  text-align:left;
}
.i127-home-hero__copy{position:relative;z-index:2}
.i127-home-hero .i127-home-hero__copy h1{
  max-width:15ch;
  margin:0 0 24px;
  font-size:clamp(2.45rem,5vw,4.85rem);
  line-height:.96;
  text-wrap:balance;
}
.i127-home-hero .i127-home-hero__copy .lead{max-width:660px;margin:0 0 18px}
.i127-home-hero .i127-home-hero__copy .hero-truth{justify-content:flex-start}
.i127-home-hero .i127-home-hero__copy .hero-btns{justify-content:flex-start}

.i127-portal{
  position:relative;
  z-index:2;
  width:min(100%,470px);
  aspect-ratio:1;
  margin-inline:auto;
  filter:drop-shadow(0 35px 55px rgba(0,0,0,.28));
}
.i127-portal::before,.i127-portal::after{
  content:"";
  position:absolute;
  inset:7%;
  border:1px solid rgba(223,194,125,.19);
  pointer-events:none;
}
.i127-portal::before{
  clip-path:polygon(50% 0,89% 19%,99% 61%,72% 95%,28% 95%,1% 61%,11% 19%);
  background:radial-gradient(circle at 50% 50%,rgba(167,152,238,.075),transparent 62%);
}
.i127-portal::after{inset:15%;border-radius:50%;border-color:rgba(215,207,249,.12)}
.i127-portal__vesica{position:absolute;inset:15%;pointer-events:none}
.i127-portal__vesica span{
  position:absolute;
  top:10%;
  width:66%;
  aspect-ratio:1;
  border:1px solid rgba(215,207,249,.18);
  border-radius:50%;
}
.i127-portal__vesica span:first-child{left:1%;background:radial-gradient(circle at 70% 50%,rgba(167,152,238,.12),transparent 60%)}
.i127-portal__vesica span:last-child{right:1%;background:radial-gradient(circle at 30% 50%,rgba(223,194,125,.1),transparent 60%)}
.i127-portal__center{
  position:absolute;
  left:50%;
  top:46%;
  width:clamp(158px,18vw,198px);
  aspect-ratio:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:22px;
  border:1px solid rgba(242,222,168,.68);
  border-radius:50%;
  color:var(--ivory);
  text-align:center;
  background:radial-gradient(circle at 40% 30%,rgba(215,207,249,.22),transparent 34%),linear-gradient(145deg,#15182c,#090b17);
  box-shadow:0 0 0 10px rgba(223,194,125,.04),0 22px 50px rgba(0,0,0,.42),inset 0 0 35px rgba(167,152,238,.08);
  transform:translate(-50%,-50%);
  transition:transform .28s ease,box-shadow .28s ease;
}
.i127-portal__center:hover,.i127-portal__center:focus-visible{
  transform:translate(-50%,-50%) scale(1.035);
  box-shadow:0 0 0 14px rgba(223,194,125,.07),0 28px 62px rgba(0,0,0,.48),0 0 50px rgba(223,194,125,.16);
}
.i127-portal__number{color:var(--gold);font:600 .68rem/1 "Manrope",sans-serif;letter-spacing:.18em}
.i127-portal__center strong{font:600 clamp(1.35rem,2.6vw,1.75rem)/1.02 "Cormorant Garamond",serif}
.i127-portal__center small{max-width:15ch;color:var(--muted);font-size:.66rem;line-height:1.4}
.i127-portal__routes{
  position:absolute;
  left:7%;
  right:7%;
  bottom:4%;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.i127-portal__routes a{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:10px;
  align-items:center;
  min-width:0;
  padding:11px 13px;
  border:1px solid rgba(242,234,220,.12);
  border-radius:16px;
  background:rgba(8,11,23,.84);
  background:color-mix(in srgb,var(--i127-color-night) 84%,transparent);
  backdrop-filter:blur(12px);
  transition:transform var(--geo-motion-fast) var(--geo-ease),border-color var(--geo-motion-fast) var(--geo-ease),background var(--geo-motion-fast) var(--geo-ease);
}
.i127-portal__routes a:hover,.i127-portal__routes a:focus-visible{transform:translateY(-3px);border-color:rgba(223,194,125,.42);background:rgba(18,22,40,.94)}
.i127-portal__routes b{display:grid;place-items:center;width:32px;aspect-ratio:1;border:1px solid rgba(223,194,125,.34);border-radius:50%;color:var(--gold);font:.7rem/1 "Manrope",sans-serif}
.i127-portal__routes span{min-width:0}
.i127-portal__routes strong,.i127-portal__routes small{display:block}
.i127-portal__routes strong{color:var(--ivory);font:600 1rem/1.1 "Cormorant Garamond",serif}
.i127-portal__routes small{margin-top:3px;color:var(--muted);font-size:.58rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.i127-home-hero__scroll{position:absolute;left:50%;bottom:22px;width:24px;height:42px;border:1px solid rgba(242,234,220,.18);border-radius:99px;transform:translateX(-50%)}
.i127-home-hero__scroll span{position:absolute;left:50%;top:8px;width:3px;height:8px;border-radius:3px;background:var(--gold);transform:translateX(-50%)}

/* ── Cercle radial calculé ── */
.i127-circle-section{overflow:hidden;background:radial-gradient(circle at 50% 43%,rgba(167,152,238,.14),transparent 34rem),linear-gradient(180deg,#0d0b1c,#080b17)}
.i127-circle-section::before{
  content:"";
  position:absolute;
  left:50%;
  top:52%;
  width:min(920px,94vw);
  aspect-ratio:1;
  border-radius:50%;
  background:repeating-radial-gradient(circle,rgba(223,194,125,.035) 0 1px,transparent 1px 66px);
  transform:translate(-50%,-50%);
  pointer-events:none;
}
.i127-heptagon{position:relative;z-index:1;max-width:900px;margin:0 auto;color:var(--text)}
.i127-heptagon__stage{
  position:relative;
  display:grid;
  gap:var(--geo-space-4);
  padding:var(--geo-space-4);
  border:1px solid rgba(242,234,220,.1);
  border-radius:30px;
  background:linear-gradient(145deg,rgba(18,23,42,.88),rgba(7,10,20,.78));
  box-shadow:var(--geo-shadow-deep);
}
.i127-heptagon__drawing{display:none;position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.i127-heptagon__orbit{fill:none;stroke:rgba(242,234,220,.08);stroke-width:1;stroke-dasharray:2 9}
.i127-heptagon__orbit--inner{stroke:rgba(223,194,125,.13);stroke-dasharray:1 7}
.i127-heptagon__polygon{fill:rgba(167,152,238,.018);stroke:rgba(215,207,249,.25);stroke-width:1.4;stroke-linejoin:round;stroke-dasharray:7 7}
.i127-heptagon__polygon--inner{fill:none;stroke:rgba(223,194,125,.17);stroke-width:1;stroke-dasharray:2 8}
.i127-heptagon__ray{stroke:rgba(242,234,220,.09);stroke-width:1;transition:stroke .22s ease,stroke-width .22s ease,filter .22s ease}
.i127-heptagon__ray.is-active{stroke:var(--i127-active);stroke-width:2;filter:drop-shadow(0 0 5px var(--i127-active))}
.i127-heptagon__center{
  position:relative;
  z-index:3;
  width:166px;
  aspect-ratio:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  justify-self:center;
  gap:3px;
  padding:20px;
  border:1px solid rgba(223,194,125,.58);
  border-radius:50%;
  text-align:center;
  background:radial-gradient(circle at 35% 28%,rgba(215,207,249,.2),transparent 35%),linear-gradient(145deg,#17192e,#090b17);
  box-shadow:0 0 0 9px rgba(223,194,125,.035),0 18px 45px rgba(0,0,0,.4),0 0 42px rgba(167,152,238,.12);
  transition:transform .25s ease,box-shadow .25s ease;
}
.i127-heptagon__center:hover,.i127-heptagon__center:focus-visible{transform:scale(1.035);box-shadow:0 0 0 13px rgba(223,194,125,.06),0 24px 55px rgba(0,0,0,.48),0 0 55px rgba(223,194,125,.16)}
.i127-heptagon__center-ring{position:absolute;inset:8px;border:1px dashed rgba(215,207,249,.19);border-radius:50%;pointer-events:none}
.i127-heptagon__center small{color:var(--gold);font:700 .56rem/1 "Manrope",sans-serif;letter-spacing:.13em;text-transform:uppercase}
.i127-heptagon__center strong{color:var(--ivory);font:600 1.48rem/1.05 "Cormorant Garamond",serif}
.i127-heptagon__center>span:last-child{color:var(--muted);font-size:.63rem}
.i127-heptagon__nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.i127-heptagon__node-wrap{min-width:0}
.i127-heptagon__node{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 20px;
  align-items:center;
  gap:10px;
  min-height:76px;
  padding:11px;
  overflow:hidden;
  border:1px solid rgba(242,234,220,.11);
  border-radius:18px;
  background:rgba(255,255,255,.025);
  box-shadow:0 12px 28px rgba(0,0,0,.16);
  transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease;
}
.i127-heptagon__node::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.05;
  background:var(--i127-sister);
  clip-path:polygon(50% 0,89% 19%,99% 61%,72% 95%,28% 95%,1% 61%,11% 19%);
}
.i127-heptagon__node:hover,.i127-heptagon__node:focus-visible,.i127-heptagon__node.is-active{
  border-color:var(--i127-sister);
  background:rgba(255,255,255,.045);
  box-shadow:0 16px 35px rgba(0,0,0,.27),0 0 25px rgba(215,207,249,.08);
  transform:translateY(-3px);
}
.i127-heptagon__node.is-visited::after{content:"";position:absolute;right:8px;top:8px;width:5px;aspect-ratio:1;border-radius:50%;background:var(--i127-sister);box-shadow:0 0 8px var(--i127-sister)}
.i127-heptagon__portrait{width:48px;aspect-ratio:1;overflow:hidden;border:1px solid var(--i127-sister);border-radius:50%;background:#101426;box-shadow:0 0 16px rgba(0,0,0,.28)}
.i127-heptagon__portrait img{width:100%;height:100%;object-fit:cover}
.i127-heptagon__identity{min-width:0}
.i127-heptagon__identity small,.i127-heptagon__identity strong,.i127-heptagon__identity>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.i127-heptagon__identity small{color:var(--i127-sister);font:700 .53rem/1.2 "Manrope",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.i127-heptagon__identity strong{margin-top:4px;color:var(--ivory);font:600 1.14rem/1 "Cormorant Garamond",serif}
.i127-heptagon__identity>span{margin-top:4px;color:var(--muted);font-size:.6rem}
.i127-heptagon__glyph{color:var(--i127-sister);font-size:1rem;text-align:center}
.i127-heptagon__detail{
  display:grid;
  grid-template-columns:58px minmax(150px,.6fr) minmax(0,1.4fr);
  gap:18px;
  align-items:center;
  max-width:760px;
  min-height:92px;
  margin:18px auto 0;
  padding:16px 20px;
  border:1px solid rgba(242,234,220,.11);
  border-radius:20px;
  background:rgba(8,11,23,.74);
  backdrop-filter:blur(12px);
  transition:border-color .2s ease,box-shadow .2s ease;
}
.i127-heptagon__detail-mark{display:grid;place-items:center;width:52px;aspect-ratio:1;border:1px solid var(--i127-active);border-radius:50%;color:var(--i127-active);font:600 .68rem/1 "Manrope",sans-serif;box-shadow:0 0 18px rgba(223,194,125,.08)}
.i127-heptagon__detail p{margin:0}
.i127-heptagon__detail p:nth-child(2) small,.i127-heptagon__detail p:nth-child(2) strong{display:block}
.i127-heptagon__detail small{color:var(--i127-active);font:.58rem/1.3 "Manrope",sans-serif;letter-spacing:.06em;text-transform:uppercase}
.i127-heptagon__detail strong{margin-top:4px;color:var(--ivory);font:600 1.35rem/1 "Cormorant Garamond",serif}
.i127-heptagon__detail>p:last-child{color:var(--muted);font-size:.78rem;line-height:1.55}
.i127-heptagon__actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:24px}

/* ── La Vesica Piscis sert uniquement aux zones de dialogue ── */
.interface127 .oschat-shell{position:relative;isolation:isolate}
.interface127 .oschat-shell::before,.interface127 .oschat-shell::after{
  content:"";
  position:absolute;
  z-index:-1;
  top:16%;
  width:56%;
  aspect-ratio:1;
  border:1px solid color-mix(in srgb,var(--oschat-accent) 16%,transparent);
  border-radius:50%;
  pointer-events:none;
}
.interface127 .oschat-shell::before{left:9%;background:radial-gradient(circle at 70% 50%,color-mix(in srgb,var(--oschat-accent) 6%,transparent),transparent 62%)}
.interface127 .oschat-shell::after{right:9%;background:radial-gradient(circle at 30% 50%,rgba(215,207,249,.035),transparent 62%)}

/* ── Signatures géométriques discrètes des pages linéaires ── */
.interface127 .page-hero{position:relative;overflow:hidden;isolation:isolate}
.interface127 .page-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:clamp(-130px,-8vw,-50px);
  top:50%;
  width:310px;
  aspect-ratio:1;
  border:1px solid rgba(223,194,125,.09);
  border-radius:50%;
  box-shadow:0 0 0 45px rgba(167,152,238,.02),0 0 0 92px rgba(223,194,125,.015);
  transform:translateY(-50%);
}
.interface127 .promise,.interface127 .offer,.interface127 .lineage,.interface127 .adventure-card,.interface127 .page-bridge__inner{border-radius:calc(var(--geo-radius-soft) * var(--geo-ratio))}
.interface127 .oni-app-nav__item--featured .oni-app-nav__icon::before{
  content:"";
  position:absolute;
  inset:-7px;
  border:1px dashed rgba(223,194,125,.34);
  border-radius:50%;
}

@media(min-width:760px){
  .i127-heptagon.is-enhanced .i127-heptagon__stage{
    width:min(100%,680px);
    height:680px;
    margin-inline:auto;
    padding:0;
    border-radius:50%;
    background:radial-gradient(circle at center,rgba(167,152,238,.08),rgba(8,11,23,.55) 44%,rgba(8,11,23,.08) 72%);
  }
  .i127-heptagon.is-enhanced .i127-heptagon__drawing{display:block}
  .i127-heptagon.is-enhanced .i127-heptagon__center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
  .i127-heptagon.is-enhanced .i127-heptagon__center:hover,.i127-heptagon.is-enhanced .i127-heptagon__center:focus-visible{transform:translate(-50%,-50%) scale(1.04)}
  .i127-heptagon.is-enhanced .i127-heptagon__nodes{position:absolute;inset:0;display:block}
  .i127-heptagon.is-enhanced .i127-heptagon__node-wrap{position:absolute;left:var(--i127-x);top:var(--i127-y);width:168px;transform:translate(-50%,-50%)}
  .i127-heptagon.is-enhanced .i127-heptagon__node{grid-template-columns:43px minmax(0,1fr);min-height:68px;padding:9px}
  .i127-heptagon.is-enhanced .i127-heptagon__portrait{width:43px}
  .i127-heptagon.is-enhanced .i127-heptagon__glyph{position:absolute;right:9px;bottom:7px;font-size:.72rem;opacity:.72}
}

@media(max-width:980px){
  .i127-home-hero .i127-home-hero__grid{grid-template-columns:1fr;max-width:760px;text-align:center;padding-top:70px}
  .i127-home-hero .i127-home-hero__copy h1{margin-inline:auto}
  .i127-home-hero .i127-home-hero__copy .lead{margin-inline:auto}
  .i127-home-hero .i127-home-hero__copy .hero-truth,.i127-home-hero .i127-home-hero__copy .hero-btns{justify-content:center}
  .i127-portal{max-width:440px}
}

@media(max-width:759px){
  .i127-circle-section{padding-inline:0}
  .i127-heptagon{max-width:600px}
  .i127-heptagon__stage{padding:20px}
  .i127-heptagon__detail{grid-template-columns:48px 1fr;gap:12px}
  .i127-heptagon__detail-mark{width:44px;grid-row:1/3}
  .i127-heptagon__detail>p:last-child{grid-column:2}
}

@media(max-width:560px){
  .i127-home-hero{min-height:auto}
  .i127-home-hero .i127-home-hero__grid{width:min(100% - 28px,760px);gap:20px;padding:48px 0 62px}
  .i127-home-hero .i127-home-hero__copy h1{font-size:clamp(2.35rem,12vw,3.6rem)}
  .i127-home-hero .i127-home-hero__copy .lead{font-size:1rem}
  .i127-home-hero__scroll{display:none}
  .i127-portal{width:100%;height:350px;aspect-ratio:auto}
  .i127-portal::before{inset:1% 5% 3%}
  .i127-portal::after{inset:10% 14% 13%}
  .i127-portal__vesica{inset:10% 13% 18%}
  .i127-portal__center{top:43%;width:164px}
  .i127-portal__routes{left:2%;right:2%;bottom:0}
  .i127-heptagon__nodes{grid-template-columns:1fr}
  .i127-heptagon__node{min-height:72px}
  .i127-heptagon__detail{display:grid;grid-template-columns:42px 1fr;padding:14px}
  .i127-heptagon__detail-mark{width:40px}
  .i127-heptagon__actions{align-items:stretch;flex-direction:column}
  .i127-heptagon__actions .btn{width:100%}
}

@media(max-width:380px){
  .i127-portal__routes{grid-template-columns:1fr;bottom:-16px}
  .i127-portal__routes a{min-height:54px}
  .i127-portal__routes a:last-child{display:none}
  .i127-heptagon__stage{padding:14px;border-radius:22px}
}

@media(prefers-reduced-motion:no-preference){
  .i127-home-hero__scroll span{animation:i127-scroll 2.3s ease-in-out infinite}
  .i127-portal::before{animation:i127-breathe var(--geo-motion-breathe) ease-in-out infinite}
  .i127-heptagon.is-enhanced .i127-heptagon__polygon{animation:i127-dash 24s linear infinite}
  .i127-heptagon__center-ring{animation:i127-turn var(--geo-motion-orbit) linear infinite}
  .interface127 .oni-app-nav__item--featured .oni-app-nav__icon::before{animation:i127-turn 18s linear infinite}
}

@media(prefers-reduced-motion:reduce){
  .i127-portal *,.i127-heptagon *,.i127-home-hero__scroll span,[data-i127-reveal]{animation:none!important;transition-duration:.01ms!important}
  .i127-motion-ready [data-i127-reveal]{opacity:1;transform:none}
}

@keyframes i127-scroll{0%,100%{transform:translate(-50%,0);opacity:.35}50%{transform:translate(-50%,15px);opacity:1}}
@keyframes i127-breathe{0%,100%{transform:scale(1);opacity:.72}50%{transform:scale(1.018);opacity:1}}
@keyframes i127-dash{to{stroke-dashoffset:-140}}
@keyframes i127-turn{to{transform:rotate(360deg)}}


/* =========================================================
   V7.3.8 — ACCUEIL : PORTE → ARBRE → ACTION
   L'image finale devient le composant principal.
   ========================================================= */

.i127-home-hero .i127-portal--image{
  position:relative;
  z-index:2;
  width:min(100%,520px);
  aspect-ratio:auto;
  margin-inline:auto;
  filter:none;
}

.i127-home-hero .i127-portal--image::before,
.i127-home-hero .i127-portal--image::after,
.i127-home-hero .i127-portal--image .i127-portal__vesica{
  display:none!important;
}

.i127-portal__scene{
  position:relative;
  display:block;
  overflow:hidden;
  width:100%;
  aspect-ratio:1;
  border:1px solid rgba(229,189,107,.28);
  border-radius:28px;
  background:#090817;
  box-shadow:
    0 28px 72px rgba(0,0,0,.42),
    0 0 0 1px rgba(246,221,167,.035) inset;
  text-decoration:none;
  isolation:isolate;
}

.i127-portal__image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.002);
  transition:
    transform .7s cubic-bezier(.2,.7,.2,1),
    filter .7s cubic-bezier(.2,.7,.2,1);
}

.i127-portal__veil{
  position:absolute;
  z-index:1;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(
      180deg,
      rgba(5,6,16,.02) 0%,
      rgba(5,6,16,0) 52%,
      rgba(5,6,16,.18) 76%,
      rgba(5,6,16,.52) 100%
    );
}

.i127-portal__cta{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:8.5%;
  display:inline-flex;
  min-height:52px;
  align-items:center;
  justify-content:center;
  padding:14px 26px;
  border:1px solid rgba(246,221,167,.72);
  border-radius:999px;
  color:#171322;
  background:
    linear-gradient(135deg,#fff2c7 0%,#e5bd6b 58%,#c99d4d 100%);
  box-shadow:
    0 15px 35px rgba(0,0,0,.34),
    0 0 30px rgba(229,189,107,.18);
  font:700 .88rem/1 "Manrope",Arial,sans-serif;
  letter-spacing:.045em;
  text-transform:none;
  transform:translateX(-50%);
  white-space:nowrap;
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    filter .25s ease;
}

.i127-portal__scene:hover .i127-portal__image,
.i127-portal__scene:focus-visible .i127-portal__image{
  transform:scale(1.018);
  filter:brightness(1.04);
}

.i127-portal__scene:hover .i127-portal__cta,
.i127-portal__scene:focus-visible .i127-portal__cta{
  transform:translateX(-50%) translateY(-3px);
  box-shadow:
    0 20px 42px rgba(0,0,0,.38),
    0 0 36px rgba(229,189,107,.27);
}

.i127-portal__scene:focus-visible{
  outline:2px solid #f6dda7;
  outline-offset:4px;
}

.i127-portal__routes--plain{
  position:static;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:14px;
}

.i127-portal__routes--plain a{
  display:block;
  min-height:0;
  padding:14px 16px 13px;
  border:1px solid rgba(242,234,220,.105);
  border-radius:18px;
  background:rgba(8,11,23,.66);
  backdrop-filter:blur(9px);
  text-align:left;
}

.i127-portal__routes--plain a:hover,
.i127-portal__routes--plain a:focus-visible{
  transform:translateY(-2px);
  border-color:rgba(229,189,107,.35);
  background:rgba(16,18,34,.82);
}

.i127-portal__routes--plain span{
  display:block;
}

.i127-portal__routes--plain strong{
  color:var(--ivory);
  font:600 1.02rem/1.1 "Cormorant Garamond",Georgia,serif;
}

.i127-portal__routes--plain small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font:.62rem/1.35 "Manrope",Arial,sans-serif;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}

/* La hiérarchie de l'accueil reste simple : texte + porte, rien d'autre ne lutte. */
.i127-home-hero .i127-home-hero__grid{
  align-items:center;
}

@media(max-width:980px){
  .i127-home-hero .i127-portal--image{
    max-width:500px;
  }
}

@media(max-width:560px){
  .i127-home-hero .i127-portal--image{
    width:100%;
    height:auto;
  }

  .i127-portal__scene{
    border-radius:22px;
  }

  .i127-portal__cta{
    bottom:7%;
    min-height:48px;
    padding:13px 21px;
    font-size:.82rem;
  }

  .i127-portal__routes--plain{
    grid-template-columns:1fr;
    gap:9px;
  }

  .i127-portal__routes--plain a:last-child{
    display:block;
  }
}

@media(prefers-reduced-motion:reduce){
  .i127-portal__image,
  .i127-portal__cta{
    transition:none!important;
  }
}


/* =========================================================
   V7.3.9 — ACCUEIL : PORTE DU CERCLE 127 EN FONDU
   On devine la porte et l'arbre. Ce n'est plus une carte.
   ========================================================= */

.i127-home-hero .i127-portal--image{
  position:relative;
  width:min(100%,560px);
  margin-inline:auto;
  filter:none;
}

.i127-home-hero .i127-portal--image::before,
.i127-home-hero .i127-portal--image::after,
.i127-home-hero .i127-portal--image .i127-portal__vesica{
  display:none!important;
}

.i127-portal__scene{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:1;
  overflow:visible;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-decoration:none;
  isolation:isolate;
}

.i127-portal__image{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  opacity:.84;
  filter:
    drop-shadow(0 26px 38px rgba(0,0,0,.34))
    saturate(.96)
    brightness(.98);
  mix-blend-mode:screen;
  transition:
    opacity .7s cubic-bezier(.2,.7,.2,1),
    transform .8s cubic-bezier(.2,.7,.2,1),
    filter .8s cubic-bezier(.2,.7,.2,1);
}

.i127-portal__scene::before{
  content:"";
  position:absolute;
  inset:8% 6% 12%;
  z-index:0;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 42%, rgba(107,184,194,.12), transparent 28%),
    radial-gradient(circle at 50% 58%, rgba(229,189,107,.10), transparent 34%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.04), transparent 58%);
  filter:blur(24px);
  pointer-events:none;
}

.i127-portal__veil{
  position:absolute;
  inset:-2% -1% -4%;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 42%, rgba(8,10,22,0) 0%, rgba(8,10,22,.03) 44%, rgba(8,10,22,.22) 72%, rgba(8,10,22,.52) 100%),
    linear-gradient(180deg, rgba(8,10,22,.02) 0%, rgba(8,10,22,.06) 52%, rgba(8,10,22,.22) 78%, rgba(8,10,22,.40) 100%);
  mix-blend-mode:normal;
}

.i127-portal__cta{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:10.2%;
  display:inline-flex;
  min-height:50px;
  align-items:center;
  justify-content:center;
  padding:13px 24px;
  border:1px solid rgba(246,221,167,.46);
  border-radius:999px;
  color:#f7f1df;
  background:rgba(11,14,28,.28);
  backdrop-filter:blur(10px);
  box-shadow:
    0 8px 28px rgba(0,0,0,.22),
    inset 0 0 0 1px rgba(255,255,255,.03);
  font:700 .86rem/1 "Manrope",Arial,sans-serif;
  letter-spacing:.045em;
  transform:translateX(-50%);
  white-space:nowrap;
  transition:
    transform .25s ease,
    background .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}

.i127-portal__scene:hover .i127-portal__image,
.i127-portal__scene:focus-visible .i127-portal__image{
  transform:scale(1.015);
  opacity:.93;
  filter:
    drop-shadow(0 30px 42px rgba(0,0,0,.38))
    saturate(1)
    brightness(1.02);
}

.i127-portal__scene:hover .i127-portal__cta,
.i127-portal__scene:focus-visible .i127-portal__cta{
  transform:translateX(-50%) translateY(-2px);
  background:rgba(14,18,35,.40);
  border-color:rgba(246,221,167,.70);
  box-shadow:
    0 12px 34px rgba(0,0,0,.28),
    0 0 28px rgba(229,189,107,.10);
}

.i127-portal__scene:focus-visible{
  outline:2px solid rgba(246,221,167,.72);
  outline-offset:4px;
}

.i127-portal__routes--ghost{
  position:static;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:18px;
  margin-top:6px;
}

.i127-portal__routes--ghost a{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:4px 0;
  min-height:0;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:left;
  color:var(--ivory);
  text-decoration:none;
}

.i127-portal__routes--ghost a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-2px;
  height:1px;
  background:linear-gradient(90deg, rgba(229,189,107,0), rgba(229,189,107,.56), rgba(229,189,107,0));
  opacity:.45;
  transition:opacity .2s ease, transform .2s ease;
}

.i127-portal__routes--ghost a:hover::after,
.i127-portal__routes--ghost a:focus-visible::after{
  opacity:.9;
  transform:translateY(-1px);
}

.i127-portal__routes--ghost strong{
  color:var(--ivory);
  font:600 1.03rem/1.1 "Cormorant Garamond",Georgia,serif;
}

.i127-portal__routes--ghost small{
  display:block;
  margin-top:4px;
  color:rgba(222,214,234,.78);
  font:.63rem/1.35 "Manrope",Arial,sans-serif;
  white-space:normal;
}

/* Masquer la numérotation du bloc “Comment ça marche” pour garder un accueil moins scolaire. */
.home-path__steps > li > span{
  display:none!important;
}

.home-path__steps > li{
  padding-top:24px;
}

@media(max-width:980px){
  .i127-home-hero .i127-portal--image{
    width:min(100%,540px);
  }
}

@media(max-width:560px){
  .i127-home-hero .i127-portal--image{
    width:100%;
  }

  .i127-portal__image{
    opacity:.88;
  }

  .i127-portal__cta{
    bottom:8.6%;
    min-height:46px;
    padding:12px 20px;
    font-size:.81rem;
  }

  .i127-portal__routes--ghost{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    justify-items:center;
  }

  .i127-portal__routes--ghost a{
    justify-content:center;
    text-align:center;
  }
}

@media(prefers-reduced-motion:reduce){
  .i127-portal__image,
  .i127-portal__cta,
  .i127-portal__routes--ghost a::after{
    transition:none!important;
  }
}


/* =========================================================
   V7.3.10 — HOME : HARMONIE NOCTURNE
   Même température visuelle entre texte, fond et porte.
   ========================================================= */

.i127-home-hero{
  --home-night:#070b1a;
  --home-night-2:#0b1021;
  --home-ivory:#f3ede2;
  --home-muted:#b8b2c3;
  --home-gold:#d6b36a;
  --home-gold-soft:#e8d39a;
  --home-mist:#6e7897;

  color:var(--home-muted);
  background:
    radial-gradient(circle at 76% 42%,rgba(214,179,106,.045),transparent 30rem),
    radial-gradient(circle at 18% 18%,rgba(110,120,151,.10),transparent 34rem),
    linear-gradient(135deg,var(--home-night) 0%,var(--home-night-2) 52%,#070a16 100%);
}

.i127-home-hero::before{
  border-color:rgba(110,120,151,.055);
  box-shadow:
    0 0 0 70px rgba(110,120,151,.018),
    0 0 0 150px rgba(214,179,106,.008);
}

.i127-home-hero .kicker{
  color:var(--home-gold);
}

.i127-home-hero .i127-home-hero__copy h1{
  color:var(--home-ivory);
  text-shadow:0 10px 40px rgba(0,0,0,.14);
}

.i127-home-hero .i127-home-hero__copy .lead{
  color:var(--home-muted);
}

.i127-home-hero .hero-truth{
  border-color:rgba(214,179,106,.16);
  color:#aaa7b5;
  background:rgba(7,11,26,.28);
  box-shadow:none;
}

.i127-home-hero .hero-truth span{
  color:var(--home-gold);
}

/* Les boutons de gauche cessent de concurrencer la porte. */
.i127-home-hero .hero-btns{
  gap:18px;
  align-items:center;
}

.i127-home-hero .hero-btns .btn-gold{
  min-height:48px;
  padding:13px 22px;
  border:1px solid rgba(214,179,106,.48);
  color:var(--home-ivory);
  background:rgba(10,15,31,.34);
  box-shadow:
    0 10px 28px rgba(0,0,0,.17),
    inset 0 0 0 1px rgba(255,255,255,.018);
  backdrop-filter:blur(8px);
}

.i127-home-hero .hero-btns .btn-gold:hover,
.i127-home-hero .hero-btns .btn-gold:focus-visible{
  border-color:rgba(232,211,154,.78);
  background:rgba(13,19,38,.52);
  box-shadow:
    0 14px 34px rgba(0,0,0,.22),
    0 0 24px rgba(214,179,106,.08);
}

.i127-home-hero .hero-btns .btn-line{
  position:relative;
  min-height:auto;
  padding:11px 2px 9px;
  border:0;
  border-radius:0;
  color:#c5bfca;
  background:transparent;
  box-shadow:none;
}

.i127-home-hero .hero-btns .btn-line::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:3px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(214,179,106,.58),transparent);
  opacity:.55;
}

.i127-home-hero .hero-btns .btn-line:hover,
.i127-home-hero .hero-btns .btn-line:focus-visible{
  color:var(--home-ivory);
  border:0;
  transform:translateY(-1px);
}

/* La photo cesse d'être un carré posé : elle se dissout dans le hero. */
.i127-home-hero .i127-portal--image{
  width:min(100%,570px);
}

.i127-home-hero .i127-portal__scene{
  overflow:visible;
}

.i127-home-hero .i127-portal__image{
  opacity:.72;
  mix-blend-mode:normal;
  filter:
    saturate(.72)
    brightness(.78)
    contrast(.92)
    hue-rotate(-5deg)
    drop-shadow(0 24px 42px rgba(0,0,0,.28));

  -webkit-mask-image:
    radial-gradient(ellipse 76% 79% at 50% 48%,
      #000 0%,
      #000 48%,
      rgba(0,0,0,.90) 62%,
      rgba(0,0,0,.52) 76%,
      transparent 100%);
  mask-image:
    radial-gradient(ellipse 76% 79% at 50% 48%,
      #000 0%,
      #000 48%,
      rgba(0,0,0,.90) 62%,
      rgba(0,0,0,.52) 76%,
      transparent 100%);
}

.i127-home-hero .i127-portal__scene::before{
  inset:4% 1% 9%;
  background:
    radial-gradient(circle at 50% 44%,rgba(214,179,106,.055),transparent 30%),
    radial-gradient(circle at 50% 48%,rgba(110,120,151,.075),transparent 58%);
  filter:blur(34px);
}

.i127-home-hero .i127-portal__veil{
  inset:-6%;
  background:
    radial-gradient(circle at 50% 46%,
      rgba(7,11,26,0) 0%,
      rgba(7,11,26,.02) 44%,
      rgba(7,11,26,.18) 66%,
      rgba(7,11,26,.62) 100%),
    linear-gradient(180deg,
      rgba(7,11,26,.04) 0%,
      rgba(7,11,26,.06) 49%,
      rgba(7,11,26,.22) 77%,
      rgba(7,11,26,.54) 100%);
}

/* CTA dans la porte : même langage que le CTA de gauche. */
.i127-home-hero .i127-portal__cta{
  bottom:11%;
  min-height:48px;
  padding:13px 23px;
  border-color:rgba(214,179,106,.50);
  color:var(--home-ivory);
  background:rgba(8,13,29,.40);
  box-shadow:
    0 10px 28px rgba(0,0,0,.20),
    inset 0 0 0 1px rgba(255,255,255,.025);
  backdrop-filter:blur(12px);
}

.i127-home-hero .i127-portal__scene:hover .i127-portal__image,
.i127-home-hero .i127-portal__scene:focus-visible .i127-portal__image{
  opacity:.80;
  filter:
    saturate(.78)
    brightness(.84)
    contrast(.94)
    hue-rotate(-4deg)
    drop-shadow(0 26px 44px rgba(0,0,0,.31));
}

.i127-home-hero .i127-portal__scene:hover .i127-portal__cta,
.i127-home-hero .i127-portal__scene:focus-visible .i127-portal__cta{
  border-color:rgba(232,211,154,.78);
  background:rgba(12,18,36,.56);
  box-shadow:
    0 14px 34px rgba(0,0,0,.25),
    0 0 24px rgba(214,179,106,.08);
}

/* Grimoire / Symboles : intégrés au même climat, sans effet carte. */
.i127-home-hero .i127-portal__routes--ghost{
  gap:26px;
  margin-top:0;
}

.i127-home-hero .i127-portal__routes--ghost a{
  color:var(--home-ivory);
  opacity:.82;
}

.i127-home-hero .i127-portal__routes--ghost a:hover,
.i127-home-hero .i127-portal__routes--ghost a:focus-visible{
  opacity:1;
}

.i127-home-hero .i127-portal__routes--ghost a::after{
  background:linear-gradient(90deg,transparent,rgba(214,179,106,.46),transparent);
}

.i127-home-hero .i127-portal__routes--ghost strong{
  color:var(--home-ivory);
}

.i127-home-hero .i127-portal__routes--ghost small{
  color:#a9a5b3;
}

/* Le scroll devient presque invisible, comme un simple repère. */
.i127-home-hero__scroll{
  border-color:rgba(214,179,106,.15);
  opacity:.55;
}
.i127-home-hero__scroll span{
  background:var(--home-gold);
}

/* Mobile : garder le fondu, sans transformer l'image en vignette. */
@media(max-width:980px){
  .i127-home-hero .i127-portal--image{
    width:min(100%,530px);
  }
}

@media(max-width:560px){
  .i127-home-hero .i127-portal__image{
    opacity:.76;
    -webkit-mask-image:
      radial-gradient(ellipse 88% 82% at 50% 48%,
        #000 0%,
        #000 52%,
        rgba(0,0,0,.82) 72%,
        transparent 100%);
    mask-image:
      radial-gradient(ellipse 88% 82% at 50% 48%,
        #000 0%,
        #000 52%,
        rgba(0,0,0,.82) 72%,
        transparent 100%);
  }

  .i127-home-hero .hero-btns{
    gap:10px;
  }

  .i127-home-hero .hero-btns .btn-line{
    padding-inline:8px;
  }

  .i127-home-hero .i127-portal__routes--ghost{
    gap:12px;
  }
}


/* =========================================================
   V7.3.11 — PORTAIL VIVANT
   Plus de carré. La porte flotte et le bouton redevient vivant.
   ========================================================= */

.i127-home-hero .i127-portal--threshold{
  position:relative;
  z-index:2;
  width:min(100%,560px);
  aspect-ratio:1;
  margin-inline:auto;
  overflow:visible;
  background:transparent;
  filter:none;
}

.i127-home-hero .i127-portal--threshold::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:6%;
  border:1px solid rgba(214,179,106,.11);
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 48%,rgba(214,179,106,.055),transparent 34%),
    radial-gradient(circle at 50% 50%,rgba(110,120,151,.065),transparent 64%);
  box-shadow:
    0 0 0 62px rgba(110,120,151,.012),
    0 0 0 132px rgba(214,179,106,.007);
  pointer-events:none;
}

.i127-home-hero .i127-portal--threshold::after{
  content:"";
  position:absolute;
  z-index:0;
  inset:18%;
  border:1px solid rgba(232,211,154,.10);
  border-radius:50%;
  pointer-events:none;
}

/* L'image n'est plus une vignette : le noir se fond au noir du site. */
.i127-portal__art{
  position:absolute;
  z-index:1;
  inset:-4%;
  pointer-events:none;
  overflow:visible;
}

.i127-portal__art img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:.78;
  mix-blend-mode:screen;
  filter:
    saturate(.76)
    brightness(.86)
    contrast(.91)
    hue-rotate(-4deg)
    drop-shadow(0 26px 44px rgba(0,0,0,.24));
  -webkit-mask-image:
    radial-gradient(ellipse 73% 78% at 50% 48%,
      #000 0%,
      #000 42%,
      rgba(0,0,0,.82) 61%,
      rgba(0,0,0,.36) 77%,
      transparent 96%);
  mask-image:
    radial-gradient(ellipse 73% 78% at 50% 48%,
      #000 0%,
      #000 42%,
      rgba(0,0,0,.82) 61%,
      rgba(0,0,0,.36) 77%,
      transparent 96%);
  transform-origin:50% 50%;
}

.i127-portal__art-veil{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 47%,
      transparent 0%,
      rgba(7,11,26,.02) 46%,
      rgba(7,11,26,.14) 68%,
      rgba(7,11,26,.55) 100%);
}

/* Vrai bouton circulaire, comme avant, mais sans numérotation. */
.i127-home-hero .i127-portal__center--dream{
  position:absolute;
  z-index:4;
  left:50%;
  top:52%;
  display:flex;
  width:clamp(152px,17vw,188px);
  aspect-ratio:1;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:22px;
  border:1px solid rgba(232,211,154,.62);
  border-radius:50%;
  color:#f3ede2;
  text-align:center;
  text-decoration:none;
  background:
    radial-gradient(circle at 38% 30%,rgba(110,120,151,.17),transparent 35%),
    linear-gradient(145deg,rgba(14,19,38,.92),rgba(7,11,26,.94));
  box-shadow:
    0 0 0 10px rgba(214,179,106,.025),
    0 22px 52px rgba(0,0,0,.35),
    inset 0 0 32px rgba(110,120,151,.07);
  backdrop-filter:blur(10px);
  transform:translate(-50%,-50%);
  transition:
    transform .28s ease,
    border-color .28s ease,
    box-shadow .28s ease,
    background .28s ease;
}

.i127-home-hero .i127-portal__center--dream strong{
  max-width:9ch;
  color:#f3ede2;
  font:600 clamp(1.28rem,2.35vw,1.62rem)/1.02 "Cormorant Garamond",Georgia,serif;
}

.i127-home-hero .i127-portal__center--dream small{
  max-width:14ch;
  color:#b8b2c3;
  font:.64rem/1.35 "Manrope",Arial,sans-serif;
}

.i127-portal__center-ring{
  position:absolute;
  inset:-11px;
  border:1px solid rgba(214,179,106,.20);
  border-radius:50%;
  pointer-events:none;
}

.i127-home-hero .i127-portal__center--dream:hover,
.i127-home-hero .i127-portal__center--dream:focus-visible{
  transform:translate(-50%,-50%) scale(1.045);
  border-color:rgba(232,211,154,.90);
  background:
    radial-gradient(circle at 38% 30%,rgba(110,120,151,.22),transparent 35%),
    linear-gradient(145deg,rgba(17,23,45,.97),rgba(8,12,28,.97));
  box-shadow:
    0 0 0 14px rgba(214,179,106,.045),
    0 28px 62px rgba(0,0,0,.40),
    0 0 44px rgba(214,179,106,.12),
    inset 0 0 34px rgba(110,120,151,.09);
}

.i127-home-hero .i127-portal__center--dream:focus-visible{
  outline:2px solid rgba(232,211,154,.82);
  outline-offset:5px;
}

/* Liens secondaires : présence légère seulement. */
.i127-home-hero .i127-portal__routes--ghost{
  position:absolute;
  z-index:5;
  left:8%;
  right:8%;
  bottom:1%;
  display:flex;
  justify-content:center;
  gap:28px;
  margin:0;
}

.i127-home-hero .i127-portal__routes--ghost a{
  display:inline-flex;
  padding:4px 0;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.i127-home-hero .i127-portal__routes--ghost a::after{
  background:linear-gradient(90deg,transparent,rgba(214,179,106,.48),transparent);
}

/* Animation vivante mais calme. */
@media(prefers-reduced-motion:no-preference){
  .i127-portal__art img{
    animation:i127-threshold-breathe 9s ease-in-out infinite;
  }

  .i127-portal__center-ring{
    animation:i127-button-pulse 4.2s ease-in-out infinite;
  }

  .i127-home-hero .i127-portal--threshold::after{
    animation:i127-orbit-soft 28s linear infinite;
  }
}

@keyframes i127-threshold-breathe{
  0%,100%{
    transform:scale(.995);
    opacity:.72;
  }
  50%{
    transform:scale(1.018);
    opacity:.84;
  }
}

@keyframes i127-button-pulse{
  0%,100%{
    transform:scale(1);
    opacity:.40;
    box-shadow:0 0 0 0 rgba(214,179,106,0);
  }
  50%{
    transform:scale(1.055);
    opacity:.78;
    box-shadow:0 0 28px rgba(214,179,106,.09);
  }
}

@keyframes i127-orbit-soft{
  to{transform:rotate(360deg)}
}

/* Le Cercle vivant restauré doit appartenir à la même nuit. */
.circle-living{
  background:
    radial-gradient(circle at 50% 43%,rgba(110,120,151,.07),transparent 31rem),
    linear-gradient(180deg,#070b1a 0%,#090d1c 100%);
}

.circle-living__head .kicker{
  color:#d6b36a;
}

@media(max-width:560px){
  .i127-home-hero .i127-portal--threshold{
    width:min(100%,440px);
  }

  .i127-portal__art{
    inset:-1%;
  }

  .i127-home-hero .i127-portal__center--dream{
    top:51%;
    width:148px;
  }

  .i127-home-hero .i127-portal__routes--ghost{
    position:absolute;
    left:5%;
    right:5%;
    bottom:-3%;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    justify-items:center;
  }
}

@media(prefers-reduced-motion:reduce){
  .i127-portal__art img,
  .i127-portal__center-ring,
  .i127-home-hero .i127-portal--threshold::after{
    animation:none!important;
  }
}


/* =========================================================
   V7.3.12 — FONDU SANS DÉMARCATION
   On ne doit plus lire le bord carré de l'image.
   ========================================================= */

/* Le portail déborde davantage pour que les bords du fichier restent hors champ. */
.i127-home-hero .i127-portal--threshold{
  width:min(100%,610px);
}

.i127-portal__art{
  inset:-10%;
}

.i127-portal__art img{
  width:112%;
  height:112%;
  margin:-6%;
  opacity:.70;
  mix-blend-mode:screen;
  filter:
    saturate(.70)
    brightness(.82)
    contrast(.90)
    hue-rotate(-4deg)
    blur(.15px)
    drop-shadow(0 28px 48px rgba(0,0,0,.22));
  -webkit-mask-image:
    radial-gradient(ellipse 64% 72% at 50% 48%,
      #000 0%,
      #000 37%,
      rgba(0,0,0,.92) 50%,
      rgba(0,0,0,.72) 60%,
      rgba(0,0,0,.34) 73%,
      rgba(0,0,0,.14) 82%,
      transparent 96%),
    linear-gradient(90deg,
      transparent 0%,
      rgba(0,0,0,.10) 8%,
      rgba(0,0,0,.56) 17%,
      #000 26%,
      #000 74%,
      rgba(0,0,0,.56) 83%,
      rgba(0,0,0,.10) 92%,
      transparent 100%),
    linear-gradient(180deg,
      transparent 0%,
      rgba(0,0,0,.18) 8%,
      rgba(0,0,0,.58) 18%,
      #000 28%,
      #000 76%,
      rgba(0,0,0,.48) 86%,
      rgba(0,0,0,.10) 94%,
      transparent 100%);
  mask-image:
    radial-gradient(ellipse 64% 72% at 50% 48%,
      #000 0%,
      #000 37%,
      rgba(0,0,0,.92) 50%,
      rgba(0,0,0,.72) 60%,
      rgba(0,0,0,.34) 73%,
      rgba(0,0,0,.14) 82%,
      transparent 96%),
    linear-gradient(90deg,
      transparent 0%,
      rgba(0,0,0,.10) 8%,
      rgba(0,0,0,.56) 17%,
      #000 26%,
      #000 74%,
      rgba(0,0,0,.56) 83%,
      rgba(0,0,0,.10) 92%,
      transparent 100%),
    linear-gradient(180deg,
      transparent 0%,
      rgba(0,0,0,.18) 8%,
      rgba(0,0,0,.58) 18%,
      #000 28%,
      #000 76%,
      rgba(0,0,0,.48) 86%,
      rgba(0,0,0,.10) 94%,
      transparent 100%);
}

/* Trois voiles superposés absorbent explicitement les coutures gauche/droite/haut/bas. */
.i127-portal__art::before,
.i127-portal__art::after{
  content:"";
  position:absolute;
  z-index:2;
  pointer-events:none;
}

.i127-portal__art::before{
  inset:-2% -9%;
  background:
    linear-gradient(90deg,
      rgba(7,11,26,1) 0%,
      rgba(7,11,26,.96) 10%,
      rgba(7,11,26,.72) 19%,
      rgba(7,11,26,.00) 31%,
      rgba(7,11,26,.00) 69%,
      rgba(7,11,26,.72) 81%,
      rgba(7,11,26,.96) 90%,
      rgba(7,11,26,1) 100%);
}

.i127-portal__art::after{
  inset:-8% -3% -10%;
  background:
    linear-gradient(180deg,
      rgba(7,11,26,1) 0%,
      rgba(7,11,26,.86) 10%,
      rgba(7,11,26,.46) 20%,
      rgba(7,11,26,.00) 32%,
      rgba(7,11,26,.00) 70%,
      rgba(7,11,26,.56) 82%,
      rgba(7,11,26,.90) 92%,
      rgba(7,11,26,1) 100%);
}

.i127-portal__art-veil{
  inset:-8%;
  z-index:3;
  background:
    radial-gradient(circle at 50% 47%,
      transparent 0%,
      rgba(7,11,26,.02) 44%,
      rgba(7,11,26,.12) 58%,
      rgba(7,11,26,.34) 72%,
      rgba(7,11,26,.78) 92%,
      rgba(7,11,26,.96) 100%),
    linear-gradient(90deg,
      rgba(7,11,26,.84) 0%,
      rgba(7,11,26,.22) 14%,
      rgba(7,11,26,0) 26%,
      rgba(7,11,26,0) 74%,
      rgba(7,11,26,.22) 86%,
      rgba(7,11,26,.84) 100%);
}

/* Le bouton reste lisible, sans masquer trop de matière. */
.i127-home-hero .i127-portal__center--dream{
  top:53%;
  width:clamp(144px,16vw,176px);
  box-shadow:
    0 0 0 8px rgba(214,179,106,.018),
    0 20px 46px rgba(0,0,0,.33),
    inset 0 0 28px rgba(110,120,151,.06);
}

/* On rapproche les liens du seuil pour qu'ils fassent partie du même ensemble. */
.i127-home-hero .i127-portal__routes--ghost{
  bottom:3%;
  gap:22px;
}

@media(max-width:980px){
  .i127-home-hero .i127-portal--threshold{
    width:min(100%,560px);
  }
}

@media(max-width:560px){
  .i127-home-hero .i127-portal--threshold{
    width:min(100%,440px);
  }

  .i127-portal__art{
    inset:-7%;
  }

  .i127-portal__art img{
    width:108%;
    height:108%;
    margin:-4%;
    opacity:.74;
  }

  .i127-home-hero .i127-portal__center--dream{
    top:52%;
    width:142px;
  }

  .i127-home-hero .i127-portal__routes--ghost{
    bottom:-1%;
    gap:10px;
  }
}


/* =========================================================
   V7.3.13 — ASSET TRANSPARENT
   Le nouvel asset transparent remplace l'ancien carré.
   ========================================================= */

.i127-home-hero .i127-portal--threshold{
  width:min(100%,600px);
}

.i127-portal__art{
  inset:-8%;
}

.i127-portal__art img{
  width:100%;
  height:100%;
  margin:0;
  opacity:.92;
  mix-blend-mode:screen;
  filter:
    saturate(.88)
    brightness(.93)
    contrast(.96)
    hue-rotate(-3deg)
    drop-shadow(0 30px 48px rgba(0,0,0,.22));
  -webkit-mask-image:none!important;
  mask-image:none!important;
}

/* Les caches latéraux de la version précédente ne sont plus nécessaires. */
.i127-portal__art::before,
.i127-portal__art::after{
  display:none!important;
}

/* Garder seulement un voile léger pour l'intégration nocturne. */
.i127-portal__art-veil{
  inset:-6%;
  z-index:3;
  background:
    radial-gradient(circle at 50% 48%,
      rgba(7,11,26,0) 0%,
      rgba(7,11,26,.03) 48%,
      rgba(7,11,26,.16) 74%,
      rgba(7,11,26,.42) 100%);
}

/* Anneaux/supports très discrets derrière le portail. */
.i127-home-hero .i127-portal--threshold::before{
  inset:7%;
  border-color:rgba(214,179,106,.10);
  background:
    radial-gradient(circle at 50% 48%,rgba(214,179,106,.04),transparent 34%),
    radial-gradient(circle at 50% 50%,rgba(110,120,151,.05),transparent 62%);
  box-shadow:
    0 0 0 58px rgba(110,120,151,.010),
    0 0 0 126px rgba(214,179,106,.006);
}

.i127-home-hero .i127-portal--threshold::after{
  inset:19%;
  border-color:rgba(232,211,154,.08);
}

/* Bouton central vivant, lisible, mais plus raffiné. */
.i127-home-hero .i127-portal__center--dream{
  top:52%;
  width:clamp(148px,16vw,178px);
  border-color:rgba(232,211,154,.68);
  background:
    radial-gradient(circle at 38% 30%,rgba(110,120,151,.16),transparent 35%),
    linear-gradient(145deg,rgba(14,19,38,.88),rgba(7,11,26,.90));
  box-shadow:
    0 0 0 8px rgba(214,179,106,.016),
    0 20px 46px rgba(0,0,0,.30),
    inset 0 0 26px rgba(110,120,151,.05);
}

.i127-home-hero .i127-portal__center--dream:hover,
.i127-home-hero .i127-portal__center--dream:focus-visible{
  box-shadow:
    0 0 0 12px rgba(214,179,106,.032),
    0 26px 56px rgba(0,0,0,.35),
    0 0 34px rgba(214,179,106,.09),
    inset 0 0 30px rgba(110,120,151,.08);
}

.i127-home-hero .i127-portal__routes--ghost{
  bottom:3%;
}

@media(max-width:980px){
  .i127-home-hero .i127-portal--threshold{
    width:min(100%,550px);
  }
}

@media(max-width:560px){
  .i127-home-hero .i127-portal--threshold{
    width:min(100%,430px);
  }
  .i127-portal__art{
    inset:-4%;
  }
  .i127-portal__art img{
    opacity:.95;
  }
  .i127-home-hero .i127-portal__center--dream{
    width:144px;
    top:51%;
  }
}


/* =========================================================
   V7.3.14 — ULTRA-FINITION DU HERO
   L'image est bonne : on ne touche plus qu'à l'interface.
   ========================================================= */

/* Meilleure balance texte / portail. */
.i127-home-hero .i127-home-hero__copy h1{
  max-width:14.2ch;
  font-size:clamp(2.35rem,4.55vw,4.45rem);
  line-height:.97;
}

.i127-home-hero .i127-home-hero__grid{
  grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);
  gap:clamp(38px,5vw,72px);
}

/* Le seul lien restant à gauche est secondaire. */
.i127-home-hero .hero-btns--single{
  margin-top:22px;
}

.i127-home-hero .hero-btns--single .btn-line{
  font-size:.83rem;
  letter-spacing:.035em;
  opacity:.82;
}

.i127-home-hero .hero-btns--single .btn-line:hover,
.i127-home-hero .hero-btns--single .btn-line:focus-visible{
  opacity:1;
}

/* Shell = visuel + liens, pour dégager le 127 et les racines. */
.i127-portal-shell{
  position:relative;
  z-index:2;
  width:min(100%,610px);
  margin-inline:auto;
  padding-bottom:58px;
}

.i127-portal-shell .i127-portal--threshold{
  width:100%;
  margin:0;
}

/* Le bouton devient un médaillon de verre, pas un disque opaque. */
.i127-home-hero .i127-portal__center--dream{
  top:50.5%;
  width:clamp(126px,13vw,148px);
  padding:17px;
  gap:5px;
  border-color:rgba(232,211,154,.54);
  background:
    radial-gradient(circle at 38% 28%,rgba(110,120,151,.12),transparent 38%),
    linear-gradient(145deg,rgba(12,17,34,.54),rgba(7,11,26,.58));
  box-shadow:
    0 0 0 6px rgba(214,179,106,.012),
    0 16px 38px rgba(0,0,0,.23),
    inset 0 0 24px rgba(110,120,151,.04);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}

.i127-home-hero .i127-portal__center--dream strong{
  max-width:8ch;
  font-size:clamp(1.08rem,1.8vw,1.30rem);
  line-height:1.01;
}

.i127-home-hero .i127-portal__center--dream small{
  max-width:12ch;
  color:rgba(184,178,195,.88);
  font-size:.56rem;
}

.i127-home-hero .i127-portal__center--dream:hover,
.i127-home-hero .i127-portal__center--dream:focus-visible{
  transform:translate(-50%,-50%) scale(1.035);
  border-color:rgba(232,211,154,.82);
  background:
    radial-gradient(circle at 38% 28%,rgba(110,120,151,.16),transparent 38%),
    linear-gradient(145deg,rgba(14,20,39,.64),rgba(8,12,28,.66));
  box-shadow:
    0 0 0 9px rgba(214,179,106,.025),
    0 21px 46px rgba(0,0,0,.28),
    0 0 30px rgba(214,179,106,.07),
    inset 0 0 26px rgba(110,120,151,.05);
}

.i127-portal__center-ring{
  inset:-8px;
  border-color:rgba(214,179,106,.15);
}

/* Les accès secondaires sortent complètement de l'image. */
.i127-home-hero .i127-portal__routes--outside{
  position:absolute;
  left:5%;
  right:5%;
  bottom:0;
  z-index:6;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:clamp(30px,5vw,54px);
  margin:0;
}

.i127-home-hero .i127-portal__routes--outside a{
  position:relative;
  display:block;
  min-width:140px;
  padding:0 0 9px;
  border:0;
  border-radius:0;
  color:#f3ede2;
  background:transparent;
  box-shadow:none;
  text-align:center;
  text-decoration:none;
  opacity:.82;
  transition:opacity .2s ease, transform .2s ease;
}

.i127-home-hero .i127-portal__routes--outside a::after{
  content:"";
  position:absolute;
  left:16%;
  right:16%;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(214,179,106,.42),transparent);
  transform:scaleX(.74);
  transition:transform .2s ease, opacity .2s ease;
  opacity:.55;
}

.i127-home-hero .i127-portal__routes--outside a:hover,
.i127-home-hero .i127-portal__routes--outside a:focus-visible{
  opacity:1;
  transform:translateY(-2px);
}

.i127-home-hero .i127-portal__routes--outside a:hover::after,
.i127-home-hero .i127-portal__routes--outside a:focus-visible::after{
  transform:scaleX(1);
  opacity:.9;
}

.i127-home-hero .i127-portal__routes--outside strong{
  display:block;
  color:#f3ede2;
  font:600 1rem/1.1 "Cormorant Garamond",Georgia,serif;
}

.i127-home-hero .i127-portal__routes--outside small{
  display:block;
  margin-top:4px;
  color:#aaa6b3;
  font:.60rem/1.35 "Manrope",Arial,sans-serif;
}

/* Le visuel respire un peu plus : pas de liens sur les racines ni sur 127. */
.i127-home-hero .i127-portal__art img{
  opacity:.94;
}

/* Mobile : le portail reste premier, les liens passent simplement dessous. */
@media(max-width:980px){
  .i127-home-hero .i127-home-hero__grid{
    grid-template-columns:1fr;
  }

  .i127-home-hero .i127-home-hero__copy h1{
    max-width:14ch;
    font-size:clamp(2.35rem,8vw,4rem);
  }

  .i127-portal-shell{
    width:min(100%,560px);
    padding-bottom:64px;
  }
}

@media(max-width:560px){
  .i127-home-hero .i127-home-hero__copy h1{
    font-size:clamp(2.3rem,11vw,3.35rem);
  }

  .i127-portal-shell{
    width:min(100%,430px);
    padding-bottom:86px;
  }

  .i127-home-hero .i127-portal__center--dream{
    width:122px;
    top:50%;
  }

  .i127-home-hero .i127-portal__routes--outside{
    left:0;
    right:0;
    bottom:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
  }

  .i127-home-hero .i127-portal__routes--outside a{
    min-width:0;
  }

  .i127-home-hero .i127-portal__routes--outside strong{
    font-size:.94rem;
  }

  .i127-home-hero .i127-portal__routes--outside small{
    font-size:.56rem;
  }
}


/* =========================================================
   V7.3.18 — HERO RESPONSIVE STABLE
   Correction du débordement observé vers 1200 px.
   ========================================================= */

/* Les deux colonnes ont le droit de rétrécir : aucun contenu ne pousse la grille. */
.i127-home-hero .i127-home-hero__copy,
.i127-home-hero .i127-portal-shell{
  min-width:0;
}

/* Entre laptop compact et desktop : on garde le face-à-face,
   mais le portail ne peut plus sortir du viewport. */
@media(max-width:1280px) and (min-width:981px){
  .i127-home-hero .i127-home-hero__grid{
    width:min(1120px,calc(100% - 34px));
    grid-template-columns:minmax(0,1.08fr) minmax(330px,.72fr);
    gap:clamp(24px,3vw,38px);
  }

  .i127-home-hero .i127-home-hero__copy h1{
    max-width:12.8ch;
    font-size:clamp(2.9rem,4.45vw,3.85rem);
    line-height:.96;
  }

  .i127-home-hero .i127-home-hero__copy .lead{
    max-width:620px;
    font-size:clamp(1rem,1.55vw,1.18rem);
  }

  .i127-home-hero .hero-truth{
    max-width:100%;
  }

  .i127-portal-shell{
    width:min(100%,455px);
    justify-self:end;
    padding-bottom:54px;
  }

  .i127-home-hero .i127-portal__center--dream{
    width:clamp(116px,11vw,136px);
  }

  .i127-home-hero .i127-portal__routes--outside{
    left:0;
    right:0;
    gap:18px;
  }

  .i127-home-hero .i127-portal__routes--outside a{
    min-width:0;
    width:50%;
  }
}

/* Dès que deux colonnes deviennent forcées, on passe proprement en vertical. */
@media(max-width:1080px) and (min-width:981px){
  .i127-home-hero{
    min-height:auto;
  }

  .i127-home-hero .i127-home-hero__grid{
    grid-template-columns:1fr;
    width:min(860px,calc(100% - 36px));
    max-width:860px;
    gap:34px;
    padding:62px 0 72px;
    text-align:center;
  }

  .i127-home-hero .i127-home-hero__copy h1{
    max-width:13ch;
    margin-inline:auto;
    font-size:clamp(3rem,6.2vw,4.35rem);
  }

  .i127-home-hero .i127-home-hero__copy .lead{
    margin-inline:auto;
  }

  .i127-home-hero .i127-home-hero__copy .hero-truth,
  .i127-home-hero .i127-home-hero__copy .hero-btns{
    justify-content:center;
  }

  .i127-portal-shell{
    width:min(100%,540px);
    justify-self:center;
    margin-inline:auto;
  }
}


/* =========================================================
   V7.3.19 — TYPOGRAPHIE HERO ÉQUILIBRÉE
   Le titre ne doit plus dominer l'écran.
   ========================================================= */

/* Desktop large : plafond ferme, indépendant du viewport. */
.i127-home-hero .i127-home-hero__copy h1{
  max-width:15ch;
  margin-bottom:20px;
  font-size:clamp(2.20rem,3.10vw,3.35rem);
  line-height:1.00;
  letter-spacing:-.018em;
}

/* Le texte secondaire doit rester clairement secondaire. */
.i127-home-hero .i127-home-hero__copy .lead{
  max-width:610px;
  font-size:clamp(.98rem,1.25vw,1.10rem);
  line-height:1.55;
}

.i127-home-hero .kicker{
  font-size:.68rem;
  letter-spacing:.19em;
}

/* Laptop : surtout ne pas remonter le H1 à 3–4rem. */
@media(max-width:1280px) and (min-width:981px){
  .i127-home-hero .i127-home-hero__copy h1{
    max-width:14.5ch;
    font-size:clamp(2.15rem,3vw,2.85rem);
    line-height:1.01;
  }

  .i127-home-hero .i127-home-hero__copy .lead{
    max-width:570px;
    font-size:1rem;
  }
}

/* Zone où la mise en page passe en une colonne :
   le titre reste compact, il ne regonfle plus. */
@media(max-width:1080px) and (min-width:981px){
  .i127-home-hero .i127-home-hero__copy h1{
    max-width:15ch;
    font-size:clamp(2.25rem,4.2vw,2.85rem);
    line-height:1.01;
  }
}

/* Tablette. */
@media(max-width:980px){
  .i127-home-hero .i127-home-hero__copy h1{
    max-width:15ch;
    font-size:clamp(2.15rem,5.4vw,2.80rem);
    line-height:1.02;
  }

  .i127-home-hero .i127-home-hero__copy .lead{
    max-width:600px;
    font-size:1rem;
  }
}

/* Mobile : lisible, mais jamais monumental. */
@media(max-width:560px){
  .i127-home-hero .i127-home-hero__copy h1{
    max-width:15ch;
    font-size:clamp(2.00rem,8.8vw,2.55rem);
    line-height:1.03;
  }

  .i127-home-hero .i127-home-hero__copy .lead{
    font-size:.96rem;
    line-height:1.55;
  }

  .i127-home-hero .kicker{
    font-size:.62rem;
    letter-spacing:.15em;
  }
}
