:root{--navy:#1a1170;--gold1:#ffd067;--gold2:#f1ad34;--orange:#ff5a00;--green:#19c37d}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden}
body{color:#fff;font-family:'Roboto Condensed',sans-serif;background:#00001a}
button{font-family:inherit;cursor:pointer;border:0}

/* ---- Fond : dégradé bleu qui descend vers le noir ---- */
.sky{position:fixed;inset:0;z-index:-1;background:linear-gradient(#100858 0,#07033a 22%,#02011c 48%,#000008 72%,#000 100%)}

/* écran de téléphone : boutons fixes / liste qui défile / logo fixe */
.app{--foot:98px;position:relative;width:100%;max-width:520px;height:100vh;height:100dvh;margin:0 auto;display:flex;flex-direction:column}
.pills,.bar,.logo{flex:none}

/* ---- Boutons de rubriques ---- */
.pills{display:flex;gap:12px;overflow-x:auto;padding:16px 18px 10px;scrollbar-width:none}
.pills::-webkit-scrollbar{display:none}
.pills button{flex:none;font:800 17px/1 'Poppins',sans-serif;letter-spacing:-.01em;color:var(--navy);text-transform:uppercase;
  background:linear-gradient(var(--gold1),var(--gold2));border:1px solid rgba(255,255,255,.65);border-radius:99px;padding:13px 22px 12px;transition:transform .15s,box-shadow .2s}
.pills button.sep{margin-left:14px}
.pills button:active{transform:scale(.95)}
.pills button.on{box-shadow:0 0 0 2px #fff,0 0 18px rgba(255,205,90,.65)}

/* ---- Liste des articles ---- */

.list{position:relative;z-index:1;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:12px 20px 22px;
  -webkit-mask-image:linear-gradient(transparent 0,#000 12px,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(transparent 0,#000 12px,#000 calc(100% - 20px),transparent 100%)}
.list::-webkit-scrollbar{display:none}


.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;opacity:0;transform:translateX(-30px);transition:opacity .55s cubic-bezier(.2,.8,.2,1),transform .55s cubic-bezier(.2,.8,.2,1)}
.row.show{opacity:1;transform:none}
.info{flex:1;min-width:0}
.name{font-size:21px;font-weight:400;line-height:1.1;white-space:nowrap;overflow:hidden}
.pr{white-space:normal}
.desc{font-size:14px;opacity:.7;margin-top:2px}
.pr{margin-top:4px;font-size:16px;font-weight:300;line-height:1.6}
.pr .v{margin-right:3px}
.chip{display:inline-block;font-weight:300;background:rgba(150,140,255,.3);border-radius:10px;padding:0 7px;margin-right:6px;line-height:1.35}
.chip.has{background:var(--orange);color:#fff;font-weight:700}
.free{color:#9bf0b7}

.act{flex:none}


.sel{display:block;width:116px;font:500 13px/1 'Poppins',sans-serif;color:#f5b94a;background:rgba(10,5,70,.55);border:1.5px solid #f5b94a;border-radius:99px;padding:11px 6px;text-transform:uppercase;transition:transform .15s}
.sel:active{transform:scale(.94)}
.sel.on{background:var(--green);border-color:var(--green);color:var(--navy);font-weight:800}
.step{display:flex;align-items:center;justify-content:space-between;width:116px;height:38px;background:var(--green);border-radius:99px;color:var(--navy)}
.step button{width:42px;height:38px;background:none;color:var(--navy);font:800 22px/1 'Poppins',sans-serif}
.step b{font:800 16px 'Poppins',sans-serif}

/* ---- Bouton "Afficher ma commande" ---- */
.bar{position:relative;z-index:1;padding:4px 20px 2px}
.cmd{display:block;width:100%;font:800 15px/1 'Poppins',sans-serif;letter-spacing:-.01em;color:var(--navy);background:#ffab00;border-radius:99px;padding:14px 10px;text-transform:uppercase;box-shadow:0 4px 18px rgba(255,171,0,.25)}
.cmd:active{transform:scale(.97)}

/* ---- Logo en fond (fixe, étiré, estompé) : seul le moulin tourne ---- */
.logo{position:static}
.logo .stage{position:absolute;left:0;right:0;bottom:var(--foot);aspect-ratio:var(--logo-ar);pointer-events:none}
.logo .fix,.logo .ailes{opacity:.5}
.logo img,.logo svg{position:absolute;display:block}
.logo .fix{inset:0;width:100%;height:100%}
.logo .ailes{width:var(--aw);left:var(--al);top:var(--at);height:auto;animation:tourne 30s linear infinite}
/* flashs de lumière violets, gauche et droite : ils respirent et changent de teinte */
.logo .flash{top:0;height:var(--f-h);mix-blend-mode:screen;transform-origin:50% 50%;will-change:opacity,transform;animation:flash 5s ease-in-out infinite}
.logo .flash.l{left:0;width:var(--fl-w);transform-origin:0 50%}
.logo .flash.r{left:var(--fr-l);width:var(--fr-w);transform-origin:100% 50%;animation-delay:-2.5s}
@keyframes flash{0%,100%{opacity:.45;transform:scale(.94);filter:hue-rotate(-18deg) brightness(.9)}50%{opacity:1;transform:scale(1.1);filter:hue-rotate(22deg) brightness(1.35)}}
@keyframes tourne{to{transform:rotate(360deg)}}
.logo .legal{position:relative;z-index:1;font:500 11px/1.35 'Poppins',sans-serif;text-align:center;padding:6px 14px calc(9px + env(safe-area-inset-bottom))}
.logo .ttc{color:#ff7a1a;font-weight:800;white-space:nowrap}

/* ---- Fenêtres (choix + commande) ---- */
.ov{position:fixed;inset:0;z-index:20;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,22,.74);backdrop-filter:blur(6px)}
.ov.open{display:flex}
.ov.sheet{align-items:flex-end}
.card{width:100%;max-width:460px;max-height:86dvh;overflow:auto;background:linear-gradient(#21168f,#07034a);border:1px solid rgba(255,255,255,.35);border-radius:24px;padding:22px 20px 18px;animation:pop .28s cubic-bezier(.2,.9,.3,1.2)}
@keyframes pop{from{opacity:0;transform:translateY(24px) scale(.96)}}
.card h3{font:800 20px/1.1 'Poppins',sans-serif;color:var(--gold1);letter-spacing:-.01em;text-transform:uppercase}
.card .sub{font-size:15px;opacity:.75;margin:4px 0 14px}
.line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed rgba(255,255,255,.25);font-size:22px}
.line .q{font:800 18px 'Poppins',sans-serif;color:var(--gold1);margin-right:8px}
.line .p{font-weight:400;white-space:nowrap}
.line small{display:block;font-size:15px;opacity:.7;font-weight:300}
.total{display:flex;justify-content:space-between;font:800 18px 'Poppins',sans-serif;padding:14px 0 6px}
.empty{padding:22px 0;text-align:center;font-size:19px;opacity:.8}
.btnrow{display:flex;gap:10px;margin-top:14px}
.btnrow button{flex:1;font:800 14px/1 'Poppins',sans-serif;border-radius:99px;padding:14px 8px;text-transform:uppercase;color:var(--navy);background:linear-gradient(var(--gold1),var(--gold2))}
.btnrow button.ghost{background:rgba(255,255,255,.14);color:#fff}
.opt{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px dashed rgba(255,255,255,.25);font-size:22px}
.opt .step{width:120px}

@media (prefers-reduced-motion:reduce){.ailes,.flash{animation:none}.row{opacity:1;transform:none;transition:none}.card{animation:none}}

/* ---- Optimisation téléphone ---- */
html{touch-action:manipulation;-webkit-text-size-adjust:100%}
body{overscroll-behavior:none;-webkit-user-select:none;user-select:none}
.app{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-top:env(safe-area-inset-top)}
.name,.pr{text-shadow:0 1px 6px rgba(0,0,40,.95),0 0 2px rgba(0,0,40,.8)}
.sel,.step button,.pills button,.cmd{min-height:40px}
@media (max-height:700px){.logo .fix,.logo .ailes{opacity:.3}.pills{padding-top:10px;padding-bottom:6px}.name{font-size:20px}.row{padding:8px 0}}
@media (max-width:340px){.pills button{font-size:15px;padding:12px 17px 11px}.sel,.step{width:108px}.sel{font-size:11.5px}.name{font-size:19px}.list{padding-left:16px;padding-right:16px}.bar{padding-left:16px;padding-right:16px}}

/* ---- Petites étoiles qui scintillent un peu partout ---- */
.stars{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.stars i{position:absolute;border-radius:50%;background:#fff6d0;box-shadow:0 0 6px 1px rgba(255,210,110,.75);opacity:0;animation:twinkle var(--d,4s) ease-in-out infinite;animation-delay:var(--w,0s)}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.3)}50%{opacity:.9;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.stars i{animation:none;opacity:.5}}
