/* ═══════════════════════════════════════════════════════════════════════════
   NOTRE REFUGE · components.css
   Fichier complet, cohérent avec views.js + content.js.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════
   A · AUTEUR
   ═══════════════════════════════════════════════════════════════════════════ */
.author{display:inline-flex;align-items:center;gap:8px;max-width:100%;color:#805e58}
.author--compact{gap:6px}
.author__avatars{display:inline-flex;align-items:center;min-width:22px}
.author__avatar{position:relative;display:grid;place-items:center;flex:none;width:29px;height:29px;min-width:29px;border:2px solid #fff8f2;border-radius:50%;background-color:#e1c7b9;background-position:center;background-size:cover;box-shadow:0 3px 8px rgba(66,37,25,.12);color:#793a4f;font:700 .75rem var(--font-body);appearance:none;padding:0;cursor:pointer;transition:transform .3s var(--ease-spring),box-shadow .3s}
.author__avatar+.author__avatar{margin-left:-10px}
.author__avatar::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(199,138,149,.35);opacity:0;transition:opacity .3s,transform .3s;transform:scale(.7)}
.author__avatar:hover{transform:translateY(-2px) scale(1.12);box-shadow:0 8px 20px rgba(107,39,50,.28)}
.author__avatar:hover::after{opacity:1;transform:scale(1)}
.author__name{font:650 .74rem/1.3 var(--font-body);white-space:normal;color:inherit}
.author--compact .author__avatar{width:24px;height:24px;min-width:24px}
.author--compact .author__name{font-size:.69rem}

/* ═══════════════════════════════════════════════════════════════════════════
   B · CARTES DE BASE + MENU •••
   ═══════════════════════════════════════════════════════════════════════════ */
.card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid rgba(132,95,75,.12);border-radius:20px;background:#fffefa;box-shadow:0 10px 30px rgba(64,40,25,.06);overflow:visible;text-align:left;font-family:inherit;color:var(--ink);transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .3s}
.card[data-interactive]{cursor:pointer}
.card[data-interactive]:hover{transform:translateY(-4px);box-shadow:0 24px 52px -18px rgba(64,40,25,.2),0 0 0 1px rgba(184,137,63,.15);border-color:rgba(184,137,63,.3)}
.card[data-interactive]:focus-visible{outline:2px solid var(--terra);outline-offset:3px}
.card__art{position:relative;display:grid;place-items:center;width:100%;overflow:hidden;background:linear-gradient(145deg,#f6efe9,#fbf6ef);border-radius:20px 20px 0 0}
.card__art img{display:block;width:100%;height:100%;object-fit:cover}
.card__badge{position:absolute;top:12px;left:12px;z-index:3;display:inline-flex;align-items:center;padding:6px 11px;border-radius:999px;background:#fff9f4;color:var(--wine);border:1px solid rgba(172,115,95,.28);font:800 .62rem/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;animation:badgeFloat 4s ease-in-out infinite}
@keyframes badgeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.card__body{display:flex;flex-direction:column;flex:1 1 auto;gap:10px;padding:22px 22px 20px;min-width:0}
.card__title{margin:0;font:500 clamp(1.05rem,1.4vw,1.35rem)/1.2 var(--font-display);color:#291e19;overflow-wrap:anywhere;transition:color .3s}
.card:hover .card__title{color:#5d383e}
.card__text{margin:0;color:#79685b;font:400 .84rem/1.6 var(--font-body);overflow-wrap:anywhere;white-space:pre-line}

.menu-btn{position:absolute;top:12px;right:12px;z-index:6;width:34px;height:32px;border:1px solid var(--line);border-radius:var(--r-pill);background:rgba(255,255,255,.9);color:var(--ink);display:grid;place-items:center;padding:0 0 5px;font-weight:800;opacity:0;cursor:pointer;backdrop-filter:blur(8px);transition:opacity .25s,background .25s,transform .25s}
.card:hover .menu-btn,.envie:hover .menu-btn,.horizon:hover .menu-btn,.capsule:hover .menu-btn,.echo-phrase:hover .menu-btn,.echo-book:hover .menu-btn,.echo-text:hover .menu-btn,.menu-btn[aria-expanded="true"]{opacity:.9}
.menu-btn:hover{opacity:1;background:var(--paper-warm);transform:scale(1.08)}
.menu{position:absolute;top:50px;right:12px;left:auto;min-width:150px;border-radius:var(--r-sm);background:var(--paper-soft);border:1px solid var(--line);box-shadow:0 18px 42px -14px rgba(31,24,20,.22);z-index:20;overflow:hidden;display:none;transform-origin:top right}
.menu.is-open{display:grid;animation:menuOpen .25s var(--ease-out) both}
@keyframes menuOpen{from{opacity:0;transform:scale(.94) translateY(-6px)}to{opacity:1;transform:none}}
.menu button{border:0;background:transparent;color:var(--ink);padding:12px 16px;text-align:left;font-size:.86rem;cursor:pointer;font-family:inherit;transition:background .2s,padding .2s}
.menu button:hover{background:var(--paper-warm);padding-left:22px}
.menu button.is-danger{color:var(--wine)}
.menu button.is-danger:hover{background:var(--wine-soft)}

.cards{display:grid;gap:22px;align-items:start;min-width:0}
.cards--books{grid-template-columns:repeat(auto-fill,minmax(min(100%,268px),1fr))}
.cards--music{grid-template-columns:1fr;gap:14px}
.cards--wish{grid-template-columns:1fr;gap:0}
.cards--gift{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}
.cards--film{grid-template-columns:repeat(auto-fill,minmax(min(100%,275px),1fr))}
.cards--game{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}

/* C · NOUS — exposition cinématographique, mémoire et chapitres */
.nous-timeline{display:grid;gap:clamp(34px,5vw,90px);max-width:1460px;margin-inline:auto;position:relative}
.nous-timeline__year{display:flex;align-items:center;gap:24px;padding:40px 0 0}
.nous-timeline__year span{font:400 clamp(2.3rem,6vw,5.5rem)/1 var(--font-accent);color:var(--wine);letter-spacing:-.04em}
.nous-timeline__year i{flex:1;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.card[data-kind="memory"]{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);height:clamp(470px,36vw,570px);min-height:0;border:1px solid var(--line);border-radius:4px 42px 4px 42px;overflow:hidden;background:var(--paper-soft);box-shadow:var(--shadow-lg);transition:box-shadow .5s var(--ease-out),transform .5s var(--ease-out)}
.card[data-kind="memory"]:hover{box-shadow:var(--shadow-xl);transform:translateY(-5px)}
.card[data-kind="memory"] .card__art{position:relative;display:grid;place-items:center;height:100%;min-height:0;border-radius:0;background:transparent;overflow:hidden}
.card[data-kind="memory"] .card__art>img{position:absolute;inset:0;width:100%;height:100%;display:block;transition:opacity .38s ease,transform .8s var(--ease-out)}
.card[data-kind="memory"] .memory-photo{object-fit:contain;object-position:center;padding:0;z-index:1;filter:none;background:transparent}
.card[data-kind="memory"]:hover .memory-photo{transform:scale(1.012)}
.card[data-kind="memory"] .card__art::after{display:none}
.memory-art__stamp{position:absolute;bottom:clamp(22px,3vw,38px);left:clamp(22px,3vw,38px);right:auto;z-index:2;display:grid;gap:6px;max-width:min(72%,330px);padding:12px 16px 13px;border:1px solid rgba(184,137,63,.28);border-radius:3px 18px 3px 18px;background:rgba(250,244,235,.90);color:var(--ink);box-shadow:0 14px 30px -22px rgba(31,24,20,.46);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);text-shadow:none}
.memory-art__stamp small,.memory-eyebrow{font:700 .76rem var(--font-body);letter-spacing:.25em;text-transform:uppercase}
.memory-art__stamp strong{font:400 clamp(1.45rem,2.3vw,2.6rem) var(--font-accent)}
.memory-art__count{position:absolute;top:22px;left:22px;z-index:2;padding:10px 15px;border:1px solid rgba(31,24,20,.12);border-radius:var(--r-pill);background:rgba(255,250,244,.82);color:var(--ink);font:.75rem var(--font-body);backdrop-filter:blur(10px)}
.card[data-kind="memory"] .card__body{height:100%;min-height:0;padding:clamp(24px,3vw,46px);justify-content:center;gap:clamp(12px,1.7vw,19px);overflow:hidden;background:radial-gradient(ellipse at 100% 0%,var(--terra-tint),transparent 65%),var(--paper-soft)}
.memory-copy{display:grid;gap:clamp(12px,1.6vw,18px);padding:clamp(18px,2.2vw,28px);border:1px solid color-mix(in srgb,var(--terra) 12%,var(--line));background:linear-gradient(155deg,rgba(255,251,246,.96),rgba(247,238,228,.92));box-shadow:0 18px 40px -32px rgba(31,24,20,.28)}
.memory-gallery{position:absolute;right:22px;bottom:20px;z-index:2;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;max-width:min(72%,380px)}
.memory-gallery__thumb{width:60px;height:60px;padding:0;border:1px solid rgba(255,246,236,.66);background:rgba(255,250,245,.26);backdrop-filter:blur(10px);cursor:pointer;overflow:hidden;box-shadow:0 10px 22px rgba(18,9,14,.24);transition:transform .25s,border-color .25s,box-shadow .25s}
.memory-gallery__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.memory-gallery__thumb:hover{transform:translateY(-2px)}
.memory-gallery__thumb.is-on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(184,137,63,.26),0 12px 26px rgba(18,9,14,.28)}
.memory-photo{transition:opacity .38s ease,transform .8s var(--ease-out)}.memory-photo.is-changing{opacity:.18}
.memory-eyebrow{color:var(--terra)}
.card[data-kind="memory"] .card__title{font-size:clamp(1.65rem,2.7vw,3.05rem);line-height:1.12;letter-spacing:-.045em;color:var(--ink)}
.card[data-kind="memory"] .card__text{font:400 clamp(.97rem,1.15vw,1.12rem)/1.68 var(--font-display);color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.memory-card--text{display:block!important;height:auto!important;max-width:1180px;margin-inline:auto;border-radius:34px 8px 34px 8px!important;background:linear-gradient(145deg,#fffaf4,#f5e6db)!important}
.memory-card--text .card__body{padding:clamp(34px,5vw,72px)!important;background:transparent!important}
.memory-card--text .memory-copy{padding:clamp(24px,4vw,54px);background:rgba(255,252,247,.78);border-color:rgba(184,137,63,.22);box-shadow:0 22px 60px -42px rgba(60,25,35,.34)}
.memory-card--text .card__title{max-width:20ch;font-size:clamp(2rem,4vw,4rem)!important}
.memory-card--text .card__text{display:block!important;max-width:none!important;-webkit-line-clamp:unset!important;overflow:visible!important;font:400 clamp(1.04rem,1.25vw,1.2rem)/1.92 var(--font-display)!important;white-space:pre-line;text-wrap:pretty}
.memory-card--text .memory-foot{margin-top:28px}
.card[data-kind="memory"][data-side="right"]{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);border-radius:42px 4px 42px 4px}
.card[data-kind="memory"][data-side="right"] .card__art{order:2}
.card[data-kind="memory"][data-side="right"] .card__body{order:1}
.memory-meta{display:flex;gap:12px;flex-wrap:wrap}
.memory-meta__date,.memory-meta__place{font:650 .84rem var(--font-body);color:var(--ink-muted)}
.memory-meta__place::before{content:"✧";color:var(--gold);padding-right:8px}
.memory-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;border-top:1px solid var(--line);padding-top:24px;margin-top:18px}
.memory-foot__hint{font:650 .78rem var(--font-body);letter-spacing:.09em;color:var(--terra)}
@media(max-width:960px){.card[data-kind="memory"],.card[data-kind="memory"][data-side="right"]{grid-template-columns:1fr;height:auto;border-radius:var(--r-xl)}.card[data-kind="memory"] .card__art,.card[data-kind="memory"][data-side="right"] .card__art{order:0;height:clamp(320px,68vw,500px);min-height:0}.card[data-kind="memory"] .card__body,.card[data-kind="memory"][data-side="right"] .card__body{order:1;height:auto;padding:clamp(28px,6vw,56px)}.memory-art__stamp{bottom:22px}.memory-gallery{position:absolute;right:16px;bottom:16px;justify-content:flex-end;max-width:70%;margin:0}.memory-gallery__thumb{width:52px;height:52px}}

/* ═══════════════════════════════════════════════════════════════════════════
   D · ÉCHOS · phrase · poème · texte
   ═══════════════════════════════════════════════════════════════════════════ */
.echoes-wrap .world-section{padding-top:clamp(30px,4vw,50px);padding-bottom:clamp(30px,4vw,50px)}
.echoes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:20px}
.echo-phrase{position:relative;padding:30px 28px 24px;border-radius:22px;background:linear-gradient(160deg,#fffaf5,#f8ece8);border:1px solid rgba(184,137,63,.18);display:flex;flex-direction:column;gap:14px;overflow:hidden;transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out),border-color .3s}
.echo-phrase:hover{transform:translateY(-4px);box-shadow:0 20px 46px -22px rgba(90,50,40,.28);border-color:rgba(184,137,63,.32)}
.echo-phrase__mark{position:absolute;right:20px;top:10px;font-family:var(--font-display);font-size:5.5rem;line-height:1;color:rgba(184,137,63,.14);pointer-events:none;transition:transform .5s var(--ease-spring),color .4s}
.echo-phrase:hover .echo-phrase__mark{transform:rotate(-6deg) scale(1.08);color:rgba(184,137,63,.22)}
.echo-phrase__text{margin:0;font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(1.15rem,1.5vw,1.4rem);line-height:1.6;color:#3a2522;letter-spacing:-.02em;white-space:pre-line;overflow-wrap:anywhere;position:relative;z-index:1}
.echo-phrase__foot{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-top:14px;border-top:1px solid rgba(184,137,63,.18);margin-top:auto}
.echo-phrase__author{font:700 .74rem var(--font-body);color:#9b4b6a}
.echo-phrase__date{font:600 .72rem var(--font-body);color:var(--ink-muted)}

.echo-sep{display:flex;align-items:center;justify-content:center;gap:14px;margin:clamp(30px,4vw,52px) auto 8px;padding:8px 0;pointer-events:none}
.echo-sep span{flex:1;height:1px;max-width:560px;background:linear-gradient(90deg,transparent,#be8b88 44%,#bf9a68 67%,transparent)}
.echo-sep em{font-style:normal;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(175,111,117,.42);background:radial-gradient(circle,#fffaf0,#f2deda);font:1.8rem/1 var(--font-display);color:#9f5a68;box-shadow:0 0 0 8px rgba(227,190,185,.13);animation:echoCore 6s ease-in-out infinite}
@keyframes echoCore{0%,100%{box-shadow:0 0 0 8px rgba(227,190,185,.13)}50%{box-shadow:0 0 0 14px rgba(227,190,185,.05)}}

.echo-books{display:grid;gap:clamp(24px,3vw,38px)}
.echo-book{position:relative;border-radius:26px;border:1px solid #e4cdbd;background:radial-gradient(ellipse at 93% 6%,rgba(191,118,134,.10),transparent 32%),linear-gradient(155deg,#fffaf3,#f8eee9);overflow:hidden;box-shadow:0 24px 60px -40px rgba(90,50,40,.28);transition:box-shadow .5s var(--ease-out)}
.echo-book:hover{box-shadow:0 34px 72px -40px rgba(90,50,40,.4)}
.echo-book__head{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;padding:clamp(30px,4vw,44px) clamp(24px,4vw,48px) 0}
.echo-book__head small{font:800 .6rem var(--font-body);letter-spacing:.28em;color:#ab6e62;text-transform:uppercase;animation:bookKicker 8s ease-in-out infinite}
@keyframes bookKicker{0%,100%{letter-spacing:.28em}50%{letter-spacing:.34em}}
.echo-book__head h3{margin:0;font:500 clamp(1.7rem,2.6vw,2.4rem)/1.08 var(--font-display);color:#2b1f1b;letter-spacing:-.03em;max-width:26ch}
.echo-book__date{margin-top:2px;font:600 .78rem var(--font-body);color:var(--ink-muted);letter-spacing:.06em}
.echo-book__body{display:grid;gap:clamp(24px,3vw,44px);padding:clamp(28px,4vw,52px) clamp(24px,4vw,48px) clamp(20px,3vw,36px)}
.echo-book__spread{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,60px);align-items:stretch;position:relative}
.echo-book__spread+.echo-book__spread{padding-top:clamp(24px,3vw,44px);border-top:1px solid rgba(184,137,63,.14)}
.echo-book__spread.is-single{grid-template-columns:1fr;max-width:60ch;margin:0 auto}
.echo-book__page{display:flex;flex-direction:column;min-height:180px;position:relative;min-width:0}
.echo-book__page p{margin:0;flex:1;font-family:var(--font-display);font-weight:300;font-size:clamp(1.02rem,1.25vw,1.15rem);line-height:1.95;color:#4b3a35;white-space:pre-wrap;overflow-wrap:anywhere;letter-spacing:.002em}
.echo-book__page p:first-letter{font:500 2.4em/.85 var(--font-display);color:#a75e64;float:left;margin:6px 10px 0 0;font-style:italic}
.echo-book__num{display:block;text-align:center;margin-top:28px;font:italic 400 .82rem var(--font-display);color:rgba(140,100,80,.65);letter-spacing:.12em}
.echo-book__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px clamp(24px,4vw,48px) clamp(24px,3vw,36px);border-top:1px solid rgba(169,113,99,.18);color:#976a64;font:700 .62rem var(--font-body);letter-spacing:.14em;text-transform:uppercase}
.echo-book__signature{font-family:var(--font-display);font-style:italic;font-weight:400;letter-spacing:normal;text-transform:none;color:#a85860;font-size:.86rem}

/* NOTE : seule la variante prose pleine largeur de .echo-text est conservée (voir plus bas). */

/* ═══════════════════════════════════════════════════════════════════════════
   E · ENVIES · 7 identités
   ═══════════════════════════════════════════════════════════════════════════ */
.envie{position:relative;min-width:0;text-align:left;font-family:inherit;color:inherit}
.envie[data-interactive]{cursor:pointer}
.envie__kicker{display:inline-block;font:800 .62rem/1.4 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:#8b4e5d}
.envie__title{margin:0;font:500 clamp(1.05rem,1.3vw,1.28rem)/1.22 var(--font-display);color:#2f211d;letter-spacing:-.015em;overflow-wrap:anywhere;transition:color .3s}
.envie:hover .envie__title{color:#6b2732}
.envie__sub{margin:0;font:500 .84rem var(--font-body);color:#8a6a62}
.envie__text{margin:0;font:400 .82rem/1.6 var(--font-body);color:#6b5450;overflow-wrap:anywhere}

/* E1 · LIVRE */
.envie--book{display:flex;flex-direction:column;gap:16px;transition:transform .4s var(--ease-out)}
.envie--book:hover{transform:translateY(-6px) rotate(-.4deg)}
.envie-book__shelf{position:relative;aspect-ratio:2/3;border-radius:3px 12px 12px 3px;box-shadow:0 22px 40px -26px rgba(60,35,30,.4),inset 3px 0 8px rgba(60,35,30,.12);overflow:hidden;background:linear-gradient(145deg,#f7ece2,#ead8cd);transition:box-shadow .4s var(--ease-out)}
.envie--book:hover .envie-book__shelf{box-shadow:0 34px 56px -26px rgba(60,35,30,.55),inset 3px 0 8px rgba(60,35,30,.18)}
.envie-book__cover{position:absolute;inset:0;display:grid;place-items:center}
.envie-book__cover img{width:100%;height:100%;object-fit:cover}
.envie-book__spine{position:absolute;left:0;top:0;bottom:0;width:8px;background:linear-gradient(90deg,rgba(60,35,30,.28),transparent 70%);pointer-events:none}
.envie-book__spine::after{content:"";position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(180deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);transform:translateX(-100%);transition:transform .8s var(--ease-out)}
.envie--book:hover .envie-book__spine::after{transform:translateX(100%)}
.envie-book__fallback{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:22px 18px;text-align:center;width:100%;height:100%;background:linear-gradient(145deg,#5f353e,#8b5b54 50%,#b88c70);color:#fff6eb;background-size:200% 200%;animation:bookGradient 8s ease-in-out infinite}
@keyframes bookGradient{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.envie-book__fallback span{font:400 2rem var(--font-display)}
.envie-book__fallback strong{font:500 1.15rem/1.2 var(--font-display)}
.envie-book__fallback small{font:700 .58rem var(--font-body);letter-spacing:.22em;opacity:.7}
.envie-book__info{display:grid;gap:6px}
.envie-book__links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.envie-book__links a{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:8px;background:#f8f0e9;border:1px solid #e4cfc1;color:#733b42;text-decoration:none;font:700 .72rem var(--font-body);transition:background .25s,transform .25s,border-color .25s}
.envie-book__links a:hover{background:#f0ddd5;transform:translateY(-1px);border-color:#bf9989}

/* E2 · Lingerie — deux fiches portrait en grille, showroom compact */
.cards--lingerie{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),420px));justify-content:center;gap:clamp(22px,3vw,42px);align-items:start}
.envie--lingerie{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid color-mix(in srgb,var(--wine) 20%,var(--line));border-radius:24px 7px 24px 7px;background:linear-gradient(160deg,#fffaf5,#f6eae3);box-shadow:0 24px 58px -40px rgba(55,26,36,.46);overflow:hidden;isolation:isolate;transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out)}
.envie--lingerie:hover{transform:translateY(-5px);box-shadow:0 34px 70px -40px rgba(55,26,36,.56)}
.envie-lingerie__stage{position:relative;aspect-ratio:4/5;padding:18px;background:radial-gradient(ellipse at 50% 18%,#82475e,var(--wine) 72%);overflow:hidden}
.envie-lingerie__stage::before{content:"";position:absolute;inset:12px;border:1px solid rgba(218,177,113,.38);pointer-events:none;z-index:2}
.envie-lingerie__slot--main{position:relative;width:78%;height:100%;margin:0 auto;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#fffaf4,#ead9d5);border:1px solid rgba(219,190,164,.78);box-shadow:0 24px 48px rgba(22,10,18,.34)}
.envie-lingerie__slot--main img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;padding:10px;transition:transform .75s var(--ease-out)}
.envie--lingerie:hover .envie-lingerie__slot--main img{transform:scale(1.025)}
.envie-lingerie__slot--detail{position:absolute;right:18px;bottom:18px;z-index:4;width:36%;aspect-ratio:3/4;padding:6px;background:#fff8f1;border:1px solid var(--gold);box-shadow:0 20px 36px rgba(17,8,14,.44);transform:rotate(2deg);transition:transform .45s var(--ease-out)}
.envie--lingerie:hover .envie-lingerie__slot--detail{transform:rotate(-1deg) translateY(-3px)}
.envie-lingerie__slot--detail img{width:100%;height:100%;object-fit:contain;display:block;background:#f8eee8}
.envie-lingerie__info{display:grid;gap:8px;padding:20px 22px 22px;background:radial-gradient(ellipse at 100% 0%,var(--rose-soft),transparent 72%),var(--paper-soft)}
.envie-lingerie__index{display:flex;align-items:center;gap:12px;font:700 .58rem var(--font-body);letter-spacing:.22em;color:var(--wine)}
.envie-lingerie__index::after{content:"";flex:1;height:1px;background:var(--gold-soft)}
.envie-lingerie__index span:last-child{color:var(--gold)}
.envie--lingerie .envie__kicker{color:var(--terra-deep);font:700 .66rem var(--font-body);letter-spacing:.11em}
.envie-lingerie__row{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:8px 14px}
.envie--lingerie .envie__title{font:400 clamp(1.45rem,2vw,2rem)/1.08 var(--font-accent);color:var(--ink);letter-spacing:-.03em}
.envie-lingerie__price{font:600 .94rem var(--font-display);color:var(--wine)}
.envie--lingerie .envie__text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font:400 .84rem/1.68 var(--font-body);color:var(--ink-soft)}
.envie-lingerie__cta{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:4px;padding-top:12px;border-top:1px solid var(--line)}
.envie-lingerie__cta a{display:inline-flex;align-items:center;gap:7px;color:var(--wine);text-decoration:none;border-bottom:1px solid var(--gold);font:700 .68rem/1.5 var(--font-body);letter-spacing:.09em;text-transform:uppercase}
.envie-lingerie__monogram{position:relative;aspect-ratio:4/3;display:grid;place-content:center;justify-items:center;gap:10px;background:radial-gradient(circle at 50% 25%,rgba(255,246,235,.18),transparent 46%),linear-gradient(145deg,#713041,#421f2b);color:#fff5ec;overflow:hidden}.envie-lingerie__monogram::before,.envie-lingerie__monogram::after{content:"";position:absolute;border:1px solid rgba(226,196,132,.28);border-radius:50%;width:160px;height:160px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(20deg)}.envie-lingerie__monogram::after{width:220px;height:82px;transform:translate(-50%,-50%) rotate(-18deg)}
.envie-lingerie__monogram span{font:400 2.8rem/1 var(--font-accent);letter-spacing:.08em}.envie-lingerie__monogram i{font-style:normal;color:var(--gold)}
.envie--lingerie.is-fallback-art .envie-lingerie__slot--main img{padding:18px 24px;filter:drop-shadow(0 16px 26px rgba(30,12,20,.12))}.envie--lingerie.is-fallback-art .envie-lingerie__stage{background:radial-gradient(ellipse at 50% 16%,#8a5266,var(--wine) 72%)}
@media(max-width:760px){.cards--lingerie{grid-template-columns:minmax(0,1fr);max-width:460px;margin-inline:auto}.envie-lingerie__stage{aspect-ratio:4/5}.envie-lingerie__slot--main{width:82%}}
@media(max-width:460px){.envie-lingerie__stage{padding:13px}.envie-lingerie__slot--main{width:88%}.envie-lingerie__slot--detail{right:10px;bottom:10px;width:39%}.envie-lingerie__info{padding:18px}.envie--lingerie .envie__title{font-size:1.58rem}}

/* E3 · MUSIQUE — vinyle + notes flottantes */
.envie--music{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 20px;border-radius:16px;background:linear-gradient(140deg,#fffaf5,#f5e9e2);border:1px solid rgba(107,39,50,.1);text-decoration:none;color:inherit;transition:transform .3s var(--ease-out),border-color .3s,box-shadow .35s}
.envie--music:hover{transform:translateY(-3px);border-color:rgba(184,137,63,.35);box-shadow:0 18px 38px -22px rgba(60,30,40,.4)}
.envie-music__sleeve{position:relative;width:104px;height:104px;display:flex;align-items:center;justify-content:center}
.envie-music__disc{position:relative;display:block;width:94px;height:94px;border-radius:50%;background:repeating-radial-gradient(circle at center,#1e1a1e 0 3px,#382d34 3px 4px,#241e24 4px 6px);box-shadow:0 10px 22px -8px rgba(30,15,20,.5),inset 0 0 12px #100f13;overflow:hidden;animation:discSpin 26s linear infinite;transition:box-shadow .4s}
.envie--music:hover .envie-music__disc{animation-duration:4s;box-shadow:0 14px 28px -8px rgba(60,20,40,.65),inset 0 0 18px #100f13}
@keyframes discSpin{to{transform:rotate(360deg)}}
.envie-music__disc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;opacity:.4}
.envie-music__hole{position:absolute;top:50%;left:50%;width:24px;height:24px;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,#e0b3a4,#c99182 60%,#a4685f);border:4px solid #efd8ca;border-radius:50%}
.envie-music__notes{position:absolute;inset:0;pointer-events:none;overflow:visible}
.envie-music__notes i{position:absolute;font-style:normal;font-family:var(--font-display);font-size:1.05rem;color:var(--wine);opacity:0;transform:translateY(0);text-shadow:0 2px 6px rgba(107,39,50,.22)}
.envie--music:hover .envie-music__notes i{animation:noteFloat 2.8s ease-out infinite}
.envie--music:hover .envie-music__notes i:nth-child(1){left:78%;top:40%;animation-delay:0s}
.envie--music:hover .envie-music__notes i:nth-child(2){left:88%;top:28%;animation-delay:.9s;font-size:.85rem}
.envie--music:hover .envie-music__notes i:nth-child(3){left:70%;top:56%;animation-delay:1.8s;font-size:.9rem}
@keyframes noteFloat{0%{opacity:0;transform:translateY(0) scale(.7) rotate(0)}20%{opacity:.95;transform:translateY(-6px) scale(1) rotate(-6deg)}100%{opacity:0;transform:translateY(-34px) scale(1.1) rotate(8deg)}}
.envie-music__info{display:grid;gap:4px;min-width:0}
.envie-music__play{width:40px;height:40px;border-radius:50%;background:#3a2522;color:#fff8f4;display:grid;place-items:center;font-size:.9rem;transition:background .25s,transform .3s var(--ease-spring)}
.envie--music:hover .envie-music__play{background:#8b4e5d;transform:scale(1.15)}

/* E4 · SOUHAITS */
.envie--wish{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(20px,3vw,44px);align-items:center;padding:clamp(24px,3vw,34px) 4px;border-bottom:1px solid rgba(107,39,50,.14);transition:background .35s,padding .35s}
.envie--wish:first-child{border-top:1px solid rgba(107,39,50,.14)}
.envie--wish:hover{background:rgba(255,250,245,.55);padding-left:14px}
.envie-wish__num{font:300 clamp(2.4rem,4vw,3.6rem)/1 var(--font-display);color:rgba(160,90,110,.26);letter-spacing:-.05em;min-width:70px;transition:color .35s,transform .35s}
.envie--wish:hover .envie-wish__num{color:rgba(160,90,110,.68);transform:scale(1.05)}
.envie-wish__body{display:grid;gap:8px;min-width:0}
.envie-wish__body .envie__title{font:300 clamp(1.5rem,2.4vw,2.1rem)/1.14 var(--font-display);font-style:italic;letter-spacing:-.025em}
.envie-wish__body .envie__text{font-family:var(--font-display);font-weight:300;font-size:1rem;line-height:1.72;font-style:italic;color:#5f4a45;max-width:60ch}
.envie-wish__photo{width:min(220px,28vw);aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#f5e7df;transition:transform .45s var(--ease-out),box-shadow .45s}
.envie--wish:hover .envie-wish__photo{transform:scale(1.03) rotate(-1deg);box-shadow:0 18px 34px -18px rgba(90,50,60,.32)}
.envie-wish__photo img{width:100%;height:100%;object-fit:cover}

/* E5 · Cadeaux — photo libre et carte éditoriale */
.envie--gift{position:relative;display:flex;flex-direction:column;gap:0;border-radius:var(--r-lg);overflow:visible;border:1px solid var(--line);background:var(--paper-soft);box-shadow:var(--shadow-sm);transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}
.envie--gift:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.envie-gift__box{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper-warm);border-radius:var(--r-lg) var(--r-lg) 0 0}
.envie-gift__box img{width:100%;height:100%;object-fit:contain;padding:8px;display:block}
.envie-gift__empty{display:grid;place-items:center;width:100%;height:100%;color:var(--gold);font:400 4rem var(--font-display)}
.envie-gift__info{display:grid;gap:10px;padding:26px}
.envie-gift__row{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:8px;border-top:1px solid var(--line);padding-top:15px}
.envie-gift__price{color:var(--ink);font:650 1rem var(--font-body)}
.envie-gift__link{color:var(--terra);font:700 .8rem var(--font-body);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:5px}
.envie-gift__link:hover{color:var(--wine)}


/* E6 · FILMS */
.envie--film{position:relative}
.envie-film__poster{position:relative;aspect-ratio:2/3;border-radius:14px;overflow:hidden;background:#1e151b;box-shadow:0 22px 42px -22px rgba(20,10,20,.6);transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.envie--film:hover .envie-film__poster{transform:translateY(-5px) scale(1.02);box-shadow:0 34px 58px -22px rgba(20,10,20,.75)}
.envie-film__poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}
.envie--film:hover .envie-film__poster img{transform:scale(1.06)}
.envie-film__poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(20,10,18,.92));pointer-events:none;opacity:.9;transition:opacity .4s}
.envie--film:hover .envie-film__poster::after{opacity:1}
.envie-film__fallback{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,240,230,.18);font:400 4rem var(--font-display)}
.envie-film__overlay{position:absolute;left:0;right:0;bottom:0;padding:20px 18px 18px;color:#fff5ea;display:grid;gap:8px;z-index:2}
.envie-film__status{display:inline-flex;align-self:flex-start;padding:5px 10px;border-radius:999px;background:rgba(255,240,230,.14);backdrop-filter:blur(6px);color:#f4d8c8;font:800 .56rem var(--font-body);letter-spacing:.16em;text-transform:uppercase;border:1px solid rgba(255,240,230,.18)}
.envie-film__title{margin:0;font:500 1.15rem/1.16 var(--font-display);color:#fff5ea;letter-spacing:-.015em}
.envie-film__year{position:absolute;top:14px;right:14px;padding:5px 10px;border-radius:999px;background:rgba(20,10,18,.5);color:#f4d8c8;font:700 .68rem var(--font-body);letter-spacing:.05em;backdrop-filter:blur(6px);z-index:3}

/* E7 · JEUX */
.envie--game{display:flex;flex-direction:column;gap:0;border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#fffaf5,#eef3e9);border:1px solid rgba(107,140,104,.22);box-shadow:0 12px 28px -22px rgba(60,90,60,.28);transition:transform .35s var(--ease-out),box-shadow .35s}
.envie--game:hover{transform:translateY(-4px);box-shadow:0 24px 44px -22px rgba(60,90,60,.48)}
.envie-game__cartridge{position:relative}
.envie-game__art{aspect-ratio:16/10;overflow:hidden;background:#e5ede0;display:grid;place-items:center;position:relative}
.envie-game__art img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out)}
.envie--game:hover .envie-game__art img{transform:scale(1.05)}
.envie-game__art span{font:400 3rem var(--font-display);color:#a5b89e}
.envie-game__art::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.14) 50%,transparent 65%);transform:translateX(-100%);transition:transform 1.1s var(--ease-out);pointer-events:none}
.envie--game:hover .envie-game__art::after{transform:translateX(100%)}
.envie-game__label{display:block;height:14px;background:linear-gradient(180deg,#dde6d8,#c9d9be);border-top:1px solid rgba(107,140,104,.28)}
.envie-game__info{display:grid;gap:8px;padding:16px 18px 18px}
.envie-game__links{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.envie-game__links a{padding:7px 12px;border-radius:8px;background:#fffdf8;border:1px solid #c9d9be;color:#3d5136;font:700 .7rem var(--font-body);text-decoration:none;transition:background .25s,transform .25s}
.envie-game__links a:hover{background:#eef3e9;transform:translateY(-1px)}


/* ═══════════════════════════════════════════════════════════════════════════
   F · HORIZONS · projet · rituel · idée
   ═══════════════════════════════════════════════════════════════════════════ */
.horizon{position:relative;min-width:0;text-align:left;font-family:inherit;color:inherit}
.horizon[data-interactive]{cursor:pointer}
.horizon__kicker{display:inline-block;font:800 .6rem/1.4 var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:#8b4e5d}
.horizon__title{margin:8px 0 0;font:500 clamp(1.15rem,1.5vw,1.45rem)/1.2 var(--font-display);color:#2f211d;letter-spacing:-.02em;overflow-wrap:anywhere;transition:color .3s}
.horizon:hover .horizon__title{color:#6b2732}
.horizon__text{margin:8px 0 0;font:400 .86rem/1.65 var(--font-body);color:#6b5450;overflow-wrap:anywhere}
.horizon-hint{margin:0 0 20px;color:var(--ink-muted);font:700 .7rem var(--font-body);letter-spacing:.1em;text-transform:uppercase}
.horizons-project{display:grid;gap:clamp(18px,2.4vw,28px)}
.horizons-idea{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:clamp(20px,3vw,30px);padding:clamp(10px,2vw,20px)}

/* Projet */
.horizon--project{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(24px,3vw,44px);align-items:center;padding:clamp(24px,3vw,36px);border-radius:22px;background:linear-gradient(160deg,#fffaf5,#f9ebf0);border:1px solid rgba(197,120,138,.22);box-shadow:0 14px 38px -28px rgba(120,60,80,.28);transition:transform .4s var(--ease-out),box-shadow .4s}
.horizon--project:hover{transform:translateY(-4px);box-shadow:0 28px 54px -28px rgba(120,60,80,.45)}
.horizon-project__copy{display:grid;gap:10px;min-width:0}
.horizon-project__meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:6px}
.horizon-project__steps{display:flex;gap:6px}
.horizon-project__steps i{width:22px;height:4px;border-radius:2px;background:rgba(138,64,88,.18);transition:background .35s,transform .35s}
.horizon--project:hover .horizon-project__steps i.is-on{animation:stepPulse 1.2s ease-in-out infinite}
.horizon-project__steps i:nth-child(2){animation-delay:.15s}
.horizon-project__steps i:nth-child(3){animation-delay:.3s}
@keyframes stepPulse{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.6)}}
.horizon-project__steps i.is-on{background:#8a4058}
.horizon-project__date{font:700 .74rem var(--font-body);letter-spacing:.05em;color:#8a4058}
.horizon-project__frame{aspect-ratio:5/4;border-radius:18px;overflow:hidden;background:#f2e2e6;box-shadow:inset 0 0 0 1px rgba(197,120,138,.15);transition:transform .5s var(--ease-out)}
.horizon--project:hover .horizon-project__frame{transform:scale(1.015)}
.horizon-project__frame img{width:100%;height:100%;object-fit:cover}

/* Rituel — rendez-vous hebdomadaire lisible */
.horizon--ritual{position:relative;display:grid;grid-template-columns:148px minmax(0,1fr);align-items:center;gap:26px;padding:clamp(23px,3vw,36px);border-radius:var(--r-lg);background:linear-gradient(130deg,var(--paper-soft),var(--sage-tint));border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.horizon--ritual:hover{box-shadow:var(--shadow-md)}
.horizons-ritual{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:22px}
.horizon-ritual__dial{display:grid;justify-items:center;gap:14px;padding:20px 8px;border-radius:var(--r-lg);background:var(--paper);border:1px solid var(--sage-soft)}
.horizon-ritual__ring{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%}
.horizon-ritual__ring i{display:grid;place-items:center;font:700 .68rem var(--font-body);font-style:normal;border-radius:var(--r-sm);width:100%;min-height:26px;background:var(--paper-warm);color:var(--ink-muted)}
.horizon-ritual__ring i.is-on{background:var(--sage);color:var(--paper-soft)}
.horizon-ritual__hour{font:400 clamp(1.65rem,2.4vw,2.5rem) var(--font-display);color:var(--sage-deep)}
.horizon-ritual__copy{display:grid;gap:13px;min-width:0}
.horizon--ritual .horizon__kicker{color:var(--sage-deep);font-size:.75rem;letter-spacing:.17em}
.horizon--ritual .horizon__title{font:500 clamp(1.3rem,1.7vw,1.85rem) var(--font-display);line-height:1.18}
.horizon-ritual__schedule{font:700 .85rem/1.5 var(--font-body);color:var(--sage-deep)}
@media(max-width:560px){.horizons-ritual,.cards--lingerie{grid-template-columns:1fr}.horizon--ritual{grid-template-columns:1fr;gap:18px}.horizon-ritual__dial{grid-template-columns:1fr;justify-items:center}.horizon-ritual__ring{max-width:280px}}


/* Idée */
.horizon--idea{position:relative;padding:26px 24px 24px;border-radius:4px;background:repeating-linear-gradient(180deg,#fffcf4 0 27px,rgba(138,106,84,.14) 27px 28px),linear-gradient(160deg,#fffcf4,#f4ecdc);box-shadow:6px 8px 22px -14px rgba(80,50,20,.28),inset 0 0 0 1px rgba(138,106,84,.12);transition:transform .45s var(--ease-spring),box-shadow .45s}
.horizon--idea:nth-child(4n+1){transform:rotate(-1.1deg)}
.horizon--idea:nth-child(4n+2){transform:rotate(1deg)}
.horizon--idea:nth-child(4n+3){transform:rotate(-.5deg)}
.horizon--idea:nth-child(4n+4){transform:rotate(1.3deg)}
.horizon--idea:hover{transform:rotate(0) translateY(-6px);box-shadow:14px 18px 42px -16px rgba(80,50,20,.48);z-index:2}
.horizon-idea__pin{position:absolute;top:12px;right:14px;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e0b3a4,#b8656a 60%,#7d3e49);box-shadow:0 3px 8px -2px rgba(107,39,50,.6),inset 0 1px 1px rgba(255,255,255,.4);transition:transform .4s var(--ease-spring)}
.horizon--idea:hover .horizon-idea__pin{transform:scale(1.25) rotate(20deg)}
.horizon--idea .horizon__kicker{color:#8a6a54}
.horizon--idea .horizon__title{font:300 1.35rem/1.16 var(--font-display);font-style:italic;letter-spacing:-.02em}
.horizon--idea .horizon__text{font-family:var(--font-display);font-weight:300;font-style:italic;font-size:.94rem;line-height:1.7;color:#5f4a45}
.horizon--idea.has-photo{padding-top:18px}
.horizon-idea__photo{margin:-2px -8px 18px;aspect-ratio:16/10;overflow:hidden;border:7px solid #fffaf0;box-shadow:0 9px 18px -12px rgba(62,40,28,.42);transform:rotate(-.5deg)}
.horizon-idea__photo img{width:100%;height:100%;display:block;object-fit:cover}

/* ═══════════════════════════════════════════════════════════════════════════
   G · CAPSULES
   ═══════════════════════════════════════════════════════════════════════════ */
.capsules-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin:24px 0}
.capsules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(20px,3vw,30px)}
.capsule{position:relative;display:flex;flex-direction:column;gap:12px;padding:32px 26px 22px;border-radius:8px;background:linear-gradient(160deg,#fff9f1,#f4e8dc);border:1px solid rgba(138,90,60,.22);box-shadow:0 18px 40px -28px rgba(80,50,30,.4);text-align:left;font-family:inherit;color:inherit;overflow:hidden;transition:transform .4s var(--ease-out),box-shadow .4s}
.capsule:hover{transform:translateY(-4px) rotate(-.35deg);box-shadow:0 30px 56px -28px rgba(80,50,30,.55)}
.capsule::before{content:"";position:absolute;top:0;left:0;right:0;height:64px;background:linear-gradient(160deg,rgba(255,250,240,.75),rgba(230,205,180,.35));clip-path:polygon(0 0,100% 0,50% 100%);transition:transform .5s var(--ease-out)}
.capsule:hover::before{transform:translateY(-4px)}
.capsule[data-sealed]::before{background:linear-gradient(160deg,rgba(240,220,230,.6),rgba(200,160,175,.35))}
.capsule__seal{position:relative;z-index:2;width:48px;height:48px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#b0556a,#6b2732 60%,#451820);color:#f5e0d8;display:grid;place-items:center;font:400 1.3rem var(--font-display);box-shadow:inset 0 2px 5px rgba(255,255,255,.15),0 6px 14px -4px rgba(107,39,50,.5);margin:-12px auto 4px;transition:transform .4s var(--ease-spring),box-shadow .4s}
.capsule:hover .capsule__seal{transform:scale(1.08) rotate(-5deg);box-shadow:inset 0 2px 5px rgba(255,255,255,.2),0 10px 22px -4px rgba(107,39,50,.65)}
.capsule:not([data-sealed]) .capsule__seal{background:radial-gradient(circle at 35% 30%,#f5e6d5,#e0c9a8 60%,#bda079);color:#6b4a2f;box-shadow:inset 0 2px 5px rgba(255,255,255,.5),0 6px 14px -4px rgba(140,105,60,.4)}
.capsule[data-sealed] .capsule__seal::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(107,39,50,.4);animation:sealPulse 3s ease-out infinite}
@keyframes sealPulse{0%{transform:scale(.9);opacity:.6}70%{transform:scale(1.3);opacity:0}100%{transform:scale(1.3);opacity:0}}
.capsule__state{text-align:center;font:800 .6rem var(--font-body);letter-spacing:.22em;text-transform:uppercase;color:#8b4e5d}
.capsule__title{margin:0;font:500 1.2rem/1.2 var(--font-display);color:#3a2522;text-align:center}
.capsule__date{margin:0;text-align:center;font:500 .78rem var(--font-body);color:#8a6a62}
.capsule__text{margin:6px 0 0;font:400 .86rem/1.6 var(--font-body);color:#6b5450;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:4em}
.capsule__foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:14px;margin-top:auto;border-top:1px dashed rgba(138,90,60,.26);color:#8a6530;font:700 .66rem var(--font-body);letter-spacing:.14em;text-transform:uppercase}
.capsule.has-photo{padding-top:18px}
.capsule__photo{position:relative;margin:-4px -8px 10px;aspect-ratio:4/3;overflow:hidden;border-radius:6px;border:1px solid rgba(138,90,60,.18);background:#f0e5d8}
.capsule__photo img{width:100%;height:100%;display:block;object-fit:cover}
.capsule[data-sealed] .capsule__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(107,39,50,.08),transparent 60%);pointer-events:none}

/* ═══════════════════════════════════════════════════════════════════════════
   H · HÉRO
   ═══════════════════════════════════════════════════════════════════════════ */
.hero{--accent:#b8893f;--mx:0;--my:0;position:relative;isolation:isolate;width:100%;max-width:none;height:clamp(540px,68vh,720px);min-height:540px;display:grid;align-items:end;overflow:hidden;background:#4a3932;color:#fff9f2;border-radius:0;margin:0;padding:0;box-sizing:border-box}
.hero[data-world="nous"]{--accent:#e2a5b1}
.hero[data-world="echoes"]{--accent:#dcb1a6}
.hero[data-world="envies"]{--accent:#e5c489}
.hero[data-world="horizons"]{--accent:#c6d5b8}
.hero[data-world="capsules"]{--accent:#edb3c7}
.hero[data-world="temps"]{--accent:#c5d5b3}
.hero__media{position:absolute;inset:-3%;z-index:-2;pointer-events:none;transition:transform 1.4s var(--ease-out)}
.hero__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;animation:heroKen 20s ease-in-out infinite alternate}
@keyframes heroKen{0%{transform:scale(1.04) translate3d(0,0,0)}100%{transform:scale(1.12) translate3d(-1.2%,-.6%,0)}}
.heroes-live .hero:hover .hero__media{transform:translate3d(var(--hero-shift-x,0px),var(--hero-shift-y,0px),0) scale(1.012)}
.hero__shade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(20,12,16,.82) 0%,rgba(20,12,16,.5) 48%,rgba(20,12,16,.22) 72%,rgba(20,12,16,.38) 100%),linear-gradient(0deg,rgba(22,13,17,.72) 0%,rgba(22,13,17,.1) 42%,transparent 70%)}
.hero__inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:end;width:100%;max-width:1560px;margin:0 auto;padding:clamp(70px,10vh,120px) clamp(24px,5vw,80px) clamp(36px,5vw,60px);box-sizing:border-box;height:100%}
@media(min-width:1024px){.hero__inner{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:clamp(28px,4vw,72px)}}
.hero__copy{width:100%;max-width:680px;min-width:0;text-wrap:pretty;animation:heroCopyIn 1.1s var(--ease-out) both}
.hero__kicker{display:block;margin-bottom:clamp(14px,2vw,24px);color:var(--accent);font:750 .72rem/1.5 var(--font-body);letter-spacing:.26em;text-transform:uppercase;animation:heroCopyIn 1.1s var(--ease-out) .05s both}
.hero__kicker::before{content:"";display:inline-block;width:26px;height:1px;background:currentColor;opacity:.6;margin-right:12px;vertical-align:middle;transform-origin:left;animation:kickerLine 1.2s var(--ease-out) .2s both}
@keyframes kickerLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hero h1{margin:0 0 clamp(14px,2vw,24px);color:#fffaf3;font:400 clamp(2.4rem,5.4vw,5rem)/1.02 var(--font-display);letter-spacing:-.045em;text-wrap:balance;animation:heroCopyIn 1.1s var(--ease-out) .1s both}
.hero h1 em{color:var(--accent);font:italic 400 .98em var(--font-accent);letter-spacing:-.02em}
.hero__text{max-width:56ch;margin:0;color:rgba(255,250,243,.86);font:450 clamp(.98rem,1.15vw,1.15rem)/1.75 var(--font-body);animation:heroCopyIn 1.1s var(--ease-out) .18s both}
.hero__signature{display:inline-flex;align-items:center;gap:12px;margin-top:clamp(22px,3vw,36px);color:rgba(244,237,224,.9);font:500 .85rem/1.4 var(--font-accent);letter-spacing:.14em;text-transform:uppercase;animation:heroCopyIn 1.1s var(--ease-out) .26s both}
.hero__signature i{font-style:normal;color:var(--accent);font-size:1.1rem;animation:signatureHeart 2.4s ease-in-out infinite}
@keyframes signatureHeart{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
@keyframes heroCopyIn{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.hero__aside{position:relative;z-index:3;min-width:0;width:100%;align-self:end;display:flex;flex-direction:column;justify-content:flex-end;animation:heroAsideIn 1.2s var(--ease-out) both;animation-delay:.3s}
@keyframes heroAsideIn{from{opacity:0;transform:translateY(40px) scale(.96)}to{opacity:1;transform:none}}

/* ═══════════════════════════════════════════════════════════════════════════
   I · TILE / WIDGET
   ═══════════════════════════════════════════════════════════════════════════ */
.tile{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,2vw,22px);align-items:start;padding:clamp(22px,2.6vw,30px);background:linear-gradient(135deg,#fffdfa,#f5ece2);color:var(--ink);border:1px solid rgba(31,24,20,.08);border-radius:22px;box-shadow:0 16px 45px -28px rgba(31,24,20,.28)}
.tile__emblem{display:grid;place-items:center;flex:none;width:54px;height:54px;border:1px solid rgba(184,137,63,.42);background:radial-gradient(circle at 35% 30%,#fffaf0,var(--paper));color:var(--wine);border-radius:50%;font:400 1.55rem var(--font-accent)}
.tile__copy{display:grid;gap:6px;min-width:0}
.tile__copy small{color:var(--terra-deep);font:800 .62rem/1.4 var(--font-body);letter-spacing:.22em;text-transform:uppercase}
.tile__copy strong{display:block;color:var(--ink);font:500 clamp(1.15rem,1.5vw,1.4rem)/1.25 var(--font-display);letter-spacing:-.015em;overflow-wrap:anywhere}
.tile__copy>span{color:#62554b;font:400 .85rem/1.55 var(--font-body);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.tile__cells{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(31,24,20,.08)}
.tile__cells>span{display:grid;gap:4px;min-width:0}
.tile__cells b{color:var(--wine);font:500 clamp(1.15rem,1.6vw,1.55rem)/1.1 var(--font-display)}
.tile__cells small{color:#766658;font:700 .62rem/1.35 var(--font-body);letter-spacing:.08em;text-transform:uppercase}
.tile--time{grid-template-columns:auto minmax(0,1fr);gap:16px}
.tile--time .tile__foot{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(31,24,20,.08)}
.tile--time .tile__foot>div{padding:12px 14px;border-radius:14px;background:#fffdf8;border:1px solid rgba(31,24,20,.06)}
.tile--time .tile__foot small{display:block;margin-bottom:6px;color:var(--terra-deep);font:800 .58rem var(--font-body);letter-spacing:.18em;text-transform:uppercase}
.tile--time .tile__foot strong{display:block;color:var(--wine);font:500 1.35rem/1.2 var(--font-display)}

/* Variante tile dans hero */
.hero .tile{position:relative;background:linear-gradient(135deg,rgba(255,250,242,.14),rgba(255,250,242,.05));backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);border:1px solid rgba(255,255,255,.22);box-shadow:0 32px 68px -22px rgba(15,8,10,.65),inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(255,255,255,.06);color:#fffaf3;height:100%;box-sizing:border-box;align-content:start;overflow:hidden;isolation:isolate}
.hero .tile::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(115deg,transparent 30%,rgba(255,240,220,.55) 50%,transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.7;animation:tileShimmer 6s ease-in-out infinite;pointer-events:none}
@keyframes tileShimmer{0%,100%{opacity:.35;transform:translateX(-6%)}50%{opacity:.85;transform:translateX(6%)}}
.hero .tile__emblem{border-color:rgba(255,255,255,.32);background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.22),rgba(255,255,255,.06));color:#fffaf3;animation:tileEmblem 4.5s ease-in-out infinite;box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
@keyframes tileEmblem{0%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 0 0 0 rgba(255,235,215,.35)}50%{box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 0 0 14px rgba(255,235,215,0)}}
.hero .tile__copy small{color:rgba(255,238,220,.9)}
.hero .tile__copy strong{color:#fffaf3}
.hero .tile__copy>span{color:rgba(255,240,225,.78)}
.hero .tile__cells{border-top-color:rgba(255,255,255,.14)}
.hero .tile__cells b{color:#fffaf3}
.hero .tile__cells small{color:rgba(255,235,220,.72)}
.hero .tile--time .tile__foot{border-top-color:rgba(255,255,255,.14)}
.hero .tile--time .tile__foot>div{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}
.hero .tile--time .tile__foot small{color:rgba(255,235,220,.78)}
.hero .tile--time .tile__foot strong{color:#fffaf3}

/* ═══════════════════════════════════════════════════════════════════════════
   J · DIVIDER · JUMP · WORLD
   ═══════════════════════════════════════════════════════════════════════════ */
.divider{position:relative;isolation:isolate;width:100%;height:clamp(145px,17vw,260px);margin:clamp(24px,3vw,46px) 0;border-top:1px solid rgba(166,99,85,.15);border-bottom:1px solid rgba(166,99,85,.15);background:#f8eee6;overflow:hidden}
.divider[data-tone="rose"]{background:url('../images/visuels/separation-envies.webp') center/cover no-repeat}
.divider[data-tone="sage"]{background:url('../images/visuels/separation-horizons.webp') center/cover no-repeat}
.divider::before{content:"";position:absolute;inset:-5%;z-index:0;background:inherit;background-position:center;background-size:cover;animation:dividerBreathe 22s ease-in-out infinite alternate;pointer-events:none}
.divider::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,253,247,.17),transparent 30% 70%,rgba(255,253,247,.18));pointer-events:none}
.divider__glint{position:absolute;inset:0;z-index:1;background:linear-gradient(112deg,transparent 28%,rgba(255,255,255,.14) 45%,transparent 64%);background-size:250% 100%;animation:dividerGlint 13s ease-in-out infinite;pointer-events:none}
.divider__orb{position:absolute;z-index:2;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgba(255,246,224,.5),rgba(255,246,224,0) 68%);filter:blur(1px);animation:dividerOrb 9s ease-in-out infinite alternate;pointer-events:none}
.divider__orb--1{left:14%;top:18%}.divider__orb--2{right:12%;bottom:8%;animation-delay:-4s;transform:scale(.72)}
.divider__petal{position:absolute;z-index:3;width:12px;height:18px;border-radius:80% 20% 80% 20%;background:linear-gradient(145deg,rgba(232,170,183,.78),rgba(255,235,221,.45));opacity:.68;animation:dividerPetal 8s linear infinite;pointer-events:none}
.divider__petal--1{left:32%;top:-18px}.divider__petal--2{right:29%;top:-22px;animation-delay:-3.7s;animation-duration:10s}
.divider__line{position:absolute;left:4%;right:4%;z-index:4;height:1px;background:linear-gradient(90deg,transparent,rgba(255,247,235,.85) 18%,rgba(184,137,63,.8) 50%,rgba(255,247,235,.85) 82%,transparent);transform-origin:center;animation:dividerLinePulse 5.8s ease-in-out infinite}
.divider__line--top{top:18px}.divider__line--bottom{bottom:18px;animation-delay:-2.9s}
.divider__trace{position:absolute;z-index:4;width:34%;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);filter:drop-shadow(0 0 4px rgba(255,235,205,.45));animation:dividerTrace 7.8s ease-in-out infinite}
.divider__trace--1{left:-10%;top:38%}.divider__trace--2{right:-10%;bottom:34%;animation-delay:-3.9s;animation-direction:reverse}
@keyframes dividerLinePulse{0%,100%{opacity:.28;transform:scaleX(.94)}50%{opacity:.8;transform:scaleX(1)}}
@keyframes dividerTrace{0%{transform:translateX(-20%);opacity:0}20%{opacity:.65}75%{opacity:.5}100%{transform:translateX(210%);opacity:0}}
@keyframes dividerOrb{0%{transform:translate3d(-12px,8px,0) scale(.7);opacity:.28}100%{transform:translate3d(28px,-16px,0) scale(1.22);opacity:.75}}
@keyframes dividerPetal{0%{transform:translate3d(0,-10px,0) rotate(0);opacity:0}15%{opacity:.8}100%{transform:translate3d(44px,280px,0) rotate(420deg);opacity:0}}
@keyframes dividerBreathe{from{transform:scale(1)}to{transform:scale(1.04)}}
@keyframes dividerGlint{0%,20%{background-position:130% 0}55%,100%{background-position:-150% 0}}

.jump{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:20px 0 30px;padding:0;scroll-margin-top:20px}
.jump__caption{flex-basis:100%;font:700 .65rem/1.25 var(--font-body);letter-spacing:.19em;color:#ab765c;margin-bottom:3px}
.jump button{appearance:none;border:1px solid #ddc9ba;border-radius:999px;min-height:44px;padding:10px 18px;background:#fbf3e9;color:var(--wine);font:700 .78rem/1.25 var(--font-body);cursor:pointer;transition:background .25s,transform .25s var(--ease-spring),box-shadow .25s}
.jump button:hover{background:#f3e5d9;transform:translateY(-3px);box-shadow:0 10px 22px -12px rgba(107,39,50,.35)}

.world-page{width:100%;max-width:none;margin:0;padding:0 0 96px}
.world-inner{width:min(calc(100% - 40px),1520px);margin:0 auto}
.world-section{padding:clamp(30px,5vw,60px) 0;border-top:1px solid var(--line)}
.world-section:first-of-type{border-top:0}
.world-section__head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:clamp(24px,3vw,40px);padding-bottom:20px;border-bottom:1px solid rgba(31,24,20,.08);flex-wrap:wrap}
.world-section__head small{display:block;font:700 .66rem/1.3 var(--font-body);letter-spacing:.28em;color:var(--terra);text-transform:uppercase;margin-bottom:8px}
.world-section__head h2{font-family:var(--font-display);font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:300;letter-spacing:-.04em;color:var(--ink);margin:0;line-height:1.04}
.world-section__head h2 em{font-family:var(--font-accent);font-style:italic;color:var(--terra);font-weight:300}
.world-section__head p{color:var(--ink-muted);font-size:.87rem;line-height:1.45;margin:8px 0 0}
.world-empty{padding:28px 24px;border:1px dashed rgba(31,24,20,.18);border-radius:18px;color:var(--ink-muted);background:#fffaf4;text-align:center;font:400 .9rem/1.55 var(--font-body)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.filters button{min-height:38px;padding:9px 15px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font:650 .76rem var(--font-body);cursor:pointer;transition:background .25s,border-color .25s,transform .25s}
.filters button:hover{background:var(--paper-warm);transform:translateY(-1px)}
.filters button.is-on{background:var(--wine);border-color:var(--wine);color:#fff8f0;box-shadow:0 8px 18px -10px rgba(107,39,50,.5)}
.echo-author-filter{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:9px 0 26px;padding:14px 17px;border:1px solid #e8d7ca;border-radius:18px;background:linear-gradient(110deg,#fffaf4,#f8eae3)}
.echo-author-filter>span{margin-right:8px;color:#926b60;font:700 .73rem var(--font-body)}
.echo-author-filter .btn.is-on{background:var(--wine);border-color:var(--wine);color:#fff8f0}

/* ═══════════════════════════════════════════════════════════════════════════
   K · MODALES
   ═══════════════════════════════════════════════════════════════════════════ */
.modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:24px;background:color-mix(in srgb,var(--ink) 32%,transparent);backdrop-filter:blur(16px) saturate(120%);-webkit-backdrop-filter:blur(16px) saturate(120%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s var(--ease),visibility .32s}
.modal.is-on{opacity:1;visibility:visible;pointer-events:auto}
.modal--dialog{z-index:700}
.modal__card{width:min(540px,100%);padding:34px 32px 28px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--paper-soft);box-shadow:0 50px 120px -40px rgba(31,24,20,.45),0 12px 30px -12px rgba(31,24,20,.22);transform:translateY(20px) scale(.98);transition:transform .4s var(--ease-out);position:relative;overflow:hidden}
.modal.is-on .modal__card{transform:none}
.modal__card::before{content:"";position:absolute;top:0;left:30%;right:30%;height:2px;background:linear-gradient(90deg,transparent,var(--terra),transparent);opacity:.55;pointer-events:none}
.modal__card--studio{position:absolute;inset:20px;max-width:1320px;width:auto;height:auto;padding:0;display:grid;grid-template-rows:auto 1fr auto;margin:auto;border-radius:var(--r-lg);background:var(--paper-soft);overflow:hidden;transform:translateY(28px) scale(.97);transition:transform .5s var(--ease-out)}
.modal.is-on .modal__card--studio{transform:none}
.modal__head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 30px;border-bottom:1px solid var(--line);background:var(--paper-warm)}
.modal__head>div{display:grid;gap:4px;min-width:0}
.modal__head small{display:inline-flex;align-items:center;gap:10px;font:800 .58rem var(--font-body);letter-spacing:.28em;color:var(--terra);text-transform:uppercase}
.modal__head small::before{content:"";width:22px;height:1px;background:currentColor;opacity:.6}
.modal__head h2{font-size:1.9rem;font-weight:400;margin:0;color:var(--ink);line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal__body{position:relative;min-height:0;display:grid;grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);overflow:hidden}
.modal__foot{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:18px 30px;border-top:1px solid var(--line);background:var(--paper-warm)}
.modal__foot #studio-delete{margin-right:auto}
.dialog__kicker{display:inline-flex;align-items:center;gap:10px;font:800 .62rem var(--font-body);letter-spacing:.26em;color:var(--terra);text-transform:uppercase}
.dialog__kicker::before{content:"";width:22px;height:1px;background:currentColor;opacity:.6}
.dialog__kicker.is-danger{color:var(--wine)}
.modal__card h3{font-family:var(--font-display);font-size:1.85rem;font-weight:400;color:var(--ink);margin:12px 0 14px;letter-spacing:-.032em;line-height:1.1}
.modal__card p{font-family:var(--font-display);font-weight:300;color:var(--ink-soft);line-height:1.65;font-size:1.02rem;margin:0}
.dialog__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}

.studio__preview{position:relative;overflow-y:auto;padding:28px;border-right:1px solid var(--line);background:radial-gradient(circle at 20% 15%,color-mix(in srgb,var(--terra) 8%,transparent),transparent 45%),var(--paper-warm)}
.studio__preview::before{content:"Aperçu en direct";position:absolute;top:14px;left:28px;font:800 .56rem var(--font-body);letter-spacing:.28em;color:var(--ink-faint);text-transform:uppercase}
.studio__form{padding:28px 34px 46px;overflow-y:auto;background:var(--paper-soft);-webkit-overflow-scrolling:touch}
/* Aperçu vivant de la page écrite dans l'Atelier Échos */
.studio-writing-preview{display:grid;align-content:start;gap:18px;min-height:420px;padding:clamp(22px,3vw,42px);border:1px solid var(--line-strong);background:linear-gradient(150deg,var(--paper),var(--paper-warm));box-shadow:var(--shadow-sm)}
.studio-writing-preview__kicker{font:700 .63rem/1.5 var(--font-body);color:var(--terra);letter-spacing:.16em;text-transform:uppercase}
.studio-writing-preview h3{font:400 clamp(1.7rem,2vw,2.2rem)/1.12 var(--font-display);color:var(--ink);margin:0 0 5px}
.studio-writing-preview__body{display:grid;align-content:start;gap:16px;overflow-wrap:anywhere}
.studio-writing-preview__body p{margin:0;color:var(--ink-soft);font:400 .94rem/1.85 var(--font-body);white-space:pre-wrap}
.studio-writing-preview.is-poem{background:linear-gradient(155deg,var(--paper-soft),var(--rose-soft))}
.studio-writing-preview.is-poem .studio-writing-preview__body p{font:400 1.12rem/1.95 var(--font-display)}
.studio-writing-preview__empty{font-style:italic}
/* Échos · Atelier d’écriture : texte = prose éditoriale, poème = strophes */
.studio-writing{display:grid;gap:23px}
.studio-writing__topline{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--gold-soft);color:var(--wine);font:700 .64rem var(--font-body);letter-spacing:.2em}
.studio-writing__topline i{font:1.6rem var(--font-display);color:var(--gold)}
.studio-writing__formats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;border:0;min-width:0}
.studio-writing__formats legend{padding:0 0 12px;color:var(--ink-soft);font:700 .76rem var(--font-body)}
.studio-writing__format{display:block;min-width:0;cursor:pointer}
.studio-writing__format input{position:absolute;opacity:0;width:1px;height:1px}
.studio-writing__format span{display:grid;gap:5px;padding:15px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);transition:border-color .25s,background .25s,transform .25s}
.studio-writing__format strong{font:500 1.35rem var(--font-display);color:var(--ink)}
.studio-writing__format small{font:400 .71rem/1.5 var(--font-body);color:var(--ink-muted)}
.studio-writing__format:has(input:checked) span{background:var(--terra-tint);border-color:var(--terra);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--terra) 17%,transparent)}
.studio-writing__format:has(input:focus-visible) span{outline:2px solid var(--wine);outline-offset:3px}
.studio-writing__form-value{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.studio-writing__details{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.studio-writing__paper{display:grid;gap:15px;padding:clamp(18px,2.5vw,32px);border:1px solid var(--line-strong);border-radius:var(--r-md);background:linear-gradient(135deg,var(--paper),var(--paper-warm));box-shadow:var(--shadow-sm)}
.studio-writing__paper-kicker{font:700 .61rem var(--font-body);color:var(--terra);letter-spacing:.24em}
.studio-writing__paper>label{font:500 clamp(1.6rem,2.5vw,2.1rem)/1.1 var(--font-display);color:var(--ink)}
.studio-writing__paper textarea{display:block;min-height:290px;width:100%;padding:8px 2px;border:0;border-radius:0;resize:vertical;background:transparent;box-shadow:none;color:var(--ink);font:400 1rem/1.95 var(--font-body);white-space:pre-wrap}
.studio-writing__paper textarea:focus{outline:0;box-shadow:none}
.studio-writing__paper:focus-within{border-color:var(--terra)}
.studio-writing__paper footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--line);font:.69rem/1.5 var(--font-body);color:var(--ink-muted)}
.studio-writing__paper[data-writing-form="poem"] textarea,.studio-writing[data-writing-form="poem"] .studio-writing__paper textarea{font:400 1.12rem/1.9 var(--font-display);letter-spacing:.015em}
.studio-writing[data-writing-form="poem"] .studio-writing__paper{background:linear-gradient(130deg,var(--paper-soft),var(--rose-soft))}
.pp__paper--prose .pp__letter-prose p{margin:0 0 1.2em;font:400 1rem/1.9 var(--font-body);white-space:pre-wrap;color:var(--ink-soft)}
.pp__paper--poem .pp__letter-prose p{margin:0 0 1.5em;font:400 1.2rem/1.85 var(--font-display);white-space:pre-wrap;color:var(--ink-soft)}
.pp__paper--poem .pp__letter-prose p::first-letter{font-size:1.8em;color:var(--terra)}
@media(max-width:620px){.studio-writing__details{grid-template-columns:1fr}.studio-writing__formats{gap:8px}.studio-writing__format span{padding:12px}.studio-writing__paper{padding:18px}.studio-writing__paper textarea{min-height:250px}}

.studio-section{position:relative;padding-bottom:30px;margin-bottom:30px;border-bottom:1px solid var(--line)}
.studio-section:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}
.studio-section__title{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--line-soft)}
.studio-section__title strong{position:relative;padding-left:20px;font-family:var(--font-display);font-size:1.3rem;font-weight:500;color:var(--ink);letter-spacing:-.028em}
.studio-section__title strong::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:12px;height:1px;background:var(--terra)}
.studio-section__title small{font:400 .74rem/1.5 var(--font-body);color:var(--ink-faint);text-align:right;max-width:240px}
.preview-card{position:sticky;top:0;margin-top:30px;display:flex;flex-direction:column;border-radius:var(--r-md);overflow:hidden;min-height:420px;background:var(--paper);border:1px solid var(--line);box-shadow:0 24px 50px -28px rgba(31,24,20,.3)}
.preview-card__media{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;max-height:400px;overflow:hidden}
.preview-card__media.n1{grid-template-columns:1fr}
.preview-card__media img{width:100%;height:100%;min-height:140px;object-fit:cover}
.preview-card__copy{padding:22px 22px 26px;display:grid;gap:8px}
.preview-card__copy small{font:800 .58rem var(--font-body);letter-spacing:.24em;color:var(--terra);text-transform:uppercase}
.preview-card__copy h3{font-family:var(--font-display);font-size:1.7rem;font-weight:400;margin:4px 0 6px;color:var(--ink);line-height:1.05}
.preview-card__copy p{font-family:var(--font-display);font-weight:300;font-size:.98rem;line-height:1.65;color:var(--ink-soft);white-space:pre-wrap;margin:0;font-style:italic;opacity:.85}

/* ═══════════════════════════════════════════════════════════════════════════
   L · PREVIEW
   ═══════════════════════════════════════════════════════════════════════════ */
.preview-layer{position:fixed;inset:0;z-index:600;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s,visibility .32s}
.preview-layer.is-on{opacity:1;visibility:visible;pointer-events:auto}
.preview-scrim{position:absolute;inset:0;background:color-mix(in srgb,var(--ink) 48%,transparent);backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%)}
.preview-card{position:relative;z-index:1;width:min(820px,100%);max-height:min(90svh,920px);display:flex;flex-direction:column;border-radius:var(--r-lg);background:var(--paper-soft);border:1px solid var(--line);box-shadow:0 60px 140px -40px rgba(31,24,20,.5),0 20px 50px -20px rgba(31,24,20,.25);overflow:hidden;transform:translateY(24px) scale(.97);transition:transform .48s var(--ease-out)}
.preview-layer.is-on .preview-card{transform:none}
.preview-card[data-kind="album"]{width:min(1000px,100%)}
.preview-card[data-kind="collection"][data-cat="lingerie"]{width:min(1080px,100%)}
.preview-card[data-kind="letter"]{width:min(820px,100%)}
.preview-close{position:absolute;top:18px;right:18px;z-index:8;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--ink);font-size:1.3rem;cursor:pointer;display:grid;place-items:center;transition:background .28s,color .28s,transform .4s var(--ease-spring)}
.preview-close:hover{background:var(--terra);border-color:var(--terra);color:var(--paper);transform:rotate(90deg)}
.preview-body{position:relative;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--paper-soft)}
.preview-foot{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;border-top:1px solid var(--line);background:var(--paper-warm)}
.preview-foot button{min-height:46px;padding:0 22px;border-radius:var(--r-pill);font:600 .86rem var(--font-body);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .25s,color .25s,transform .25s}
.preview-foot .btn--danger{border:1px solid var(--wine);background:transparent;color:var(--wine)}
.preview-foot .btn--danger:hover{background:var(--wine);color:var(--paper)}
.preview-foot .btn--primary{border:1px solid var(--terra);background:var(--terra);color:var(--paper);box-shadow:0 12px 26px -14px rgba(184,85,58,.55)}
.preview-foot .btn--primary:hover{background:var(--terra-deep);border-color:var(--terra-deep)}
.pp__head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.pp__kicker{display:inline-flex;padding:7px 14px;border-radius:var(--r-pill);background:var(--paper-warm);border:1px solid var(--line);font:800 .6rem var(--font-body);letter-spacing:.24em;color:var(--terra);text-transform:uppercase}
.pp__title{font-family:var(--font-display);font-weight:400;font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.04;letter-spacing:-.04em;margin:0 0 16px;color:var(--ink)}
.pp__sub{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font:400 .84rem/1.5 var(--font-body);color:var(--ink-muted);margin-bottom:22px}
.pp__text{font-family:var(--font-display);font-weight:300;font-size:1.1rem;line-height:1.85;color:var(--ink-soft);white-space:pre-wrap;margin:0 0 24px;overflow-wrap:anywhere}
.pp__quote{position:relative;font-family:var(--font-display);font-style:italic;font-weight:300;font-size:clamp(1.5rem,3.2vw,2.15rem);line-height:1.4;color:var(--ink);margin:0 0 22px;padding-left:28px;letter-spacing:-.025em}
.pp__quote::before{content:"";position:absolute;left:0;top:.12em;bottom:.12em;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--terra),color-mix(in srgb,var(--terra) 40%,transparent))}
.pp__body{padding:24px 32px 32px}
.pp__photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:24px}
.pp__photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-sm);box-shadow:0 12px 30px -20px rgba(31,24,20,.3);cursor:zoom-in}
.pp__links{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 0}
.pp__link{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:var(--r-pill);background:var(--paper-warm);border:1px solid var(--line);color:var(--ink);text-decoration:none;font:600 .84rem var(--font-body);transition:background .25s,border-color .25s,transform .25s}
.pp__link:hover{background:color-mix(in srgb,var(--terra) 10%,var(--paper-warm));border-color:var(--terra);transform:translateY(-2px)}
.pp__price{display:inline-block;padding:8px 16px;border-radius:var(--r-pill);background:var(--gold-soft);border:1px solid var(--gold);color:var(--gold-deep);font:700 .84rem var(--font-body);margin-bottom:16px}
.pp__paper{position:relative;background:var(--paper-warm);color:var(--ink);padding:40px 38px 36px;margin:0 24px 24px;border-radius:var(--r-sm);box-shadow:0 20px 50px -30px rgba(31,24,20,.3)}
.pp__paper::before{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 42px 42px 0;border-color:transparent var(--paper-deep) transparent transparent;opacity:.65}
.pp__paper::after{content:"";position:absolute;top:20px;bottom:20px;left:24px;width:1px;background:color-mix(in srgb,var(--terra) 22%,transparent)}
.pp__letter-title{position:relative;z-index:2;font-family:var(--font-display);font-size:clamp(1.6rem,3.2vw,2.4rem);color:var(--ink);letter-spacing:-.032em;margin:16px 0 22px;font-weight:400}
.pp__letter-body{position:relative;z-index:2;font-family:var(--font-display);font-weight:300;font-size:1.1rem;line-height:1.92;color:var(--ink-soft);white-space:pre-wrap;margin:0 0 22px;overflow-wrap:anywhere}
.pp__album-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.pp__album-grid img{flex:1 1 30%;min-width:26%;height:200px;object-fit:cover;border-radius:var(--r-sm);cursor:zoom-in}
.pp__capsule-sealed{position:relative;padding:clamp(50px,8vh,76px) clamp(30px,5vw,56px);text-align:center;background:var(--paper-warm);display:grid;gap:10px;justify-items:center}
.pp__capsule-orbit{position:relative;width:140px;height:140px;margin:0 auto 30px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,color-mix(in srgb,var(--wine) 18%,transparent),transparent 65%);border:1px solid color-mix(in srgb,var(--wine) 30%,transparent);animation:capsuleOrbit 8s ease-in-out infinite}
@keyframes capsuleOrbit{0%,100%{box-shadow:0 0 0 0 rgba(107,39,50,.2)}50%{box-shadow:0 0 0 18px rgba(107,39,50,0)}}
.pp__capsule-orbit span{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#a04a58,var(--wine) 60%,#451820);color:var(--paper);font-family:var(--font-display);font-size:2rem}
.pp--lingerie{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.9fr);min-height:min(74vh,730px)}
.pp--lingerie .pp__stage{display:flex;flex-direction:column;background:#f5eae4}
.pp--lingerie .pp__stage-main{position:relative;flex:1 1 auto;min-height:320px;display:grid;place-items:center;background:radial-gradient(ellipse at 52% 31%,#f9f3ed,#ead8d8 75%);overflow:hidden}
.pp--lingerie .pp__stage-main img{width:100%;height:min(55vh,525px);max-height:525px;object-fit:contain;padding:clamp(20px,3vw,38px)}
.pp--lingerie .pp__stage-gallery{display:flex;gap:10px;padding:14px 18px 18px;overflow-x:auto;border-top:1px solid #e6d7d0;background:#f7eee9}
.pp--lingerie .pp__thumb{flex:0 0 clamp(74px,6vw,104px);position:relative;height:98px;display:grid;place-items:center;padding:5px;border:2px solid transparent;border-radius:12px;background:#fffaf6;cursor:pointer;overflow:hidden;transition:border-color .25s}
.pp--lingerie .pp__thumb img{width:100%;height:100%;object-fit:contain}
.pp--lingerie .pp__thumb.is-on{border-color:#8b4e5d;box-shadow:0 0 0 3px rgba(139,78,93,.13)}
.pp--lingerie .pp__copy{padding:clamp(26px,4vw,55px);background:linear-gradient(155deg,#fffdf9,#f9eee9);display:flex;flex-direction:column;justify-content:center}
.pp--memory{display:grid;grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr);min-height:600px;background:#fff9f2}
.pp--memory .pp__cinema{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#3b2929}
.pp--memory .pp__cinema-back{display:none}
.pp--memory .pp__cinema-main{position:relative;z-index:1;display:block;max-width:100%;max-height:600px;width:100%;height:100%;object-fit:contain;box-shadow:0 12px 45px rgba(25,16,19,.17)}
.pp--memory .pp__chapter{padding:clamp(30px,4vw,64px) clamp(25px,3.2vw,54px) 28px;display:flex;flex-direction:column;background:linear-gradient(145deg,#fffcf7,#f5e7de)}
.pp--memory .pp__chapter h2{margin:14px 0 20px;font:450 clamp(2rem,3.3vw,3.4rem)/1.07 var(--font-display);color:#3a2522;letter-spacing:-.035em}
.pp--memory .pp__chapter-text{margin-top:20px;padding-top:20px;border-top:1px solid rgba(169,113,99,.2)}
.pp--memory .pp__chapter-text p{margin:0;white-space:pre-wrap;font:400 clamp(1rem,1.4vw,1.15rem)/1.9 var(--font-display);color:#57433e}

/* ═══════════════════════════════════════════════════════════════════════════
   M · SHEET (fiche profil)
   ═══════════════════════════════════════════════════════════════════════════ */
.sheet{position:fixed;inset:0;z-index:850;visibility:hidden;pointer-events:none;opacity:0;transition:opacity .35s var(--ease),visibility .35s}
.sheet.is-open{opacity:1;visibility:visible;pointer-events:auto}
.sheet__backdrop{position:absolute;inset:0;background:color-mix(in srgb,var(--ink) 42%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.sheet__panel{position:absolute;right:0;top:0;bottom:0;width:min(460px,100%);background:var(--paper-soft);color:var(--ink);overflow:auto;box-shadow:-30px 0 90px rgba(31,24,20,.22);transform:translateX(48px);transition:transform .5s var(--ease-out)}
.sheet.is-open .sheet__panel{transform:none}
.sheet__close{position:absolute;top:20px;right:20px;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-size:1.3rem;cursor:pointer;z-index:3;transition:background .25s,transform .35s var(--ease-spring)}
.sheet__close:hover{background:var(--paper-warm);transform:rotate(90deg)}
.sheet__banner{height:180px;background:linear-gradient(0deg,var(--paper-soft),rgba(244,237,224,.2)),url("../images/little.webp") center/cover}
.sheet__portrait{position:relative;margin:-56px 0 0 32px;border:3px solid var(--paper-soft);border-radius:50%;width:112px;height:112px;overflow:hidden;background:var(--terra-tint);display:grid;place-items:center;font:italic 2.8rem var(--font-display);color:var(--terra);animation:portraitIn .7s var(--ease-spring) both}
@keyframes portraitIn{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.sheet__portrait img{width:100%;height:100%;object-fit:cover}
.sheet__body{padding:24px 34px 60px}
.sheet__body>small{font:800 .62rem var(--font-body);letter-spacing:.24em;color:var(--terra);text-transform:uppercase}
.sheet__body h2{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3rem);line-height:1;letter-spacing:-.045em;margin:14px 0 22px;font-weight:300}
.sheet__note{position:relative;padding:20px 22px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-warm);margin-bottom:28px}
.sheet__note::after{content:"♡";position:absolute;right:18px;top:16px;font-family:var(--font-display);font-size:1.1rem;color:var(--rose);opacity:.45;animation:signatureHeart 2.4s ease-in-out infinite}
.sheet__note small{font:800 .62rem var(--font-body);letter-spacing:.22em;color:var(--terra);text-transform:uppercase}
.sheet__note p{font-family:var(--font-display);font-style:italic;font-size:1.1rem;line-height:1.55;color:var(--ink);margin:10px 26px 0 0}
.sheet__facts{display:grid;border-block:1px solid var(--line)}
.sheet__facts>div{display:grid;gap:8px;padding:20px 0}
.sheet__facts>div+div{border-top:1px solid var(--line-soft)}
.sheet__facts small{font:700 .62rem var(--font-body);letter-spacing:.18em;color:var(--ink-faint);text-transform:uppercase}
.sheet__facts strong{font-family:var(--font-display);font-size:1.1rem;color:var(--ink);font-weight:400;letter-spacing:-.015em}
.sheet__action{width:100%;margin-top:30px;padding:16px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);border-radius:var(--r-pill);font-family:inherit;font-weight:600;font-size:.88rem;cursor:pointer;transition:background .25s,color .25s,transform .25s}
.sheet__action:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);transform:translateY(-2px)}

/* ═══════════════════════════════════════════════════════════════════════════
   N · MEDIA PICKER
   ═══════════════════════════════════════════════════════════════════════════ */
.media-picker{position:relative;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--paper);margin-top:4px}
.media-picker__tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);background:var(--paper-warm)}
.media-picker__tabs button{border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink-muted);padding:13px 12px;font:600 .8rem var(--font-body);cursor:pointer;transition:background .22s,color .22s}
.media-picker__tabs button:last-child{border-right:0}
.media-picker__tabs button:hover{background:var(--paper);color:var(--ink)}
.media-picker__tabs button.is-on{background:var(--paper);color:var(--ink);box-shadow:inset 0 -2px 0 var(--terra)}
.media-picker__counter{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;padding:8px 14px;font:600 .75rem/1.3 var(--font-body);color:var(--ink-faint)}
.media-picker__counter button{font-size:.73rem;min-height:36px}
.media-picker__pane{padding:20px}
.media-picker__drop{position:relative;display:grid;justify-items:center;gap:8px;padding:28px 22px;border:1px dashed var(--line-strong);border-radius:var(--r-md);text-align:center;color:var(--ink-muted);cursor:pointer;background:var(--paper-soft);transition:border-color .28s,background .28s,color .28s,transform .28s}
.media-picker__drop:hover{border-color:var(--terra);background:color-mix(in srgb,var(--terra) 5%,var(--paper-soft));color:var(--ink);transform:scale(1.01)}
.media-picker__drop strong{display:block;font-family:var(--font-display);font-size:1.1rem;font-weight:500;color:var(--ink);margin-bottom:6px}
.media-picker__drop p{margin:6px 0 0;font-size:.84rem;color:var(--ink-muted)}
.media-picker__drop-icon{display:grid;place-items:center;width:50px;height:50px;border:1px solid color-mix(in srgb,var(--terra) 26%,var(--line));border-radius:50%;background:var(--terra-tint);font:400 1.7rem var(--font-display);color:var(--terra)}
.media-picker__choose{display:inline-flex;align-items:center;gap:13px;justify-content:center;margin-top:12px;padding:11px 20px;border-radius:var(--r-pill);background:var(--wine);color:var(--paper);font:700 .8rem var(--font-body);box-shadow:var(--shadow-sm)}
.media-picker__choose span{color:var(--gold-soft)}
.media-picker__drop:hover .media-picker__choose{background:var(--terra-deep)}
.media-picker__drop input[type=file]{position:absolute;inset:0;z-index:1;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}
.media-picker__drop:focus-within{outline:2px solid var(--terra);outline-offset:3px}
.media-picker__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}
.media-picker__grid.is-internal{max-height:340px;overflow-y:auto}
.media-picker__thumb{position:relative;aspect-ratio:1;border-radius:var(--r-sm);overflow:hidden;background:var(--paper-warm);border:1px solid var(--line-soft);padding:0;color:var(--ink);cursor:pointer;transition:border-color .25s,transform .3s var(--ease-out)}
.media-picker__thumb:hover{border-color:var(--terra);transform:translateY(-3px) scale(1.02)}
.media-picker__thumb img{width:100%;height:100%;object-fit:cover}
.media-picker__thumb small{position:absolute;left:5px;right:5px;bottom:5px;background:rgba(31,24,20,.65);color:#fff;padding:4px 6px;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:400 .62rem var(--font-body)}
.media-picker__thumb button{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(31,24,20,.75);color:#fff;font-size:.9rem;cursor:pointer;display:grid;place-items:center}
.media-picker__order{position:absolute;left:6px;top:6px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(31,24,20,.7);color:#fff;font:700 .66rem var(--font-body)}
.media-picker__grid.is-selected .media-picker__thumb.is-missing{aspect-ratio:auto;min-height:126px;display:flex;align-items:stretch;border-color:#d4a29a;background:linear-gradient(150deg,#f7e8e3,#fffbf5)}
.media-picker__missing{box-sizing:border-box;padding:43px 12px 12px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;color:#824e48;font:700 .73rem/1.3 var(--font-body)}
.media-picker__missing small{position:static;background:transparent;color:#8d7069;white-space:normal;font-size:.66rem;padding:0}
.media-url{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:stretch}
.media-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:12px}
.media-modes label{display:flex;gap:9px;padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:#fffaf6;cursor:pointer}
.media-modes label:has(input:checked){border-color:var(--wine);background:#f7e9e8}
.media-modes strong,.media-modes small{display:block}
.media-modes small{margin-top:5px;line-height:1.45;color:#836e63}
.links-repeater{display:grid;gap:10px;margin-bottom:10px}
.link-row{display:grid;grid-template-columns:minmax(80px,1fr) minmax(140px,2fr) 42px;gap:8px;align-items:center}
.link-row .control{min-height:44px;padding:10px 14px;font-size:.88rem}
.link-remove{width:42px;height:42px;border-radius:var(--r-sm);border:1px solid var(--wine);background:transparent;color:var(--wine);font-size:1.15rem;cursor:pointer;display:grid;place-items:center;transition:background .25s,color .25s,transform .25s}
.link-remove:hover{background:var(--wine);color:var(--paper);transform:scale(1.08) rotate(90deg)}

/* ═══════════════════════════════════════════════════════════════════════════
   O · PICKERS
   ═══════════════════════════════════════════════════════════════════════════ */
.picker-layer{position:fixed;inset:0;z-index:920;display:grid;place-items:center;padding:24px;background:color-mix(in srgb,var(--ink) 35%,transparent);backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,visibility .3s}
.picker-layer.is-on{opacity:1;visibility:visible;pointer-events:auto}
.picker-card{width:min(560px,calc(100vw - 32px));max-height:min(740px,calc(100svh - 40px));display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--paper-soft);box-shadow:0 40px 100px -30px rgba(31,24,20,.35);transform:translateY(20px) scale(.985);transition:transform .42s var(--ease-out)}
.picker-layer.is-on .picker-card{transform:none}
.picker-card__head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 22px;border-bottom:1px solid var(--line);background:var(--paper-warm)}
.picker-card__head small{display:block;font:800 .58rem var(--font-body);letter-spacing:.26em;color:var(--terra);text-transform:uppercase}
.picker-card__head strong{display:block;font-family:var(--font-display);font-size:1.45rem;font-weight:400;margin-top:5px;color:var(--ink);letter-spacing:-.028em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.picker-card__body{padding:20px;overflow-y:auto}
.picker-card__foot{display:flex;justify-content:space-between;gap:10px;padding:15px 20px;border-top:1px solid var(--line);background:var(--paper-warm)}
.picker-action{min-height:44px;padding:0 20px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font:600 .84rem var(--font-body);cursor:pointer;transition:background .25s,color .25s,transform .25s}
.picker-action:hover{background:var(--paper-warm);color:var(--ink);transform:translateY(-1px)}
.picker-action.is-primary{margin-left:auto;background:var(--terra);border-color:var(--terra);color:var(--paper)}
.picker-option{min-height:52px;padding:13px 18px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;font:400 .94rem var(--font-body);cursor:pointer;margin-bottom:6px;transition:background .25s,border-color .25s,transform .25s}
.picker-option:hover{background:var(--paper-warm);border-color:var(--line-strong);transform:translateX(3px)}
.picker-option.is-on{background:var(--terra-soft);border-color:var(--terra);color:var(--ink);font-weight:500}
.picker-option.is-on::after{content:"✓";width:26px;height:26px;flex:0 0 26px;border-radius:50%;display:grid;place-items:center;background:var(--terra);color:var(--paper);font-weight:900;font-size:.78rem}
.picker-nav{display:grid;grid-template-columns:46px 1fr 46px;align-items:center;gap:8px;margin-bottom:18px}
.picker-nav button{height:44px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;font-size:1rem;display:grid;place-items:center;transition:background .25s,transform .25s}
.picker-nav button:hover{background:var(--paper-warm);transform:scale(1.05)}
.picker-nav strong{text-align:center;font-family:var(--font-display);font-size:1.3rem;font-weight:400;text-transform:capitalize;color:var(--ink)}
.picker-weekdays,.picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.picker-weekdays span{text-align:center;font:800 .58rem var(--font-body);text-transform:uppercase;letter-spacing:.16em;color:var(--ink-faint);padding:4px 0}
.picker-day{aspect-ratio:1;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--ink-soft);display:grid;place-items:center;font:400 .88rem var(--font-body);cursor:pointer;transition:background .22s,border-color .22s,transform .22s}
.picker-day:hover{background:var(--paper-warm);border-color:var(--line);color:var(--ink);transform:scale(1.1)}
.picker-day.is-out{opacity:.32}
.picker-day.is-today{color:var(--terra);font-weight:600}
.picker-day.is-on{background:var(--terra);color:var(--paper);border-color:var(--terra);font-weight:600;box-shadow:0 6px 14px -6px rgba(184,85,58,.55)}
.picker-time{text-align:center;padding:8px 0 20px}
.picker-time strong{font-family:var(--font-display);font-size:3.2rem;font-weight:300;color:var(--ink);display:inline-block;min-width:4ch}
.picker-time::after{content:"";display:block;width:40px;height:1px;background:var(--terra);opacity:.4;margin:12px auto 0}
.picker-time-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.picker-time-col{border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);overflow:hidden}
.picker-time-col>small{display:block;padding:12px 14px;border-bottom:1px solid var(--line);font:800 .56rem var(--font-body);letter-spacing:.22em;color:var(--ink-faint);text-transform:uppercase;background:var(--paper-warm)}
.picker-time-scroll{max-height:300px;overflow-y:auto;padding:8px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.picker-time-scroll button{min-height:40px;border:1px solid transparent;border-radius:var(--r-xs);background:transparent;color:var(--ink-muted);font:400 .84rem var(--font-body);cursor:pointer;transition:background .22s,color .22s}
.picker-time-scroll button:hover{background:var(--paper-warm)}
.picker-time-scroll button.is-on{background:var(--terra);color:var(--paper);font-weight:600}

/* ═══════════════════════════════════════════════════════════════════════════
   P · AUTH
   ═══════════════════════════════════════════════════════════════════════════ */
.auth{position:fixed;inset:0;z-index:500;background:var(--paper);overflow-y:auto;overflow-x:hidden;color:var(--ink)}
.auth__stage{position:relative;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(440px,.85fr)}
.auth__visual{position:relative;min-height:100dvh;overflow:hidden;background:var(--paper-warm);isolation:isolate}
.auth__visual-img{position:absolute;inset:0;background:url('../images/hero.webp') center/cover no-repeat;transform-origin:center;animation:authKen 32s ease-in-out infinite alternate}
.auth[data-mode="lock"] .auth__visual-img{background:url('../images/reunion.webp') 50% 54%/cover no-repeat;animation:authLockKen 34s ease-in-out infinite alternate}
.auth[data-mode="revoked"] .auth__visual-img{background:url('../images/reunion.webp') center/cover no-repeat;filter:saturate(.7);animation:none}
.auth__visual-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(244,237,224,.18),rgba(244,237,224,0) 42%,rgba(244,237,224,.78) 100%),linear-gradient(0deg,rgba(244,237,224,.65),transparent 45%);pointer-events:none}
.auth__visual-copy{position:absolute;z-index:3;left:clamp(28px,5.5vw,84px);right:clamp(28px,6.5vw,100px);bottom:clamp(44px,9vh,96px);max-width:620px}
.auth__visual-copy small{display:inline-flex;align-items:center;gap:14px;font:700 .68rem var(--font-body);letter-spacing:.34em;text-transform:uppercase;color:var(--terra);margin-bottom:20px}
.auth__visual-copy small::before{content:"";width:30px;height:1px;background:currentColor;opacity:.6}
.auth__visual-copy h2{font-family:var(--font-display);font-size:clamp(2.6rem,5.4vw,5.4rem);font-weight:300;line-height:.94;letter-spacing:-.055em;margin:0 0 22px;color:var(--ink)}
.auth__visual-copy h2 em{font-family:var(--font-accent);font-style:italic;color:var(--terra);font-weight:300}
.auth__visual-copy p{font-family:var(--font-display);font-size:clamp(1rem,1.3vw,1.18rem);font-weight:300;line-height:1.65;color:var(--ink-soft);max-width:500px;margin:0}
.auth__visual-trust{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.auth__visual-trust span{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid var(--line);border-radius:var(--r-pill);background:color-mix(in srgb,var(--paper-soft) 70%,transparent);font-size:.72rem;font-weight:600;color:var(--ink-soft)}
.auth__visual-heart{position:absolute;right:7%;top:11%;z-index:2;font-family:var(--font-display);font-weight:200;font-style:italic;font-size:clamp(5rem,10vw,11rem);color:color-mix(in srgb,var(--terra) 12%,transparent);animation:authHeart 9s ease-in-out infinite;pointer-events:none;user-select:none}
.auth__visual-light{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;pointer-events:none}
.auth__visual-light--1{width:320px;height:320px;left:-80px;top:-60px;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 32%,transparent),transparent 68%);animation:authLight 12s ease-in-out infinite alternate}
.auth__visual-light--2{width:280px;height:280px;right:-60px;bottom:-60px;background:radial-gradient(circle,color-mix(in srgb,var(--rose) 30%,transparent),transparent 68%);animation:authLight 14s ease-in-out 1s infinite alternate-reverse}
.auth__visual-brand{position:absolute;z-index:4;top:clamp(28px,5vh,56px);left:clamp(28px,5vw,76px);display:flex;align-items:center;gap:14px}
.auth__visual-brand img{width:52px;height:52px}
.auth__visual-brand small{display:block;font:800 .6rem var(--font-body);letter-spacing:.28em;color:var(--terra)}
.auth__visual-brand strong{font-family:var(--font-display);font-size:1.1rem;font-weight:500;color:var(--ink)}
.auth__petal{position:absolute;z-index:3;width:10px;height:16px;border-radius:80% 20% 80% 20%;background:linear-gradient(145deg,color-mix(in srgb,var(--rose) 70%,var(--paper)),color-mix(in srgb,var(--rose) 40%,transparent));opacity:.5;animation:authPetal 13s linear infinite;pointer-events:none}
.auth__petal--1{left:14%;top:-4%;animation-duration:14s}
.auth__petal--2{left:35%;top:-7%;animation-delay:-5s;animation-duration:17s}
.auth__petal--3{left:62%;top:-8%;animation-delay:-8s;animation-duration:15s}
.auth__petal--4{left:78%;top:-6%;animation-delay:-2s;animation-duration:18s}
.auth__petal--5{left:49%;top:-9%;animation-delay:-11s;animation-duration:20s}
.auth__panel{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:clamp(32px,5vw,68px);background:var(--paper);overflow-y:auto}
.auth__card{width:min(100%,460px);animation:authCardIn .7s var(--ease) both}
.auth__brand{display:flex;align-items:center;gap:14px;margin-bottom:40px}
.auth__brand img{width:52px;height:52px}
.auth__brand>div{display:grid;gap:3px}
.auth__brand small{font:800 .6rem var(--font-body);letter-spacing:.28em;text-transform:uppercase;color:var(--terra)}
.auth__brand strong{font-family:var(--font-display);font-size:1.15rem;font-weight:500;color:var(--ink)}
.auth__card h1{font-family:var(--font-display);font-weight:300;font-size:clamp(2.4rem,4.5vw,3.6rem);line-height:1;letter-spacing:-.05em;margin:0 0 18px;color:var(--ink)}
.auth__card h1 em{font-family:var(--font-accent);font-style:italic;color:var(--terra);font-weight:300}
.auth__card>p{font-family:var(--font-body);color:var(--ink-muted);line-height:1.7;margin:0 0 22px;font-size:.95rem}
.auth__device{display:flex;align-items:center;gap:12px;margin-bottom:clamp(28px,5vh,48px);padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-warm)}
.auth__device-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--sage);position:relative}
.auth__device-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;background:color-mix(in srgb,var(--sage) 30%,transparent);animation:authDevicePing 2.4s ease-out infinite}
.auth__device small{display:block;font:800 .56rem var(--font-body);letter-spacing:.22em;color:var(--ink-muted)}
.auth__device strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:.86rem;font-weight:600}
.auth__person{display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;align-items:center;margin-bottom:34px}
.auth__person-img{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:var(--terra-tint);border:1px solid var(--line);font:400 2rem var(--font-display);color:var(--terra)}
.auth__person-img img{width:100%;height:100%;object-fit:cover}
.auth__person-copy>small{display:block;margin-bottom:6px;font:800 .56rem var(--font-body);letter-spacing:.24em;color:var(--terra);text-transform:uppercase}
.auth__person-copy h1{margin:0 0 8px;font:300 clamp(1.8rem,3.4vw,2.4rem)/1 var(--font-display);letter-spacing:-.04em;color:var(--ink)}
.auth__person-copy p{margin:0;color:var(--ink-muted);font-size:.9rem;line-height:1.55}
.auth__choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:28px 0 24px}
.auth__choice{padding:22px 20px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-soft);color:var(--ink);text-align:left;cursor:pointer;position:relative;overflow:hidden;transition:border-color .25s,background .25s,transform .3s var(--ease-out)}
.auth__choice:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.auth__choice.is-on{border-color:var(--terra);background:var(--terra-soft)}
.auth__choice.is-on::after{content:"";position:absolute;top:10px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--terra);box-shadow:0 0 0 4px color-mix(in srgb,var(--terra) 12%,transparent)}
.auth__choice strong{display:block;font-family:var(--font-display);font-size:1.15rem;font-weight:500;color:var(--ink);margin-bottom:4px;letter-spacing:-.02em}
.auth__choice span{display:block;color:var(--ink-muted);font-size:.78rem;line-height:1.5}
.auth__owners{margin:12px 0 20px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.auth__remember{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-warm);cursor:pointer;margin:12px 0 20px;transition:border-color .25s}
.auth__remember:hover{border-color:var(--line-strong)}
.auth__remember-check{position:relative;flex:0 0 22px;width:22px;height:22px;margin-top:2px}
.auth__remember-check input{position:absolute;inset:0;opacity:0;cursor:pointer}
.auth__remember-check i{position:absolute;inset:0;border-radius:var(--r-xs);border:1px solid var(--line-strong);background:var(--paper)}
.auth__remember-check i::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;font-size:.8rem;font-weight:900;color:var(--paper);opacity:0;transform:scale(.6);transition:opacity .25s,transform .25s}
.auth__remember-check input:checked+i{background:var(--terra);border-color:var(--terra)}
.auth__remember-check input:checked+i::after{opacity:1;transform:scale(1)}
.auth__remember>span:last-child{display:grid;gap:4px}
.auth__remember strong{font-size:.82rem;color:var(--ink);font-weight:600}
.auth__remember small{font-size:.72rem;line-height:1.55;color:var(--ink-muted)}
.auth__submit{width:100%;margin-top:22px}
.auth__foot{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:.7rem;color:var(--ink-faint)}
.auth__foot>span:first-child{display:flex;align-items:center;gap:8px}
.auth__foot i{width:6px;height:6px;border-radius:50%;background:var(--sage)}
.auth__status{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-warm)}
.auth__status-icon{width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:var(--terra-tint);color:var(--terra);font:400 1.6rem var(--font-display)}
.auth__status small{font:800 .56rem var(--font-body);letter-spacing:.22em;color:var(--terra)}
.auth__status strong{color:var(--ink);font-size:.92rem;display:block}
.auth__status span:last-child{color:var(--ink-faint);font-size:.72rem}
.auth__steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:8px;align-items:center;padding:16px 0;border-block:1px solid var(--line)}
.auth__steps>span{display:grid;gap:8px;justify-items:center;text-align:center}
.auth__steps b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--paper-warm);color:var(--terra);font-size:.72rem}
.auth__steps em{font-style:normal;color:var(--ink-muted);font-size:.68rem;line-height:1.4}
.auth__steps>i{font-style:normal;color:var(--ink-faint);font-size:.8rem}
@keyframes authKen{0%{transform:scale(1.02) translate3d(0,0,0)}100%{transform:scale(1.1) translate3d(-1.5%,.5%,0)}}
@keyframes authLockKen{0%{transform:scale(1.02) translate3d(0,0,0)}100%{transform:scale(1.1) translate3d(1.5%,.5%,0)}}
@keyframes authLight{0%{transform:scale(1);opacity:.4}100%{transform:scale(1.12);opacity:.62}}
@keyframes authHeart{0%,100%{transform:translateY(0) rotate(0deg);opacity:.8}50%{transform:translateY(14px) rotate(3deg);opacity:1}}
@keyframes authPetal{0%{transform:translate3d(0,-8vh,0) rotate(0deg);opacity:0}10%{opacity:.55}100%{transform:translate3d(8vw,112vh,0) rotate(420deg);opacity:0}}
@keyframes authCardIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes authDevicePing{0%{transform:scale(.6);opacity:.8}70%{transform:scale(2);opacity:0}100%{transform:scale(2);opacity:0}}

/* ═══════════════════════════════════════════════════════════════════════════
   Q · SETTINGS
   ═══════════════════════════════════════════════════════════════════════════ */
.settings{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:100%;background:var(--paper)}
.settings__nav{position:sticky;top:0;align-self:start;max-height:100dvh;overflow-y:auto;padding:42px 26px 60px;border-right:1px solid #dacbbb;background:radial-gradient(ellipse 80% 60% at 50% 0%,color-mix(in srgb,var(--terra) 6%,transparent),transparent 65%),#ede3d5}
.settings__title{display:grid;gap:10px;margin-bottom:30px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.settings__title small{display:inline-flex;align-items:center;gap:10px;font:800 .58rem var(--font-body);letter-spacing:.3em;color:var(--terra);text-transform:uppercase}
.settings__title small::before{content:"";width:22px;height:1px;background:currentColor;opacity:.6}
.settings__title h2{font-family:var(--font-display);font-size:2.4rem;font-weight:400;margin:4px 0 8px;line-height:1;letter-spacing:-.05em}
.settings__title p{color:var(--ink-muted);line-height:1.6;font-size:.84rem;margin:0;font-family:var(--font-display);font-weight:300;font-style:italic}
.settings__links{display:grid;gap:3px}
.settings__links button{position:relative;border:0;background:transparent;color:var(--ink-muted);text-align:left;padding:12px 16px 12px 22px;border-radius:var(--r-sm);font:500 .88rem var(--font-body);cursor:pointer;transition:background .25s,color .25s,transform .25s}
.settings__links button:hover{background:var(--paper);color:var(--ink);transform:translateX(3px)}
.settings__links button.is-on{color:var(--ink);background:var(--paper);font-weight:600}
.settings__links button::before{content:"";position:absolute;left:8px;top:50%;width:3px;height:0;border-radius:2px;background:var(--terra);transform:translateY(-50%);transition:height .35s var(--ease-out)}
.settings__links button.is-on::before{height:60%}
.settings__group{display:grid;gap:3px;margin-bottom:12px}
.settings__group-label{padding:8px 12px 6px;font:800 .6rem var(--font-body);letter-spacing:.22em;color:var(--ink-faint);text-transform:uppercase}
.settings__content{padding:42px clamp(28px,5vw,76px) 100px;background:#faf5ec;min-height:100%}
.settings__page{max-width:1040px;margin:0 auto;animation:settingsPageIn .5s var(--ease-out) both}
@keyframes settingsPageIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.settings__head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px;padding-bottom:24px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.settings__head small{display:inline-flex;align-items:center;gap:10px;font:800 .62rem var(--font-body);letter-spacing:.28em;color:var(--terra);text-transform:uppercase}
.settings__head small::before{content:"";width:22px;height:1px;background:currentColor;opacity:.6}
.settings__head h3{font-family:var(--font-display);font-weight:300;font-size:clamp(2rem,4vw,2.6rem);margin:12px 0 12px;letter-spacing:-.05em;line-height:1}
.settings__head p{color:var(--ink-muted);line-height:1.65;margin:0;font-size:.88rem}
.settings__autosave{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper-warm);font:600 .68rem var(--font-body);color:var(--ink-muted)}
.settings__autosave i{width:7px;height:7px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 3px color-mix(in srgb,var(--sage) 12%,transparent)}
.settings__autosave.is-saved{background:color-mix(in srgb,var(--sage) 12%,var(--paper-warm));border-color:color-mix(in srgb,var(--sage) 45%,transparent);color:var(--sage-deep);animation:autosaveFlash .7s var(--ease-out)}
@keyframes autosaveFlash{0%{transform:scale(1)}50%{transform:scale(1.04)}100%{transform:scale(1)}}
.settings__card{position:relative;padding:28px 30px 30px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-soft);margin-bottom:18px;transition:border-color .28s,box-shadow .28s,transform .3s}
.settings__card:hover{border-color:var(--line-strong);box-shadow:0 16px 38px -22px rgba(31,24,20,.2);transform:translateY(-1px)}
.settings__card::before{content:"♡";position:absolute;top:22px;right:26px;font-family:var(--font-display);font-style:italic;font-size:1rem;color:var(--terra);opacity:.18;pointer-events:none;transition:opacity .3s,transform .3s}
.settings__card:hover::before{opacity:.42;transform:rotate(-6deg) scale(1.08)}
.settings__card h4{font-family:var(--font-display);font-size:1.3rem;font-weight:500;margin:0 0 6px;letter-spacing:-.025em;max-width:calc(100% - 40px)}
.settings__card>p{color:var(--ink-muted);font-size:.86rem;margin:0 0 20px;line-height:1.6;font-family:var(--font-display);font-weight:300;font-style:italic}
.settings__card.is-danger{border-color:color-mix(in srgb,var(--wine) 35%,var(--line));background:color-mix(in srgb,var(--wine) 4%,var(--paper-soft))}
.settings__card.is-danger::before{color:var(--wine);opacity:.3}
.settings__card.is-danger:hover{border-color:var(--wine)}
.settings-empty{padding:40px 24px;border:1px dashed var(--line);border-radius:var(--r-md);color:var(--ink-muted);text-align:center;font-family:var(--font-display);font-style:italic;font-size:1rem;background:color-mix(in srgb,var(--paper-warm) 40%,transparent)}
.row-list{display:grid;gap:10px}
.row{display:grid;grid-template-columns:48px minmax(180px,1fr) minmax(210px,250px) auto;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);transition:border-color .25s,background .25s,transform .25s}
.row:hover{border-color:var(--line-strong);background:var(--paper-soft);transform:translateX(2px)}
.row__icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-size:1.15rem;background:color-mix(in srgb,var(--cat,var(--terra)) 18%,var(--paper-warm));color:color-mix(in srgb,var(--cat,var(--terra)) 85%,var(--ink));border:1px solid color-mix(in srgb,var(--cat,var(--terra)) 30%,var(--line))}
.row--category{align-items:start}
.row__main{display:grid;gap:10px;min-width:0}
.row__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.row__mini{display:grid;gap:6px;min-width:86px}
.row__mini span{font:700 .62rem var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted)}
.row__mini input{max-width:88px;text-align:center}
.row__actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;align-self:center}
.nr-cat-new{margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)}
.nr-color-field{display:grid;gap:8px;min-width:0}
.nr-color-field.is-inline{min-width:190px}
.nr-color-trigger{display:flex;align-items:center;gap:10px;min-height:48px;width:100%;min-width:0;padding:8px 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper-soft);color:var(--ink);font-family:var(--font-body);text-align:left;transition:border-color .25s,box-shadow .25s,transform .25s}
.nr-color-trigger:hover{border-color:var(--terra);box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.nr-color-trigger__swatch{flex:none;display:block;width:28px;height:28px;border-radius:50%;background:var(--swatch,var(--terra));border:2px solid var(--paper);box-shadow:0 0 0 1px var(--line-strong)}
.nr-color-trigger__value{min-width:0;flex:1;font:650 .75rem var(--font-mono);letter-spacing:.035em;color:var(--ink-soft)}
.nr-color-trigger__action{font:700 .68rem var(--font-body);letter-spacing:.025em;white-space:nowrap;color:var(--terra)}
/* Sélecteur unique pour toutes les couleurs des Réglages. */
.nr-color-dialog{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;overflow-y:auto;padding:24px max(14px,env(safe-area-inset-left)) 24px max(14px,env(safe-area-inset-right));background:rgba(30,19,23,.63);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}
.nr-color-dialog__panel{width:min(620px,100%);max-height:min(820px,calc(100dvh - 40px));overflow-y:auto;padding:clamp(18px,3vw,30px);border:1px solid color-mix(in srgb,var(--gold) 38%,var(--line));border-radius:var(--r-xl);background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--rose-soft) 48%,transparent),transparent 54%),var(--paper-soft);box-shadow:var(--shadow-xl);animation:nrColorAppear .25s var(--ease-out) both}
@keyframes nrColorAppear{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.nr-color-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:24px}
.nr-color-dialog__header small{font:750 .61rem var(--font-body);letter-spacing:.22em;color:var(--terra);text-transform:uppercase}
.nr-color-dialog__header h3{margin-top:9px;font:400 clamp(1.55rem,4vw,2.1rem)/1.1 var(--font-display);color:var(--ink)}
.nr-color-dialog__header button{flex:none;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--paper);font-size:1.5rem;line-height:1;color:var(--ink-soft)}
.nr-color-dialog__header button:hover{background:var(--terra-soft);color:var(--terra)}
.nr-color-dialog__main{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(160px,.9fr);gap:22px;align-items:start}
.nr-color-dialog__editor{display:grid;gap:14px;min-width:0}
.nr-color-dialog__plane{position:relative;touch-action:none;cursor:crosshair;display:block;aspect-ratio:1.33;width:100%;min-height:150px;border-radius:var(--r-md);border:1px solid rgba(31,24,20,.18);background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,var(--hue-color,red));box-shadow:inset 0 0 1px rgba(31,24,20,.12)}
.nr-color-dialog__cursor{position:absolute;left:var(--cursor-x,50%);top:var(--cursor-y,50%);width:18px;height:18px;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1.5px #231a1d,0 0 0 4px rgba(255,255,255,.68),0 2px 8px rgba(0,0,0,.58);background:var(--cursor-color,#b8553a);transform:translate(-50%,-50%);pointer-events:none}
.nr-color-dialog__hue-label{display:flex;align-items:center;justify-content:space-between;font:750 .68rem var(--font-body);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft)}
.nr-color-dialog__hue-label output{font:600 .8rem var(--font-mono);color:var(--terra)}
.nr-color-dialog__hue{display:block;width:100%;height:13px;min-height:13px;border-radius:var(--r-pill);outline-offset:5px;appearance:none;-webkit-appearance:none;cursor:pointer;border:1px solid var(--line);background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}
.nr-color-dialog__hue::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:24px;height:24px;border-radius:50%;border:3px solid var(--paper);background:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.nr-color-dialog__hue::-moz-range-thumb{width:20px;height:20px;border-radius:50%;border:3px solid var(--paper);background:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.nr-color-dialog__side{display:grid;gap:12px}
.nr-color-dialog__preview{min-height:145px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:18px;border-radius:var(--r-md);border:1px solid rgba(31,24,20,.08);background:var(--swatch,var(--terra));color:var(--preview-text,var(--paper));box-shadow:var(--shadow-md);transition:background .1s}
.nr-color-dialog__preview span{font:750 .58rem var(--font-body);letter-spacing:.22em;color:inherit;opacity:.83}
.nr-color-dialog__preview strong{font:400 1.4rem/1.1 var(--font-display);color:inherit}
.nr-color-dialog__hex-label{font:750 .66rem var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.nr-color-dialog__hex{font-family:var(--font-mono);font-weight:700;letter-spacing:.045em;text-transform:uppercase}
.nr-color-dialog__hex.has-error{outline:2px solid var(--wine);border-color:var(--wine)}
.nr-color-dialog__hint{color:var(--ink-muted);font:.76rem/1.55 var(--font-body)}
.nr-color-dialog__palette{display:grid;gap:12px;padding-top:22px;margin-top:22px;border-top:1px solid var(--line)}
.nr-color-dialog__palette>span{font:750 .62rem var(--font-body);letter-spacing:.18em;color:var(--ink-muted)}
.nr-color-dialog__swatches{display:flex;gap:10px;flex-wrap:wrap}
.nr-color-dialog__swatches button{flex:none;width:29px;height:29px;background:var(--swatch);border:2px solid var(--paper);border-radius:50%;box-shadow:0 0 0 1px var(--line-strong);transition:transform .16s,box-shadow .16s}
.nr-color-dialog__swatches button:hover{transform:translateY(-2px) scale(1.08)}
.nr-color-dialog__swatches button.is-on{box-shadow:0 0 0 2px var(--wine)}
.nr-color-dialog__footer{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:22px;margin-top:22px;border-top:1px solid var(--line)}
.settings-file{position:relative;display:grid;grid-template-columns:auto 1fr;gap:2px 13px;align-items:center;max-width:430px;padding:16px 20px;border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--paper);cursor:pointer;transition:border-color .25s,background .25s}
.settings-file:hover{border-color:var(--terra);background:var(--terra-tint)}
.settings-file>span{grid-row:span 2;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--terra-tint);color:var(--terra);font-size:1.5rem}
.settings-file strong{font:750 .84rem var(--font-body);color:var(--ink)}
.settings-file small{font:.72rem var(--font-body);color:var(--ink-muted)}
.settings-file input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.settings-file:focus-within{outline:2px solid var(--terra);outline-offset:3px}
/* Autres imports de Réglages, quand un sélecteur brut reste nécessaire. */
.settings input[type=file]:not(.settings-file input)::file-selector-button{border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--paper-warm);color:var(--wine);padding:9px 16px;margin-right:12px;font:750 .76rem var(--font-body);cursor:pointer}
@media(max-width:580px){.nr-color-dialog__panel{padding:20px 16px}.nr-color-dialog__main{grid-template-columns:1fr}.nr-color-dialog__preview{min-height:86px}.nr-color-dialog__side{grid-template-columns:1fr 1fr;align-items:end}.nr-color-dialog__hex-label{grid-column:1/-1}.nr-color-dialog__hint{grid-column:1/-1}.nr-color-dialog__footer>.btn{flex:1;justify-content:center}}
@media(prefers-reduced-motion:reduce){.nr-color-dialog__panel{animation:none}}
.row--device{grid-template-columns:56px minmax(0,1fr) auto;gap:14px;padding:16px 18px}
.row--device .row__icon{width:56px;height:56px;font-size:1.5rem;background:var(--paper-warm);color:var(--ink)}
.row--device strong{display:block;font-family:var(--font-display);font-size:.95rem;font-weight:500;color:var(--ink);margin-bottom:2px}
.row--device small{color:var(--ink-muted);font-size:.74rem;line-height:1.5}
.row.is-revoked{opacity:.55;filter:saturate(.6)}
.sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.calendar-source{min-width:0;border:1px solid var(--line);background:var(--paper);border-radius:var(--r-md);overflow:hidden}
.calendar-source .source{border:0;border-radius:0}
.calendar-source__color{display:grid;gap:8px;padding:0 18px 16px}
.calendar-source__color>label{font:700 .68rem var(--font-body);letter-spacing:.09em;color:var(--ink-muted)}
.calendar-source__picker{max-width:330px}
@media(max-width:820px){.sources{grid-template-columns:1fr}}
.source{position:relative;padding:16px 18px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;transition:border-color .25s,background .25s,transform .25s}
.source:hover{border-color:var(--line-strong);background:var(--paper-soft);transform:translateY(-2px)}
.source>span:first-child{display:grid;gap:3px;min-width:0}
.source strong{display:block;font:600 .88rem var(--font-body);color:var(--ink)}
.source small{display:block;color:var(--ink-muted);margin-top:3px;font-size:.74rem;line-height:1.5}
.media-list{display:grid;gap:10px}
.media-item{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,var(--paper),var(--paper-soft));transition:border-color .25s,transform .25s,box-shadow .25s}
.media-item:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:0 14px 32px -24px rgba(31,24,20,.28)}
.media-item.is-unused{border-style:dashed}
.media-item img{width:72px;height:72px;border-radius:14px;object-fit:cover;background:var(--paper-warm);border:1px solid var(--line-soft)}
.media-item strong,.media-item small{display:block}
.media-item strong{font-size:.88rem;font-weight:600;margin-bottom:2px}
.media-item small{color:var(--ink-muted);font-size:.72rem;line-height:1.5}
.backup-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}
.backup-actions,.admin-actions{display:flex;flex-wrap:wrap;gap:10px}
.backup-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 22px}
.backup-mode{display:flex;align-items:flex-start;gap:12px;padding:17px;border:1px solid var(--line);border-radius:17px;cursor:pointer;background:rgba(255,252,247,.95);transition:border-color .25s,background .25s}
.backup-mode:has(input:checked){border-color:var(--terra);background:var(--terra-soft)}
.backup-mode input{flex:none;margin-top:4px;accent-color:var(--terra)}
.backup-mode span{display:grid;gap:6px;min-width:0}
.backup-mode strong{font:700 .9rem/1.35 var(--font-body);color:var(--ink)}
.backup-mode small{font:400 .78rem/1.5 var(--font-body);color:var(--ink-muted)}
.backup-preview{display:grid;gap:9px;padding:17px 20px;border-radius:16px;background:#f5eee5;border:1px solid #dfcfbd;color:#4f3b32;font:.86rem/1.5 var(--font-body);margin:4px 0 15px}
.backup-preview strong{font:600 1.04rem var(--font-display)}
.backup-caution{font:.77rem/1.55 var(--font-body);color:var(--ink-muted);margin:0 0 18px}
.reset-box{display:grid;gap:18px;margin-top:18px;padding:20px;border:1px solid #d8a7a5;border-radius:20px;background:linear-gradient(140deg,#fffaf7,#f7eeeb)}
.admin-hub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}
.admin-path{position:relative;padding:26px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-soft);display:grid;grid-template-columns:64px minmax(0,1fr);gap:20px;align-items:start;transition:transform .3s,box-shadow .3s,border-color .3s}
.admin-path:hover{border-color:var(--line-strong);transform:translateY(-3px);box-shadow:0 22px 48px -30px rgba(31,24,20,.28)}
.admin-path__icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--terra-tint);color:var(--terra);font-family:var(--font-display);font-size:1.6rem;font-weight:500;border:1px solid color-mix(in srgb,var(--terra) 25%,transparent)}
.admin-path.is-partner .admin-path__icon{background:var(--rose-soft);color:color-mix(in srgb,var(--rose) 85%,var(--ink));border-color:color-mix(in srgb,var(--rose) 30%,transparent)}
.admin-path small{display:inline-flex;align-items:center;gap:8px;font:800 .58rem var(--font-body);letter-spacing:.24em;color:var(--terra);text-transform:uppercase}
.admin-path small::before{content:"";width:16px;height:1px;background:currentColor;opacity:.6}
.admin-path h4{font-family:var(--font-display);font-size:1.3rem;font-weight:500;margin:10px 0 10px;letter-spacing:-.025em;line-height:1.1}
.admin-path p{color:var(--ink-muted);font-size:.82rem;line-height:1.6;margin:0 0 14px}
.invite{position:relative;padding:24px;margin:18px 0;border:1px solid var(--line);border-radius:var(--r-lg);background:radial-gradient(ellipse 70% 60% at 50% 0%,color-mix(in srgb,var(--terra) 6%,transparent),transparent 65%),var(--paper-soft)}
.invite::before{content:"";position:absolute;top:0;left:25%;right:25%;height:2px;background:linear-gradient(90deg,transparent,var(--terra),transparent);opacity:.5}
.invite__head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}
.invite__head small{display:inline-flex;align-items:center;gap:10px;font:800 .58rem var(--font-body);letter-spacing:.26em;color:var(--terra);text-transform:uppercase}
.invite__head small::before{content:"";width:18px;height:1px;background:currentColor;opacity:.6}
.invite__head h4{font-family:var(--font-display);font-size:1.5rem;margin:8px 0;font-weight:400;letter-spacing:-.03em;line-height:1.05}
.invite__head p{margin:0;color:var(--ink-muted);line-height:1.55;font-size:.84rem}
.invite__timer{font-family:var(--font-mono);font-size:.82rem;padding:10px 14px;border-radius:var(--r-sm);background:var(--paper-warm);color:var(--ink);white-space:nowrap;border:1px solid var(--line);font-weight:600}
.invite__body{display:grid;grid-template-columns:200px minmax(0,1fr);gap:22px;align-items:start;padding:22px;border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line)}
.invite__actions{display:flex;flex-direction:column;gap:10px}
.invite__actions p{font-size:.78rem;color:var(--ink-faint);margin:0;line-height:1.55}
.invite-file{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--paper-soft);font:600 .82rem var(--font-body);color:var(--ink-soft)}
.invite-file input{margin-top:6px;font-size:.78rem}
.qr-box{width:190px;aspect-ratio:1;border-radius:var(--r-md);overflow:hidden;background:#fff;display:grid;place-items:center;padding:12px;border:1px solid var(--line);box-shadow:0 12px 30px -18px rgba(31,24,20,.25)}
.qr-box svg{width:100%;height:100%}
.secret-code{display:block;font-family:var(--font-mono);font-size:1.35rem;letter-spacing:.1em;color:var(--ink);margin:10px 0 14px;padding:12px 16px;border-radius:var(--r-sm);background:var(--paper-warm);border:1px dashed var(--line-strong);text-align:center;font-weight:600;overflow-wrap:anywhere}
.milestones{display:grid;gap:12px}
.milestone{padding:18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);display:grid;gap:14px;transition:border-color .25s}
.milestone:hover{border-color:var(--line-strong)}
.milestone__row{display:grid;grid-template-columns:60px minmax(150px,1fr) 180px auto;gap:10px;align-items:center}
.milestone__icon{text-align:center;font-family:var(--font-display);font-size:1.1rem;color:var(--terra);background:var(--paper-warm)}
.milestone__options{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.milestone__options .check-line{width:auto;min-width:130px}
.milestone__new{display:grid;grid-template-columns:60px 1fr 180px auto;gap:10px;align-items:center;margin-top:18px;padding:18px;border:1px dashed var(--line-strong);border-radius:var(--r-md);background:color-mix(in srgb,var(--paper-warm) 55%,transparent)}
.milestone__new:focus-within{border-color:var(--terra);border-style:solid;background:var(--paper-soft)}
.profile-media{display:grid;grid-template-columns:130px minmax(0,1fr);gap:26px;align-items:start}
.profile-photo{position:relative;width:120px;height:120px;border-radius:50%;background:var(--terra-tint);display:grid;place-items:center;font-family:var(--font-display);font-style:italic;font-size:2.6rem;color:var(--terra);background-size:cover;background-position:center;border:2px solid var(--line);cursor:pointer;overflow:hidden;transition:transform .4s var(--ease-spring),border-color .3s}
.profile-photo:hover{transform:scale(1.05) rotate(-2deg);border-color:var(--terra)}
.profile-photo::after{content:"✎";position:absolute;bottom:4px;right:4px;width:26px;height:26px;border-radius:50%;background:var(--terra);color:var(--paper);display:grid;place-items:center;font-size:.8rem;font-family:var(--font-body);opacity:0;transform:scale(.7);transition:opacity .3s,transform .3s}
.profile-photo:hover::after{opacity:1;transform:scale(1)}
.nr-cat-count{font-size:.76rem;opacity:.72}
.nr-cat-transfer{display:flex;gap:8px;grid-column:1/-1;padding:2px 0 0 60px;align-items:center;flex-wrap:wrap}
.nr-cat-transfer label{font-size:.78rem;font-weight:650}
.nr-cat-transfer select{min-width:150px}

/* Ambiance · réglages visuels */
.ambience-master{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fffaf5,#f5eadf);margin-bottom:18px}.ambience-master>span{display:grid;gap:4px}.ambience-master strong{font:650 .94rem var(--font-body)}.ambience-master small{font:.76rem/1.5 var(--font-body);color:var(--ink-muted)}
.ambience-control{display:grid;gap:12px;padding:16px 0 2px;transition:opacity .25s}.ambience-control.is-muted{opacity:.42}.ambience-control__head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.ambience-control__head span{display:grid;gap:4px}.ambience-control__head strong{font:600 .92rem var(--font-body)}.ambience-control__head small{font:.75rem/1.5 var(--font-body);color:var(--ink-muted)}.ambience-control__head output{flex:none;padding:7px 10px;border-radius:999px;background:var(--terra-soft);color:var(--terra-deep);font:800 .72rem var(--font-body)}
.ambience-range{padding:0;height:30px;accent-color:var(--terra)}.ambience-range:disabled{cursor:not-allowed}.ambience-scale{display:flex;justify-content:space-between;font:650 .62rem var(--font-body);letter-spacing:.06em;color:var(--ink-muted)}
.ambience-single{margin:0}.settings__card:has(.ambience-single){padding-bottom:28px}
/* ═══════════════════════════════════════════════════════════════════════════
   R · CALENDRIER
   ═══════════════════════════════════════════════════════════════════════════ */
.cal{position:relative;width:100%;margin:0 auto;padding:clamp(30px,4.5vw,60px) clamp(16px,3vw,40px) 100px;box-sizing:border-box}
.cal__topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.view-switch{display:inline-flex;gap:2px;padding:4px;border-radius:var(--r-pill);background:var(--paper-warm);border:1px solid var(--line)}
.view-switch button{border:0;background:transparent;color:var(--ink-muted);padding:9px 18px;border-radius:var(--r-pill);font:500 .82rem var(--font-body);cursor:pointer;transition:color .25s,background .3s,transform .25s}
.view-switch button:hover{color:var(--ink);transform:translateY(-1px)}
.view-switch button.is-on{background:var(--ink);color:var(--paper);box-shadow:0 4px 12px -6px rgba(31,24,20,.25)}
.cal__toolbar{display:grid;grid-template-columns:minmax(120px,170px) minmax(220px,1fr) minmax(120px,170px) auto;margin-bottom:22px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-soft);overflow:hidden}
.cal__toolbar.is-agenda{grid-template-columns:minmax(260px,1fr) auto}
.cal-step,.cal-period,.cal-today{min-height:68px;border:0;background:transparent;color:var(--ink);cursor:pointer;transition:background .25s}
.cal-step{padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:10px;color:var(--ink-soft);font:600 .84rem var(--font-body);border-right:1px solid var(--line)}
.cal-step:nth-child(3){border-right:0;border-left:1px solid var(--line)}
.cal-step:hover{background:var(--paper-warm)}
.cal-step span{font-size:1.15rem}
.cal-step em{font-style:normal;font-size:.82rem}
.cal-step.is-hidden{display:none}
.cal-period{text-align:center;padding:10px 20px}
.cal-period small{display:block;color:var(--ink-faint);font:800 .56rem var(--font-body);letter-spacing:.24em;text-transform:uppercase;margin-bottom:4px}
.cal-period strong{font-family:var(--font-display);font-size:1.35rem;font-weight:400;text-transform:capitalize;color:var(--ink);letter-spacing:-.025em}
.cal-today{padding:0 22px;background:var(--sage-soft);border-left:1px solid var(--line);color:var(--sage-deep);font:700 .82rem var(--font-body)}
.cal-today:hover{background:color-mix(in srgb,var(--sage) 22%,transparent)}
.cal__layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;min-width:0}
@media(min-width:1080px){
  .cal__layout{grid-template-columns:minmax(0,1fr) clamp(300px,25vw,382px);align-items:start}
  .cal__context{position:sticky;top:16px;max-height:calc(100dvh - 95px);overflow-y:auto;align-self:start;scrollbar-width:thin}
}
.cal__main{border:1px solid var(--line);border-radius:var(--r-md);background:#fffaf5;overflow-x:auto;min-width:0}
.cal__context{padding:20px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-soft);min-width:0}
.cal-week-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:16px 16px 9px;min-width:820px}
.cal-week-head span{text-align:center;color:var(--ink-faint);font:800 .6rem var(--font-body);text-transform:uppercase;letter-spacing:.16em}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:0 16px 18px;min-width:820px}
.cal-cell{position:relative;display:flex;flex-direction:column;min-height:128px;padding:9px 8px;border:1px solid var(--line-soft);border-radius:12px;background:var(--paper);color:var(--ink);text-align:left;cursor:pointer;font-family:inherit;overflow:hidden;transition:background .25s,border-color .25s,transform .25s}
.cal-cell:hover{background:var(--paper-warm);border-color:var(--line-strong);transform:translateY(-2px)}
.cal-cell.is-out{opacity:.35}
.cal-cell.is-today{border-color:var(--sage);background:color-mix(in srgb,var(--sage) 6%,var(--paper));box-shadow:0 0 0 1px var(--sage) inset}
.cal-cell.is-on{background:#fff4ec;border-color:var(--sage);outline:2px solid #b87d82;outline-offset:-3px}
.cal-cell__num{display:block;font-family:var(--font-display);font-size:1.02rem;font-weight:400;color:var(--ink);line-height:1}
.cal-cell__today{position:absolute;right:10px;top:10px;font:800 .48rem var(--font-body);text-transform:uppercase;letter-spacing:.14em;color:var(--sage);animation:todayPulse 2s ease-in-out infinite}
@keyframes todayPulse{0%,100%{opacity:.7}50%{opacity:1}}
.cal-mini{display:flex;flex-direction:column;gap:5px;margin-top:8px;width:100%}
.cal-event{display:flex;flex-direction:column;gap:4px;width:100%;min-height:36px;padding:3px 0 5px;overflow:hidden}
.cal-event__label{display:-webkit-box;width:100%;min-height:14px;max-height:30px;padding:0 1px;overflow:hidden;white-space:normal;text-overflow:ellipsis;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font:700 10.5px/1.25 var(--font-body);color:#51382f;text-align:left}
.cal-event__track{display:block;position:relative;width:100%;height:8px;border:1px solid rgba(87,67,59,.14);border-radius:99px;background:linear-gradient(90deg,transparent calc(25% - .5px),rgba(93,69,58,.16) 25%,transparent calc(25% + .5px),transparent calc(50% - .5px),rgba(93,69,58,.16) 50%,transparent calc(50% + .5px),transparent calc(75% - .5px),rgba(93,69,58,.16) 75%,transparent calc(75% + .5px)),rgba(255,254,251,.93);overflow:hidden}
.cal-event__fill{position:absolute;left:var(--ev-left,0%);width:var(--ev-width,100%);top:0;bottom:0;border-radius:99px;background:var(--ev,var(--sage));min-width:1px}
.cal-mini b{font-family:var(--font-mono);font-size:.6rem;color:var(--ink-faint);padding:3px 6px;font-weight:700}
.cal-school-legend{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;margin:10px 16px 13px;padding:11px 13px;border:1px solid #e8d9c9;border-radius:14px;background:linear-gradient(110deg,#fffaf5,#f7f2eb);position:relative;z-index:1}
.cal-school-legend-title{font:800 .60rem/1.3 var(--font-body);letter-spacing:.12em;color:#9b6f5d;margin-right:3px;text-transform:uppercase}
.cal-school-zone{position:relative;font:500 .69rem/1.3 var(--font-body);color:#614e45}
.cal-school-zone>summary{list-style:none;display:inline-flex;gap:6px;align-items:center;padding:6px 8px;cursor:pointer;border:1px solid #e4d8cd;border-radius:8px;background:#fffcf7;user-select:none;transition:background .25s}
.cal-school-zone>summary:hover{background:#fdf6ec}
.cal-school-zone>summary::-webkit-details-marker{display:none}
.cal-school-zone>summary::after{content:'⌄';margin-left:2px;color:#8c7060;transition:transform .25s}
.cal-school-zone[open]>summary::after{transform:rotate(180deg)}
.cal-school-zone>summary i{width:17px;height:6px;border-radius:99px;background:var(--school-b,#89b99c);flex:none}
.cal-school-zone.zone-c>summary i{background:var(--school-c,#79a7d8)}
.cal-school-zone>summary strong{color:#42312c;font-weight:800}
.cal-school-zone>summary span{color:#776259}
.cal-school-zone>p{position:absolute;top:calc(100% + 6px);left:0;z-index:5;width:min(335px,70vw);margin:0;padding:12px 14px;border:1px solid #e6d8ca;border-radius:12px;background:#fffdf9;box-shadow:0 12px 32px rgba(59,37,26,.13);font:500 .74rem/1.55 var(--font-body);color:#624f48}
.cal-school-hint{font:500 .66rem/1.3 var(--font-body);color:#968077;margin-left:auto}
.cal-week{display:grid;gap:14px;padding:20px}
.cal-week__intro{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:3px}
.cal-week__intro strong{font-family:var(--font-display);font-size:1.17rem}
.cal-week__day{display:grid;grid-template-columns:100px minmax(0,1fr);gap:18px;padding:14px 16px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--paper) 90%,white);min-width:0}
.cal-week__day.is-today{background:color-mix(in srgb,var(--sage) 8%,var(--paper));border-color:color-mix(in srgb,var(--sage) 32%,var(--line))}
.cal-week__date{display:flex;align-items:center;gap:10px;border:0;padding:9px 0;background:none;text-align:left;color:var(--ink);cursor:pointer}
.cal-week__date strong{font:450 1.7rem/1 var(--font-display)}
.cal-week__date span{text-transform:capitalize;font-size:.83rem}
.cal-week__timeline{min-width:0}
.cal-week__track-area{position:relative;display:grid;gap:9px;min-width:0}
.cal-week-event{display:block;width:100%;padding:8px 11px;text-align:left;background:color-mix(in srgb,var(--paper) 85%,white);border:1px solid var(--line-soft);border-radius:13px;color:var(--ink);cursor:pointer;font:inherit;transition:transform .25s,background .25s,box-shadow .25s}
.cal-week-event:hover{transform:translateY(-2px);background:var(--paper-warm);box-shadow:0 10px 22px -16px rgba(31,24,20,.3)}
.cal-hour-ruler{display:flex;justify-content:space-between;width:100%;font:600 10px/1.2 var(--font-body);color:var(--ink-muted);margin:0 0 5px;white-space:nowrap}
.cal-hour-track{position:relative;height:11px;border-radius:20px;width:100%;background:linear-gradient(90deg,rgba(31,24,20,.045) 0 24.75%,rgba(31,24,20,.17) 25%,rgba(31,24,20,.045) 25.25% 49.75%,rgba(31,24,20,.17) 50%,rgba(31,24,20,.045) 50.25% 74.75%,rgba(31,24,20,.17) 75%,rgba(31,24,20,.045) 75.25% 100%)}
.cal-hour-fill{display:block;position:absolute;top:0;bottom:0;border-radius:30px;background:var(--ev,var(--sage));min-width:2px}
.unified-all-day{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.unified-all-day span{padding:5px 10px;border-radius:99px;background:color-mix(in srgb,var(--ev,var(--sage)) 18%,var(--paper));color:#4b3a35;font:700 .7rem var(--font-body);border:1px solid color-mix(in srgb,var(--ev,var(--sage)) 40%,transparent)}
.cal-agenda{padding:24px;display:grid;gap:30px}
.cal-agenda__day{display:grid;grid-template-columns:130px minmax(0,1fr);gap:22px;padding:12px 0;position:relative}
.cal-agenda__day.is-today::before{content:"AUJOURD'HUI";display:block;position:absolute;left:0;top:-6px;font:800 .5rem var(--font-body);letter-spacing:.22em;color:var(--terra)}
.cal-agenda__date{display:block;border:0;background:transparent;text-align:left;cursor:pointer;font-family:inherit;color:var(--ink);align-self:start;padding-top:6px}
.cal-agenda__date strong{display:block;font:400 1.4rem var(--font-display);letter-spacing:-.025em}
.cal-agenda__date small{display:block;color:var(--ink-faint);font:400 .68rem var(--font-body);text-transform:capitalize;margin-top:2px}
.cal-agenda__events{display:grid;gap:8px}
.cal-agenda-event{padding:14px 18px;border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--ev,var(--sage));color:var(--ink);text-align:left;cursor:pointer;font-family:inherit;transition:transform .25s,background .25s}
.cal-agenda-event:hover{background:var(--paper-warm);transform:translateX(4px)}
.cal-agenda-event strong{display:block;font:600 .92rem var(--font-body);margin-bottom:3px}
.cal-agenda-event small{color:var(--ink-muted);font-size:.72rem}
.cal-year{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px;padding:20px}
.cal-year__month{padding:14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);cursor:pointer;text-align:left;font-family:inherit;transition:background .25s,transform .25s,box-shadow .25s}
.cal-year__month:hover{background:var(--paper-warm);transform:translateY(-2px);box-shadow:0 12px 26px -18px rgba(31,24,20,.28)}
.cal-year__month h4{font-family:var(--font-display);font-weight:400;text-transform:capitalize;margin:0 0 10px;font-size:1.05rem}
.cal-year__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-year__day{position:relative;aspect-ratio:1;display:grid;place-items:center;border-radius:4px;font:400 .56rem var(--font-body);color:var(--ink-faint);padding-bottom:6px}
.cal-year__day.has{background:var(--sage-soft);color:var(--sage-deep);font-weight:600}
.cal-year__day.is-today{outline:1px solid var(--sage);color:var(--ink);font-weight:700}
.cal-context__date small{display:inline-flex;align-items:center;gap:10px;font:800 .56rem var(--font-body);letter-spacing:.24em;color:var(--sage);text-transform:uppercase}
.cal-context__date small::before{content:"";width:18px;height:1px;background:currentColor;opacity:.6}
.cal-context__date h3{font-family:var(--font-display);font-weight:400;font-size:1.55rem;margin:10px 0 18px;letter-spacing:-.025em;text-transform:capitalize;line-height:1.15}
.cal-context__add{width:100%;padding:13px 18px;margin-bottom:18px;border:1px solid var(--sage);border-radius:var(--r-md);background:var(--sage-soft);color:var(--sage-deep);font:600 .84rem var(--font-body);text-align:left;cursor:pointer;transition:background .25s,transform .25s}
.cal-context__add:hover{background:color-mix(in srgb,var(--sage) 22%,transparent);transform:translateY(-1px)}
.cal-context__list{display:grid;gap:8px}
.cal-context__item{padding:13px 16px;border-radius:var(--r-md);background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--ev,var(--sage));text-align:left;color:var(--ink);cursor:pointer;font-family:inherit;transition:transform .25s,background .25s}
.cal-context__item:hover{background:var(--paper-warm);transform:translateX(3px)}
.cal-context__item strong{display:block;font:600 .86rem var(--font-body);margin-bottom:3px}
.cal-context__item small{color:var(--ink-muted);font-size:.7rem}

/* Cartes des catégories personnalisées, alimentées depuis les réglages. */
.cards--custom,.horizons-custom{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:24px;align-items:start}
.envie--custom,.horizon--custom{position:relative;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--paper-soft);box-shadow:var(--shadow-sm)}
.envie-custom__media,.horizon-custom__media{aspect-ratio:5/3;overflow:hidden;background:var(--paper-warm)}
.envie-custom__media img,.horizon-custom__media img{width:100%;height:100%;object-fit:cover;display:block}
.envie-custom__symbol{display:grid;place-items:center;min-height:148px;color:var(--terra);font:400 3.2rem var(--font-display);background:radial-gradient(circle,var(--terra-tint),var(--paper-warm))}
.envie-custom__body,.horizon-custom__copy{padding:28px;display:grid;gap:12px}
.envie--custom .envie__title,.horizon--custom .horizon__title{margin:0;color:var(--ink);font:400 clamp(1.4rem,2vw,2rem)/1.12 var(--font-display)}
.envie--custom .envie__text,.horizon--custom .horizon__text{margin:0;white-space:pre-line;color:var(--ink-soft);line-height:1.7}
.envie-custom__price,.horizon-custom__date{color:var(--wine);font:600 .91rem var(--font-body)}
.envie-custom__links{display:flex;gap:12px;flex-wrap:wrap;margin-top:7px}
.envie-custom__links a{color:var(--terra-deep);font:650 .85rem var(--font-body);text-decoration:none;border-bottom:1px solid var(--gold)}
.horizon-custom__copy{padding-top:36px}
.horizon-custom__media{aspect-ratio:16/9}
@media(max-width:640px){.cards--custom,.horizons-custom{grid-template-columns:1fr}.envie-custom__body,.horizon-custom__copy{padding:22px}}

/* ═══════════════════════════════════════════════════════════════════════════
   S · ACCUEIL
   ═══════════════════════════════════════════════════════════════════════════ */
.home-cover{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(24px,4vh,50px);min-height:max(770px,100svh);padding:clamp(29px,4vw,66px) clamp(25px,5.5vw,100px) clamp(24px,3vw,44px);overflow:hidden;color:#fff8f0}
.home-cover__bg{position:absolute;inset:-3%;z-index:-4;background:url('../images/visuels/refuge-hero.webp') center/cover no-repeat;animation:homeKen calc(32s * var(--nr-speed,1)) ease-in-out infinite alternate}
.home-cover__shade{position:absolute;inset:0;z-index:-3;background:linear-gradient(93deg,rgba(27,14,17,.72),rgba(32,17,20,.34) 47%,rgba(26,14,18,.19) 69%,rgba(29,16,19,.35)),linear-gradient(0deg,rgba(32,15,18,.69),transparent 34%,rgba(23,12,16,.13))}
.home-cover__content{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(270px,.72fr);gap:clamp(30px,5vw,100px);align-items:center;flex:1;min-height:0}
.home-cover__intro{max-width:760px;min-width:0}
.home-cover__kicker{font:750 .66rem/1.5 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:#ffe4d8;animation:heroCopyIn 1s var(--ease-out) both}
.home-cover__kicker--sm{font-size:.59rem;letter-spacing:.17em}
.home-cover__kicker i{font-style:normal;color:#efafbd;margin:0 4px}
.home-cover h1{max-width:13ch;margin:20px 0 23px;color:#fff9f3;font:400 clamp(3.3rem,5.65vw,7rem)/.94 var(--font-display);letter-spacing:-.052em;text-wrap:balance;text-shadow:0 4px 30px rgba(26,16,18,.67);animation:heroCopyIn 1.1s var(--ease-out) .08s both}
.home-cover h1 em{font:400 .98em var(--font-accent);color:#f2c2ca}
.home-cover__greeting{max-width:55ch;margin:0;color:#fff0e6;font:400 clamp(.86rem,1.06vw,1rem)/1.65 var(--font-body);animation:heroCopyIn 1.1s var(--ease-out) .16s both}
.home-cover__whisper{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:12px;margin:24px 0 0;padding:15px 18px;max-width:620px;background:linear-gradient(100deg,rgba(31,15,20,.78),rgba(45,22,29,.60));border:1px solid rgba(255,225,218,.30);border-left:3px solid #f7cdd2;border-radius:0 12px 12px 0;color:#fff7f0;box-shadow:0 14px 34px -24px rgba(0,0,0,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:heroCopyIn 1.1s var(--ease-out) .24s both}
.home-cover__whisper.is-simple{display:block;font:italic 1.08rem/1.62 var(--font-display);padding:15px 18px;color:#fff7f0}
.home-cover__whisper>span{font:400 2rem/.6 var(--font-accent);color:#ffd7dc}
.home-cover__whisper p{margin:0;font:italic 500 .98rem/1.62 var(--font-display);color:#fffaf5;text-shadow:0 1px 10px rgba(0,0,0,.28)}
.home-cover__whisper cite{align-self:end;font:700 .67rem var(--font-body);color:#ffd9dc;font-style:normal;white-space:nowrap}
.home-cover__aside{display:flex;flex-direction:column;gap:12px;max-width:345px;padding:36px 0 20px 24px;border-left:1px solid rgba(255,230,219,.36);background:linear-gradient(90deg,rgba(43,18,27,.16),transparent);animation:heroAsideIn 1.2s var(--ease-out) .3s both}
.home-cover__aside small{font:700 .59rem/1.6 var(--font-body);letter-spacing:.17em;color:#ffe1d3}
.home-cover__dates{display:grid;gap:11px}
.home-cover__date{display:flex;align-items:center;gap:13px;transition:transform .3s var(--ease-out)}
.home-cover__date:hover{transform:translateX(4px)}
.home-cover__date-symbol{flex:none;color:#f9b6bf;font:1.22rem var(--font-accent);animation:signatureHeart 3s ease-in-out infinite}
.home-cover__date small{display:block;color:#f6d6cf;letter-spacing:.12em;font:700 .58rem/1.35 var(--font-body);text-transform:uppercase}
.home-cover__date strong{display:block;margin-top:3px;color:#fff5ea;font:500 clamp(.98rem,1.18vw,1.18rem)/1.25 var(--font-display)}
.home-cover__empty{font:.87rem/1.5 var(--font-display);color:#ffe8da}
.home-cover__diary{padding:18px 24px 10px;border-top:1px solid rgba(255,234,218,.47);background:linear-gradient(90deg,rgba(41,20,25,.40),rgba(60,29,35,.16),rgba(41,20,25,.33));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:heroCopyIn 1.3s var(--ease-out) .4s both}
.home-cover__diary-head{display:flex;align-items:center;gap:18px;margin-bottom:15px;font:750 .60rem var(--font-body);letter-spacing:.2em;color:#ffe1cf}
.home-cover__diary-head::after{content:'';height:1px;flex:1;background:linear-gradient(90deg,rgba(255,230,212,.5),transparent)}
.home-cover__notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.home-cover__note{appearance:none;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 14px 15px;border:1px solid rgba(252,223,209,.20);border-radius:16px;background:linear-gradient(135deg,rgba(57,28,35,.38),rgba(70,34,42,.14));color:inherit;text-align:left;font:inherit;cursor:pointer;position:relative;overflow:hidden;transition:transform .35s var(--ease-out),border-color .35s,background .35s,box-shadow .35s}
.home-cover__note::after{content:"";position:absolute;inset:auto -25% -80% 35%;height:120px;background:radial-gradient(circle,rgba(246,190,199,.18),transparent 70%);transform:translateX(-20%);transition:transform .8s var(--ease-out)}
.home-cover__note:hover{transform:translateY(-4px);border-color:rgba(255,224,216,.42);background:linear-gradient(135deg,rgba(74,34,43,.56),rgba(76,38,47,.25));box-shadow:0 20px 38px -28px rgba(0,0,0,.48)}
.home-cover__note:hover::after{transform:translateX(22%)}
.home-cover__note:disabled{cursor:default;opacity:.82}
.home-cover__note-icon{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,225,215,.47);color:#f6c5cb;font:1.18rem var(--font-accent);transition:transform .5s var(--ease-spring),box-shadow .5s}
.home-cover__note:hover .home-cover__note-icon{transform:scale(1.12) rotate(-8deg);box-shadow:0 0 0 7px rgba(246,197,203,.07)}
.home-cover__note-copy{min-width:0;display:grid;gap:4px;position:relative;z-index:1}
.home-cover__note small{font:750 .57rem/1.4 var(--font-body);letter-spacing:.13em;color:#ffe1d0}
.home-cover__note strong{font:500 clamp(.98rem,1.14vw,1.28rem)/1.16 var(--font-display);color:#fff9f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-cover__note-copy>span{font:500 .70rem/1.4 var(--font-body);color:#f8dfd2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-cover__metric{position:relative;z-index:1;display:grid;min-width:62px;text-align:right;line-height:1}
.home-cover__metric b{font:400 clamp(1.5rem,2vw,2.15rem)/.95 var(--font-accent);color:#ffdce0;font-weight:400;animation:homeMetricBreath 5.5s ease-in-out infinite}
.home-cover__metric em{margin-top:5px;font:700 .52rem/1 var(--font-body);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:#efc8c9}
@keyframes homeMetricBreath{0%,100%{transform:translateY(0);opacity:.9}50%{transform:translateY(-2px);opacity:1}}
@keyframes homeKen{to{transform:scale(1.045) translateY(-.5%)}}

.recent{padding:clamp(38px,6vw,78px) max(24px,calc((100% - 1390px)/2)) 92px;background:linear-gradient(155deg,#faf4ed,#f3e5dc 65%,#f8efe6)}
.recent__head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px;flex-wrap:wrap}
.recent__head small{font:700 .7rem var(--font-body);letter-spacing:.22em;color:#9a6353}
.recent__head h2{margin:8px 0;font:500 clamp(2.2rem,4vw,3.4rem)/1 var(--font-display);color:#34241f}
.recent__head h2 em{color:#a85860;font:italic 400 1em var(--font-accent)}
.recent__head p{margin:0;color:#846d64;font:400 .93rem/1.7 var(--font-body)}
.recent__actions{display:grid;justify-items:end;gap:5px}
.recent__order{display:flex;gap:9px;flex-wrap:wrap}
.recent__order button{min-height:38px;padding:9px 14px;border:1px solid rgba(130,74,76,.26);border-radius:999px;background:rgba(255,250,246,.86);color:var(--wine);font:700 .7rem var(--font-body);cursor:pointer;transition:background .25s,transform .25s,box-shadow .25s}
.recent__order button:hover{transform:translateY(-1px);box-shadow:0 6px 14px -8px rgba(107,39,50,.35)}
.recent__order button.is-on{background:var(--wine);border-color:var(--wine);color:#fffaf4;box-shadow:0 8px 18px -10px rgba(107,39,50,.5)}
.recent__count{color:#9b7469;font:700 .76rem var(--font-body)}
.recent__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:13px}
.recent-card{display:grid;grid-template-columns:80px minmax(0,1fr);gap:14px;padding:12px;background:rgba(255,253,250,.82);color:#392820;border:1px solid #e7d4c7;border-radius:18px;cursor:pointer;box-shadow:0 9px 23px rgba(75,45,30,.055);transition:transform .3s var(--ease-out),border-color .3s,box-shadow .3s;text-align:left;font-family:inherit}
.recent-card:hover{transform:translateY(-4px);border-color:#bb9988;box-shadow:0 20px 42px -16px rgba(75,45,30,.22)}
.recent-card__art{height:88px;display:grid;place-items:center;border-radius:12px;overflow:hidden;background:linear-gradient(145deg,#e8d1c8,#f5e4da);color:#ab6573;font:italic 2.6rem var(--font-display)}
.recent-card__art img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out)}
.recent-card:hover .recent-card__art img{transform:scale(1.08)}
.recent-card__main{display:flex;flex-direction:column;gap:6px;min-width:0}
.recent-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#967467;font:700 .64rem/1.3 var(--font-body);text-transform:uppercase;letter-spacing:.07em}
.recent-card__new{font:800 .58rem var(--font-body);letter-spacing:.07em;color:#873c4e;background:#f9e6e7;border-radius:99px;padding:5px 7px;animation:badgeFloat 3s ease-in-out infinite}
.recent-card__date{display:inline-flex;flex-direction:column;gap:2px;color:#875f5e;font-size:.72rem;text-transform:none;font-weight:750}
.recent-card__exact{color:#a18a80;font-size:.66rem;font-weight:550}
.recent-card__title{background:none;border:0;padding:0;text-align:left;font:500 1.18rem/1.22 var(--font-display);color:#382722;cursor:pointer;overflow-wrap:anywhere;transition:color .25s}
.recent-card__title:hover{color:#6b2732}
.recent-card__title span{color:#ad6c74}
.recent__empty{padding:40px 28px;border:1px dashed #d9bcae;border-radius:20px;text-align:center;color:#8a6d61;background:rgba(255,250,245,.68)}
.recent__empty span{display:block;font:2rem var(--font-display);color:#b9858c;animation:signatureHeart 3s ease-in-out infinite}
[data-new="1"]{position:relative}
[data-new="1"]>.badge-new{position:absolute;z-index:17;left:14px;top:12px;display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:linear-gradient(120deg,#844153,#a85b5d);color:#fff9f2;box-shadow:0 8px 21px rgba(54,24,31,.18);font:800 .62rem var(--font-body);letter-spacing:.07em;text-transform:uppercase;pointer-events:none;animation:newBadge 2.4s ease-in-out infinite}
@keyframes newBadge{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.recent-target-highlight{animation:recentPulse 4s ease-out}
@keyframes recentPulse{0%{box-shadow:0 0 0 0 rgba(184,137,63,.5)}30%{box-shadow:0 0 0 10px rgba(184,137,63,.18)}100%{box-shadow:0 0 0 0 rgba(184,137,63,0)}}

/* ═══════════════════════════════════════════════════════════════════════════
   T · RÉVÉLATION AU SCROLL
   ═══════════════════════════════════════════════════════════════════════════ */
[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
[data-reveal].is-revealed{opacity:1;transform:none}
.envie[data-reveal].is-revealed{transform:rotate(var(--rot,0))}
.envie--book[data-reveal].is-revealed{transform:none}
.envie--gift[data-reveal].is-revealed{transform:none}

/* ═══════════════════════════════════════════════════════════════════════════
   U · RESPONSIVE
   ═══════════════════════════════════════════════════════════════════════════ */
@media(max-width:1000px){
  .card[data-kind="memory"],.card[data-kind="memory"][data-side="right"]{grid-template-columns:1fr;min-height:0}
  .card[data-kind="memory"][data-side="right"] .card__art,.card[data-kind="memory"][data-side="right"] .card__body{order:initial}
  .card[data-kind="memory"] .card__art{min-height:280px}
  .card[data-kind="memory"] .card__art img{min-height:280px}
  .pp--memory{grid-template-columns:1fr}
  .pp--lingerie{grid-template-columns:1fr;min-height:0}
  .modal__card--studio{inset:16px}
  .modal__body{grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr)}
  .settings{grid-template-columns:240px minmax(0,1fr)}
  .settings__nav{padding:32px 20px 40px}
  .settings__content{padding:32px 26px 80px}
  .row{grid-template-columns:44px minmax(0,1fr) 70px auto}
  .milestone__row,.milestone__new{grid-template-columns:54px minmax(0,1fr) 160px auto}
  .admin-hub{grid-template-columns:1fr}
  .invite__body{grid-template-columns:180px minmax(0,1fr)}
}
@media(max-width:900px){
  .hero{height:auto;min-height:520px}
  .hero__inner{padding:clamp(80px,12vh,130px) clamp(18px,4vw,40px) clamp(40px,6vw,70px)}
  .hero__media{inset:-1%}
  .tile{grid-template-columns:1fr}
  .tile__cells{justify-content:flex-start}
  .cal__layout{grid-template-columns:1fr}
  .cal__context{order:-1;position:static;max-height:none}
  .cal-grid,.cal-week-head{min-width:720px}
  .cal__toolbar{grid-template-columns:54px 1fr 54px}
  .cal-step em{display:none}
  .cal-today{grid-column:1/-1;min-height:46px;border-left:0;border-top:1px solid var(--line)}
  .cal-week__day{grid-template-columns:70px minmax(0,1fr);gap:8px;padding:11px 8px}
  .cal-agenda__day{grid-template-columns:90px minmax(0,1fr);gap:16px}
  .settings{grid-template-columns:1fr;display:block}
  .settings__nav{position:sticky;top:0;z-index:20;padding:18px 16px 0;border-right:0;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper-warm) 96%,transparent);backdrop-filter:blur(16px);max-height:none;height:auto;overflow:visible}
  .settings__title{margin-bottom:14px;padding-bottom:12px}
  .settings__title h2{font-size:1.6rem}
  .settings__title p{display:none}
  .settings__links{display:flex;gap:6px;overflow-x:auto;padding-bottom:14px;margin:0 -16px;padding-inline:16px;scrollbar-width:none}
  .settings__links::-webkit-scrollbar{display:none}
  .settings__links button{flex:0 0 auto;padding:10px 16px;border:1px solid var(--line);background:var(--paper);border-radius:var(--r-pill);font-size:.82rem;white-space:nowrap}
  .settings__links button::before{display:none}
  .settings__links button.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .settings__content{padding:24px 18px 90px}
  .settings__head{display:block;margin-bottom:24px;padding-bottom:20px}
  .settings__head h3{font-size:1.8rem}
  .settings__card{padding:22px 20px 24px}
  .row--device{grid-template-columns:52px minmax(0,1fr) auto;padding:14px}
  .row{grid-template-columns:minmax(0,1fr) auto;padding:12px}
  .row .row__icon{display:none}.row{grid-template-columns:1fr}.row__actions{justify-content:flex-start}.nr-cat-transfer{padding-left:0}.nr-color-field.is-inline{min-width:0}
  .sources{grid-template-columns:1fr}
  .backup-sections{grid-template-columns:1fr}
  .backup-modes{grid-template-columns:1fr}
  .admin-path{grid-template-columns:52px minmax(0,1fr);padding:20px 16px}
  .admin-path__icon{width:52px;height:52px;font-size:1.35rem}
  .invite__head{display:grid;gap:12px}
  .invite__body{grid-template-columns:1fr;gap:16px;padding:18px}
  .qr-box{width:min(220px,100%);margin:0 auto}
  .profile-photo{width:108px;height:108px;font-size:2.4rem}
  .milestone__row,.milestone__new{grid-template-columns:52px 1fr;gap:8px}
  .milestone__row [data-ms-date],.milestone__new #ms-new-date{grid-column:1/-1}
  .milestone__options .check-line{min-width:0;flex:1 1 auto}
  .modal__card--studio{inset:0;border-radius:0;border:0;max-width:100%}
  .modal__body{grid-template-columns:1fr}
  .studio__preview{display:none}
  .studio__form{padding:22px 20px 110px}
  .modal__foot{position:absolute;bottom:0;left:0;right:0;padding:14px 18px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:5}
  .modal__head{padding:16px 18px}
  .modal__head h2{font-size:1.5rem}
  .media-picker__tabs{grid-template-columns:1fr 1fr}
  .media-picker__grid{grid-template-columns:repeat(3,1fr)}
  .preview-layer{align-items:end;padding:0}
  .preview-card{width:100%;max-height:94svh;border-radius:var(--r-lg) var(--r-lg) 0 0;border-left:0;border-right:0;border-bottom:0;transform:translateY(100%)}
  .preview-layer.is-on .preview-card{transform:none}
  .preview-close{top:20px;right:16px;width:40px;height:40px}
  .pp__body{padding:22px 20px 26px}
  .pp__paper{padding:28px 22px 26px;margin:0 14px 20px}
  .pp__letter-title{font-size:1.4rem}
  .pp__letter-body{font-size:1rem;line-height:1.85}
  .pp__album-grid img{height:140px;border-radius:var(--r-xs)}
  .pp__photo-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
  .pp__capsule-orbit{width:116px;height:116px}
  .pp__capsule-orbit span{width:60px;height:60px;font-size:1.6rem}
  .cards--books{grid-template-columns:repeat(auto-fill,minmax(min(100%,225px),1fr))}
  .cards--film{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr))}
  .cards--game{grid-template-columns:repeat(auto-fill,minmax(min(100%,245px),1fr))}
  .horizons-idea{grid-template-columns:repeat(auto-fill,minmax(min(100%,245px),1fr))}
  .horizon--project{grid-template-columns:1fr}
  .home-cover{min-height:100svh;padding:29px 20px 22px}
  .home-cover__content{display:block}
  .home-cover h1{font-size:clamp(3.2rem,10.9vw,5rem)}
  .home-cover__aside{max-width:none;margin-top:26px;padding:16px 0 14px 18px}
  .home-cover__notes{grid-template-columns:1fr;gap:6px}
  .home-cover__note{border-right:1px solid rgba(252,223,209,.20);border-bottom:1px solid rgba(252,223,209,.20)}
  .home-cover__note:last-child{border:0}
  .home-cover__whisper{grid-template-columns:18px minmax(0,1fr);gap:8px}
  .home-cover__whisper cite{grid-column:2;justify-self:start}
  .recent{padding:34px 17px 80px}
  .recent__head{display:block}
  .recent__count{display:block;margin-top:8px}
  .recent-card{grid-template-columns:74px minmax(0,1fr);gap:11px}
  .recent-card__art{height:80px}
  .divider{min-height:140px;padding:20px 12px}
}
@media(max-width:760px){
  .echo-book__spread{grid-template-columns:1fr;gap:24px}
  .echo-book__spread.is-single{max-width:none}
  .echo-book__page p:first-letter{font-size:2em}
  .envie--wish{grid-template-columns:auto minmax(0,1fr);gap:14px 20px}
  .envie-wish__photo{grid-column:1/-1;width:100%;max-width:340px}
}
@media(max-width:640px){
  .auth__stage{grid-template-columns:1fr;display:block}
  .auth__visual{min-height:38svh}
  .auth__visual-copy{bottom:24px;left:20px;right:20px;max-width:none}
  .auth__visual-copy h2{font-size:clamp(2.1rem,11vw,3.2rem)}
  .auth__visual-copy p,.auth__visual-trust,.auth__visual-heart{display:none}
  .auth__panel{min-height:auto;padding:30px 20px 50px}
  .auth__card{width:min(100%,640px)}
  .auth__card h1{font-size:clamp(2rem,10vw,2.8rem)}
  .auth__choices,.auth__owners{grid-template-columns:1fr}
  .auth__person{grid-template-columns:60px minmax(0,1fr);gap:16px;margin-bottom:26px}
  .auth__person-img{width:60px;height:60px;font-size:1.7rem}
  .auth__person-copy h1{font-size:clamp(1.6rem,8vw,2.2rem)}
  .auth__foot{flex-direction:column;align-items:flex-start;gap:8px}
  .auth__steps{grid-template-columns:1fr;gap:10px}
  .auth__steps>i{display:none}
  .auth__steps>span{grid-template-columns:30px 1fr;justify-items:start;text-align:left;width:100%}
  .modal__card{padding:26px 22px 22px}
  .dialog__actions{flex-direction:column-reverse;gap:8px}
  .modal__head{padding:14px 16px}
  .modal__head h2{font-size:1.35rem}
  .milestone__row,.milestone__new{grid-template-columns:1fr}
  .card__body{padding:16px 14px 12px}
  .card__title{font-size:.95rem}
  .card__text{font-size:.76rem}
  .envie--music{grid-template-columns:80px minmax(0,1fr) auto;gap:12px;padding:12px 14px}
  .envie-music__sleeve{width:80px;height:80px}
  .envie-music__disc{width:68px;height:68px}
  .home-cover__dates{grid-template-columns:1fr}
  .home-cover__kicker{font-size:.56rem}
  .home-cover h1{font-size:clamp(2.8rem,10.7vw,3.65rem)}
  .hero h1{font-size:clamp(2.4rem,10.7vw,3.65rem)}
  .cards--books,.cards--film,.cards--game,.horizons-idea,.capsules-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:14px}
}
@media(max-width:520px){
  .settings__links button{padding:8px 14px;font-size:.78rem}
  .settings__card{padding:18px 16px 20px}
  .settings__card h4{font-size:1.1rem}
  .admin-path{grid-template-columns:1fr;gap:12px}
  .admin-path__icon{justify-self:start}
  .cal-grid,.cal-week-head{min-width:640px}
  .cal-cell{min-height:78px;padding:6px}
  .cal-cell__num{font-size:.85rem}
  .cards--books,.cards--film,.cards--game,.horizons-idea,.capsules-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr));gap:12px}
  .card__title{font-size:.9rem}
}
@media(hover:none){
  .card[data-interactive]:hover{transform:none;box-shadow:0 10px 30px rgba(64,40,25,.06)}
  .icon-btn:hover,.avatar-btn:hover,.btn:hover:not(:disabled){transform:none}
  .settings__links button:hover{transform:none}
  .jump button:hover{transform:none}
  .menu-btn{opacity:.85!important}
  .envie--music:hover .envie-music__disc{animation-duration:26s}
  .envie--book:hover{transform:none}
  .envie--gift:hover,.envie--game:hover,.capsule:hover,.horizon--ritual:hover,.horizon--project:hover,.horizon--idea:hover{transform:none}
}

/* ═══════════════════════════════════════════════════════════════════════════
   V · REDUCED MOTION · TRANSPARENCY · PRINT
   ═══════════════════════════════════════════════════════════════════════════ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important}
  .hero__media img,.hero__copy,.hero__aside,.hero__kicker,.hero__kicker::before,.hero h1,.hero__text,.hero__signature,.hero__signature i,.hero .tile::before,.hero .tile__emblem{animation:none!important;transition:none!important;transform:none!important}
  .auth__visual-img,.auth__petal,.auth__visual-heart,.auth__visual-light{animation:none!important}
  .card,.btn,.divider__glint{animation:none!important}
  .preview-card,.picker-card,.modal__card{transform:none!important}
  .home-cover__bg,.home-cover__kicker,.home-cover h1,.home-cover__greeting,.home-cover__whisper,.home-cover__aside,.home-cover__diary{animation:none!important}
  .horizon--idea{transform:none!important}
  .nr-ambience-preview i{animation:none!important}
  .envie-music__disc,.envie-book__fallback,.envie-music__notes{animation:none!important;display:none}
  .capsule__seal::after,.pp__capsule-orbit{animation:none!important}
  [data-reveal]{opacity:1!important;transform:none!important}
}
@media(prefers-reduced-transparency:reduce){
  .auth__visual-light,.divider::after,.hero .tile{display:none}
  .hero .tile{background:rgba(20,12,16,.85);display:grid}
}
@media print{
  .ambient,.preloader,.cursor,.cursor-trail,.topbar,.mobilenav,.fab,.curtain,.footer,.explorer{display:none!important}
  .world{position:static;opacity:1!important;visibility:visible!important;transform:none!important;overflow:visible!important}
  .modal,.preview-layer,.sheet{display:none!important}
}

/* Affinage NOUS */
.nous-timeline{padding-left:clamp(10px,2vw,20px)}
.nous-timeline::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(180deg,rgba(184,137,63,.15),rgba(107,39,50,.2),rgba(184,137,63,0))}
.nous-timeline__year{position:sticky;top:0;z-index:3;padding:18px 0 0;background:linear-gradient(180deg,rgba(249,243,234,.95),rgba(249,243,234,.72),transparent)}
.card[data-kind="memory"]{overflow:hidden}
.card[data-kind="memory"]::before{content:"";position:absolute;left:18px;top:26px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle,var(--gold),var(--terra));box-shadow:0 0 0 8px rgba(184,137,63,.08);z-index:3}
.card[data-kind="memory"] .card__body::before{content:"";display:block;width:84px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);margin-bottom:2px}
.card[data-kind="memory"] .card__text{display:block;max-width:34ch}
.card[data-kind="memory"] .card__text::first-letter{font:500 2.6em/.84 var(--font-display);color:#a75e64;float:left;margin:5px 10px 0 0;font-style:italic}
.memory-meta{row-gap:6px}
.memory-foot{align-items:flex-end}

/* Affinage ÉCHOS */
.echo-phrase__foot{align-items:flex-end}
.echo-phrase__author .author{gap:10px}
.echo-phrase__author .author__avatars{display:flex}
.echo-phrase__author .author__avatar{width:30px;height:30px;min-width:30px;font-size:.8rem}
.echo-phrase__author .author__name{font:700 .74rem var(--font-body);color:#9b4b6a}
.echo-book__spread{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.echo-book__spread.is-single{grid-template-columns:1fr}
.echo-book__separator{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;align-self:stretch;min-height:100%}
.echo-book__separator span{display:block;width:1px;flex:1;min-height:36px;background:linear-gradient(180deg,transparent,rgba(184,137,63,.45),transparent)}
.echo-book__separator em{font-style:normal;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#fff7ec,#f0ddd5);color:#a15d69;border:1px solid rgba(184,137,63,.24);box-shadow:0 0 0 8px rgba(227,190,185,.08);animation:echoBookHeart 7s ease-in-out infinite}
@keyframes echoBookHeart{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.echo-book__page{padding-inline:6px}
.echo-book__page p{margin:0 0 1.15em}
.echo-book__page p:last-of-type{margin-bottom:0}
.echo-book__page p:first-letter{font:500 2.4em/.85 var(--font-display);color:#a75e64;float:left;margin:6px 10px 0 0;font-style:italic}
.echo-book__num{margin-top:auto;padding-top:18px}
@media(max-width:800px){.echo-book__spread{grid-template-columns:1fr}.echo-book__separator{flex-direction:row;min-height:auto;padding:4px 0}.echo-book__separator span{width:auto;height:1px;min-width:36px;min-height:1px;flex:1}}

/* Rituels avec variations automatiques */
.horizon--ritual{position:relative;overflow:hidden}
.horizon--ritual::after{content:"";position:absolute;inset:auto -60px -70px auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%);pointer-events:none}
.horizon--ritual .horizon-ritual__icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid currentColor;font:400 1.35rem/1 var(--font-display);opacity:.92}
.horizon-ritual__dial{grid-template-columns:1fr;justify-items:center}
.horizon--ritual-sage{background:linear-gradient(130deg,var(--paper-soft),var(--sage-tint));}
.horizon--ritual-sage .horizon-ritual__dial,.horizon--ritual-sage .horizon-ritual__icon{color:var(--sage-deep);border-color:rgba(107,133,104,.28)}
.horizon--ritual-sage .horizon-ritual__ring i.is-on{background:var(--sage);color:var(--paper-soft)}
.horizon--ritual-gold{background:linear-gradient(130deg,#fff8ee,#f3e3bf)}
.horizon--ritual-gold .horizon-ritual__dial,.horizon--ritual-gold .horizon-ritual__icon,.horizon--ritual-gold .horizon-ritual__schedule,.horizon--ritual-gold .horizon__kicker{color:#7b5a14;border-color:rgba(184,137,63,.28)}
.horizon--ritual-gold .horizon-ritual__ring i.is-on{background:var(--gold);color:#fff9f0}
.horizon--ritual-rose{background:linear-gradient(130deg,#fff8f6,#f5e2e5)}
.horizon--ritual-rose .horizon-ritual__dial,.horizon--ritual-rose .horizon-ritual__icon,.horizon--ritual-rose .horizon-ritual__schedule,.horizon--ritual-rose .horizon__kicker{color:#8e5362;border-color:rgba(143,83,98,.25)}
.horizon--ritual-rose .horizon-ritual__ring i.is-on{background:#a75e64;color:#fff9f2}
.horizon--ritual-night{background:linear-gradient(130deg,#faf6ff,#e8e4f5)}
.horizon--ritual-night .horizon-ritual__dial,.horizon--ritual-night .horizon-ritual__icon,.horizon--ritual-night .horizon-ritual__schedule,.horizon--ritual-night .horizon__kicker{color:#5f567a;border-color:rgba(95,86,122,.24)}
.horizon--ritual-night .horizon-ritual__ring i.is-on{background:#6c6488;color:#fff}

/* Sélecteur thématisé date/heure : unique dans le Studio. */
.studio-datetime__layer{position:fixed;inset:0;z-index:2000;background:color-mix(in srgb,var(--ink) 38%,transparent);display:grid;place-items:center;padding:16px;backdrop-filter:blur(9px)}
.studio-datetime__panel{width:min(360px,100%);max-height:min(590px,90dvh);overflow:auto;padding:22px;background:var(--paper-soft);color:var(--ink);border:1px solid var(--gold-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-xl);font-family:var(--font-body)}
.studio-datetime__head,.studio-datetime__month,.studio-datetime__foot{display:flex;justify-content:space-between;align-items:center;gap:10px}
.studio-datetime__head{padding-bottom:16px;border-bottom:1px solid var(--line);font-family:var(--font-display);font-size:1.45rem}
.studio-datetime__head button,.studio-datetime__month button,.studio-datetime__foot button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);color:var(--wine);min-width:38px;min-height:38px;cursor:pointer}
.studio-datetime__month{padding:18px 0;text-transform:capitalize;font-family:var(--font-display);font-size:1.1rem}
.studio-datetime__week,.studio-datetime__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.studio-datetime__week span{font-size:.7rem;font-weight:800;color:var(--ink-muted);padding:8px 0}
.studio-datetime__days button{aspect-ratio:1;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--ink);font:650 .8rem var(--font-body);cursor:pointer}
.studio-datetime__days button:hover,.studio-datetime__days button:focus-visible{background:var(--terra-soft);border-color:var(--terra)}
.studio-datetime__days button[aria-current="date"]{background:var(--wine);color:var(--paper);border-color:var(--wine)}
.studio-datetime__foot{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.studio-datetime__foot button{flex:1;padding:9px}
.studio-datetime__foot button:last-child{background:var(--terra);color:var(--paper);border-color:var(--terra)}
.studio-datetime__time{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;margin:28px 0 20px}
.studio-datetime__time label{display:grid;gap:9px;color:var(--ink-muted);font-size:.78rem;text-align:center}
.studio-datetime__time select{width:100%;min-height:66px;text-align:center;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);color:var(--wine);font:500 1.8rem var(--font-display)}
.studio-datetime__time>span{font:500 2rem var(--font-display);padding-bottom:15px;color:var(--gold)}
.ritual-calendar-choice{grid-column:1/-1}
.ritual-calendar-choice .check-line{gap:12px}


/* Variante prose pour Échos — chronique magazine pleine largeur, distincte du poème */
.echo-text.echo-prose{position:relative;display:block;width:100%;max-width:none;margin:0;padding:clamp(22px,3vw,38px) clamp(26px,4vw,58px);border:1px solid rgba(184,137,63,.22);border-radius:4px 34px 4px 34px;background:radial-gradient(circle at 88% 8%,rgba(184,137,63,.08),transparent 25%),linear-gradient(145deg,#fffdf9,#f4e9df);box-shadow:0 24px 64px -46px rgba(67,32,40,.38);overflow:hidden}
.echo-prose::before{content:"";position:absolute;inset:11px;border:1px solid rgba(184,137,63,.12);pointer-events:none}
.echo-prose__masthead{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px;margin-bottom:16px;color:#9c635b;font:750 .54rem var(--font-body);letter-spacing:.22em;text-transform:uppercase}
.echo-prose__masthead i{height:1px;background:linear-gradient(90deg,rgba(184,137,63,.65),transparent)}
.echo-prose__masthead em{font-style:normal;color:var(--gold)}
.echo-prose__head{position:relative;z-index:1;display:flex;align-items:end;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid rgba(184,137,63,.24)}
.echo-prose__head>div{display:grid;gap:5px;min-width:0}
.echo-prose__label{font:800 .58rem var(--font-body);letter-spacing:.24em;text-transform:uppercase;color:var(--terra)}
.echo-prose__head h3{margin:0;font:400 clamp(1.65rem,2.5vw,2.45rem)/1.02 var(--font-display);letter-spacing:-.035em;color:var(--ink)}
.echo-prose__head time{font:650 .72rem var(--font-body);color:var(--ink-muted);white-space:nowrap}
.echo-prose__folio{position:relative;z-index:1;padding-top:clamp(18px,2.4vw,28px)}
.echo-prose__columns{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr);gap:clamp(20px,2.8vw,38px);align-items:start}
.echo-prose__column{display:grid;gap:1.05em;min-width:0}
.echo-prose__column p,.echo-prose__single p{margin:0;font:400 clamp(.91rem,1vw,1.03rem)/1.72 var(--font-body);color:#483934;text-align:justify;text-wrap:pretty;hyphens:auto}
.echo-prose__column p.is-opening:first-letter,.echo-prose__single p.is-opening:first-letter{float:left;margin:.08em .16em 0 0;font:500 3.1em/.8 var(--font-display);color:#a75e64}
.echo-prose__axis{display:flex;align-self:stretch;flex-direction:column;align-items:center;gap:10px;min-height:100%}
.echo-prose__axis i{width:1px;flex:1;min-height:36px;background:linear-gradient(transparent,rgba(184,137,63,.55),transparent)}
.echo-prose__axis b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid rgba(184,137,63,.35);background:#fffaf4;color:#a75e64;font:400 .8rem var(--font-display);animation:echoTextOrbit 6s ease-in-out infinite}
@keyframes echoTextOrbit{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(8deg) scale(1.08)}}
.echo-prose__single{max-width:78ch;margin:0 auto;padding:clamp(6px,1vw,12px) clamp(10px,3vw,30px);display:grid;gap:1.05em;text-align:left}
.echo-prose.is-single .echo-prose__head{max-width:88ch;margin-inline:auto}
.echo-prose.is-empty{padding-bottom:22px}.echo-prose.is-empty .echo-prose__head{border-bottom:0}.echo-prose.is-empty .echo-prose__masthead{margin-bottom:10px}
.echo-prose__foot{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:13px;border-top:1px solid rgba(184,137,63,.18);color:#976a64;font:700 .58rem var(--font-body);letter-spacing:.11em;text-transform:uppercase}
@media(max-width:820px){.echo-prose__columns{grid-template-columns:1fr}.echo-prose__axis{flex-direction:row}.echo-prose__axis i{height:1px;width:auto;min-height:1px;min-width:48px;flex:1}.echo-prose__head{align-items:start;flex-direction:column}.echo-text.echo-prose{padding:22px}.echo-prose__masthead em{display:none}.echo-prose__single{padding-inline:0}.echo-prose__column p,.echo-prose__single p{text-align:left}}

/* Fenêtre de nuance : restaurer le curseur natif au-dessus du curseur décoratif global. */
body.has-custom-cursor .nr-color-dialog,body.has-custom-cursor .nr-color-dialog *{cursor:auto!important}
body.has-custom-cursor .nr-color-dialog button,body.has-custom-cursor .nr-color-dialog input[type=range]{cursor:pointer!important}
body.has-custom-cursor .nr-color-dialog__plane{cursor:crosshair!important}
body.has-custom-cursor .nr-color-dialog__hex{cursor:text!important}
.nr-color-dialog__plane{cursor:crosshair}
.nr-color-dialog__cursor{width:23px;height:23px;z-index:4}
.nr-color-dialog__plane:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
/* Personnalisation des en-têtes depuis Gérer → Catégories. */
.world-section--category{--category-accent:var(--gold)}
.world-section--category .world-section__head{position:relative;border-bottom:1px solid color-mix(in srgb,var(--category-accent) 33%,var(--line));padding-bottom:17px}
.world-section--category .world-section__head::after{content:"";position:absolute;bottom:-1px;left:0;width:min(170px,27%);height:2px;background:var(--category-accent);border-radius:99px}
.category-heading{display:flex;gap:18px;align-items:center;min-width:0}
.category-heading__emblem{flex:none;width:clamp(54px,5.2vw,72px);height:clamp(54px,5.2vw,72px);border-radius:18px 5px 18px 5px;display:grid;place-items:center;background:color-mix(in srgb,var(--category-accent) 15%,var(--paper-soft));border:1px solid color-mix(in srgb,var(--category-accent) 36%,var(--line));color:var(--category-accent);font:400 clamp(1.4rem,2vw,1.9rem) var(--font-display);box-shadow:inset 0 1px rgba(255,255,255,.66)}
.category-heading__text{display:grid;gap:3px;min-width:0}
.category-heading__text small{font:800 .66rem var(--font-body);letter-spacing:.18em;color:var(--category-accent);text-transform:uppercase}
.category-heading__text h2{margin:0;color:var(--ink);font-family:var(--font-display);font-weight:400;font-size:clamp(1.8rem,3vw,2.6rem)}
.category-heading-wrap{display:grid;gap:5px}
.category-heading-wrap>p{margin:0 0 0 clamp(72px,7vw,90px);color:var(--ink-muted);font-size:.84rem}
.jump__category{display:inline-flex!important;align-items:center;gap:9px;border-color:color-mix(in srgb,var(--category-accent) 33%,var(--line))!important}
.jump__category-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:color-mix(in srgb,var(--category-accent) 16%,var(--paper));color:var(--category-accent);font-size:1rem}
.jump__category:hover{background:color-mix(in srgb,var(--category-accent) 12%,var(--paper))!important}
.world-section--category [data-create]{border-color:color-mix(in srgb,var(--category-accent) 45%,var(--line));color:var(--ink)}
.envie--custom{border-top:3px solid var(--category-accent)}
.envie--custom .envie-custom__symbol{color:var(--category-accent);background:color-mix(in srgb,var(--category-accent) 14%,var(--paper))}
.envie--custom .envie__kicker,.horizon--custom .horizon__kicker{color:var(--category-accent)}
.horizon--custom{border-left:4px solid var(--category-accent)}
@media(prefers-reduced-motion:reduce){.divider::before,.divider__glint,.divider__orb,.divider__petal,.divider__line,.divider__trace,.echo-prose__axis b{animation:none!important}}

/* ═══════════════════════════════════════════════════════════════════════════
   W · ROMANTIQUES · micro-animations légères
   Toutes en transform / opacity. Aucune ne touche au layout.
   Désactivées automatiquement en prefers-reduced-motion.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Le sceau du Refuge respire doucement */
.brand__mark{animation:refugeBreath 5.6s ease-in-out infinite}
.brand:hover .brand__mark{animation-play-state:paused}
@keyframes refugeBreath{
  0%,100%{box-shadow:0 0 0 0 rgba(184,85,58,.0)}
  50%{box-shadow:0 0 0 8px rgba(184,85,58,.09)}
}

/* Le cœur du préloadeur bat deux fois par cycle */
.preloader__mark{animation:preloaderPulse 2.4s ease-in-out infinite, refugeHeartbeat 1.8s ease-in-out infinite}
@keyframes refugeHeartbeat{
  0%,40%,80%,100%{transform:scale(1)}
  20%,60%{transform:scale(1.11)}
}

/* Petite volute au survol des boutons primaires */
.btn--primary{position:relative;overflow:hidden;isolation:isolate}
.btn--primary::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(115deg,transparent 30%,rgba(255,240,225,.34) 50%,transparent 70%);
  transform:translateX(-120%);
  transition:transform .7s cubic-bezier(.22,.9,.28,1);
  pointer-events:none;
}
.btn--primary:hover:not(:disabled)::after{transform:translateX(120%)}

/* Les tuiles du hero ont un léger flottement permanent */
.hero .tile{animation:tileFloat 7.4s ease-in-out infinite}
@keyframes tileFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-4px)}
}

/* Les cartes du souvenir respirent quand on les regarde */
.card[data-kind="memory"]{transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.card[data-kind="memory"]:hover{animation:memoryBeat 2.4s ease-in-out infinite}
@keyframes memoryBeat{
  0%,100%{box-shadow:0 18px 40px -22px rgba(60,25,35,.28), 0 0 0 0 rgba(184,137,63,0)}
  50%{box-shadow:0 22px 50px -22px rgba(60,25,35,.34), 0 0 0 6px rgba(184,137,63,.10)}
}

/* Les poèmes ont un battement très lent du ❦ central */
.echo-book__separator em{animation:echoHeartSlow 8.6s ease-in-out infinite}
@keyframes echoHeartSlow{
  0%,100%{transform:scale(1) rotate(0deg)}
  50%{transform:scale(1.08) rotate(-4deg)}
}

/* Les phrases s'illuminent quand on les survole */
.echo-phrase:hover .echo-phrase__mark{
  animation:quoteGlint 1.4s ease-out;
}
@keyframes quoteGlint{
  0%{transform:rotate(-6deg) scale(1.08);filter:drop-shadow(0 0 0 rgba(184,137,63,0))}
  60%{transform:rotate(-10deg) scale(1.16);filter:drop-shadow(0 0 6px rgba(184,137,63,.35))}
  100%{transform:rotate(-6deg) scale(1.08);filter:drop-shadow(0 0 0 rgba(184,137,63,0))}
}

/* Les sceaux de capsule scellée pulsent doucement */
.capsule[data-sealed] .capsule__seal{animation:sealBeat 3.6s ease-in-out infinite}
@keyframes sealBeat{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.05)}
}

/* Les cartes d'envie gagnent un très subtil halo coloré */
.envie--book:hover .envie-book__shelf,
.envie--gift:hover .envie-gift__box,
.envie--game:hover .envie-game__art{
  filter:drop-shadow(0 10px 22px rgba(184,85,58,.22));
  transition:filter .5s var(--ease-out);
}

/* Le cadran de rituel fait tourner ses points très lentement */
.horizon--ritual .horizon-ritual__ring i.is-on{
  animation:ritualDots 4.2s ease-in-out infinite;
  animation-delay:calc(var(--i,0) * .1s);
}
@keyframes ritualDots{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-2px)}
}

/* Le nouvel article pulse une seule fois pour attirer l'œil */
.recent-card__new{animation:newBadge 2.4s ease-in-out infinite, newFade 7s ease-out forwards}
@keyframes newFade{
  0%,80%{opacity:1}
  100%{opacity:.85}
}

/* Le séparateur cœur au-dessus des sections écho a une onde lente */
.echo-sep em{position:relative}
.echo-sep em::after{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  border:1px solid rgba(175,111,117,.32);
  opacity:0;
  animation:echoRipple 6.4s ease-out infinite;
  pointer-events:none;
}
@keyframes echoRipple{
  0%{transform:scale(.9);opacity:.55}
  70%{opacity:0}
  100%{transform:scale(1.9);opacity:0}
}

/* Curseur personnalisé : anneau qui respire au repos */
.cursor__ring{animation:cursorBreath 3.4s ease-in-out infinite}
@keyframes cursorBreath{
  0%,100%{transform:scale(1);border-color:color-mix(in srgb,var(--terra) 45%,transparent)}
  50%{transform:scale(1.06);border-color:color-mix(in srgb,var(--gold) 55%,transparent)}
}

/* L'avatar du topbar respire doucement */
.avatar-btn{animation:avatarSoftGlow 6s ease-in-out infinite}
@keyframes avatarSoftGlow{
  0%,100%{box-shadow:0 0 0 0 rgba(184,85,58,0)}
  50%{box-shadow:0 0 0 5px rgba(184,85,58,.07)}
}

/* Le badge "système" des catégories a un micro éclat toutes les 5 s */
.badge{animation:badgeSoftShine 5.2s ease-in-out infinite}
@keyframes badgeSoftShine{
  0%,92%,100%{box-shadow:none}
  96%{box-shadow:0 0 0 3px rgba(184,85,58,.10)}
}

/* Le divider peint a un très léger zoom vivant (adouci) */
.divider__glint{animation-duration:16s}

/* Les tuiles de contexte du calendrier ont un très léger levé au hover */
.cal-context__item:hover{transform:translateX(3px) scale(1.008)}

/* Les vignettes de la galerie souvenir ont un très léger relief */
.memory-gallery__thumb:hover{
  transform:translateY(-2px) scale(1.05);
  transition:transform .3s var(--ease-spring);
}

/* Le bandeau "Aujourd'hui" du calendrier respire */
.cal-cell.is-today .cal-cell__today{animation:todayPulse 2s ease-in-out infinite, todaySoft 4.2s ease-in-out infinite}
@keyframes todaySoft{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-1px)}
}

/* Le sceau de la capsule ouverte ✉ tourne très lentement */
.capsule:not([data-sealed]) .capsule__seal{animation:capsuleOpenFloat 6.4s ease-in-out infinite}
@keyframes capsuleOpenFloat{
  0%,100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-3px) rotate(2deg)}
}

/* Les liens externes glissent doucement au survol */
.pp__link:hover b,.envie-book__links a:hover span,.envie-lingerie__cta a:hover span{
  transform:translateX(2px);
  display:inline-block;
  transition:transform .3s var(--ease-out);
}

/* Le mot du jour à l'accueil a une respiration très lente */
.home-cover__whisper{animation:whisperIn 1.2s var(--ease-out) .24s both, whisperBreath 8.6s ease-in-out 1.4s infinite}
@keyframes whisperIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes whisperBreath{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-2px)}
}

/* Réduction automatique de toutes ces animations pour les utilisateurs sensibles */
@media(prefers-reduced-motion:reduce){
  .brand__mark,.preloader__mark,.hero .tile,.card[data-kind="memory"]:hover,
  .echo-book__separator em,.capsule[data-sealed] .capsule__seal,
  .horizon--ritual .horizon-ritual__ring i.is-on,.recent-card__new,
  .cursor__ring,.avatar-btn,.badge,.cal-cell.is-today .cal-cell__today,
  .capsule:not([data-sealed]) .capsule__seal,.home-cover__whisper,
  .btn--primary::after,.echo-phrase:hover .echo-phrase__mark{
    animation:none!important;transition:none!important;
  }
}
/* V1.0.1 · Ambiance simplifiée */
.ambience-master{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;margin-bottom:20px;border:1px solid var(--line);border-radius:18px;background:var(--paper);transition:border-color .25s,background .25s,box-shadow .25s}
.ambience-master.is-on{border-color:color-mix(in srgb,var(--sage) 48%,var(--line));background:color-mix(in srgb,var(--sage) 8%,var(--paper));box-shadow:0 14px 34px -28px rgba(60,90,62,.34)}
.ambience-master>span{display:grid;gap:4px}.ambience-master strong{font:650 .92rem var(--font-body);color:var(--ink)}.ambience-master small{font:.76rem/1.5 var(--font-body);color:var(--ink-muted)}
.ambience-toggles--simple{display:grid;grid-template-columns:1fr;gap:10px}.ambience-toggles--simple .source{min-height:74px}
.nr-ambience-preview small{margin-left:auto;font:600 .7rem var(--font-body);color:var(--ink-muted)}

/* V1.0.5 · Médias + sauvegardes */
.media-item__copy{display:grid;gap:3px;min-width:0}.media-item__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.media-item__usage.is-free{background:var(--sage-soft);color:var(--sage-deep)}
.backup-hero{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.backup-choice{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;padding:26px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,#fffaf5,#f6eee5);overflow:hidden}.backup-choice::after{content:"";position:absolute;inset:auto -35px -55px auto;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 15%,transparent),transparent 70%)}.backup-choice.is-primary{background:linear-gradient(145deg,#fff8f4,#f3e7df);border-color:color-mix(in srgb,var(--terra) 25%,var(--line))}.backup-choice .btn{grid-column:1/-1;justify-self:start}.backup-choice small,.backup-import-panel__head small,.backup-secure-box__head small{display:block;font:800 .58rem var(--font-body);letter-spacing:.22em;color:var(--terra);margin-bottom:7px}.backup-choice h4,.backup-import-panel h4,.backup-secure-box h4{margin:0 0 8px;font:500 1.35rem var(--font-display);color:var(--ink)}.backup-choice p,.backup-import-panel p,.backup-secure-box p{margin:0;color:var(--ink-muted);font:.83rem/1.6 var(--font-body)}.backup-icon{position:relative;z-index:1;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line);font:500 1.3rem var(--font-display);color:var(--terra);box-shadow:0 10px 20px -15px rgba(31,24,20,.4)}.backup-secure-box,.backup-import-panel{margin:18px 0;padding:24px;border:1px solid var(--line-strong);border-radius:24px;background:linear-gradient(150deg,#fffaf6,#f4e9e2);box-shadow:0 18px 50px -38px rgba(31,24,20,.3)}.backup-secure-box__head,.backup-import-panel__head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:20px}.backup-secure-close{border:0;background:transparent;color:var(--ink-muted);font-size:1.4rem;cursor:pointer;padding:4px 8px}.backup-advanced{margin-top:22px;border:1px solid var(--line);border-radius:20px;background:var(--paper-soft);overflow:hidden}.backup-advanced summary{cursor:pointer;padding:17px 20px;font:700 .82rem var(--font-body);color:var(--ink);list-style:none}.backup-advanced summary::-webkit-details-marker{display:none}.backup-advanced summary::after{content:"＋";float:right;color:var(--terra)}.backup-advanced[open] summary::after{content:"−"}.backup-advanced__body{padding:0 18px 18px}.backup-advanced__body .settings__card{margin:12px 0 0}.backup-sections .check-line{background:var(--paper);border:1px solid var(--line-soft);border-radius:14px;padding:12px 14px}.backup-mode{min-height:92px}
@media(max-width:760px){.backup-hero{grid-template-columns:1fr}.media-item{grid-template-columns:58px minmax(0,1fr)}.media-item img{width:58px;height:58px}.media-item__actions{grid-column:1/-1;justify-content:flex-start}.backup-secure-box__head,.backup-import-panel__head{grid-template-columns:auto 1fr}.backup-secure-close{grid-column:2;grid-row:1;justify-self:end}}


/* V1.0.6 · Bibliothèque médias et import explicite */
.media-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.media-stat{position:relative;display:grid;gap:4px;padding:18px 20px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#fffaf5,#f5ece2);overflow:hidden}
.media-stat::after{content:"";position:absolute;right:-28px;bottom:-40px;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--terra) 10%,transparent),transparent 68%)}
.media-stat small{font:800 .55rem var(--font-body);letter-spacing:.2em;color:var(--terra)}
.media-stat strong{font:500 clamp(1.45rem,2vw,2rem)/1 var(--font-display);color:var(--ink)}
.media-stat span{font:.72rem/1.4 var(--font-body);color:var(--ink-muted)}
.media-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line-soft)}
.media-toolbar>div{display:grid;gap:8px}.media-toolbar>div>small{font:800 .56rem var(--font-body);letter-spacing:.18em;color:var(--terra)}
.media-toolbar p{max-width:42ch;margin:0;color:var(--ink-muted);font:.75rem/1.5 var(--font-body);text-align:right}
.media-admin-filters{display:flex;gap:8px;flex-wrap:wrap}.media-admin-filters .btn span{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:5px;padding:0 6px;border-radius:99px;background:color-mix(in srgb,var(--terra) 10%,transparent);font-size:.67rem}
.media-admin-filters .btn.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:16px}
.media-card{position:relative;min-width:0;border:1px solid var(--line);border-radius:20px;background:var(--paper);overflow:hidden;transition:transform .3s var(--ease-out),box-shadow .3s,border-color .3s}
.media-card:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 22px 45px -30px rgba(31,24,20,.35)}
.media-card.is-unused{border-style:dashed}
.media-card__visual{position:relative;display:grid;place-items:center;aspect-ratio:4/3;background:linear-gradient(145deg,var(--paper-warm),#efe3d8);overflow:hidden}
.media-card__visual img{width:100%;height:100%;object-fit:contain;display:block}
.media-card__usage{position:absolute;left:10px;top:10px;padding:7px 10px;border-radius:99px;background:rgba(31,24,20,.72);backdrop-filter:blur(8px);color:#fff;font:700 .62rem var(--font-body);letter-spacing:.04em}
.media-card__usage.is-free{background:rgba(88,116,84,.82)}
.media-card__body{display:grid;gap:14px;padding:14px 15px 15px}
.media-card__title{display:grid;gap:4px;min-width:0}.media-card__title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 .88rem var(--font-body);color:var(--ink)}.media-card__title small{font:.7rem var(--font-body);color:var(--ink-muted)}
.media-card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:11px;border-top:1px solid var(--line-soft)}.media-card__foot>span{font:.68rem var(--font-body);color:var(--ink-faint)}
.backup-safety{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0 18px;padding:14px 16px;border:1px dashed var(--line-strong);border-radius:16px;background:rgba(255,250,245,.58)}
.backup-safety>span{display:grid;gap:3px}.backup-safety strong{font:650 .82rem var(--font-body);color:var(--ink)}.backup-safety small{font:.72rem/1.45 var(--font-body);color:var(--ink-muted)}
@media(max-width:900px){.media-overview{grid-template-columns:repeat(2,1fr)}.media-toolbar{align-items:flex-start;flex-direction:column}.media-toolbar p{text-align:left}.backup-safety{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.media-overview{grid-template-columns:1fr 1fr}.media-stat{padding:14px}.media-grid{grid-template-columns:1fr}.backup-safety .btn{width:100%}}


/* V1.1-A · Fondation synchronisation */
.sync-foundation{display:grid;gap:22px}.sync-foundation__hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px 18px;align-items:center;padding:24px;border:1px solid color-mix(in srgb,var(--gold) 36%,transparent);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(244,237,224,.82));box-shadow:0 18px 50px rgba(77,47,35,.08)}
.sync-foundation__hero small,.sync-scope-grid small{display:block;font-size:.62rem;font-weight:800;letter-spacing:.18em;color:var(--terra);margin-bottom:5px}.sync-foundation__hero h4,.sync-scope-grid h4{margin:0}.sync-foundation__hero p,.sync-scope-grid p{margin:.35rem 0 0;color:var(--muted);line-height:1.6}.sync-foundation__hero>strong{font-family:var(--display);font-size:2.3rem;color:var(--wine);line-height:1}.sync-foundation__hero>span:last-child{grid-column:3;font-size:.72rem;color:var(--muted);margin-top:-12px}.sync-foundation__pulse{width:14px;height:14px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 7px color-mix(in srgb,var(--sage) 12%,transparent)}
.sync-scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.sync-scope-grid section{position:relative;overflow:hidden;padding:22px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.62)}.sync-scope-grid section>span{display:grid;place-items:center;width:38px;height:38px;margin-bottom:18px;border-radius:50%;background:color-mix(in srgb,var(--rose) 15%,var(--paper));color:var(--wine);font-size:1.15rem}.settings-note{margin:.8rem 0 0;color:var(--muted);font-size:.86rem;line-height:1.6}
@media(max-width:800px){.sync-scope-grid{grid-template-columns:1fr}.sync-foundation__hero{grid-template-columns:auto 1fr}.sync-foundation__hero>strong{grid-column:1;font-size:1.8rem}.sync-foundation__hero>span:last-child{grid-column:2;margin:0}}

/* V1.1-B · Sync Cloudflare */
.sync-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.sync-foundation__pulse.is-live{background:var(--sage);box-shadow:0 0 0 7px color-mix(in srgb,var(--sage) 16%,transparent),0 0 24px color-mix(in srgb,var(--sage) 28%,transparent)}.sync-foundation__pulse.is-error{background:var(--terra);box-shadow:0 0 0 7px color-mix(in srgb,var(--terra) 14%,transparent)}.sync-error{color:var(--terra)}
.sync-live-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:18px 20px;border:1px solid color-mix(in srgb,var(--gold) 26%,var(--line));border-radius:20px;background:linear-gradient(135deg,rgba(255,255,255,.74),color-mix(in srgb,var(--sage) 6%,var(--paper)));box-shadow:0 12px 34px rgba(64,50,39,.06)}
.sync-live-card small{display:block;margin-bottom:4px;font-size:.62rem;font-weight:800;letter-spacing:.16em;color:var(--terra)}.sync-live-card h4{margin:0;font-family:var(--display);font-size:1.12rem}.sync-live-card p{margin:.35rem 0 0;color:var(--muted);font-size:.86rem;line-height:1.55}.sync-live-card__signal{width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 7px color-mix(in srgb,var(--gold) 12%,transparent)}.sync-live-card.is-live .sync-live-card__signal{background:var(--sage);box-shadow:0 0 0 7px color-mix(in srgb,var(--sage) 14%,transparent),0 0 20px color-mix(in srgb,var(--sage) 24%,transparent)}
@media(max-width:680px){.sync-live-card{grid-template-columns:auto 1fr}.sync-live-card .btn{grid-column:2;justify-self:start}}


/* V1.1-E · présence d'édition simple */
[data-item]{position:relative}
.live-editing-badge{position:absolute;z-index:12;right:12px;top:12px;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--gold) 42%,transparent);border-radius:999px;background:color-mix(in srgb,var(--paper) 92%,transparent);box-shadow:0 8px 26px rgba(55,39,30,.12);backdrop-filter:blur(9px);font:750 .66rem/1 var(--font-body);letter-spacing:.03em;color:var(--wine);pointer-events:none}
.live-editing-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px color-mix(in srgb,var(--gold) 14%,transparent);animation:editingPulse 1.8s ease-in-out infinite}
@keyframes editingPulse{50%{transform:scale(.72);opacity:.68}}
@media(prefers-reduced-motion:reduce){.live-editing-badge::before{animation:none}}


/* V1.1-G · Appareils Cloudflare */
.device-pair-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;padding:clamp(22px,3vw,34px);margin-bottom:20px;border:1px solid color-mix(in srgb,var(--gold) 38%,transparent);border-radius:24px;background:linear-gradient(135deg,color-mix(in srgb,var(--paper) 94%,var(--rose) 6%),color-mix(in srgb,var(--paper) 92%,var(--gold) 8%));box-shadow:0 18px 50px rgba(72,42,28,.08)}
.device-pair-hero small,.cloud-pair-ticket small{display:block;font-size:.62rem;letter-spacing:.2em;font-weight:800;color:var(--terra);margin-bottom:6px}.device-pair-hero h4,.cloud-pair-ticket h4{font-family:var(--font-display);font-size:clamp(1.35rem,2vw,2rem);margin:0 0 8px}.device-pair-hero p,.cloud-pair-ticket p{margin:0;color:var(--ink-muted);max-width:58ch}.device-pair-hero__actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.cloud-pair-ticket{display:grid;grid-template-columns:190px minmax(0,1fr);gap:26px;align-items:center;padding:22px;margin:0 0 22px;border-radius:22px;background:var(--ink);color:var(--paper);box-shadow:0 22px 55px rgba(31,24,20,.18)}.cloud-pair-ticket p{color:rgba(244,237,224,.72)}.cloud-pair-ticket__qr{width:190px;min-height:190px;background:#fff;border-radius:18px;padding:12px;display:grid;place-items:center}.cloud-pair-ticket__qr canvas,.cloud-pair-ticket__qr img{max-width:100%;height:auto}.cloud-pair-ticket code{display:block;margin:16px 0 14px;padding:12px 14px;border:1px solid rgba(244,237,224,.18);border-radius:12px;background:rgba(255,255,255,.06);font-size:.72rem;overflow-wrap:anywhere;color:var(--paper)}
.cloud-pair-ticket__hint{margin-top:-2px;margin-bottom:12px;font-size:.8rem;line-height:1.55;color:rgba(244,237,224,.78)}
.ambience-simple{display:grid;gap:18px}.ambience-simple__intro{display:grid;gap:10px;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fffaf5,#f7eee6)}.ambience-simple__intro p{margin:0;color:var(--ink);line-height:1.7}
.device-cloud-list{display:grid;gap:12px}.device-cloud-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px 16px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--paper) 96%,var(--sage) 4%)}.device-cloud-card.is-revoked{opacity:.56}.device-cloud-card__icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:color-mix(in srgb,var(--device) 15%,var(--paper));border:1px solid color-mix(in srgb,var(--device) 35%,transparent);font-size:1.35rem}.device-cloud-card__body{display:grid;gap:2px;min-width:0}.device-cloud-card__body small{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--terra);font-weight:800}.device-cloud-card__body strong{font-size:.98rem}.device-cloud-card__body span{font-size:.76rem;color:var(--ink-muted)}.device-fingerprint{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-faint);padding:11px 14px;border-radius:var(--r-sm);background:var(--paper-warm);border:1px solid var(--line);margin:10px 0 0}
@media(max-width:760px){.device-pair-hero{grid-template-columns:1fr}.device-pair-hero__actions{justify-content:flex-start}.cloud-pair-ticket{grid-template-columns:1fr}.cloud-pair-ticket__qr{width:min(100%,220px);min-height:0;margin:auto}.device-cloud-card{grid-template-columns:auto minmax(0,1fr)}.device-cloud-card__action{grid-column:1/-1}.device-cloud-card__action .btn{width:100%}}


/* V1.1-I.3 · Centre de réglages simplifié */
.settings--simple .settings__nav{padding-top:24px}
.settings__links--simple{gap:7px}
.settings__links--simple button{display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:12px 14px;border-radius:14px}
.settings__links--simple button>span{grid-row:1/3;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--terra) 8%,var(--paper));color:var(--terra);font-size:.86rem}
.settings__links--simple button strong{font:700 .82rem var(--font-body);color:inherit}
.settings__links--simple button small{font:.68rem/1.35 var(--font-body);color:var(--ink-faint)}
.settings__links--simple button.is-on small{color:var(--ink-muted)}
.settings-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.settings-hub-card{appearance:none;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:20px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#fffaf5,#f7eee6);text-align:left;color:var(--ink);transition:transform .25s,border-color .25s,box-shadow .25s}
.settings-hub-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--terra) 32%,var(--line));box-shadow:0 18px 36px -30px rgba(31,24,20,.45)}
.settings-hub-card__icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line);color:var(--terra);font-size:1.15rem}
.settings-hub-card>span:nth-child(2){display:grid;gap:4px}.settings-hub-card strong{font:600 1rem var(--font-body)}.settings-hub-card small{font:.76rem/1.45 var(--font-body);color:var(--ink-muted)}.settings-hub-card em{font:700 .64rem var(--font-body);color:var(--terra);font-style:normal;letter-spacing:.05em}.settings-hub-card b{font-size:1.15rem;color:var(--ink-faint)}
.settings-status-strip{display:flex;align-items:center;gap:13px;padding:14px 16px;margin-bottom:18px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.settings-status-strip>span{width:10px;height:10px;border-radius:50%;background:var(--gold)}.settings-status-strip.is-ok>span{background:var(--sage);box-shadow:0 0 0 6px color-mix(in srgb,var(--sage) 12%,transparent)}.settings-status-strip div{display:grid;gap:2px}.settings-status-strip strong{font:700 .84rem var(--font-body)}.settings-status-strip small{font:.72rem var(--font-body);color:var(--ink-muted)}
.settings-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-muted);font:700 .72rem var(--font-body)}
.settings-hub-footnote{margin:18px 2px 0;color:var(--ink-faint);font:.72rem/1.5 var(--font-body)}
@media(max-width:760px){.settings-hub-grid{grid-template-columns:1fr}.settings__links--simple button small{display:none}.settings__links--simple button{grid-template-columns:auto auto;grid-template-rows:auto}.settings__links--simple button>span{grid-row:auto}}


/* ═══ V1.1-I.5 · AJOUT D'APPAREIL ═══ */
.device-add{display:grid;gap:24px;margin-bottom:24px;padding:clamp(22px,3vw,34px);border:1px solid color-mix(in srgb,var(--gold) 28%,var(--line));border-radius:28px;background:linear-gradient(145deg,#fffaf5,#f3e9df);box-shadow:0 20px 60px rgba(73,45,28,.08)}
.device-add__intro small{display:block;margin-bottom:7px;font:800 .58rem var(--font-body);letter-spacing:.24em;color:var(--terra)}
.device-add__intro h4{margin:0 0 8px;font:500 clamp(1.45rem,2.5vw,2.25rem)/1.05 var(--font-display);color:var(--ink)}
.device-add__intro p{max-width:66ch;margin:0;color:var(--ink-muted);font:.86rem/1.65 var(--font-body)}
.device-add__people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.device-person{display:grid;grid-template-columns:auto minmax(0,1fr);gap:15px;align-items:center;min-height:104px;padding:18px;border:1px solid var(--line);border-radius:20px;background:rgba(255,253,249,.88);text-align:left;transition:transform .25s,border-color .25s,box-shadow .25s,background .25s}
.device-person:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--terra) 30%,var(--line));box-shadow:0 14px 34px rgba(66,39,24,.09);background:#fffaf5}
.device-person__avatar{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;font:500 1.45rem var(--font-display);background:var(--terra-soft);color:var(--wine);border:1px solid color-mix(in srgb,var(--terra) 22%,transparent)}
.device-person--leonor .device-person__avatar{background:color-mix(in srgb,var(--rose) 24%,var(--paper));color:var(--wine)}
.device-person>span:last-child{display:grid;gap:2px}
.device-person small{font:800 .56rem var(--font-body);letter-spacing:.2em;color:var(--ink-faint)}
.device-person strong{font:500 1.22rem var(--font-display);color:var(--ink)}
.device-person em{margin-top:5px;font:650 .72rem var(--font-body);font-style:normal;color:var(--terra)}

.pairing-pass{margin:0 0 26px;border:1px solid color-mix(in srgb,var(--wine) 22%,var(--line));border-radius:30px;overflow:hidden;background:linear-gradient(145deg,#2a171a,#3a2025);color:var(--paper);box-shadow:0 28px 75px rgba(37,20,23,.22)}
.pairing-pass__top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:24px 26px 18px;border-bottom:1px solid rgba(244,237,224,.10)}
.pairing-pass__top small{display:block;margin-bottom:7px;font:800 .58rem var(--font-body);letter-spacing:.22em;color:#e5b58f}
.pairing-pass__top h4{margin:0 0 7px;font:500 clamp(1.45rem,2.3vw,2.05rem) var(--font-display)}
.pairing-pass__top p{margin:0;color:rgba(244,237,224,.72);font:.82rem/1.55 var(--font-body)}
.pairing-pass__timer{flex:none;padding:9px 12px;border:1px solid rgba(244,237,224,.16);border-radius:999px;background:rgba(255,255,255,.05);font:800 .7rem var(--font-body);letter-spacing:.08em}
.pairing-pass__main{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:28px;padding:26px}
.pairing-pass__visual{display:grid;gap:14px;align-content:start}
.pairing-pass__visual p{margin:0;color:rgba(244,237,224,.7);font:.78rem/1.6 var(--font-body);text-align:center}
.pairing-pass__qr{width:min(100%,320px);aspect-ratio:1;margin:auto;padding:16px;border-radius:26px;background:#fff8f5;display:grid;place-items:center;box-shadow:0 18px 45px rgba(0,0,0,.24)}
.pairing-pass__qr svg{width:100%;height:100%;display:block}
.qr-error{display:grid;gap:6px;text-align:center;color:#6b2732;padding:18px}.qr-error strong{font:700 .9rem var(--font-body)}.qr-error small{font:.72rem/1.4 var(--font-body)}
.pairing-pass__info{display:grid;gap:18px;align-content:start}
.pairing-code{padding:14px 16px;border:1px solid rgba(244,237,224,.13);border-radius:16px;background:rgba(255,255,255,.045)}
.pairing-code small{display:block;margin-bottom:7px;font:800 .54rem var(--font-body);letter-spacing:.22em;color:#d7aa86}
.pairing-code code{display:block;color:#fffaf3;font:600 .74rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
.pairing-share-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pairing-action{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:11px;row-gap:2px;align-items:center;min-height:74px;padding:13px 14px;border:1px solid rgba(244,237,224,.13);border-radius:16px;background:rgba(255,255,255,.045);color:var(--paper);text-align:left;transition:background .22s,border-color .22s,transform .22s}
.pairing-action:hover{transform:translateY(-1px);background:rgba(255,255,255,.08);border-color:rgba(244,237,224,.24)}
.pairing-action>span{grid-row:1/3;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.07);font-size:1rem}
.pairing-action strong{font:700 .78rem var(--font-body)}
.pairing-action small{font:.67rem/1.35 var(--font-body);color:rgba(244,237,224,.62)}
.pairing-action--primary{background:linear-gradient(135deg,rgba(184,85,58,.34),rgba(184,137,63,.20));border-color:rgba(230,180,135,.30)}
.pairing-pass__manual{border-top:1px solid rgba(244,237,224,.10);padding-top:4px}
.pairing-pass__manual summary{padding:10px 0;cursor:pointer;font:700 .74rem var(--font-body);color:#e7c5aa}
.pairing-pass__manual label{display:block;margin-bottom:6px;font:800 .52rem var(--font-body);letter-spacing:.2em;color:rgba(244,237,224,.52)}
.pairing-copyline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.pairing-copyline code{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.05);font-size:.68rem;overflow-wrap:anywhere}
.pairing-pass__close{justify-self:start;color:rgba(244,237,224,.65);font:650 .72rem var(--font-body);text-decoration:underline;text-underline-offset:4px}

@media(max-width:820px){
  .device-add__people{grid-template-columns:1fr}
  .pairing-pass__main{grid-template-columns:1fr}
  .pairing-pass__qr{width:min(82vw,320px)}
}
@media(max-width:560px){
  .pairing-pass__top{display:grid}
  .pairing-share-grid{grid-template-columns:1fr}
  .pairing-pass__main{padding:18px}
  .device-add{padding:20px}
}


/* ═══ V1.1-I.6 · ACCÈS RAPIDE / COHÉRENCE / CALENDRIER ═══ */
.settings-quick-device{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;width:100%;margin-top:16px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--terra) 26%,var(--line));border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--terra) 7%,var(--paper)),color-mix(in srgb,var(--gold) 8%,var(--paper)));color:var(--ink);text-align:left;box-shadow:0 10px 24px -22px rgba(70,40,25,.35);transition:transform .22s,border-color .22s,box-shadow .22s}
.settings-quick-device:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--terra) 42%,var(--line));box-shadow:0 14px 28px -22px rgba(70,40,25,.42)}
.settings-quick-device>span{grid-row:1/3;width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:var(--terra);color:#fffaf3;font-size:1rem}
.settings-quick-device strong{font:750 .8rem var(--font-body)}
.settings-quick-device small{font:.66rem var(--font-body);color:var(--ink-muted)}

.cloud-quick-add{display:grid;gap:18px;margin-bottom:18px;padding:22px;border:1px solid color-mix(in srgb,var(--gold) 26%,var(--line));border-radius:22px;background:linear-gradient(145deg,#fffaf5,#f6eee4)}
.cloud-quick-add__head small{display:block;margin-bottom:5px;font:800 .56rem var(--font-body);letter-spacing:.22em;color:var(--terra)}
.cloud-quick-add__head h4{margin:0 0 6px;font:500 1.5rem var(--font-display);color:var(--ink)}
.cloud-quick-add__head p{margin:0;color:var(--ink-muted);font:.8rem/1.55 var(--font-body)}
.cloud-quick-add__people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cloud-quick-add--offline{background:linear-gradient(145deg,#fff9f4,#f4eadf)}

.settings-calendar-theme{display:grid;gap:18px}
.settings-calendar-theme__intro{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:22px 24px;border:1px solid color-mix(in srgb,var(--gold) 28%,var(--line));border-radius:24px;background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--rose) 12%,transparent),transparent 42%),linear-gradient(145deg,#fffaf5,#f4ebdf)}
.settings-calendar-theme__intro>span{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:color-mix(in srgb,var(--wine) 8%,var(--paper));border:1px solid color-mix(in srgb,var(--wine) 18%,var(--line));color:var(--wine);font-size:1.25rem}
.settings-calendar-theme__intro small{display:block;margin-bottom:5px;font:800 .56rem var(--font-body);letter-spacing:.22em;color:var(--terra)}
.settings-calendar-theme__intro h4{margin:0 0 5px;font:500 clamp(1.2rem,2vw,1.65rem) var(--font-display);color:var(--ink)}
.settings-calendar-theme__intro p{margin:0;color:var(--ink-muted);font:.8rem/1.55 var(--font-body)}

.settings-calendar-theme .settings__card{border-color:color-mix(in srgb,var(--gold) 18%,var(--line));background:linear-gradient(150deg,#fffdf9,#f7efe7)}
.settings-calendar-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.settings-calendar-theme .calendar-source{position:relative;border:1px solid color-mix(in srgb,var(--source-color) 26%,var(--line));border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--source-color) 5%,#fffdf9),#fffaf5);overflow:hidden}
.settings-calendar-theme .calendar-source::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--source-color)}
.settings-calendar-theme .calendar-source .source{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px 16px 12px;border:0;background:transparent}
.calendar-source__icon{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--source-color) 12%,var(--paper));color:var(--source-color);font-size:1rem;border:1px solid color-mix(in srgb,var(--source-color) 20%,transparent)}
.calendar-source__text{display:grid;gap:3px}
.calendar-source__text strong{font:700 .82rem var(--font-body);color:var(--ink)}
.calendar-source__text small{font:.7rem/1.4 var(--font-body);color:var(--ink-muted)}
.settings-calendar-theme .calendar-source__color{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px 14px 66px}
.settings-calendar-theme .calendar-source__color>label{font:800 .55rem var(--font-body);letter-spacing:.15em;color:var(--ink-faint);text-transform:uppercase}
.settings-calendar-theme .calendar-source__picker{max-width:205px}
.settings-calendar-theme .row--category{background:#fffaf5;border-color:color-mix(in srgb,var(--gold) 16%,var(--line))}
.settings-calendar-theme .row__icon{box-shadow:0 7px 18px -14px rgba(31,24,20,.45)}

/* Invitation : retour à une palette claire cohérente avec le reste du Refuge */
.pairing-pass{background:radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--rose) 14%,transparent),transparent 40%),linear-gradient(145deg,#fffaf5,#f2e8dd);color:var(--ink);border-color:color-mix(in srgb,var(--wine) 18%,var(--line));box-shadow:0 24px 60px rgba(70,42,28,.12)}
.pairing-pass__top{border-bottom-color:var(--line)}
.pairing-pass__top small{color:var(--terra)}
.pairing-pass__top p,.pairing-pass__visual p{color:var(--ink-muted)}
.pairing-pass__timer{border-color:color-mix(in srgb,var(--gold) 30%,var(--line));background:color-mix(in srgb,var(--gold) 8%,var(--paper));color:var(--wine)}
.pairing-pass__qr{background:#fff;box-shadow:0 16px 38px rgba(60,34,22,.11)}
.pairing-code{border-color:var(--line);background:rgba(255,255,255,.58)}
.pairing-code small{color:var(--terra)}
.pairing-code code{color:var(--wine)}
.pairing-action{border-color:var(--line);background:rgba(255,255,255,.64);color:var(--ink)}
.pairing-action:hover{background:#fffaf5;border-color:color-mix(in srgb,var(--terra) 25%,var(--line))}
.pairing-action>span{background:color-mix(in srgb,var(--terra) 7%,var(--paper));color:var(--terra)}
.pairing-action small{color:var(--ink-muted)}
.pairing-action--primary{background:linear-gradient(135deg,color-mix(in srgb,var(--terra) 11%,var(--paper)),color-mix(in srgb,var(--gold) 10%,var(--paper)));border-color:color-mix(in srgb,var(--terra) 22%,var(--line))}
.pairing-pass__manual{border-top-color:var(--line)}
.pairing-pass__manual summary{color:var(--wine)}
.pairing-pass__manual label{color:var(--ink-faint)}
.pairing-copyline code{background:rgba(255,255,255,.66);color:var(--ink)}
.pairing-pass__close{color:var(--ink-muted)}

@media(max-width:820px){
  .cloud-quick-add__people,.settings-calendar-sources{grid-template-columns:1fr}
}
@media(max-width:760px){
  .settings-quick-device{margin-top:10px}
}
@media(max-width:560px){
  .settings-calendar-theme__intro{grid-template-columns:1fr}
  .settings-calendar-theme .calendar-source__color{padding-left:16px}
}


/* ═══ V1.1-I.8 · CALENDRIER MODAL THÈME NOTRE REFUGE ═══ */
.studio-datetime__layer{
  background:
    radial-gradient(circle at 18% 16%,rgba(199,138,149,.16),transparent 28%),
    radial-gradient(circle at 82% 84%,rgba(184,137,63,.14),transparent 30%),
    rgba(31,24,20,.34);
  backdrop-filter:blur(14px) saturate(.88);
}
.studio-datetime__panel{
  position:relative;
  width:min(410px,100%);
  padding:0 24px 24px;
  overflow:hidden auto;
  border:1px solid color-mix(in srgb,var(--gold) 34%,var(--line));
  border-radius:28px;
  background:
    radial-gradient(circle at 100% 0%,color-mix(in srgb,var(--rose) 12%,transparent),transparent 34%),
    radial-gradient(circle at 0% 100%,color-mix(in srgb,var(--gold) 11%,transparent),transparent 36%),
    linear-gradient(160deg,#fffdf9 0%,#f7efe6 54%,#f4e9df 100%);
  color:var(--ink);
  box-shadow:0 34px 90px rgba(58,34,24,.24);
  font-family:var(--font-body);
}
.studio-datetime__panel::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 1px rgba(255,255,255,.8);
}
.studio-datetime__ornament{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  height:34px;
  margin:0 -24px 0;
  color:var(--gold);
  font:500 .7rem var(--font-display);
  opacity:.82;
}
.studio-datetime__ornament i{
  width:54px;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.studio-datetime__head{
  padding:10px 0 18px;
  border-bottom:1px solid color-mix(in srgb,var(--gold) 20%,var(--line));
}
.studio-datetime__head>div{display:grid;gap:3px}
.studio-datetime__head small{
  font:800 .54rem var(--font-body);
  letter-spacing:.22em;
  color:var(--terra);
}
.studio-datetime__head strong{
  font:500 1.65rem/1.05 var(--font-display);
  color:var(--wine);
}
.studio-datetime__head>button{
  width:38px;height:38px;min-width:38px;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--wine) 16%,var(--line));
  background:rgba(255,255,255,.55);
  color:var(--wine);
  font-size:1.15rem;
}
.studio-datetime__head>button:hover{background:var(--paper);transform:rotate(4deg)}
.studio-datetime__month{
  padding:18px 0 14px;
  font:500 1.18rem var(--font-display);
  text-transform:capitalize;
}
.studio-datetime__month>strong{color:var(--ink);letter-spacing:-.01em}
.studio-datetime__month button{
  width:40px;height:40px;min-width:40px;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--gold) 24%,var(--line));
  background:color-mix(in srgb,var(--gold) 6%,var(--paper));
  color:var(--wine);
}
.studio-datetime__month button:hover{
  background:color-mix(in srgb,var(--terra) 10%,var(--paper));
  border-color:color-mix(in srgb,var(--terra) 34%,var(--line));
}
.studio-datetime__week{
  gap:6px;
  padding:4px 0 7px;
}
.studio-datetime__week span{
  padding:5px 0;
  font:800 .62rem var(--font-body);
  letter-spacing:.06em;
  color:var(--ink-faint);
}
.studio-datetime__days{gap:6px}
.studio-datetime__days button{
  position:relative;
  aspect-ratio:1;
  border-radius:14px;
  border:1px solid transparent;
  background:rgba(255,255,255,.42);
  color:var(--ink);
  font:700 .8rem var(--font-body);
  transition:transform .18s,background .18s,border-color .18s,box-shadow .18s;
}
.studio-datetime__days button:hover,
.studio-datetime__days button:focus-visible{
  transform:translateY(-1px);
  background:color-mix(in srgb,var(--terra) 10%,#fffaf5);
  border-color:color-mix(in srgb,var(--terra) 28%,var(--line));
  box-shadow:0 8px 18px -14px rgba(75,42,28,.4);
}
.studio-datetime__days button[aria-current="date"]{
  background:linear-gradient(145deg,var(--wine),color-mix(in srgb,var(--wine) 76%,var(--terra)));
  color:#fffaf5;
  border-color:var(--wine);
  box-shadow:0 10px 22px -15px rgba(107,39,50,.65);
}
.studio-datetime__days button[aria-current="date"]::after{
  content:"";
  position:absolute;
  left:50%;bottom:5px;
  width:4px;height:4px;
  border-radius:50%;
  background:var(--gold-soft);
  transform:translateX(-50%);
}
.studio-datetime__foot{
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid color-mix(in srgb,var(--gold) 20%,var(--line));
}
.studio-datetime__foot button{
  min-height:42px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.58);
  color:var(--ink);
  font:700 .75rem var(--font-body);
}
.studio-datetime__foot button:last-child{
  background:linear-gradient(135deg,var(--terra),color-mix(in srgb,var(--terra) 70%,var(--wine)));
  color:#fffaf5;
  border-color:var(--terra);
  box-shadow:0 9px 20px -14px rgba(184,85,58,.6);
}
.studio-datetime__time{
  margin:26px 0 18px;
  padding:18px;
  border:1px solid color-mix(in srgb,var(--gold) 22%,var(--line));
  border-radius:20px;
  background:rgba(255,255,255,.46);
}
.studio-datetime__time label{
  color:var(--ink-muted);
  font:700 .72rem var(--font-body);
}
.studio-datetime__time select{
  min-height:66px;
  border:1px solid color-mix(in srgb,var(--gold) 26%,var(--line));
  border-radius:16px;
  background:#fffaf5;
  color:var(--wine);
  font:500 1.8rem var(--font-display);
}
.studio-datetime__time>span{color:var(--gold);font:500 2rem var(--font-display)}
@media(max-width:520px){
  .studio-datetime__panel{padding:0 18px 20px;border-radius:24px}
  .studio-datetime__ornament{margin-inline:-18px}
  .studio-datetime__days{gap:4px}
  .studio-datetime__days button{border-radius:12px}
}


/* V1.1-I.9 · Nous pleine largeur, ambiance laboratoire, sauvegardes simplifiées, dates thémées */
.nous-timeline{max-width:none;width:100%}
.card[data-kind="memory"]{width:100%;max-width:none}
.memory-card--text{max-width:none!important;width:100%}

.ambience-lab{display:grid;gap:20px}
.ambience-lab__stage{position:relative;min-height:240px;overflow:hidden;border:1px solid color-mix(in srgb,var(--gold) 28%,var(--line));border-radius:32px;background:linear-gradient(145deg,#fffaf4,#f1e4d7);box-shadow:0 22px 60px -46px rgba(65,34,25,.45)}
.ambience-lab__stage{--preview-x:0;--preview-y:0;perspective:900px}
.ambience-lab__hero-demo{position:absolute;inset:18px 18px 18px 52%;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.55);box-shadow:0 20px 46px -28px rgba(54,26,19,.46);transition:transform .7s var(--ease-out),box-shadow .7s var(--ease-out);transform-style:preserve-3d;opacity:.82}
.ambience-lab__hero-bg{position:absolute;inset:-8%;background:linear-gradient(120deg,rgba(88,49,44,.18),rgba(184,137,63,.10)),url('../images/visuels/refuge-hero.webp') center/cover no-repeat;transition:transform .85s var(--ease-out);transform:scale(1.045)}
.ambience-lab__hero-glow{position:absolute;inset:0;background:radial-gradient(circle at 72% 24%,rgba(255,232,202,.48),transparent 28%),linear-gradient(0deg,rgba(44,21,24,.48),transparent 62%);transition:transform .9s var(--ease-out)}
.ambience-lab__hero-card{position:absolute;left:18px;right:18px;bottom:16px;padding:13px 15px;border-radius:16px;background:rgba(255,248,239,.82);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.58);box-shadow:0 14px 30px -22px rgba(35,19,16,.6);display:grid;gap:2px;transition:transform .75s var(--ease-out)}
.ambience-lab__hero-card small{font:800 .48rem var(--font-body);letter-spacing:.22em;color:var(--terra)}.ambience-lab__hero-card strong{font:500 1.03rem var(--font-display);color:var(--wine)}.ambience-lab__hero-card span{font:500 .62rem var(--font-body);color:var(--ink-muted)}
.ambience-lab__stage.has-live-heroes .ambience-lab__hero-demo{transform:rotateY(var(--preview-ry,0deg)) rotateX(var(--preview-rx,0deg)) translate3d(var(--preview-demo-x,0px),var(--preview-demo-y,0px),0);box-shadow:0 24px 52px -30px rgba(54,26,19,.58)}
.ambience-lab__stage.has-live-heroes .ambience-lab__hero-bg{transform:scale(1.09) translate3d(var(--preview-bg-x,0px),var(--preview-bg-y,0px),18px)}
.ambience-lab__stage.has-live-heroes .ambience-lab__hero-glow{transform:translate3d(var(--preview-glow-x,0px),var(--preview-glow-y,0px),28px)}
.ambience-lab__stage.has-live-heroes .ambience-lab__hero-card{transform:translate3d(var(--preview-card-x,0px),var(--preview-card-y,0px),42px)}
.ambience-lab__depth-state{position:absolute;right:18px;top:18px;z-index:5;padding:7px 10px;border-radius:999px;background:rgba(255,251,245,.84);border:1px solid rgba(184,137,63,.24);box-shadow:0 10px 24px -20px rgba(31,24,20,.5);font:750 .54rem var(--font-body);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-muted);transition:.25s}
.ambience-lab__stage.has-live-heroes .ambience-lab__depth-state{color:var(--sage);border-color:color-mix(in srgb,var(--sage) 36%,transparent)}

.ambience-lab__wash{position:absolute;inset:0;background:radial-gradient(circle at 18% 25%,rgba(219,151,159,.20),transparent 28%),radial-gradient(circle at 82% 70%,rgba(184,137,63,.16),transparent 30%)}
.ambience-lab__orb{position:absolute;width:180px;height:180px;border-radius:50%;filter:blur(30px);opacity:.28}.ambience-lab__orb--1{left:-40px;bottom:-70px;background:var(--terra)}.ambience-lab__orb--2{right:-35px;top:-70px;background:var(--gold)}
.ambience-lab__copy{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:5px}.ambience-lab__copy small{font:800 .58rem var(--font-body);letter-spacing:.28em;color:var(--terra)}.ambience-lab__copy strong{font:500 clamp(2.2rem,5vw,4.3rem)/1 var(--font-accent);color:var(--wine)}.ambience-lab__copy em{font:500 .78rem var(--font-body);color:var(--ink-muted);font-style:normal}
.ambience-lab__petal{position:absolute;font-family:var(--font-accent);color:color-mix(in srgb,var(--terra) 45%,var(--gold));opacity:.38}.ambience-lab__petal.p1{left:12%;top:26%;font-size:1.8rem}.ambience-lab__petal.p2{right:16%;top:34%;font-size:2rem}.ambience-lab__petal.p3{right:28%;bottom:18%;font-size:1.25rem}.ambience-lab__stage.is-alive .ambience-lab__petal{animation:ambiencePreviewFloat 6s ease-in-out infinite}.ambience-lab__stage.is-alive .p2{animation-delay:-2s}.ambience-lab__stage.is-alive .p3{animation-delay:-4s}@keyframes ambiencePreviewFloat{0%,100%{transform:translate3d(0,0,0) rotate(-4deg)}50%{transform:translate3d(8px,-12px,0) rotate(5deg)}}
.ambience-lab__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ambience-setting{padding:22px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,#fffdf9,#f7eee6)}.ambience-setting--wide{grid-column:1/-1}.ambience-setting__head{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:start}.ambience-setting__icon{width:45px;height:45px;display:grid;place-items:center;border-radius:16px;background:var(--paper);border:1px solid var(--line);color:var(--wine);font-size:1.15rem}.ambience-setting small{font:800 .56rem var(--font-body);letter-spacing:.2em;color:var(--terra)}.ambience-setting h4{margin:4px 0 5px;font:500 1.22rem var(--font-display)}.ambience-setting p{margin:0;font:.78rem/1.55 var(--font-body);color:var(--ink-muted)}.nr-switch{position:relative;display:block;width:48px;height:28px}.nr-switch input{position:absolute;opacity:0;pointer-events:none}.nr-switch span{position:absolute;inset:0;border-radius:999px;background:#d8cec3;border:1px solid var(--line);transition:.25s}.nr-switch span::after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 4px 12px rgba(31,24,20,.16);transition:.25s}.nr-switch input:checked+span{background:var(--sage)}.nr-switch input:checked+span::after{transform:translateX(20px)}.ambience-lab__note{margin:0;padding:14px 16px;border-left:3px solid var(--gold);background:rgba(255,250,245,.55);font:.75rem/1.55 var(--font-body);color:var(--ink-muted)}

.backup-simple-hero{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:28px;align-items:center;padding:clamp(26px,4vw,44px);border:1px solid color-mix(in srgb,var(--gold) 28%,var(--line));border-radius:30px;background:radial-gradient(circle at 100% 0%,rgba(184,137,63,.12),transparent 34%),linear-gradient(145deg,#fffaf5,#f3e6dc);overflow:hidden}.backup-simple-hero__copy small{font:800 .58rem var(--font-body);letter-spacing:.23em;color:var(--terra)}.backup-simple-hero__copy h3{margin:8px 0 12px;max-width:18ch;font:500 clamp(1.8rem,4vw,3.2rem)/1.08 var(--font-display);color:var(--ink)}.backup-simple-hero__copy p{max-width:70ch;margin:0;color:var(--ink-muted);font:.86rem/1.7 var(--font-body)}.backup-simple-hero__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.backup-simple-hero__seal{aspect-ratio:1;border-radius:50%;display:grid;place-content:center;text-align:center;border:1px solid color-mix(in srgb,var(--gold) 38%,var(--line));background:rgba(255,251,245,.74);box-shadow:inset 0 0 0 10px rgba(184,137,63,.04),0 16px 44px -32px rgba(31,24,20,.45)}.backup-simple-hero__seal span{font:500 2.4rem var(--font-accent);color:var(--wine)}.backup-simple-hero__seal strong{font:600 1.1rem var(--font-display)}.backup-simple-hero__seal small{font:800 .55rem var(--font-body);letter-spacing:.16em;color:var(--terra)}.backup-explain{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 22px}.backup-explain article{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--paper-soft)}.backup-explain article>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--terra-soft);color:var(--terra-deep);font:800 .72rem var(--font-body)}.backup-explain article div{display:grid;gap:4px}.backup-explain strong{font:650 .82rem var(--font-body)}.backup-explain small{font:.72rem/1.5 var(--font-body);color:var(--ink-muted)}.backup-parts{margin:14px 0 18px;border:1px solid var(--line);border-radius:16px;background:rgba(255,252,247,.72)}.backup-parts summary{cursor:pointer;padding:14px 16px;font:700 .78rem var(--font-body)}.backup-parts .backup-sections{padding:0 14px 14px;margin:0}

.nr-date-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.nr-date-trigger{width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#fffdf9,#f7eee6);color:var(--ink);font:500 .88rem var(--font-body);cursor:pointer;text-align:left;transition:border-color .22s,box-shadow .22s,transform .22s}.nr-date-trigger:hover{border-color:color-mix(in srgb,var(--terra) 44%,var(--line));box-shadow:0 12px 24px -20px rgba(31,24,20,.42);transform:translateY(-1px)}.nr-date-trigger b{color:var(--terra);font:500 1rem var(--font-display)}.studio-datetime__days button.is-today:not([aria-current="date"]){box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 68%,transparent);color:var(--wine)}

.nr-motion-enter{opacity:0;transform:translateY(20px) scale(.992)}.nr-motion-enter.is-visible{opacity:1;transform:none;transition:opacity .72s var(--ease-out),transform .72s var(--ease-out)}
@media(max-width:760px){.ambience-lab__grid,.backup-explain{grid-template-columns:1fr}.ambience-setting--wide{grid-column:auto}.backup-simple-hero{grid-template-columns:1fr}.backup-simple-hero__seal{width:130px;justify-self:center}.ambience-setting__head{grid-template-columns:auto 1fr}.ambience-setting__head .nr-switch{grid-column:2;justify-self:start;margin-top:8px}}
@media(prefers-reduced-motion:reduce){.ambience-lab__stage.is-alive .ambience-lab__petal,.nr-motion-enter,.nr-motion-enter.is-visible{animation:none!important;transition:none!important;transform:none!important;opacity:1!important}}

@media(max-width:760px){.ambience-lab__hero-demo{inset:18px 18px 18px 45%;opacity:.66}.ambience-lab__depth-state{right:12px;top:12px}.ambience-lab__copy{place-content:center start;text-align:left;padding-left:24px;width:46%}.ambience-lab__copy strong{font-size:clamp(1.85rem,9vw,2.8rem)}}

/* V1 STABLE · CORR3 — Studio Ambiance */
.ambience-studio{display:grid;gap:20px;max-width:1180px;margin:0 auto}
.ambience-studio__hero{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(420px,1.22fr);gap:22px;align-items:stretch;padding:18px;border:1px solid color-mix(in srgb,var(--gold) 24%,var(--line));border-radius:32px;background:radial-gradient(circle at 0 0,rgba(184,85,58,.08),transparent 31%),linear-gradient(145deg,rgba(255,253,249,.96),rgba(244,237,224,.82));box-shadow:0 24px 70px -56px rgba(45,25,19,.58);overflow:hidden}
.ambience-studio__intro{display:flex;flex-direction:column;justify-content:center;padding:clamp(18px,3vw,34px)}
.ambience-studio__eyebrow{font:800 .57rem var(--font-body);letter-spacing:.24em;color:var(--terra)}
.ambience-studio__intro h3{margin:11px 0 14px;font:500 clamp(2rem,4vw,3.8rem)/.98 var(--font-display);max-width:11ch;color:var(--ink)}
.ambience-studio__intro h3 em{font-family:var(--font-accent);font-weight:400;color:var(--wine)}
.ambience-studio__intro p{margin:0;max-width:52ch;font:.83rem/1.72 var(--font-body);color:var(--ink-muted)}
.ambience-studio__chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:21px}
.ambience-studio__chips span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,251,245,.72);font:700 .56rem var(--font-body);letter-spacing:.05em;color:var(--ink-muted);transition:.25s}
.ambience-studio__chips span.is-on{border-color:color-mix(in srgb,var(--sage) 34%,var(--line));background:color-mix(in srgb,var(--sage) 10%,#fff);color:var(--sage)}
.ambience-studio .ambience-lab__stage{min-height:360px;height:100%;border-radius:24px;overflow:hidden;position:relative;isolation:isolate;background:linear-gradient(150deg,#eee0d5,#f7efe5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.64);--ambience-level:.5}
.ambience-preview__sky{position:absolute;inset:0;z-index:-3;background:radial-gradient(circle at 22% 24%,rgba(244,190,199,var(--ambience-sky-alpha,.22)),transparent 26%),radial-gradient(circle at 78% 68%,rgba(184,137,63,var(--ambience-gold-alpha,.17)),transparent 30%),linear-gradient(145deg,#f7eee5,#ead9cd);transition:background .25s ease}
.ambience-studio .ambience-lab__hero-demo{inset:22px 20px 22px 48%;opacity:var(--ambience-hero-opacity,.79)}
.ambience-studio .ambience-lab__wash{opacity:var(--ambience-wash-opacity,.59);transition:opacity .18s ease}
.ambience-studio .ambience-lab__orb{opacity:var(--ambience-orb-opacity,.24);transform:scale(var(--ambience-orb-scale,.93));transition:opacity .2s ease,transform .2s ease}
.ambience-studio .ambience-lab__petal{opacity:0;transition:opacity .18s ease,filter .18s ease;font-size:var(--ambience-petal-size,1.55rem);filter:blur(.2px)}
.ambience-studio .ambience-lab__stage.is-alive .ambience-lab__petal{opacity:var(--ambience-petal-opacity,.40)}
.ambience-lab__petal.p4{left:7%;bottom:16%;font-size:1.05rem}.ambience-lab__petal.p5{right:7%;bottom:11%;font-size:1.3rem}.ambience-lab__petal.p6{left:34%;top:11%;font-size:1.1rem}
.ambience-lab__stage.is-alive .p4{animation:ambiencePreviewFloat 7.2s ease-in-out -1s infinite}.ambience-lab__stage.is-alive .p5{animation:ambiencePreviewFloat 8.4s ease-in-out -3s infinite}.ambience-lab__stage.is-alive .p6{animation:ambiencePreviewFloat 6.8s ease-in-out -5s infinite}
.ambience-preview__meter{position:absolute;left:18px;bottom:18px;display:flex;align-items:end;gap:3px;height:30px;padding:7px 9px;border-radius:999px;background:rgba(255,251,245,.72);border:1px solid rgba(255,255,255,.62);backdrop-filter:blur(10px)}
.ambience-preview__meter i{display:block;width:4px;border-radius:99px;background:var(--terra);height:22px;opacity:var(--ambience-meter-opacity,.63);transform:scaleY(var(--ambience-meter-scale,.6));transform-origin:bottom;transition:transform .18s ease,opacity .18s ease}
.ambience-preview__meter i:nth-child(2){height:16px}.ambience-preview__meter i:nth-child(3){height:26px}.ambience-preview__meter i:nth-child(4){height:20px}.ambience-preview__meter i:nth-child(5){height:14px}
.ambience-studio .ambience-lab__copy{z-index:2;place-content:center start;text-align:left;padding:0 0 0 28px;width:47%;pointer-events:none}
.ambience-studio .ambience-lab__copy strong{font-size:clamp(2rem,4vw,3.7rem)}
.ambience-studio .ambience-lab__copy em{display:flex;gap:5px;align-items:center}.ambience-studio .ambience-lab__copy em b{font-weight:800;color:var(--terra)}
.ambience-studio__controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ambience-panel{position:relative;padding:22px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(150deg,rgba(255,253,249,.98),rgba(247,238,230,.86));box-shadow:0 18px 44px -42px rgba(45,25,19,.58);transition:border-color .22s,box-shadow .22s,opacity .22s}
.ambience-panel--presence{grid-column:1/-1;padding:25px 26px}
.ambience-panel.is-disabled{opacity:.72}
.ambience-panel__top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start}
.ambience-panel__top small{font:800 .54rem var(--font-body);letter-spacing:.18em;color:var(--terra)}
.ambience-panel__top h4{margin:4px 0 5px;font:500 1.22rem var(--font-display);color:var(--ink)}
.ambience-panel__top p{margin:0;font:.76rem/1.5 var(--font-body);color:var(--ink-muted)}
.ambience-control{margin-top:20px;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--line) 80%,transparent);transition:opacity .2s}
.ambience-control.is-muted{opacity:.38;pointer-events:none}
.ambience-control__head{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:11px}.ambience-control__head span{display:grid;gap:2px}.ambience-control__head strong{font:700 .82rem var(--font-body)}.ambience-control__head small{font:.68rem/1.4 var(--font-body);color:var(--ink-muted)}.ambience-control__head output{min-width:58px;text-align:right;font:700 .82rem var(--font-body);color:var(--wine)}
.ambience-range{width:100%;accent-color:var(--terra);cursor:pointer}
.ambience-scale{display:flex;justify-content:space-between;margin-top:6px;font:650 .56rem var(--font-body);letter-spacing:.04em;color:var(--ink-muted)}
.ambience-presets{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.ambience-presets button{border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:rgba(255,251,245,.78);font:750 .63rem var(--font-body);color:var(--ink-muted);cursor:pointer;transition:.2s}.ambience-presets button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--terra) 42%,var(--line));color:var(--terra)}.ambience-presets button.is-active{background:var(--terra);border-color:var(--terra);color:#fff;box-shadow:0 8px 20px -14px var(--terra)}
.ambience-panel__demo{position:relative;height:76px;margin-top:18px;border-radius:17px;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 76%,transparent);background:linear-gradient(145deg,#f8efe7,#efe0d6)}
.ambience-panel__demo b{position:absolute;left:13px;bottom:10px;font:750 .56rem var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.ambience-panel__demo--cursor span{position:absolute;width:44px;height:44px;border-radius:50%;left:56%;top:10px;background:radial-gradient(circle,rgba(255,205,172,.76),rgba(184,85,58,.14) 42%,transparent 72%);filter:blur(1px);animation:ambientDemoCursor 4s ease-in-out infinite}.ambience-panel__demo--cursor i{position:absolute;left:59%;top:29px;width:8px;height:8px;border-radius:50%;background:var(--terra);box-shadow:0 0 0 5px rgba(184,85,58,.08)}
@keyframes ambientDemoCursor{0%,100%{transform:translateX(-35px)}50%{transform:translateX(35px)}}
.ambience-panel__demo--depth span{position:absolute;border-radius:10px;border:1px solid rgba(255,255,255,.62);background:linear-gradient(145deg,rgba(184,85,58,.15),rgba(184,137,63,.09));box-shadow:0 9px 22px -18px rgba(31,24,20,.45)}.ambience-panel__demo--depth span:nth-child(1){inset:10px 28% 12px 44%;transform:translateX(-6px)}.ambience-panel__demo--depth span:nth-child(2){inset:17px 21% 18px 52%;transform:translateX(1px)}.ambience-panel__demo--depth span:nth-child(3){inset:25px 14% 25px 60%;transform:translateX(8px)}
.ambience-studio__footer{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;padding:14px 16px;border-radius:17px;background:rgba(255,250,245,.56);border:1px solid color-mix(in srgb,var(--gold) 18%,var(--line));color:var(--ink-muted)}.ambience-studio__footer>span{color:var(--gold);font-size:1.1rem}.ambience-studio__footer p{margin:0;font:.7rem/1.55 var(--font-body)}.ambience-studio__footer strong{color:var(--ink)}
@media(max-width:900px){.ambience-studio__hero{grid-template-columns:1fr}.ambience-studio .ambience-lab__stage{min-height:340px}.ambience-studio__intro h3{max-width:16ch}.ambience-studio__controls{grid-template-columns:1fr}.ambience-panel--presence{grid-column:auto}}
@media(max-width:620px){.ambience-studio__hero{padding:10px;border-radius:24px}.ambience-studio__intro{padding:18px 14px}.ambience-studio .ambience-lab__stage{min-height:310px}.ambience-studio .ambience-lab__hero-demo{inset:16px 14px 16px 43%}.ambience-studio .ambience-lab__copy{width:45%;padding-left:18px}.ambience-studio .ambience-lab__copy strong{font-size:clamp(1.75rem,9vw,2.6rem)}.ambience-panel{padding:19px}.ambience-panel__top{grid-template-columns:auto 1fr}.ambience-panel__top .nr-switch{grid-column:2;justify-self:start;margin-top:5px}.ambience-control__head{align-items:start}.ambience-preview__meter{display:none}}
@media(prefers-reduced-motion:reduce){.ambience-panel__demo--cursor span{animation:none!important}.ambience-studio .ambience-lab__petal{animation:none!important}}


/* V1 stable · correction 4 — adaptation automatique par appareil */
.device-adapt{display:grid;grid-template-columns:minmax(220px,1.05fr) minmax(260px,1.4fr) auto;gap:18px;align-items:center;margin:0 0 24px;padding:18px 20px;border:1px solid rgba(107,39,50,.13);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(244,237,224,.74));box-shadow:0 14px 40px rgba(72,47,38,.06);position:relative;overflow:hidden}
.device-adapt:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,#b8893f,#b8553a);opacity:.38;transition:opacity .25s ease}.device-adapt.is-auto:before{opacity:1}
.device-adapt__identity,.device-adapt__mode{display:flex;align-items:center;gap:14px;min-width:0}.device-adapt__icon{display:grid;place-items:center;width:52px;height:52px;flex:0 0 auto;border-radius:17px;background:rgba(184,137,63,.10);border:1px solid rgba(184,137,63,.18);font-size:1.65rem;color:#6b2732}
.device-adapt small{display:block;color:rgba(31,24,20,.58);font-size:.72rem;line-height:1.35}.device-adapt__identity>div>small{letter-spacing:.12em;font-weight:800}.device-adapt h4{margin:2px 0 2px;font-family:Fraunces,serif;font-size:1.1rem}.device-adapt p{margin:0;color:rgba(31,24,20,.66);font-size:.82rem}.device-adapt__mode{justify-content:space-between;padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.53);border:1px solid rgba(107,39,50,.08)}.device-adapt__mode strong{display:block;font-size:.9rem;margin-bottom:2px}.device-adapt__profile{display:flex;gap:8px}.device-adapt__profile>span{min-width:74px;padding:10px 11px;border-radius:15px;text-align:center;background:rgba(107,39,50,.045);border:1px solid rgba(107,39,50,.07)}.device-adapt__profile b{display:block;font-size:.86rem;color:#6b2732}.device-adapt__profile small{margin-top:2px;font-size:.64rem}.device-adapt__status{grid-column:1/-1;padding:10px 13px;border-radius:14px;background:rgba(107,133,104,.08);border:1px solid rgba(107,133,104,.12);font-size:.78rem!important}.device-adapt.is-auto .device-adapt__status{color:#50664e}
@media(max-width:980px){.device-adapt{grid-template-columns:1fr 1fr}.device-adapt__profile{grid-column:1/-1}.device-adapt__profile>span{flex:1}.device-adapt__status{grid-column:1/-1}}
@media(max-width:680px){.device-adapt{grid-template-columns:1fr;padding:16px;border-radius:20px}.device-adapt__mode,.device-adapt__profile,.device-adapt__status{grid-column:1}.device-adapt__mode{align-items:flex-start}.device-adapt__profile{display:grid;grid-template-columns:repeat(3,1fr)}.device-adapt__profile>span{min-width:0;padding:9px 6px}}


/* ═══ V1 STABLE · CORRECTION 5 — MOBILE / TABLETTE ═══ */
@media(max-width:900px){
  html{scroll-padding-bottom:calc(var(--mobilenav-h) + env(safe-area-inset-bottom,0px) + 18px)}
  .hero{min-height:min(520px,calc(100svh - 64px));}
  .hero__inner{min-height:inherit;padding-top:clamp(64px,10svh,92px);padding-bottom:clamp(30px,5svh,50px)}
  .hero .tile{backdrop-filter:blur(12px) saturate(115%);-webkit-backdrop-filter:blur(12px) saturate(115%)}
  .settings__nav{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  .modal{padding:max(10px,env(safe-area-inset-top,0px)) max(10px,env(safe-area-inset-right,0px)) max(10px,env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  .modal__card--studio{height:100dvh;max-height:100dvh}
  .studio__form{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .preview-card{max-height:min(94dvh,94svh);overscroll-behavior:contain}
  .world-section{padding-block:clamp(24px,6vw,42px)}
  .world-section__head{gap:14px;margin-bottom:clamp(20px,5vw,30px)}
  .btn,.icon-btn,.avatar-btn,.menu-btn,.nr-switch,.settings__links button{touch-action:manipulation}
}
@media(max-width:640px){
  .hero{min-height:min(500px,calc(100svh - 64px))}
  .hero__inner{padding-inline:18px;padding-top:58px;padding-bottom:28px;gap:18px}
  .hero__text{font-size:.95rem;line-height:1.62}
  .hero__signature{margin-top:18px;font-size:.76rem}
  .hero__aside{margin-top:0}
  .hero .tile{backdrop-filter:none;-webkit-backdrop-filter:none;background:linear-gradient(135deg,rgba(34,20,24,.54),rgba(34,20,24,.36))}
  .hero .tile::before{animation:none;opacity:.28}
  .settings__content{padding:20px 14px calc(var(--mobilenav-h) + env(safe-area-inset-bottom,0px) + 28px)}
  .settings__nav{padding-inline:14px}
  .settings__links{margin-inline:-14px;padding-inline:14px;scroll-snap-type:x proximity;overscroll-behavior-inline:contain}
  .settings__links button{scroll-snap-align:start;min-height:44px;padding:9px 14px}
  .settings__card{border-radius:20px}
  .settings__head h3{font-size:1.65rem}
  .row__actions{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:8px}
  .row__actions .btn{width:100%}
  .modal__card{width:100%;max-height:calc(100dvh - 20px);overflow:auto;border-radius:22px;padding:24px 18px 20px}
  .modal__card--studio{max-height:100dvh;border-radius:0;padding:0;overflow:hidden}
  .modal__head{padding-top:max(14px,env(safe-area-inset-top,0px))}
  .modal__foot{gap:8px;display:grid;grid-template-columns:1fr 1fr}
  .modal__foot .btn{width:100%;min-width:0;padding-inline:12px}
  .modal__foot #studio-delete{grid-column:1/-1;grid-row:2;margin:0}
  .control,select.control,textarea.control,input.control{font-size:16px}
  .media-picker__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mobilenav{backdrop-filter:blur(12px) saturate(118%);-webkit-backdrop-filter:blur(12px) saturate(118%)}
  .mobilenav button{min-height:56px;padding:7px 2px 6px}
  .mobilenav button .topnav__ic{width:30px;height:30px}
  .ambience-studio .ambience-lab__stage{min-height:280px}
  .ambience-studio .ambience-lab__hero-demo{inset:14px 10px 14px 43%}
  .ambience-panel{padding:17px;border-radius:20px}
  .ambience-panel__demo{height:68px}
  .device-adapt__profile{gap:6px}
  .device-adapt__profile>span{padding:9px 4px}
}
@media(max-width:420px){
  .brand__name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .hero h1{font-size:clamp(2.25rem,10.5vw,3.2rem)}
  .hero__kicker{font-size:.62rem;letter-spacing:.20em}
  .world-section__head h2{font-size:1.65rem}
  .cards--books,.cards--film,.cards--game,.horizons-idea,.capsules-grid{grid-template-columns:1fr}
  .envie--music{grid-template-columns:68px minmax(0,1fr);gap:10px}
  .envie--music .menu-btn{grid-column:2;justify-self:end}
  .envie-music__sleeve{width:68px;height:68px}.envie-music__disc{width:58px;height:58px}
  .device-adapt__profile{grid-template-columns:1fr 1fr 1fr}
  .device-adapt__profile b{font-size:.78rem}.device-adapt__profile small{font-size:.58rem}
  .ambience-studio__intro h3{font-size:1.8rem}
  .ambience-studio .ambience-lab__copy strong{font-size:1.9rem}
}
@media(hover:none) and (pointer:coarse){
  .settings__card:hover,.card:hover,.envie:hover,.horizon:hover{transform:none!important}
  .hero__media img{animation-duration:28s}
}


/* ═══════════════════════════════════════════════════════════════════════════
   PWA · installation universelle
   ═══════════════════════════════════════════════════════════════════════════ */
.pwa-install{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px 20px;align-items:start;margin:0 0 20px;padding:26px;border:1px solid color-mix(in srgb,var(--terra) 26%,var(--line));border-radius:26px;background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--gold) 13%,transparent),transparent 34%),linear-gradient(145deg,#fff9f4,#f5eae1);box-shadow:0 20px 48px -38px rgba(31,24,20,.42);overflow:hidden}
.pwa-install::after{content:"";position:absolute;right:-46px;bottom:-70px;width:180px;height:180px;border-radius:50%;border:1px solid color-mix(in srgb,var(--terra) 14%,transparent);pointer-events:none}
.pwa-install.is-installed{border-color:color-mix(in srgb,var(--sage) 38%,var(--line));background:radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--sage) 12%,transparent),transparent 34%),linear-gradient(145deg,#fffaf6,#edf2e9)}
.pwa-install__mark{position:relative;z-index:1;width:58px;height:58px;border-radius:19px;display:grid;place-items:center;background:var(--paper);border:1px solid color-mix(in srgb,var(--terra) 28%,var(--line));box-shadow:0 12px 26px -20px rgba(31,24,20,.5);font:500 1.55rem var(--font-display);color:var(--terra)}
.pwa-install__intro{min-width:0}.pwa-install__intro>small{display:block;margin-bottom:5px;font:800 .58rem var(--font-body);letter-spacing:.2em;color:var(--terra)}.pwa-install__intro h4{margin:0 0 7px;font:500 clamp(1.35rem,2vw,1.7rem) var(--font-display);letter-spacing:-.025em}.pwa-install__intro p{margin:0;color:var(--ink-muted);font:.82rem/1.58 var(--font-body);max-width:620px}
.pwa-install__state{display:inline-flex;align-items:center;gap:7px;margin-top:11px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--paper) 82%,transparent);font:700 .66rem var(--font-body);color:var(--ink-muted)}.pwa-install__state span{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 12%,transparent)}.pwa-install__state span.is-ok{background:var(--sage);box-shadow:0 0 0 4px color-mix(in srgb,var(--sage) 13%,transparent)}
.pwa-install__action{position:relative;z-index:1;align-self:center}.pwa-install__button{white-space:nowrap}.pwa-install__done,.pwa-install__manual{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--sage) 28%,var(--line));background:color-mix(in srgb,var(--sage) 9%,var(--paper));font:750 .72rem var(--font-body);color:var(--sage);white-space:nowrap}.pwa-install__manual{border-color:var(--line);background:var(--paper);color:var(--terra)}
.pwa-install__steps{grid-column:2/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 0;padding:0;list-style:none}.pwa-install__steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:13px 14px;border:1px solid color-mix(in srgb,var(--terra) 12%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--paper) 88%,transparent)}.pwa-install__steps li>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--terra) 12%,var(--paper));border:1px solid color-mix(in srgb,var(--terra) 22%,var(--line));font:800 .65rem var(--font-body);color:var(--terra)}.pwa-install__steps p{margin:1px 0 0;font:.74rem/1.48 var(--font-body);color:var(--ink-muted)}
.pwa-install__footer{grid-column:2/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:2px}.pwa-install__footer small{font:.68rem/1.4 var(--font-body);color:var(--ink-faint)}
@media(max-width:860px){.pwa-install{grid-template-columns:auto minmax(0,1fr)}.pwa-install__action{grid-column:1/-1}.pwa-install__action .btn{width:100%}.pwa-install__steps,.pwa-install__footer{grid-column:1/-1}.pwa-install__steps{grid-template-columns:1fr}}
@media(max-width:520px){.pwa-install{padding:20px 16px;border-radius:22px;gap:14px}.pwa-install__mark{width:50px;height:50px;border-radius:16px}.pwa-install__intro h4{font-size:1.3rem}.pwa-install__steps li{padding:12px}.pwa-install__footer .btn{width:100%}}


/* ═══════════════════════════════════════════════════════════════════════════
   PWA · PORTE D'INSTALLATION OBLIGATOIRE
   Le navigateur installe ; la connexion / inscription reste dans l'app.
   ═══════════════════════════════════════════════════════════════════════════ */
.auth[data-mode="install"]{overflow:auto;background:#f4ede0;color:#1f1814}
.install-gate{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);background:#f4ede0}
.install-gate__visual{position:relative;min-height:100dvh;overflow:hidden;background:#6b2732}
.install-gate__art{position:absolute;inset:-2%;background:url('../images/visuels/refuge-hero.webp') center/cover no-repeat;transform:scale(1.03);animation:installBreath 14s ease-in-out infinite alternate}
.install-gate__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,24,20,.18),rgba(31,24,20,.04) 48%,rgba(31,24,20,.36)),linear-gradient(0deg,rgba(31,24,20,.58),transparent 52%)}
.install-gate__brand{position:absolute;top:clamp(24px,4vw,56px);left:clamp(24px,5vw,72px);display:flex;align-items:center;gap:14px;color:#fff;z-index:2}.install-gate__brand img{width:48px;height:48px;filter:brightness(0) invert(1)}.install-gate__brand small{display:block;font:700 .68rem/1.2 Manrope,sans-serif;letter-spacing:.2em;opacity:.72}.install-gate__brand strong{display:block;font:500 1.05rem/1.25 Fraunces,serif}
.install-gate__quote{position:absolute;left:clamp(24px,5vw,72px);right:clamp(24px,5vw,72px);bottom:clamp(34px,7vw,88px);max-width:670px;color:#fff;z-index:2}.install-gate__quote small{font:700 .72rem/1.2 Manrope,sans-serif;letter-spacing:.22em;opacity:.72}.install-gate__quote h1{margin:.6rem 0 1rem;font:500 clamp(2.6rem,5vw,5.6rem)/.92 Fraunces,serif;letter-spacing:-.045em}.install-gate__quote h1 em{font-family:Italiana,Fraunces,serif;font-weight:400}.install-gate__quote p{max-width:560px;margin:0;font:500 clamp(.95rem,1.2vw,1.12rem)/1.65 Manrope,sans-serif;opacity:.88}
.install-gate__panel{display:grid;place-items:center;padding:clamp(28px,5vw,72px);min-height:100dvh;background:radial-gradient(circle at 80% 12%,rgba(184,137,63,.12),transparent 27%),linear-gradient(145deg,#fffaf2,#f4ede0 65%,#efe2d5)}
.install-gate__card{width:min(100%,520px)}.install-gate__eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(107,133,104,.3);border-radius:999px;background:rgba(255,255,255,.55);font:700 .7rem/1 Manrope,sans-serif;letter-spacing:.11em;text-transform:uppercase;color:#526c50}.install-gate__dot{width:8px;height:8px;border-radius:50%;background:#6b8568;box-shadow:0 0 0 5px rgba(107,133,104,.12)}
.install-gate__card h2{margin:1.4rem 0 .8rem;font:500 clamp(2.3rem,4vw,4rem)/.98 Fraunces,serif;letter-spacing:-.04em}.install-gate__card h2 em{font-family:Italiana,Fraunces,serif;font-weight:400;color:#b8553a}.install-gate__lead{margin:0 0 1.5rem;color:rgba(31,24,20,.68);font:500 .98rem/1.65 Manrope,sans-serif}
.install-gate__device{display:flex;align-items:center;gap:14px;padding:15px 16px;margin:0 0 1rem;border:1px solid rgba(31,24,20,.09);border-radius:18px;background:rgba(255,255,255,.58);box-shadow:0 14px 36px rgba(63,43,29,.06)}.install-gate__device>span{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#f0ded4;color:#b8553a;font-size:1.4rem}.install-gate__device small{display:block;font:700 .62rem/1.25 Manrope,sans-serif;letter-spacing:.13em;color:rgba(31,24,20,.48)}.install-gate__device strong{display:inline-block;margin-top:2px;font:700 .94rem/1.3 Manrope,sans-serif}.install-gate__device p{display:inline;margin-left:7px;font:500 .82rem/1.3 Manrope,sans-serif;color:rgba(31,24,20,.52)}
.install-gate__primary{width:100%;min-height:58px;border:0;border-radius:18px;background:linear-gradient(135deg,#b8553a,#8f3c2d);color:#fff;font:750 .98rem/1 Manrope,sans-serif;box-shadow:0 17px 34px rgba(184,85,58,.24);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.install-gate__primary:hover{transform:translateY(-2px);box-shadow:0 20px 42px rgba(184,85,58,.3)}.install-gate__primary:active{transform:translateY(0)}
.install-gate__steps{list-style:none;padding:0;margin:1.3rem 0;display:grid;gap:9px}.install-gate__steps li{display:grid;grid-template-columns:32px 1fr;gap:11px;align-items:start;padding:10px 0}.install-gate__steps li>span{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(184,137,63,.35);border-radius:50%;background:#fff9ef;color:#9a6d27;font:800 .75rem/1 Manrope,sans-serif}.install-gate__steps p{margin:4px 0 0;font:520 .88rem/1.48 Manrope,sans-serif;color:rgba(31,24,20,.72)}
.install-gate__note{display:flex;gap:12px;padding:14px 15px;border:1px solid rgba(107,39,50,.12);border-radius:16px;background:rgba(107,39,50,.055);transition:transform .2s ease,background .2s ease}.install-gate__note>span{color:#6b2732;font-size:1.15rem}.install-gate__note p{margin:0;font:500 .79rem/1.5 Manrope,sans-serif;color:rgba(31,24,20,.68)}.install-gate__note.is-attention{transform:scale(1.018);background:rgba(184,85,58,.11)}
.install-gate__actions{display:flex;gap:10px;margin-top:14px}.install-gate__actions button{flex:1;min-height:44px;border:1px solid rgba(31,24,20,.11);border-radius:14px;background:rgba(255,255,255,.52);color:#1f1814;font:650 .78rem/1 Manrope,sans-serif;cursor:pointer}.install-gate__privacy{margin:16px 0 0;text-align:center;font:600 .69rem/1.45 Manrope,sans-serif;color:rgba(31,24,20,.43)}
@keyframes installBreath{from{transform:scale(1.03) translate3d(0,0,0)}to{transform:scale(1.085) translate3d(-.5%,.35%,0)}}
@media(max-width:900px){.install-gate{grid-template-columns:1fr}.install-gate__visual{min-height:38dvh}.install-gate__panel{min-height:62dvh;padding:26px 20px 38px}.install-gate__brand{top:22px;left:22px}.install-gate__brand img{width:40px;height:40px}.install-gate__quote{left:22px;right:22px;bottom:24px}.install-gate__quote h1{font-size:clamp(2.25rem,10vw,3.6rem);margin:.4rem 0 .65rem}.install-gate__quote p{display:none}.install-gate__card{width:100%;max-width:560px}.install-gate__card h2{font-size:clamp(2.1rem,9vw,3.3rem)}}
@media(max-width:520px){.install-gate__visual{min-height:34dvh}.install-gate__panel{min-height:66dvh;padding:22px 16px 30px}.install-gate__brand small{font-size:.58rem}.install-gate__brand strong{font-size:.92rem}.install-gate__quote small{font-size:.6rem}.install-gate__quote h1{font-size:2.35rem}.install-gate__card h2{margin:1rem 0 .6rem}.install-gate__lead{font-size:.9rem;margin-bottom:1rem}.install-gate__device{padding:12px 13px}.install-gate__primary{min-height:54px}.install-gate__steps{margin:1rem 0}.install-gate__steps li{padding:6px 0}.install-gate__actions{flex-direction:column}.install-gate__actions button{min-height:46px}}
@media(prefers-reduced-motion:reduce){.install-gate__art{animation:none}.install-gate__primary{transition:none}}

/* ═══════════════════════════════════════════════════════════════════════════
   PWA 8 · INSTALLATION ULTRA-SIMPLE + GUIDE VISUEL
   ═══════════════════════════════════════════════════════════════════════════ */
.install-gate__primary{display:flex;align-items:center;justify-content:center;gap:12px;font-size:1rem;letter-spacing:.005em}.install-gate__primary span{font-size:1.25rem;transition:transform .2s ease}.install-gate__primary:hover span{transform:translateX(4px)}
.install-gate__secondary{width:100%;min-height:48px;margin-top:10px;border:1px solid rgba(184,85,58,.18);border-radius:16px;background:rgba(255,255,255,.62);color:#8f3c2d;font:750 .84rem/1 Manrope,sans-serif;cursor:pointer;transition:background .2s ease,transform .2s ease}.install-gate__secondary:hover{background:#fff8f2;transform:translateY(-1px)}
.install-gate__after{display:grid;grid-template-columns:28px minmax(0,1fr) auto 28px minmax(0,1fr) auto 28px minmax(0,1fr);gap:8px;align-items:center;margin:18px 0;padding:13px 14px;border:1px solid rgba(31,24,20,.08);border-radius:17px;background:rgba(255,255,255,.46)}.install-gate__after>span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#6b2732;color:#fff;font:800 .7rem Manrope,sans-serif}.install-gate__after>p{margin:0;font:600 .71rem/1.35 Manrope,sans-serif;color:rgba(31,24,20,.67)}.install-gate__after>i{font-style:normal;color:rgba(31,24,20,.26)}
.install-guide{position:fixed;inset:0;z-index:100000;display:grid;place-items:end center;padding:22px;opacity:0;pointer-events:none;transition:opacity .22s ease}.install-guide.is-open{opacity:1;pointer-events:auto}.install-guide__shade{position:absolute;inset:0;border:0;background:rgba(31,24,20,.58);backdrop-filter:blur(8px);cursor:pointer}.install-guide__sheet{position:relative;width:min(100%,620px);max-height:min(90dvh,820px);overflow:auto;padding:22px;border:1px solid rgba(255,255,255,.54);border-radius:28px;background:linear-gradient(160deg,#fffdf8,#f4ede0);box-shadow:0 35px 95px rgba(31,24,20,.28);transform:translateY(24px) scale(.985);transition:transform .24s ease}.install-guide.is-open .install-guide__sheet{transform:none}
.install-guide__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.install-guide__head small{display:block;margin-bottom:5px;font:800 .61rem/1 Manrope,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#b8553a}.install-guide__head h3{margin:0;font:500 clamp(1.8rem,6vw,2.7rem)/1 Fraunces,serif;letter-spacing:-.035em}.install-guide__head button{width:40px;height:40px;border:1px solid rgba(31,24,20,.1);border-radius:50%;background:rgba(255,255,255,.72);font-size:1.45rem;color:#1f1814;cursor:pointer}.install-guide__lead{margin:10px 0 17px;color:rgba(31,24,20,.62);font:520 .91rem/1.55 Manrope,sans-serif}
.install-demo{position:relative;overflow:hidden;margin:0 0 18px;border:1px solid rgba(31,24,20,.1);border-radius:22px;background:#fff;box-shadow:0 20px 50px rgba(53,35,24,.08)}.install-demo--phone{width:min(100%,360px);height:330px;margin-inline:auto;background:#f6f3ef}.install-demo__phonebar{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#fff;border-bottom:1px solid #e8e2dc;font:650 .76rem Manrope,sans-serif}.install-demo__phonebar b{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#fff0e8;color:#b8553a;font-size:1.35rem}.install-demo__screen{height:150px;display:grid;place-items:center;align-content:center;gap:8px;background:linear-gradient(160deg,#f8eee5,#f0d9cf)}.install-demo__screen--wide{height:180px}.install-demo__logo,.install-demo__appicon,.install-demo__homeicon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#6b2732;color:#fff;font-size:1.25rem}.install-demo__screen strong{font:500 1.2rem Fraunces,serif}.install-demo__menu,.install-demo__sheet{position:absolute;right:10px;top:52px;width:220px;padding:8px;border-radius:14px;background:#fff;box-shadow:0 18px 50px rgba(31,24,20,.2);font:560 .78rem Manrope,sans-serif}.install-demo__menu span,.install-demo__menu b,.install-demo__sheet span,.install-demo__sheet b{display:block;padding:10px 11px;border-radius:9px}.install-demo__menu b,.install-demo__sheet b{background:#fff0e8;color:#a54833}.install-demo__finger{position:absolute;right:36px;top:14px;font-size:1.8rem;animation:guideTap 1.5s ease-in-out infinite}.install-demo--desktop{height:310px;background:#f5f2ef}.install-demo__tabs{height:35px;display:flex;align-items:center;gap:8px;padding:0 12px;background:#ece9e6;font:600 .7rem Manrope,sans-serif}.install-demo__tabs i{width:8px;height:8px;border-radius:50%;background:#b8553a}.install-demo__address{height:48px;display:flex;align-items:center;gap:8px;padding:0 12px;background:#fff;border-bottom:1px solid #e8e2dc}.install-demo__address span{flex:1;padding:8px 12px;border-radius:10px;background:#f5f3f1;font:600 .7rem Manrope,sans-serif}.install-demo__address b{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#fff0e8;color:#b8553a;font-size:1.25rem;animation:guidePulse 1.5s ease-in-out infinite}.install-demo__address i{font-style:normal;font-size:1.1rem}.install-demo__bubble{position:absolute;right:28px;top:84px;padding:10px 13px;border-radius:10px;background:#1f1814;color:#fff;font:650 .7rem Manrope,sans-serif}.install-demo--generic{min-height:150px;display:flex;align-items:center;justify-content:center;gap:20px;background:linear-gradient(135deg,#fffaf3,#f1e1d7)}.install-demo--generic i{font-style:normal;font-size:1.5rem;color:#b8893f}.install-demo__homeicon{border-radius:24%;box-shadow:0 8px 22px rgba(107,39,50,.18)}
.install-guide__steps{list-style:none;margin:0;padding:0;display:grid;gap:9px}.install-guide__steps li{display:grid;grid-template-columns:32px 1fr;gap:11px;align-items:center;padding:11px 12px;border:1px solid rgba(31,24,20,.08);border-radius:14px;background:rgba(255,255,255,.55)}.install-guide__steps li span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#6b2732;color:#fff;font:800 .72rem Manrope,sans-serif}.install-guide__steps p{margin:0;font:560 .84rem/1.45 Manrope,sans-serif;color:rgba(31,24,20,.72)}.install-guide__done{width:100%;min-height:52px;margin-top:15px;border:0;border-radius:16px;background:#6b2732;color:#fff;font:750 .88rem Manrope,sans-serif;cursor:pointer}.install-guide__done.is-confirmed{background:#6b8568}.install-guide__hint{margin:10px 0 0;text-align:center;color:rgba(31,24,20,.52);font:600 .71rem/1.45 Manrope,sans-serif}
@keyframes guideTap{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(8px) scale(.92)}}@keyframes guidePulse{0%,100%{box-shadow:0 0 0 0 rgba(184,85,58,.1)}50%{box-shadow:0 0 0 9px rgba(184,85,58,.12)}}
@media(max-width:700px){.install-gate__after{grid-template-columns:28px 1fr;gap:8px 10px}.install-gate__after>i{display:none}.install-guide{padding:0;place-items:end stretch}.install-guide__sheet{width:100%;max-height:92dvh;border-radius:26px 26px 0 0;padding:20px 16px 24px}.install-demo--desktop{height:250px}.install-demo__screen--wide{height:125px}.install-demo__bubble{right:18px;top:82px}.install-guide__head h3{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.install-demo__finger,.install-demo__address b{animation:none}.install-guide,.install-guide__sheet{transition:none}}

/* V1 stable PWA 10 · compatibilité navigateurs */
.install-gate__device.is-compatible>span{background:rgba(107,133,104,.14);color:#587154}.install-gate__device.is-incompatible{border-color:rgba(107,39,50,.2);background:rgba(107,39,50,.055)}.install-gate__device.is-incompatible>span{background:rgba(107,39,50,.1);color:#6b2732}.install-gate__device.is-incompatible small{color:#6b2732}
.install-compat{margin:0 0 1rem;padding:14px 15px;border:1px solid rgba(31,24,20,.08);border-radius:18px;background:rgba(255,255,255,.44)}.install-compat__title{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:10px}.install-compat__title strong{font:750 .78rem/1.2 Manrope,sans-serif;color:#1f1814}.install-compat__title span{font:600 .68rem/1.2 Manrope,sans-serif;color:rgba(31,24,20,.46)}.install-compat__list{display:flex;flex-wrap:wrap;gap:7px}.install-compat__item{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:6px 9px;border-radius:999px;border:1px solid rgba(31,24,20,.08);background:#fff;font:700 .7rem/1 Manrope,sans-serif;color:rgba(31,24,20,.72)}.install-compat__item i{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;font-style:normal;font-size:.66rem}.install-compat__item b{font-size:.58rem;letter-spacing:.04em;text-transform:uppercase}.install-compat__item.is-ok i,.install-compat__item.is-recommended i{background:rgba(107,133,104,.14);color:#587154}.install-compat__item.is-recommended{border-color:rgba(184,137,63,.22);background:#fffaf1}.install-compat__item.is-recommended b{color:#9a6d27}.install-compat__item.is-no{opacity:.68;background:rgba(107,39,50,.035)}.install-compat__item.is-no i{background:rgba(107,39,50,.1);color:#6b2732}.install-compat__item.is-no b{color:#6b2732}
.install-demo--unsupported{min-height:112px;display:flex;align-items:center;gap:16px;padding:18px;border:1px solid rgba(107,39,50,.14);border-radius:18px;background:rgba(107,39,50,.055)}.install-demo__stop{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:#6b2732;color:#fff;font:700 1.35rem/1 Manrope,sans-serif}.install-demo--unsupported strong{display:block;font:750 .85rem/1.35 Manrope,sans-serif}.install-demo--unsupported small{display:block;margin-top:5px;color:rgba(31,24,20,.57);font:560 .73rem/1.45 Manrope,sans-serif}
@media(max-width:520px){.install-compat__title{align-items:flex-start;flex-direction:column;gap:3px}.install-compat__item{font-size:.66rem}.install-compat__item b{display:none}}

/* ═══════════════════════════════════════════════════════════════════════════
   V1 stable PWA 11 · première page / tutoriel d'installation contextuel
   ═══════════════════════════════════════════════════════════════════════════ */
.auth[data-mode="install"]{background:#f6efe5}
.install-gate{grid-template-columns:minmax(520px,1.02fr) minmax(520px,.98fr);background:#f6efe5}
.install-gate__visual:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(31,24,20,.04),rgba(31,24,20,.08) 42%,rgba(31,24,20,.72));z-index:1}
.install-gate__veil{z-index:1;background:linear-gradient(90deg,rgba(31,24,20,.05),transparent 45%,rgba(31,24,20,.16)),linear-gradient(0deg,rgba(31,24,20,.5),transparent 60%)}
.install-gate__quote{max-width:560px;text-shadow:0 2px 18px rgba(31,24,20,.24)}
.install-gate__quote h1{font-size:clamp(3rem,4.6vw,5.2rem);line-height:.94}.install-gate__quote p{max-width:500px;color:rgba(255,255,255,.92)}
.install-gate__panel{place-items:center;padding:clamp(28px,4.3vw,64px);background:radial-gradient(circle at 78% 8%,rgba(184,137,63,.14),transparent 24%),radial-gradient(circle at 12% 88%,rgba(184,85,58,.08),transparent 26%),linear-gradient(145deg,#fffaf3,#f4ede0 72%,#eadccc)}
.install-gate__card{width:min(100%,620px)}
.install-gate__card h2{font-size:clamp(2.65rem,4vw,4.25rem);margin:1rem 0 .65rem}
.install-gate__lead{max-width:580px;margin-bottom:1.1rem;font-size:.94rem}
.install-gate__status{display:grid;grid-template-columns:48px minmax(0,1fr);gap:13px;align-items:center;margin:0 0 14px;padding:13px 15px;border:1px solid rgba(31,24,20,.08);border-radius:18px;background:rgba(255,255,255,.62);box-shadow:0 14px 34px rgba(63,43,29,.05)}
.install-gate__status>span{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;font:800 1.05rem/1 Manrope,sans-serif}.install-gate__status small{display:block;font:800 .58rem/1.2 Manrope,sans-serif;letter-spacing:.13em}.install-gate__status strong{display:inline-block;margin-top:3px;font:750 .93rem/1.3 Manrope,sans-serif}.install-gate__status p{display:inline;margin-left:8px;color:rgba(31,24,20,.5);font:600 .75rem/1.3 Manrope,sans-serif}.install-gate__status.is-compatible>span{background:rgba(107,133,104,.14);color:#587154}.install-gate__status.is-compatible small{color:#587154}.install-gate__status.is-incompatible{border-color:rgba(107,39,50,.18);background:rgba(107,39,50,.055)}.install-gate__status.is-incompatible>span{background:rgba(107,39,50,.1);color:#6b2732}.install-gate__status.is-incompatible small{color:#6b2732}
.install-gate__tutorial{position:relative;margin:0 0 14px;padding:16px;border:1px solid rgba(184,85,58,.12);border-radius:22px;background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,249,241,.58));box-shadow:0 16px 42px rgba(65,43,27,.06);overflow:hidden}.install-gate__tutorial:before{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-55px;top:-65px;background:rgba(184,137,63,.08)}
.install-gate__tutorial-head{position:relative;display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.install-gate__tutorial-head small{display:block;margin-bottom:4px;font:800 .57rem/1 Manrope,sans-serif;letter-spacing:.16em;color:#b8553a}.install-gate__tutorial-head strong{display:block;font:600 1.06rem/1.3 Fraunces,serif;color:#1f1814}.install-gate__tutorial-head>span{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#f4ede0;color:rgba(31,24,20,.56);font:750 .62rem/1 Manrope,sans-serif}
.install-gate__tutorial ol{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.install-gate__tutorial li{min-width:0;padding:12px 11px;border:1px solid rgba(31,24,20,.07);border-radius:15px;background:rgba(255,255,255,.67)}.install-gate__tutorial li b{display:grid;place-items:center;width:25px;height:25px;margin-bottom:8px;border-radius:50%;background:#6b2732;color:#fff;font:800 .68rem/1 Manrope,sans-serif}.install-gate__tutorial li p{margin:0;color:rgba(31,24,20,.7);font:570 .72rem/1.45 Manrope,sans-serif}.install-gate__tip{position:relative;margin-top:9px;padding:9px 11px;border-radius:12px;background:rgba(107,133,104,.075);color:#526c50;font:680 .69rem/1.4 Manrope,sans-serif}
.install-gate__primary{min-height:56px;border-radius:16px}.install-gate__secondary{min-height:44px;margin-top:8px;border-radius:14px}.install-compat{margin:12px 0;padding:11px 12px;border-radius:15px;background:rgba(255,255,255,.37)}.install-compat__title{margin-bottom:8px}.install-compat__item{min-height:29px;padding:5px 8px}.install-gate__note{margin-top:0;padding:12px 13px}.install-gate__actions{margin-top:10px}.install-gate__actions button{min-height:40px}
.install-guide__sheet{width:min(100%,700px);border-radius:30px}.install-guide__lead{max-width:570px}.install-guide__steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.install-guide__steps li{display:block;padding:13px}.install-guide__steps li span{margin-bottom:9px}.install-guide__steps p{font-size:.78rem}.install-demo--desktop{height:285px}
@media(max-width:1120px){.install-gate{grid-template-columns:minmax(440px,.92fr) minmax(500px,1.08fr)}.install-gate__panel{padding:32px}.install-gate__quote h1{font-size:clamp(2.8rem,4.5vw,4.4rem)}}
@media(max-width:900px){.install-gate{grid-template-columns:1fr}.install-gate__visual{min-height:30dvh;max-height:360px}.install-gate__panel{min-height:70dvh;padding:24px 18px 36px}.install-gate__quote{bottom:22px}.install-gate__quote h1{font-size:clamp(2.2rem,8vw,3.4rem)}.install-gate__quote p{display:none}.install-gate__card{max-width:650px}.install-gate__tutorial ol{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:640px){.install-gate__visual{min-height:27dvh}.install-gate__brand{top:16px;left:16px}.install-gate__quote{left:16px;right:16px;bottom:17px}.install-gate__quote small{font-size:.55rem}.install-gate__quote h1{font-size:2.15rem;margin:.35rem 0 0}.install-gate__panel{padding:20px 14px 30px}.install-gate__card h2{font-size:2.4rem}.install-gate__lead{font-size:.88rem;line-height:1.55}.install-gate__tutorial ol{grid-template-columns:1fr}.install-gate__tutorial li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}.install-gate__tutorial li b{margin:0}.install-gate__tutorial-head strong{font-size:.98rem}.install-compat__title{flex-direction:column;gap:3px}.install-gate__actions{flex-direction:column}.install-guide__steps{grid-template-columns:1fr}.install-guide__steps li{display:grid;grid-template-columns:32px 1fr}.install-guide__steps li span{margin-bottom:0}.install-gate__status p{display:block;margin:2px 0 0}}
@media(max-width:420px){.install-gate__visual{min-height:25dvh}.install-gate__quote h1{font-size:1.9rem}.install-gate__card h2{font-size:2.15rem}.install-gate__tutorial{padding:13px}.install-gate__primary{font-size:.9rem}}


/* ═══════════════════════════════════════════════════════════════════════════
   V1 stable PWA 12 · installation raffinée / éditoriale
   ═══════════════════════════════════════════════════════════════════════════ */
.auth[data-mode="install"]{background:#f6efe5;overflow:auto}
.install-gate--refined{min-height:100dvh;grid-template-columns:minmax(420px,.86fr) minmax(560px,1.14fr);background:#f6efe5}
.install-gate--refined .install-gate__visual{min-height:100dvh;background:#6b2732}
.install-gate--refined .install-gate__art{inset:0;transform:none;animation:installBreath 18s ease-in-out infinite alternate;background-position:48% center}
.install-gate--refined .install-gate__veil{background:linear-gradient(180deg,rgba(31,24,20,.12),rgba(31,24,20,.06) 42%,rgba(31,24,20,.68)),linear-gradient(90deg,rgba(31,24,20,.13),transparent 55%)}
.install-gate--refined .install-gate__brand{top:42px;left:46px;gap:12px}.install-gate--refined .install-gate__brand img{width:42px;height:42px}.install-gate--refined .install-gate__brand small{font-size:.6rem}.install-gate--refined .install-gate__brand strong{font-size:1rem}
.install-gate--refined .install-gate__quote{left:46px;right:42px;bottom:54px;max-width:520px}.install-gate--refined .install-gate__quote small{font-size:.62rem;letter-spacing:.2em}.install-gate--refined .install-gate__quote h1{margin:.55rem 0 .8rem;font-size:clamp(2.75rem,4.25vw,4.8rem);line-height:.94;letter-spacing:-.045em}.install-gate--refined .install-gate__quote p{max-width:455px;margin:0;color:rgba(255,255,255,.84);font:520 .9rem/1.65 Manrope,sans-serif;text-shadow:0 2px 16px rgba(31,24,20,.3)}
.install-gate--refined .install-gate__panel{min-height:100dvh;place-items:center;padding:clamp(34px,4vw,70px);background:radial-gradient(circle at 90% 7%,rgba(184,137,63,.11),transparent 24%),linear-gradient(145deg,#fffaf3 0%,#f7f0e6 56%,#efe3d3 100%)}
.install-gate--refined .install-gate__card{width:min(100%,690px);padding:0}
.install-gate__header{margin-bottom:24px}.install-gate__header .install-gate__eyebrow{margin-bottom:14px}.install-gate__header h2{max-width:620px;margin:0 0 12px;font:500 clamp(2.55rem,4vw,4.35rem)/.98 Fraunces,serif;letter-spacing:-.045em;color:#1f1814}.install-gate__header .install-gate__lead{max-width:610px;margin:0;color:rgba(31,24,20,.62);font:540 .95rem/1.65 Manrope,sans-serif}
.install-gate__device-row{display:grid;grid-template-columns:46px auto minmax(160px,1fr);gap:13px 16px;align-items:center;margin-bottom:18px;padding:14px 16px;border:1px solid rgba(31,24,20,.075);border-radius:18px;background:rgba(255,255,255,.52);box-shadow:0 14px 34px rgba(65,43,27,.045)}
.install-gate__device-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(107,133,104,.12);color:#587154;font:800 1rem/1 Manrope,sans-serif}.install-gate__device-copy{display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:baseline}.install-gate__device-copy small{grid-column:1/-1;color:rgba(31,24,20,.43);font:750 .58rem/1.2 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase}.install-gate__device-copy strong{font:760 .94rem/1.3 Manrope,sans-serif;color:#1f1814}.install-gate__device-copy span{color:#587154;font:720 .66rem/1.2 Manrope,sans-serif}.install-gate__device-row>p{margin:0;text-align:right;color:rgba(31,24,20,.5);font:560 .72rem/1.45 Manrope,sans-serif}
.install-gate__steps-card{margin-bottom:18px;padding:18px 18px 16px;border:1px solid rgba(184,85,58,.11);border-radius:22px;background:rgba(255,255,255,.58);box-shadow:0 18px 44px rgba(64,42,28,.055)}
.install-gate__steps-title{display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 14px;margin-bottom:14px}.install-gate__steps-title small{grid-column:1/-1;color:#b8553a;font:800 .56rem/1 Manrope,sans-serif;letter-spacing:.16em}.install-gate__steps-title strong{font:600 1.05rem/1.35 Fraunces,serif;color:#1f1814}.install-gate__steps-title span{padding:5px 8px;border-radius:999px;background:#f4ede0;color:rgba(31,24,20,.48);font:750 .59rem/1 Manrope,sans-serif}
.install-gate__steps-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}.install-gate__steps-list li{position:relative;min-height:122px;padding:14px 13px;border:1px solid rgba(31,24,20,.07);border-radius:16px;background:rgba(255,255,255,.7)}.install-gate__steps-list li b{display:grid;place-items:center;width:26px;height:26px;margin-bottom:13px;border-radius:50%;background:#6b2732;color:#fff;font:800 .68rem/1 Manrope,sans-serif}.install-gate__steps-list li p{margin:0;color:rgba(31,24,20,.68);font:560 .74rem/1.52 Manrope,sans-serif}
.install-gate__cta-block{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:14px}.install-gate--refined .install-gate__primary{min-height:56px;margin:0;border-radius:15px;box-shadow:0 16px 28px rgba(184,85,58,.16)}.install-gate--refined .install-gate__secondary{min-height:56px;margin:0;padding:0 18px;border-radius:15px;white-space:nowrap}
.install-gate__after{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;align-items:start;margin-bottom:12px;padding:12px 14px;border-radius:16px;background:rgba(107,133,104,.07);border:1px solid rgba(107,133,104,.13)}.install-gate__after>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(107,133,104,.12);color:#587154}.install-gate__after strong{display:block;margin:1px 0 3px;font:760 .74rem/1.25 Manrope,sans-serif;color:#445a42}.install-gate__after p{margin:0;color:rgba(31,24,20,.56);font:540 .69rem/1.5 Manrope,sans-serif}
.install-gate__compat-details{margin:0;border-top:1px solid rgba(31,24,20,.08);border-bottom:1px solid rgba(31,24,20,.08)}.install-gate__compat-details summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;list-style:none;color:rgba(31,24,20,.62);font:700 .71rem/1.2 Manrope,sans-serif}.install-gate__compat-details summary::-webkit-details-marker{display:none}.install-gate__compat-details summary span{font-size:1rem;color:#b8553a}.install-gate__compat-details[open] summary span{transform:rotate(45deg)}.install-gate__compat-details .install-compat{margin:0 0 12px;padding:10px 0 2px;border:0;border-radius:0;background:transparent}.install-gate__compat-details .install-compat__title{display:none}.install-gate__compat-details .install-compat__list{gap:6px}.install-gate__compat-details .install-compat__item{background:rgba(255,255,255,.52)}
.install-gate--refined .install-gate__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.install-gate--refined .install-gate__actions button{min-height:36px;padding:0;border:0;background:transparent;color:rgba(31,24,20,.48);font:680 .66rem/1 Manrope,sans-serif}.install-gate--refined .install-gate__actions button:hover{color:#b8553a;text-decoration:underline;text-underline-offset:3px}
@media(max-width:1080px){.install-gate--refined{grid-template-columns:minmax(360px,.78fr) minmax(520px,1.22fr)}.install-gate--refined .install-gate__panel{padding:34px}.install-gate--refined .install-gate__quote{left:34px;bottom:38px}.install-gate--refined .install-gate__brand{left:34px;top:30px}.install-gate--refined .install-gate__quote h1{font-size:3.2rem}}
@media(max-width:860px){.install-gate--refined{display:block}.install-gate--refined .install-gate__visual{min-height:310px;max-height:340px}.install-gate--refined .install-gate__art{background-position:center 45%}.install-gate--refined .install-gate__brand{top:18px;left:20px}.install-gate--refined .install-gate__quote{left:20px;right:20px;bottom:22px}.install-gate--refined .install-gate__quote h1{font-size:2.7rem;margin-bottom:0}.install-gate--refined .install-gate__quote p{display:none}.install-gate--refined .install-gate__panel{min-height:auto;padding:30px 20px 40px}.install-gate--refined .install-gate__card{max-width:680px}.install-gate__header h2{font-size:2.8rem}}
@media(max-width:620px){.install-gate--refined .install-gate__visual{min-height:240px;max-height:260px}.install-gate--refined .install-gate__brand img{width:36px;height:36px}.install-gate--refined .install-gate__quote small{font-size:.53rem}.install-gate--refined .install-gate__quote h1{font-size:2.05rem;line-height:.96}.install-gate--refined .install-gate__panel{padding:24px 14px 32px}.install-gate__header{margin-bottom:18px}.install-gate__header h2{font-size:2.35rem}.install-gate__header .install-gate__lead{font-size:.87rem}.install-gate__device-row{grid-template-columns:42px 1fr;gap:9px 12px;padding:12px}.install-gate__device-row>p{grid-column:1/-1;text-align:left;padding-left:54px;margin-top:-6px}.install-gate__steps-card{padding:14px}.install-gate__steps-list{grid-template-columns:1fr;gap:7px}.install-gate__steps-list li{min-height:0;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;padding:11px 12px}.install-gate__steps-list li b{margin:0}.install-gate__cta-block{grid-template-columns:1fr}.install-gate--refined .install-gate__secondary{min-height:44px}.install-gate--refined .install-gate__actions{justify-content:space-between}.install-gate__after{grid-template-columns:30px 1fr;padding:11px 12px}.install-gate__after>span{width:28px;height:28px}}
@media(max-width:400px){.install-gate--refined .install-gate__visual{min-height:220px}.install-gate--refined .install-gate__quote h1{font-size:1.85rem}.install-gate__header h2{font-size:2.05rem}.install-gate__steps-title{grid-template-columns:1fr}.install-gate__steps-title span{justify-self:start}.install-gate--refined .install-gate__actions{flex-direction:column;align-items:flex-start;gap:4px}}

/* ═══════════════════════════════════════════════════════════════════════════
   V1 stable PWA 13 · installation encore plus soignée
   ═══════════════════════════════════════════════════════════════════════════ */
.install-gate--v13 .install-gate__brand img{width:46px;height:46px;filter:none}
.install-gate--v13 .install-gate__card{width:min(100%,760px)}
.install-gate--v13 .install-gate__header{margin-bottom:20px}
.install-gate--v13 .install-gate__header h2{font-size:clamp(2.7rem,4.2vw,4.6rem)}
.install-gate--v13 .install-gate__lead{font-size:.98rem}
.install-gate--v13 .install-gate__device-row{margin-bottom:20px;padding:16px 18px;border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.56));box-shadow:0 18px 40px rgba(64,42,28,.06)}
.install-gate--v13 .install-gate__device-icon{width:46px;height:46px;border-radius:16px}
.install-browser-section{margin:0 0 18px;padding:18px;border:1px solid rgba(31,24,20,.07);border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.76),rgba(255,255,255,.52));box-shadow:0 18px 44px rgba(64,42,28,.05)}
.install-browser-section__head{display:grid;gap:4px;margin-bottom:14px}.install-browser-section__head small{color:#b8553a;font:800 .58rem/1 Manrope,sans-serif;letter-spacing:.16em}.install-browser-section__head strong{font:600 1.05rem/1.35 Fraunces,serif;color:#1f1814}.install-browser-section__head span{color:rgba(31,24,20,.5);font:560 .72rem/1.45 Manrope,sans-serif}
.install-browser-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.install-browser-card{position:relative;display:grid;gap:10px;padding:14px;border-radius:18px;border:1px solid rgba(31,24,20,.08);background:rgba(255,255,255,.84)}
.install-browser-card__top{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center}.install-browser-card__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#f0ded4;color:#8f3c2d;font:800 .9rem/1 Manrope,sans-serif}.install-browser-card__copy strong{display:block;font:760 .88rem/1.3 Manrope,sans-serif;color:#1f1814}.install-browser-card__copy span{display:block;margin-top:2px;color:rgba(31,24,20,.5);font:700 .63rem/1.2 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.install-browser-card__flag{grid-column:1/-1;display:inline-flex;justify-self:start;margin-top:6px;padding:5px 8px;border-radius:999px;background:rgba(184,137,63,.12);color:#9a6d27;font:800 .55rem/1 Manrope,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.install-browser-card p{margin:0;color:rgba(31,24,20,.62);font:560 .72rem/1.5 Manrope,sans-serif;min-height:2.2em}
.install-browser-card__actions{display:flex;align-items:center;justify-content:flex-start}.install-browser-card__actions a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 12px;border-radius:12px;background:#1f1814;color:#fff;text-decoration:none;font:760 .7rem/1 Manrope,sans-serif}
.install-browser-card.is-recommended{border-color:rgba(184,137,63,.25);background:linear-gradient(180deg,#fffaf1,#fff4df)}.install-browser-card.is-recommended .install-browser-card__icon{background:rgba(184,137,63,.16);color:#9a6d27}.install-browser-card.is-recommended .install-browser-card__actions a{background:linear-gradient(135deg,#b8893f,#9d712f)}
.install-browser-card.is-ok .install-browser-card__icon{background:rgba(107,133,104,.12);color:#587154}.install-browser-card.is-ok .install-browser-card__actions a{background:linear-gradient(135deg,#6b8568,#567253)}
.install-browser-card.is-no{background:rgba(107,39,50,.05);border-color:rgba(107,39,50,.15)}.install-browser-card.is-no .install-browser-card__icon{background:rgba(107,39,50,.11);color:#6b2732}.install-browser-card.is-no .install-browser-card__actions a{background:linear-gradient(135deg,#6b2732,#4e1c24)}
.install-browser-card.is-current{box-shadow:0 0 0 2px rgba(184,85,58,.16),0 12px 24px rgba(64,42,28,.05)}
.install-gate--v13 .install-gate__steps-card{margin-bottom:18px;padding:18px 18px 16px;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.62))}
.install-gate--v13 .install-gate__steps-list li{background:#fff}
.install-gate--v13 .install-gate__primary{min-height:58px;border-radius:16px;box-shadow:0 18px 34px rgba(184,85,58,.22)}
.install-gate--v13 .install-gate__secondary{min-height:58px;padding:0 18px;border-radius:16px;border:1px solid rgba(31,24,20,.09);background:rgba(255,255,255,.72);color:#1f1814;font:720 .85rem/1 Manrope,sans-serif}
.install-gate--v13 .install-gate__after{margin-top:2px;margin-bottom:10px;padding:14px 15px;border-radius:18px;background:linear-gradient(180deg,rgba(107,133,104,.09),rgba(107,133,104,.06))}
.install-gate--v13 .install-gate__actions{padding-top:2px;border-top:1px solid rgba(31,24,20,.07)}
.install-gate--v13 .install-gate__actions button{min-height:38px}
.install-demo__logo-img{width:52px;height:52px;display:block}.install-demo__logo-img.is-large{width:52px;height:52px}
.install-guide__sheet{width:min(100%,760px);padding:24px 24px 22px;border:1px solid rgba(184,137,63,.18);background:linear-gradient(180deg,#fffaf3,#f5ebdf);box-shadow:0 30px 80px rgba(31,24,20,.28)}
.install-guide__brandline{display:flex;align-items:center;gap:12px}.install-guide__badge{display:grid;place-items:center;width:50px;height:50px;border-radius:18px;background:rgba(255,255,255,.8);border:1px solid rgba(184,137,63,.2)}.install-guide__badge img{width:30px;height:30px}
.install-guide__head button{border-color:rgba(184,137,63,.18);background:#fff;color:#6b2732}
.install-guide__lead{margin:10px 0 16px;max-width:none}
.install-guide__hero{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:14px;align-items:stretch;margin-bottom:14px}.install-guide__tip{padding:14px;border-radius:18px;background:rgba(255,255,255,.72);border:1px solid rgba(31,24,20,.07)}.install-guide__tip strong{display:block;margin-bottom:6px;font:760 .74rem/1.2 Manrope,sans-serif;color:#6b2732;letter-spacing:.08em;text-transform:uppercase}.install-guide__tip p{margin:0;color:rgba(31,24,20,.62);font:560 .75rem/1.55 Manrope,sans-serif}
.install-guide__steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.install-guide__steps li{padding:14px;border-radius:16px;background:#fff}.install-guide__steps li span{margin-bottom:10px}.install-guide__steps p{font-size:.78rem}
.install-guide__footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:16px}.install-guide__done,.install-guide__download{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 16px;border:0;border-radius:16px;background:linear-gradient(135deg,#6b2732,#8d3542);color:#fff;text-decoration:none;font:760 .88rem/1 Manrope,sans-serif;cursor:pointer}.install-guide__done.is-confirmed{background:linear-gradient(135deg,#6b8568,#567253)}.install-guide__soft{min-height:52px;padding:0 16px;border:1px solid rgba(31,24,20,.08);border-radius:16px;background:rgba(255,255,255,.7);color:#1f1814;font:720 .82rem/1 Manrope,sans-serif;cursor:pointer}
.install-guide__hint{margin-top:12px;padding-top:12px;border-top:1px solid rgba(31,24,20,.07)}
.install-demo--unsupported{min-height:150px;padding:20px;border-radius:22px;background:linear-gradient(180deg,rgba(107,39,50,.09),rgba(107,39,50,.05))}
.install-demo--desktop,.install-demo--phone,.install-demo--generic{border-radius:22px;border:1px solid rgba(31,24,20,.07);background:#fff;box-shadow:0 18px 40px rgba(64,42,28,.08)}
@media(max-width:940px){.install-browser-grid{grid-template-columns:1fr}.install-guide__hero{grid-template-columns:1fr}.install-guide__footer{grid-template-columns:1fr}.install-guide__soft,.install-guide__download,.install-guide__done{width:100%}}
@media(max-width:620px){.install-browser-section{padding:14px}.install-browser-card{padding:12px}.install-browser-card__top{grid-template-columns:34px 1fr}.install-browser-card__icon{width:34px;height:34px;border-radius:11px}.install-gate--v13 .install-gate__secondary{min-height:46px}.install-guide__sheet{padding:18px 16px 20px}.install-guide__hero{gap:10px}}

/* ═══════════════════════════════════════════════════════════════════════════
   V1 stable PWA 14 · CTA premium / logo d'installation direct
   ═══════════════════════════════════════════════════════════════════════════ */
.install-premium-cta{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px;align-items:center;margin:0 0 18px;padding:20px;border:1px solid rgba(184,137,63,.15);border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(248,237,224,.82));box-shadow:0 24px 54px rgba(64,42,28,.07)}
.install-premium-cta__seal{position:relative;isolation:isolate;display:grid;place-items:center;width:170px;height:170px;margin:auto;border:0;border-radius:50%;background:radial-gradient(circle at 50% 40%,#fffdf8 0 42%,#f4e7d8 72%,#e8d4bd 100%);box-shadow:0 18px 40px rgba(107,39,50,.14),inset 0 0 0 1px rgba(184,137,63,.18);cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}
.install-premium-cta__seal:hover{transform:translateY(-4px) scale(1.015);box-shadow:0 26px 56px rgba(107,39,50,.19),inset 0 0 0 1px rgba(184,137,63,.28)}
.install-premium-cta__seal:active{transform:translateY(-1px) scale(.995)}
.install-premium-cta__seal img{position:relative;z-index:2;width:94px;height:94px;filter:drop-shadow(0 10px 18px rgba(107,39,50,.10))}
.install-premium-cta__halo{position:absolute;inset:10px;border-radius:50%;border:1px solid rgba(184,137,63,.34);box-shadow:0 0 0 10px rgba(184,137,63,.035),0 0 0 20px rgba(184,85,58,.025);animation:installSealPulse 3.6s ease-in-out infinite;z-index:1}
.install-premium-cta__label{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:3;white-space:nowrap;padding:6px 10px;border-radius:999px;background:#6b2732;color:#fff;font:800 .55rem/1 Manrope,sans-serif;letter-spacing:.12em;box-shadow:0 8px 18px rgba(107,39,50,.2)}
.install-premium-cta__copy small{display:block;margin-bottom:7px;color:#b8553a;font:800 .58rem/1 Manrope,sans-serif;letter-spacing:.17em}.install-premium-cta__copy strong{display:block;margin-bottom:8px;font:600 1.28rem/1.2 Fraunces,serif;color:#1f1814}.install-premium-cta__copy p{max-width:480px;margin:0 0 12px;color:rgba(31,24,20,.61);font:560 .8rem/1.55 Manrope,sans-serif}.install-premium-cta__copy .install-gate__secondary{min-height:42px;padding:0 14px;border-radius:13px}
@keyframes installSealPulse{0%,100%{transform:scale(.985);opacity:.72}50%{transform:scale(1.02);opacity:1}}
@media(max-width:720px){.install-premium-cta{grid-template-columns:1fr;text-align:center;padding:18px 14px}.install-premium-cta__seal{width:154px;height:154px}.install-premium-cta__seal img{width:84px;height:84px}.install-premium-cta__copy p{margin-left:auto;margin-right:auto}.install-premium-cta__copy .install-gate__secondary{width:100%}}
@media(prefers-reduced-motion:reduce){.install-premium-cta__halo{animation:none}.install-premium-cta__seal{transition:none}}

/* V1 stable PWA 15 · garde-fou premier appareil / rejoindre */
.auth__card--checking{display:grid;gap:22px}.auth__cloud-check{display:flex;align-items:center;gap:14px;padding:16px 17px;border:1px solid rgba(31,24,20,.08);border-radius:18px;background:rgba(255,255,255,.62)}.auth__cloud-check>span{width:18px;height:18px;border:2px solid rgba(184,85,58,.2);border-top-color:#b8553a;border-radius:50%;animation:nrCloudSpin .8s linear infinite}.auth__cloud-check strong,.auth__existing-note strong{display:block;font:750 .84rem/1.25 Manrope,sans-serif;color:#1f1814}.auth__cloud-check small,.auth__existing-note small{display:block;margin-top:4px;color:rgba(31,24,20,.56);font:560 .72rem/1.45 Manrope,sans-serif}.auth__existing-note{display:grid;grid-template-columns:36px 1fr;gap:11px;align-items:center;margin:0 0 16px;padding:13px 14px;border:1px solid rgba(107,133,104,.18);border-radius:16px;background:rgba(107,133,104,.07)}.auth__existing-note>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(107,133,104,.14);color:#587154;font:800 .86rem/1 Manrope,sans-serif}.auth__existing-note.is-warning{border-color:rgba(184,137,63,.24);background:rgba(184,137,63,.08)}.auth__existing-note.is-warning>span{background:rgba(184,137,63,.14);color:#9a6d27}@keyframes nrCloudSpin{to{transform:rotate(360deg)}}

/* V1 stable 16 · appareils */
.device-cloud-card__revoked-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.device-cloud-card.is-revoked{opacity:.82}.device-cloud-card.is-revoked .device-cloud-card__body strong{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:rgba(107,39,50,.35)}@media(max-width:620px){.device-cloud-card__revoked-actions{justify-content:flex-start}.device-cloud-card__action{width:100%}}

/* ═══════════════════════════════════════════════════════════════════════════
   V1 stable 17 · Gérer : accueil / vue d'ensemble
   ═══════════════════════════════════════════════════════════════════════════ */
.manage-overview-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;margin-bottom:18px;padding:26px 28px;border:1px solid color-mix(in srgb,var(--terra) 18%,var(--line));border-radius:26px;background:radial-gradient(circle at 92% 10%,color-mix(in srgb,var(--gold) 13%,transparent),transparent 30%),linear-gradient(145deg,#fffaf5,#f3e8dc);box-shadow:0 20px 46px -38px rgba(31,24,20,.42)}
.manage-overview-hero__copy small,.manage-overview-section header small{display:block;margin-bottom:7px;font:800 .58rem/1 var(--font-body);letter-spacing:.2em;color:var(--terra)}
.manage-overview-hero__copy h4,.manage-overview-section header h4{margin:0 0 8px;font:500 clamp(1.45rem,2.8vw,2.2rem)/1.08 var(--font-display);letter-spacing:-.03em}.manage-overview-hero__copy p{max-width:64ch;margin:0;color:var(--ink-muted);font:.84rem/1.65 var(--font-body)}
.manage-overview-hero__status{min-width:200px;display:grid;grid-template-columns:12px 1fr;gap:12px;align-items:center;padding:15px 16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.68)}.manage-overview-hero__status>span{width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 6px color-mix(in srgb,var(--gold) 12%,transparent)}.manage-overview-hero__status.is-ok>span{background:var(--sage);box-shadow:0 0 0 6px color-mix(in srgb,var(--sage) 13%,transparent)}.manage-overview-hero__status small{display:block;font:800 .54rem/1 var(--font-body);letter-spacing:.15em;color:var(--ink-faint)}.manage-overview-hero__status strong{display:block;margin:3px 0 2px;font:750 .83rem/1.25 var(--font-body)}.manage-overview-hero__status em{font:600 .66rem/1.25 var(--font-body);font-style:normal;color:var(--ink-muted)}
.manage-overview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:22px}.manage-overview-stats button{position:relative;display:grid;gap:3px;padding:16px 16px 15px;border:1px solid var(--line);border-radius:18px;background:var(--paper);text-align:left;color:var(--ink);cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}.manage-overview-stats button:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--terra) 28%,var(--line));box-shadow:0 16px 30px -26px rgba(31,24,20,.35)}.manage-overview-stats small{font:800 .54rem/1 var(--font-body);letter-spacing:.14em;color:var(--ink-faint)}.manage-overview-stats strong{font:500 1.8rem/1 var(--font-display);color:var(--terra)}.manage-overview-stats span{font:600 .67rem/1.35 var(--font-body);color:var(--ink-muted)}.manage-overview-stats b{position:absolute;right:13px;bottom:12px;color:var(--ink-faint);font-size:.9rem}
.manage-overview-section{margin-top:18px}.manage-overview-section>header{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.manage-overview-section>header h4{font-size:1.45rem;margin-bottom:0}.manage-overview-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.manage-overview-section--soft{padding:20px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--paper-warm) 74%,transparent)}
.manage-overview-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.manage-overview-links button{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 13px;border:1px solid color-mix(in srgb,var(--line) 85%,transparent);border-radius:15px;background:rgba(255,255,255,.66);text-align:left;color:var(--ink);cursor:pointer}.manage-overview-links button>span{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:var(--terra-tint);color:var(--terra)}.manage-overview-links strong{display:block;font:720 .8rem/1.25 var(--font-body)}.manage-overview-links small{display:block;margin-top:2px;color:var(--ink-muted);font:.66rem/1.35 var(--font-body)}.manage-overview-links b{color:var(--ink-faint)}

@media(max-width:900px){.manage-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .settings__nav{background:var(--paper-warm);backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .settings__title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;margin-bottom:10px;padding-bottom:10px}.settings__title>small{grid-column:1}.settings__title h2{grid-column:1;margin:0}.settings__title p{display:none}.settings-quick-device{grid-column:2;grid-row:1/3;align-self:center;min-width:44px;width:44px;height:44px;padding:0;border-radius:14px}.settings-quick-device strong,.settings-quick-device small{display:none}.settings-quick-device span{font-size:1.1rem}
  .settings__links--simple{gap:5px;padding-bottom:10px}.settings__links--simple button{min-width:auto;flex:0 0 auto;padding:9px 11px;border-radius:12px}.settings__links--simple button>span{width:26px;height:26px}.settings__links--simple button strong{font-size:.72rem}.settings__content{padding-top:18px}
  .settings__page{animation-duration:.24s}
  .manage-overview-hero{grid-template-columns:1fr;padding:20px 18px;border-radius:22px}.manage-overview-hero__status{min-width:0;width:100%}.manage-overview-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.manage-overview-stats button{padding:13px}.manage-overview-stats strong{font-size:1.5rem}.manage-overview-actions,.manage-overview-links{grid-template-columns:1fr}.manage-overview-section--soft{padding:15px}
  .mobilenav{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:color-mix(in srgb,var(--paper) 97%,var(--paper-warm))}
  .menu-btn,.memory-art__stamp,.memory-art__count,.memory-gallery__thumb,.live-editing-badge{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}
@media(max-width:430px){.manage-overview-stats{grid-template-columns:1fr 1fr}.manage-overview-hero__copy h4{font-size:1.6rem}.manage-overview-section>header h4{font-size:1.25rem}}

/* E2E · statut et transfert de clé */
.e2e-status{display:grid;grid-template-columns:48px minmax(0,1fr);gap:13px;align-items:center;padding:15px 16px;border:1px solid rgba(184,137,63,.18);border-radius:18px;background:linear-gradient(145deg,rgba(255,250,243,.9),rgba(244,237,224,.82));margin-bottom:12px}.e2e-status>span{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:rgba(184,137,63,.13);color:#9a6d27;font:800 1rem/1 Manrope,sans-serif}.e2e-status.is-on{border-color:rgba(107,133,104,.24);background:linear-gradient(145deg,rgba(246,250,244,.95),rgba(235,242,231,.9))}.e2e-status.is-on>span{background:rgba(107,133,104,.14);color:#587154}.e2e-status small{display:block;color:rgba(31,24,20,.45);font:800 .56rem/1 Manrope,sans-serif;letter-spacing:.15em}.e2e-status strong{display:block;margin:4px 0 3px;font:720 .9rem/1.3 Manrope,sans-serif}.e2e-status p{margin:0;color:rgba(31,24,20,.56);font:560 .72rem/1.45 Manrope,sans-serif;word-break:break-word}.e2e-transfer{margin-top:10px;border-top:1px solid rgba(31,24,20,.08);padding-top:8px}.e2e-transfer summary{cursor:pointer;list-style:none;min-height:40px;display:flex;align-items:center;font:720 .76rem/1.3 Manrope,sans-serif;color:#6b2732}.e2e-transfer summary::-webkit-details-marker{display:none}.e2e-transfer .field{margin-top:10px}.e2e-transfer textarea{min-height:84px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.7rem}

/* ═══════════════════════════════════════════════════════════════════════════
   V1 stable PWA 19 · conflits de synchronisation hors ligne
   ═══════════════════════════════════════════════════════════════════════════ */
.sync-conflicts{margin:18px 0;padding:18px;border:1px solid rgba(184,85,58,.20);border-radius:24px;background:linear-gradient(180deg,rgba(255,249,244,.96),rgba(247,236,226,.92));box-shadow:0 18px 44px rgba(64,42,28,.06)}
.sync-conflicts__head{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:start;margin-bottom:14px}.sync-conflicts__head>span{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:rgba(184,85,58,.12);color:#b8553a;font:800 1rem/1 Manrope,sans-serif}.sync-conflicts__head small{display:block;margin-bottom:4px;color:#b8553a;font:800 .58rem/1 Manrope,sans-serif;letter-spacing:.15em}.sync-conflicts__head h4{margin:0 0 5px;font:600 1.35rem/1.2 Fraunces,serif}.sync-conflicts__head p{margin:0;color:rgba(31,24,20,.62);font:560 .78rem/1.55 Manrope,sans-serif}
.sync-conflicts__list{display:grid;gap:12px}.sync-conflict{padding:15px;border:1px solid rgba(31,24,20,.08);border-radius:18px;background:rgba(255,255,255,.78)}.sync-conflict__title{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:12px}.sync-conflict__title small{display:block;margin-bottom:3px;color:rgba(31,24,20,.42);font:800 .55rem/1 Manrope,sans-serif;letter-spacing:.12em}.sync-conflict__title strong{font:700 .95rem/1.3 Manrope,sans-serif}.sync-conflict__title>span{padding:5px 8px;border-radius:999px;background:rgba(184,85,58,.10);color:#a54833;font:800 .58rem/1 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.06em}
.sync-conflict__versions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.sync-conflict__versions>div{padding:12px;border:1px solid rgba(31,24,20,.07);border-radius:14px;background:#fff}.sync-conflict__versions small{display:block;margin-bottom:5px;color:rgba(31,24,20,.45);font:800 .54rem/1 Manrope,sans-serif;letter-spacing:.11em}.sync-conflict__versions strong{display:block;margin-bottom:4px;font:700 .76rem/1.3 Manrope,sans-serif}.sync-conflict__versions p{margin:0;color:rgba(31,24,20,.58);font:540 .68rem/1.45 Manrope,sans-serif}.sync-conflict__actions{display:flex;gap:9px;flex-wrap:wrap}.sync-conflict__actions .btn{min-height:42px}
@media(max-width:620px){.sync-conflicts{padding:14px;border-radius:20px}.sync-conflicts__head{grid-template-columns:40px 1fr}.sync-conflicts__head>span{width:38px;height:38px;border-radius:12px}.sync-conflict__versions{grid-template-columns:1fr}.sync-conflict__actions{display:grid;grid-template-columns:1fr}.sync-conflict__actions .btn{width:100%}}

/* ═══════════════════════════════════════════════════════════════════════════
   V20 · installation simplifiée, QR profond, démos image / sans image
   ═══════════════════════════════════════════════════════════════════════════ */
.install-gate--v13 .install-gate__panel{background:radial-gradient(circle at 82% 7%,rgba(184,137,63,.13),transparent 26%),radial-gradient(circle at 6% 92%,rgba(184,85,58,.08),transparent 28%),linear-gradient(145deg,#fffaf3 0%,#f7f0e6 57%,#eee1d1 100%)}
.install-gate--v13 .install-gate__card{width:min(100%,740px)}
.install-gate--v13 .install-gate__header{margin-bottom:18px}.install-gate--v13 .install-gate__header h2{margin-bottom:10px;font-size:clamp(2.55rem,4vw,4.25rem)}
.install-gate--v13 .install-gate__lead{max-width:660px;font-size:.94rem;line-height:1.62}
.install-gate__invite-ready{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:center;margin:0 0 14px;padding:14px 16px;border:1px solid rgba(184,137,63,.26);border-radius:18px;background:linear-gradient(135deg,rgba(255,248,232,.96),rgba(255,255,255,.68));box-shadow:0 16px 36px rgba(89,59,31,.07)}
.install-gate__invite-ready>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(184,137,63,.14);color:#9b6c26;font-size:1rem}.install-gate__invite-ready small{display:block;margin-bottom:3px;color:#9b6c26;font:800 .55rem/1 Manrope,sans-serif;letter-spacing:.15em}.install-gate__invite-ready strong{display:block;color:#1f1814;font:760 .86rem/1.25 Manrope,sans-serif}.install-gate__invite-ready p{margin:3px 0 0;color:rgba(31,24,20,.58);font:540 .7rem/1.45 Manrope,sans-serif}
.install-gate--v13 .install-gate__device-row{margin-bottom:14px;padding:13px 15px;border-radius:17px;background:rgba(255,255,255,.54);box-shadow:none}
.install-premium-cta{margin:0 0 16px;padding:20px;border:1px solid rgba(184,85,58,.13);border-radius:26px;background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(249,234,224,.78));box-shadow:0 20px 46px rgba(85,53,32,.07)}
.install-premium-cta__seal{width:126px;height:126px;flex:0 0 126px;border-radius:34px;background:linear-gradient(145deg,#fff9f0,#f1dfce);box-shadow:0 20px 42px rgba(107,39,50,.13),inset 0 0 0 1px rgba(184,137,63,.18)}
.install-premium-cta__seal img{width:72px;height:72px}.install-premium-cta__label{bottom:-8px;padding:7px 11px;border-radius:999px;background:#6b2732;color:#fff;box-shadow:0 8px 18px rgba(107,39,50,.2);font-size:.55rem;letter-spacing:.14em}
.install-premium-cta__copy>small{color:#b8553a}.install-premium-cta__copy>strong{font-size:1.35rem;line-height:1.2}.install-premium-cta__copy>p{max-width:470px;color:rgba(31,24,20,.58);line-height:1.55}
.install-browser-section{margin:0 0 16px;padding:16px;border-radius:22px;background:rgba(255,255,255,.48);box-shadow:none}
.install-browser-section__head{margin-bottom:12px}.install-browser-section__head strong{font-size:1rem}.install-browser-section__head span{max-width:540px}
.install-browser-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}
.install-browser-card{min-height:0;padding:12px;border-radius:16px;background:rgba(255,255,255,.82)}
.install-browser-card p{min-height:0;font-size:.68rem}.install-browser-card__actions{display:none}.install-browser-card__download{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;margin-top:2px;padding:0 10px;border-radius:10px;background:#1f1814;color:#fff;text-decoration:none;font:740 .66rem/1 Manrope,sans-serif}.install-browser-card.is-recommended .install-browser-card__download{background:#b8893f}.install-browser-card.is-ok .install-browser-card__download{background:#6b8568}
.install-browser-card__flag{margin-top:4px;padding:4px 7px;font-size:.5rem}.install-browser-card__icon{width:34px;height:34px;border-radius:11px}.install-browser-card__top{grid-template-columns:34px 1fr;gap:9px}
.install-gate--v13 .install-gate__steps-card{padding:15px;border-radius:21px;background:rgba(255,255,255,.52);box-shadow:none}.install-gate--v13 .install-gate__steps-list{gap:8px}.install-gate--v13 .install-gate__steps-list li{min-height:104px;padding:12px;background:rgba(255,255,255,.88)}
.install-gate--v13 .install-gate__after{margin-bottom:8px}.install-gate--v13 .install-gate__actions{margin-top:8px}
.install-guide__sheet{width:min(100%,720px);padding:24px;border-radius:30px;background:radial-gradient(circle at 90% 4%,rgba(184,137,63,.12),transparent 28%),linear-gradient(160deg,#fffaf2,#f2e5d8);border:1px solid rgba(184,137,63,.2)}
.install-guide__head{padding-bottom:14px;border-bottom:1px solid rgba(31,24,20,.07)}.install-guide__brandline{align-items:center}.install-guide__badge{width:54px;height:54px;border-radius:18px;background:#fff}.install-guide__badge img{width:34px;height:34px}.install-guide__head h3{font-size:clamp(1.9rem,5vw,2.8rem)}
.install-guide__hero{grid-template-columns:minmax(0,1fr) 190px;margin-top:14px}.install-guide__tip{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(160deg,rgba(107,133,104,.1),rgba(255,255,255,.6));border-color:rgba(107,133,104,.16)}
.install-guide__steps li{border-radius:15px;background:rgba(255,255,255,.8)}.install-guide__steps li span{background:#6b2732}.install-guide__done,.install-guide__download{background:linear-gradient(135deg,#6b2732,#8d3542)}.install-guide__soft{background:rgba(255,255,255,.72)}

/* Les exemples vides montrent systématiquement les deux rendus. */
[data-demo-card]{position:relative}
[data-demo-card]::after{content:"Sans image";position:absolute;z-index:6;top:10px;left:10px;padding:5px 8px;border-radius:999px;background:rgba(31,24,20,.78);color:#fff;font:800 .52rem/1 Manrope,sans-serif;letter-spacing:.08em;text-transform:uppercase;pointer-events:none}
[data-demo-card]:has(img)::after{content:"Avec image";background:rgba(107,133,104,.9)}
.envie--music[data-demo-card]::after,.horizon--ritual[data-demo-card]::after{top:8px;left:8px}
.envie-lingerie__no-photo{display:grid;place-items:center;width:100%;height:100%;min-height:220px;background:radial-gradient(circle at 50% 42%,rgba(184,137,63,.12),transparent 28%),linear-gradient(145deg,#fff8f0,#ead9cc);color:#b8893f;font:500 2.2rem Fraunces,serif}
.horizon-ritual__photo{align-self:stretch;min-height:180px;border-radius:18px;overflow:hidden;border:1px solid rgba(31,24,20,.08)}.horizon-ritual__photo img{display:block;width:100%;height:100%;min-height:180px;object-fit:cover}
.horizon--ritual:has(.horizon-ritual__photo){grid-template-columns:auto minmax(0,1fr) minmax(180px,.7fr)}
@media(max-width:900px){.horizon--ritual:has(.horizon-ritual__photo){grid-template-columns:auto minmax(0,1fr)}.horizon-ritual__photo{grid-column:1/-1;min-height:150px}.horizon-ritual__photo img{min-height:150px;max-height:220px}}
@media(max-width:620px){.install-premium-cta{padding:16px;border-radius:22px}.install-premium-cta__seal{width:108px;height:108px;flex-basis:108px;border-radius:28px}.install-premium-cta__seal img{width:62px;height:62px}.install-browser-grid{grid-template-columns:1fr}.install-gate--v13 .install-gate__steps-list li{min-height:0}.install-guide__hero{grid-template-columns:1fr}.install-guide__sheet{padding:19px 15px 22px}.install-guide__tip{padding:12px}.install-gate__invite-ready{padding:12px}}

/* ═══════════════════════════════════════════════════════════════════════════
   V1 stable PWA 21 · porte d'installation simplifiée et premium
   ═══════════════════════════════════════════════════════════════════════════ */
.install-gate--v21{grid-template-columns:minmax(420px,.82fr) minmax(620px,1.18fr);background:#f6efe5}
.install-gate--v21 .install-gate__visual{min-height:100dvh}
.install-gate--v21 .install-gate__veil{background:linear-gradient(180deg,rgba(31,24,20,.08),rgba(31,24,20,.04) 44%,rgba(31,24,20,.72)),linear-gradient(90deg,rgba(31,24,20,.08),transparent 54%)}
.install-gate--v21 .install-gate__brand{top:36px;left:40px}.install-gate--v21 .install-gate__brand img{width:46px;height:46px}
.install-gate--v21 .install-gate__quote{left:40px;right:40px;bottom:46px;max-width:540px}.install-gate--v21 .install-gate__quote h1{font-size:clamp(3rem,4.5vw,5rem);line-height:.92}.install-gate--v21 .install-gate__quote p{max-width:470px}
.install-gate--v21 .install-gate__panel{padding:clamp(30px,3.8vw,58px);align-items:start;background:radial-gradient(circle at 86% 8%,rgba(184,137,63,.12),transparent 25%),linear-gradient(145deg,#fffaf4,#f6eee4 58%,#efe1d1)}
.install-gate--v21 .install-gate__card{width:min(100%,780px);margin:auto}
.install-gate__header--v21{margin-bottom:18px}.install-gate__header--v21 h2{margin:.85rem 0 .4rem;font-size:clamp(2.7rem,4vw,4.5rem)}.install-gate__header--v21 .install-gate__lead{font-size:.96rem;margin:0}
.install-focus{margin:0 0 16px;padding:18px;border:1px solid rgba(31,24,20,.075);border-radius:26px;background:rgba(255,255,255,.66);box-shadow:0 20px 55px rgba(66,44,29,.07)}
.install-focus__status{display:grid;grid-template-columns:46px auto minmax(180px,1fr);gap:12px 14px;align-items:center;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid rgba(31,24,20,.07)}
.install-focus__status-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:rgba(107,133,104,.12);color:#587154;font:800 1rem/1 Manrope,sans-serif}.install-focus__status>div{display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:baseline}.install-focus__status small{grid-column:1/-1;color:rgba(31,24,20,.42);font:800 .56rem/1 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase}.install-focus__status strong{font:760 .95rem/1.3 Manrope,sans-serif}.install-focus__status em{font:720 .64rem/1.2 Manrope,sans-serif;color:#587154;font-style:normal}.install-focus__status p{margin:0;text-align:right;color:rgba(31,24,20,.5);font:560 .71rem/1.45 Manrope,sans-serif}
.install-focus__button{width:100%;display:grid;grid-template-columns:76px minmax(0,1fr) 38px;gap:16px;align-items:center;padding:15px 17px;border:0;border-radius:22px;background:linear-gradient(135deg,#6b2732 0%,#8d3542 54%,#b8553a 100%);color:#fff;box-shadow:0 20px 42px rgba(107,39,50,.22);cursor:pointer;text-align:left;transition:transform .18s ease,box-shadow .18s ease}.install-focus__button:hover{transform:translateY(-2px);box-shadow:0 24px 48px rgba(107,39,50,.28)}.install-focus__button:active{transform:none}
.install-focus__logo{display:grid;place-items:center;width:72px;height:72px;border-radius:22px;background:#fff7ec;border:1px solid rgba(255,255,255,.5);box-shadow:inset 0 0 0 6px rgba(184,137,63,.08)}.install-focus__logo img{width:47px;height:47px}.install-focus__button-copy{display:grid;gap:3px}.install-focus__button-copy small{font:800 .57rem/1 Manrope,sans-serif;letter-spacing:.18em;opacity:.72}.install-focus__button-copy strong{font:600 clamp(1.35rem,2vw,1.7rem)/1.2 Fraunces,serif;letter-spacing:-.02em}.install-focus__button-copy em{font:700 .72rem/1.2 Manrope,sans-serif;font-style:normal;opacity:.76}.install-focus__arrow{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.12);font-size:1.25rem}
.install-focus__help{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 4px 0}.install-focus__help p{margin:0;max-width:560px;color:rgba(31,24,20,.55);font:550 .71rem/1.5 Manrope,sans-serif}.install-focus__help button{flex:0 0 auto;border:0;background:transparent;color:#8f3c2d;font:760 .7rem/1 Manrope,sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.install-gate--v21 .install-browser-section{padding:15px 16px;margin:0 0 16px;border-radius:20px;background:rgba(255,255,255,.46)}.install-gate--v21 .install-browser-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:11px}.install-gate--v21 .install-browser-section__head small{display:none}.install-gate--v21 .install-browser-section__head strong{font-size:.95rem}.install-gate--v21 .install-browser-section__head span{font-size:.67rem}.install-gate--v21 .install-browser-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.install-gate--v21 .install-browser-card{padding:11px;border-radius:15px}.install-gate--v21 .install-browser-card p{display:none}.install-gate--v21 .install-browser-card__download{min-height:32px;font-size:.61rem}.install-gate--v21 .install-browser-card__copy strong{font-size:.82rem}.install-gate--v21 .install-browser-card__copy span{font-size:.56rem}
.install-steps-min{margin:0 0 14px;padding:15px 16px;border:1px solid rgba(31,24,20,.07);border-radius:20px;background:rgba(255,255,255,.5)}.install-steps-min__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.install-steps-min__head small{color:#b8553a;font:800 .56rem/1 Manrope,sans-serif;letter-spacing:.15em}.install-steps-min__head strong{font:600 .98rem/1.3 Fraunces,serif}.install-steps-min ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.install-steps-min li{display:grid;grid-template-columns:25px 1fr;gap:8px;align-items:start;padding:10px;border-radius:13px;background:rgba(255,255,255,.78);border:1px solid rgba(31,24,20,.055)}.install-steps-min li span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#6b2732;color:#fff;font:800 .62rem/1 Manrope,sans-serif}.install-steps-min li p{margin:1px 0 0;color:rgba(31,24,20,.62);font:550 .68rem/1.45 Manrope,sans-serif}
.install-gate__footer-v21{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding-top:2px}.install-gate__footer-v21>div:first-child{display:grid;grid-template-columns:28px 1fr;gap:9px;align-items:center}.install-gate__footer-v21>div:first-child>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(107,133,104,.1);color:#587154}.install-gate__footer-v21 p{margin:0;color:rgba(31,24,20,.52);font:550 .68rem/1.45 Manrope,sans-serif}.install-gate--v21 .install-gate__actions{display:flex;gap:10px;margin:0;padding:0;border:0}.install-gate--v21 .install-gate__actions button{min-height:34px;padding:0;border:0;background:transparent;color:rgba(31,24,20,.46);font:680 .64rem/1 Manrope,sans-serif}
@media(max-width:1180px){.install-gate--v21{grid-template-columns:minmax(350px,.72fr) minmax(560px,1.28fr)}.install-gate--v21 .install-gate__panel{padding:30px}.install-gate--v21 .install-browser-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.install-gate--v21{display:block}.install-gate--v21 .install-gate__visual{min-height:300px;max-height:330px}.install-gate--v21 .install-gate__panel{min-height:auto;padding:28px 18px 40px}.install-gate--v21 .install-gate__quote h1{font-size:2.6rem}.install-gate--v21 .install-gate__quote p{display:none}.install-gate--v21 .install-browser-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.install-gate--v21 .install-gate__visual{min-height:235px;max-height:255px}.install-gate--v21 .install-gate__brand{top:17px;left:18px}.install-gate--v21 .install-gate__quote{left:18px;right:18px;bottom:20px}.install-gate--v21 .install-gate__quote h1{font-size:2rem}.install-gate--v21 .install-gate__panel{padding:22px 12px 32px}.install-gate__header--v21 h2{font-size:2.35rem}.install-focus{padding:13px;border-radius:21px}.install-focus__status{grid-template-columns:40px 1fr;padding-bottom:11px}.install-focus__status-icon{width:38px;height:38px}.install-focus__status p{grid-column:1/-1;text-align:left;padding-left:50px;margin-top:-4px}.install-focus__button{grid-template-columns:58px minmax(0,1fr) 30px;gap:11px;padding:12px;border-radius:18px}.install-focus__logo{width:56px;height:56px;border-radius:17px}.install-focus__logo img{width:38px;height:38px}.install-focus__button-copy strong{font-size:1.2rem}.install-focus__help{align-items:flex-start;flex-direction:column;gap:5px}.install-gate--v21 .install-browser-section__head{align-items:flex-start;flex-direction:column;gap:2px}.install-gate--v21 .install-browser-grid{grid-template-columns:1fr}.install-steps-min__head{align-items:flex-start;flex-direction:column;gap:4px}.install-steps-min ol{grid-template-columns:1fr}.install-gate__footer-v21{grid-template-columns:1fr}.install-gate--v21 .install-gate__actions{justify-content:space-between}.install-gate--v21 .install-browser-card p{display:block}}

/* ═══ V1 stable PWA 22 · partage d'invitation simplifié ═══ */
.pairing-link-preview{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:3px 12px;align-items:center;padding:14px 15px;border:1px solid color-mix(in srgb,var(--gold) 24%,var(--line));border-radius:17px;background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 7%,#fffdf9),#fffaf5)}
.pairing-link-preview small{grid-column:1/-1;font:800 .52rem var(--font-body);letter-spacing:.18em;color:var(--terra)}
.pairing-link-preview strong{font:700 .82rem var(--font-body);color:var(--ink)}
.pairing-link-preview span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:.68rem var(--font-body);color:var(--ink-muted)}
.pairing-link-preview a{grid-row:2;grid-column:3;text-decoration:none;color:var(--wine);font:750 .68rem var(--font-body);white-space:nowrap}
.pairing-share-grid--simple .pairing-action--primary{grid-column:1/-1;min-height:82px;background:linear-gradient(135deg,color-mix(in srgb,var(--terra) 15%,var(--paper)),color-mix(in srgb,var(--gold) 14%,var(--paper)));border-color:color-mix(in srgb,var(--terra) 30%,var(--line))}
.pairing-share-grid--simple .pairing-action--primary strong{font-size:.84rem}
@media(max-width:560px){.pairing-link-preview{grid-template-columns:minmax(0,1fr) auto}.pairing-link-preview strong,.pairing-link-preview span{grid-column:1}.pairing-link-preview a{grid-column:2;grid-row:2/4}.pairing-share-grid--simple .pairing-action--primary{grid-column:auto}}


/* V1 stable PWA 23 · contraste éditorial renforcé */
.world-section__head p,.settings__intro p,.settings__card p,.card__text,.envie p,.horizon p,.capsule p,.echo-phrase p,.recent-card p{color:var(--ink-soft)}
.card__meta,.envie__meta,.horizon__meta,.capsule__meta,.tile small,.category-heading p,.jump__caption{color:var(--ink-muted)}
.world-empty,.empty-state p{color:var(--ink-muted)}
@media(max-width:620px){
  .world-section__head p{font-size:.9rem;line-height:1.55}
  .card__text,.envie p,.horizon p,.capsule p{font-size:max(.8rem,13px);line-height:1.58}
  .card__meta,.envie__meta,.horizon__meta,.capsule__meta,small{font-size:max(.72rem,11.5px)}
}

/* ═══ V1 stable PWA 24 · partage invitation clair ═══ */
.pairing-pass--v24 .pairing-pass__top p b{color:var(--ink);font-weight:750}
.pairing-pass--v24 .pairing-pass__visual>strong{display:block;margin:12px 0 4px;font:700 .76rem var(--font-body);color:var(--ink)}
.pairing-invite-summary{display:grid;gap:9px;margin-bottom:12px}
.pairing-invite-summary__row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 13px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--paper) 92%,white)}
.pairing-invite-summary__row>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--terra) 10%,var(--paper));color:var(--terra);font:800 .66rem var(--font-body)}
.pairing-invite-summary__row small,.pairing-invite-summary__direct small{display:block;margin-bottom:4px;font:800 .52rem var(--font-body);letter-spacing:.16em;color:var(--terra)}
.pairing-invite-summary__row strong{display:block;min-width:0;overflow-wrap:anywhere;font:700 .78rem/1.35 var(--font-body);color:var(--ink)}
.pairing-invite-summary__row a,.pairing-invite-summary__row button{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--wine);text-decoration:none;font:750 .66rem var(--font-body);cursor:pointer;white-space:nowrap}
.pairing-invite-code{font-family:var(--font-mono)!important;letter-spacing:.025em}
.pairing-invite-summary__direct{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 15px;border:1px solid color-mix(in srgb,var(--gold) 28%,var(--line));border-radius:17px;background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 8%,#fffdf9),#fff7ef)}
.pairing-invite-summary__direct strong{display:block;font:700 .86rem var(--font-body);color:var(--ink)}
.pairing-invite-summary__direct p{margin:4px 0 0;color:var(--ink-muted);font:.7rem/1.5 var(--font-body)}
.pairing-invite-summary__direct a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 13px;border-radius:12px;background:var(--wine);color:#fff;text-decoration:none;font:750 .68rem var(--font-body);white-space:nowrap}
.pairing-pass__privacy{margin:10px 2px 0;padding:10px 12px;border-left:2px solid color-mix(in srgb,var(--sage) 60%,transparent);background:color-mix(in srgb,var(--sage) 6%,transparent);color:var(--ink-muted);font:.67rem/1.5 var(--font-body)}
.pairing-pass__privacy b{color:var(--ink);font-weight:750}
@media(max-width:620px){.pairing-invite-summary__row{grid-template-columns:30px minmax(0,1fr)}.pairing-invite-summary__row>a,.pairing-invite-summary__row>button{grid-column:2;justify-self:start}.pairing-invite-summary__direct{grid-template-columns:1fr}.pairing-invite-summary__direct a{width:100%}}

/* ═══════════════════════════════════════════════════════════════════════════
   V1 stable PWA 25 · vraie composition mobile
   ═══════════════════════════════════════════════════════════════════════════ */
@media(max-width:760px){
  :root{--mobilenav-h:68px}
  body{background:var(--paper);color:var(--ink)}
  .topbar{height:58px;min-height:58px;padding:0 12px;gap:8px;background:var(--paper);border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}
  .brand{gap:9px;min-width:0}.brand__mark{width:36px;height:36px;flex-basis:36px}.brand__name{font-size:.98rem}.brand__copy small{display:none}
  .topbar__end{gap:6px}.avatar-btn,.icon-btn{width:38px;height:38px;min-width:38px;min-height:38px}
  .recent-nav{display:none}
  .stage{background:var(--paper-warm)}
  .world{padding-bottom:calc(var(--mobilenav-h) + env(safe-area-inset-bottom,0px) + 14px);background:linear-gradient(180deg,var(--paper-warm),var(--paper))}
  .mobilenav{height:calc(var(--mobilenav-h) + env(safe-area-inset-bottom,0px));background:var(--paper);border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent);box-shadow:0 -12px 30px -26px rgba(31,24,20,.34)}
  .mobilenav button{min-height:62px;padding:6px 2px 4px;gap:2px;color:var(--ink-muted)}
  .mobilenav button .topnav__ic{width:29px;height:29px;font-size:1rem}
  .mobilenav button small{font-size:.63rem;line-height:1.1;font-weight:700}
  .mobilenav button.is-active .topnav__ic{transform:none;background:var(--terra-soft)}

  .world-page{min-height:100%}
  .world-inner{width:100%;padding-inline:14px;margin:0 auto}
  .world-section{padding:26px 0 30px}
  .world-section__head{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:18px;padding-bottom:14px}
  .world-section__head>div{min-width:0}.world-section__head small{font-size:.6rem;letter-spacing:.18em;margin-bottom:6px}.world-section__head h2{font-size:1.7rem;line-height:1.06}.world-section__head p{margin-top:6px;font-size:.91rem;line-height:1.55;color:var(--ink-soft)}
  .world-section__head .btn,.world-section__head button{justify-self:start;width:auto;max-width:100%}

  .hero{min-height:0;height:auto;display:block;border-radius:0;margin:0;overflow:hidden}
  .hero__media{inset:0;height:100%;transform:none!important}.hero__media img{min-height:100%;object-fit:cover;object-position:center;animation:none!important}
  .hero__shade{background:linear-gradient(180deg,rgba(20,12,16,.22) 0%,rgba(20,12,16,.48) 44%,rgba(20,12,16,.86) 100%)}
  .hero__inner{height:auto;min-height:360px;padding:64px 18px 28px;display:flex;flex-direction:column;justify-content:flex-end;gap:16px}
  .hero__copy{max-width:none;animation:none!important}.hero__kicker{margin-bottom:10px;font-size:.6rem;letter-spacing:.18em;animation:none!important}.hero__kicker::before{width:18px;margin-right:8px;animation:none!important}
  .hero h1{font-size:clamp(2.25rem,10.5vw,3.15rem);line-height:.96;margin-bottom:12px;animation:none!important}.hero__text{font-size:.92rem;line-height:1.55;max-width:38ch;color:rgba(255,250,243,.92);animation:none!important}.hero__signature{display:none}
  .hero__aside{display:none}

  .jump{position:sticky;top:0;z-index:9;display:flex;gap:8px;overflow-x:auto;margin:0 -14px;padding:10px 14px;background:color-mix(in srgb,var(--paper-warm) 96%,transparent);border-bottom:1px solid var(--line);scrollbar-width:none;overscroll-behavior-inline:contain}.jump::-webkit-scrollbar{display:none}.jump__caption{display:none}.jump__category{flex:0 0 auto;min-height:40px;padding:7px 11px!important;border-radius:999px!important;background:var(--paper)!important;font-size:.72rem!important;white-space:nowrap}.jump__category-icon{width:24px;height:24px}

  .cards,.cards--books,.cards--gift,.cards--film,.cards--game,.cards--lingerie,.cards--custom,.horizons-idea,.horizons-ritual,.horizons-custom,.capsules-grid{grid-template-columns:1fr!important;gap:14px!important;max-width:none!important;width:100%!important}
  .card,.envie,.horizon,.capsule,.echo-phrase,.echo-book,.echo-text{border-radius:20px!important;box-shadow:0 8px 24px rgba(31,24,20,.055)!important}
  .menu-btn{width:40px;height:40px;min-width:40px;min-height:40px}

  .nous-timeline{gap:24px;padding-left:0}.nous-timeline::before{display:none}.nous-timeline__year{position:static;padding:10px 0 0;gap:12px;background:none}.nous-timeline__year span{font-size:2.25rem}.memory-card,.memory-card--text{width:100%!important;max-width:none!important;margin:0!important;border-radius:22px!important}.memory-card .card__body,.memory-card--text .card__body{padding:20px 17px!important}.memory-card--text .memory-copy{padding:20px 17px}.memory-card--text .card__title{font-size:1.85rem!important}.memory-card--text .card__text{font-size:1rem!important;line-height:1.72!important}

  .envie--book{gap:12px}.envie-book__shelf{min-height:0}.envie-book__cover{max-width:220px;margin-inline:auto}.envie-book__info{padding-inline:3px}
  .envie--lingerie{width:100%;border-radius:22px!important}.envie-lingerie__stage{aspect-ratio:4/4.8}.envie-lingerie__info{padding:18px}
  .envie--music{grid-template-columns:64px minmax(0,1fr) 34px!important;gap:10px;padding:12px;border-radius:18px!important}.envie-music__sleeve{width:64px;height:64px}.envie-music__disc{width:56px;height:56px}.envie-music__play{width:34px;height:34px}
  .envie--wish{grid-template-columns:34px minmax(0,1fr)!important;gap:10px 12px;padding:18px 0}.envie-wish__num{font-size:1rem}.envie-wish__photo{grid-column:1/-1;width:100%;height:auto;aspect-ratio:16/9;margin-top:2px;border-radius:16px;overflow:hidden}.envie-wish__photo img{width:100%;height:100%;object-fit:cover}
  .envie--gift,.envie--game{overflow:hidden}.envie-gift__box,.envie-game__art{aspect-ratio:16/10}.envie-film__poster{aspect-ratio:4/5;max-height:none}.envie-film__title{font-size:1.45rem}

  .horizon--project{display:grid;grid-template-columns:1fr!important;border-radius:20px!important}.horizon-project__copy{padding:19px}.horizon-project__frame{width:100%;height:auto;aspect-ratio:16/9;order:-1}.horizon-project__frame img{width:100%;height:100%;object-fit:cover}
  .horizon--ritual{grid-template-columns:1fr!important;gap:12px;padding:18px}.horizon-ritual__dial{display:grid;grid-template-columns:60px minmax(0,1fr);align-items:center;justify-items:start}.horizon-ritual__ring{max-width:100%}.horizon-ritual__photo{width:100%;aspect-ratio:16/9;border-radius:15px;overflow:hidden}.horizon-ritual__photo img{width:100%;height:100%;object-fit:cover}
  .horizon--idea{padding:17px}.horizon-idea__photo{margin:-17px -17px 15px;aspect-ratio:16/9}.horizon-idea__photo img{width:100%;height:100%;object-fit:cover}

  .capsule{padding:18px}.capsule__photo{margin:-18px -18px 16px;aspect-ratio:16/9}.capsule__photo img{width:100%;height:100%;object-fit:cover}
  .capsules-bar{display:grid!important;grid-template-columns:1fr!important;gap:10px}.capsules-bar>div{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}.capsules-bar .btn{width:100%}

  .echoes-grid{grid-template-columns:1fr;gap:14px}.echo-phrase,.echo-book{padding:18px}.echo-prose__columns{grid-template-columns:1fr!important}.echo-prose__axis{display:none!important}.echo-text{padding:0}.echo-prose__head,.echo-prose__folio,.echo-prose__foot{padding-inline:18px}.echo-prose__head{padding-top:20px}.echo-prose__folio{padding-bottom:18px}

  .settings{min-height:100%}.settings__layout{display:block!important}.settings__nav{position:sticky;top:0;z-index:12;width:auto!important;max-width:none!important;margin:0;padding:8px 12px;background:var(--paper);border-bottom:1px solid var(--line);overflow-x:auto;white-space:nowrap;scrollbar-width:none}.settings__nav::-webkit-scrollbar{display:none}.settings__links{display:flex!important;gap:7px!important;margin:0!important;padding:0!important;overflow:visible!important}.settings__links button{flex:0 0 auto;min-height:40px;padding:8px 12px;border-radius:999px}.settings__content{padding:18px 14px calc(var(--mobilenav-h) + 28px)}.settings__head{margin-bottom:18px}.settings__head h3{font-size:1.65rem}.settings__card{padding:17px!important;border-radius:20px!important}.settings__grid,.settings__grid--2,.settings__grid--3{grid-template-columns:1fr!important}.manage-overview-stats{grid-template-columns:1fr 1fr!important}.manage-overview-actions,.manage-overview-links{grid-template-columns:1fr!important}

  .btn{min-height:44px;border-radius:14px}.btn--compact{min-height:40px}.row{align-items:flex-start}.row__copy{min-width:0}.row__actions{display:grid!important;grid-template-columns:1fr!important;width:100%}.row__actions .btn{width:100%}
  .modal{padding:0!important;align-items:flex-end!important}.modal__card{width:100%!important;max-width:none!important;max-height:94dvh!important;border-radius:24px 24px 0 0!important;padding:20px 16px calc(20px + env(safe-area-inset-bottom,0px))!important}.modal__card--studio{height:100dvh!important;max-height:100dvh!important;border-radius:0!important;padding:0!important}.modal__head h2{font-size:1.5rem}.modal__foot{position:sticky;bottom:0;background:var(--paper);padding-top:10px;padding-bottom:env(safe-area-inset-bottom,0px)}

  p,.card__text,.envie__text,.horizon__text,.capsule__text{overflow-wrap:anywhere}.envie__title,.horizon__title,.capsule__title,.card__title{overflow-wrap:anywhere}
}
@media(max-width:390px){
  .world-inner{padding-inline:12px}.jump{margin-inline:-12px;padding-inline:12px}.hero__inner{padding-inline:16px}.hero h1{font-size:2.2rem}.brand__name{max-width:118px}.mobilenav button small{font-size:.59rem}.manage-overview-stats{grid-template-columns:1fr!important}
}

/* ═══════════════════════════════════════════════════════════════════════════
   V26 · correction mise en page Rituels
   ═══════════════════════════════════════════════════════════════════════════ */
.horizons-ritual{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}
.horizon--ritual{
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  gap:22px;
  align-items:center;
  min-width:0;
  padding:24px;
  overflow:hidden;
}
.horizon--ritual:has(.horizon-ritual__photo){grid-template-columns:132px minmax(0,1fr) minmax(190px,240px)}
.horizon-ritual__dial{
  box-sizing:border-box;
  width:132px;
  min-width:132px;
  max-width:132px;
  min-height:164px;
  padding:14px 10px 12px;
  display:grid;
  grid-template-columns:1fr;
  align-content:center;
  justify-items:center;
  gap:10px;
  overflow:hidden;
  border-radius:22px;
}
.horizon--ritual .horizon-ritual__icon{
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  font-size:1.12rem;
  flex:none;
}
.horizon-ritual__ring{
  width:100%;
  max-width:112px;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:3px;
}
.horizon-ritual__ring i{
  box-sizing:border-box;
  width:auto;
  min-width:0;
  min-height:22px;
  padding:0;
  border-radius:7px;
  font-size:.56rem;
  line-height:1;
}
.horizon-ritual__hour{
  display:block;
  max-width:100%;
  font-size:clamp(1.7rem,2.2vw,2.15rem);
  line-height:1;
  white-space:nowrap;
}
.horizon-ritual__copy{gap:10px;min-width:0;align-self:center}
.horizon--ritual .horizon__kicker{font-size:.67rem;line-height:1.25;letter-spacing:.15em}
.horizon--ritual .horizon__title{margin:0;font-size:clamp(1.45rem,2vw,2rem);line-height:1.08}
.horizon-ritual__schedule{font-size:.78rem;line-height:1.45}
.horizon--ritual .horizon__text{margin:0;font-size:.86rem;line-height:1.55}
.horizon-ritual__photo{
  width:100%;
  min-width:0;
  min-height:0;
  height:100%;
  max-height:210px;
  aspect-ratio:4/3;
  align-self:center;
  border-radius:18px;
  overflow:hidden;
}
.horizon-ritual__photo img{display:block;width:100%;height:100%;min-height:0;max-height:none;object-fit:cover}
.horizon--ritual[data-demo-card]::after{top:12px;left:12px;background:rgba(31,24,20,.74);backdrop-filter:blur(6px)}
.horizon--ritual[data-demo-card]:has(img)::after{background:rgba(107,133,104,.92)}

@media(max-width:1180px){
  .horizons-ritual{grid-template-columns:1fr}
  .horizon--ritual:has(.horizon-ritual__photo){grid-template-columns:132px minmax(0,1fr) minmax(200px,280px)}
}
@media(max-width:760px){
  .horizon--ritual,.horizon--ritual:has(.horizon-ritual__photo){
    grid-template-columns:1fr!important;
    gap:14px;
    padding:17px;
  }
  .horizon-ritual__dial{
    width:100%;min-width:0;max-width:none;min-height:0;
    grid-template-columns:48px minmax(0,1fr) auto;
    align-items:center;justify-items:stretch;
    padding:12px 13px;gap:10px;border-radius:16px;
  }
  .horizon--ritual .horizon-ritual__icon{width:42px;height:42px;min-width:42px;min-height:42px}
  .horizon-ritual__ring{max-width:none;width:100%}
  .horizon-ritual__hour{justify-self:end;font-size:1.55rem}
  .horizon-ritual__photo{grid-column:auto;width:100%;height:auto;max-height:none;aspect-ratio:16/9;border-radius:15px;order:-1}
  .horizon-ritual__copy{gap:8px}
  .horizon--ritual .horizon__title{font-size:1.55rem}
}
@media(max-width:420px){
  .horizon-ritual__dial{grid-template-columns:42px minmax(0,1fr);gap:8px}
  .horizon-ritual__hour{grid-column:1/-1;justify-self:start;padding-left:50px;font-size:1.45rem}
  .horizon-ritual__ring i{font-size:.52rem;min-height:21px}
}

/* ═══════════════════════════════════════════════════════════════════════════
   V27 · Rituels — correction définitive du conflit pseudo-élément / démo
   Le ::after décoratif historique entrait en conflit avec le badge
   « Avec image / Sans image » et héritait de 180×180px + border-radius:50%.
   ═══════════════════════════════════════════════════════════════════════════ */
.horizon--ritual[data-demo-card]::after{
  content:"Sans image";
  position:absolute;
  z-index:8;
  top:12px;
  right:12px;
  bottom:auto;
  left:auto;
  inset:auto 12px auto auto;
  width:auto;
  height:auto;
  min-width:0;
  min-height:0;
  padding:6px 9px;
  border:0;
  border-radius:999px;
  background:rgba(31,24,20,.78);
  color:#fff;
  font:800 .52rem/1 Manrope,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 8px 20px rgba(31,24,20,.12);
  backdrop-filter:blur(6px);
  pointer-events:none;
  transform:none;
}
.horizon--ritual[data-demo-card]:has(.horizon-ritual__photo)::after{
  content:"Avec image";
  background:rgba(107,133,104,.94);
}
/* Le halo décoratif n'utilise plus ::after sur les cartes de démonstration. */
.horizon--ritual[data-demo-card]::before{
  content:"";
  position:absolute;
  z-index:0;
  right:-70px;
  bottom:-82px;
  width:190px;
  height:190px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.2),transparent 70%);
  pointer-events:none;
}
.horizon--ritual[data-demo-card]>*{position:relative;z-index:1}
.horizon--ritual[data-demo-card] .horizon-ritual__dial,
.horizon--ritual[data-demo-card] .horizon-ritual__copy,
.horizon--ritual[data-demo-card] .horizon-ritual__photo{z-index:1}

/* Mise en page plus calme : le cadran devient un vrai bloc compact et ne peut
   plus déborder dans le contenu, même si d'anciens styles restent en cache. */
.horizon--ritual .horizon-ritual__dial{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  height:auto!important;
  min-height:156px!important;
  padding:16px 10px 13px!important;
  border-radius:20px!important;
  box-sizing:border-box!important;
  transform:none!important;
}
.horizon--ritual .horizon-ritual__icon{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  max-width:42px!important;
  max-height:42px!important;
  border-radius:50%!important;
  transform:none!important;
}
.horizon--ritual .horizon-ritual__ring{
  width:108px!important;
  max-width:108px!important;
  min-width:0!important;
  height:auto!important;
  transform:none!important;
}
.horizon--ritual .horizon-ritual__ring i{
  width:auto!important;
  min-width:0!important;
  height:22px!important;
  min-height:22px!important;
  max-height:22px!important;
  border-radius:7px!important;
}
.horizon--ritual .horizon-ritual__hour{
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
  font-size:1.9rem!important;
  line-height:1!important;
}

@media(max-width:760px){
  .horizon--ritual .horizon-ritual__dial{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:0!important;
    grid-template-columns:42px minmax(0,1fr) auto!important;
    padding:12px 13px!important;
  }
  .horizon--ritual .horizon-ritual__ring{width:100%!important;max-width:none!important}
  .horizon--ritual .horizon-ritual__hour{font-size:1.5rem!important;justify-self:end!important}
  .horizon--ritual[data-demo-card]::after{top:10px;right:10px}
}
@media(max-width:420px){
  .horizon--ritual .horizon-ritual__dial{grid-template-columns:42px minmax(0,1fr)!important}
  .horizon--ritual .horizon-ritual__hour{grid-column:1/-1!important;justify-self:start!important;padding-left:50px!important;font-size:1.4rem!important}
}

/* ═══════════════════════════════════════════════════════════════════════════
   V30 · Le fil de nos retrouvailles
   Fresque romantique dynamique depuis les événements « Ensemble » du calendrier.
   ═══════════════════════════════════════════════════════════════════════════ */
.reunion-story{position:relative;margin:clamp(28px,5vw,70px) auto;padding:clamp(24px,3vw,38px);width:min(calc(100% - 40px),1440px);border:1px solid color-mix(in srgb,var(--gold) 28%,var(--line));border-radius:32px;background:radial-gradient(circle at 88% 10%,color-mix(in srgb,var(--rose,#dca5a3) 15%,transparent),transparent 25%),radial-gradient(circle at 10% 90%,color-mix(in srgb,var(--sage) 10%,transparent),transparent 28%),linear-gradient(145deg,color-mix(in srgb,var(--paper) 92%,white),color-mix(in srgb,var(--paper) 84%,#ecd9ca));box-shadow:0 28px 80px -58px rgba(31,24,20,.46);overflow:hidden}
.reunion-story::before,.reunion-story::after{content:"";position:absolute;pointer-events:none;border-radius:50%;border:1px solid color-mix(in srgb,var(--gold) 20%,transparent)}
.reunion-story::before{width:240px;height:240px;right:-120px;top:-110px}.reunion-story::after{width:130px;height:130px;left:-70px;bottom:-60px}
.reunion-story__head{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:28px;align-items:end;margin-bottom:28px}.reunion-story__title>small{display:block;margin-bottom:8px;color:var(--terra);font:800 .62rem/1 var(--font-body);letter-spacing:.18em}.reunion-story__title h2{margin:0 0 10px;max-width:820px;font:500 clamp(2.15rem,4vw,4.3rem)/.98 var(--font-display);letter-spacing:-.045em;color:var(--ink)}.reunion-story__title h2 em{font-family:Italiana,var(--font-display);font-weight:400;color:var(--terra)}.reunion-story__title p{margin:0;max-width:700px;color:var(--ink-muted);font:.9rem/1.65 var(--font-body)}
.reunion-story__metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px;border:1px solid color-mix(in srgb,var(--gold) 18%,var(--line));border-radius:22px;background:color-mix(in srgb,var(--paper) 78%,transparent);backdrop-filter:blur(10px)}.reunion-story__metrics>span{min-width:0;padding:13px 10px;text-align:center;border-radius:16px;background:color-mix(in srgb,var(--paper) 85%,white)}.reunion-story__metrics b{display:block;font:500 clamp(1.55rem,2.5vw,2.2rem)/1 var(--font-display);color:var(--wine)}.reunion-story__metrics small{display:block;margin-top:5px;color:var(--ink-muted);font:700 .58rem/1.35 var(--font-body);letter-spacing:.06em;text-transform:uppercase}
.reunion-story__rail-wrap{position:relative;z-index:1}.reunion-story__line{position:absolute;left:0;right:0;top:34px;height:1px;background:color-mix(in srgb,var(--gold) 28%,transparent);overflow:hidden}.reunion-story__line i{display:block;width:100%;height:100%;transform-origin:left;background:linear-gradient(90deg,var(--gold),var(--terra),var(--gold));animation:reunionLineReveal 1.2s cubic-bezier(.22,.78,.2,1) both}
.reunion-story__rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,300px);gap:14px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:0 2px 14px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--gold) 38%,transparent) transparent}.reunion-story__card{position:relative;scroll-snap-align:start;display:grid;grid-template-rows:178px auto;min-height:340px;border:1px solid color-mix(in srgb,var(--gold) 16%,var(--line));border-radius:24px;background:color-mix(in srgb,var(--paper) 90%,white);box-shadow:0 18px 42px -34px rgba(31,24,20,.5);overflow:hidden;opacity:0;transform:translateY(12px);animation:reunionCardIn .55s var(--reunion-delay,0ms) ease forwards}.reunion-story__card::before{content:"";position:absolute;z-index:3;top:27px;left:18px;width:12px;height:12px;border-radius:50%;background:var(--gold);border:4px solid color-mix(in srgb,var(--paper) 94%,white);box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 42%,transparent),0 0 0 7px color-mix(in srgb,var(--gold) 8%,transparent)}.reunion-story__card.is-latest::before{background:var(--terra);box-shadow:0 0 0 1px color-mix(in srgb,var(--terra) 45%,transparent),0 0 0 8px color-mix(in srgb,var(--terra) 9%,transparent)}.reunion-story__card.is-upcoming{border-style:dashed;background:color-mix(in srgb,var(--paper) 82%,#fff8ef)}
.reunion-story__media{position:relative;display:block;width:100%;height:178px;padding:0;border:0;background:#ddd;cursor:pointer;overflow:hidden}.reunion-story__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.025);transition:transform .75s cubic-bezier(.2,.8,.2,1),filter .3s ease;filter:saturate(.9) contrast(.95)}.reunion-story__card:hover .reunion-story__media img{transform:scale(1.075);filter:saturate(1) contrast(1)}.reunion-story__media-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,24,20,.03),rgba(31,24,20,.04) 45%,rgba(31,24,20,.58))}.reunion-story__status{position:absolute;left:14px;bottom:13px;padding:6px 9px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(31,24,20,.36);backdrop-filter:blur(8px);color:#fff;font:800 .56rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase}.reunion-story__ordinal{position:absolute;right:13px;bottom:10px;color:rgba(255,255,255,.94);font:400 1.55rem/1 var(--font-display)}
.reunion-story__body{display:flex;flex-direction:column;padding:18px 17px 16px}.reunion-story__body>small{color:var(--terra);font:800 .58rem/1.3 var(--font-body);letter-spacing:.12em;text-transform:uppercase}.reunion-story__body h3{margin:8px 0 7px;font:500 1.34rem/1.08 var(--font-display);letter-spacing:-.02em;color:var(--ink)}.reunion-story__body p{margin:0 0 14px;color:var(--ink-muted);font:.75rem/1.5 var(--font-body)}.reunion-story__link{margin-top:auto;padding:0;border:0;background:none;color:var(--wine);text-align:left;font:750 .69rem/1.3 var(--font-body);cursor:pointer}.reunion-story__link span{display:inline-block;margin-left:4px;transition:transform .2s ease}.reunion-story__link:hover span{transform:translate(2px,-2px)}
.reunion-story__footer{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--gold) 18%,var(--line))}.reunion-story__footer>div{display:grid;gap:3px}.reunion-story__footer .is-right{text-align:right}.reunion-story__footer span{color:var(--ink-faint);font:750 .56rem/1.2 var(--font-body);letter-spacing:.12em;text-transform:uppercase}.reunion-story__footer strong{color:var(--ink);font:650 .76rem/1.35 var(--font-body)}
.reunion-story--empty{display:flex;align-items:center;justify-content:space-between;gap:20px}.reunion-story--empty small{color:var(--terra);font:800 .6rem var(--font-body);letter-spacing:.16em}.reunion-story--empty h2{margin:.5rem 0;font:500 2rem/1 var(--font-display)}.reunion-story--empty h2 em{font-family:Italiana,var(--font-display);font-weight:400;color:var(--terra)}.reunion-story--empty p{margin:0;color:var(--ink-muted);font:.84rem/1.55 var(--font-body)}
@keyframes reunionLineReveal{from{transform:scaleX(0);opacity:.2}to{transform:scaleX(1);opacity:1}}
@keyframes reunionCardIn{to{opacity:1;transform:none}}
@media(max-width:980px){.reunion-story{width:min(calc(100% - 28px),1440px);padding:24px}.reunion-story__head{grid-template-columns:1fr;gap:18px}.reunion-story__metrics{max-width:620px}.reunion-story__rail{grid-auto-columns:minmax(235px,72vw)}}
@media(max-width:620px){.reunion-story{width:calc(100% - 20px);margin:22px auto;padding:18px 14px 16px;border-radius:24px}.reunion-story__title>small{font-size:.56rem}.reunion-story__title h2{font-size:2.15rem}.reunion-story__title p{font-size:.82rem}.reunion-story__metrics{grid-template-columns:repeat(3,1fr);padding:5px;border-radius:17px;backdrop-filter:none}.reunion-story__metrics>span{padding:10px 5px;border-radius:13px}.reunion-story__metrics b{font-size:1.48rem}.reunion-story__metrics small{font-size:.49rem;letter-spacing:.03em}.reunion-story__line{top:28px}.reunion-story__rail{grid-auto-columns:82vw;gap:10px;padding-bottom:10px;scroll-snap-type:x mandatory}.reunion-story__card{grid-template-rows:150px auto;min-height:305px;border-radius:20px;animation:none;opacity:1;transform:none}.reunion-story__card::before{top:21px;left:15px;width:10px;height:10px}.reunion-story__media{height:150px}.reunion-story__body{padding:15px}.reunion-story__body h3{font-size:1.22rem}.reunion-story__footer{grid-template-columns:1fr auto;padding-top:14px}.reunion-story__footer .is-right{display:none}.reunion-story__footer .btn{min-height:40px;padding-inline:12px}.reunion-story--empty{display:grid}.reunion-story--empty .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.reunion-story__line i,.reunion-story__card{animation:none!important;opacity:1;transform:none}.reunion-story__media img{transition:none}}

/* V32 · Fresque retrouvailles : visuels robustes + trajet explicite */
.reunion-story__media{
  background-image:var(--reunion-art);
  background-size:cover;
  background-position:center;
}
.reunion-story__media img{
  position:relative;
  z-index:1;
  background:transparent;
}
.reunion-story__media-shade,
.reunion-story__status,
.reunion-story__ordinal{z-index:2}
.reunion-story__route{display:block;color:var(--terra)!important;font-weight:800!important}
@media(max-width:620px){
  .reunion-story__route{font-size:.56rem!important;letter-spacing:.08em!important}
}


/* ═══════════════════════════════════════════════════════════════
   V33 · Nos retrouvailles — constellation dynamique sans images
   ═══════════════════════════════════════════════════════════════ */
.reunion-journey{position:relative;width:min(calc(100% - 40px),1440px);margin:clamp(28px,5vw,72px) auto;padding:clamp(24px,3.5vw,46px);overflow:hidden;border:1px solid color-mix(in srgb,var(--gold) 30%,var(--line));border-radius:34px;background:radial-gradient(circle at 15% 15%,color-mix(in srgb,var(--terra) 10%,transparent),transparent 28%),radial-gradient(circle at 85% 82%,color-mix(in srgb,var(--sage) 12%,transparent),transparent 30%),linear-gradient(145deg,color-mix(in srgb,var(--paper) 96%,white),color-mix(in srgb,var(--paper) 83%,#ead8cb));box-shadow:0 32px 90px -64px rgba(31,24,20,.5)}
.reunion-journey::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 32%,color-mix(in srgb,var(--gold) 22%,transparent) 0 1px,transparent 1.5px),radial-gradient(circle at 72% 18%,color-mix(in srgb,var(--wine) 18%,transparent) 0 1px,transparent 1.5px),radial-gradient(circle at 56% 72%,color-mix(in srgb,var(--sage) 24%,transparent) 0 1px,transparent 1.5px);background-size:88px 88px,120px 120px,146px 146px;opacity:.75;animation:journeyDrift 22s linear infinite alternate}
.reunion-journey__head{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:28px;align-items:end;margin-bottom:26px}.reunion-journey__head>div:first-child>small{display:block;margin-bottom:8px;color:var(--terra);font:800 .62rem/1 var(--font-body);letter-spacing:.2em}.reunion-journey__head h2{margin:0 0 10px;font:500 clamp(2.2rem,4vw,4.4rem)/.98 var(--font-display);letter-spacing:-.045em}.reunion-journey__head h2 em{font-family:Italiana,var(--font-display);font-weight:400;color:var(--terra)}.reunion-journey__head p{margin:0;max-width:720px;color:var(--ink-muted);font:.9rem/1.65 var(--font-body)}
.reunion-journey__metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;border:1px solid color-mix(in srgb,var(--gold) 22%,var(--line));border-radius:22px;background:color-mix(in srgb,var(--paper) 80%,transparent)}.reunion-journey__metrics span{padding:13px 8px;border-radius:16px;text-align:center;background:color-mix(in srgb,var(--paper) 88%,white)}.reunion-journey__metrics b{display:block;color:var(--wine);font:500 clamp(1.55rem,2.6vw,2.3rem)/1 var(--font-display)}.reunion-journey__metrics small{display:block;margin-top:5px;color:var(--ink-muted);font:750 .55rem/1.35 var(--font-body);letter-spacing:.06em;text-transform:uppercase}
.reunion-journey__stage{position:relative;z-index:2;min-height:370px;padding:28px 0 18px;overflow:hidden}.reunion-journey__sky{position:absolute;inset:0;pointer-events:none}.reunion-journey__sky i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 7px color-mix(in srgb,var(--gold) 7%,transparent);opacity:.42;animation:journeyPulse 3.6s ease-in-out infinite}.reunion-journey__sky i:nth-child(1){left:6%;top:18%;animation-delay:-.8s}.reunion-journey__sky i:nth-child(2){left:24%;top:72%;animation-delay:-2s}.reunion-journey__sky i:nth-child(3){left:44%;top:12%;animation-delay:-1.2s}.reunion-journey__sky i:nth-child(4){left:63%;top:77%;animation-delay:-2.6s}.reunion-journey__sky i:nth-child(5){left:81%;top:20%;animation-delay:-1.7s}.reunion-journey__sky i:nth-child(6){left:94%;top:62%;animation-delay:-3.1s}
.reunion-journey__path{position:absolute;left:22px;right:22px;top:50%;height:3px;border-radius:999px;background:color-mix(in srgb,var(--gold) 16%,var(--line));transform:translateY(-50%);overflow:hidden}.reunion-journey__path::before{content:"";position:absolute;inset:-6px 0;background:repeating-linear-gradient(90deg,transparent 0 26px,color-mix(in srgb,var(--gold) 20%,transparent) 26px 27px,transparent 27px 52px)}.reunion-journey__path span{position:absolute;inset:0 auto 0 0;width:var(--progress);border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--terra),var(--wine));box-shadow:0 0 18px color-mix(in srgb,var(--terra) 32%,transparent);transform-origin:left;animation:journeyPath 1.4s cubic-bezier(.22,.78,.2,1) both}
.reunion-journey__rail{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);gap:18px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:0 12px 14px;min-height:330px;scrollbar-width:thin}.reunion-journey__stop{position:relative;display:block;min-width:0;border:0;background:none;padding:0;cursor:pointer;scroll-snap-align:center;color:inherit}.reunion-journey__orb{position:absolute;left:50%;top:50%;z-index:4;width:58px;height:58px;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;background:var(--paper);border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));box-shadow:0 0 0 7px color-mix(in srgb,var(--gold) 7%,transparent),0 12px 30px -18px rgba(31,24,20,.7);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}.reunion-journey__orb::before,.reunion-journey__orb::after{content:"";position:absolute;border-radius:50%;inset:-11px;border:1px solid color-mix(in srgb,var(--gold) 20%,transparent);animation:journeyOrbit 7s linear infinite}.reunion-journey__orb::after{inset:-19px;border-style:dashed;animation-duration:12s;animation-direction:reverse;opacity:.5}.reunion-journey__orb i{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 14px color-mix(in srgb,var(--gold) 60%,transparent)}.reunion-journey__orb b{position:absolute;top:72px;color:var(--ink-faint);font:800 .55rem/1 var(--font-body);letter-spacing:.12em}.reunion-journey__stop.is-pierre .reunion-journey__orb i{background:#84648f;box-shadow:0 0 16px rgba(132,100,143,.38)}.reunion-journey__stop.is-leonor .reunion-journey__orb i{background:#c96f72;box-shadow:0 0 16px rgba(201,111,114,.38)}.reunion-journey__stop.is-latest .reunion-journey__orb{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 0 0 9px color-mix(in srgb,var(--terra) 9%,transparent),0 14px 34px -18px rgba(31,24,20,.72)}.reunion-journey__stop.is-upcoming .reunion-journey__orb{border-style:dashed;opacity:.8}
.reunion-journey__card{position:absolute;left:50%;width:min(220px,90%);transform:translateX(-50%);padding:14px 14px 13px;border:1px solid color-mix(in srgb,var(--gold) 20%,var(--line));border-radius:19px;background:color-mix(in srgb,var(--paper) 91%,white);box-shadow:0 18px 44px -36px rgba(31,24,20,.65);text-align:left;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}.reunion-journey__stop.is-up .reunion-journey__card{bottom:calc(50% + 52px)}.reunion-journey__stop.is-down .reunion-journey__card{top:calc(50% + 52px)}.reunion-journey__card::after{content:"";position:absolute;left:50%;width:1px;height:30px;background:color-mix(in srgb,var(--gold) 38%,transparent)}.reunion-journey__stop.is-up .reunion-journey__card::after{top:100%}.reunion-journey__stop.is-down .reunion-journey__card::after{bottom:100%}.reunion-journey__status{display:block;margin-bottom:6px;color:var(--ink-faint);font:800 .52rem/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase}.reunion-journey__card>strong{display:block;color:var(--ink);font:500 1.08rem/1.08 var(--font-display)}.reunion-journey__route{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;margin-top:9px}.reunion-journey__route b{display:grid;place-items:center;min-width:48px;height:26px;padding:0 7px;border-radius:999px;background:color-mix(in srgb,var(--wine) 8%,var(--paper));color:var(--wine);font:850 .62rem/1 var(--font-body)}.reunion-journey__stop.is-pierre .reunion-journey__route b{background:rgba(132,100,143,.10);color:#684a75}.reunion-journey__stop.is-leonor .reunion-journey__route b{background:rgba(201,111,114,.11);color:#9f4b50}.reunion-journey__route em{font:700 .66rem/1.25 var(--font-body);font-style:normal;color:var(--ink-muted)}.reunion-journey__card>small{display:block;margin-top:7px;color:var(--ink-faint);font:650 .62rem/1.3 var(--font-body)}.reunion-journey__stop:hover .reunion-journey__orb{transform:translate(-50%,-50%) scale(1.12)}.reunion-journey__stop:hover .reunion-journey__card{box-shadow:0 20px 48px -28px rgba(31,24,20,.48)}.reunion-journey__stop.is-up:hover .reunion-journey__card{transform:translateX(-50%) translateY(-4px)}.reunion-journey__stop.is-down:hover .reunion-journey__card{transform:translateX(-50%) translateY(4px)}
.reunion-journey__foot{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--gold) 20%,var(--line))}.reunion-journey__foot div{display:grid;gap:3px}.reunion-journey__foot .is-right{text-align:right}.reunion-journey__foot span{color:var(--ink-faint);font:750 .55rem/1.2 var(--font-body);letter-spacing:.12em;text-transform:uppercase}.reunion-journey__foot strong{font:650 .76rem/1.35 var(--font-body)}.reunion-journey--empty{display:flex;align-items:center;justify-content:space-between;gap:20px}.reunion-journey--empty small{color:var(--terra);font:800 .6rem var(--font-body);letter-spacing:.16em}.reunion-journey--empty h2{margin:.5rem 0;font:500 2rem/1 var(--font-display)}.reunion-journey--empty h2 em{font-family:Italiana,var(--font-display);font-weight:400;color:var(--terra)}
@keyframes journeyOrbit{to{transform:rotate(360deg)}}@keyframes journeyPulse{50%{transform:scale(1.8);opacity:.18}}@keyframes journeyPath{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes journeyDrift{to{transform:translate3d(18px,-8px,0)}}
@media(max-width:980px){.reunion-journey{width:min(calc(100% - 28px),1440px);padding:24px}.reunion-journey__head{grid-template-columns:1fr;gap:18px}.reunion-journey__metrics{max-width:620px}.reunion-journey__rail{grid-auto-columns:210px}}
@media(max-width:620px){.reunion-journey{width:calc(100% - 20px);padding:18px 14px;border-radius:24px}.reunion-journey__head h2{font-size:2.15rem}.reunion-journey__head p{font-size:.82rem}.reunion-journey__metrics{padding:5px;border-radius:17px}.reunion-journey__metrics span{padding:10px 4px}.reunion-journey__metrics b{font-size:1.45rem}.reunion-journey__metrics small{font-size:.48rem}.reunion-journey__stage{min-height:335px;margin-inline:-4px}.reunion-journey__rail{grid-auto-columns:190px;min-height:315px;scroll-snap-type:x mandatory;padding-inline:18px}.reunion-journey__orb{width:52px;height:52px}.reunion-journey__card{width:178px;padding:12px}.reunion-journey__card>strong{font-size:.96rem}.reunion-journey__route{grid-template-columns:1fr;gap:4px}.reunion-journey__route b{justify-self:start}.reunion-journey__foot{grid-template-columns:1fr auto}.reunion-journey__foot .is-right{display:none}}
@media(prefers-reduced-motion:reduce){.reunion-journey::before,.reunion-journey__sky i,.reunion-journey__orb::before,.reunion-journey__orb::after,.reunion-journey__path span{animation:none!important}}

/* V33 · choix du trajet dans l'éditeur calendrier */
.reunion-direction-editor[hidden]{display:none!important}.reunion-direction-editor>.field__label{display:block;margin-bottom:10px;font-weight:800;color:var(--ink)}.reunion-direction-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.reunion-direction-choice__item{position:relative;cursor:pointer}.reunion-direction-choice__item input{position:absolute;opacity:0;pointer-events:none}.reunion-direction-choice__item span{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;min-height:82px;padding:13px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--paper) 88%,white);transition:.2s ease}.reunion-direction-choice__item span>b{grid-row:1/3;display:grid;place-items:center;min-width:46px;height:46px;border-radius:50%;background:var(--paper-warm);color:var(--wine);font:850 .7rem var(--font-body)}.reunion-direction-choice__item span>strong{align-self:end;color:var(--ink);font:750 .78rem/1.2 var(--font-body)}.reunion-direction-choice__item span>small{align-self:start;color:var(--ink-muted);font:.66rem/1.25 var(--font-body)}.reunion-direction-choice__item input:checked+span{border-color:color-mix(in srgb,var(--terra) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--terra) 9%,transparent);background:color-mix(in srgb,var(--terra) 5%,var(--paper))}.reunion-direction-choice__item.is-pierre input:checked+span>b{background:rgba(132,100,143,.12);color:#684a75}.reunion-direction-choice__item.is-leonor input:checked+span>b{background:rgba(201,111,114,.13);color:#9f4b50}.field__hint{display:block;margin-top:8px;color:var(--ink-muted);font:.68rem/1.45 var(--font-body)}
@media(max-width:680px){.reunion-direction-choice{grid-template-columns:1fr}.reunion-direction-choice__item span{min-height:68px}}

/* V33 · trajet Ensemble plus lisible dans Temps */
.cal-route{display:inline-flex;align-items:center;gap:6px;max-width:100%;margin-top:5px}.cal-route b{display:inline-flex;align-items:center;justify-content:center;min-height:23px;padding:4px 8px;border-radius:999px;background:rgba(107,39,50,.09);color:var(--wine);font:850 .62rem/1 var(--font-body);letter-spacing:.03em;white-space:nowrap}.cal-route em{color:var(--ink-muted);font:700 .66rem/1.2 var(--font-body);font-style:normal}.cal-route.is-pierre b{background:rgba(132,100,143,.15);color:#60416e}.cal-route.is-leonor b{background:rgba(201,111,114,.16);color:#97434a}.cal-route.is-us b{background:rgba(184,137,63,.14);color:#826020}.cal-route.is-compact{display:flex;margin:3px 0 0}.cal-route.is-compact b{min-height:19px;padding:3px 6px;font-size:.54rem}.cal-event{min-height:48px!important;padding:5px 6px!important;border-radius:8px;background:color-mix(in srgb,var(--paper) 92%,white)}.cal-event__label{font-weight:800!important;color:var(--ink)!important}.cal-week-event__title,.cal-agenda-event__title,.cal-context__title{display:flex;flex-direction:column;align-items:flex-start}.cal-week-event__title>strong,.cal-agenda-event__title>strong,.cal-context__title>strong{font-size:.82rem}.unified-all-day>span{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}.unified-all-day>span>b{font-size:.76rem}.unified-all-day .cal-route{margin:0}.unified-all-day .cal-route b{font-size:.55rem}

/* V34 · Retrouvailles adaptatives : module compact, horizontal uniquement */
.reunion-timeline,
.reunion-story,
.reunion-journey{
  position:relative;
  overflow:visible;
}
.reunion-timeline__track,
.reunion-story__track,
[data-reunion-rail]{
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x;
  cursor:grab;
  padding-bottom:.45rem;
}
.reunion-timeline__track.is-dragging,
.reunion-story__track.is-dragging,
[data-reunion-rail].is-dragging{
  cursor:grabbing;
  scroll-snap-type:none;
}
.reunion-timeline__track > *,
.reunion-story__track > *,
[data-reunion-rail] > *{
  scroll-snap-align:center;
}
.reunion-timeline__nav{
  position:absolute;
  inset:50% .75rem auto .75rem;
  transform:translateY(-50%);
  display:flex;
  justify-content:space-between;
  z-index:8;
  pointer-events:none;
}
.reunion-timeline__arrow{
  pointer-events:auto;
  width:2.65rem;
  height:2.65rem;
  border-radius:999px;
  border:1px solid color-mix(in srgb,var(--wine,#6b2732) 22%, transparent);
  background:color-mix(in srgb,var(--paper,#f4ede0) 88%, transparent);
  box-shadow:0 .5rem 1.4rem rgba(31,24,20,.14);
  backdrop-filter:blur(10px);
  font-size:1.65rem;
  line-height:1;
  display:grid;
  place-items:center;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.reunion-timeline__arrow:hover,
.reunion-timeline__arrow:focus-visible{
  transform:scale(1.06);
  box-shadow:0 .7rem 1.8rem rgba(31,24,20,.18);
}
.reunion-timeline__arrow:active{transform:scale(.96)}
@media(max-width:760px){
  .reunion-timeline__nav{inset:50% .25rem auto .25rem}
  .reunion-timeline__arrow{width:2.35rem;height:2.35rem;font-size:1.45rem}
  .reunion-timeline__track,
  .reunion-story__track,
  [data-reunion-rail]{
    padding-inline:.65rem;
    scroll-padding-inline:1rem;
  }
}
/* Le module doit rester compact en haut de page : pas de grande hauteur imposée. */
.reunion-timeline,
.reunion-story,
.reunion-journey{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
}
.reunion-timeline__viewport,
.reunion-story__viewport{
  overflow:hidden!important;
}
/* Suppression visuelle de tout CTA "Voir dans Temps" résiduel */
.reunion-timeline [data-action*="temps"],
.reunion-story [data-action*="temps"],
.reunion-journey [data-action*="temps"]{
  display:none!important;
}

/* V35 · Agenda compact
   Les événements indiquent déjà leur horaire : les intertitres Matin /
   Après-midi / Nuit / Toute la journée sont masqués pour libérer de l'espace. */
.agenda-period__title,
.agenda-period__header,
.agenda-slot__title,
.agenda-slot__header,
.agenda-timegroup__title,
.agenda-timegroup__header{
  display:none!important;
}
.agenda-period,
.agenda-slot,
.agenda-timegroup{
  margin-top:.35rem!important;
  padding-top:0!important;
}

/* V36 · Agenda réellement sans périodes */
.cal-agenda__events{
  gap:7px!important;
}
.cal-agenda-event{
  margin:0!important;
}

/* V37 · Frise : suppression définitive du bouton « Voir dans Temps » */
.reunion-journey__foot--compact{
  grid-template-columns:1fr 1fr!important;
}
@media(max-width:620px){
  .reunion-journey__foot--compact{
    grid-template-columns:1fr 1fr!important;
  }
  .reunion-journey__foot--compact .is-right{
    display:grid!important;
  }
}
