/* tulu · site vitrine · charte v1 (septembre 2026) */

:root{
  --tomate:#e84c30; --tomate-fonce:#c43a22; --papier:#f4f3eb; --papier-2:#f8f8f2; --encre:#292c27;
  --citron:#f0ed80; --lavande:#eadcf5; --vert:#dce9ca; --peche:#ffdbba; --rose:#f7d8c9; --ciel:#d9e7f5;
  --gris:#8a877b; --gris-fonce:#6e6b60; --trait:#e5dfd0; --trait-2:#ece8dc; --blanc:#fff;
  --sans:-apple-system,"SF Pro Text","SF Pro Display","Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  --r-btn:14px; --r-card:22px; --r-win:26px;
}
*{box-sizing:border-box}
html{color-scheme:light;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--encre);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:var(--tomate-fonce);text-decoration:none}
h1,h2,h3{margin:0;letter-spacing:-.03em;text-wrap:balance;font-weight:800;line-height:1.05}
h2{font-size:clamp(30px,4.6vw,48px);letter-spacing:-.04em}
h3{font-size:22px;letter-spacing:-.025em}
p{margin:0}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px}
.point{color:var(--tomate)}
.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:750;color:var(--gris);text-transform:uppercase;margin:0 0 12px}
.skip{position:absolute;left:-999px;top:0;background:var(--encre);color:#fff;padding:10px 14px;border-radius:0 0 12px 0;z-index:50}
.skip:focus{left:0}

/* ---------- avatars, étoiles ---------- */
.av{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;color:var(--encre);border:3px solid var(--blanc);box-shadow:0 0 0 1px rgba(0,0,0,.04);flex:none}
.av-1{background:var(--citron)} .av-2{background:var(--vert)} .av-3{background:var(--lavande)} .av-4{background:var(--peche)} .av-5{background:var(--ciel)}
.stars{color:var(--tomate);letter-spacing:1px;font-size:13px}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:20;transition:background .3s,box-shadow .3s,backdrop-filter .3s}
.nav.on{background:rgba(244,243,235,.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);box-shadow:0 1px 0 var(--trait)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px;height:72px}
.brand img{width:88px}
.nav-links{display:flex;gap:26px;font-size:14px;font-weight:600;color:var(--gris-fonce)}
.nav-links a{color:inherit;position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--tomate-fonce);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav-links a:hover::after{transform:scaleX(1)}
.pill{background:var(--tomate-fonce);color:#fff;border-radius:42px;padding:10px 18px;font-weight:700;font-size:14px;transition:transform .25s var(--ease),background .2s}
.pill:hover{background:var(--tomate);transform:translateY(-1px)}
@media(max-width:760px){.nav-links{display:none}.nav-in{height:64px}}

/* ---------- boutons ---------- */
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:28px}
.btn-store{display:inline-flex;align-items:center;gap:11px;background:var(--tomate-fonce);color:#fff;border-radius:var(--r-btn);padding:11px 20px 11px 16px;min-height:56px;line-height:1.05;transition:transform .25s var(--ease),background .2s,box-shadow .25s}
.btn-store svg{width:26px;height:26px;fill:currentColor;flex:none}
.btn-store small{display:block;font-size:11px;font-weight:500;opacity:.85;margin-bottom:2px}
.btn-store span{font-size:19px;font-weight:700;letter-spacing:-.02em}
.btn-store:hover{background:var(--tomate);transform:translateY(-2px);box-shadow:0 10px 26px rgba(196,58,34,.28)}
.btn-store.dark{background:var(--encre)}
.btn-store.dark:hover{background:#3a3e37;box-shadow:0 10px 26px rgba(41,44,39,.25)}
.btn-ghost{display:inline-flex;align-items:center;min-height:56px;padding:0 20px;border-radius:var(--r-btn);background:var(--blanc);border:1px solid #ded6c4;color:#5f6a51;font-weight:650;font-size:14px;transition:transform .25s var(--ease),border-color .2s}
.btn-ghost:hover{transform:translateY(-2px);border-color:#c9bfa8}

/* ---------- hero ---------- */
.hero{padding:40px 0 30px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:auto -20% -40% auto;width:60vw;height:60vw;max-width:760px;max-height:760px;border-radius:50%;background:radial-gradient(closest-side,rgba(240,237,128,.55),rgba(240,237,128,0));pointer-events:none}
.hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;min-height:calc(100vh - 72px);max-height:900px}
.display{font-size:clamp(44px,7.4vw,92px);letter-spacing:-.045em;line-height:.98;max-width:12ch}
.display .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.2em;margin-bottom:-.2em}
.display .w i{display:inline-block;font-style:normal;transform:translateY(110%);opacity:0;animation:wordUp .9s var(--ease) forwards;animation-delay:calc(.08s * var(--i))}
@keyframes wordUp{to{transform:none;opacity:1}}
.lead{font-size:clamp(17px,1.6vw,21px);color:var(--gris-fonce);max-width:48ch;margin-top:22px}
.hero-note{font-size:13px;color:var(--gris);margin-top:16px}

.hero-visual{position:relative;display:flex;justify-content:center}
.phone-stage{position:relative;width:min(330px,80vw);perspective:1200px}
.phone{border-radius:48px;background:#1d1e1b;padding:10px;box-shadow:0 30px 70px rgba(41,44,39,.28),0 4px 14px rgba(41,44,39,.12);transform:rotateY(-8deg) rotateX(4deg);transition:transform .6s var(--ease);will-change:transform}
.phone img{border-radius:40px;width:100%}
.chip{position:absolute;background:var(--blanc);border:1px solid var(--trait);border-radius:16px;padding:10px 14px;display:flex;align-items:center;gap:8px;box-shadow:0 12px 30px rgba(41,44,39,.14);font-size:13px;white-space:nowrap}
.chip b{font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:15px}
.chip small{color:var(--gris);font-size:12px}
.chip-a{left:-14%;top:16%}
.chip-b{right:-16%;top:44%}
.chip-c{left:-8%;bottom:16%;background:var(--citron);border-color:transparent}
.chip-ic.play{width:22px;height:22px;border-radius:50%;background:var(--tomate-fonce);position:relative;flex:none}
.chip-ic.play::after{content:"";position:absolute;left:8px;top:6px;border-left:8px solid #fff;border-top:5px solid transparent;border-bottom:5px solid transparent}
.heart{width:16px;height:16px;background:var(--tomate);clip-path:path("M8 14.5 1.6 8.2A3.8 3.8 0 0 1 7 2.6l1 1 1-1a3.8 3.8 0 0 1 5.4 5.6z");animation:beat 1.6s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}30%{transform:scale(1.22)}}
.float{animation:float 5s ease-in-out infinite;animation-delay:var(--f)}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media(max-width:900px){
  .hero{padding-top:20px}
  .hero-in{grid-template-columns:1fr;min-height:0;max-height:none;gap:30px}
  .hero-visual{margin-top:10px;padding:0 24px}
  .phone-stage{width:min(270px,66vw)}
  .phone{transform:none}
  .chip{padding:8px 12px;font-size:12px}
  .chip b{font-size:14px}
  .chip-a{left:-16%;top:14%} .chip-b{right:-14%;top:46%} .chip-c{left:-10%;bottom:14%}
  .display{max-width:none}
}

/* ---------- ticker ---------- */
.ticker{overflow:hidden;border-top:1px solid var(--trait);border-bottom:1px solid var(--trait);background:var(--papier-2);padding:14px 0;margin-top:20px}
.ticker-track{display:flex;gap:28px;width:max-content;animation:ticker 42s linear infinite;font-weight:750;letter-spacing:-.01em;font-size:15px;color:var(--gris-fonce)}
.ticker-track i{width:7px;height:7px;border-radius:50%;background:var(--tomate);align-self:center;flex:none}
@keyframes ticker{to{transform:translateX(-50%)}}
.ticker:hover .ticker-track{animation-play-state:paused}

/* ---------- sections ---------- */
.sec{padding:96px 0}
.sec-head{max-width:640px;margin-bottom:44px}
.sec-head .sub{color:var(--gris-fonce);font-size:18px;margin-top:14px;max-width:52ch}

/* ---------- étapes ---------- */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.step{border-radius:var(--r-card);padding:26px;display:flex;flex-direction:column;gap:14px;min-height:340px;position:relative;border:1px solid transparent}
.step-1{background:var(--citron)} .step-2{background:var(--blanc);border-color:var(--trait)} .step-3{background:var(--vert)}
.step .num{font-size:12px;font-weight:800;letter-spacing:1.5px;color:var(--gris-fonce)}
.step h3{margin-top:auto}
.step p{font-size:15px;color:#4d5344}
.chrono-demo{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.55);border-radius:18px;padding:14px 18px;align-self:flex-start}
.chrono-btn{width:38px;height:38px;border-radius:50%;background:var(--tomate-fonce);position:relative;box-shadow:0 0 0 0 rgba(196,58,34,.35);animation:pulse 2.2s infinite}
.chrono-btn::after{content:"";position:absolute;left:15px;top:11px;border-left:12px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(196,58,34,.35)}70%{box-shadow:0 0 0 14px rgba(196,58,34,0)}100%{box-shadow:0 0 0 0 rgba(196,58,34,0)}}
.chrono-time{font-size:34px;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.pages-demo{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-variant-numeric:tabular-nums}
.pages-demo .pg{background:var(--papier);border:1px solid var(--trait);border-radius:10px;padding:6px 10px;font-weight:600;font-size:14px;color:var(--gris-fonce)}
.pages-demo .pg.strong{color:var(--encre);border-color:#cfc8b3}
.pages-demo .arrow{color:var(--gris)}
.pages-demo em{flex-basis:100%;font-family:var(--serif);font-size:16px;color:#4d5344;margin-top:6px}
.feed-demo{display:flex;flex-direction:column;gap:8px}
.mini-post{display:flex;gap:10px;align-items:center;background:var(--blanc);border:1px solid var(--trait);border-radius:14px;padding:10px 12px;font-size:13px;line-height:1.3}
.mini-post small{color:var(--gris)}
.mini-post:nth-child(2){transform:translateX(14px)}
@media(max-width:820px){.steps{grid-template-columns:1fr}.step{min-height:0}}

/* ---------- manifeste ---------- */
.manif{padding:20px 0 60px}
.manif-in{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.manif-img{margin:0;border-radius:var(--r-win);overflow:hidden;aspect-ratio:4/3}
.manif-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.4s var(--ease)}
.manif-img.in img{transform:scale(1)}
.manif-txt p{color:var(--gris-fonce);font-size:17px;margin-top:14px;max-width:46ch}
.manif-txt h2{max-width:14ch}
.ticks{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-direction:column;gap:10px;font-weight:600;font-size:15px}
.ticks li{display:flex;align-items:center;gap:10px}
.ticks li::before{content:"";width:20px;height:20px;border-radius:50%;background:#344d38;flex:none;clip-path:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
@media(max-width:820px){.manif-in{grid-template-columns:1fr;gap:28px}}

/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(250px,auto);gap:16px}
.tile{border-radius:var(--r-card);padding:26px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;border:1px solid transparent;transition:transform .5s var(--ease)}
.tile:hover{transform:translateY(-4px)}
.tile h3{margin-top:auto}
.tile p{font-size:15px;color:#4d5344}
.tile-tall{grid-row:span 2}
.tile-wide{grid-column:span 2;flex-direction:row;align-items:center;gap:30px}
.tile-wide .tile-txt{flex:1}
.tile-wide h3{margin-top:0}
.t-vert{background:var(--vert)} .t-citron{background:var(--citron)} .t-blanc{background:var(--blanc);border-color:var(--trait)} .t-lavande{background:var(--lavande)} .t-peche{background:var(--peche)} .t-rose{background:var(--rose)}
.tile-tall .tile-txt{order:0}
.tile-tall .tile-txt h3{margin-top:0}
.tile-shot{width:78%;margin:22px auto -60px;border-radius:26px;border:8px solid #1d1e1b;box-shadow:0 20px 40px rgba(41,44,39,.22);transition:transform .6s var(--ease)}
.tile-tall:hover .tile-shot{transform:translateY(-10px)}
.scan-demo{position:relative;height:96px;background:rgba(255,255,255,.6);border-radius:16px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.barcode{display:flex;gap:4px;height:52px;align-items:stretch}
.barcode i{width:3px;background:var(--encre)}
.barcode i:nth-child(2n){width:6px}.barcode i:nth-child(3n){width:2px}.barcode i:nth-child(5n){width:8px}
.scan-line{position:absolute;left:12px;right:12px;height:2px;background:var(--tomate);box-shadow:0 0 10px var(--tomate);top:20%;animation:scan 2.4s ease-in-out infinite}
@keyframes scan{0%,100%{top:18%}50%{top:78%}}
.week-demo{display:flex;flex-direction:column;gap:12px}
.bars{display:flex;gap:7px;height:84px;align-items:flex-end}
.bars i{flex:1;background:var(--vert);border-radius:6px 6px 3px 3px;height:0;transition:height 1s var(--ease)}
.bars i:nth-child(6){background:#9fb87f}
.in .bars i{height:var(--h)}
.week-meta b{font-size:22px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.week-meta small{display:block;color:var(--gris);font-size:12px}
.story-demo{display:flex;justify-content:center}
.story-card{width:120px;height:150px;background:var(--citron);border-radius:22px;position:relative;box-shadow:0 12px 26px rgba(41,44,39,.14);transform:rotate(-4deg);transition:transform .6s var(--ease)}
.tile:hover .story-card{transform:rotate(0)}
.story-brand{position:absolute;top:10px;left:14px;color:var(--tomate);font-weight:800;font-size:13px;letter-spacing:-.03em}
.story-book{position:absolute;left:36px;top:38px;width:48px;height:66px;background:var(--rose);border-radius:4px;transform:rotate(3deg);box-shadow:0 6px 14px rgba(41,44,39,.18)}
.story-pill{position:absolute;right:10px;bottom:34px;background:var(--tomate-fonce);color:#fff;border-radius:20px;font-size:10px;font-weight:700;padding:3px 8px}
.story-sign{position:absolute;left:0;right:0;bottom:8px;text-align:center;font-size:9px;font-weight:700;color:var(--encre)}
.lock-demo{display:flex;justify-content:center;padding:14px 0}
.island{background:#111;color:#fff;border-radius:30px;padding:10px 18px;display:flex;align-items:center;gap:10px;font-weight:700;font-variant-numeric:tabular-nums;font-size:16px;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.isl-dot{width:10px;height:10px;border-radius:50%;background:var(--tomate);animation:beat 1.6s infinite}
.review-demo{flex:1;display:flex;justify-content:flex-end}
.review{display:flex;gap:12px;align-items:flex-start;background:var(--blanc);border:1px solid var(--trait);border-radius:18px;padding:14px 16px;font-size:14px;max-width:320px}
.review em{font-family:var(--serif);color:#4d5344}
@media(max-width:900px){
  .bento{grid-template-columns:1fr 1fr}
  .tile-wide{grid-column:span 2;flex-direction:column;align-items:flex-start}
  .review-demo{justify-content:flex-start}
}
@media(max-width:600px){
  .bento{grid-template-columns:1fr}
  .tile-tall,.tile-wide{grid-row:auto;grid-column:auto}
  .tile-shot{margin-bottom:-90px}
}

/* ---------- communauté ---------- */
.sec-comm{background:var(--papier-2);border-top:1px solid var(--trait);border-bottom:1px solid var(--trait)}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:40px}
.quote{margin:0;background:var(--blanc);border:1px solid var(--trait);border-radius:var(--r-card);padding:26px;display:flex;flex-direction:column;gap:18px;transition:transform .5s var(--ease)}
.quote:hover{transform:translateY(-4px)}
.quote p{font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.4;color:#4d5344}
.quote p::before{content:"« "} .quote p::after{content:" »"}
.quote footer{display:flex;align-items:center;gap:10px;margin-top:auto;font-size:14px}
.quote footer small{color:var(--gris);display:block;font-size:12px}
.quote footer b{display:block}
.quote footer > b{display:flex;flex-direction:column}
.live{background:var(--blanc);border:1px solid var(--trait);border-radius:var(--r-card);padding:22px 22px 10px;max-width:560px;margin:0 auto 40px}
.live-list{display:flex;flex-direction:column;gap:0}
.live-post{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--trait-2);font-size:14px;line-height:1.35;opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.live.in .live-post{opacity:1;transform:none}
.live.in .live-post:nth-child(1){transition-delay:.1s}.live.in .live-post:nth-child(2){transition-delay:.35s}.live.in .live-post:nth-child(3){transition-delay:.6s}.live.in .live-post:nth-child(4){transition-delay:.85s}
.live-post i{font-family:var(--serif);color:#4d5344}
.live-post small{color:var(--gris);font-size:12px}
.live-post small b{color:var(--encre)}
.trust{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.trust li{border-top:2px solid var(--encre);padding-top:12px}
.trust b{font-size:18px;letter-spacing:-.02em;display:block}
.trust small{color:var(--gris-fonce);font-size:13px}
@media(max-width:820px){.quotes{grid-template-columns:1fr}.trust{grid-template-columns:1fr 1fr}}

/* ---------- final ---------- */
.final{background:var(--citron);border-radius:32px;padding:clamp(40px,7vw,80px) 24px;text-align:center;position:relative;overflow:hidden}
.final::before,.final::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.35);pointer-events:none}
.final::before{width:380px;height:380px;left:-120px;top:-160px}
.final::after{width:280px;height:280px;right:-90px;bottom:-140px}
.final > *{position:relative}
.final-top{font-size:clamp(22px,3vw,34px);font-weight:800;letter-spacing:-.03em;color:var(--gris-fonce)}
.final-title{font-size:clamp(40px,7vw,84px);letter-spacing:-.045em;line-height:1;color:var(--tomate-fonce)}
.final-sub{color:#4d5344;font-size:17px;max-width:44ch;margin:18px auto 0}
.final .cta-row{justify-content:center}
.final-note{font-size:13px;color:var(--gris-fonce);margin-top:16px}
.final-icon{margin:28px auto 0;border-radius:18px;box-shadow:0 10px 24px rgba(41,44,39,.16)}

/* ---------- pied ---------- */
.foot{padding:40px 0 56px}
.foot-in{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;color:var(--gris-fonce);font-size:14px}
.foot nav{display:flex;gap:18px;margin-left:auto}
.foot small{flex-basis:100%;color:var(--gris);font-size:12px}
@media(max-width:600px){.foot nav{margin-left:0;flex-wrap:wrap}}

/* ---------- apparitions ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .display .w i{animation:none;transform:none;opacity:1}
  .float,.ticker-track,.scan-line,.chrono-btn,.heart,.isl-dot{animation:none}
  .phone{transform:none}
  .live-post{opacity:1;transform:none}
  .in .bars i{transition:none}
  html{scroll-behavior:auto}
}
