:root{--bg:#fff7ea;--bg-card:#ffffff;--ink:#2b2440;--ink-soft:#6b6585;--accent:#ff8fab;--accent-deep:#d96585;--sun:#ffd166;--sky:#8ecae6;--grass:#a8e6cf;--shadow:0 12px 32px rgba(43,36,64,0.12);--radius-lg:28px;--radius-md:18px;--radius-sm:12px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:ui-rounded,SF Pro Rounded,Quicksand,Comic Sans MS,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(circle at 12% 8%,#ffe0ec 0,transparent 38%),radial-gradient(circle at 92% 12%,#d9f1ff 0,transparent 42%),radial-gradient(circle at 80% 92%,#fff2c4 0,transparent 45%),var(--bg);color:var(--ink);min-height:100vh;-webkit-font-smoothing:antialiased;letter-spacing:.01em}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;color:inherit}.app{max-width:1280px;margin:0 auto;padding:32px 28px 80px}.header{justify-content:space-between;gap:24px;margin-bottom:28px}.brand,.header{display:flex;align-items:center}.brand{gap:16px}.brand-mark{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--sun),var(--accent));box-shadow:var(--shadow);display:grid;place-items:center;font-size:34px;animation:float 4.2s ease-in-out infinite}.brand h1{margin:0;font-size:36px;font-weight:800;letter-spacing:-.01em}.brand p{margin:4px 0 0;color:var(--ink-soft);font-size:16px}.tabs{display:flex;gap:12px;flex-wrap:wrap}.tab{background:var(--bg-card);border:3px solid transparent;border-radius:999px;padding:14px 26px;font-size:20px;font-weight:700;color:var(--ink);box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease}.tab:hover{transform:translateY(-2px)}.tab.active{border-color:var(--accent);background:linear-gradient(180deg,#fff,#fff0f5)}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow);margin-top:24px}.card h2{margin:0 0 8px;font-size:30px;font-weight:800}.card .lead{color:var(--ink-soft);font-size:18px;margin:0 0 24px}.row{display:grid;grid-gap:24px;gap:24px}@media (min-width:920px){.row.two{grid-template-columns:1fr 1fr}}.field{display:flex;flex-direction:column;gap:8px}.label{font-weight:700;font-size:16px;color:var(--ink-soft)}.file,.input,.textarea{background:#fff;border:3px solid #ffe0ec;border-radius:var(--radius-md);padding:16px 18px;font-size:20px;outline:none;transition:border-color .15s ease;width:100%}.file:focus,.input:focus,.textarea:focus{border-color:var(--accent)}.textarea{min-height:180px;resize:vertical;line-height:1.4}.file{padding:14px;font-size:18px}.btn{border:none;border-radius:999px;padding:18px 32px;font-size:22px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-deep));box-shadow:0 10px 24px rgba(217,101,133,.4);transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;min-height:64px}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:progress;transform:none}.btn.ghost{background:#fff;color:var(--ink);border:3px solid #ffe0ec;box-shadow:var(--shadow)}.btn.ghost.active{border-color:var(--accent);background:linear-gradient(180deg,#fff,#fff0f5)}.toggle-group{display:flex;gap:12px;flex-wrap:wrap}.preview{background:repeating-conic-gradient(#f7f1ff 0 25%,#fff 0 50%) 50% /28px 28px;border-radius:var(--radius-md);min-height:280px;display:grid;place-items:center;padding:18px;overflow:hidden}.preview img{max-width:100%;max-height:480px;height:auto;border-radius:12px;object-fit:contain}.hero-frame{background:repeating-conic-gradient(#f3ecff 0 25%,#fff 0 50%) 50% /36px 36px;border-radius:var(--radius-md);padding:24px;min-height:340px;display:grid;place-items:center;position:relative;overflow:hidden}.hero-frame:after,.hero-frame:before{content:"";position:absolute;border-radius:50%;filter:blur(30px);opacity:.6;pointer-events:none}.hero-frame:before{width:220px;height:220px;background:var(--sun);top:-60px;right:-60px}.hero-frame:after{width:240px;height:240px;background:var(--sky);bottom:-80px;left:-60px}.hero{max-width:100%;max-height:520px;height:auto;position:relative;z-index:1;animation:float 4s ease-in-out infinite,blink 7s ease-in-out infinite;filter:drop-shadow(0 16px 18px rgba(43,36,64,.18))}.empty{color:var(--ink-soft);text-align:center;padding:24px}.alert,.empty{font-size:18px}.alert{margin-top:16px;background:#fff0f0;border:2px solid #ffb4b4;color:#8a1f1f;border-radius:var(--radius-md);padding:16px 20px;font-weight:600}.spinner{display:inline-block;width:22px;height:22px;border:4px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite;vertical-align:-5px;margin-right:10px}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:22px;gap:22px;margin-top:8px}@media (min-width:720px){.gallery{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}.tile{background:repeating-conic-gradient(#f9f1ff 0 25%,#fff 0 50%) 50% /24px 24px;border-radius:var(--radius-md);padding:18px 14px 14px;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform .2s ease;border:none;width:100%;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.tile:hover{transform:translateY(-3px)}.tile:focus-visible{outline:3px solid #ffd166;outline-offset:2px}.tile img{max-width:100%;max-height:220px;height:auto;filter:drop-shadow(0 10px 14px rgba(43,36,64,.18));animation:float 4.5s ease-in-out infinite,blink 8s ease-in-out infinite}.tile:nth-child(2n) img{animation-duration:5s,9s;animation-delay:.6s,1.2s}.tile:nth-child(3n) img{animation-duration:3.6s,7.5s;animation-delay:.2s,.8s}.tile-name{font-weight:800;font-size:20px;color:var(--ink);text-align:center}.audio{width:100%;margin-top:16px}.footer{margin-top:48px;color:var(--ink-soft);font-size:14px;text-align:center}@keyframes float{0%,to{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-10px) rotate(.5deg)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}94%{transform:scaleY(.92)}96%{transform:scaleY(1.02)}}@keyframes spin{to{transform:rotate(1turn)}}.scan-loading{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--ink-soft);font-size:20px;font-weight:700}.sparkle{width:56px;height:56px;border-radius:50%;background:conic-gradient(from 0deg,var(--sun),var(--accent),var(--sky),var(--grass),var(--sun));animation:spin 2.4s linear infinite;filter:blur(2px)}.validation{background:#fff7fa;border:2px dashed var(--accent);border-radius:20px;padding:20px}.btn.btn-secondary{background:#fff;color:var(--accent-deep);border:2px solid var(--accent);box-shadow:none}.vote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:16px;gap:16px;margin-top:18px}.vote-card{border:2px solid #ececf2;border-radius:20px;padding:12px;background:#fff;transition:border-color .15s,transform .15s,box-shadow .15s}.vote-card.lead{border-color:var(--accent);box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px)}.vote-pick{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;border:none;background:transparent;cursor:pointer;padding:4px}.vote-pick img{width:100%;max-width:150px;aspect-ratio:1/1;object-fit:contain;border-radius:16px}.vote-emoji{font-size:64px;line-height:1}.vote-libelle{font-weight:700;color:#44445a;text-align:center}.vote-count{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:10px}.vote-step{width:40px;height:40px;border-radius:50%;border:2px solid var(--accent);background:#fff;font-size:22px;cursor:pointer;line-height:1}.vote-n,.vote-step{color:var(--accent-deep);font-weight:800}.vote-n{min-width:32px;text-align:center;font-size:26px}.recette{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:10px}.recette li{display:flex;justify-content:space-between;align-items:center;background:#fff7fa;border:2px solid #f1dbe6;border-radius:14px;padding:12px 16px}.recette-menu{color:#7a7a90;font-weight:600}.recette-choix{font-weight:800;color:var(--accent-deep)}.atelier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:14px;gap:14px;margin-top:18px}.atelier-btn{padding:22px 12px;border-radius:18px;border:2px solid var(--accent);background:#fff7fa;color:var(--accent-deep);font-size:20px;font-weight:800;letter-spacing:.04em;cursor:pointer;transition:transform .12s,box-shadow .12s}.atelier-btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.1)}.link-btn{border:none;background:none;color:var(--accent-deep);cursor:pointer;font-size:.9em;text-decoration:underline;padding:0}.save-ok{background:#eafaf0;border:2px solid #b7e6c9;color:#1f7a45;border-radius:12px;padding:10px 14px;font-weight:700;margin-bottom:12px}.scene-guide{background:#f5fbff;border:3px solid #c8e8f7;border-radius:18px;padding:18px 20px;margin:0 0 22px}.scene-guide h3{margin:4px 0 8px;font-size:24px;color:var(--ink)}.scene-guide p{margin:6px 0 0;color:var(--ink-soft);font-size:18px;line-height:1.35}.scene-kicker{display:inline-flex;align-items:center;min-height:34px;padding:6px 12px;border-radius:999px;background:#fff;color:var(--accent-deep);font-size:16px;font-weight:800}.arc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.arc-btn{min-height:92px;border:3px solid #f1dbe6;border-radius:18px;background:#fff;color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;padding:14px 16px;text-align:left;font-size:18px;font-weight:800}.arc-btn strong{color:var(--ink-soft);font-size:15px}.arc-btn.sel{border-color:var(--accent);background:#fff7fa}.scene-textarea{min-height:110px}.scene-edit-field{margin-top:12px}.scene-edit-field .textarea{min-height:120px;font-size:18px}.scene-canvas{width:100%;height:auto;border-radius:16px;border:2px solid #ececf2;display:block;background:#f4f4fa}.decor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:12px;gap:12px}.decor-btn{border:3px solid transparent;border-radius:14px;padding:0;background:none;cursor:pointer;overflow:hidden;display:flex;flex-direction:column}.decor-btn img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.decor-btn span{font-weight:700;color:#55556a;padding:6px 4px;font-size:.9rem}.decor-btn.sel{border-color:var(--accent)}.hero-chips{display:flex;flex-wrap:wrap;gap:10px}.hero-chip{width:76px;height:76px;border-radius:14px;border:3px solid transparent;background:#f4f4fa;cursor:pointer;overflow:hidden;padding:0}.hero-chip img{width:100%;height:100%;object-fit:contain}.hero-chip.sel{border-color:var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.12)}.scene-list{display:flex;flex-direction:column;gap:18px}.scene-item{position:relative;border:2px solid #f1dbe6;border-radius:18px;padding:14px;background:#fff}.scene-item .btn{margin-top:10px}.scene-num{position:absolute;top:-12px;left:-12px;width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;display:flex;justify-content:center;z-index:2}.scene-arc-label,.scene-num{font-weight:800;align-items:center}.scene-arc-label{display:inline-flex;min-height:30px;margin:0 0 10px 28px;padding:5px 10px;border-radius:999px;background:#fff7fa;color:var(--accent-deep);font-size:14px}.cine-controls{gap:10px;margin-top:16px;flex-wrap:wrap}.cine-controls,.cine-voice{display:flex;justify-content:center;align-items:center}.cine-voice{gap:8px;margin-top:14px;font-size:.95rem;color:#555}.cine-replay{display:block;width:100%;margin-top:14px}.save-secours{background:#fff4e0;border:1px solid #ffd591;color:#8a5a00;border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:.95rem;line-height:1.4}.lightbox{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(28,22,46,.82);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:lightbox-in .18s ease-out;cursor:zoom-out}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:92vw;max-height:88vh;cursor:default}.lightbox-figure img{max-width:92vw;max-height:74vh;width:auto;height:auto;border-radius:var(--radius-md);background:#fff;padding:12px;box-shadow:0 24px 60px rgba(0,0,0,.45)}.lightbox-name{font-weight:800;font-size:26px;color:#fff;text-align:center}.lightbox-close{position:fixed;top:18px;right:18px;width:48px;height:48px;border-radius:50%;border:none;background:rgba(255,255,255,.92);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.3)}.lightbox-close:hover{background:#fff}