/* ============================================================
   LA SECONDE CHANCE — Corinne de Venantis
   Direction : anticipation cinématographique.
   Monolithe noir, halo de jade, horizon corail.
   ============================================================ */

/* ---------- 1. Jetons ---------- */
:root{
  --ink:        #05080A;
  --ink-2:      #080D10;
  --ink-3:      #0C1417;
  --jade:       #5FE3C0;
  --jade-soft:  #96F2DC;
  --jade-deep:  #1E7A66;
  --coral:      #FF8B5C;
  --coral-soft: #FFB694;
  --rose:       #B34A64;
  --paper:      #EAF2EF;
  --muted:      #7C918D;
  --muted-2:    #536662;
  --line:       rgba(150, 242, 220, .13);
  --line-2:     rgba(150, 242, 220, .28);

  --display: 'Instrument Serif', 'Times New Roman', serif;
  --body:    'Newsreader', Georgia, serif;
  --mono:    'Azeret Mono', ui-monospace, 'SFMono-Regular', monospace;

  --gut: clamp(1.25rem, 4vw, 5rem);
  --maxw: 1440px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  scroll-padding-top:5rem;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--body);
  font-size:clamp(1rem,.95rem + .25vw,1.125rem);
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }

::selection{ background:var(--jade); color:#04120E; }

::-webkit-scrollbar{ width:9px; }
::-webkit-scrollbar-track{ background:#04070A; }
::-webkit-scrollbar-thumb{ background:#1B2C2A; border-radius:99px; }
::-webkit-scrollbar-thumb:hover{ background:var(--jade-deep); }

:focus-visible{
  outline:2px solid var(--jade);
  outline-offset:3px;
  border-radius:2px;
}

/* ---------- 3. Typographie partagée ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:.7rem;
  font-weight:400;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--jade);
  margin:0 0 1.4rem;
  opacity:.85;
}

.section-title{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(3rem,9vw,7.5rem);
  line-height:.92;
  letter-spacing:-.02em;
  margin:0 0 1.5rem;
}
.section-title em{
  font-style:italic;
  color:var(--jade);
  text-shadow:0 0 60px rgba(95,227,192,.35);
}

.kicker{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.5rem .7rem;
  font-family:var(--mono);
  font-size:.68rem;
  font-weight:400;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 clamp(1.5rem,3vw,2.5rem);
}
.kicker em{ font-style:normal; color:var(--jade); }
.kicker i{ font-style:normal; color:var(--muted-2); }
.kicker__dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--jade);
  box-shadow:0 0 12px var(--jade);
  animation:pulseDot 2.6s var(--ease) infinite;
}
@keyframes pulseDot{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.35; transform:scale(.7); }
}

/* ---------- 4. Textures globales ---------- */
.grain{
  position:fixed; inset:-50%;
  z-index:900;
  pointer-events:none;
  opacity:.32;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
  animation:grainShift 7s steps(6) infinite;
}
@keyframes grainShift{
  0%{transform:translate(0,0)} 20%{transform:translate(-3%,2%)}
  40%{transform:translate(2%,-3%)} 60%{transform:translate(-2%,-2%)}
  80%{transform:translate(3%,1%)} 100%{transform:translate(0,0)}
}

.cursor-halo{
  position:fixed; top:0; left:0;
  width:340px; height:340px;
  margin:-170px 0 0 -170px;
  border-radius:50%;
  pointer-events:none;
  z-index:880;
  background:radial-gradient(circle, rgba(95,227,192,.10) 0%, rgba(95,227,192,.04) 40%, transparent 70%);
  opacity:0;
  transition:opacity .5s var(--ease);
  will-change:transform;
}
body.has-cursor .cursor-halo{ opacity:1; }

/* ---------- 5. Rideau d'ouverture ---------- */
.curtain{
  position:fixed; inset:0;
  z-index:1000;
  background:var(--ink);
  display:grid; place-items:center;
  animation:curtainOut 1.5s var(--ease-out) .8s forwards;
  pointer-events:none;
}
.curtain__line{
  font-family:var(--mono);
  font-size:clamp(.55rem,1.6vw,.72rem);
  letter-spacing:.4em;
  text-transform:uppercase;
  color:var(--jade);
  opacity:0;
  animation:curtainText 1.6s var(--ease) forwards;
}
@keyframes curtainText{
  0%{ opacity:0; letter-spacing:.9em; }
  35%{ opacity:.9; letter-spacing:.4em; }
  100%{ opacity:0; letter-spacing:.34em; }
}
@keyframes curtainOut{
  to{ opacity:0; visibility:hidden; }
}

/* ---------- 6. Navigation ---------- */
.nav{
  position:fixed; top:0; left:0; right:0;
  z-index:800;
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  padding:1.35rem var(--gut);
  transition:padding .5s var(--ease), background .5s var(--ease), backdrop-filter .5s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  padding:.7rem var(--gut);
  background:rgba(5,8,10,.78);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:var(--line);
}

.nav__brand{
  display:flex; align-items:center; gap:.65rem;
  text-decoration:none;
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--paper);
  white-space:nowrap;
}
.nav__brand em{ font-style:normal; color:var(--muted); }
.nav__mark{
  width:11px; height:11px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--jade-soft), var(--jade-deep));
  box-shadow:0 0 14px rgba(95,227,192,.7);
  flex:none;
}

.nav__links{
  display:flex; gap:clamp(1rem,2.4vw,2.4rem);
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.nav__links a{
  text-decoration:none;
  color:#95AAA5;
  position:relative;
  padding-bottom:3px;
  transition:color .35s var(--ease);
}
.nav__links a::after{
  content:'';
  position:absolute; left:0; bottom:0;
  width:100%; height:1px;
  background:var(--jade);
  transform:scaleX(0); transform-origin:right;
  transition:transform .45s var(--ease);
}
.nav__links a:hover{ color:var(--paper); }
.nav__links a:hover::after{ transform:scaleX(1); transform-origin:left; }

.nav__cta{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.5rem .5rem .5rem 1rem;
  border:1px solid var(--line-2);
  border-radius:99px;
  text-decoration:none;
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--paper);
  transition:border-color .4s var(--ease), background .4s var(--ease), transform .4s var(--ease);
  white-space:nowrap;
}
.nav__cta:hover{
  border-color:var(--jade);
  background:rgba(95,227,192,.07);
  transform:translateY(-1px);
}
.nav__price{
  background:var(--jade);
  color:#04120E;
  padding:.25rem .6rem;
  border-radius:99px;
  font-weight:500;
}

/* ---------- 7. Hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding:7rem var(--gut) 6rem;
  overflow:hidden;
  isolation:isolate;
}

.hero__sky{
  position:absolute; inset:0;
  z-index:-1;
  background:
    radial-gradient(110% 58% at 50% 122%, rgba(255,139,92,.16) 0%, rgba(179,74,100,.08) 34%, transparent 64%),
    radial-gradient(90% 60% at 50% -10%, rgba(30,122,102,.22) 0%, transparent 60%),
    linear-gradient(180deg, #04070A 0%, #060B0D 45%, #0A0C10 100%);
}

/* lune de jade */
.hero__halo{
  position:absolute;
  top:clamp(-16rem,-14vw,-6rem); left:50%;
  width:min(78vh,58vw); aspect-ratio:1;
  transform:translateX(-50%);
  border-radius:50%;
  background:
    radial-gradient(circle at 46% 44%, rgba(255,214,140,.9) 0%, rgba(255,190,110,.3) 8%, transparent 20%),
    radial-gradient(circle,
      rgba(150,242,220,.85) 0%,
      rgba(110,232,200,.72) 46%,
      rgba(95,227,192,.55) 56%,
      rgba(60,180,155,.16) 58%,
      rgba(40,150,128,.10) 68%,
      transparent 76%);
  filter:blur(3px);
  opacity:.55;
  animation:haloBreathe 9s ease-in-out infinite;
}
@keyframes haloBreathe{
  0%,100%{ opacity:.46; filter:blur(2px); }
  50%{ opacity:.62; filter:blur(6px); }
}

/* ligne de crête au sol */
.hero__ridge{
  position:absolute;
  left:-5%; right:-5%; bottom:0;
  height:26%;
  background:linear-gradient(180deg,#04070A,#020406);
  clip-path:polygon(0 74%, 14% 60%, 26% 68%, 41% 46%, 58% 63%, 72% 52%, 88% 66%, 100% 56%, 100% 100%, 0 100%);
  filter:blur(.4px);
}
.hero__ridge::after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(255,139,92,.08), transparent 40%);
  clip-path:inherit;
}

.hero__horizon{
  position:absolute; left:0; right:0; bottom:0;
  height:30%;
  background:linear-gradient(180deg, transparent 0%, rgba(255,139,92,.05) 45%, rgba(179,74,100,.09) 74%, rgba(6,9,12,.95) 100%);
}

.hero__mist{
  position:absolute; left:-10%; right:-10%; bottom:-6%;
  height:36%;
  background:radial-gradient(60% 100% at 50% 100%, rgba(150,242,220,.14), transparent 70%);
  filter:blur(28px);
  animation:mistDrift 16s ease-in-out infinite alternate;
}
@keyframes mistDrift{
  from{ transform:translateX(-3%) scaleY(1); }
  to{ transform:translateX(3%) scaleY(1.14); }
}

.hero__stars{
  position:absolute; inset:0;
  background-image:
    radial-gradient(1.4px 1.4px at 12% 18%, rgba(234,242,239,.75), transparent),
    radial-gradient(1.2px 1.2px at 82% 12%, rgba(234,242,239,.6), transparent),
    radial-gradient(1px 1px at 68% 32%, rgba(150,242,220,.7), transparent),
    radial-gradient(1.3px 1.3px at 26% 42%, rgba(234,242,239,.45), transparent),
    radial-gradient(1px 1px at 92% 46%, rgba(234,242,239,.5), transparent),
    radial-gradient(1.1px 1.1px at 6% 62%, rgba(150,242,220,.5), transparent),
    radial-gradient(1px 1px at 46% 8%, rgba(234,242,239,.5), transparent);
  animation:twinkle 6s ease-in-out infinite alternate;
}
@keyframes twinkle{ from{opacity:.5} to{opacity:1} }

.hero__inner{
  width:100%; max-width:var(--maxw); margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  align-items:center;
  gap:clamp(2rem,5vw,5rem);
}

.hero__title{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(3.2rem,8.4vw,8rem);
  line-height:.88;
  letter-spacing:-.035em;
  margin:0 0 clamp(1.3rem,2.4vw,2rem);
}
.hero__title .line{ display:block; }
.hero__title em{
  font-style:italic;
  color:var(--jade);
  text-shadow:0 0 70px rgba(95,227,192,.45);
  margin-left:.12em;
}

.hero__lede{
  max-width:36ch;
  font-size:clamp(1.02rem,1.35vw,1.2rem);
  line-height:1.6;
  color:#C6D6D1;
  margin:0 0 clamp(1.6rem,2.6vw,2.2rem);
}

.hero__actions{
  display:flex; flex-wrap:wrap; gap:.9rem;
  margin-bottom:clamp(1.6rem,2.6vw,2.2rem);
}

/* Une mention basse, qui ne dispute rien aux deux boutons. */
.hero__ebook{
  margin:calc(-1 * clamp(.6rem,1.1vw,.9rem)) 0 clamp(1.6rem,2.6vw,2.2rem);
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.hero__ebook a{
  display:inline-flex; align-items:center; gap:.45rem;
  color:var(--muted);
  text-decoration:none;
  border-bottom:1px solid transparent;
  padding-bottom:.15rem;
  transition:color .35s var(--ease), border-color .35s var(--ease);
}
.hero__ebook a:hover{ color:var(--jade); border-bottom-color:var(--line-2); }
.hero__ebook svg{ width:12px; height:12px; transition:transform .35s var(--ease-out); }
.hero__ebook a:hover svg{ transform:translate(2px,-2px); }

.hero__facts{
  display:flex; flex-wrap:wrap; gap:clamp(1.2rem,3vw,2.8rem);
  margin:0;
  padding-top:1.3rem;
  border-top:1px solid var(--line);
}
.hero__facts dt{
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted-2);
  margin-bottom:.35rem;
}
.hero__facts dd{
  margin:0;
  font-family:var(--mono);
  font-size:.78rem;
  color:var(--paper);
}

/* ---------- 8. Boutons ---------- */
.btn{
  --btn-bg:transparent;
  position:relative;
  display:inline-flex; align-items:center; gap:.75rem;
  padding:.95rem 1.5rem;
  border-radius:99px;
  text-decoration:none;
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  overflow:hidden;
  transition:transform .4s var(--ease-out), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.btn:hover{ transform:translateY(-2px); }

.btn--solid{
  background:var(--jade);
  color:#04120E;
  font-weight:500;
  box-shadow:0 10px 40px -12px rgba(95,227,192,.7);
}
.btn--solid::before{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(110deg, transparent 20%, rgba(255,255,255,.65) 50%, transparent 80%);
  transform:translateX(-120%);
  transition:transform .8s var(--ease);
}
.btn--solid:hover::before{ transform:translateX(120%); }
.btn--solid:hover{ box-shadow:0 16px 54px -12px rgba(95,227,192,.85); }
.btn__meta{
  position:relative;
  padding-left:.8rem;
  border-left:1px solid rgba(4,18,14,.28);
  font-weight:500;
}

.btn--ghost{
  border:1px solid var(--line-2);
  color:var(--paper);
}
.btn--ghost:hover{
  border-color:var(--jade);
  background:rgba(95,227,192,.06);
}
.btn__label{ position:relative; }
/* Un intitulé sur deux lignes : la promesse tient sous l'appel à l'action. */
.btn__stack{
  position:relative;
  display:flex; flex-direction:column; align-items:center; gap:.3rem;
  line-height:1.1;
}
.btn__sub{
  font-size:.6rem;
  letter-spacing:.14em;
  font-weight:400;
  opacity:.68;
}
.btn__sub:empty{ display:none; }
.btn__arrow{
  width:15px; height:15px;
  transition:transform .4s var(--ease-out);
}
.btn--ghost:hover .btn__arrow{ transform:translateY(3px); }
.btn--solid:hover .btn__arrow--out{ transform:translate(3px,-3px); }
.btn--wide{ width:100%; justify-content:center; }

/* ---------- 9. Le livre en 3D ---------- */
.hero__stage{
  display:grid; place-items:center;
  perspective:1600px;
  perspective-origin:50% 45%;
}

.book-stage{
  position:relative;
  width:min(30vw,340px);
  -webkit-transform-style:preserve-3d;
  transform-style:preserve-3d;
}
.book-stage::before{
  content:'';
  position:absolute; inset:-28% -34%;
  background:radial-gradient(circle, rgba(95,227,192,.30) 0%, rgba(95,227,192,.07) 42%, transparent 68%);
  filter:blur(28px);
  animation:haloBreathe 7s ease-in-out infinite;
  z-index:-1;
}

.book{
  --t:34px;
  position:relative;
  aspect-ratio:628/1000;
  -webkit-transform-style:preserve-3d;
  transform-style:preserve-3d;
  transform:rotateX(var(--rx,4deg)) rotateY(var(--ry,-26deg)) rotateZ(var(--rz,-1deg));
  transition:transform 1.1s var(--ease-out);
  animation:bookFloat 8s ease-in-out infinite;
}
@keyframes bookFloat{
  0%,100%{ translate:0 0; }
  50%{ translate:0 -18px; }
}

.book__face{
  position:absolute; inset:0;
  border-radius:2px 5px 5px 2px;
  overflow:hidden;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.book__front{
  transform:translateZ(calc(var(--t)/2));
  box-shadow:
    0 40px 90px -30px rgba(0,0,0,.95),
    0 0 0 1px rgba(150,242,220,.10);
}
.book__front img{ width:100%; height:100%; object-fit:cover; }

.book__gloss{
  position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,.03) 22%, transparent 46%, rgba(95,227,192,.10) 92%);
  pointer-events:none;
}
.book__hinge{
  position:absolute; left:0; top:0; bottom:0;
  width:16px;
  background:linear-gradient(90deg, rgba(0,0,0,.62), rgba(0,0,0,.14) 55%, transparent);
  pointer-events:none;
}

.book__back{
  transform:translateZ(calc(var(--t)/-2)) rotateY(180deg);
  background:linear-gradient(140deg,#0B1416,#060A0C);
  box-shadow:inset 0 0 0 1px rgba(150,242,220,.08);
}

.book__side{
  position:absolute; top:0; bottom:0;
  width:var(--t);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.book__spine{
  left:calc(var(--t)/-2);
  transform:rotateY(-90deg);
  background:linear-gradient(90deg,#0A1214,#101B1D 30%,#0A1214);
  display:flex; flex-direction:column;
  align-items:center; justify-content:space-between;
  padding:1.4rem 0;
  border-radius:2px;
  box-shadow:inset -6px 0 14px -8px rgba(0,0,0,.9);
}
.book__spine span{
  writing-mode:vertical-rl;
  font-family:var(--mono);
  font-size:.5rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--jade);
  opacity:.85;
}
.book__spine b{
  writing-mode:vertical-rl;
  font-family:var(--mono);
  font-size:.44rem;
  font-weight:400;
  letter-spacing:.2em;
  color:var(--muted-2);
}
.book__edge{
  right:calc(var(--t)/-2);
  transform:rotateY(90deg);
  background:
    repeating-linear-gradient(90deg, #E4E9E4 0 1px, #C3CBC5 1px 2.4px),
    #DDE3DE;
  border-radius:1px;
}

.book__floor{
  position:absolute;
  left:8%; right:8%; bottom:-8%;
  height:34px;
  background:radial-gradient(50% 50% at 50% 50%, rgba(0,0,0,.85), transparent 72%);
  filter:blur(12px);
  transform:translateZ(-40px);
  animation:floorPulse 8s ease-in-out infinite;
}
@keyframes floorPulse{
  0%,100%{ opacity:.85; transform:translateZ(-40px) scaleX(1); }
  50%{ opacity:.55; transform:translateZ(-40px) scaleX(.86); }
}

/* ---------- 10. Indicateur de défilement ---------- */
.hero__scroll{
  position:absolute;
  bottom:1.8rem; left:50%;
  transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.7rem;
  text-decoration:none;
  z-index:2;
}
.hero__scrollLine{
  width:1px; height:52px;
  background:linear-gradient(180deg, transparent, var(--jade));
  position:relative;
  overflow:hidden;
}
.hero__scrollLine::after{
  content:'';
  position:absolute; left:0; top:-100%;
  width:100%; height:100%;
  background:var(--jade-soft);
  animation:scrollDrop 2.4s var(--ease) infinite;
}
@keyframes scrollDrop{
  0%{ top:-100%; } 60%,100%{ top:100%; }
}
.hero__scrollTxt{
  font-family:var(--mono);
  font-size:.55rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--muted-2);
}

/* ---------- 11. Bandeau défilant ---------- */
.ticker{
  position:relative;
  overflow:hidden;
  padding:1.15rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:linear-gradient(90deg, rgba(95,227,192,.05), rgba(255,139,92,.04), rgba(95,227,192,.05));
  white-space:nowrap;
}
.ticker__track{
  display:inline-flex; align-items:center; gap:2.4rem;
  animation:tick 42s linear infinite;
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:#9FB3AE;
}
.ticker i{ color:var(--jade); font-style:normal; }
@keyframes tick{ to{ transform:translateX(-50%); } }
.ticker::before,.ticker::after{
  content:'';
  position:absolute; top:0; bottom:0; width:14vw;
  z-index:2; pointer-events:none;
}
.ticker::before{ left:0; background:linear-gradient(90deg,var(--ink),transparent); }
.ticker::after{ right:0; background:linear-gradient(270deg,var(--ink),transparent); }

/* ---------- 12. Incipit ---------- */
.incipit{
  position:relative;
  padding:clamp(6rem,14vw,12rem) var(--gut) clamp(3.5rem,6vw,5rem);
  background:linear-gradient(180deg,#05080A,#070C0E 40%,#05080A);
}

/* la porte qui s'ouvre : une fente lumineuse pilotée par le scroll */
.incipit__door{
  position:sticky; top:0;
  height:100vh;
  margin-bottom:-100vh;
  display:grid; place-items:center;
  pointer-events:none;
  z-index:0;
}
.incipit__slit{
  width:calc(3px + var(--open,0) * 42vw);
  height:72vh;
  background:linear-gradient(180deg,
    transparent,
    rgba(150,242,220,calc(.06 + var(--open,0) * .08)) 18%,
    rgba(255,190,140,calc(.07 + var(--open,0) * .10)) 50%,
    rgba(150,242,220,calc(.06 + var(--open,0) * .08)) 82%,
    transparent);
  filter:blur(calc(16px + var(--open,0) * 46px));
  transition:width .2s linear;
}

.incipit__head,
.incipit__body{ position:relative; z-index:1; max-width:var(--maxw); margin-inline:auto; }

.incipit__head{
  margin-bottom:clamp(3rem,7vw,6rem);
  text-align:center;
}

.incipit__body{
  max-width:min(56rem,100%);
}

.incipit__text{
  font-family:var(--body);
  font-weight:200;
  font-size:clamp(1.35rem,3.1vw,2.35rem);
  line-height:1.42;
  letter-spacing:-.01em;
  margin:0 0 clamp(1.6rem,3vw,2.6rem);
  text-wrap:pretty;
}
.incipit__text .w{
  color:rgba(234,242,239,.17);
  transition:color .5s var(--ease), text-shadow .5s var(--ease);
}
.incipit__text .w.on{
  color:var(--paper);
}
.incipit__text .w.hot{
  color:var(--jade-soft);
  text-shadow:0 0 26px rgba(95,227,192,.55);
}

.incipit__text--last{
  font-family:var(--display);
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.9rem,5.2vw,4rem);
  line-height:1.12;
  margin-top:clamp(2.5rem,6vw,4.5rem);
  padding-top:clamp(2rem,4vw,3rem);
  border-top:1px solid var(--line);
}


/* ---------- 13. Le monde ---------- */
.monde{
  position:relative;
  padding:clamp(5rem,11vw,9rem) var(--gut);
  max-width:var(--maxw);
  margin-inline:auto;
}
.monde__head{ max-width:52rem; margin-bottom:clamp(3rem,6vw,5rem); }
.monde__intro{
  max-width:44ch;
  color:#B7C7C2;
  font-size:clamp(1rem,1.3vw,1.15rem);
  margin:0;
}
.monde__intro em{ color:var(--paper); font-style:italic; }

.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));
  border:1px solid var(--line);
  border-radius:4px;
  overflow:hidden;
}
.card{
  position:relative;
  padding:clamp(1.8rem,3.2vw,2.8rem);
  background:linear-gradient(180deg,#070C0E,#05090B);
  border-left:1px solid var(--line);
  overflow:hidden;
  transition:background .55s var(--ease);
}
.card:first-child{ border-left:0; }
.card:hover{ background:linear-gradient(180deg,#0A1315,#060B0D); }
.card__num{
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.24em;
  color:var(--jade);
  margin:0 0 clamp(3rem,7vw,5rem);
  opacity:.7;
}
.card__title{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(1.6rem,2.6vw,2.1rem);
  line-height:1.08;
  letter-spacing:-.015em;
  margin:0 0 .9rem;
}
.card__text{
  margin:0;
  color:var(--muted);
  font-size:.98rem;
  line-height:1.65;
  transition:color .55s var(--ease);
}
.card:hover .card__text{ color:#B7C7C2; }
.card__glow{
  position:absolute;
  left:50%; bottom:-60%;
  width:150%; aspect-ratio:1;
  transform:translateX(-50%);
  background:radial-gradient(circle, rgba(95,227,192,.16), transparent 62%);
  opacity:0;
  transition:opacity .6s var(--ease);
  pointer-events:none;
}
.card:hover .card__glow{ opacity:1; }

.pull{
  margin:clamp(4rem,8vw,7rem) 0 0;
  padding:clamp(2.5rem,5vw,4rem) 0 0;
  border-top:1px solid var(--line);
}
.pull p{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(1.7rem,4.6vw,3.6rem);
  line-height:1.18;
  letter-spacing:-.02em;
  margin:0;
  max-width:22ch;
  text-wrap:balance;
}
.pull em{
  font-style:italic;
  color:var(--coral);
  text-shadow:0 0 50px rgba(255,139,92,.3);
}

/* ---------- 14. L'autrice ---------- */
.autrice{
  position:relative;
  padding:clamp(5rem,11vw,9rem) var(--gut);
  background:
    radial-gradient(80% 60% at 12% 30%, rgba(30,122,102,.12), transparent 62%),
    linear-gradient(180deg,#05080A,#080D0F);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.autrice__grid{
  max-width:var(--maxw); margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(2.5rem,6vw,6rem);
  align-items:center;
}
.autrice__visual{
  position:relative;
  isolation:isolate;
}

/* portrait de l'autrice */
.portrait{
  position:relative;
  margin:0;
  border-radius:4px;
  overflow:hidden;
  transform:rotate(-1.6deg);
  transition:transform 1s var(--ease-out);
  box-shadow:0 46px 100px -40px rgba(0,0,0,.95), 0 0 0 1px rgba(150,242,220,.12);
}
.portrait:hover{ transform:rotate(0deg) scale(1.015); }
.portrait img{
  width:100%;
  display:block;
  filter:saturate(.72) contrast(1.07) brightness(.94);
  transition:filter 1s var(--ease);
}
.portrait:hover img{ filter:saturate(.96) contrast(1.02) brightness(1); }

/* étalonnage : on fond la photo dans la nuit du site */
.portrait__grade{
  position:absolute; inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(30,122,102,.20) 0%, transparent 34%, rgba(5,8,10,.30) 74%, rgba(5,8,10,.78) 100%),
    radial-gradient(120% 90% at 50% 40%, transparent 42%, rgba(4,7,10,.55) 100%);
  transition:opacity .9s var(--ease);
}
.portrait:hover .portrait__grade{ opacity:.55; }
.portrait__frame{
  position:absolute; inset:9px;
  border:1px solid rgba(150,242,220,.22);
  border-radius:2px;
  pointer-events:none;
}

/* halo derrière le portrait */
.autrice__visual::before{
  content:'';
  position:absolute; inset:-12% -10% 0;
  background:radial-gradient(circle at 50% 40%, rgba(95,227,192,.16), transparent 62%);
  filter:blur(24px);
  z-index:-1;
  pointer-events:none;
}

.autrice__quote{
  font-family:var(--display);
  font-style:italic;
  font-size:clamp(1.5rem,3.4vw,2.6rem);
  line-height:1.24;
  letter-spacing:-.02em;
  color:var(--jade-soft);
  margin:0 0 1.8rem;
  text-wrap:balance;
}
.autrice__bio{
  max-width:52ch;
  color:#B7C7C2;
  margin:0;
}

/* ---------- 15. Avis ---------- */
.avis{
  position:relative;
  padding:clamp(5rem,10vw,8rem) var(--gut);
  max-width:var(--maxw);
  margin-inline:auto;
  overflow:hidden;
}

/* guillemet monumental, en filigrane */
.avis__mark{
  position:absolute;
  top:clamp(-3rem,-4vw,-1rem); right:clamp(-1rem,2vw,4rem);
  font-family:var(--display);
  font-size:clamp(14rem,30vw,26rem);
  line-height:.8;
  color:var(--jade);
  opacity:.07;
  pointer-events:none;
  user-select:none;
}

.avis__head{
  position:relative;
  max-width:46rem;
  margin-bottom:clamp(2.5rem,5vw,4rem);
}
.avis__intro{
  max-width:44ch;
  color:#B7C7C2;
  font-size:clamp(1rem,1.3vw,1.15rem);
  margin:0;
}
.avis__intro em{ color:var(--paper); font-style:italic; }

.avis__grid{
  position:relative;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));
  gap:1.2rem;
}

.avis-card{
  position:relative;
  display:flex; flex-direction:column;
  gap:1rem;
  padding:clamp(1.8rem,3.2vw,2.6rem);
  border:1px solid var(--line);
  border-radius:5px;
  background:linear-gradient(165deg, rgba(11,18,20,.85), rgba(6,10,12,.85));
  transition:border-color .5s var(--ease), transform .6s var(--ease-out);
}
.avis-card:hover{ border-color:var(--line-2); transform:translateY(-3px); }

.avis-card__text{
  font-family:var(--display);
  font-size:clamp(1.3rem,2.2vw,1.8rem);
  line-height:1.28;
  letter-spacing:-.01em;
  margin:0;
  text-wrap:pretty;
}
.avis-card__by{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem .9rem;
  margin-top:auto;
  padding-top:.6rem;
}
.avis-card__name{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--jade);
}
.avis-card__src{
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted-2);
}

/* étiquette de maquette — à supprimer avec les faux avis */
.avis__demo{
  display:inline-block;
  margin:0 0 1.2rem;
  padding:.4rem .8rem;
  border:1px dashed rgba(255,139,92,.45);
  border-radius:3px;
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--coral-soft);
}

.avis__cta{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:1rem 1.6rem;
  margin-top:clamp(2rem,4vw,3rem);
  padding-top:clamp(1.6rem,3vw,2.2rem);
  border-top:1px solid var(--line);
}
.avis__cta p{
  margin:0;
  color:var(--muted);
  font-size:1rem;
}

/* — Formulaire d'avis : plié derrière le bouton, aucun script requis — */
.avis-form summary{
  list-style:none;
  cursor:pointer;
  user-select:none;
}
.avis-form summary::-webkit-details-marker{ display:none; }
.avis-form summary::marker{ content:''; }

.avis-form__chev{ transition:transform .45s var(--ease); }
.avis-form[open] .avis-form__chev{ transform:rotate(180deg); }

.avis-form[open]{ flex-basis:100%; }

.avis-form__box{
  margin-top:1.4rem;
  display:grid;
  gap:1.1rem;
  padding:clamp(1.6rem,3vw,2.4rem);
  border:1px solid var(--line);
  border-radius:5px;
  background:linear-gradient(165deg, rgba(11,18,20,.85), rgba(6,10,12,.85));
}

.avis-form__field{ display:grid; gap:.5rem; }
.avis-form__field > span{
  font-family:var(--mono);
  font-size:.62rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
}
.avis-form__field > span em{ text-transform:none; letter-spacing:.08em; color:var(--muted-2); }

.avis-form__field textarea,
.avis-form__field input{
  width:100%;
  padding:.85rem 1rem;
  background:rgba(5,8,10,.6);
  color:var(--paper);
  border:1px solid var(--line);
  border-radius:4px;
  font-family:var(--body);
  font-size:1.05rem;
  font-weight:300;
  line-height:1.6;
  transition:border-color .4s var(--ease), box-shadow .4s var(--ease);
}
.avis-form__field textarea{ resize:vertical; min-height:7.5rem; }
.avis-form__field textarea:focus,
.avis-form__field input:focus{
  outline:none;
  border-color:var(--line-2);
  box-shadow:0 0 0 3px rgba(95,227,192,.08);
}
.avis-form__field ::placeholder{ color:var(--muted-2); opacity:1; }

/* piège à robots : hors de vue, hors du parcours clavier */
.avis-form__hp{
  position:absolute;
  width:1px; height:1px;
  margin:0; padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}

.avis-form__send{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:1rem 1.4rem;
}
.avis-form__send button.btn{ border:0; cursor:pointer; }
.avis-form__note{
  font-size:.9rem;
  font-style:italic;
  color:var(--muted);
}

.avis-form__flash{
  flex-basis:100%;
  margin:0;
  padding:.75rem 1.05rem;
  border-radius:4px;
  font-size:.98rem;
}
.avis-form__flash--ok{
  border:1px solid rgba(95,227,192,.35);
  background:rgba(95,227,192,.07);
  color:var(--jade-soft);
}
.avis-form__flash--ko{
  border:1px solid rgba(255,139,92,.4);
  background:rgba(255,139,92,.06);
  color:var(--coral-soft);
}

/* ---------- 16. Commander ---------- */
.order{
  position:relative;
  padding:clamp(5rem,11vw,9rem) var(--gut) clamp(6rem,12vw,10rem);
  overflow:hidden;
}
.order__glowfield{
  position:absolute;
  left:50%; top:35%;
  width:min(120vw,1100px); aspect-ratio:1;
  transform:translate(-50%,-30%);
  background:radial-gradient(circle, rgba(95,227,192,.13) 0%, rgba(255,139,92,.06) 38%, transparent 66%);
  filter:blur(30px);
  pointer-events:none;
  animation:haloBreathe 11s ease-in-out infinite;
}
.order__head{
  position:relative;
  max-width:var(--maxw); margin:0 auto clamp(3rem,6vw,5rem);
  text-align:center;
}

.ticketwrap{
  position:relative;
  max-width:min(66rem,100%);
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(1.5rem,3vw,2.5rem);
  align-items:start;
}

.ticket{
  position:relative;
  background:linear-gradient(165deg, rgba(13,21,23,.94), rgba(6,10,12,.94));
  border:1px solid var(--line-2);
  border-radius:6px;
  padding:clamp(1.6rem,3vw,2.4rem);
  backdrop-filter:blur(10px);
  box-shadow:0 40px 100px -50px rgba(0,0,0,1), inset 0 1px 0 rgba(150,242,220,.10);
}
.ticket__top{
  display:flex; gap:clamp(1.2rem,2.5vw,2rem); align-items:center;
}
.ticket__top img{
  width:clamp(88px,12vw,132px);
  border-radius:2px;
  box-shadow:0 18px 40px -18px rgba(0,0,0,.95), 0 0 0 1px rgba(150,242,220,.12);
}
.ticket__title{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(1.7rem,3.4vw,2.6rem);
  line-height:1.02;
  letter-spacing:-.02em;
  margin:0 0 .35rem;
}
.ticket__author{
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 1.1rem;
}
.ticket__price{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3rem);
  line-height:1;
  color:var(--jade);
  margin:0;
}
.ticket__price span{ letter-spacing:-.02em; }
.ticket__price small{
  font-family:var(--mono);
  font-size:.55rem;
  letter-spacing:.2em;
  color:var(--muted-2);
  vertical-align:super;
  margin-left:.25rem;
}

.ticket__perf{
  position:relative;
  height:1px;
  margin:clamp(1.6rem,3vw,2.2rem) -1.5rem;
  background:repeating-linear-gradient(90deg, var(--line-2) 0 6px, transparent 6px 13px);
}
.ticket__perf::before,.ticket__perf::after{
  content:'';
  position:absolute; top:50%;
  width:22px; height:22px;
  border-radius:50%;
  background:var(--ink);
  border:1px solid var(--line);
  transform:translateY(-50%);
}
.ticket__perf::before{ left:-11px; }
.ticket__perf::after{ right:-11px; }

.ticket__specs{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));
  gap:1.3rem 1rem;
  margin:0 0 clamp(1.8rem,3vw,2.4rem);
}
.ticket__specs dt{
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted-2);
  margin-bottom:.3rem;
}
.ticket__specs dd{
  margin:0;
  font-family:var(--mono);
  font-size:.8rem;
  color:var(--paper);
}
.ticket__actions{
  display:grid;
  gap:.9rem;
}

/* ---------- Sélecteur de format ----------
   Le billet porte les deux versions du livre et n'en montre qu'une.
   Le choix tient dans deux boutons radio natifs : pas de JavaScript,
   donc rien ne casse quand l'espace d'édition remplace main.js. */
.fmt-radio{
  position:absolute;
  width:1px; height:1px;
  margin:-1px; padding:0; border:0;
  clip-path:inset(50%);
  overflow:hidden;
}

.ticket__switch{
  position:relative;
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  padding:4px;
  margin:0 0 clamp(1.7rem,3vw,2.3rem);
  border:1px solid var(--line-2);
  border-radius:99px;
  background:rgba(4,8,10,.55);
}
/* La pastille glisse d'un onglet à l'autre : le choix se voit de loin. */
.ticket__switch-thumb{
  position:absolute;
  top:4px; bottom:4px; left:4px;
  width:calc(50% - 4px);
  border-radius:99px;
  background:var(--jade);
  box-shadow:0 12px 38px -16px rgba(95,227,192,.9);
  transition:transform .5s var(--ease-out);
}
.fmt-radio--ebook:checked ~ .ticket__switch .ticket__switch-thumb{ transform:translateX(100%); }

.ticket__switch label{
  position:relative;                       /* au-dessus de la pastille */
  display:flex; align-items:center; justify-content:center; gap:.75rem;
  padding:.95rem 1rem;
  border-radius:99px;
  cursor:pointer;
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  transition:color .35s var(--ease);
}
.ticket__switch label:hover{ color:var(--paper); }
.fmt__price{
  padding-left:.75rem;
  border-left:1px solid currentColor;
  opacity:.72;
}
/* L'onglet retenu se lit en creux dans le jade. */
.fmt-radio--paper:checked ~ .ticket__switch label[for="format-broche"],
.fmt-radio--ebook:checked ~ .ticket__switch label[for="format-numerique"]{
  color:#04120E;
  font-weight:500;
}
.fmt-radio:focus-visible ~ .ticket__switch{ outline:2px solid var(--jade); outline-offset:3px; }

/* Une version cachée reste dans la page : le sélecteur n'échange que
   l'affichage. Chaque emplacement dit comment se réafficher. */
.ticket__v{ display:none; }
.fmt-radio--paper:checked ~ * .ticket__v--paper,
.fmt-radio--ebook:checked ~ * .ticket__v--ebook{ display:var(--v-display, block); }
.ticket__price .ticket__v,
.ticket__specs .ticket__v{ --v-display:inline; }
.ticket__actions .ticket__v{ --v-display:inline-flex; }
.ticket__actions p.ticket__v{ --v-display:block; }

/* En édition, les deux versions restent visibles : aucun texte à modifier
   ne doit se trouver derrière un bouton radio. */
body.is-editing .ticket__v{ display:var(--v-display, block); }
body.is-editing .ticket__price .ticket__v + .ticket__v{ margin-left:.5rem; }

.ticket__ship{
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted-2);
  text-align:center;
  margin:1rem 0 0;
  line-height:1.7;
}

.order__aside{
  padding:clamp(1.6rem,3vw,2.2rem);
  border:1px solid var(--line);
  border-radius:6px;
  background:rgba(7,12,14,.6);
}
.order__aside h3{
  font-family:var(--display);
  font-weight:400;
  font-size:1.5rem;
  letter-spacing:-.01em;
  margin:0 0 .9rem;
}
.order__aside p{
  color:var(--muted);
  font-size:.92rem;
  line-height:1.65;
  margin:0 0 1.1rem;
}
.isbn-chip{
  display:flex !important; align-items:center; justify-content:space-between;
  gap:.6rem;
  padding:.55rem .55rem .55rem .9rem;
  border:1px dashed var(--line-2);
  border-radius:4px;
  font-family:var(--mono);
  font-size:.74rem !important;
  color:var(--paper) !important;
  letter-spacing:.06em;
}
.isbn-copy{
  border:0;
  background:var(--jade);
  color:#04120E;
  font-family:var(--mono);
  font-size:.58rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:.4rem .7rem;
  border-radius:3px;
  cursor:pointer;
  transition:transform .3s var(--ease), background .3s var(--ease);
  white-space:nowrap;
}
.isbn-copy:hover{ transform:translateY(-1px); background:var(--jade-soft); }
.isbn-copy.done{ background:var(--coral); }
.order__aside-note{ margin-bottom:0 !important; font-size:.82rem !important; }
.order__aside-note a{
  color:var(--jade);
  text-decoration:none;
  border-bottom:1px solid var(--line-2);
}
.order__aside-note a:hover{ border-bottom-color:var(--jade); }

/* ---------- 17. Pied de page ---------- */
.footer{
  border-top:1px solid var(--line);
  padding:clamp(3rem,6vw,5rem) var(--gut) 2.5rem;
  background:
    radial-gradient(70% 100% at 50% 0%, rgba(30,122,102,.10), transparent 60%),
    #04070A;
}
.footer__top{
  max-width:var(--maxw); margin:0 auto clamp(2.5rem,5vw,4rem);
  text-align:center;
}
.footer__title{
  font-family:var(--display);
  font-size:clamp(2rem,6vw,4.5rem);
  line-height:1;
  letter-spacing:-.02em;
  margin:0 0 .8rem;
}
.footer__title em{ font-style:italic; color:var(--jade); }
.footer__sub{
  font-family:var(--mono);
  font-size:.64rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted-2);
  margin:0;
}
.footer__bottom{
  max-width:var(--maxw); margin-inline:auto;
  padding-top:1.8rem;
  border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:1rem;
  align-items:center; justify-content:space-between;
  font-family:var(--mono);
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted-2);
}
.footer__bottom p{ margin:0; }
.footer__links{ display:flex; flex-wrap:wrap; gap:1.4rem; }
.footer__links a{
  text-decoration:none;
  transition:color .35s var(--ease);
}
.footer__links a:hover{ color:var(--jade); }

/* Accès à l'espace d'édition — discret mais trouvable sans notice */
.footer__admin{
  padding:.3rem .7rem;
  border:1px solid var(--line);
  border-radius:99px;
  color:var(--muted);
  transition:border-color .35s var(--ease), color .35s var(--ease), background .35s var(--ease);
}
.footer__admin:hover{
  border-color:var(--jade);
  color:var(--jade) !important;
  background:rgba(95,227,192,.07);
}

/* ---------- 18. Révélations au scroll ---------- */
.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity 1s var(--ease-out) var(--d,0s), transform 1s var(--ease-out) var(--d,0s);
}
.reveal.in{ opacity:1; transform:none; }

/* ---------- 19. Adaptations ---------- */
@media (max-width:1080px){
  .hero__inner{ grid-template-columns:1fr; text-align:left; }
  .hero__stage{ order:-1; margin-bottom:1.5rem; }
  .book-stage{ width:min(46vw,240px); }
  .hero{ padding-top:7.5rem; }
  .autrice__grid{ grid-template-columns:1fr; }
  .autrice__visual{ max-width:22rem; }
  .ticketwrap{ grid-template-columns:1fr; }
}

@media (max-width:760px){
  .nav__links{ display:none; }
  .nav{ padding:.9rem 1.1rem; gap:.6rem; }
  .nav__brand{ font-size:.6rem; letter-spacing:.1em; }
  .nav__mark{ width:9px; height:9px; }
  .nav__cta{ font-size:.6rem; letter-spacing:.08em; padding:.4rem .4rem .4rem .75rem; gap:.45rem; }
  .nav__price{ padding:.22rem .5rem; }
  .hero__scroll{ display:none; }
  .hero__facts{ gap:1.2rem 2rem; }
  .ticket__top{ flex-direction:column; align-items:flex-start; }
  .ticket__specs{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ticket__switch label{ gap:.5rem; padding:.85rem .5rem; font-size:.6rem; letter-spacing:.1em; }
  .fmt__price{ padding-left:.5rem; }
  .incipit__slit{ height:58vh; }
  .book{ --t:22px; }
  .footer__bottom{ flex-direction:column; align-items:flex-start; }
}

@media (hover:none){
  .cursor-halo{ display:none; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{ opacity:1; transform:none; }
  .incipit__text .w{ color:var(--paper); }
  .curtain{ display:none; }
}
