/* V17 : une seule famille, hiérarchie par taille, graisse et couleur. */
:root{font-family:Poppins,sans-serif;--text-muted:#ccd5d3}
body,input,button,select,textarea{font-family:Poppins,sans-serif}
#histoire .step :is(h1,h2){font-weight:600;letter-spacing:-.04em}
.copy>.eyebrow,.cinema-copy>.eyebrow{font-size:12px;line-height:1.5;font-weight:500;letter-spacing:.045em;color:#bdc9c5;font-variant-numeric:lining-nums tabular-nums}
.copy .lead,.copy .lead-detail{font-weight:400;color:var(--text-muted)}
.copy .lead-hook{font-family:inherit;font-size:inherit;line-height:1.5;font-weight:600;color:#fff;letter-spacing:0;white-space:normal;margin-bottom:8px}
#completion .lead,#tokens .lead{font-family:inherit;font-weight:600;color:#fff;letter-spacing:0}
.cinema-intro,.qr-title{font-family:inherit;font-weight:600}
.havana-message{position:relative;max-width:100%}
.message-meta{padding-left:2px}
.message-avatar{background:#1454a4;border-color:#8cbaff70;color:#f2f7ff}
.message-bubble,#histoire #debut .message-bubble{position:relative;background:#0865da;color:#fff;border:1px solid #7fbbff50;border-radius:19px 19px 19px 5px;box-shadow:0 8px 24px #0004;backdrop-filter:none;transform-origin:10% 100%;transition:opacity .38s ease,transform .4s cubic-bezier(.2,.8,.25,1)}
.message-bubble::before{content:'';position:absolute;left:-5px;bottom:-1px;width:13px;height:16px;border-radius:0 0 14px 0;background:#0865da;transform:skewY(-16deg)}
.message-typing{position:absolute;top:30px;left:0;display:none;align-items:center;justify-content:center;gap:5px;width:68px;height:35px;border-radius:18px 18px 18px 5px;background:#0865da;box-shadow:0 6px 20px #0003}
.message-typing i{width:6px;height:6px;border-radius:50%;background:#e7f3ff;animation:message-dot 1s ease-in-out infinite}
.message-typing i:nth-child(2){animation-delay:.14s}.message-typing i:nth-child(3){animation-delay:.28s}
.havana-message[data-message-state=typing] .message-typing{display:flex}
.havana-message[data-message-state=typing] .message-bubble{opacity:0;visibility:hidden;transform:translateY(7px) scale(.96)}
@keyframes message-dot{0%,65%,100%{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.scene img{transform:scale(var(--scene-scale,1));transform-origin:50% 50%;backface-visibility:hidden}
.street-rain{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.35}
/* Le trait visible fait 1 px ; les zones de clic restent confortables. */
.chapter-rail{position:fixed;left:var(--page-pad);bottom:20px;z-index:18;display:flex;align-items:center;gap:20px;max-width:calc(100vw - 2*var(--page-pad));min-height:44px;padding:0 12px;border:0;border-radius:6px;background:#07131a40;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;text-shadow:0 1px 5px #000a}
.rail-context{display:flex;align-items:center;gap:7px;min-width:142px;font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap}
.chapter-current,.rail-total{font-family:Poppins,sans-serif;font-size:12px;font-weight:500;line-height:1;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:'lnum' 1,'tnum' 1;letter-spacing:0}.rail-total,.rail-separator{color:#c2ccca}.rail-current-name{color:#edf2ef}
.rail-timeline{position:relative;width:200px;height:44px;flex:none}
.rail-line{position:absolute;left:0;right:0;top:50%;height:1px;background:#ffffff40}.rail-fill{position:absolute;inset:0;background:#fff;transform:scaleX(var(--rail-progress,0));transform-origin:left center}
.chapter-rail ol{list-style:none;padding:0;margin:0;position:absolute;inset:0}.chapter-rail li{position:absolute;left:var(--rail-position,0%);top:0;transform:translateX(-50%)}
.rail-stop{position:relative;display:grid;place-items:center;width:36px;height:44px;border-radius:5px}
.rail-mark{display:block;width:4px;height:4px;border-radius:50%;background:#84918f;box-shadow:0 0 0 2px #10202770;transition:background .18s,transform .18s}
.rail-stop[aria-current] .rail-mark{background:#fff;transform:scale(1.5)}.rail-stop:is(:hover,:focus-visible) .rail-mark{background:#fff;transform:scale(1.5)}.rail-stop:focus-visible{outline:1px solid #fff;outline-offset:-3px}
.rail-label{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(3px);opacity:0;visibility:hidden;pointer-events:none;white-space:nowrap;background:#09161aee;border:1px solid #ffffff26;border-radius:5px;padding:7px 10px;font-size:11px;font-weight:400;color:#f5faf3;transition:opacity .18s,transform .18s}
.rail-stop:is(:hover,:focus-visible) .rail-label{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
/* Carte d'inscription : contraste constant, quelle que soit la photo. */
.app-acquisition{position:relative;max-width:500px;pointer-events:auto}
.is-enhanced .app-acquisition{position:fixed;left:var(--page-pad);top:36svh;width:39vw;max-width:500px;visibility:hidden;z-index:3}
.is-enhanced #application .copy{top:12svh;max-width:40vw}
.app-acquisition .store-release{margin:0 0 16px}.app-acquisition .store-badge{cursor:default}.app-acquisition .store-badge[href]{cursor:pointer}
.app-acquisition .release-eyebrow{font-size:11px;margin-bottom:12px}
.waitlist-form{padding:24px;border:1px solid #d1e5dd30;border-radius:16px;background:#08151eef;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 16px 50px #0004;color:#fff;text-shadow:none}
.waitlist-form h3{font-family:Poppins,sans-serif;font-weight:600;font-size:21px;line-height:1.35;letter-spacing:-.02em;margin:0 0 16px;color:#fff}
.waitlist-form>label{display:block;font-size:14px;line-height:1.5;font-weight:500;color:#eef4f1;margin:0 0 8px}
.waitlist-input-row{display:flex;align-items:stretch;gap:16px;min-width:0}
.waitlist-input-row input{min-width:0;flex:1;width:100%;height:52px;padding:0 14px;border:1px solid #80998f;border-radius:8px;background:#172b33;color:#fff;font:400 16px/1.5 Poppins,sans-serif;box-shadow:none}
.waitlist-input-row input::placeholder{color:#c2ceca;opacity:1}.waitlist-input-row input:focus{outline:2px solid #bce7d0;outline-offset:3px}
.waitlist-submit{flex:none;min-height:52px;height:52px;white-space:nowrap;border:1px solid #daeee2;border-radius:8px;background:#d9eee1;color:#122b20;padding:0 17px;font:600 14px/1.3 Poppins,sans-serif;cursor:pointer;transition:background .2s,transform .2s}
.waitlist-submit:hover{background:#fff;transform:translateY(-2px)}.waitlist-submit:focus-visible{outline:2px solid #fff;outline-offset:3px}.waitlist-submit:disabled{opacity:.7;cursor:wait;transform:none}
.waitlist-help{font-size:13px;line-height:1.55;color:#cad7d2;margin:8px 0 16px}
.waitlist-form .waitlist-consent{display:flex;gap:12px;align-items:flex-start;margin:0 0 16px;font-size:14px;font-weight:400;line-height:1.5;color:#eef5f1;cursor:pointer}
.waitlist-consent input{flex:none;accent-color:#c9ead7;margin:1px 0 0;width:20px;height:20px}.waitlist-consent span{min-width:0}.waitlist-consent input:focus-visible{outline:2px solid #fff;outline-offset:3px}
.waitlist-privacy{font-size:12px;line-height:1.6;color:#bdcec6;margin:0;overflow-wrap:anywhere}.waitlist-privacy a{color:#e9f7ef;text-decoration:underline;text-underline-offset:3px}
.waitlist-result{margin:16px 0 0;font-size:14px;line-height:1.5;color:#baf1ce}.waitlist-result:empty{display:none}.waitlist-result[data-error=true]{color:#ffd6c5}
.waitlist-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.play-qr{display:flex;align-items:center;gap:20px;margin:25px 0 0}.qr-image{display:block;width:136px;flex:none;padding:10px;background:#fff;border-radius:10px;box-shadow:0 8px 32px #0003}.qr-image svg{display:block;width:100%;height:auto}.qr-title{font-size:23px;line-height:1.2;margin:0 0 8px;color:#f0f8eb}.qr-sub{font-size:12px;color:#d6e4db;margin:0;max-width:155px;line-height:1.5}
.cinema-is-open .chapter-rail{visibility:hidden}
/* Sur un écran PC bas, la carte reste entière dans le défilement naturel. */
@media(min-width:701px) and (max-height:850px), (min-width:701px) and (max-width:1100px){
 .is-enhanced #histoire #application{height:auto;min-height:135svh;padding-top:120px;padding-bottom:120px;pointer-events:auto}
 .is-enhanced #application .copy{position:relative!important;top:auto!important;left:auto;width:43%;max-width:none;transform:none!important}
 .is-enhanced #application h2{font-size:46px;margin-bottom:12px}.is-enhanced #application .lead{font-size:15px}
 .is-enhanced #application .app-acquisition{position:relative;top:auto;left:auto;width:43%;max-width:500px;margin-top:24px}
 .is-enhanced #application .app-showcase{position:absolute;top:110px;right:var(--page-pad);height:calc(100svh - 155px)}
 .waitlist-input-row{flex-wrap:wrap}.waitlist-input-row input{flex:1 1 200px}.waitlist-submit{flex:1 1 auto}
}
@media(min-width:701px) and (max-width:1100px){
 .waitlist-input-row{flex-direction:column;gap:16px}.waitlist-input-row input,.waitlist-submit{flex:none;width:100%;height:52px;min-height:52px}
}
@media(max-width:700px){
 .copy>.eyebrow,#histoire #debut .eyebrow{font-size:11px;letter-spacing:.04em;font-weight:500;line-height:1.5}
 .is-enhanced #histoire #debut .copy{bottom:calc(max(88px,10svh) + env(safe-area-inset-bottom))}
 .copy .lead-hook{font-size:inherit;white-space:normal}
 .chapter-rail{left:var(--page-pad);right:var(--page-pad);bottom:calc(12px + env(safe-area-inset-bottom));padding:8px 12px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:0;min-height:56px;max-width:none}
 .rail-context{grid-column:1;grid-row:1;min-width:0;font-size:12px;gap:6px}.rail-total{grid-column:2;grid-row:1}.rail-timeline{grid-column:1/-1;grid-row:2;width:100%;height:32px;margin:0}.rail-stop{height:36px;top:-2px;width:40px}
 .rail-label{font-size:10px;padding:7px 8px}.chapter-rail li:first-child .rail-label{left:0;transform:translateY(3px)}.chapter-rail li:first-child .rail-stop:is(:hover,:focus-visible) .rail-label{transform:none}.chapter-rail li:last-child .rail-label{left:auto;right:0;transform:translateY(3px)}.chapter-rail li:last-child .rail-stop:is(:hover,:focus-visible) .rail-label{transform:none}
 .is-enhanced #histoire #application{height:auto;min-height:145svh;padding-top:calc(95px + env(safe-area-inset-top));padding-bottom:calc(115px + env(safe-area-inset-bottom));pointer-events:auto}
 .is-enhanced #histoire #application .copy{position:relative!important;top:auto!important;bottom:auto;left:auto;right:auto;width:100%;max-width:100%;transform:none!important}
 #histoire #application h2{font-size:36px;margin-bottom:10px}#histoire #application .lead{font-size:13px;line-height:1.5}
 .is-enhanced #application .app-showcase{position:relative!important;top:auto!important;left:auto!important;right:auto!important;width:100%!important;height:58svh;margin:12px auto 14px;max-height:540px}
 #application .devices{bottom:88px}#application .device{width:clamp(132px,38vw,190px);max-width:19svh}
 #application .app-identities{bottom:25px;min-height:58px}
 .is-enhanced #application .app-acquisition{position:relative;top:auto;left:auto;width:100%;max-width:none;z-index:auto;margin-top:12px}
 .app-acquisition .store-release{margin:0 0 16px}.app-acquisition .release-eyebrow{display:flex;font-size:11px}
 .app-acquisition .store-badges{display:flex;gap:8px}.app-acquisition .store-badge{flex:1;justify-content:center;min-width:0}
 .waitlist-form{padding:20px;border-radius:14px}.waitlist-form h3{font-size:20px}
 .waitlist-input-row{flex-direction:column;gap:16px}.waitlist-input-row input,.waitlist-submit{flex:none;width:100%;height:52px;min-height:52px}
 .play-qr{display:none}
 #application .back-top{bottom:86px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .scene img{transform:none!important}.street-rain,.message-typing{display:none!important}
 .havana-message .message-bubble{opacity:1!important;visibility:visible!important;transform:none!important}
 .app-acquisition{position:relative!important;top:auto!important;left:auto!important;width:100%!important;visibility:visible!important;opacity:1!important;margin:30px auto 70px}
 .waitlist-submit:is(:hover,:focus-visible),.store-badge:is(:hover,:focus-visible){transform:none!important}
}
