@font-face{font-family:Poppins;src:url('assets/fonts/poppins-medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('assets/fonts/poppins-regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('assets/fonts/poppins-semibold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Poppins;src:url('assets/fonts/poppins-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
:root{color-scheme:dark;--ink:#070e13;--paper:#f5f0e5;--mint:#a6c8ae;--page-pad:clamp(24px,6.5vw,124px);font-family:Poppins,'Avenir Next',Avenir,'Segoe UI',sans-serif;background:var(--ink);color:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:0}body{margin:0;background:var(--ink)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--paper);outline-offset:7px}::selection{background:#49645a;color:white}
.skip{position:fixed;z-index:50;top:10px;left:20px;background:var(--paper);color:var(--ink);padding:12px;transform:translateY(-180%)}.skip:focus{transform:none}
.header{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:24px var(--page-pad);background:linear-gradient(#050a10bd,transparent);pointer-events:none}.header a{pointer-events:auto}.brand{font-size:clamp(27px,2.8vw,42px);font-weight:700;letter-spacing:-1.5px;line-height:1}.brand span{color:var(--mint)}.header nav{display:flex;gap:clamp(20px,3vw,46px);font-size:14px}.header nav a{padding:10px 0;border-bottom:1px solid transparent;transition:border-color .2s}.header nav a[aria-current]{border-color:var(--mint)}
/* Panoramas en plein écran : décor continu sur toute la largeur. */
.stage{display:none;position:fixed;inset:0;height:100svh;overflow:hidden;pointer-events:none;background:var(--ink);z-index:0}.is-enhanced .stage{display:block}.world{position:absolute;inset:0}.scene{position:absolute;inset:-2svh 0;overflow:hidden;isolation:isolate;background:var(--ink);will-change:opacity,transform}.scene picture{display:block;position:absolute;inset:0;width:100%;height:100%}.scene img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--focus,66%) 50%}.shade{position:absolute;inset:0;background:linear-gradient(90deg,#03070b66,transparent 68%),linear-gradient(0deg,#03070b66,transparent 20%,transparent 85%,#03070b33);pointer-events:none}.water-tint{position:absolute;inset:0;background:#002b4238;opacity:0;mix-blend-mode:color;pointer-events:none}.mist{position:absolute;left:-6%;top:62%;width:112%;height:30svh;object-fit:fill;opacity:0;mix-blend-mode:screen;mask-image:linear-gradient(transparent,#000 40%,transparent);pointer-events:none}.mist-two{top:30%;left:0}
main{position:relative;z-index:2}.step{position:relative;min-height:135svh;padding:22svh var(--page-pad) 16svh;background-image:linear-gradient(90deg,#03070b66,transparent 68%),var(--desktop);background-size:cover;background-repeat:no-repeat;background-position:center,var(--focus,66%) center}.copy{max-width:min(560px,48vw);text-shadow:0 2px 24px #000a,0 1px 3px #0009}.is-enhanced .step{height:135svh;background:none;pointer-events:none}.is-enhanced .copy{position:fixed;top:25svh;left:var(--page-pad);width:calc(100% - 2*var(--page-pad));visibility:hidden;will-change:opacity,transform}.is-enhanced .copy a,.is-enhanced .back-top{pointer-events:auto}.eyebrow{display:flex;align-items:center;gap:13px;color:#d0d8d5;font-size:14px;font-weight:400;letter-spacing:.08em;margin:0 0 25px}.eyebrow:before{content:'';width:1px;height:24px;background:var(--mint);flex:none}h1,h2{font-size:clamp(40px,5.3vw,82px);font-weight:600;letter-spacing:-.065em;line-height:1.09;margin:0 0 24px;text-wrap:balance}h1{font-size:clamp(39px,4.7vw,72px)}.step-final h2{font-size:clamp(38px,4.6vw,70px)}.lead{font-size:clamp(16px,1.3vw,20px);line-height:1.65;max-width:400px;margin:0;color:#ede9e1}.quote{font-size:14px;line-height:1.7;color:#c9c4c0;max-width:330px;margin:26px 0}.continue{display:inline-flex;gap:18px;align-items:center;min-height:44px;font-size:14px;line-height:1.4;margin-top:17px;letter-spacing:.025em}.scroll-line{display:block;position:relative;height:36px;width:1px;background:#eee7d562}.scroll-line:after{content:'';position:absolute;inset:0 0 auto;height:12px;background:#eee7d5}.back-top{position:absolute;left:var(--page-pad);bottom:10svh;font-size:14px;padding:12px 0;border-bottom:1px solid #e5e7db66}
.chapter-progress{position:fixed;left:var(--page-pad);bottom:28px;z-index:10;display:flex;align-items:center;gap:14px;font-size:12px;font-variant-numeric:tabular-nums;color:#ddd9cf;pointer-events:none}.progress-track{height:1px;width:100px;background:#f6f1e64a}.progress-track span{height:1px;display:block;width:0;background:#e9eed7}.chapter-current{font-weight:600}
@media(min-width:1700px){.copy{max-width:650px}}
@media(max-width:1000px) and (min-width:701px){h1{font-size:45px}h2{font-size:52px}.step-final h2{font-size:44px}.lead{font-size:17px}}
@media(max-width:700px){:root{--page-pad:24px}.header{padding:calc(18px + env(safe-area-inset-top)) var(--page-pad) 22px;gap:12px}.brand{font-size:28px;letter-spacing:-1.2px}.header nav{gap:16px;font-size:12px}.header nav a{min-height:44px;display:flex;align-items:center}.header nav a:nth-child(-n+3){display:none}.step{min-height:125svh;padding-top:15svh;padding-bottom:16svh;background-image:linear-gradient(#03070b66,transparent 65%),var(--mobile);background-position:center;background-size:cover}.is-enhanced .step{height:125svh}.copy{max-width:100%}.is-enhanced .copy{top:12svh}.is-enhanced #quai .copy{top:auto;bottom:12svh}.eyebrow{font-size:11px;letter-spacing:.055em;margin-bottom:13px;gap:11px}.eyebrow:before{height:18px}h1,h2,.step-final h2{font-size:clamp(28px,7.8vw,40px);max-width:460px;letter-spacing:-.05em;line-height:1.1;margin-bottom:14px}.lead{font-size:13px;line-height:1.55;max-width:340px}.quote,.continue{display:none}.scene picture{inset:0;height:100%;width:100%}.scene img{object-position:center;object-fit:cover}.shade{background:linear-gradient(#03070b88,transparent 46%,transparent 82%,#03070b55)}.chapter-progress{left:24px;bottom:calc(22px + env(safe-area-inset-bottom));font-size:11px}.progress-track{width:68px}.mist{width:150%;left:-25%;top:64%;height:24svh}.back-top{bottom:8svh;font-size:12px}}
@media(max-height:600px) and (min-width:701px){.is-enhanced .copy{top:20svh}h1,h2,.step-final h2{font-size:38px}.eyebrow{margin-bottom:12px}.lead{font-size:14px}.quote,.continue{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.stage{display:none!important}.copy{position:relative!important;top:auto!important;left:auto!important;transform:none!important;opacity:1!important;visibility:visible!important}.chapter-progress{display:none}.step{min-height:110svh}.header nav a{transition:none}}

/* Un seul master coupé à 50 % : Carlos à gauche, Julia à droite. */
.scene--reunion{background:transparent}
.merge-panel{position:absolute;inset:0;will-change:transform}
.merge-left{clip-path:inset(0 50% 0 0)}
.merge-right{clip-path:inset(0 0 0 50%)}
.scene--reunion img{object-position:50% 50%}
.kreapz-names{display:flex;flex-wrap:wrap;gap:18px;margin-top:24px;font-size:14px;letter-spacing:.08em}
.kreapz-names span:nth-child(1){color:#b7e87f}.kreapz-names span:nth-child(2){color:#80baff}.kreapz-names span:nth-child(3){color:#f0ce76}.kreapz-names span:nth-child(4){color:#f895dc}
.is-enhanced .step-portrait .copy{top:40svh;left:38%;width:auto;max-width:40vw}
.step-portrait h2{font-size:clamp(72px,10.5vw,156px);letter-spacing:-.055em;line-height:1}
.is-enhanced #carlos .copy{left:auto;right:28%;text-align:right}
#carlos .eyebrow{justify-content:flex-end}
.is-enhanced #resistance .copy{top:auto;bottom:14svh;left:10%;width:80%;max-width:none;text-align:center}
#resistance .eyebrow{justify-content:center}#resistance h2{font-size:clamp(42px,4.3vw,70px);margin:0;line-height:1.08}
#resistance{background-position:center}
@media(max-width:700px){
 .is-enhanced .step-portrait .copy{top:43svh;left:var(--page-pad);max-width:58vw}
 .is-enhanced #carlos .copy{left:auto;right:var(--page-pad)}
 .step-portrait h2{font-size:clamp(52px,15vw,76px)}
 .step-portrait .eyebrow{font-size:10px;letter-spacing:0;margin-bottom:12px}
 .is-enhanced #resistance .copy{left:6%;width:88%;bottom:13svh}
 #resistance h2{font-size:clamp(29px,8.3vw,42px)}
 #resistance .eyebrow{margin-bottom:12px}
 .kreapz-names{gap:12px;font-size:12px;margin-top:16px}
}
@media(prefers-reduced-motion:reduce){
 #carlos .copy{margin-left:auto}#resistance .copy{margin:0 auto;width:100%!important;text-align:center}
 .step-portrait .copy{padding-top:22svh}.merge-panel{will-change:auto}
}

/* Application : captures fournies dans des cadres HTML ; écran puzzle adapté au lore. */
button{font:inherit}button:focus-visible{outline:2px solid var(--mint);outline-offset:5px}
#completion h2{font-size:clamp(38px,4.6vw,70px)}
#ancrage .lead{max-width:430px}#ancrage strong{font-weight:600;white-space:nowrap}
.step-app{min-height:145svh}.is-enhanced .step-app{height:145svh}
.is-enhanced #application .copy{top:28svh;max-width:38vw}
#application h2{font-size:clamp(46px,5vw,78px);line-height:1.07}
#application .lead{max-width:420px}
.app-showcase{position:relative;width:min(100%,780px);height:74svh;max-height:780px;margin:40px auto 0;pointer-events:auto}
.is-enhanced .app-showcase{position:fixed;left:47%;right:var(--page-pad);top:14svh;width:auto;height:76svh;margin:0;visibility:hidden;will-change:opacity,transform}
.devices{position:absolute;inset:0 0 52px;perspective:1200px}
.device{position:absolute;left:50%;top:50%;width:clamp(158px,16vw,265px);max-width:29svh;aspect-ratio:9/19.5;margin:0;padding:6px;border-radius:30px;border:1px solid #80958c;background:linear-gradient(130deg,#404b46,#070b0c 20%,#10191a);box-shadow:0 16px 50px #0007;transform:translate(calc(-50% + var(--slot)*68%),-50%) rotate(calc(var(--slot)*8deg)) scale(var(--device-scale));transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .45s;filter:brightness(calc(.75 + (var(--device-scale) - .84)*1.5625))}
.device img{width:100%;height:100%;display:block;object-fit:cover;border-radius:24px;aspect-ratio:9/19.5}




.download-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.download-links:has(a[hidden]+a[hidden]){display:none}
.download-button{display:inline-flex;min-height:48px;align-items:center;padding:10px 18px;background:#e9eee4;color:#16251d;border-radius:5px;text-shadow:none;font-size:14px;font-weight:600}.download-button[hidden]{display:none}
@media(max-width:1000px) and (min-width:701px){.is-enhanced .app-showcase{left:49%;right:24px}.device{width:18vw}.is-enhanced #application .copy{max-width:40vw}}
@media(max-width:700px){
 #completion h2{font-size:clamp(28px,7.8vw,40px)}
 #ancrage .lead{font-size:12.5px;line-height:1.5;max-width:340px}
 .is-enhanced #application .copy{top:12svh;max-width:100%;left:var(--page-pad)}
 #application h2{font-size:clamp(32px,9vw,45px);margin-bottom:13px}
 #application .lead{font-size:13px;max-width:330px}
 .is-enhanced .app-showcase{left:10px;right:10px;top:34svh;height:54svh;width:auto}
 .device{width:clamp(140px,44vw,205px);max-width:21svh;padding:4px;border-radius:23px}
 .device img{border-radius:19px}
 
 .devices{bottom:44px}
 .download-links{margin-top:12px;gap:8px}.download-button{min-height:36px;padding:6px 12px;font-size:11px}
 #application .back-top{left:auto;right:var(--page-pad);bottom:5svh;font-size:11px}
}
@media(max-height:600px) and (min-width:701px){.is-enhanced .app-showcase{top:13svh;height:78svh}.device{max-width:28svh}#application h2{font-size:40px}}
@media(prefers-reduced-motion:reduce){
 .app-showcase{position:relative!important;top:auto!important;left:auto!important;right:auto!important;transform:none!important;visibility:visible!important;opacity:1!important;margin:40px auto 60px;width:min(100%,780px)!important}
 .device{transition:none;will-change:auto}
}

body{overflow-x:clip}
.brand{position:relative}


/* Quatre types : silhouettes interactives dans un seul panorama. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.is-enhanced #kreapz .copy{top:18svh;max-width:27vw;pointer-events:none}
#kreapz h2{font-size:clamp(38px,4.1vw,66px)}
#kreapz .lead{font-size:clamp(14px,1.2vw,18px);max-width:310px}
.faction-hint{font-size:11px;color:#d2dcd4;line-height:1.6;margin-top:22px;max-width:230px}
.touch-hint{display:none}
.faction-explorer{position:absolute;inset:0;height:100%;margin:0;pointer-events:none}
.is-enhanced .faction-explorer{position:fixed;inset:0;height:100svh;visibility:hidden;z-index:4}
.faction-hit-area{display:block;position:absolute;inset:0;overflow:hidden;pointer-events:none}
.faction-hotspot{position:absolute;background:none;border:0;padding:0;cursor:pointer;pointer-events:auto;border-radius:50%;touch-action:pan-y pinch-zoom}
.faction-hotspot:focus-visible{outline:1px solid var(--faction-color);outline-offset:3px}
.faction-identities{position:absolute;inset:0;pointer-events:none}
.faction-caption{position:absolute;transform:translateX(-50%);pointer-events:none}
.faction-caption[hidden]{display:none}
.faction-name{width:100%;height:auto;display:block;filter:drop-shadow(0 3px 8px #000b)}
.faction-rarity{display:flex;justify-content:center;align-items:center;gap:14px;margin:0;font-size:10px;letter-spacing:.12em;text-shadow:0 1px 8px #000}
.faction-rarity>span:last-child{color:var(--faction-color);font-size:13px;letter-spacing:0;font-weight:600}
.faction-rarity small{font-size:10px;color:#c9d2ce;font-weight:400}
.rarity-shards{display:flex;gap:7px}.rarity-shards i{display:block;width:7px;height:11px;border:1px solid var(--faction-color);transform:skewY(-18deg);opacity:.35}.rarity-shards i.is-filled{background:var(--faction-color);opacity:1}
#resistance .lead{max-width:none;margin:18px auto 0;font-size:clamp(13px,1.15vw,18px);line-height:1.55}
@media(max-width:700px){
 .is-enhanced #kreapz .copy{top:12svh;max-width:100%;z-index:5}
 #kreapz h2{font-size:clamp(27px,7.5vw,38px);margin-bottom:12px}
 #kreapz .lead{font-size:12px;max-width:280px}
 .faction-hint{font-size:10px;margin-top:12px;max-width:none}
 .pointer-hint{display:none}.touch-hint{display:inline}
 .faction-hit-area{pointer-events:auto;touch-action:pan-y pinch-zoom}
 #kreapz{background-position:center,var(--focus,50%) center}
 .is-enhanced #kreapz[data-active-faction=vanta] .copy,.is-enhanced #kreapz[data-active-faction=xeron] .copy{top:auto;bottom:32svh}
 #resistance .lead{font-size:12px;line-height:1.5;max-width:330px;margin-top:14px}
 .is-enhanced #ancrage .copy{top:11svh}
 #ancrage .eyebrow{margin-bottom:10px}
 #ancrage h2{font-size:30px;line-height:1.08;margin-bottom:12px}
 #ancrage .lead{line-height:1.45}
 #ancrage .lead br+br{display:none}
}
@media(hover:none){.pointer-hint{display:none}.touch-hint{display:inline}}
@media(prefers-reduced-motion:reduce){
}

/* v7 : logo officiel et initiales dessinées en typographie. */
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand-logo{display:block;width:52px;height:44px;object-fit:contain;flex:none;filter:drop-shadow(0 2px 8px #0008)}
.brand .brand-word{position:relative;color:var(--paper)}
.person-name{display:flex;align-items:baseline;gap:.02em;white-space:nowrap}
.person-initial{--initial-color:#b2ead5;position:relative;display:inline-block;isolation:isolate;font-size:1.18em;font-weight:700;font-style:italic;letter-spacing:-.075em;color:var(--initial-color);text-shadow:0 2px 22px #0008}
.person-initial::before{content:attr(data-letter);position:absolute;inset:0;transform:translate(-.055em,.035em);z-index:-1;color:transparent;-webkit-text-stroke:1px var(--initial-color);opacity:.55;text-shadow:none}
.person-initial::after{content:'';position:absolute;width:.36em;height:.025em;right:-.025em;bottom:.09em;background:var(--initial-color);transform:rotate(-35deg);box-shadow:0 0 14px color-mix(in srgb,var(--initial-color) 60%,transparent)}
#carlos .person-name{justify-content:flex-end}
#carlos .person-initial{--initial-color:#f3c98e}
.person-rest{font-weight:600}
@media(max-width:1000px) and (min-width:701px){.header nav{font-size:12px;gap:16px}.brand-logo{width:39px;height:34px}.brand{gap:8px}}
@media(max-width:700px){.brand{gap:8px}.brand-logo{width:35px;height:30px}.person-initial::before{-webkit-text-stroke:.7px var(--initial-color)}}
@media(max-width:390px){.header nav a:nth-child(4){display:none}}

/* L'impact s'anime à l'intérieur : l'ancrage sous le personnage reste fixe. */
.faction-reveal{position:relative;isolation:isolate}
.faction-reveal::before,.faction-reveal::after{content:'';position:absolute;pointer-events:none;z-index:-1;background:var(--faction-color)}
.faction-reveal::before{height:2px;width:118%;left:-9%;top:54%;transform-origin:center;box-shadow:0 0 14px 2px var(--faction-color);animation:faction-streak 420ms ease-out both}
.faction-reveal::after{inset:12% -10% 28%;background:transparent;border:2px solid var(--faction-color);clip-path:polygon(0 0,35% 0,35% 6%,6% 6%,6% 94%,35% 94%,35% 100%,0 100%,0 0,100% 0,100% 100%,65% 100%,65% 94%,94% 94%,94% 6%,65% 6%,65% 0,100% 0);animation:faction-impact 380ms 65ms ease-out both}
.faction-name{transform-origin:50% 65%;animation:faction-name-hit 500ms cubic-bezier(.18,.8,.25,1) both}
.faction-rarity{animation:faction-rarity-in 300ms 160ms ease-out both}
.rarity-shards i.is-filled{animation:faction-shard-hit 320ms 200ms ease-out both}
.rarity-shards i:nth-child(2){animation-delay:245ms}.rarity-shards i:nth-child(3){animation-delay:290ms}.rarity-shards i:nth-child(4){animation-delay:335ms}
@keyframes faction-name-hit{
 0%{opacity:0;transform:translate3d(-34px,4px,0) skewX(-14deg) scale(.68);clip-path:inset(0 100% 0 0);filter:blur(3px) brightness(1.6) drop-shadow(0 3px 8px #000b)}
 32%{opacity:1;transform:translate3d(5px,-2px,0) skewX(4deg) scale(1.14);clip-path:inset(-25% -20%);filter:blur(0) brightness(1.65) drop-shadow(0 0 9px var(--faction-color))}
 58%{transform:translate3d(-2px,0,0) skewX(-1deg) scale(.98);filter:brightness(1.12) drop-shadow(0 3px 8px #000b)}
 100%{opacity:1;transform:none;clip-path:inset(-25% -20%);filter:drop-shadow(0 3px 8px #000b)}
}
@keyframes faction-streak{0%{opacity:0;transform:scaleX(.05) rotate(-9deg)}25%{opacity:.95;transform:scaleX(1.05) rotate(-9deg)}100%{opacity:0;transform:scaleX(1.22) rotate(-9deg)}}
@keyframes faction-impact{0%{opacity:0;transform:scale(.6) skewX(-12deg)}20%{opacity:.75}100%{opacity:0;transform:scale(1.28) skewX(-12deg)}}
@keyframes faction-rarity-in{from{opacity:0;transform:translateY(9px);letter-spacing:.22em}to{opacity:1;transform:none;letter-spacing:.12em}}
@keyframes faction-shard-hit{0%{opacity:0;transform:skewY(-18deg) scale(.35)}55%{opacity:1;transform:skewY(-18deg) scale(1.35);box-shadow:0 0 10px var(--faction-color)}100%{opacity:1;transform:skewY(-18deg) scale(1);box-shadow:none}}
@media(prefers-reduced-motion:reduce){
 .faction-name,.faction-rarity,.rarity-shards i.is-filled{animation:none}
 .faction-reveal::before,.faction-reveal::after{display:none;animation:none}
}

/* v8 : langue, son et mentions légales dans un en-tête compact. */
.header{gap:24px}.header-tools{display:flex;align-items:center;gap:7px;pointer-events:auto;flex:none}
.header .brand{margin-right:auto}.header nav{gap:clamp(14px,1.7vw,28px);font-size:12px}
.utility{border:0;background:transparent;color:var(--paper);height:40px;min-width:36px;padding:7px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;border-radius:7px;transition:background .18s}
.utility:hover,.utility:focus-visible{background:#f5f0e516}.utility svg:not(.flag){width:20px;height:20px;display:block}.utility-text{font-size:10px;white-space:nowrap}.legal-symbol{font-size:22px;line-height:1}.flag{display:block;width:20px;height:14px;border-radius:2px;box-shadow:0 0 0 1px #fff2}.language-picker{position:relative}.language-code{font-size:11px}.chevron{width:5px;height:5px;border-right:1px solid;border-bottom:1px solid;transform:rotate(45deg);margin-left:2px}
.language-menu{position:absolute;right:0;top:48px;min-width:145px;background:#0c151ef5;border:1px solid #b5c8c73d;border-radius:9px;padding:6px;box-shadow:0 15px 40px #0006;backdrop-filter:blur(18px)}
.language-menu button{width:100%;display:flex;align-items:center;gap:12px;padding:12px 10px;background:none;border:0;border-radius:5px;text-align:left;color:#e9ece5;font-size:12px;cursor:pointer}.language-menu button:hover,.language-menu button[aria-pressed=true]{background:#ffffff13}
.sound-toggle[aria-pressed=false] .sound-waves,.sound-toggle[aria-pressed=true] .sound-cross{display:none}.menu-toggle{display:none}
.site-toast{position:fixed;top:96px;right:var(--page-pad);z-index:60;max-width:300px;padding:13px 18px;border:1px solid #dce8da33;border-radius:8px;background:#0c151ef5;color:#f1f1e6;font-size:12px;box-shadow:0 12px 30px #0006}
[hidden]{display:none!important}
.legal-dialog{color:var(--paper);background:#0a141ceF;border:1px solid #a8c8b63b;border-radius:15px;width:min(620px,calc(100% - 32px));max-height:82svh;padding:0;box-shadow:0 25px 100px #0009;backdrop-filter:blur(24px)}
.legal-dialog::backdrop{background:#02070cba;backdrop-filter:blur(7px)}.legal-shell{position:relative;padding:42px clamp(25px,5vw,48px)}.legal-dialog h2{font-size:clamp(30px,4vw,46px);margin-bottom:36px}.legal-dialog h3{font-size:16px;font-weight:600;margin:25px 0 7px}.legal-dialog p:not(.eyebrow){font-size:13px;line-height:1.7;color:#cbd2d0;white-space:pre-line}.legal-close{position:absolute;right:13px;top:10px;width:44px;height:44px;border:0;background:none;color:#e8e9df;font-size:28px;cursor:pointer}.legal-dialog .eyebrow{margin-bottom:18px}
.person-initial{--initial-color:#a5dc40}#carlos .person-initial{--initial-color:#efc368}

/* Les téléphones sont les commandes du carrousel. */
.device{cursor:pointer;color:inherit;--lift:0px;transform:translate(calc(-50% + var(--slot)*68%),calc(-50% + var(--lift))) rotate(calc(var(--slot)*8deg)) scale(var(--device-scale));transition:transform .55s cubic-bezier(.2,.85,.18,1),filter .4s,border-color .35s,box-shadow .35s}
.device[aria-pressed=true]{border-color:var(--screen-color);box-shadow:0 20px 60px #0008,0 0 0 1px color-mix(in srgb,var(--screen-color) 38%,transparent)}
.device:hover{--lift:-7px}.device:focus-visible{outline:2px solid var(--screen-color);outline-offset:6px;--lift:-7px}
.devices{bottom:130px}.app-identities{position:absolute;bottom:30px;left:0;right:0;pointer-events:none;text-align:center;min-height:88px}.app-identity{position:relative;display:inline-block;animation:app-title-in .42s cubic-bezier(.15,.8,.2,1) both}
.app-identity::before{content:'';position:absolute;bottom:7px;left:-22px;width:3px;height:45px;transform:skewY(-28deg);background:var(--screen-color);animation:app-title-rule .4s ease-out both}
.app-identity h3{font-size:clamp(30px,3.2vw,48px);font-weight:600;letter-spacing:-.06em;margin:0;line-height:1.1;text-shadow:0 2px 20px #0009}
.app-kicker{font-size:10px;letter-spacing:.09em;margin:0 0 9px;color:#d5d9d4;display:flex;align-items:center;justify-content:center;gap:15px}.app-counter{font-size:12px;font-weight:600;color:var(--screen-color);letter-spacing:0}.app-counter small{font-size:9px;color:#aaa;font-weight:400}.app-touch-hint{position:absolute;bottom:0;left:0;right:0;text-align:center;color:#bfc8c5;font-size:10px;margin:0;letter-spacing:.02em}
@keyframes app-title-in{0%{opacity:0;transform:translateY(15px) skewX(-7deg);filter:blur(3px)}65%{opacity:1;transform:translateY(-2px);filter:blur(0)}100%{opacity:1;transform:none}}
@keyframes app-title-rule{from{transform:scaleY(.1) skewY(-28deg);opacity:0}to{transform:scaleY(1) skewY(-28deg);opacity:1}}
.store-release{margin-top:30px}.release-eyebrow{display:flex;gap:9px;align-items:center;font-size:10px;letter-spacing:.12em;color:#e1dcca;margin:0 0 13px}.release-eyebrow>span:first-child{width:5px;height:5px;background:#efc368;transform:rotate(45deg)}
.store-badges{display:flex;gap:10px;flex-wrap:wrap}.store-badge{display:flex;align-items:center;gap:11px;border:1px solid #e7e9e33d;border-radius:8px;padding:10px 15px;min-width:153px;background:linear-gradient(140deg,#16242adb,#081019d9);box-shadow:0 6px 22px #0003;backdrop-filter:blur(12px)}
.store-badge svg{width:24px;height:28px;flex:none}.store-badge span{display:flex;flex-direction:column;gap:1px}.store-badge small{font-size:9px;color:#c5cfcc;line-height:1.3}.store-badge strong{font-size:16px;letter-spacing:-.03em;font-weight:600;line-height:1.2}
@media(max-width:1300px){.utility-text{display:none}.header{gap:18px}}
@media(max-width:1100px){
 .menu-toggle{display:inline-flex}.header nav{display:none;position:absolute;right:var(--page-pad);top:calc(100% - 4px);min-width:215px;background:#0b151ef5;border:1px solid #c7d8d433;box-shadow:0 15px 50px #0007;border-radius:10px;padding:8px 18px;backdrop-filter:blur(22px);pointer-events:auto}
 .header nav.is-open{display:flex;flex-direction:column;gap:0}.header nav a,.header nav a:nth-child(-n+5){display:flex;min-height:44px;align-items:center}
}
@media(max-width:700px){
 .header{padding:calc(15px + env(safe-area-inset-top)) 18px 18px;gap:10px}.header .brand{gap:6px;font-size:27px}.brand-logo{width:31px;height:28px}.header-tools{gap:0}.utility{min-width:32px;padding:5px;height:38px}.language-toggle{gap:5px}.language-toggle .chevron{display:none}.flag{width:18px;height:12px}.language-code{font-size:10px}.utility svg:not(.flag){width:19px;height:19px}.site-toast{top:80px;right:18px;max-width:calc(100% - 36px)}
 .is-enhanced .app-showcase{top:39svh;height:54svh;left:10px;right:10px}.devices{bottom:104px}.device{width:clamp(132px,42vw,195px);max-width:17.3svh}
 .app-identities{bottom:26px;min-height:64px}.app-identity h3{font-size:33px}.app-kicker{font-size:8px;gap:11px;margin-bottom:7px}.app-counter{font-size:11px}.app-touch-hint{font-size:9px}.app-identity::before{left:-15px;height:33px;bottom:5px;width:2px}
 .is-enhanced #application .copy{top:11svh}#application h2{font-size:33px;margin-bottom:10px}#application .eyebrow{margin-bottom:8px}#application .lead{font-size:12px;line-height:1.45}.store-release{margin-top:16px}.release-eyebrow{font-size:8px;margin-bottom:9px}.store-badges{gap:8px}.store-badge{min-width:0;gap:8px;padding:8px 11px}.store-badge svg{width:20px;height:23px}.store-badge strong{font-size:13px}.store-badge small{font-size:8px}
 #application .back-top{bottom:2svh;font-size:10px}
 .faction-rarity{gap:7px;font-size:8px;letter-spacing:.06em}.faction-rarity>span:last-child{font-size:10px}.faction-rarity small{font-size:8px}.rarity-shards{gap:4px}.rarity-shards i{width:5px;height:9px}
 .is-enhanced #kreapz[data-active-faction] .copy{top:12svh;bottom:auto}
 .faction-hit-area{touch-action:pan-y pinch-zoom}
}
@media(max-width:360px){.header{padding-left:13px;padding-right:13px}.header .brand{font-size:24px}.brand-logo{width:27px;height:25px}.utility{min-width:29px;padding:4px}.header-tools{gap:0}}
@media(max-width:700px) and (max-height:740px){
 .is-enhanced #kreapz .copy{top:80px}#kreapz .eyebrow{margin-bottom:6px}#kreapz h2{font-size:24px;margin-bottom:8px}#kreapz .lead{display:none}.faction-hint{margin-top:7px;font-size:9px}
 .is-enhanced #application .copy{top:85px}#application h2{font-size:27px;margin-bottom:7px}#application .eyebrow{display:none}#application .lead{font-size:11px}.store-release{margin-top:11px}.release-eyebrow{display:none}.store-badge{padding:7px 9px}.store-badge strong{font-size:12px}.store-badge svg{width:17px;height:21px}.is-enhanced .app-showcase{top:39svh;height:54svh}.devices{bottom:84px}.app-identities{bottom:20px;min-height:56px}.app-identity h3{font-size:28px}.app-touch-hint{font-size:8px}
}
@media(prefers-reduced-motion:reduce){.device,.utility{transition:none}.app-identity,.app-identity::before{animation:none}.device:hover,.device:focus-visible{--lift:0px}}
@media(prefers-reduced-motion:reduce) and (max-width:700px){#kreapz{min-height:100svh;height:100svh}}

body:has(.legal-dialog[open]){overflow:hidden}

@media(max-width:700px) and (orientation:landscape){.step{background-image:linear-gradient(90deg,#03070b66,transparent 68%),var(--desktop);background-position:center,var(--focus,50%) center}}

/* v9 : meilleure lisibilité sans panneau opaque devant le décor. */
.copy{position:relative;isolation:isolate;text-shadow:0 1px 2px #000,0 2px 7px #000e,0 4px 24px #000b}
.copy::before{content:'';position:absolute;z-index:-1;inset:-24px -38px;background:radial-gradient(ellipse at 40% 48%,#02070b75 0%,#02070b45 48%,transparent 74%);filter:blur(13px);pointer-events:none}
.step-portrait .copy::before{opacity:.35}#resistance .copy::before{background:radial-gradient(ellipse at center,#02070b88,transparent 72%)}
.lead{color:#fff}.quote{color:#fff;font-size:15px;line-height:1.7}.eyebrow{color:#f1f5f2;font-weight:600}.faction-hint,.app-touch-hint{color:#f2f5ef;font-weight:600;text-shadow:0 1px 3px #000,0 2px 9px #000}
.header nav{font-weight:600}.utility-text{font-size:11px}.release-eyebrow,.app-kicker{color:#f5f3ec}.store-badge small{color:#f6f7f1}.cinema-is-open{overflow:hidden}

/* Chapitres et réglages occupent deux groupes visuels distincts. */
.chapter-navigation{display:flex;align-items:center;pointer-events:auto}
.header nav{padding:4px 17px;border:1px solid #ced8df26;border-radius:999px;background:#07121c61;backdrop-filter:blur(10px)}
.header-tools{margin-left:11px;padding-left:17px;border-left:1px solid #edf4ed47}
.nav-group-label{display:none}
.header .menu-toggle{gap:8px;font-size:11px;font-weight:600}
.header nav a{position:relative;border-bottom:0;transition:color .2s,transform .25s,text-shadow .25s}
.header nav a::after{content:'';position:absolute;left:0;right:0;bottom:6px;height:1px;background:linear-gradient(90deg,#2de6a0 0%,#429bff 33.33%,#efc368 66.67%,#ff57c2 100%);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.header nav a[aria-current]::after{transform:scaleX(1)}
.utility{transition:background .2s,transform .2s,box-shadow .2s}.brand-logo{transition:transform .3s,filter .3s}
.store-badge{position:relative;isolation:isolate;overflow:hidden;transition:transform .28s,border-color .28s,background .28s,box-shadow .28s;pointer-events:auto}
.store-badge::after{content:'';position:absolute;z-index:-1;inset:-70% -40%;background:linear-gradient(115deg,transparent 38%,#ffffff19 49%,transparent 60%);transform:translateX(-100%);transition:transform .6s;pointer-events:none}
.store-badge:focus-visible{outline:2px solid #b9dfb5;outline-offset:4px;transform:translateY(-4px);border-color:#c5e6d1a6}.store-badge:focus-visible::after{transform:translateX(100%)}
@media(hover:hover) and (pointer:fine){
 .header nav a:hover{color:#fff;transform:translateY(-2px);text-shadow:0 0 15px #ffffff40}.header nav a:hover::after{transform:scaleX(1)}
 .utility:hover{transform:translateY(-2px);box-shadow:0 5px 16px #0003}.brand:hover .brand-logo{transform:rotate(-4deg) scale(1.05);filter:drop-shadow(0 0 9px #56ddc149)}
 .store-badge:hover{transform:translateY(-5px);border-color:#d6e8ddb3;box-shadow:0 13px 30px #0006;background:#132735ed}.store-badge:hover::after{transform:translateX(100%)}
 .back-top:hover{color:#d8fac5;border-color:#d8fac5}.language-menu button:hover .flag{transform:scale(1.08)}
}
.flag{transition:transform .2s}.progress-track span{background:linear-gradient(90deg,#a5dc40,#429bff 40%,#efc368 70%,#ff57c2)}

/* Lecture de la genèse : un geste, une salle de cinéma. */
.is-enhanced .copy button{pointer-events:auto}
.film-trigger{display:inline-flex;align-items:center;gap:16px;min-height:68px;margin-top:27px;padding:0 10px 0 0;color:#fff;background:none;border:0;text-align:left;cursor:pointer;font:inherit;text-shadow:0 2px 9px #000}
.play-orbit{position:relative;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;border:1px solid #d6efe6b3;background:linear-gradient(140deg,#10374dad,#0a172ca3);backdrop-filter:blur(8px);box-shadow:0 5px 25px #0005;transition:transform .3s,background .3s,box-shadow .3s;flex:none}
.play-orbit::before{content:'';position:absolute;inset:-5px;border:1px solid #87cebf5c;border-right-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(-25deg);transition:transform .55s,border-color .3s}
.play-orbit svg{width:22px;height:22px;margin-left:-1px}.film-trigger-copy{display:flex;flex-direction:column;gap:5px}.film-trigger-copy strong{font-size:17px;font-weight:600;letter-spacing:-.025em}.film-trigger-copy small{font-size:12px;color:#e6f5ef;font-weight:400}.film-arrow{font-size:21px;margin-left:8px;transition:transform .3s}
@media(hover:hover) and (pointer:fine){.film-trigger:hover .play-orbit{transform:scale(1.08);background:#1a514ecc;box-shadow:0 0 30px #59cfa12b,0 7px 25px #0006}.film-trigger:hover .play-orbit::before{transform:rotate(145deg);border-color:#b1ffdbad;border-right-color:transparent}.film-trigger:hover .film-arrow{transform:translate(4px,-4px)}}
.film-trigger:focus-visible{outline:2px solid #bce9c7;outline-offset:10px;border-radius:40px}
.cinema-dialog{padding:0;border:1px solid #b3d1db3b;border-radius:18px;width:min(1120px,calc(100vw - 70px));height:min(820px,88dvh);max-width:none;max-height:94dvh;background:radial-gradient(ellipse at 75% 40%,#173a45a8,transparent 62%),#071018;color:#f5f0e5;box-shadow:0 30px 110px #000a;overflow:hidden}
.cinema-dialog::backdrop{background:#02080ff5;backdrop-filter:none}
.cinema-dialog[open]{animation:cinema-open .42s cubic-bezier(.16,.8,.2,1) both}
.cinema-shell{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;height:100%;padding:32px 60px;gap:30px}
.cinema-close{position:absolute;right:15px;top:14px;z-index:5;display:grid;place-items:center;width:44px;height:44px;border:1px solid #d5e1e143;border-radius:50%;background:#08131ed9;color:white;cursor:pointer;transition:background .2s,transform .2s}.cinema-close svg{display:block;width:22px;height:22px;stroke-width:1.8;stroke-linecap:round;fill:none}.cinema-close:hover{background:#244250;transform:none}
.cinema-copy h2{font-size:clamp(44px,5.2vw,76px);letter-spacing:-.065em;margin-bottom:26px}.cinema-copy .eyebrow{font-size:12px;letter-spacing:.12em;margin-bottom:24px}.cinema-intro{font-size:clamp(19px,2.15vw,29px);line-height:1.4;letter-spacing:-.025em;margin:0}.cinema-sub{font-size:13px;line-height:1.6;color:#d2dcd8;max-width:230px}.cinema-rule{display:block;width:70px;height:1px;margin:29px 0 20px;background:linear-gradient(90deg,#a5dc40,#429bff)}.cinema-duration{display:block;font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.16em;color:#a5b8bf;margin-top:38px}
.cinema-screen{position:relative;height:min(748px,calc(88dvh - 64px));max-height:100%;aspect-ratio:6/13;max-width:100%;justify-self:center;border-radius:8px;overflow:hidden;background:#02070c;box-shadow:0 18px 70px #0009,0 0 0 1px #bfd3d522}
.cinema-screen video{display:block;width:100%;height:100%;object-fit:contain;background:#02070c}
.film-loading,.film-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#020912ce;padding:30px;text-align:center;font-size:12px;color:#eff5ef;pointer-events:none}
.film-error{background:#020912e8}.film-error p{line-height:1.7}.film-retry{pointer-events:auto;border:1px solid #c7e6d67d;border-radius:999px;padding:12px 20px;background:#213c37;color:white;cursor:pointer;font-size:13px}.film-direct{pointer-events:auto;font-size:12px;padding:8px;border-bottom:1px solid #e2f3e169}
.loading-orbit{width:32px;height:32px;border:1px solid #e2f2e238;border-top-color:#c3f5d9;border-radius:50%;animation:loading-turn 1s linear infinite}
@keyframes cinema-open{from{opacity:0;transform:translateY(22px) scale(.96)}to{opacity:1;transform:none}}
@keyframes loading-turn{to{transform:rotate(360deg)}}
.phone-charge{position:absolute;display:block;pointer-events:none;transform:translate(-50%,-50%) rotate(-12deg);border-radius:50%;background:radial-gradient(ellipse,#bcfff75c, #3ebde22b 31%,#4aff8820 49%,transparent 72%);mix-blend-mode:screen;filter:blur(4px);animation:phone-current 3.8s ease-in-out infinite;animation-play-state:paused}
@keyframes phone-current{0%,100%{opacity:.18;filter:blur(4px)}48%{opacity:.65;filter:blur(7px)}75%{opacity:.3;filter:blur(4px)}}
@media(max-width:1100px){.header nav{border-radius:12px;padding:12px 20px;background:#08131bf7}.nav-group-label{display:block;color:#bce5d3;font-size:10px;letter-spacing:.15em;text-transform:lowercase;padding:5px 0 10px;border-bottom:1px solid #f4ffef1f;margin-bottom:5px}.header-tools{margin-left:0;padding-left:13px}.cinema-shell{padding:30px 35px;gap:20px}}
@media(max-width:700px){
 .header{gap:9px}.chapter-navigation{margin-left:0}.header .menu-toggle>span{display:none}.header-tools{padding-left:8px;margin-left:0;border-left-color:#eff8ef47}.utility-text{font-size:10px}.header nav{right:18px;left:18px;top:calc(100% - 3px)}
 .copy::before{inset:-20px -20px;background:radial-gradient(ellipse at 45% 43%,#02070b88,#02070b4d 45%,transparent 77%);filter:blur(11px)}
 .lead{font-size:14px;line-height:1.55}.eyebrow{font-weight:600}.faction-hint{font-size:11px}#kreapz .lead{font-size:13px}#ancrage .lead{font-size:13.5px;line-height:1.5}.app-touch-hint{font-size:10px}#resistance .lead{font-size:13px;text-shadow:0 1px 3px #000,0 3px 12px #000}
 .film-trigger{margin-top:21px;gap:14px;min-height:58px}.play-orbit{width:52px;height:52px}.film-trigger-copy strong{font-size:15px}.film-trigger-copy small{font-size:11px}.film-arrow{font-size:19px}
}
@media(max-width:700px), (pointer:coarse){
 .cinema-dialog{inset:0;margin:0;width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0;background:#02070c}
 .cinema-shell{display:block;padding:0}.cinema-copy{display:none}.cinema-screen{width:100%;height:100%;max-height:none;max-width:none;aspect-ratio:auto;border-radius:0;box-shadow:none}.cinema-close{top:calc(14px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right));background:#06111ed9;border-color:#d9e8e869}
}
.cinema-dialog:fullscreen{width:100%;height:100%;max-height:none;border:0;border-radius:0}
@media(max-width:360px){.header{gap:5px}.header-tools{padding-left:6px}.header .menu-toggle{padding:3px;min-width:28px}}
@media(max-width:700px) and (max-height:740px){#kreapz .lead{display:none}.faction-hint{font-size:10px}#ancrage .lead{font-size:12.5px}.film-trigger{margin-top:15px}.play-orbit{width:46px;height:46px}.film-trigger-copy small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.header nav a,.header nav a::after,.utility,.brand-logo,.store-badge,.store-badge::after,.flag,.play-orbit,.play-orbit::before,.film-arrow,.cinema-close{transition:none}.cinema-dialog[open],.loading-orbit,.phone-charge{animation:none}.phone-charge{display:none}}

.faction-rarity{color:#fff;font-weight:600;text-shadow:0 1px 2px #000,0 2px 6px #000}.chapter-progress{text-shadow:0 1px 3px #000;font-weight:600}
@media(max-width:700px){.faction-rarity{font-size:9px}.faction-rarity>span:last-child{font-size:11px}}

/* v10 : phrases lisibles par unités de sens, sans coupures imposées. */
.lead{ text-wrap:pretty }
#genese .lead,#chasse .lead{max-width:min(520px,43vw)}
.lead-hook{display:block;white-space:nowrap;font-weight:600;margin-bottom:7px;letter-spacing:-.025em}
.lead-detail{display:block;text-wrap:pretty}
@media(max-width:700px){
 #genese .lead,#chasse .lead{max-width:100%}
 .lead-hook{font-size:clamp(12px,3.55vw,14px);margin-bottom:5px}
 #genese .lead-detail,#chasse .lead-detail{max-width:34ch}
}

/* Cascade centre / gauche / droite. Les propriétés individuelles laissent
   le transform du carrousel disponible pour le focus et les survols. */
.is-enhanced .app-showcase .device{opacity:0;visibility:hidden}
.is-enhanced .app-showcase.is-arriving .device{
 animation:device-arrival 960ms var(--arrival-delay,0ms) cubic-bezier(.2,.72,.28,1) both;
}
@keyframes device-arrival{
 0%{opacity:0;visibility:hidden;translate:calc(var(--slot)*-28px) 120px;scale:.86}
 14%{opacity:1;visibility:visible}
 58%{opacity:1;visibility:visible;translate:0 -19px;scale:1.035}
 77%{translate:0 7px;scale:.992}
 91%{translate:0 -3px;scale:1.008}
 100%{opacity:1;visibility:visible;translate:0 0;scale:1}
}
.is-enhanced .app-showcase.is-arriving .app-identities{animation:app-arrival-caption 400ms 680ms ease-out both}
.is-enhanced .app-showcase.is-arriving .app-touch-hint{animation:app-arrival-caption 350ms 1000ms ease-out both}
@keyframes app-arrival-caption{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){
 .is-enhanced .app-showcase .device,.is-enhanced .app-showcase.is-arriving .device,
 .is-enhanced .app-showcase.is-arriving .app-identities,.is-enhanced .app-showcase.is-arriving .app-touch-hint{
  animation:none;opacity:1;visibility:visible;translate:0 0;scale:1
 }
}

/* v11 : aucune animation ni filtre d’arrière-plan pendant le film.
   Visibility conserve les hauteurs et la position dans le récit. */
.cinema-is-open :is(.stage,main,.header,.chapter-progress),
.cinema-is-open :is(.stage,main,.header,.chapter-progress) *{
 visibility:hidden!important;animation-play-state:paused!important;
}
.cinema-is-open .cinema-dialog{isolation:isolate}

/* v12 : contenu légal dans la fenêtre existante ; styles isolés du récit. */
.legal-language-note{display:none}
html[lang="en"] .legal-language-note{display:block}
.legal-document{border-top:1px solid #a8c8b62c;padding:16px 0}
.legal-document summary{cursor:pointer;font-size:16px;font-weight:600;line-height:1.5;padding:5px 0;transition:color .2s}
.legal-document summary::marker{color:var(--mint)}
.legal-document summary:hover{color:#fff}
.legal-document summary:focus-visible{outline:2px solid var(--mint);outline-offset:4px}
.legal-document-body{overflow-wrap:anywhere;font-size:13px;line-height:1.7;color:#cbd2d0}
.legal-document-body h4{font-size:14px;font-weight:600;margin:24px 0 8px;color:var(--paper)}
.legal-document-body p{margin:8px 0 14px;white-space:normal!important}
.legal-document-body strong,.legal-document-body dt{color:var(--paper)}
.legal-document-body address{font-style:normal}
.legal-document-body ul{padding-left:20px}
.legal-document-body li{margin:8px 0}
.legal-document-body dl{margin:14px 0}
.legal-document-body dl>div{margin:10px 0}
.legal-document-body dt{font-weight:600}
.legal-document-body dd{margin:2px 0 0}
.legal-document-body a{text-decoration:underline;text-underline-offset:3px;color:#b9dfcb}
.legal-document-body a:hover{color:#fff}
.legal-document-body .legal-updated{font-size:12px;color:#aebeb7}
.legal-table-scroll{max-width:100%;overflow:auto;margin:16px 0;overscroll-behavior:contain}
.legal-table-scroll table{width:100%;border-collapse:collapse;min-width:340px;text-align:left}
.legal-table-scroll th,.legal-table-scroll td{padding:10px 8px;border-bottom:1px solid #a8c8b62c;vertical-align:top}
.legal-table-scroll th{color:var(--paper)}
.legal-dialog{overscroll-behavior:contain}
@media(prefers-reduced-motion:reduce){.legal-document summary{transition:none}}

/* v13 — phrases fluides, conversation et signature de l’ancrage. */
.keep-together{white-space:nowrap}
#debut .copy,#quai .copy{max-width:min(680px,48vw)}
#debut .lead,#quai .lead{max-width:100%;text-wrap:pretty;line-height:1.65}
.havana-message{width:min(390px,100%);margin-top:24px;text-shadow:none}
.message-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:#eaf8ef;font-size:12px;letter-spacing:.015em}
.message-meta strong{font-weight:600}.message-recipient{margin-left:auto;color:#d6e1dd;font-size:11px}
.message-avatar{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#285340;color:#c3ffe0;font-size:12px;font-weight:600;border:1px solid #77d6ae55}
.message-bubble{position:relative;margin:0;padding:15px 18px;border:1px solid #91c8ac5c;border-radius:3px 17px 17px 17px;background:#102a24eb;color:#f5fcf8;font-size:15px;line-height:1.6;box-shadow:0 7px 26px #0004;text-wrap:pretty;backdrop-filter:blur(6px)}
#ancrage .copy{max-width:min(560px,43vw)}
#ancrage .lead{max-width:100%;line-height:1.6}
.frequency-signature{width:min(360px,100%);margin:15px 0 19px;color:#79e7b6}
.frequency-value{display:flex;align-items:baseline;gap:14px;white-space:nowrap;margin:0;line-height:1;text-shadow:0 2px 8px #000b}
.frequency-number{font-size:clamp(72px,6.4vw,108px);font-weight:600;letter-spacing:-.07em;color:#a0ffd0;font-variant-numeric:tabular-nums}
.frequency-unit{font-size:clamp(22px,2.2vw,34px);font-weight:400;letter-spacing:-.025em;color:#edfff6}
.frequency-wave{height:27px;width:100%;margin:9px 0 7px;overflow:hidden}
.frequency-wave svg{width:100%;height:100%;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round}
.frequency-base{stroke:#82dcb480;stroke-width:1.2}
.frequency-scan{stroke:#c3ffe0;stroke-width:2;stroke-dasharray:50 400;stroke-dashoffset:70;animation:frequency-scan 3.2s linear infinite;animation-play-state:paused}
.frequency-signature.is-transmitting .frequency-scan{animation-play-state:running}
.frequency-caption{font-size:11px;letter-spacing:.11em;line-height:1.5;margin:0;color:#cdf4e3;font-weight:600}
#ancrage .frequency-effect{font-size:clamp(15px,1.2vw,18px);max-width:475px}
@keyframes frequency-scan{to{stroke-dashoffset:-380}}
@media(max-width:1100px) and (min-width:701px){#debut .copy,#quai .copy{max-width:55vw}.havana-message{width:350px}.frequency-number{font-size:72px}}
@media(max-width:700px){
 #debut .copy,#quai .copy,#ancrage .copy{max-width:calc(100vw - 2*var(--page-pad))}
 #debut .lead,#quai .lead{font-size:14px;line-height:1.6;max-width:100%}
 .havana-message{width:min(335px,100%);margin-top:18px}.message-meta{font-size:11px;margin-bottom:6px}.message-recipient{font-size:10px}.message-avatar{width:20px;height:20px}
 .message-bubble{font-size:13px;line-height:1.5;padding:12px 14px;border-radius:3px 14px 14px 14px}
 #ancrage .lead{max-width:350px;font-size:13px;line-height:1.5}
 .frequency-signature{width:235px;margin:12px 0 13px}.frequency-number{font-size:65px}.frequency-unit{font-size:22px}.frequency-value{gap:10px}
 .frequency-wave{height:19px;margin:6px 0}.frequency-caption{font-size:9px;letter-spacing:.08em}
 #ancrage .frequency-effect{font-size:12.5px;max-width:335px;line-height:1.5}
}
@media(max-height:740px) and (max-width:700px){
 .havana-message{margin-top:12px}.message-bubble{padding:10px 12px;font-size:12px}.message-meta{margin-bottom:5px}
 .frequency-number{font-size:54px}.frequency-signature{margin:8px 0 10px}.frequency-wave{height:16px}
 #ancrage .frequency-effect{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.frequency-scan{animation:none;stroke-dasharray:none;opacity:.7}}

/* v13 — lecteur légal : navigation indépendante et titres des quatre couleurs. */
.legal-dialog{width:min(1140px,calc(100vw - 72px));height:min(840px,88dvh);max-width:none;max-height:92dvh;overflow:hidden}
.legal-shell{height:100%;padding:0;display:grid;grid-template-rows:auto minmax(0,1fr)}
.legal-header{position:relative;padding:28px 38px 24px;border-bottom:1px solid #a8c8b62c}
.legal-header .eyebrow{margin:0 0 10px;font-size:12px}
.legal-header h2{font-size:clamp(28px,3vw,40px);margin:0;padding-right:32px;color:#89e3ba;text-wrap:normal}
.legal-close{right:20px;top:20px;display:grid;place-items:center;border:1px solid #a8c8b642;border-radius:50%;background:#101e24;color:#eef7f3;transition:background .2s}
.legal-close svg{width:21px;height:21px;stroke-linecap:round}.legal-close:hover{background:#254033}.legal-close:focus-visible{outline:2px solid #89e3ba;outline-offset:4px}
.legal-layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:0}
.legal-sidebar{min-height:0;overflow:auto;padding:26px 20px;border-right:1px solid #a8c8b62c;background:#07121870;overscroll-behavior:contain}
.legal-documents-label,.legal-jump label{display:block;color:#c2d3ca;font-size:11px;font-weight:600;letter-spacing:.04em;margin:0 9px 13px}
.legal-document-nav{display:grid;gap:6px}
.legal-document-nav button{display:flex;align-items:center;gap:11px;width:100%;min-height:46px;padding:11px 10px;text-align:left;font:400 13px/1.5 Poppins,sans-serif;background:transparent;border:1px solid transparent;border-left:2px solid transparent;border-radius:0 7px 7px 0;color:var(--document-color);cursor:pointer;transition:background .2s,border-color .2s}
.legal-document-nav button:hover{background:#ffffff08}
.legal-document-nav button[aria-current]{background:#ffffff0b;border-left-color:var(--document-color);border-top-color:#ffffff0b;border-right-color:#ffffff0b;border-bottom-color:#ffffff0b;font-weight:600}
.legal-nav-number{font-size:10px;opacity:.72;font-variant-numeric:tabular-nums}
.legal-document-nav button:focus-visible{outline:2px solid var(--document-color);outline-offset:2px}
.legal-document-picker{display:none}
.legal-jump{margin-top:26px;padding-top:20px;border-top:1px solid #a8c8b62c}
.legal-sidebar select{width:100%;min-width:0;min-height:42px;padding:9px 26px 9px 11px;border:1px solid #a8c8b63b;border-radius:7px;background:#101f25;color:#e5efe9;font:400 12px/1.4 Poppins,sans-serif;text-overflow:ellipsis}
.legal-sidebar select:focus-visible{outline:2px solid #89e3ba;outline-offset:3px}
.legal-reader{min-width:0;min-height:0;overflow:auto;padding:28px 38px 48px;overscroll-behavior:contain;scrollbar-color:#658675 #0a151a;scrollbar-width:thin}
.legal-reader:focus-visible{outline:1px solid #89e3ba;outline-offset:-2px}
.legal-reader .legal-document{padding:0;border:0;max-width:720px}
.legal-document[hidden]{display:none}
.legal-reader .legal-document h3{font-size:clamp(22px,2.3vw,30px);line-height:1.25;font-weight:600;letter-spacing:-.035em;margin:0 0 18px;color:var(--document-color);text-wrap:pretty}
.legal-reader .legal-document-body,.legal-reader .legal-document-body p:not(.eyebrow){font-size:14px;line-height:1.8;color:#dde6e0}
.legal-reader .legal-document-body h4{font-size:16px;line-height:1.45;font-weight:600;color:var(--document-color);margin:29px 0 10px}
.legal-reader .legal-document-body h4:focus,.legal-reader .legal-document h3:focus{outline:none}
.legal-reader .legal-document-body h4:focus-visible{outline:1px solid var(--document-color);outline-offset:5px}
.legal-reader .legal-document-body .legal-updated{font-size:12px;color:#adc4b7;margin-bottom:24px}
.legal-reader .legal-language-note{font-size:12px;margin:0 0 20px;color:#d6dedb}
.legal-reader .legal-table-scroll table{min-width:380px}
@media(min-width:1500px){.legal-dialog{width:min(1240px,calc(100vw - 100px))}.legal-layout{grid-template-columns:280px minmax(0,1fr)}.legal-reader{padding:32px 48px 54px}.legal-reader .legal-document-body,.legal-reader .legal-document-body p:not(.eyebrow){font-size:15px}}
@media(max-width:760px){
 .legal-dialog{width:calc(100vw - 16px);height:92dvh;max-height:92dvh;border-radius:12px}
 .legal-header{padding:20px 22px 18px}.legal-header h2{font-size:29px}.legal-header .eyebrow{font-size:10px;margin-bottom:8px}.legal-close{top:13px;right:13px;width:40px;height:40px}
 .legal-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
 .legal-sidebar{display:grid;grid-template-columns:minmax(0,1fr);overflow:visible;padding:12px 18px;border-right:0;border-bottom:1px solid #a8c8b62c;gap:8px}
 .legal-document-nav,.legal-documents-label{display:none}.legal-document-picker{display:block}
 .legal-jump{margin:0;padding:0;border:0}.legal-jump label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .legal-sidebar select{min-height:38px;font-size:12px}
 .legal-reader{padding:23px 20px 36px}.legal-reader .legal-document h3{font-size:23px}.legal-reader .legal-document-body,.legal-reader .legal-document-body p:not(.eyebrow){font-size:13px;line-height:1.75}
 .legal-reader .legal-document-body h4{font-size:15px}.legal-reader .legal-document-body .legal-updated{font-size:11px}
}
@media(prefers-reduced-motion:reduce){.legal-close,.legal-document-nav button{transition:none}}

/* Mobile : chaque colonne reste dans les marges, même avec une police agrandie. */
@media(max-width:700px){
 :root{--page-pad:clamp(16px,6.15vw,24px)}
 #histoire .step .copy{min-width:0;max-width:100%;overflow-wrap:anywhere}
 .is-enhanced #histoire .step .copy{
  left:max(var(--page-pad),env(safe-area-inset-left));
  right:max(var(--page-pad),env(safe-area-inset-right));
  width:auto;min-width:0;max-width:none;
 }
 #histoire .copy :is(h1,h2,p,div,span,strong,button,a){min-width:0;max-width:100%;overflow-wrap:anywhere}
 #histoire .copy .keep-together{white-space:normal}
 #histoire .copy :is(.eyebrow,.message-meta,.frequency-value){flex-wrap:wrap}
 .havana-message{max-width:100%}
 .message-bubble{width:100%}
 .is-enhanced #histoire #debut .copy{top:auto;bottom:calc(6svh + env(safe-area-inset-bottom))}
 #histoire #debut .eyebrow{margin-bottom:8px}
 #histoire #debut h1{font-size:clamp(26px,7.4vw,36px);margin-bottom:10px}
 #histoire #debut .lead{font-size:13px;line-height:1.45}
 #histoire #debut .havana-message{width:min(360px,100%);margin-top:12px}
 #histoire #debut .message-bubble{font-size:12px;line-height:1.45;padding:10px 12px}
 .header,.header-tools,.brand-word{min-width:0}
 .header nav,.language-menu,.site-toast{max-width:calc(100vw - 2*var(--page-pad));overflow-wrap:anywhere}
 .header nav a{white-space:normal}
 .app-identities,.app-identity,.app-touch-hint{max-width:100%;min-width:0;overflow-wrap:anywhere}
 .app-identities{padding-inline:18px}
 .app-identity h3{font-size:clamp(26px,8vw,33px);overflow-wrap:anywhere}
 .legal-dialog :is(p,li,td,th,h2,h3,h4,a),.cinema-dialog :is(p,h2,a,button){overflow-wrap:anywhere;max-width:100%;min-width:0}
 .legal-reader .legal-table-scroll table{min-width:0;width:100%;table-layout:fixed}
 .legal-table-scroll :is(td,th){white-space:normal;overflow-wrap:anywhere}
 .legal-reader .legal-document{min-width:0;max-width:100%}
 html:not(.is-enhanced) #debut{display:flex;align-items:flex-end;padding-top:62svh;padding-bottom:calc(6svh + env(safe-area-inset-bottom))}
}
@media(max-width:700px) and (max-height:740px){
 .is-enhanced #histoire #debut .copy{bottom:calc(5svh + env(safe-area-inset-bottom))}
 #histoire #debut h1{font-size:26px;line-height:1.08;margin-bottom:8px}
 #histoire #debut .lead{font-size:12px;line-height:1.4}
 #histoire #debut .havana-message{margin-top:8px}
 #histoire #debut .message-meta{margin-bottom:4px;font-size:10px}
 #histoire #debut .message-avatar{width:18px;height:18px}
}
