/* ============================================================
   e-milie V2 — "Liquid Healing"
   Premium layer — loaded on top of app.css on v2 pages.
   ============================================================ */

/* Variable fonts (Fraunces + Inter) chargés via Google Fonts statiques dans app.css.
   On ajoute ici la version "variable" pour kinetic typography. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,100..900&family=Inter:wght@100..900&display=swap');

:root{
  /* Shadows premium */
  --shadow-glow: 0 20px 60px -20px rgba(232,89,60,.35), 0 8px 32px -8px rgba(127,119,221,.25);
  --shadow-liquid: 0 1px 0 rgba(255,255,255,.5) inset, 0 -1px 0 rgba(30,27,46,.08) inset, 0 40px 80px -30px rgba(30,27,46,.25);
  --shadow-float: 0 30px 80px -30px rgba(30,27,46,.5);

  /* Glass */
  --glass-bg: rgba(253,250,243,.55);
  --glass-border: rgba(255,255,255,.4);
  --glass-blur: saturate(1.6) blur(18px);
}

/* ===== GRAIN FILM OVERLAY ======================================
   Contre-tendance "toxicité de la perfection" — grain discret. */
body.v2::before{
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9998;
  opacity:.042;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ===== WEBGL CANVAS — FOND VIVANT ================================ */
.gl-canvas{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  z-index:-1;
  opacity:.9;
  pointer-events:none;
}
body.v2{background:var(--cream);}
body.v2 .gl-fallback{
  position:fixed; inset:0; z-index:-1;
  background:
    radial-gradient(at 20% 10%, rgba(255,212,220,.7) 0, transparent 55%),
    radial-gradient(at 80% 15%, rgba(127,119,221,.35) 0, transparent 55%),
    radial-gradient(at 50% 90%, rgba(93,202,165,.3) 0, transparent 55%),
    var(--cream);
  animation: slow-breath 14s ease-in-out infinite alternate;
}
@keyframes slow-breath{
  0%{ filter: hue-rotate(0deg) saturate(1) }
  100%{ filter: hue-rotate(6deg) saturate(1.1) }
}

/* ===== CURSEUR LIQUIDE ============================================ */
.cursor-dot, .cursor-ring{
  position:fixed;
  top:0; left:0;
  pointer-events:none;
  z-index:9999;
  border-radius:50%;
  mix-blend-mode:multiply;
  transition: transform .18s cubic-bezier(.2,1,.3,1), width .2s, height .2s, background .2s;
  will-change:transform;
}
.cursor-dot{
  width:8px; height:8px;
  background:var(--coral);
  transform: translate(-50%,-50%);
}
.cursor-ring{
  width:42px; height:42px;
  border:1.5px solid rgba(127,119,221,.5);
  transform: translate(-50%,-50%);
  backdrop-filter: blur(4px);
}
body.cursor-hover .cursor-ring{
  width:80px; height:80px;
  border-color:var(--coral);
  background:rgba(255,212,220,.2);
}
body.cursor-click .cursor-ring{
  transform: translate(-50%,-50%) scale(.7);
}
@media (hover:none), (max-width:820px){
  .cursor-dot, .cursor-ring{ display:none }
}

/* ===== KINETIC TYPOGRAPHY — TITRES VIVANTS ======================== */
.kinetic{
  font-family:'Fraunces',serif;
  font-variation-settings: 'opsz' 144, 'wght' 600;
  letter-spacing:-.02em;
  line-height:.96;
  text-wrap:balance;
}
.kinetic .char, .kinetic .word{
  display:inline-block;
  will-change:transform, opacity, font-variation-settings;
}
.kinetic-big{
  font-size: clamp(52px, 8.5vw, 148px);
  font-weight: 600;
}
.kinetic-mid{
  font-size: clamp(36px, 5vw, 72px);
  font-weight: 500;
}
.kinetic em{
  font-style:italic;
  font-variation-settings: 'opsz' 144, 'wght' 400;
  background: var(--grad-healing);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ===== HERO V2 ==================================================== */
.hero-v2{
  min-height: 100vh;
  display:grid;
  place-items:center;
  text-align:center;
  padding: 120px 24px 80px;
  position:relative;
  overflow:hidden;
}
.hero-v2 .eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-soft);
  opacity:.7;
  margin-bottom:32px;
}
.hero-v2 h1{
  margin:0 auto 28px;
  max-width:1080px;
}
.hero-v2 .lede{
  font-size: clamp(18px, 2.3vw, 26px);
  color:var(--ink-soft);
  max-width: 620px;
  margin: 0 auto 48px;
  line-height:1.45;
}
.hero-v2 .orb-wrap{
  margin: 20px auto 36px;
  width: 200px;
  height: 200px;
  position:relative;
  display:grid;
  place-items:center;
}
.hero-v2 .orb{
  width: 180px; height:180px;
  border-radius:50%;
  background: var(--grad-dawn);
  box-shadow: var(--shadow-glow);
  display:grid;
  place-items:center;
  cursor:pointer;
  border:none;
  transition: transform .3s cubic-bezier(.2,1,.3,1);
  animation: orb-breath 4s ease-in-out infinite;
}
.hero-v2 .orb:hover{ transform:scale(1.04) }
.hero-v2 .orb:active{ transform:scale(.96) }
.hero-v2 .orb svg{ width:60px; height:60px; color:#fff }
@keyframes orb-breath{
  0%,100%{ box-shadow: var(--shadow-glow), 0 0 0 0 rgba(232,89,60,.35) }
  50%{ box-shadow: var(--shadow-glow), 0 0 0 24px rgba(232,89,60,0) }
}
.hero-v2 .orb-ring{
  position:absolute;
  inset:0;
  border-radius:50%;
  border:1px dashed rgba(127,119,221,.4);
  animation: orb-spin 40s linear infinite;
}
@keyframes orb-spin{
  from{ transform:rotate(0) }
  to{ transform:rotate(360deg) }
}
.hero-v2 .pillrow{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:36px;
}
.hero-v2 .pill-fact{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.6);
  border:1px solid rgba(255,255,255,.9);
  backdrop-filter: blur(10px);
  color:var(--ink-soft);
}
.hero-v2 .pill-fact strong{ color:var(--coral); font-weight:600 }

/* ===== MAGNETIC BUTTON ============================================ */
.btn-liquid{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:16px 32px;
  border-radius:999px;
  background: var(--ink);
  color: var(--cream);
  font-weight:500;
  font-size:16px;
  border:none;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  transition: color .4s cubic-bezier(.2,1,.3,1);
  box-shadow: 0 10px 30px -10px rgba(30,27,46,.4);
  will-change: transform;
}
.btn-liquid::before{
  content:'';
  position:absolute;
  inset:0;
  background: var(--grad-dawn);
  border-radius:inherit;
  transform: translateY(101%);
  transition: transform .5s cubic-bezier(.2,1,.3,1);
  z-index:-1;
}
.btn-liquid:hover{ color: var(--ink) }
.btn-liquid:hover::before{ transform: translateY(0) }
.btn-liquid.primary{ background: var(--grad-healing); color:#fff }
.btn-liquid.primary::before{ background: var(--ink) }
.btn-liquid.primary:hover{ color:#fff }
.btn-liquid.ghost{
  background: transparent;
  color: var(--ink);
  border:1px solid rgba(30,27,46,.2);
  box-shadow:none;
}

/* ===== SECTION GENERIC ============================================ */
.section-v2{
  position:relative;
  padding: clamp(80px, 12vw, 160px) 24px;
}
.section-v2 .wrap{
  max-width: 1180px;
  margin: 0 auto;
}
.section-v2 .eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--coral);
  margin-bottom:20px;
  display:inline-block;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(232,89,60,.08);
}

/* ===== STICKY STACK CARDS ========================================= */
.stack-wrap{
  position:relative;
}
.stack-card{
  position:sticky;
  top: 12vh;
  margin: 40px auto;
  max-width: 880px;
  padding: 48px;
  border-radius: 36px;
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  box-shadow: var(--shadow-liquid);
  transition: transform .6s cubic-bezier(.2,1,.3,1), opacity .6s;
}
.stack-card h3{
  font-family:'Fraunces',serif;
  font-size: clamp(30px, 4vw, 52px);
  font-weight: 500;
  margin: 0 0 18px;
  letter-spacing:-.015em;
}
.stack-card p{
  font-size: 18px;
  line-height:1.55;
  color:var(--ink-soft);
  margin:0;
}
.stack-card .num{
  font-family:'Fraunces',serif;
  font-size: 14px;
  font-variation-settings: 'opsz' 144;
  color: var(--coral);
  font-weight: 500;
  margin-bottom:10px;
  display:block;
}

/* ===== BENTO GRID ================================================= */
.bento{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: 180px;
  gap: 18px;
  margin: 60px 0;
}
.bento-cell{
  border-radius: 28px;
  padding: 28px;
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  box-shadow: 0 8px 24px -8px rgba(30,27,46,.12);
  overflow:hidden;
  position:relative;
  transition: transform .4s cubic-bezier(.2,1,.3,1), box-shadow .4s;
  will-change:transform;
}
.bento-cell:hover{
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -15px rgba(30,27,46,.25);
}
.bento-cell.big{ grid-column: span 4; grid-row: span 2; }
.bento-cell.tall{ grid-column: span 2; grid-row: span 2; }
.bento-cell.wide{ grid-column: span 4; }
.bento-cell.mid{ grid-column: span 3; }
.bento-cell.sm{ grid-column: span 2; }
.bento-cell h4{
  font-family:'Fraunces',serif;
  font-weight:500;
  margin:0 0 10px;
  font-size: clamp(20px, 2.4vw, 28px);
  letter-spacing:-.01em;
}
.bento-cell p{ font-size:14px; color:var(--ink-soft); line-height:1.5; margin:0 }
.bento-cell .emoji{
  font-size: 32px;
  margin-bottom: 16px;
  display:block;
}
.bento-cell.coral{ background: linear-gradient(135deg, #FFD4DC 0%, #FF7A5C 100%); color:#fff; border-color: rgba(255,255,255,.2) }
.bento-cell.coral h4, .bento-cell.coral p{ color:#fff }
.bento-cell.violet{ background: linear-gradient(135deg, #A79FF0 0%, #7F77DD 100%); color:#fff; border-color: rgba(255,255,255,.2) }
.bento-cell.violet h4, .bento-cell.violet p{ color:#fff }
.bento-cell.mint{ background: linear-gradient(135deg, #7EE2C3 0%, #5DCAA5 100%); color:#fff; border-color: rgba(255,255,255,.2) }
.bento-cell.mint h4, .bento-cell.mint p{ color:#fff }
.bento-cell.ink{ background: var(--ink); color: var(--cream); border-color: rgba(255,255,255,.1) }
.bento-cell.ink h4, .bento-cell.ink p{ color: var(--cream) }
.bento-cell.ink p{ opacity:.8 }

@media (max-width: 860px){
  .bento{ grid-template-columns: repeat(2,1fr); grid-auto-rows: 160px }
  .bento-cell.big, .bento-cell.wide, .bento-cell.mid, .bento-cell.tall, .bento-cell.sm{
    grid-column: span 2; grid-row: span 1;
  }
  .bento-cell.big{ grid-row: span 2 }
}

/* ===== MARQUEE INFINI ============================================= */
.marquee{
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent 0, #000 10%, #000 90%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 10%, #000 90%, transparent 100%);
  padding: 40px 0;
}
.marquee-track{
  display:flex;
  gap: 28px;
  width: max-content;
  animation: marquee-slide 44s linear infinite;
}
.marquee-track:hover{ animation-play-state: paused }
@keyframes marquee-slide{
  from{ transform: translateX(0) }
  to{ transform: translateX(-50%) }
}
.quote-card{
  flex: 0 0 380px;
  padding: 28px;
  border-radius: 28px;
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  font-style:italic;
  font-family:'Fraunces',serif;
  font-size: 18px;
  line-height: 1.5;
  color: var(--ink);
}
.quote-card .who{
  display:block;
  margin-top: 16px;
  font-style:normal;
  font-family:'Inter',sans-serif;
  font-size: 13px;
  color: var(--slate);
}

/* ===== COMPARISON TABLE V2 ======================================== */
.vstable{
  margin: 40px 0;
  border-radius: 28px;
  overflow: hidden;
  background: rgba(255,255,255,.6);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
}
.vstable table{ width:100%; border-collapse: collapse }
.vstable th, .vstable td{
  padding: 20px 24px;
  text-align: left;
  font-size: 15px;
  border-bottom: 1px solid rgba(30,27,46,.06);
}
.vstable th{
  font-family:'JetBrains Mono',monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--ink-soft);
  font-weight: 500;
  background: rgba(255,255,255,.5);
}
.vstable .us{ background: linear-gradient(180deg, rgba(232,89,60,.06), rgba(127,119,221,.06)); font-weight: 600 }
.vstable tr:last-child td{ border-bottom:none }
.vstable .check{ color: var(--mint); font-size:18px }
.vstable .cross{ color: var(--slate); font-size:18px; opacity:.5 }

/* ===== NUMBERS ANIMATED =========================================== */
.stat-big{
  font-family:'Fraunces',serif;
  font-weight: 500;
  font-size: clamp(60px, 10vw, 140px);
  line-height: 1;
  letter-spacing:-.03em;
  background: var(--grad-healing);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-variant-numeric: tabular-nums;
}

/* ===== FAQ ACCORDION V2 =========================================== */
.faq-v2{
  max-width: 820px;
  margin: 48px auto 0;
}
.faq-v2 details{
  border-radius: 20px;
  padding: 20px 26px;
  background: rgba(255,255,255,.55);
  backdrop-filter: var(--glass-blur);
  border: 1px solid rgba(255,255,255,.6);
  margin-bottom: 14px;
  transition: background .3s;
}
.faq-v2 details[open]{ background: rgba(255,255,255,.8) }
.faq-v2 summary{
  cursor:pointer;
  list-style: none;
  display:flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  font-family: 'Fraunces', serif;
  font-size: 19px;
  font-weight: 500;
  color: var(--ink);
}
.faq-v2 summary::-webkit-details-marker{ display:none }
.faq-v2 summary::after{
  content:'+';
  font-size: 28px;
  line-height:1;
  font-weight:300;
  color: var(--coral);
  transition: transform .3s;
}
.faq-v2 details[open] summary::after{ transform: rotate(45deg) }
.faq-v2 details p{
  margin: 14px 0 0;
  color: var(--ink-soft);
  line-height: 1.55;
  font-size: 15px;
}

/* ===== URGENCE STRIP V2 =========================================== */
.urg-strip-v2{
  padding: 80px 24px;
  background: linear-gradient(135deg, #FFD4DC 0%, #FFE4B8 100%);
  border-radius: 36px;
  margin: 60px auto;
  max-width: 1180px;
  text-align: center;
}
.urg-strip-v2 h3{
  font-family:'Fraunces',serif;
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 500;
  margin: 0 0 24px;
  letter-spacing:-.015em;
}
.urg-strip-v2 .urg-grid{
  display:flex;
  justify-content:center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 24px;
}
.urg-strip-v2 .urg-pill{
  padding: 16px 26px;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-weight: 500;
  text-decoration: none;
  box-shadow: 0 6px 20px -8px rgba(232,89,60,.3);
  transition: transform .3s;
}
.urg-strip-v2 .urg-pill:hover{ transform: translateY(-2px) }
.urg-strip-v2 .urg-pill strong{ color: var(--coral); font-weight: 700 }

/* ===== NAV V2 FLOATING =========================================== */
.nav-v2{
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  padding: 12px 20px;
  background: rgba(253,250,243,.8);
  backdrop-filter: saturate(1.6) blur(16px);
  -webkit-backdrop-filter: saturate(1.6) blur(16px);
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 999px;
  display:flex;
  align-items:center;
  gap: 8px;
  box-shadow: 0 10px 30px -10px rgba(30,27,46,.15);
  transition: top .4s, padding .3s;
}
body.scrolled .nav-v2{ top: 12px; padding: 10px 18px }
.nav-v2 .brand{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:600;
  color:var(--ink);
  text-decoration:none;
  padding-right:10px;
  border-right: 1px solid rgba(30,27,46,.1);
  margin-right:4px;
}
.nav-v2 .brand-dot{
  width: 16px; height:16px; border-radius:50%;
  background: var(--grad-dawn);
  box-shadow: 0 2px 8px rgba(232,89,60,.4);
}
.nav-v2 .brand-eu{
  background: var(--grad-healing);
  -webkit-background-clip:text;
  background-clip:text;
  color: transparent;
}
.nav-v2 a.lnk{
  padding: 8px 14px;
  border-radius:999px;
  color: var(--ink);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: background .3s, color .3s;
}
.nav-v2 a.lnk:hover{ background: rgba(30,27,46,.06) }
.nav-v2 a.cta{
  padding: 8px 16px;
  border-radius: 999px;
  background: var(--ink);
  color: var(--cream);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: background .3s;
}
.nav-v2 a.cta:hover{ background: var(--coral) }
@media (max-width: 780px){
  .nav-v2 .hide-sm{ display:none }
}

/* ===== HERMES FLOATING WIDGET ===================================== */
#hermes-bubble{
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 1000;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  border: none;
  background: var(--grad-soul);
  box-shadow: 0 20px 40px -12px rgba(127,119,221,.5), 0 0 0 0 rgba(127,119,221,.4);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: transform .3s cubic-bezier(.2,1,.3,1), box-shadow .4s;
  animation: hermes-pulse 3.5s ease-in-out infinite;
}
#hermes-bubble:hover{ transform: scale(1.08) }
#hermes-bubble svg{ width: 28px; height: 28px; color: #fff }
@keyframes hermes-pulse{
  0%,100%{ box-shadow: 0 20px 40px -12px rgba(127,119,221,.5), 0 0 0 0 rgba(127,119,221,.4) }
  50%{ box-shadow: 0 20px 40px -12px rgba(127,119,221,.5), 0 0 0 16px rgba(127,119,221,0) }
}
#hermes-panel{
  position: fixed;
  bottom: 100px;
  right: 24px;
  z-index: 1001;
  width: min(420px, calc(100vw - 48px));
  height: min(640px, calc(100vh - 160px));
  border-radius: 28px;
  background: rgba(253,250,243,.96);
  backdrop-filter: saturate(1.6) blur(24px);
  -webkit-backdrop-filter: saturate(1.6) blur(24px);
  border: 1px solid rgba(255,255,255,.7);
  box-shadow: 0 30px 80px -20px rgba(30,27,46,.4);
  display: none;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(20px) scale(.96);
  opacity: 0;
  transition: transform .4s cubic-bezier(.2,1,.3,1), opacity .3s;
}
#hermes-panel.open{
  display: flex;
  transform: translateY(0) scale(1);
  opacity: 1;
}
#hermes-panel .head{
  padding: 18px 20px;
  border-bottom: 1px solid rgba(30,27,46,.08);
  display:flex;
  align-items:center;
  gap: 12px;
}
#hermes-panel .head .avatar{
  width: 36px; height:36px; border-radius:50%;
  background: var(--grad-soul);
  display: grid; place-items: center;
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  box-shadow: 0 4px 12px -4px rgba(127,119,221,.5);
}
#hermes-panel .head .nm{ font-weight: 600; font-size: 15px; color: var(--ink) }
#hermes-panel .head .st{ font-size: 12px; color: var(--mint); display:flex; align-items:center; gap: 6px }
#hermes-panel .head .st::before{
  content:'';
  width: 8px; height:8px; border-radius:50%;
  background: var(--mint);
  box-shadow: 0 0 0 3px rgba(93,202,165,.2);
}
#hermes-panel .head .close{
  margin-left:auto;
  background: none; border:none; cursor:pointer;
  font-size: 22px; color: var(--slate);
  padding: 0; line-height:1;
  width: 32px; height: 32px;
  border-radius: 50%;
  transition: background .2s;
}
#hermes-panel .head .close:hover{ background: rgba(30,27,46,.06) }
#hermes-messages{
  flex: 1;
  overflow-y: auto;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
#hermes-messages .msg{
  max-width: 78%;
  padding: 12px 16px;
  border-radius: 20px;
  font-size: 14px;
  line-height: 1.45;
  animation: msg-in .4s cubic-bezier(.2,1,.3,1) both;
}
@keyframes msg-in{
  from{ opacity:0; transform: translateY(8px) }
  to{ opacity:1; transform: translateY(0) }
}
#hermes-messages .msg.bot{
  align-self: flex-start;
  background: rgba(127,119,221,.1);
  color: var(--ink);
  border-top-left-radius: 6px;
}
#hermes-messages .msg.user{
  align-self: flex-end;
  background: var(--ink);
  color: var(--cream);
  border-top-right-radius: 6px;
}
#hermes-messages .typing{
  align-self: flex-start;
  display: flex;
  gap: 4px;
  padding: 12px 16px;
  background: rgba(127,119,221,.1);
  border-radius: 20px;
  border-top-left-radius: 6px;
}
#hermes-messages .typing span{
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--violet);
  animation: dot 1.2s ease-in-out infinite;
}
#hermes-messages .typing span:nth-child(2){ animation-delay: .15s }
#hermes-messages .typing span:nth-child(3){ animation-delay: .3s }
@keyframes dot{
  0%,60%,100%{ transform: translateY(0); opacity:.4 }
  30%{ transform: translateY(-6px); opacity:1 }
}
#hermes-panel .composer{
  padding: 14px 16px;
  border-top: 1px solid rgba(30,27,46,.08);
  display: flex;
  gap: 8px;
  align-items: flex-end;
}
#hermes-input{
  flex:1;
  border: 1px solid rgba(30,27,46,.1);
  border-radius: 18px;
  padding: 12px 14px;
  font: inherit;
  font-size: 14px;
  background: #fff;
  resize: none;
  max-height: 120px;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
#hermes-input:focus{
  border-color: var(--violet);
  box-shadow: 0 0 0 3px rgba(127,119,221,.15);
}
#hermes-send{
  width: 40px; height: 40px;
  border-radius: 50%;
  border: none;
  background: var(--grad-soul);
  color: #fff;
  cursor: pointer;
  display: grid; place-items: center;
  flex-shrink: 0;
  transition: transform .2s;
}
#hermes-send:hover{ transform: scale(1.06) }
#hermes-send:disabled{ opacity:.5; cursor: not-allowed }
#hermes-panel .foot{
  padding: 8px 16px;
  font-size: 11px;
  color: var(--slate);
  text-align: center;
  background: rgba(30,27,46,.03);
  border-top: 1px solid rgba(30,27,46,.06);
}
#hermes-panel .foot strong{ color: var(--violet); font-weight: 600 }

/* ===== PRELOADER ================================================== */
#preloader{
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: var(--cream);
  display: grid;
  place-items: center;
  transition: opacity .6s, visibility .6s;
}
#preloader.out{ opacity:0; visibility: hidden; pointer-events: none }
#preloader .logo-draw{
  width: 72px; height: 72px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, var(--coral) 0, var(--violet) 50%, var(--mint) 90%, var(--coral) 100%);
  animation: spin 1.2s linear infinite;
  display: grid; place-items: center;
}
#preloader .logo-draw::before{
  content:'';
  width: 54px; height:54px;
  border-radius: 50%;
  background: var(--cream);
}
#preloader .logo-draw::after{
  content:'e';
  position: absolute;
  font-family: 'Fraunces', serif;
  font-size: 36px;
  font-weight: 500;
  color: var(--ink);
  font-style: italic;
}
@keyframes spin{
  to{ transform: rotate(360deg) }
}

/* ===== REVEAL MOTION ============================================== */
.reveal{
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .9s cubic-bezier(.2,1,.3,1), transform .9s cubic-bezier(.2,1,.3,1);
  will-change: transform, opacity;
}
.reveal.in{ opacity: 1; transform: translateY(0) }
.reveal-stagger > * { transition-delay: calc(var(--i,0) * 80ms) }

/* ===== CARDS — HORIZONTAL SCROLL ================================== */
.h-scroll{
  display:flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 20px 24px 40px;
  scrollbar-width: thin;
}
.h-scroll::-webkit-scrollbar{ height: 6px }
.h-scroll::-webkit-scrollbar-thumb{ background: rgba(30,27,46,.2); border-radius: 999px }
.h-scroll .hcard{
  flex: 0 0 clamp(280px, 40vw, 420px);
  scroll-snap-align: start;
  padding: 32px;
  border-radius: 32px;
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  box-shadow: var(--shadow-liquid);
  min-height: 360px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.hcard .badge{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(232,89,60,.1);
  color: var(--coral);
  font-family:'JetBrains Mono',monospace;
  font-size: 11px;
  font-weight: 500;
  width: fit-content;
  text-transform: uppercase;
  letter-spacing:.08em;
}
.hcard h3{
  font-family:'Fraunces',serif;
  font-weight: 500;
  font-size: clamp(24px, 3vw, 32px);
  margin: 0;
  letter-spacing:-.01em;
}
.hcard p{ color: var(--ink-soft); margin:0; line-height:1.55 }
.hcard .agent-avatar{
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center;
  color: #fff;
  font-weight: 600;
  font-size: 18px;
  box-shadow: 0 8px 20px -6px rgba(30,27,46,.3);
}
.hcard.echo .agent-avatar{ background: var(--grad-healing) }
.hcard.oracle .agent-avatar{ background: var(--grad-soul) }
.hcard.guardian .agent-avatar{ background: linear-gradient(135deg, #5DCAA5, #7F77DD) }
.hcard.hermes .agent-avatar{ background: linear-gradient(135deg, #7F77DD, #1E1B2E) }

/* ===== FOOTER V2 ================================================== */
.footer-v2{
  background: var(--ink);
  color: var(--cream);
  padding: 80px 24px 40px;
  margin-top: 80px;
  border-radius: 48px 48px 0 0;
}
.footer-v2 .wrap{
  max-width: 1180px;
  margin: 0 auto;
}
.footer-v2 .grid{
  display: grid;
  grid-template-columns: 1.4fr repeat(4, 1fr);
  gap: 40px;
  margin-bottom: 60px;
}
@media (max-width: 900px){
  .footer-v2 .grid{ grid-template-columns: 1fr 1fr }
}
.footer-v2 h5{
  font-family:'JetBrains Mono',monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing:.14em;
  color: rgba(253,250,243,.6);
  margin: 0 0 20px;
  font-weight: 500;
}
.footer-v2 a{
  color: rgba(253,250,243,.85);
  text-decoration: none;
  font-size: 14px;
  line-height: 2;
  display: block;
  transition: color .2s;
}
.footer-v2 a:hover{ color: var(--coral-soft) }
.footer-v2 .brand-big{
  font-family:'Fraunces',serif;
  font-size: 42px;
  font-weight: 500;
  letter-spacing:-.02em;
}
.footer-v2 .brand-big em{
  font-style:italic;
  background: var(--grad-dawn);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.footer-v2 .brand-desc{
  color: rgba(253,250,243,.7);
  font-size: 14px;
  line-height: 1.6;
  max-width: 320px;
  margin-top: 14px;
}
.footer-v2 .bottom{
  padding-top: 30px;
  border-top: 1px solid rgba(253,250,243,.1);
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: rgba(253,250,243,.5);
  flex-wrap: wrap;
  gap: 20px;
}

/* Reduced motion */
@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 }
  .marquee-track{ animation: none }
}
