/* Page publique /decouvrir : tokens de la marque, aucun style en dur hors la scène 3D (sombre dans les deux thèmes). */
.page-landing { display: block; }
.lp-wrap { width: 100%; max-width: 760px; margin: 0 auto; padding: 0 var(--gutter); }
.lp-nav { position: sticky; top: 0; z-index: 5; background: var(--navbar-bg); backdrop-filter: blur(14px); padding-top: env(safe-area-inset-top); border-bottom: var(--hairline) solid var(--line); }
.lp-nav-in { height: 56px; display: flex; align-items: center; justify-content: space-between; }
.lp-logo { display: inline-flex; } .lp-logo img { display: block; }
.lp-login { font-weight: 600; padding: 10px 4px; }
.lp-hero { padding: var(--s-8) 0 var(--s-6); }
.lp-kicker { font-size: var(--fs-sub); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--eos-ink); margin-bottom: var(--s-3); }
.page-landing h1 { font: 700 clamp(2rem, 7vw, 3.1rem) / 1.05 var(--display); font-stretch: 80%; letter-spacing: -.01em; text-wrap: balance; }
.page-landing h2 { font: 700 clamp(1.4rem, 4.5vw, 1.9rem) / 1.15 var(--display); font-stretch: 80%; text-wrap: balance; }
.lp-lede { margin-top: var(--s-4); font-size: 1.0625rem; line-height: 1.5; color: var(--ink-2); max-width: 34em; }
.lp-sub { margin-top: var(--s-2); color: var(--ink-2); max-width: 36em; }
.lp-wait { margin-top: var(--s-6); max-width: 30rem; }
.lp-wait-row { display: flex; gap: var(--s-2); }
.lp-wait input[type=email] { flex: 1; min-width: 0; height: 48px; padding: 0 var(--s-4); border-radius: var(--r-m); border: 1px solid var(--line-strong); background: var(--surface); color: var(--ink); font-size: 1rem; }
.lp-wait input[type=email]:focus-visible { outline: 2px solid var(--brand); outline-offset: 1px; }
.lp-trap { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.lp-btn { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 var(--s-5); border-radius: var(--r-m); background: var(--brand); color: var(--brand-ink); font-weight: 600; white-space: nowrap; }
.lp-btn:active { opacity: .8; } .lp-btn[disabled] { opacity: .6; }
.lp-wait-note { margin-top: var(--s-2); font-size: var(--fs-sub); color: var(--ink-3); }
.lp-wait-note.ok { color: var(--good); font-weight: 500; } .lp-wait-note.ko { color: var(--bad); }
.lp-have { margin-top: var(--s-4); font-size: var(--fs-sub); color: var(--ink-3); }
.lp-sec { padding: var(--s-8) 0; } .lp-alt { background: var(--surface-2); }
.lp-3d { margin-top: var(--s-5); display: grid; place-items: center; }
.lp-3d-go { display: grid; gap: 4px; justify-items: center; padding: var(--s-4) var(--s-6); border-radius: var(--r-full); background: rgba(255,255,255,.1); color: #e8eef2; box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); font-weight: 600; }
.lp-3d-go small { font-weight: 400; opacity: .7; font-size: var(--fs-cap); }
.lp-3d.is3d .lp-3d-go { display: none; }
.lp-chips { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-3); }
.lp-chips button { height: 36px; padding: 0 var(--s-4); border-radius: var(--r-full); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line-strong); font-weight: 500; font-size: var(--fs-sub); }
.lp-chips button[aria-pressed="true"] { background: var(--brand); color: var(--brand-ink); box-shadow: none; }
.lp-cards { list-style: none; margin: var(--s-5) 0 0; padding: 0; display: grid; gap: var(--s-3); }
@media (min-width: 700px) { .lp-cards { grid-template-columns: repeat(3, 1fr); } }
.lp-cards li { display: grid; gap: var(--s-2); align-content: start; padding: var(--s-5); border-radius: var(--r-l); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
.lp-cards b { font: 700 1.0625rem / 1.2 var(--display); } .lp-cards span { color: var(--ink-2); }
.lp-steps { margin: var(--s-5) 0 0; padding: 0; list-style: none; counter-reset: s; display: grid; gap: var(--s-4); }
.lp-steps li { counter-increment: s; position: relative; padding-left: 44px; color: var(--ink-2); }
.lp-steps li::before { content: counter(s); position: absolute; left: 0; top: -2px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--brand-wash); color: var(--brand); font-weight: 700; }
.lp-steps b { color: var(--ink); }
.lp-end { text-align: center; } .lp-end .lp-sub { margin-inline: auto; margin-bottom: var(--s-5); }
.lp-foot { padding: var(--s-6) 0 calc(var(--s-8) + env(safe-area-inset-bottom)); color: var(--ink-3); font-size: var(--fs-sub); }
.lp-foot p + p { margin-top: var(--s-2); } .lp-credit { font-size: var(--fs-cap); }
/* scène 3D (même rendu que dans l'appli) */
.m3d { position: relative; width: 100%; height: 380px; border-radius: var(--r-l); overflow: hidden; background: radial-gradient(110% 80% at 50% 35%, #1d3a42 0%, #121a22 55%, #0b1016 100%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); }
.m3d.big { height: clamp(340px, 52vh, 460px); }
.m3d-stage { position: absolute; inset: 0; } .m3d-stage canvas { width: 100%; height: 100%; display: block; cursor: grab; touch-action: none; } .m3d-stage canvas:active { cursor: grabbing; }
.m3d-ui { position: absolute; left: 10px; bottom: 10px; display: flex; gap: 6px; } .m3d-ui button { height: 30px; padding: 0 12px; border-radius: var(--r-full); font-size: var(--fs-sub); font-weight: 600; background: rgba(255,255,255,.1); backdrop-filter: blur(8px); color: #e8eef2; box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
.m3d-ui button[data-reset] { width: 30px; padding: 0; font-size: 16px; line-height: 1; } .m3d-ui button[aria-pressed="true"] { background: rgba(53,232,214,.22); color: #7ff3e6; box-shadow: inset 0 0 0 1px rgba(53,232,214,.5); }
.m3d-label { position: absolute; top: 10px; left: 50%; transform: translate(-50%, -6px); padding: 6px 12px; border-radius: var(--r-full); font-size: var(--fs-sub); font-weight: 600; background: #f2f6f8; color: #10232a; opacity: 0; transition: opacity .2s, transform .2s; pointer-events: none; white-space: nowrap; } .m3d-label.on { opacity: 1; transform: translate(-50%, 0); } .m3d-label b { font-weight: 700; }
.m3d-hint { position: absolute; left: 50%; bottom: 52px; transform: translateX(-50%); max-width: 92%; padding: 6px 12px; border-radius: var(--r-full); font-size: var(--fs-cap); color: rgba(255,255,255,.85); background: rgba(10,16,22,.62); text-align: center; opacity: 0; transition: opacity .4s; pointer-events: none; } .m3d-hint.on { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .m3d-label, .m3d-hint { transition: none; } }
.lp-logo .lp-d { display: none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .lp-logo .lp-l { display: none; } :root:not([data-theme="light"]) .lp-logo .lp-d { display: block; } }
:root[data-theme="dark"] .lp-logo .lp-l { display: none; } :root[data-theme="dark"] .lp-logo .lp-d { display: block; }
