/* ============================================================
   GENSHI v3 — « Le parcours »
   Sombre · éditorial · démonstratif · orienté conversion
   Indépendant de genshi.css (parti pris visuel différent)
   ============================================================ */

:root{
  --bg:#101010;
  --bg-2:#171715;
  --bg-3:#1f1e1b;
  --fg:#F4F0E8;
  --dim:#9b958a;
  --dim-2:#6f6a61;
  --line:rgba(244,240,232,.12);
  --line-2:rgba(244,240,232,.06);
  --accent:#5B73E8;          /* indigo lumineux sur fond sombre */
  --accent-deep:#3F5BD6;
  --accent2:#C9822E;         /* ocre doré — teinte d'appoint chaleureuse */
  --accent-ink:#fff;
  --glow:rgba(91,115,232,.35);

  --f-display:'Space Grotesk', system-ui, sans-serif;
  --f-body:'Hanken Grotesk', system-ui, sans-serif;
  --f-mono:'JetBrains Mono', ui-monospace, monospace;

  --pad:clamp(20px,5vw,80px);
  --rail-w:230px;
  --maxw:1320px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* ===== Thème clair (version blanche) ===== */
[data-theme="light"]{
  --bg:#F6F3EC; --bg-2:#FFFFFF; --bg-3:#EFEAE0;
  --fg:#161616; --dim:#6E6960; --dim-2:#9A948A;
  --line:rgba(22,22,22,.13); --line-2:rgba(22,22,22,.06);
  --accent:#3F5BD6; --accent-deep:#314BC0; --accent-ink:#fff; --glow:rgba(63,91,214,.28);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:var(--f-body); font-size:clamp(15.5px,1.05vw,17px); line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3,h4{ font-family:var(--f-display); font-weight:600; line-height:1.02; letter-spacing:-.025em; margin:0; text-wrap:balance; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--accent2); color:#fff; }
.mono{ font-family:var(--f-mono); }

/* micro-label */
.tag{ font-family:var(--f-mono); font-size:11.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--accent2); display:inline-flex; align-items:center; gap:10px; }
.tag::before{ content:""; width:20px; height:1px; background:var(--accent2); }

/* boutons */
.btn{ font-family:var(--f-display); font-weight:600; font-size:15px; display:inline-flex; align-items:center; gap:10px;
  padding:15px 26px; border-radius:100px; cursor:pointer; border:1px solid transparent;
  transition:transform .4s var(--ease-out), background .25s, box-shadow .3s, border-color .25s; white-space:nowrap; }
.btn .arr{ transition:transform .4s var(--ease-out); }
.btn:hover{ transform:translateY(-2px); }
.btn:hover .arr{ transform:translateX(5px); }
.btn--accent{ background:var(--accent); color:#fff; box-shadow:0 8px 30px -8px var(--glow); }
.btn--accent:hover{ box-shadow:0 14px 44px -8px var(--glow); }
.btn--ghost{ border-color:var(--line); color:var(--fg); }
.btn--ghost:hover{ border-color:var(--fg); }

/* ============ NAV (en haut) ============ */
.topnav{ position:fixed; inset:0 0 auto 0; z-index:100; display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:18px var(--pad); border-bottom:1px solid transparent;
  transition:padding .4s var(--ease), background .4s, border-color .4s, backdrop-filter .4s; }
.topnav.scrolled{ padding-block:12px; background:color-mix(in srgb,var(--bg) 80%, transparent);
  backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%); border-color:var(--line); }
.topnav .brand{ display:flex; align-items:center; gap:11px; font-family:var(--f-display); font-weight:600; font-size:19px; }
.topnav .enso{ width:30px; height:30px; }
.tn-links{ display:flex; align-items:center; gap:4px; }
.tn-links a, .drop-toggle{ font-size:14.5px; color:var(--dim); padding:9px 14px; border-radius:100px;
  transition:color .2s, background .2s; cursor:pointer; display:inline-flex; align-items:center; gap:7px; }
.tn-links a:hover, .drop-toggle:hover{ color:var(--fg); background:var(--line-2); }
.tn-links a.active{ color:var(--fg); background:var(--line-2); }
.mega-item.current h5{ color:var(--accent); }
.tn-cta{ display:flex; align-items:center; gap:12px; }
/* ---- burger + panneau mobile ---- */
.tn-burger{ display:none; flex-direction:column; gap:5px; width:44px; height:44px; align-items:center; justify-content:center; background:none; border:0; cursor:pointer; padding:0; border-radius:10px; z-index:101; }
@media (max-width:980px){ .tn-links{ display:none; } .tn-cta{ display:none; } .tn-burger{ display:inline-flex; } }
.tn-burger span{ width:23px; height:2px; background:var(--fg); border-radius:2px; transition:transform .32s var(--ease), opacity .2s; }
.topnav[data-mobile="1"] .tn-burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.topnav[data-mobile="1"] .tn-burger span:nth-child(2){ opacity:0; }
.topnav[data-mobile="1"] .tn-burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.tn-mobile{ position:fixed; inset:0; z-index:99; background:var(--bg); padding:clamp(78px,12vh,96px) var(--pad) 40px; overflow-y:auto;
  display:none; flex-direction:column; gap:4px; -webkit-overflow-scrolling:touch; }
.topnav[data-mobile="1"] .tn-mobile{ display:flex; }
@media (prefers-reduced-motion: no-preference){ .topnav[data-mobile="1"] .tn-mobile{ animation:tnmIn .32s var(--ease-out) both; } }
@keyframes tnmIn{ from{ opacity:0; transform:translateY(-8px); } to{ opacity:1; transform:none; } }
.no-anim .topnav[data-mobile="1"] .tn-mobile{ animation:none !important; opacity:1 !important; transform:none !important; }
.tnm-h{ font-family:var(--f-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent2); margin:18px 0 4px; }
.tn-mobile a{ font-family:var(--f-display); font-size:17px; color:var(--fg); padding:13px 0; border-bottom:1px solid var(--line-2); display:flex; align-items:center; gap:12px; }
.tn-mobile .tnm-svc a .ico{ width:20px; height:20px; color:var(--accent); flex:none; }
.tn-mobile .tnm-svc a.current, .tn-mobile a.current{ color:var(--accent); }
.tn-mobile .tnm-links a{ color:var(--dim); }
.tn-mobile .tnm-cta{ margin-top:24px; justify-content:center; border-bottom:0; font-size:15px; color:var(--accent-ink); }
.tn-mobile .tnm-cta .arr{ color:var(--accent-ink); }
@media (min-width:981px){ .tn-mobile, .tn-burger{ display:none !important; } }

/* menu déroulant Services */
.has-drop{ position:relative; }
/* pont de survol : comble l'espace entre le bouton et la fenêtre */
.has-drop[data-open="1"]::after{ content:""; position:absolute; left:-14px; right:-14px; top:100%; height:20px; }
.drop-toggle .chev{ width:9px; height:9px; transition:transform .3s var(--ease); }
.has-drop[data-open="1"] .drop-toggle .chev{ transform:rotate(180deg); }
.mega{ position:absolute; top:calc(100% + 12px); left:0; transform:translateY(8px); width:min(620px,92vw);
  background:var(--bg-2); border:1px solid var(--line); border-radius:14px; padding:12px;
  box-shadow:0 30px 70px -30px rgba(0,0,0,.7); display:grid; grid-template-columns:1fr 1fr; gap:2px;
  opacity:0; visibility:hidden; pointer-events:none; transition:opacity .25s var(--ease), transform .25s var(--ease); z-index:120; }
.has-drop[data-open="1"] .mega{ opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.mega-item{ display:flex; gap:12px; padding:13px; border-radius:10px; transition:background .2s; }
.mega-item:hover{ background:var(--bg-3); }
.mega-item .ico{ width:22px; height:22px; color:var(--accent); flex:none; margin-top:2px; }
.mega-item h5{ font-family:var(--f-display); font-size:15px; font-weight:600; margin:0; }
.mega-item p{ font-size:12.5px; color:var(--dim); margin-top:3px; line-height:1.4; }
.mega-foot{ grid-column:1/-1; display:flex; justify-content:space-between; align-items:center; padding:12px; margin-top:4px; border-top:1px solid var(--line-2); font-family:var(--f-mono); font-size:11.5px; color:var(--dim); }
.mega-foot a{ color:var(--accent); }
@media (max-width:860px){ .mega{ display:none; } }
.no-anim .has-drop[data-open="1"] .mega{ opacity:1 !important; transform:translateY(0) !important; transition:none !important; }

/* ============ FOOTER complet ============ */
.bigfoot{ border-top:1px solid var(--line); margin-top:clamp(40px,6vw,80px); padding:clamp(44px,6vw,72px) var(--pad) 32px; }
.bf-top{ max-width:var(--maxw); margin-inline:auto; display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:36px; }
@media (max-width:820px){ .bf-top{ grid-template-columns:1fr 1fr; gap:28px; } }
@media (max-width:520px){ .bf-top{ grid-template-columns:1fr; } }
.bf-brand .brand{ display:flex; align-items:center; gap:11px; font-family:var(--f-display); font-weight:600; font-size:20px; }
.bf-brand .enso{ width:28px; height:28px; }
.bf-brand p{ color:var(--dim); font-size:14px; margin-top:14px; max-width:32ch; }
.bf-col h4{ font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent2); font-weight:500; margin:0 0 14px; }
.bf-col a{ display:block; color:var(--dim); font-size:14px; padding:4.5px 0; transition:color .2s; }
.bf-col a:hover{ color:var(--accent); }
.bf-bot{ max-width:var(--maxw); margin:42px auto 0; padding-top:24px; border-top:1px solid var(--line-2); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-family:var(--f-mono); font-size:12px; color:var(--dim-2); }

/* zone de contenu */
.content{ min-width:0; }
.sec{ padding:clamp(80px,11vh,140px) var(--pad); position:relative; max-width:var(--maxw); margin-inline:auto; scroll-margin-top:84px; }
.sec-head{ max-width:780px; }
.sec-head h2{ font-size:clamp(30px,4.6vw,60px); margin-top:18px; }
.sec-head .sub{ color:var(--dim); font-size:clamp(16px,1.4vw,19px); margin-top:18px; max-width:60ch; }

/* ============ atome 2D / 3D simplifié (hero) ============ */
.atom-wrap{ position:absolute; right:3%; top:46%; transform:translateY(-50%); z-index:0; width:min(48vw,540px); aspect-ratio:1; pointer-events:none; }
@media (max-width:900px){ .atom-wrap{ right:-14%; top:12%; width:74vw; opacity:.4; } }
/* mobile : l'atome reste dans le tiers haut, le texte repose sur un fond net */
@media (max-width:900px){
  .v3hero{ align-items:flex-end; }
  .v3hero .veil{ background:linear-gradient(180deg, transparent 0%, transparent 14%, color-mix(in srgb,var(--bg) 88%, transparent) 30%, var(--bg) 44%) !important; }
  .v3hero{ padding-bottom:clamp(48px,7vh,90px); }
}
.atom2d{ width:100%; height:100%; display:block; }
.atom2d .nucleus{ transform-box:fill-box; transform-origin:center; }
.atom2d .electron{ filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 70%, transparent)); }
@keyframes pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.7; } }
@media (prefers-reduced-motion: no-preference){
  .atom2d .nucleus{ animation:pulse 3.4s ease-in-out infinite; }
}

/* ============ HERO ============ */
.v3hero{ position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:flex-end; padding:0 var(--pad) clamp(60px,9vh,110px); overflow:hidden; }
.v3hero .gcanvas{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.v3hero .veil{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, color-mix(in srgb,var(--bg) 30%, transparent) 0%, transparent 30%, color-mix(in srgb,var(--bg) 55%, transparent) 78%, var(--bg) 100%),
             radial-gradient(80% 70% at 75% 35%, transparent 40%, color-mix(in srgb,var(--bg) 40%, transparent) 100%); }
.v3hero .inner{ position:relative; z-index:2; max-width:1000px; }
.v3hero h1{ font-size:clamp(40px,7.4vw,104px); letter-spacing:-.035em; }
.v3hero h1 .line2{ display:flex; align-items:baseline; gap:.28em; flex-wrap:wrap; }
/* mot rotatif */
.rotor{ display:inline-grid; position:relative; color:var(--accent); }
.rotor .word{ grid-area:1/1; opacity:0; transform:translateY(.5em); }
.rotor .word.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: no-preference){ .rotor .word{ transition:opacity .5s var(--ease-out), transform .5s var(--ease-out); } }
.no-anim .rotor .word{ opacity:0; transition:none !important; }
.no-anim .rotor .word:first-child{ opacity:1; transform:none; }
.v3hero .lead{ color:var(--dim); font-size:clamp(17px,1.6vw,21px); margin-top:28px; max-width:54ch; }
.v3hero .cta{ display:flex; gap:14px; flex-wrap:wrap; margin-top:36px; align-items:center; }
.scrollcue{ position:absolute; right:var(--pad); bottom:clamp(60px,9vh,110px); z-index:2; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--dim-2); writing-mode:vertical-rl; display:flex; align-items:center; gap:14px; }
.scrollcue .bar{ width:1px; height:46px; background:linear-gradient(var(--accent), transparent); }
@media (max-width:960px){ .scrollcue{ display:none; } }

/* reveals */
.rv{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease-out), transform .8s var(--ease-out); }
.rv.in{ opacity:1; transform:none; }
.rv[data-d="1"]{ transition-delay:.09s; } .rv[data-d="2"]{ transition-delay:.18s; } .rv[data-d="3"]{ transition-delay:.27s; } .rv[data-d="4"]{ transition-delay:.36s; }
@media (prefers-reduced-motion: reduce){ .rv{ opacity:1 !important; transform:none !important; } }
.no-anim .rv{ opacity:1 !important; transform:none !important; transition:none !important; }

/* ---- entrée douce au chargement : fil d'ariane + heros ---- */
@media (prefers-reduced-motion: no-preference){
  .crumb .row{ animation:griseup .6s var(--ease-out) both; }
  .phero-grid > *{ animation:griseup .75s var(--ease-out) both; }
  .phero-grid > *:nth-child(2){ animation-delay:.18s; }
  .v3hero .inner > .tag{ animation:griseup .7s var(--ease-out) both; }
  .v3hero .inner > h1{ animation:griseup .75s var(--ease-out) .08s both; }
  .v3hero .inner > .lead{ animation:griseup .75s var(--ease-out) .16s both; }
  .v3hero .inner > .cta{ animation:griseup .75s var(--ease-out) .24s both; }
  .v3hero .scrollcue{ animation:gfadein 1.2s var(--ease) .9s both; }
}
@keyframes griseup{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
@keyframes gfadein{ from{ opacity:0; } to{ opacity:1; } }
.no-anim .crumb .row, .no-anim .phero-grid > *, .no-anim .v3hero .inner > *, .no-anim .v3hero .scrollcue{ animation:none !important; opacity:1 !important; transform:none !important; }

/* ============ INTENT — sélecteur d'objectif ============ */
.intent-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:clamp(36px,5vw,56px); }
@media (max-width:820px){ .intent-grid{ grid-template-columns:1fr; } }
.intent-card{ text-align:left; cursor:pointer; background:var(--bg-2); border:1px solid var(--line); border-radius:16px; padding:26px; display:flex; flex-direction:column; gap:14px; transition:border-color .3s, background .3s, transform .4s var(--ease-out); position:relative; overflow:hidden; }
.intent-card:hover{ transform:translateY(-4px); border-color:var(--line); background:var(--bg-3); }
.intent-card[aria-selected="true"]{ border-color:var(--accent); background:color-mix(in srgb,var(--accent) 10%, var(--bg-2)); }
.intent-card .ic-ix{ font-family:var(--f-mono); font-size:12px; color:var(--accent); }
.intent-card h3{ font-size:21px; }
.intent-card p{ color:var(--dim); font-size:14.5px; }
.intent-card .pick{ font-family:var(--f-mono); font-size:12px; color:var(--dim-2); margin-top:auto; display:inline-flex; align-items:center; gap:8px; }
.intent-card[aria-selected="true"] .pick{ color:var(--accent); }
.intent-card .pick .dot{ width:7px; height:7px; border-radius:50%; border:1px solid currentColor; }
.intent-card[aria-selected="true"] .pick .dot{ background:var(--accent); border-color:var(--accent); }

.intent-detail{ margin-top:18px; border:1px solid var(--line); border-radius:16px; background:var(--bg-2); padding:clamp(26px,3.4vw,44px); display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(28px,4vw,56px); }
@media (max-width:820px){ .intent-detail{ grid-template-columns:1fr; } }
.intent-detail .d-k{ font-family:var(--f-mono); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.intent-detail h3{ font-size:clamp(24px,3vw,38px); margin-top:14px; }
.intent-detail .d-lead{ color:var(--dim); margin-top:16px; font-size:16px; }
.intent-detail .d-steps{ margin-top:24px; display:flex; flex-direction:column; gap:0; }
.d-step{ display:flex; gap:15px; padding:15px 0; border-top:1px solid var(--line-2); align-items:baseline; }
.d-step .n{ font-family:var(--f-mono); font-size:12px; color:var(--accent); }
.d-step .t{ font-size:15px; }
.d-step .t b{ font-family:var(--f-display); font-weight:600; display:block; margin-bottom:2px; }
.intent-aside{ border-left:1px solid var(--line); padding-left:clamp(20px,3vw,40px); display:flex; flex-direction:column; justify-content:center; gap:20px; }
@media (max-width:820px){ .intent-aside{ border-left:0; border-top:1px solid var(--line); padding-left:0; padding-top:28px; } }
.intent-aside .invest{ font-family:var(--f-mono); font-size:12px; color:var(--dim); }
.intent-aside .invest b{ font-family:var(--f-display); font-size:clamp(28px,3.4vw,40px); color:var(--fg); font-weight:600; display:block; margin-top:6px; letter-spacing:-.02em; }
.intent-aside .note{ font-size:13px; color:var(--dim-2); }
.fade-swap{ animation:fadeSwap .5s var(--ease-out); }
@keyframes fadeSwap{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none; } }

/* ============ DÉMO avant/après ============ */
.demo-wrap{ margin-top:clamp(36px,5vw,56px); position:relative; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:var(--bg-2); aspect-ratio:16/9; user-select:none; }
.demo-layer{ position:absolute; inset:0; }
.demo-after{ z-index:1; }
.demo-before{ z-index:2; clip-path:inset(0 50% 0 0); }
.demo-badge{ position:absolute; top:16px; z-index:4; font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; border-radius:100px; background:color-mix(in srgb,var(--bg) 70%, transparent); backdrop-filter:blur(8px); border:1px solid var(--line); }
.demo-badge.b{ left:16px; color:var(--dim); }
.demo-badge.a{ right:16px; color:var(--accent); }
.demo-handle{ position:absolute; top:0; bottom:0; left:50%; z-index:5; width:2px; background:var(--accent); transform:translateX(-1px); cursor:ew-resize; }
.demo-handle .grip{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; background:var(--accent); display:grid; place-items:center; box-shadow:0 8px 24px -6px var(--glow); }
.demo-handle .grip svg{ width:20px; height:20px; color:#fff; }
.demo-hint{ margin-top:16px; font-family:var(--f-mono); font-size:12px; color:var(--dim-2); display:flex; gap:8px; align-items:center; }

/* mini-site mock (after) */
.mock{ position:absolute; inset:0; background:#15151a; color:#e8e6e0; font-family:var(--f-display); overflow:hidden; }
.mock .m-nav{ display:flex; align-items:center; justify-content:space-between; padding:4% 5%; }
.mock .m-logo{ font-weight:700; font-size:1.6vw; }
.mock .m-links{ display:flex; gap:1.6vw; font-size:1vw; color:#a8a49c; }
.mock .m-hero{ padding:2% 5% 5%; }
.mock .m-h{ font-size:4.4vw; font-weight:700; line-height:1.02; letter-spacing:-.02em; max-width:80%; }
.mock .m-h .ac{ color:var(--accent); }
.mock .m-sub{ font-family:var(--f-body); color:#a8a49c; font-size:1.25vw; margin-top:1.4%; max-width:60%; }
.mock .m-btn{ display:inline-block; margin-top:2.4%; background:var(--accent); color:#fff; font-size:1.05vw; padding:1%2.2%; padding:1.1% 2.4%; border-radius:100px; }
.mock .m-cards{ display:flex; gap:1.4%; margin-top:3.5%; }
.mock .m-card{ flex:1; height:8vw; border-radius:0.6vw; background:#1f1f25; border:1px solid rgba(255,255,255,.06); }
.mock .m-card.fill{ background:linear-gradient(135deg,var(--accent),var(--accent-deep)); opacity:.9; }
/* wireframe (before) */
.wire{ position:absolute; inset:0; background:#0e0e0e; }
.wire .wl{ position:absolute; border:1.5px dashed rgba(244,240,232,.22); border-radius:4px; }
.wire .wf{ position:absolute; background:rgba(244,240,232,.07); border-radius:4px; }
.wire .wt{ position:absolute; font-family:var(--f-mono); font-size:1vw; color:rgba(244,240,232,.3); }

/* ============ ASK — simulateur IA ============ */
.ask-card{ margin-top:clamp(36px,5vw,56px); border:1px solid var(--line); border-radius:18px; background:linear-gradient(180deg,var(--bg-2),var(--bg)); overflow:hidden; }
.ask-top{ display:flex; align-items:center; gap:10px; padding:16px 22px; border-bottom:1px solid var(--line); font-family:var(--f-mono); font-size:12px; color:var(--dim); }
.ask-top .dot3{ display:flex; gap:6px; } .ask-top .dot3 i{ width:9px; height:9px; border-radius:50%; background:var(--line); }
.ask-top .eng{ margin-left:auto; color:var(--dim-2); }
.ask-body{ padding:clamp(22px,3vw,34px); }
.ask-chips{ display:flex; gap:10px; flex-wrap:wrap; }
.ask-chip{ font-family:var(--f-mono); font-size:12.5px; color:var(--fg); background:var(--bg-3); border:1px solid var(--line); border-radius:100px; padding:9px 15px; cursor:pointer; transition:border-color .25s, color .25s, background .25s; }
.ask-chip:hover{ border-color:var(--accent); color:var(--accent); }
.ask-chip[aria-selected="true"]{ background:color-mix(in srgb,var(--accent) 16%, transparent); border-color:var(--accent); color:var(--fg); }
.ask-q{ margin-top:22px; font-family:var(--f-mono); font-size:14px; color:var(--dim); display:flex; gap:10px; }
.ask-q::before{ content:"›"; color:var(--accent); }
.ask-ans{ margin-top:16px; font-size:clamp(16px,1.5vw,19px); line-height:1.65; min-height:4.5em; }
.ask-ans .cursor{ display:inline-block; width:9px; height:1.05em; background:var(--accent); vertical-align:-2px; margin-left:2px; animation:blink 1s steps(1) infinite; }
@keyframes blink{ 50%{ opacity:0; } }
.ask-ans .cite{ display:inline-flex; align-items:center; gap:7px; background:color-mix(in srgb,var(--accent) 16%, transparent); border:1px solid color-mix(in srgb,var(--accent) 45%, transparent); border-radius:100px; padding:2px 11px; font-family:var(--f-mono); font-size:12.5px; }
.ask-ans .cite .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); }

/* ============ PACTE ============ */
.pacte{ background:var(--bg); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.pacte .sec{ max-width:var(--maxw); }
.pacte-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:clamp(36px,5vw,56px); border:1px solid var(--line); border-radius:16px; overflow:hidden; }
@media (max-width:760px){ .pacte-grid{ grid-template-columns:1fr; } }
.pact{ padding:clamp(28px,3.4vw,44px); border-left:1px solid var(--line); display:flex; flex-direction:column; gap:14px; }
.pact:first-child{ border-left:0; }
@media (max-width:760px){ .pact{ border-left:0; border-top:1px solid var(--line); } .pact:first-child{ border-top:0; } }
.pact .pn{ font-family:var(--f-mono); font-size:12px; color:var(--accent); }
.pact h3{ font-size:23px; }
.pact p{ color:var(--dim); font-size:14.5px; }
.pact .sig{ margin-top:8px; font-family:var(--f-mono); font-size:11px; color:var(--accent2); letter-spacing:.08em; }

/* ============ CTA finale ============ */
.final{ position:relative; overflow:hidden; }
.final .sec{ max-width:var(--maxw); }
.final h2{ font-size:clamp(34px,6vw,82px); max-width:16ch; }
.final .lead{ color:var(--dim); font-size:clamp(17px,1.5vw,20px); margin-top:22px; max-width:50ch; }
.startline{ margin-top:36px; display:flex; gap:12px; max-width:560px; flex-wrap:wrap; }
.startline input{ flex:1; min-width:240px; background:var(--bg-2); border:1px solid var(--line); border-radius:100px; color:var(--fg); font-family:var(--f-body); font-size:16px; padding:15px 22px; outline:none; transition:border-color .25s; }
.startline input:focus{ border-color:var(--accent); }
.startline .ok{ display:none; font-family:var(--f-mono); font-size:13px; color:var(--accent); margin-top:14px; }
.startline.sent input, .startline.sent .btn{ display:none; }
.startline.sent .ok{ display:block; }
.final-meta{ margin-top:30px; display:flex; gap:26px; flex-wrap:wrap; font-family:var(--f-mono); font-size:13px; color:var(--dim); }
.final-meta a:hover{ color:var(--accent); }

/* ============ footer minimal ============ */
.v3foot{ padding:36px var(--pad); border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; font-family:var(--f-mono); font-size:12px; color:var(--dim-2); max-width:var(--maxw); }

/* no-webgl fallback */
.webgl-fallback{ display:none; }
@keyframes gprobe{ from{ opacity:0; } to{ opacity:1; } }
.no-webgl .v3hero .gcanvas{ display:none; }
.no-webgl .webgl-fallback{ display:block; }
