/* VESTIGE — site vitrine (vestige-app.fr). Statique, sans dépendance.
   Source : docs/maquettes/Site.dc.html. Corrections et choix : docs/SITE.md. */

/* ---------- Polices (auto-hébergées, licence OFL : fonts/OFL-*.txt) ---------- */
@font-face{font-family:'Host Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/host-grotesk-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Host Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/host-grotesk-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Host Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/host-grotesk-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Host Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/host-grotesk-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Sofia Sans Extra Condensed';font-style:normal;font-weight:800 900;font-display:swap;src:url(../fonts/sofia-sans-extra-condensed-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Spline Sans Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/spline-sans-mono-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Spline Sans Mono';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/spline-sans-mono-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Big Shoulders Stencil';font-style:normal;font-weight:900;font-display:swap;src:url(../fonts/big-shoulders-stencil-latin-900-normal.woff2) format('woff2')}

/* ---------- Jetons ---------- */
:root{
  color-scheme:dark;
  --bg:#0B0A09; --bg-deep:#070606; --card:#12110F; --field:#161411; --btn-dark:#1B1916;
  --text:#ECE6DA; --body:#C9C0B3; --soft:#A9A196; --mute:#8F877C; --cream:#F4EFE6;
  --acc:#E8A23A; --acc-hi:#F3BE6A; --ok:#8FA36A; --tag:#B8AE9F;
  --line:rgba(236,226,210,.08); --line-2:rgba(236,226,210,.1); --line-3:rgba(236,226,210,.16);
  --f-body:'Host Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-cond:'Sofia Sans Extra Condensed','Arial Narrow',sans-serif;
  --f-mono:'Spline Sans Mono',ui-monospace,monospace;
  --f-stencil:'Big Shoulders Stencil','Sofia Sans Extra Condensed',sans-serif;
  --gut:clamp(20px,4vw,40px);
  --sec:clamp(56px,7vw,104px);
  --tear:polygon(0 0,100% 0,97% 25%,100% 50%,97% 75%,100% 100%,0 100%,3% 75%,0 50%,3% 25%);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-family:var(--f-body);font-size:16px;line-height:1.5;min-height:100vh;overflow-x:clip;position:relative}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:var(--acc);text-decoration:none}
a:hover{color:var(--acc-hi)}
p{margin:0}
h1,h2,h3{margin:0;font-weight:800}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:60;padding:10px 14px;border-radius:10px;background:var(--acc);color:var(--bg);font-weight:600}
.skip:focus{top:12px;color:var(--bg)}
.wrap{max-width:1240px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
.ico{width:1em;height:1em;flex:none;fill:currentColor}

/* Grain animé (au-dessus de tout, sans interaction). */
body::after{content:"";position:fixed;inset:-40px;z-index:40;pointer-events:none;background:url(../tex/grain.svg) 0 0/220px;opacity:.07;mix-blend-mode:overlay;animation:stGrain 1.1s steps(5) infinite}
@keyframes stGrain{0%{transform:translate(0,0)}25%{transform:translate(-12px,8px)}50%{transform:translate(10px,-14px)}75%{transform:translate(-6px,-4px)}100%{transform:translate(0,0)}}
@keyframes stRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
main{animation:stRise .5s ease both}

/* ---------- Logo (Logo.dc.html, variante « faisceau ») ---------- */
.logo{--lgA:var(--acc,#E8A23A);--lgB:#ECE6DA;--lgL:#F6DDAE;--lgW:#ECE6DA;--lgG:#8FA36A;--lgH:#0B0A09;display:inline-flex;align-items:center;line-height:0;vertical-align:middle}
.logo__sym{position:relative;flex:none;display:grid;place-items:center}
.logo__word{display:flex;flex-direction:column;align-items:center}
.logo__name{font:900 25px/.8 var(--f-stencil);letter-spacing:.06em;margin-right:-.06em;color:var(--lgW,#ECE6DA);white-space:nowrap}
.logo__tag{font:500 9px/1 var(--f-mono);letter-spacing:.34em;margin-right:-.34em;color:#B8AE9F;text-transform:uppercase;white-space:nowrap}
.logo--32{gap:10px}.logo--32 .logo__sym,.logo--32 .logo__sym svg{width:32px;height:32px}.logo--32 .logo__name{font-size:25px}
.logo--30{gap:9px}.logo--30 .logo__sym,.logo--30 .logo__sym svg{width:30px;height:30px}.logo--30 .logo__name{font-size:23px}
.logo--stack{flex-direction:column;gap:19px}.logo--stack .logo__sym,.logo--stack .logo__sym svg{width:96px;height:96px}.logo--stack .logo__word{gap:15px}.logo--stack .logo__name{font-size:54px}

/* ---------- En-tête ---------- */
.top{position:sticky;top:0;z-index:30;background:rgba(11,10,9,.82);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid var(--line)}
.top__in{height:72px;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;line-height:0;border-radius:6px}
.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav__links{display:flex;align-items:center;gap:4px}
.nav__links a{height:40px;padding:0 12px;border-radius:9px;display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--soft);transition:color .2s,background-color .2s}
.nav__links a:hover,.nav__links a[aria-current="page"]{color:var(--text)}
.nav__links a:hover{background:rgba(236,226,210,.05)}
.btn-dl{margin-left:8px;height:40px;padding:0 16px;border-radius:10px;background:var(--acc);color:var(--bg);display:flex;align-items:center;gap:8px;font:800 17px var(--f-cond);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.btn-dl:hover{background:var(--acc-hi);color:var(--bg)}
.btn-dl .ico{font-size:17px}
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;width:44px;height:40px;border-radius:10px;border:1px solid var(--line-3);display:grid;place-items:center;color:var(--text)}
.menu summary::-webkit-details-marker{display:none}
.menu summary .ico{font-size:20px}
.menu .ico-close{display:none}
.menu[open] .ico-open{display:none}.menu[open] .ico-close{display:block}
.menu__panel{position:absolute;right:0;top:50px;min-width:220px;padding:8px;border-radius:14px;background:#14120F;border:1px solid var(--line-2);box-shadow:0 18px 40px rgba(0,0,0,.5)}
.menu__panel a{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:9px;color:var(--text);font-weight:500;font-size:15px}
.menu__panel a:hover{background:rgba(236,226,210,.05);color:var(--text)}
@media (max-width:820px){
  .nav__links{display:none}
  .menu{display:block}
  .top__in{gap:12px}
}
@media (max-width:400px){.top .btn-dl{display:none}}

/* ---------- Typo commune ---------- */
.kicker{display:flex;align-items:center;gap:12px;font:500 11px var(--f-mono);letter-spacing:.16em;color:var(--acc);text-transform:uppercase;flex-wrap:wrap}
.kicker__rule{width:32px;height:1px;background:rgba(232,162,58,.4)}
.kicker__soft{color:var(--mute)}
.sec-head{display:flex;align-items:baseline;gap:16px}
.sec-num{font:500 12px var(--f-mono);letter-spacing:.14em;color:var(--acc)}
.h2{font:800 clamp(40px,5vw,64px)/.9 var(--f-cond);text-transform:uppercase}
.lead{font-size:16.5px;line-height:1.6;color:var(--body);text-wrap:pretty}
.mono-label{font:500 11px var(--f-mono);letter-spacing:.14em;color:var(--mute);text-transform:uppercase}

/* ---------- Boutons ---------- */
.store-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.store{height:56px;padding:0 18px 0 14px;border-radius:14px;display:flex;align-items:center;gap:11px;cursor:default}
.store .ico{font-size:26px}
.store--play .ico{font-size:24px}
.store__txt{display:flex;flex-direction:column;line-height:1.1;text-align:left}
.store__small{font-size:10.5px;font-weight:500;letter-spacing:.02em}
.store__big{font-size:17px;font-weight:700}
.store--apple{background:var(--cream);color:var(--bg)}
.store--play{background:var(--btn-dark);border:1px solid rgba(236,226,210,.14);color:var(--text)}
.store[aria-disabled="true"]{opacity:.62}
.soon{font:500 10.5px var(--f-mono);letter-spacing:.1em;color:var(--mute);text-transform:uppercase}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px}
.btn-ghost{height:48px;padding:0 18px;border:1px solid var(--line-3);font-weight:600;font-size:15px;color:var(--text)}
.btn-ghost:hover{border-color:var(--acc);color:var(--text)}
.btn-ghost .ico{font-size:16px}
.btn-amber{height:54px;padding:0 22px;border-radius:14px;background:var(--acc);color:var(--bg);gap:10px;font:800 19px var(--f-cond);text-transform:uppercase;letter-spacing:.05em}
.btn-amber:hover{background:var(--acc-hi);color:var(--bg)}
.btn-amber .ico{font-size:18px}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden}
.hero__bg{position:absolute;inset:0;background:radial-gradient(ellipse 60% 70% at 70% 40%,#1d1813 0%,#0B0A09 65%)}
.tex-concrete{position:absolute;inset:0;background:url(../tex/concrete.svg) 0 0/420px;mix-blend-mode:screen;pointer-events:none}
.hero .tex-concrete{opacity:.14}
.hero__in{position:relative;padding-top:clamp(56px,8vw,112px);padding-bottom:clamp(48px,6vw,88px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:48px;align-items:center}
.hero h1{margin-top:22px;font:800 clamp(64px,8.5vw,124px)/.86 var(--f-cond);text-transform:uppercase;text-wrap:balance}
.hero__p{margin-top:26px;max-width:560px;font-size:clamp(16px,1.4vw,19px);line-height:1.55;color:var(--body);text-wrap:pretty}
.hero .store-row{margin-top:34px}
.hero .soon{margin-top:14px}
.facts{margin-top:40px;display:flex;flex-wrap:wrap;gap:28px 40px}
.fact__n{font:800 40px/1 var(--f-cond);text-transform:uppercase}
.facts li:first-child{flex-basis:100%}
.fact__l{margin-top:6px;max-width:210px;font:500 10px/1.5 var(--f-mono);letter-spacing:.14em;color:var(--mute);text-transform:uppercase}
.hero__phone{display:flex;justify-content:center;align-items:center;position:relative;min-height:560px}
.hero__glow{position:absolute;left:50%;top:50%;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;background:radial-gradient(circle,rgba(232,162,58,.16),transparent 62%);pointer-events:none}
.hero__phone img{position:relative;width:284px;transform:rotate(-3deg)}

/* ---------- 01 · L’app ---------- */
.sec{padding-top:var(--sec)}
.app__p{margin-top:16px;max-width:720px}
.cards3{margin-top:44px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}
.card{border-radius:20px;background:var(--card);border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column}
.card__top{padding:26px 26px 0}
.card__ic{width:44px;height:44px;border-radius:12px;border:1px solid rgba(232,162,58,.4);display:grid;place-items:center;color:var(--acc)}
.card__ic .ico{font-size:22px}
.card h3{margin-top:18px;font:800 30px/.95 var(--f-cond);text-transform:uppercase}
.card p{margin-top:10px;font-size:15px;line-height:1.55;color:var(--body);text-wrap:pretty}
.card__shot{margin-top:auto;height:330px;position:relative;overflow:hidden}
.card__shot img{position:absolute;left:50%;top:28px;width:209px;margin-left:-105px}
.card__shot::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:linear-gradient(180deg,rgba(18,17,15,0),#12110F);pointer-events:none}

/* ---------- 02 · La fiche ---------- */
.fiche{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:48px;align-items:center}
.fiche__photo{position:relative;height:clamp(380px,46vw,560px);border-radius:24px;overflow:hidden;background:#1a1714}
.fiche__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fiche__tags{position:absolute;left:24px;bottom:24px;right:24px;display:flex;flex-wrap:wrap;gap:8px}
.tag-tear{height:24px;padding:0 11px;display:flex;align-items:center;gap:6px;background:var(--acc);color:var(--bg);font:600 10px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;transform:rotate(-2deg);clip-path:var(--tear)}
.tag-tear .ico{font-size:13px}
.tag-paper{height:24px;padding:0 10px;display:flex;align-items:center;background:rgba(230,221,203,.88);color:#1a1714;font:600 10px var(--f-mono);letter-spacing:.1em;transform:rotate(1.5deg)}
.fiche__p{margin-top:18px}
.rows{margin-top:26px;display:flex;flex-direction:column}
.row{display:flex;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.row__n{font:500 11px/1.6 var(--f-mono);letter-spacing:.1em;color:var(--acc);width:28px;flex:none}
.row__t{font:800 21px/1 var(--f-cond);text-transform:uppercase}
.row__d{margin-top:5px;font-size:14.5px;line-height:1.5;color:var(--soft)}

/* ---------- Le code ---------- */
.code{margin-top:var(--sec);position:relative;overflow:hidden;background:var(--bg-deep)}
.code .tex-concrete{opacity:.3}
.code__in{position:relative;padding-top:var(--sec);padding-bottom:var(--sec);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:48px}
.doc-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font:500 10px var(--f-mono);letter-spacing:.12em;color:var(--mute);text-transform:uppercase;padding-bottom:10px;border-bottom:1px dashed var(--line-3)}
.code .doc-head{max-width:420px}
.code h2{margin-top:18px;font:800 clamp(48px,6vw,80px)/.86 var(--f-cond);text-transform:uppercase}
.acc{color:var(--acc)}
.code__p{margin-top:18px;max-width:460px}
.code .btn-ghost{margin-top:26px}
.rules{position:relative;display:flex;flex-direction:column;gap:10px}
.rule{display:flex;gap:16px;padding:16px 18px;border-radius:14px;background:rgba(23,21,18,.8);border:1px solid var(--line-2)}
.rule__n{font:800 32px/1 var(--f-cond);color:var(--acc);width:34px;flex:none}
.rule__t{font:800 22px/1.05 var(--f-cond);text-transform:uppercase}
.rule__d{margin-top:6px;font-size:14px;line-height:1.5;color:var(--soft)}
.stamp{padding:10px 16px;border:3px solid var(--ok);border-radius:8px;color:var(--ok);font:900 30px/1 var(--f-cond);letter-spacing:.08em;text-transform:uppercase;background:rgba(11,10,9,.6);-webkit-mask-image:url(../tex/stamp.svg);mask-image:url(../tex/stamp.svg);-webkit-mask-size:180px;mask-size:180px;pointer-events:none}
.rules-wrap{position:relative}
.rules-wrap .stamp{position:absolute;right:-6px;top:-18px;transform:rotate(-7deg)}

/* ---------- 03 · Tarifs ---------- */
.tarifs__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px}
.tarifs__p{margin-top:14px;max-width:600px}
.bill{position:relative;display:flex;padding:4px;margin:0;border-radius:12px;background:var(--field);border:1px solid var(--line);width:300px;max-width:100%;flex:none;min-width:0}
.bill legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.bill input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.bill__knob{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:9px;background:#2a2620;transform:translateX(100%);transition:transform .35s cubic-bezier(.3,.8,.2,1)}
.bill label{position:relative;flex:1;height:38px;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font-weight:600;font-size:14px;color:var(--mute);border-radius:9px;white-space:nowrap}
.bill input:checked + label{color:var(--text)}
.bill input:focus-visible + label{outline:2px solid var(--acc);outline-offset:2px}
.bill__save{font:600 9.5px var(--f-mono);letter-spacing:.06em;color:var(--bg);background:var(--ok);padding:3px 5px;border-radius:4px}
.tarifs:has(#bill-m:checked) .bill__knob{transform:none}
.pm{display:none}
.tarifs:has(#bill-m:checked) .py{display:none}
.tarifs:has(#bill-m:checked) .pm{display:inline}
.plans{margin-top:40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:18px;align-items:stretch}
.plan{position:relative;padding:26px 26px 24px;border-radius:20px;border:1.5px solid var(--line-2);background:var(--card);display:flex;flex-direction:column}
.plan--hi{border-color:var(--acc);background:linear-gradient(180deg,rgba(232,162,58,.12),#12110F 60%)}
.plan__tag{position:absolute;top:-12px;right:20px;height:24px;padding:0 12px;display:flex;align-items:center;background:var(--acc);color:var(--bg);font:600 10px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;transform:rotate(2deg);clip-path:var(--tear)}
.plan h3{font:800 32px/1 var(--f-cond);text-transform:uppercase}
.plan__price{margin-top:14px;display:flex;align-items:baseline;gap:4px}
.plan__amount{font:800 52px/1 var(--f-cond)}
.plan__per{font:500 12px var(--f-mono);color:var(--soft)}
.plan__sub{margin-top:6px;font:500 10.5px var(--f-mono);letter-spacing:.08em;color:var(--mute);text-transform:uppercase;min-height:16px}
.feats{margin-top:20px;padding-top:18px;border-top:1px dashed rgba(236,226,210,.12);display:flex;flex-direction:column;gap:10px;flex:1}
.feat{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.4;color:var(--text)}
.feat .ico{font-size:16px;margin-top:2px;color:var(--ok)}
.feat--no{color:var(--mute)}
.feat--no .ico{color:#5c564e}
.plan__cta{margin-top:24px;height:50px;border-radius:13px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(236,226,210,.18);color:var(--text);font:800 18px var(--f-cond);text-transform:uppercase;letter-spacing:.05em}
.plan__cta:hover{border-color:var(--acc);color:var(--text)}
.plan--hi .plan__cta{background:var(--acc);border-color:var(--acc);color:var(--bg)}
.plan--hi .plan__cta:hover{background:var(--acc-hi);color:var(--bg)}
.fine{margin-top:16px;font-size:12.5px;line-height:1.55;color:var(--mute)}

/* ---------- Propriétaires ---------- */
.owners{margin-top:var(--sec)}
.owners__box{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:32px;padding:clamp(28px,4vw,48px);border-radius:24px;background:var(--card);border:1px solid var(--line);align-items:center}
.owners h2{margin-top:12px;font:800 clamp(34px,4vw,52px)/.92 var(--f-cond);text-transform:uppercase;text-wrap:balance}
.owners__p{margin-top:14px;font-size:15.5px;line-height:1.6;color:var(--body);text-wrap:pretty}
.owners__act{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.owners__mail{font:500 11px/1.6 var(--f-mono);color:var(--mute);letter-spacing:.04em;overflow-wrap:anywhere}

/* ---------- 04 · FAQ ---------- */
.faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:48px;align-items:start}
.faq__p{margin-top:16px;font-size:15.5px;line-height:1.6;color:var(--body)}
.qa{border-top:1px solid var(--line-2)}
.qa summary{list-style:none;cursor:pointer;padding:18px 0;display:flex;justify-content:space-between;gap:16px;align-items:center;border-radius:6px}
.qa summary::-webkit-details-marker{display:none}
.qa__q{font:800 22px/1.05 var(--f-cond);text-transform:uppercase}
.qa summary .ico{font-size:18px;color:var(--acc)}
.qa .ico-minus{display:none}
.qa[open] .ico-plus{display:none}.qa[open] .ico-minus{display:block}
.qa__a{padding-bottom:18px;margin-top:-8px;font-size:15px;line-height:1.6;color:var(--body);text-wrap:pretty;animation:stRise .3s both}

/* ---------- Télécharger ---------- */
.dl{padding-bottom:var(--sec);margin-top:var(--sec)}
.dl__box{position:relative;overflow:hidden;border-radius:28px;padding:clamp(40px,6vw,80px) clamp(24px,5vw,64px);text-align:center;background:radial-gradient(ellipse 70% 80% at 50% 100%,#2a241d 0%,#0e0c0a 70%);border:1px solid var(--line)}
.dl .tex-concrete{opacity:.5}
.dl__logo{position:relative;display:flex;justify-content:center}
.dl h2{position:relative;margin-top:28px;font:800 clamp(40px,5vw,64px)/.9 var(--f-cond);text-transform:uppercase;text-wrap:balance}
.dl__p{position:relative;margin:16px auto 0;max-width:560px;font-size:16px;line-height:1.6;color:var(--body)}
.dl .store-row{position:relative;margin-top:30px;justify-content:center}
.dl .soon{position:relative;margin-top:16px}
.dl__plat{position:relative;margin-top:8px;font:500 10.5px var(--f-mono);letter-spacing:.1em;color:var(--mute);text-transform:uppercase}

/* ---------- Pied de page ---------- */
.foot{border-top:1px solid var(--line);background:var(--bg-deep)}
.foot__in{padding-top:48px;padding-bottom:40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:36px}
.foot__tagline{margin-top:16px;max-width:300px;font-size:14px;line-height:1.6;color:var(--soft)}
.foot h2{font:500 10px var(--f-mono);letter-spacing:.14em;color:var(--mute);text-transform:uppercase}
.foot ul{margin-top:14px;display:flex;flex-direction:column;gap:9px}
.foot ul a{font-size:14.5px;color:var(--body)}
.foot ul a:hover{color:var(--text)}
.foot__bar{padding-bottom:36px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font:500 11px var(--f-mono);letter-spacing:.06em;color:var(--mute)}

/* ---------- Pages simples (code, partage, 404) ---------- */
.page{max-width:860px;margin:0 auto;padding:clamp(48px,6vw,88px) var(--gut) clamp(56px,7vw,104px)}
.page h1{margin-top:22px;font:800 clamp(56px,8vw,104px)/.86 var(--f-cond);text-transform:uppercase;text-wrap:balance}
.page__p{margin-top:22px;font-size:17px;line-height:1.6;color:var(--body);text-wrap:pretty}
.rules--full{margin-top:40px;gap:12px}
.rules--full .rule{gap:20px;padding:22px 24px;border-radius:16px;background:var(--card)}
.rules--full .rule__n{font-size:44px;width:48px}
.rules--full .rule__t{font-size:28px;line-height:1}
.rules--full .rule__d{margin-top:10px;font-size:15.5px;line-height:1.6;color:var(--body)}
.note{margin-top:36px;padding:22px 24px;border-radius:16px;border:1px dashed rgba(236,226,210,.18);font-size:15px;line-height:1.6;color:var(--body)}
.note strong{color:var(--text)}
.center{text-align:center}
.solo{min-height:calc(100vh - 73px);display:flex;align-items:center}
.solo .page{width:100%}
.solo__logo{display:flex;justify-content:center}
.solo h1{margin-top:32px;font-size:clamp(48px,7vw,88px)}
.solo .page__p{max-width:560px;margin-left:auto;margin-right:auto}
.solo .store-row{margin-top:30px;justify-content:center}
.solo .soon{margin-top:14px}
.solo__back{margin-top:30px}
.solo .stamp{display:inline-block;transform:rotate(-7deg)}

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- Petits écrans ---------- */
@media (max-width:480px){
  .hero__phone{min-height:0;padding:12px 0}
  .hero__glow{width:360px;height:360px;margin:-180px 0 0 -180px}
  .rules-wrap .stamp{right:4px;top:-22px;font-size:24px}
  .logo--stack .logo__sym,.logo--stack .logo__sym svg{width:80px;height:80px}
  .logo--stack .logo__name{font-size:46px}
}
@media (max-width:480px){.fact__l{max-width:140px}}
.solo .kicker{justify-content:center;margin-top:28px}
.solo .kicker + h1{margin-top:16px}
