/* ═══════════════════════════════════════════════════════════════════════════
   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}

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

/* V38 · Frise romantique plus intégrée, sans scroll vertical interne */
.reunion-journey{
  background:
    radial-gradient(circle at 12% 15%, rgba(184,137,63,.11), transparent 24%),
    radial-gradient(circle at 84% 18%, rgba(184,137,63,.07), transparent 20%),
    radial-gradient(circle at 84% 76%, rgba(184,137,63,.09), transparent 24%),
    linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0) 40%),
    linear-gradient(145deg, color-mix(in srgb,var(--paper) 97%,white), color-mix(in srgb,var(--paper) 90%,#eddccf));
  border-color: color-mix(in srgb,var(--gold) 22%, var(--line));
  box-shadow:
    0 28px 90px -64px rgba(31,24,20,.42),
    inset 0 1px 0 rgba(255,255,255,.55);
}
.reunion-journey__head{
  gap: 22px;
}
.reunion-journey__head h2{
  letter-spacing:-.055em;
  text-wrap:balance;
}
.reunion-journey__head p{
  max-width: 640px;
}
.reunion-journey__metrics{
  background:rgba(255,255,255,.28);
  backdrop-filter: blur(8px);
}
.reunion-journey__metrics span{
  box-shadow: inset 0 1px 0 rgba(255,255,255,.62);
}
.reunion-journey__stage{
  min-height: 360px !important;
  padding: 20px 0 8px;
  overflow: hidden !important;
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0)),
    radial-gradient(circle at 50% 50%, rgba(184,137,63,.06), transparent 46%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45);
}
.reunion-journey__controls{
  position:absolute;
  inset:50% 8px auto 8px;
  transform:translateY(-52%);
  z-index:6;
  display:flex;
  justify-content:space-between;
  pointer-events:none;
}
.reunion-journey__arrow{
  pointer-events:auto;
  width:2.7rem;height:2.7rem;
  border:1px solid color-mix(in srgb,var(--gold) 22%,var(--line));
  border-radius:999px;
  background:rgba(244,237,224,.88);
  color:var(--wine);
  backdrop-filter: blur(10px);
  box-shadow:0 10px 24px -18px rgba(31,24,20,.7);
  font:400 1.45rem/1 var(--font-display);
  display:grid;place-items:center;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.reunion-journey__arrow:hover,
.reunion-journey__arrow:focus-visible{
  transform:scale(1.05);
  box-shadow:0 14px 28px -16px rgba(31,24,20,.55);
  background:rgba(255,249,244,.96);
}
.reunion-journey__path{
  left:32px; right:32px;
  top:58%;
  height:4px;
  background: linear-gradient(90deg, rgba(184,137,63,.20), rgba(107,39,50,.10));
}
.reunion-journey__path::before{
  inset:-7px 0;
  opacity:.75;
}
.reunion-journey__path span{
  box-shadow:0 0 18px rgba(184,137,63,.28);
}
.reunion-journey__rail{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns: minmax(190px, 210px);
  gap: 22px;
  min-height: 330px;
  padding: 14px 34px 18px;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scroll-padding-inline: 34px;
  scrollbar-width:none;
  -ms-overflow-style:none;
  align-items:stretch;
  touch-action: pan-x;
  cursor:grab;
}
.reunion-journey__rail::-webkit-scrollbar{display:none}
.reunion-journey__rail.is-dragging{
  cursor:grabbing;
  scroll-snap-type:none;
}
.reunion-journey__stop{
  min-height: 296px;
  display:block;
  scroll-snap-align:center;
}
.reunion-journey__orb{
  top:58%;
}
.reunion-journey__orb b{
  top:68px;
}
.reunion-journey__card{
  width: min(214px, 92%);
  border-radius: 22px;
  padding: 15px 15px 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.68));
  backdrop-filter: blur(6px);
  box-shadow:
    0 20px 46px -34px rgba(31,24,20,.48),
    inset 0 1px 0 rgba(255,255,255,.58);
}
.reunion-journey__card::after{
  height:26px;
}
.reunion-journey__status{
  color: var(--terra);
  letter-spacing:.14em;
}
.reunion-journey__card>strong{
  font-size:1.13rem;
}
.reunion-journey__route{
  margin-top:10px;
}
.reunion-journey__route b{
  min-width:54px;
  height:28px;
  font-size:.64rem;
}
.reunion-journey__card>small{
  margin-top:8px;
  font-size:.63rem;
}
.reunion-journey__stop.is-up .reunion-journey__card{
  bottom:calc(42% + 58px);
}
.reunion-journey__stop.is-down .reunion-journey__card{
  top:calc(58% + 34px);
}
.reunion-journey__stop:nth-child(3n+2).is-up .reunion-journey__card{transform:translateX(-50%) translateY(8px)}
.reunion-journey__stop:nth-child(3n).is-down .reunion-journey__card{transform:translateX(-50%) translateY(-8px)}
.reunion-journey__stop:hover .reunion-journey__card{
  box-shadow:0 24px 54px -30px rgba(31,24,20,.42), inset 0 1px 0 rgba(255,255,255,.6);
}
.reunion-journey__foot{
  margin-top:6px;
}
.reunion-journey__foot strong{
  font-size:.8rem;
}

/* Mobile / tablette : tout reste dans la frise, sans ascenseur vertical */
@media(max-width:900px){
  .reunion-journey__stage{
    min-height: 332px !important;
  }
  .reunion-journey__rail{
    min-height: 304px;
    grid-auto-columns:minmax(178px, 188px);
    padding-inline:26px;
    scroll-padding-inline:26px;
  }
  .reunion-journey__card{
    width:172px;
    padding:12px 12px 11px;
  }
  .reunion-journey__card>strong{font-size:1rem}
  .reunion-journey__route{
    grid-template-columns:1fr;
    gap:5px;
  }
  .reunion-journey__route b{justify-self:start}
}
@media(max-width:620px){
  .reunion-journey{
    padding:18px 14px 16px;
    border-radius:26px;
  }
  .reunion-journey__head{
    gap:16px;
    margin-bottom:16px;
  }
  .reunion-journey__head h2{
    font-size: clamp(2.05rem, 8vw, 2.65rem);
  }
  .reunion-journey__head p{
    font-size:.82rem;
  }
  .reunion-journey__metrics{
    grid-template-columns:repeat(3,1fr);
    gap:6px;
  }
  .reunion-journey__metrics b{font-size:1.42rem}
  .reunion-journey__metrics small{font-size:.49rem}
  .reunion-journey__stage{
    min-height:316px !important;
    border-radius:22px;
  }
  .reunion-journey__controls{
    inset:54% 2px auto 2px;
  }
  .reunion-journey__arrow{
    width:2.28rem;height:2.28rem;font-size:1.28rem;
  }
  .reunion-journey__rail{
    min-height:288px;
    grid-auto-columns:minmax(168px, 176px);
    gap:16px;
    padding:12px 20px 12px;
    scroll-padding-inline:20px;
  }
  .reunion-journey__stop{
    min-height:272px;
  }
  .reunion-journey__orb{
    width:50px;height:50px;top:59%;
  }
  .reunion-journey__orb b{top:62px}
  .reunion-journey__card{
    width:166px;
    border-radius:20px;
  }
  .reunion-journey__stop.is-up .reunion-journey__card{
    bottom:calc(43% + 52px);
  }
  .reunion-journey__stop.is-down .reunion-journey__card{
    top:calc(59% + 28px);
  }
  .reunion-journey__foot--compact{
    grid-template-columns:1fr 1fr!important;
  }
  .reunion-journey__foot--compact .is-right{
    display:grid!important;
  }
}

@keyframes reunionFloatSoft{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}
.reunion-journey__stop:nth-child(odd) .reunion-journey__orb{
  animation: reunionFloatSoft 4.8s ease-in-out infinite;
}
.reunion-journey__stop:nth-child(even) .reunion-journey__orb{
  animation: reunionFloatSoft 5.4s ease-in-out infinite -.8s;
}
@media(prefers-reduced-motion:reduce){
  .reunion-journey__stop .reunion-journey__orb{animation:none!important}
}

/* V39 · Compte à rebours réel des invitations */
.pairing-pass__timer{
  min-width:78px;
  text-align:center;
  font-variant-numeric:tabular-nums;
  letter-spacing:.04em;
  transition:color .2s ease, background .2s ease, transform .2s ease;
}
.pairing-pass__timer.is-urgent{
  color:var(--terra)!important;
  animation:inviteTimerPulse 1.15s ease-in-out infinite;
}
.pairing-pass__timer.is-expired{
  color:var(--wine)!important;
  animation:none!important;
}
.pairing-pass.is-expired .pairing-share-grid,
.pairing-pass.is-expired .pairing-invite-summary,
.pairing-pass.is-expired .pairing-pass__visual,
.pairing-pass.is-expired .pairing-pass__manual,
.pairing-pass.is-expired .pairing-pass__privacy{
  opacity:.38;
  filter:saturate(.65);
  pointer-events:none;
}
.pairing-pass__expired{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  margin-top:16px;
  padding:15px 16px;
  border:1px solid color-mix(in srgb,var(--wine) 24%,var(--line));
  border-radius:18px;
  background:color-mix(in srgb,var(--wine) 6%,var(--paper));
}
.pairing-pass__expired>span{
  display:grid;
  place-items:center;
  width:42px;height:42px;
  border-radius:50%;
  background:color-mix(in srgb,var(--wine) 10%,var(--paper));
  font-size:1.15rem;
}
.pairing-pass__expired small{
  display:block;
  color:var(--wine);
  font:800 .56rem/1 var(--font-body);
  letter-spacing:.14em;
}
.pairing-pass__expired strong{
  display:block;
  margin-top:4px;
  font:650 1rem/1.2 var(--font-display);
}
.pairing-pass__expired p{
  margin:4px 0 0;
  color:var(--ink-muted);
  font:.74rem/1.4 var(--font-body);
}
@keyframes inviteTimerPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.04)}
}
@media(max-width:720px){
  .pairing-pass__expired{
    grid-template-columns:auto 1fr;
  }
  .pairing-pass__expired .btn{
    grid-column:1 / -1;
    width:100%;
  }
}
@media(prefers-reduced-motion:reduce){
  .pairing-pass__timer.is-urgent{animation:none!important}
}

/* V40 · Navigation Gérer dédiée au mobile */
.settings-mobile-nav{
  display:none;
}

@media(max-width:900px){
  /* Dans Gérer, la barre du site laisse sa place à la barre de gestion. */
  #app[data-world="settings"] > .mobilenav{
    display:none!important;
  }

  #world-settings .settings{
    padding-bottom:calc(var(--mobilenav-h) + env(safe-area-inset-bottom,0px) + 10px);
  }

  /* La navigation latérale/haute reste pour PC, mais disparaît complètement sur mobile. */
  #world-settings .settings__nav{
    display:none!important;
  }

  #world-settings .settings__content{
    padding:18px 14px calc(var(--mobilenav-h) + env(safe-area-inset-bottom,0px) + 30px)!important;
  }

  .settings-mobile-nav{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:52;
    display:flex;
    height:calc(var(--mobilenav-h) + env(safe-area-inset-bottom,0px));
    padding:0 4px env(safe-area-inset-bottom,0px);
    background:color-mix(in srgb,var(--paper) 96%,var(--paper-warm));
    border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent);
    box-shadow:0 -14px 34px -26px rgba(31,24,20,.38);
    backdrop-filter:blur(16px) saturate(118%);
    -webkit-backdrop-filter:blur(16px) saturate(118%);
  }

  .settings-mobile-nav button{
    flex:1 1 0%;
    min-width:0;
    min-height:62px;
    padding:6px 2px 4px;
    border:0;
    background:transparent;
    color:var(--ink-muted);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    font-family:inherit;
    cursor:pointer;
    transition:color .22s ease, transform .22s ease;
  }

  .settings-mobile-nav button .topnav__ic{
    display:inline-grid;
    place-items:center;
    width:30px;
    height:30px;
    border-radius:50%;
    font-size:1rem;
    line-height:1;
    transition:background .25s ease,color .25s ease,transform .25s ease;
  }

  .settings-mobile-nav button small{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.61rem;
    line-height:1.1;
    font-weight:750;
  }

  .settings-mobile-nav button.is-on{
    color:var(--terra);
  }

  .settings-mobile-nav button.is-on .topnav__ic{
    background:var(--terra-soft);
    color:var(--terra);
  }

  .settings-mobile-nav__exit{
    color:var(--wine)!important;
    border-right:1px solid color-mix(in srgb,var(--ink) 8%,transparent)!important;
  }

  .settings-mobile-nav__exit .topnav__ic{
    background:color-mix(in srgb,var(--wine) 8%,var(--paper));
    color:var(--wine);
  }

  .settings-mobile-nav button:active .topnav__ic{
    transform:scale(.92);
  }

  /* Les sous-pages gardent leur petit bouton Retour local uniquement quand utile. */
  #world-settings .settings-back{
    margin-top:2px;
  }
}

@media(max-width:420px){
  .settings-mobile-nav button small{
    font-size:.56rem;
  }
  .settings-mobile-nav button .topnav__ic{
    width:28px;
    height:28px;
  }
}

@media(prefers-reduced-motion:reduce){
  .settings-mobile-nav button,
  .settings-mobile-nav button .topnav__ic{
    transition:none!important;
  }
}

/* V43 · Performances mobile
   Les sections longues hors écran peuvent être ignorées par le moteur de rendu
   jusqu'à leur approche du viewport. Aucun composant interactif fixe n'est concerné. */
@media(max-width:820px){
  #world-nous .story-card,
  #world-nous .memory-card,
  #world-echoes .echo-card,
  #world-envies .wish-card,
  #world-envies .collection-card,
  #world-horizons .horizon-card,
  #world-capsules .capsule-card,
  #world-temps .cal-agenda__day{
    content-visibility:auto;
    contain-intrinsic-size:auto 300px;
  }

  /* Les effets fixes les plus coûteux n'utilisent pas de blur supplémentaire
     sur les appareils tactiles. */
  .settings-mobile-nav,
  .mobilenav{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   V47 · Calendrier : semaine lisible, agenda chronologique, repères Ensemble
   ═══════════════════════════════════════════════════════════════════════════ */

/* SEMAINE */
.cal-week{
  gap:12px;
  padding:22px;
}
.cal-week__intro{
  align-items:end;
  margin:0 0 8px;
  padding:0 2px 12px;
  border-bottom:1px solid var(--line);
}
.cal-week__intro>div{display:grid;gap:4px}
.cal-week__intro>div>small{
  color:var(--sage);
  font:800 .58rem var(--font-body);
  letter-spacing:.2em;
}
.cal-week__intro>div>strong{font-size:1.22rem}
.cal-week__intro>span{
  color:var(--ink-muted);
  font:.72rem/1.4 var(--font-body);
}
.cal-week__day{
  grid-template-columns:112px minmax(0,1fr);
  gap:16px;
  align-items:stretch;
  padding:12px 14px;
  border-radius:18px;
}
.cal-week__date{
  align-self:stretch;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  align-content:center;
  gap:2px 9px;
  padding:8px 4px;
}
.cal-week__date strong{
  grid-row:1/3;
  align-self:center;
  font-size:1.9rem;
}
.cal-week__date span{
  align-self:end;
  font-size:.78rem;
}
.cal-week__date small{
  align-self:start;
  color:var(--terra);
  font:800 .51rem var(--font-body);
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cal-week__body{
  min-width:0;
  display:grid;
  gap:8px;
}
.cal-week__scale{
  position:relative;
  min-width:0;
}
.cal-week__scale .cal-hour-ruler{
  margin:0 8px 0;
  min-height:20px;
}
.cal-week__now{
  position:absolute;
  top:2px;
  bottom:-1000px;
  z-index:1;
  border-left:1px dashed var(--terra);
  opacity:.7;
  pointer-events:none;
}
.cal-week__events{
  position:relative;
  z-index:2;
  display:grid;
  gap:7px;
}
.cal-week-event{
  padding:9px 11px 10px;
  border-radius:12px;
  border-left:3px solid var(--ev,var(--sage));
  background:color-mix(in srgb,var(--paper) 92%,white);
}
.cal-week-event__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:7px;
}
.cal-week-event__top>small{
  flex:0 0 auto;
  color:var(--ink-muted);
  font:.7rem var(--font-body);
  white-space:nowrap;
}
.cal-week-event.is-all-day{
  background:color-mix(in srgb,var(--ev,var(--sage)) 5%,var(--paper));
}
.cal-week-event__alltrack{
  height:8px;
  overflow:hidden;
  border-radius:999px;
  background:color-mix(in srgb,var(--ink) 5%,transparent);
}
.cal-week-event__alltrack i{
  display:block;
  width:100%;
  height:100%;
  border-radius:inherit;
  background:var(--ev,var(--sage));
  opacity:.88;
}
.cal-week__empty{
  min-height:42px;
  display:flex;
  align-items:center;
  padding:0 12px;
  border:1px dashed var(--line);
  border-radius:11px;
  color:var(--ink-ghost);
  font:.73rem var(--font-body);
}

/* AGENDA — volontairement différent de la vue Semaine */
.cal-agenda{
  padding:26px;
  gap:34px;
}
.cal-agenda__intro{
  max-width:720px;
  display:grid;
  gap:5px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.cal-agenda__intro>small{
  color:var(--terra);
  font:800 .6rem var(--font-body);
  letter-spacing:.2em;
}
.cal-agenda__intro h3{
  margin:0;
  font:500 clamp(1.5rem,2.5vw,2.2rem)/1.08 var(--font-display);
}
.cal-agenda__intro p{
  margin:0;
  color:var(--ink-muted);
  font:.82rem/1.55 var(--font-body);
}
.cal-agenda__section{
  display:grid;
  gap:18px;
}
.cal-agenda__section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  padding-bottom:10px;
  border-bottom:1px solid var(--line);
}
.cal-agenda__section-head small{
  color:var(--sage);
  font:800 .58rem var(--font-body);
  letter-spacing:.2em;
}
.cal-agenda__section-head strong{
  font:500 1.12rem var(--font-display);
  text-transform:capitalize;
}
.cal-agenda__section.is-today-section{
  padding:20px;
  border:1px solid color-mix(in srgb,var(--sage) 24%,var(--line));
  border-radius:18px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--sage) 8%,transparent),color-mix(in srgb,var(--sage) 2%,transparent));
}
.cal-agenda__section-body{
  display:grid;
  gap:4px;
}
.cal-agenda__day{
  grid-template-columns:112px 22px minmax(0,1fr);
  gap:0;
  padding:8px 0 12px;
}
.cal-agenda__day.is-today::before{display:none}
.cal-agenda__date{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:8px;
  padding:8px 8px 8px 0;
}
.cal-agenda__daynum{
  min-width:42px;
  font:500 2rem/1 var(--font-display);
}
.cal-agenda__datecopy{
  display:grid;
  gap:1px;
}
.cal-agenda__datecopy strong{
  font:750 .65rem var(--font-body);
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink);
}
.cal-agenda__datecopy small{
  margin:0;
  font:.66rem var(--font-body);
  color:var(--ink-muted);
}
.cal-agenda__date em{
  grid-column:1/-1;
  width:max-content;
  margin-top:2px;
  padding:3px 7px;
  border-radius:999px;
  background:var(--sage-soft);
  color:var(--sage-deep);
  font:800 .48rem var(--font-body);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-style:normal;
}
.cal-agenda__line{
  position:relative;
}
.cal-agenda__line::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:-20px;
  width:1px;
  background:color-mix(in srgb,var(--gold) 28%,var(--line));
}
.cal-agenda__line::after{
  content:"";
  position:absolute;
  top:24px;
  left:50%;
  width:8px;
  height:8px;
  border-radius:50%;
  transform:translate(-50%,-50%);
  background:var(--paper);
  border:2px solid var(--gold);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 10%,transparent);
}
.cal-agenda__events{
  gap:7px!important;
}
.cal-agenda-event{
  display:grid;
  grid-template-columns:minmax(72px,100px) minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  min-height:58px;
  padding:10px 13px;
  border-left:3px solid var(--ev,var(--sage));
  border-radius:13px;
  background:color-mix(in srgb,var(--paper) 94%,white);
}
.cal-agenda-event:hover{
  transform:translateX(2px);
}
.cal-agenda-event__time{
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center;
  padding-right:10px;
  border-right:1px solid var(--line);
  color:var(--ink);
  font:800 .62rem/1.2 var(--font-body);
  letter-spacing:.03em;
}
.cal-agenda-event__copy{
  min-width:0;
  display:grid;
  gap:3px;
}
.cal-agenda-event__copy .cal-route{
  margin-top:3px;
}
.cal-agenda-event__copy>small{
  color:var(--ink-muted);
  font:.69rem var(--font-body);
}
.cal-agenda-event__arrow{
  color:var(--gold);
  font:400 1.45rem/1 var(--font-display);
}
.cal-agenda__empty{
  display:grid;
  gap:3px;
  min-height:58px;
  align-content:center;
  padding:10px 14px;
  border:1px dashed var(--line-strong);
  border-radius:13px;
}
.cal-agenda__empty strong{
  font:600 .82rem var(--font-body);
}
.cal-agenda__empty small{
  color:var(--ink-muted);
  font:.7rem var(--font-body);
}
.cal-agenda__empty.is-large{
  min-height:90px;
  text-align:center;
  justify-items:center;
}

/* ANNÉE */
.cal-year__legend{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px 18px;
  padding:16px 20px 2px;
  color:var(--ink-muted);
  font:.68rem var(--font-body);
}
.cal-year__legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.cal-year__legend i{
  width:10px;
  height:10px;
  display:inline-grid;
  place-items:center;
  border-radius:50%;
  background:var(--sage-soft);
  font:700 .55rem/1 var(--font-body);
  font-style:normal;
}
.cal-year__legend i.is-reunion{
  width:17px;
  height:17px;
  color:var(--wine);
  background:color-mix(in srgb,#e780a7 18%,var(--paper));
}
.cal-year__legend i.is-today{
  background:transparent;
  border:1px solid var(--sage);
}
.cal-year__day.is-reunion{
  background:color-mix(in srgb,#e780a7 13%,var(--paper));
  color:var(--wine);
  font-weight:800;
  outline:1px solid color-mix(in srgb,#e780a7 35%,transparent);
}
.cal-year__day.is-reunion i{
  position:absolute;
  right:1px;
  bottom:0;
  color:#c85f87;
  font:700 .47rem/1 var(--font-body);
  font-style:normal;
}
.cal-year__day.is-today.is-reunion{
  outline:2px solid var(--sage);
  outline-offset:1px;
}

/* Mobile */
@media(max-width:780px){
  .cal-week{padding:14px;gap:9px}
  .cal-week__day{
    grid-template-columns:76px minmax(0,1fr);
    gap:9px;
    padding:10px;
  }
  .cal-week__date{
    grid-template-columns:1fr;
    grid-template-rows:auto;
    align-content:start;
    justify-items:start;
    gap:3px;
  }
  .cal-week__date strong{grid-row:auto;font-size:1.6rem}
  .cal-week__date span{font-size:.7rem}
  .cal-week__date small{font-size:.44rem}
  .cal-week-event__top{
    display:grid;
    gap:4px;
  }
  .cal-week-event__top>small{white-space:normal}
  .cal-week__intro>span{display:none}

  .cal-agenda{padding:15px;gap:26px}
  .cal-agenda__section.is-today-section{padding:14px}
  .cal-agenda__section-head{
    display:grid;
    gap:4px;
  }
  .cal-agenda__day{
    grid-template-columns:72px 14px minmax(0,1fr);
  }
  .cal-agenda__date{
    grid-template-columns:1fr;
    gap:2px;
  }
  .cal-agenda__daynum{font-size:1.65rem}
  .cal-agenda-event{
    grid-template-columns:1fr auto;
    gap:7px 10px;
  }
  .cal-agenda-event__time{
    grid-column:1/-1;
    justify-content:flex-start;
    min-height:0;
    padding:0 0 5px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .cal-agenda-event__copy{grid-column:1}
  .cal-agenda-event__arrow{grid-column:2;grid-row:2}
}

@media(max-width:520px){
  .cal-week__day{
    grid-template-columns:1fr;
  }
  .cal-week__date{
    display:flex;
    align-items:baseline;
    gap:8px;
    padding:1px 2px;
  }
  .cal-week__date small{margin-left:auto}
  .cal-week__scale .cal-hour-ruler{font-size:.48rem}
  .cal-agenda__day{
    grid-template-columns:58px 10px minmax(0,1fr);
  }
}


/* ═══════════════════════════════════════════════════════════════════════════
   V48 · Fluidité PC
   ═══════════════════════════════════════════════════════════════════════════ */

/* Les contenus ne doivent plus attendre une intersection pour apparaître. */
.nr-instant-content .nr-motion-enter,
.nr-instant-content .nr-motion-enter.is-visible{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
}

/* Pendant un scroll actif, on neutralise uniquement les décorations qui coûtent
   du compositing. Les interactions et le contenu restent inchangés. */
html.nr-scrolling .ambient__blob,
html.nr-scrolling .divider__orb,
html.nr-scrolling .divider__glint,
html.nr-scrolling .reunion-journey__orb::before,
html.nr-scrolling .reunion-journey__orb::after{
  animation-play-state:paused!important;
}

html.nr-scrolling .topbar,
html.nr-scrolling .footer{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Sur PC, pas de délai artificiel d'apparition des cartes. */
@media(min-width:821px){
  .nr-motion-enter,
  .nr-motion-enter.is-visible{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   V49 · Optimisations fluidité PC / mobile
   Bloc additif : rien au-dessus n'est modifié.
   ═══════════════════════════════════════════════════════════════════════════ */

/* 1 · Les très longs contenus peuvent être sautés par le moteur de rendu
       tant qu'ils sont loin du viewport. Réduit fortement le coût de mise
       en page sur les pages denses (Nous, Échos, Envies, Capsules, Agenda). */
@media(max-width:1100px){
  .memory-card,
  .memory-card--text,
  .echo-book,
  .echo-text.echo-prose,
  .envie--book,
  .envie--film,
  .horizon--project,
  .horizon--idea,
  .capsule,
  .recent-card,
  .cal-agenda__day{
    content-visibility:auto;
    contain-intrinsic-size:auto 320px;
  }
}

/* 2 · Suppression des dernières couches de backdrop-filter coûteuses sur
       mobile / tablettes tactiles. Le rendu reste équivalent car ces blocs
       sont posés sur des fonds déjà flous ou clairs. */
@media(max-width:820px), (hover:none) and (pointer:coarse){
  .memory-art__stamp,
  .memory-gallery__thumb,
  .memory-art__count,
  .live-editing-badge,
  .menu-btn,
  .capsule__seal,
  .envie-lingerie__slot--detail,
  .hero .tile,
  .pwa-install,
  .install-guide__sheet,
  .pairing-pass__qr{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}

/* 3 · Quelques animations « permanentes » (brand, avatar, badge, ring curseur)
       sont figées sur tactile : au lieu de tourner en continu et d'imposer
       un repaint de fond, elles ne se rejouent qu'à la demande. */
@media(hover:none){
  .brand__mark,
  .avatar-btn,
  .cursor__ring,
  .badge,
  .capsule:not([data-sealed]) .capsule__seal,
  .capsule[data-sealed] .capsule__seal{
    animation:none!important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   V49 · NOTRE CHEMIN — adaptation responsive réelle
   Objectif : éviter les cartes coupées sur PC et garder une hauteur cohérente.
   ═══════════════════════════════════════════════════════════════════════════ */

.reunion-journey{
  container-type:inline-size;
}

.reunion-journey__head{
  grid-template-columns:minmax(0,1fr) minmax(360px,520px);
  align-items:center;
}

.reunion-journey__head h2{
  font-size:clamp(2.8rem,4.2cqw,4.7rem);
  max-width:900px;
}

.reunion-journey__metrics{
  width:100%;
  justify-self:end;
}

/* La scène a assez de hauteur pour les cartes du bas :
   elles ne sont plus coupées par overflow:hidden. */
.reunion-journey__stage{
  min-height:390px!important;
  padding:24px 0 18px;
}

.reunion-journey__path{
  top:54%;
}

.reunion-journey__orb{
  top:54%;
}

.reunion-journey__stop.is-up .reunion-journey__card{
  bottom:calc(46% + 56px);
}

.reunion-journey__stop.is-down .reunion-journey__card{
  top:calc(54% + 42px);
}

/* Grand PC : cinq cartes complètes, sans sixième carte coupée au bord. */
@container (min-width:1180px){
  .reunion-journey__rail{
    grid-auto-columns:calc((100% - 88px) / 5);
    gap:22px;
    padding-inline:34px;
    scroll-padding-inline:34px;
  }

  .reunion-journey__card{
    width:min(100%,220px);
  }
}

/* Très grand écran : six points complets deviennent confortables. */
@container (min-width:1540px){
  .reunion-journey__rail{
    grid-auto-columns:calc((100% - 110px) / 6);
  }
}

/* PC intermédiaire : 4 cartes complètes. */
@container (min-width:900px) and (max-width:1179px){
  .reunion-journey__head{
    grid-template-columns:minmax(0,1fr) minmax(330px,430px);
  }

  .reunion-journey__head h2{
    font-size:clamp(2.55rem,5cqw,3.8rem);
  }

  .reunion-journey__rail{
    grid-auto-columns:calc((100% - 66px) / 4);
    gap:22px;
  }

  .reunion-journey__card{
    width:min(100%,205px);
  }
}

/* Tablette paysage / petit PC : 3 cartes complètes. */
@container (min-width:680px) and (max-width:899px){
  .reunion-journey__head{
    grid-template-columns:1fr;
  }

  .reunion-journey__metrics{
    max-width:none;
  }

  .reunion-journey__stage{
    min-height:370px!important;
  }

  .reunion-journey__rail{
    grid-auto-columns:calc((100% - 40px) / 3);
    gap:20px;
    padding-inline:26px;
    scroll-padding-inline:26px;
  }

  .reunion-journey__card{
    width:min(100%,190px);
  }
}

/* Mobile : cartes centrées et largeur confortable, sans rognage vertical. */
@container (max-width:679px){
  .reunion-journey__head{
    grid-template-columns:1fr;
  }

  .reunion-journey__head h2{
    font-size:clamp(2rem,9.3cqw,2.7rem);
  }

  .reunion-journey__metrics{
    max-width:none;
  }

  .reunion-journey__stage{
    min-height:350px!important;
  }

  .reunion-journey__path,
  .reunion-journey__orb{
    top:53%;
  }

  .reunion-journey__rail{
    grid-auto-columns:min(74cqw,190px);
    gap:18px;
    padding-inline:max(20px,calc((100cqw - min(74cqw,190px))/2));
    scroll-padding-inline:max(20px,calc((100cqw - min(74cqw,190px))/2));
  }

  .reunion-journey__stop{
    min-height:314px;
  }

  .reunion-journey__card{
    width:min(100%,184px);
  }

  .reunion-journey__stop.is-up .reunion-journey__card{
    bottom:calc(47% + 50px);
  }

  .reunion-journey__stop.is-down .reunion-journey__card{
    top:calc(53% + 36px);
  }
}

/* Les flèches restent dans la zone utile de la frise et ne recouvrent plus les cartes. */
.reunion-journey__controls{
  inset-inline:12px;
}

@container (max-width:679px){
  .reunion-journey__controls{
    inset-inline:2px;
  }
}

/* Footer plus équilibré sur grand écran. */
.reunion-journey__foot--compact{
  grid-template-columns:1fr 1fr;
}

.reunion-journey__foot--compact .is-right{
  justify-self:end;
  text-align:right;
}


/* ═══════════════════════════════════════════════════════════════════════════
   V50 · NOTRE CHEMIN — correction PC fiable sans dépendre des container queries
   ═══════════════════════════════════════════════════════════════════════════ */

.reunion-journey__stage{
  min-height:430px!important;
  height:auto!important;
  overflow:hidden!important;
}

.reunion-journey__rail{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  padding-left:26px!important;
  padding-right:26px!important;
  gap:20px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none;
}

.reunion-journey__rail::-webkit-scrollbar{
  display:none;
}

/* PC standard : exactement 5 points complets dans la fenêtre de la frise. */
@media(min-width:1180px) and (max-width:1699px){
  .reunion-journey__rail{
    grid-auto-columns:calc((100% - 80px) / 5)!important;
  }

  .reunion-journey__stop{
    min-width:0!important;
    width:auto!important;
  }

  .reunion-journey__card{
    width:min(190px,calc(100% - 12px))!important;
    max-width:190px!important;
  }
}

/* Très grand écran : 6 points complets. */
@media(min-width:1700px){
  .reunion-journey__rail{
    grid-auto-columns:calc((100% - 100px) / 6)!important;
  }

  .reunion-journey__card{
    width:min(190px,calc(100% - 10px))!important;
    max-width:190px!important;
  }
}

/* Petit PC / tablette paysage : 4 points complets. */
@media(min-width:900px) and (max-width:1179px){
  .reunion-journey__rail{
    grid-auto-columns:calc((100% - 60px) / 4)!important;
  }

  .reunion-journey__card{
    width:min(184px,calc(100% - 10px))!important;
    max-width:184px!important;
  }
}

/* Tablette : 3 points complets. */
@media(min-width:680px) and (max-width:899px){
  .reunion-journey__rail{
    grid-auto-columns:calc((100% - 40px) / 3)!important;
  }
}

/* Recalage vertical : aucune carte ne doit toucher/couper le bas de scène. */
@media(min-width:680px){
  .reunion-journey__path,
  .reunion-journey__orb{
    top:50%!important;
  }

  .reunion-journey__stop.is-up .reunion-journey__card{
    bottom:calc(50% + 58px)!important;
  }

  .reunion-journey__stop.is-down .reunion-journey__card{
    top:calc(50% + 44px)!important;
  }

  .reunion-journey__stop{
    min-height:390px!important;
  }
}

/* Les cartes restent centrées sur leur point, même quand leur colonne s'élargit. */
.reunion-journey__card{
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
}

/* Les flèches ne mordent pas sur les cartes. */
.reunion-journey__controls{
  inset-inline:8px!important;
  pointer-events:none;
}

.reunion-journey__controls button{
  pointer-events:auto;
}

/* Un peu plus d'air entre scène et résumé bas. */
.reunion-journey__foot{
  margin-top:14px!important;
}
