@font-face{font-family:"Fraunces";src:url(/fonts/fraunces-latin-900-normal.woff2) format("woff2");font-weight:900;font-display:swap}
@font-face{font-family:"Nunito";src:url(/fonts/nunito-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Nunito";src:url(/fonts/nunito-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}

:root{
  --cream:#FFF5E4;--cream2:#FBE7CB;--paper:#FFFBF4;
  --terra:#E4572E;--terra-d:#BF3F19;--terra-l:#F6A27F;
  --sauge:#8DB38B;--sauge-d:#4E7D57;--sun:#FFC83D;--sun-d:#E0A20F;
  --ink:#2A1A12;--mute:#6B5546;--line:#EAD6B8;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --round:"Nunito",ui-rounded,system-ui,-apple-system,"Segoe UI",sans-serif;
  --st:env(safe-area-inset-top);--sb:env(safe-area-inset-bottom);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:600 18px/1.45 var(--round);overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:var(--serif);font-weight:900;margin:0;letter-spacing:-.02em}
a{color:var(--terra-d)}
button{font:inherit;color:inherit}
[hidden]{display:none!important}
body:not([data-step=home]) .how,body:not([data-step=home]) .ideas,body:not([data-step=home]) .faq{display:none}

.demo{background:var(--ink);color:var(--cream);font-size:13px;text-align:center;padding:5px 16px;padding-top:calc(5px + var(--st))}

/* En-tête */
.top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;max-width:1200px;margin:0 auto;min-height:64px}
.logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font:800 16px/1 var(--round);letter-spacing:-.01em}
.logo svg{flex:none;transform:rotate(-6deg)}
.logo span{white-space:nowrap}
@media (max-width:440px){.has-cred .logo{font-size:14px;gap:7px}.has-cred .logo svg{width:32px;height:32px}.has-cred .credits,.has-cred .acc{padding:0 12px;font-size:14px}.has-cred .acc .lg{display:none}.has-cred .acc .sm{display:inline}}
.acc .sm{display:none}
.top-r{display:flex;gap:8px;align-items:center}
.credits,.acc{min-height:48px;border-radius:999px;padding:0 16px;font:800 15px/1 var(--round);cursor:pointer;white-space:nowrap}
.credits{background:var(--sauge);color:var(--ink);border:0}
.acc{background:var(--paper);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink)}
.acc:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}

main{max-width:1200px;margin:0 auto;padding:0 16px}

/* Boutons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 22px;border:0;border-radius:999px;background:var(--terra);color:#fff;font:800 18px/1.15 var(--round);text-decoration:none;cursor:pointer;text-align:center;box-shadow:0 5px 0 var(--terra-d);transition:transform .1s,box-shadow .1s}
.btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--terra-d)}
.btn.big{width:100%;min-height:66px;font-size:21px;padding:8px 22px}
.btn.sauge{background:var(--sauge);color:var(--ink);box-shadow:0 5px 0 var(--sauge-d)}
.btn.sun{background:var(--sun);color:var(--ink);box-shadow:0 5px 0 var(--sun-d)}
.btn.ghost{background:var(--paper);color:var(--ink);box-shadow:0 0 0 2px var(--line) inset;min-height:52px;font-size:17px}
.btn.outline{background:var(--paper);color:var(--terra-d);box-shadow:0 0 0 3px var(--terra) inset}
.btn.danger{background:#B3261E;box-shadow:0 5px 0 #7d1a15}
.btn input,.link input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.btn[disabled]{opacity:.6;cursor:wait}
.pulse::after{content:"";position:absolute;inset:-3px;border-radius:inherit;border:3px solid var(--terra);pointer-events:none;animation:ring 2.2s ease-out infinite}
@keyframes ring{0%{opacity:.8;transform:scale(1,1)}70%,100%{opacity:0;transform:scale(1.03,1.2)}}
.btn:focus-visible,.acc:focus-visible,.preset:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.btn:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:3px}

/* Accueil */
.home{display:grid;gap:14px;padding:2px 0 34px}
h1{font-size:clamp(48px,14.5vw,128px);line-height:.92;letter-spacing:-.035em}
h1 span{display:block;white-space:nowrap}
h1 .hl{position:relative;width:max-content;z-index:0}
h1 .hl::before{content:"";position:absolute;z-index:-1;left:-.08em;right:-.1em;top:.2em;bottom:.02em;background:var(--sun);border-radius:.3em .5em .35em .45em;transform:rotate(-2deg)}
h1 .l3{color:var(--terra)}

.ba{position:relative;margin:0;border-radius:28px;overflow:hidden;aspect-ratio:400/270;background:var(--cream2);box-shadow:0 0 0 3px var(--ink),6px 8px 0 var(--sauge);max-height:40dvh;width:100%;justify-self:center}
.ba svg{display:block;width:100%;height:100%}
.stk{position:absolute;top:10px;padding:5px 12px;border-radius:999px;font:800 15px/1.1 var(--round);border:2px solid var(--ink);pointer-events:none;z-index:2}
.stk-a{left:10px;background:var(--paper);transform:rotate(-4deg)}
.stk-b{right:10px;background:var(--sun);transform:rotate(4deg)}
.tag{position:absolute;left:10px;bottom:10px;background:var(--ink);color:var(--cream);font:800 12px/1 var(--round);padding:6px 10px;border-radius:999px;letter-spacing:.04em;text-transform:uppercase;pointer-events:none}
.cmp-h{position:absolute;top:0;bottom:0;left:50%;width:4px;margin-left:-2px;background:var(--paper);pointer-events:none;z-index:1}
.cmp-h i,.cmp-bar i{position:absolute;top:50%;left:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:var(--terra);border:3px solid var(--paper);box-shadow:0 2px 0 rgba(42,26,18,.35)}
.cmp-h i::before,.cmp-h i::after,.cmp-bar i::before,.cmp-bar i::after{content:"";position:absolute;top:50%;width:0;height:0;margin-top:-6px;border:6px solid transparent}
.cmp-h i::before,.cmp-bar i::before{left:4px;border-right-color:#fff}
.cmp-h i::after,.cmp-bar i::after{right:4px;border-left-color:#fff}
.cmp-in{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:3;touch-action:pan-y}

.cta{display:grid;gap:8px}
.legal-s{margin:0;font-size:13px;color:var(--mute);line-height:1.35;text-align:center;font-weight:600}

/* Choix */
.choose{padding:6px 0 120px}
.mine{display:flex;align-items:center;gap:14px;background:var(--paper);border-radius:22px;padding:10px;box-shadow:0 0 0 2px var(--line) inset;margin-bottom:20px}
.mine img{width:96px;height:72px;object-fit:cover;border-radius:14px;flex:none}
.mine-t{margin:0;font:900 24px/1.1 var(--serif)}
.link{position:relative;display:inline-flex;align-items:center;min-height:48px;color:var(--terra-d);text-decoration:underline;cursor:pointer;font-weight:800}
.big-h{font-size:clamp(36px,10vw,72px);line-height:.98;margin-bottom:16px}
.presets{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.preset{position:relative;padding:0;border:0;border-radius:20px;overflow:hidden;background:var(--paper);cursor:pointer;text-align:left;box-shadow:0 0 0 2px var(--line);transition:transform .12s}
.preset img{width:100%;aspect-ratio:4/3;object-fit:cover}
.preset span{display:block;padding:9px 12px 11px;font:800 17px/1.2 var(--round)}
.preset[aria-checked=true]{box-shadow:0 0 0 4px var(--terra);transform:rotate(-1deg)}
.preset[aria-checked=true] span{background:var(--terra);color:#fff}
.free{display:block;margin:24px 0 8px;font:900 24px/1.15 var(--serif)}
textarea,input[type=email],input[type=password],input[type=text]{width:100%;font:600 17px/1.4 var(--round);color:var(--ink);background:var(--paper);border:2px solid var(--line);border-radius:18px;padding:13px 16px;min-height:52px}
textarea{resize:vertical}
textarea:focus,input:focus{outline:none;border-color:var(--terra)}
input.bad{border-color:#B3261E}
.go{position:fixed;left:0;right:0;bottom:0;z-index:20;padding:12px 16px calc(14px + var(--sb));background:linear-gradient(to top,var(--cream) 72%,rgba(255,245,228,0))}
.go .btn{max-width:640px;margin:0 auto;display:flex}

/* Attente */
.wait{padding:10px 0 40px;text-align:center}
.wait-pic{position:relative;max-width:520px;margin:0 auto;border-radius:28px;overflow:hidden;aspect-ratio:4/3;background:var(--cream2);box-shadow:0 0 0 3px var(--ink),6px 8px 0 var(--terra)}
.wait-pic img{width:100%;height:100%;object-fit:cover}
.roller{position:absolute;inset:0;display:flex;animation:roll 3.6s ease-in-out infinite;mix-blend-mode:multiply}
.roller i{flex:1;opacity:.55}
.roller i:nth-child(1){background:var(--terra)}.roller i:nth-child(2){background:var(--sun)}.roller i:nth-child(3){background:var(--sauge)}
@keyframes roll{0%{transform:translateX(-100%)}50%{transform:translateX(0)}100%{transform:translateX(100%)}}
.wait-msg{margin:24px 0 6px;font:900 clamp(32px,9vw,56px)/1.02 var(--serif);min-height:2.1em;display:flex;align-items:center;justify-content:center}
.wait-sub{margin:0;color:var(--mute);font-size:16px}
.dots{display:flex;gap:10px;justify-content:center;margin-top:16px}
.dots i{width:16px;height:16px;border-radius:50%;background:var(--terra);animation:hop 1.2s ease-in-out infinite}
.dots i:nth-child(2){background:var(--sun);animation-delay:.15s}.dots i:nth-child(3){background:var(--sauge);animation-delay:.3s}
@keyframes hop{0%,100%{transform:translateY(0)}40%{transform:translateY(-12px)}}

/* Résultat */
.result{padding:6px 0 40px;max-width:640px;margin:0 auto}
.res-pic{position:relative;border-radius:28px;overflow:hidden;background:var(--cream2);box-shadow:0 0 0 3px var(--ink),6px 8px 0 var(--sauge);aspect-ratio:4/3}
.res-pic img{width:100%;height:100%;object-fit:cover}
.res-src{position:absolute;inset:0;display:none}
.res-src.on{display:block}
.ready{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-3deg);background:var(--sun);border:3px solid var(--ink);border-radius:999px;padding:10px 20px;font:900 22px/1.1 var(--serif);text-align:center;width:max-content;max-width:86%}
.cmp{--x:50%;position:absolute;inset:0}
.cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:ew-resize;z-index:3}
.cmp-bar{position:absolute;top:0;bottom:0;left:var(--x);width:4px;margin-left:-2px;background:var(--paper);pointer-events:none}
.sim{margin:14px 0 0;font-size:15px;color:var(--mute);text-align:center}
.locked,.done{margin-top:18px;display:grid;gap:12px;text-align:center}
.locked .big-h,.done .big-h{margin:0;font-size:clamp(34px,9vw,56px)}
.honest{margin:0;font-size:15px;line-height:1.4;color:var(--ink)}
.cgv{justify-self:center;font-size:15px;min-height:44px;display:inline-flex;align-items:center}
.mail-f{display:grid;gap:6px;text-align:left}
.mail-f label,.stack label,#ctForm label,.lbl{font-weight:800;font-size:15px;margin:0}
.acts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.card{background:var(--paper);border-radius:24px;padding:16px;box-shadow:0 0 0 2px var(--line) inset;display:grid;gap:10px;text-align:left;margin-top:8px}
.card-t{margin:0;font:900 22px/1.15 var(--serif)}
.pw-card.saved>:not(.msg){display:none}
.pw-card.saved .msg{font:900 22px/1.15 var(--serif)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.msg{margin:0;font-size:16px;color:var(--sauge-d);min-height:0}
.msg:empty{display:none}

/* Comment ça marche */
.how,.ideas,.faq{padding:36px 0;border-top:3px dashed var(--line)}
.how ol{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.how li{display:flex;align-items:center;gap:16px;background:var(--paper);border-radius:26px;padding:14px 18px;box-shadow:0 0 0 2px var(--line) inset}
.how li:nth-child(2){transform:rotate(-1deg)}
.how b{flex:none;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font:900 44px/1 var(--serif);background:var(--terra);color:#fff}
.how li:nth-child(2) b{background:var(--sun);color:var(--ink)}
.how li:nth-child(3) b{background:var(--sauge);color:var(--ink)}
.how span{font:900 clamp(26px,7.4vw,40px)/1.05 var(--serif)}

.ideas-s{margin:-6px 0 16px;color:var(--mute);font-size:16px}
.ideas-g{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ideas-g figure{margin:0;border-radius:22px;overflow:hidden;background:var(--paper);position:relative}
.ideas-g img{width:100%;aspect-ratio:4/3;object-fit:cover}
.ideas-g figcaption{position:absolute;left:8px;bottom:8px;background:var(--paper);border-radius:999px;padding:4px 11px;font-weight:800;font-size:15px}

.faq details{background:var(--paper);border-radius:22px;margin-bottom:10px;box-shadow:0 0 0 2px var(--line) inset}
.faq summary{cursor:pointer;list-style:none;padding:16px 52px 16px 18px;font:900 22px/1.2 var(--serif);position:relative;min-height:56px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font:900 30px/1 var(--round);color:var(--terra)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:0;padding:0 18px 18px;font-size:17px}

/* Pied de page */
.foot{background:var(--ink);color:var(--cream);padding:30px 16px calc(30px + var(--sb));text-align:center}
.foot-logo{margin:0 0 12px;font:900 30px/1 var(--serif);color:var(--sun)}
.foot nav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;max-width:700px;margin:0 auto}
.foot a{color:var(--cream);min-height:44px;display:inline-flex;align-items:center;font-weight:800}
.foot-s{margin:12px 0 0;font-size:13px;opacity:.75}

/* Feuilles */
.sheet{position:fixed;inset:0;z-index:50;background:rgba(42,26,18,.5);display:flex;align-items:flex-end;justify-content:center}
.sheet-in{position:relative;width:100%;max-width:520px;max-height:92dvh;overflow:auto;background:var(--cream);border-radius:30px 30px 0 0;padding:26px 18px calc(22px + var(--sb));display:grid;gap:12px;animation:up .25s ease-out}
@keyframes up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.sheet-in h2{font-size:34px;line-height:1;padding-right:52px}
.sheet-in>p{margin:0}
.sheet-s{font-size:15px;color:var(--mute)}
.x{position:absolute;right:12px;top:12px;width:48px;height:48px;border-radius:50%;border:0;background:var(--paper);font:800 28px/1 var(--round);cursor:pointer;box-shadow:0 0 0 2px var(--line) inset}
.acc-l{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.acc-l li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;background:var(--paper);border-radius:16px;padding:12px 14px}
.acc-l span{color:var(--mute);font-size:15px}
.acc-l b{font-weight:800;overflow-wrap:anywhere;text-align:right}
.acc-l li.col{flex-direction:column}.acc-l li.col b{text-align:left}
.acc-b{display:grid;gap:10px;margin-top:4px}
.note{margin:0;font-weight:800;color:var(--terra-d)}
.lnk{background:none;border:0;padding:0 4px;min-height:48px;cursor:pointer;color:var(--terra-d);text-decoration:underline;font-weight:800;font-size:16px;justify-self:center}
.lnk.red{color:#B3261E;font-size:14px;margin-top:8px}
.stack,#ctForm{display:grid;gap:8px}
.stack .btn,#ctForm .btn{margin-top:6px}
.sub{margin:0;color:var(--mute);font-size:16px}
.confirm{display:grid;gap:12px}
.big-p{margin:0;font:900 26px/1.15 var(--serif)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{min-height:48px;padding:0 16px;border-radius:999px;border:2px solid var(--ink);background:var(--paper);font-weight:800;cursor:pointer}
.chips button[aria-checked=true]{background:var(--sun)}

.toast{position:fixed;left:50%;top:calc(76px + var(--st));transform:translateX(-50%);z-index:60;background:var(--ink);color:var(--cream);padding:12px 18px;border-radius:999px;font-weight:800;font-size:16px;max-width:calc(100vw - 32px);width:max-content;text-align:center}

/* Bureau */
@media (min-width:900px){
  main{padding:0 32px}
  .top{padding:14px 32px}
  .logo{font-size:18px}
  .home{grid-template-columns:1fr 1.1fr;grid-template-areas:"t v" "c v";column-gap:56px;row-gap:28px;align-items:center;padding:24px 0 64px}
  h1{grid-area:t;font-size:clamp(60px,6.4vw,104px);align-self:end}
  .ba{grid-area:v;max-height:none;border-radius:36px}
  .cta{grid-area:c;align-self:start;max-width:480px}
  .legal-s{text-align:left}
  .stk{font-size:18px;top:16px}.stk-a{left:16px}.stk-b{right:16px}
  .how ol{grid-template-columns:repeat(3,1fr)}
  .how li{flex-direction:column;align-items:flex-start;padding:22px}
  .how span{font-size:36px}
  .ideas-g{grid-template-columns:repeat(4,1fr)}
  .presets{grid-template-columns:repeat(4,1fr)}
  .choose{max-width:960px;margin:0 auto}
  .faq{max-width:860px;margin:0 auto}
  .sheet{align-items:center}
  .sheet-in{border-radius:30px;padding:30px 26px}
  .wait-msg{font-size:52px}
}
.pulse:active::after{display:none}
@media (prefers-reduced-motion:reduce){.pulse::after,.roller,.dots i{animation:none}}
